{"_id":"@hichchi/nest-auth","_rev":"37-3eaa3b9c2d05cf440779dbf190dd2092","name":"@hichchi/nest-auth","dist-tags":{"beta":"0.0.1-beta.4","latest":"0.0.12"},"versions":{"0.0.1-beta.0":{"name":"@hichchi/nest-auth","version":"0.0.1-beta.0","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.1-beta.0","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"ed834ea121a5cbd4d7c4d4c20d28ad405b3803d3","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.1-beta.0.tgz","fileCount":181,"integrity":"sha512-IbF6bLVkI0W8RhkJyTO0lO7RQKyabfHV6kMO6rTNHKlgg+3pIa/onXyxIBiQ3mcOU+vY/28rSek8RcwYuCgwMg==","signatures":[{"sig":"MEQCIAm5vmniZlyKuNF09qy8Zt4FGEfAin2BNCZuhCFyq5paAiBUPuAOt5ANEl4i/NJYo7ePdhJoKiYLSagsFqF7GrmcZA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":901930},"main":"./src/index.ts","type":"commonjs","types":"./src/index.d.ts","gitHead":"4eace079c9bdf546c83db89c2c7ce36c2a4c592d","typings":"./src/index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"11.4.2","description":"**@hichchi/nest-auth**","directories":{},"_nodeVersion":"22.16.0","dependencies":{"rxjs":"^7.8.2","uuid":"^11.1.0","axios":"^1.10.0","tslib":"^2.3.0","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","passport":"^0.7.0","cacheable":"^1.10.0","validator":"13.15.15","@keyv/redis":"^4.4.0","@nestjs/jwt":"^11.0.0","body-parser":"2.2.0","triple-beam":"1.4.1","@nestjs/core":"^11.1.3","passport-jwt":"^4.0.1","@nestjs/axios":"^4.0.0","@hichchi/utils":"0.0.1-beta.0","@nestjs/common":"^11.1.3","passport-local":"^1.0.0","class-validator":"^0.14.2","@nestjs/passport":"^11.0.5","class-transformer":"^0.5.1","winston-transport":"4.9.0","@hichchi/nest-core":"0.0.1-beta.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.0.1","passport-google-oauth2":"^0.2.0","@hichchi/nest-connector":"0.0.1-beta.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.1-beta.0_1752586720516_0.6042074902492294","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-beta.1":{"name":"@hichchi/nest-auth","version":"0.0.1-beta.1","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.1-beta.1","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"25dc0f78390507ca29d8bbbec306fc635ac4bc14","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.1-beta.1.tgz","fileCount":178,"integrity":"sha512-GPB2sd7oRckN3F6C50wIEswopS6vY76lYwsmlgIql7kh7Mvd393A6SOxHyqNYHDW7pvsEuYD5BkH8IHu/MsZLg==","signatures":[{"sig":"MEUCIQDvBKO9ichrf9CmuYX5Yr3MBNyHwOyF7pUWZYJ72USjugIgOue72sqaDkf9uOFOANcXPNDRm48VhJkyvG8mTa9yT2k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":901252},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"c523a04251fba5f8f5d466e09940a9bd23910bf8","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"11.4.2","description":"<!--suppress ALL -->","directories":{},"_nodeVersion":"22.16.0","dependencies":{"rxjs":"^7.8.2","uuid":"^11.1.0","axios":"^1.10.0","tslib":"^2.3.0","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","passport":"^0.7.0","cacheable":"^1.10.0","validator":"13.15.15","@keyv/redis":"^4.4.0","@nestjs/jwt":"^11.0.0","body-parser":"2.2.0","triple-beam":"1.4.1","@nestjs/core":"^11.1.3","passport-jwt":"^4.0.1","@nestjs/axios":"^4.0.0","@hichchi/utils":"0.0.1-beta.1","@nestjs/common":"^11.1.3","passport-local":"^1.0.0","class-validator":"^0.14.2","@nestjs/passport":"^11.0.5","class-transformer":"^0.5.1","winston-transport":"4.9.0","@hichchi/nest-core":"0.0.1-beta.1","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.0.1","passport-google-oauth2":"^0.2.0","@hichchi/nest-connector":"0.0.1-beta.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.1-beta.1_1752684978980_0.30871104801844873","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-beta.2":{"name":"@hichchi/nest-auth","version":"0.0.1-beta.2","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.1-beta.2","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"d3eb441a57146212ff58e5056509bae2767a8216","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.1-beta.2.tgz","fileCount":178,"integrity":"sha512-/ckk2pi84wsZejE5kN7NlJxN9bb80xWAggCfhn5CwZw0IKLTYZijDsPJEElUp6Zugkv3r8DAUurc/PYgTvb+iQ==","signatures":[{"sig":"MEYCIQDjhtaa5vhNVJXrEvU/m+lEcVxaaO6QTQW4+TZ1M0RLyQIhAIup/YhS+u/GAiMTF6AgaW/qFOHI0ng09Zfy05TXDPaC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":901378},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"ccb23061c2c4d1fe1d48b28048b4564b6268d47d","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"11.4.2","description":"<!--suppress ALL -->","directories":{},"_nodeVersion":"22.16.0","dependencies":{"rxjs":"^7.8.2","uuid":"^11.1.0","axios":"^1.10.0","tslib":"^2.3.0","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","passport":"^0.7.0","cacheable":"^1.10.0","validator":"13.15.15","@keyv/redis":"^4.4.0","@nestjs/jwt":"^11.0.0","body-parser":"2.2.0","triple-beam":"1.4.1","passport-jwt":"^4.0.1","@nestjs/axios":"^4.0.0","passport-local":"^1.0.0","class-validator":"^0.14.2","@nestjs/passport":"^11.0.5","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.0.1","passport-google-oauth2":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"@nestjs/core":"^11.1.3","@hichchi/utils":"0.0.1-beta.1","@nestjs/common":"^11.1.3","@hichchi/nest-core":"0.0.1-beta.2","@hichchi/nest-connector":"0.0.1-beta.1"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.1-beta.2_1752688805175_0.2645361660765366","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-beta.3":{"name":"@hichchi/nest-auth","version":"0.0.1-beta.3","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.1-beta.3","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"ab2b889f6ae23fefd1df86ac016bb04946d59265","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.1-beta.3.tgz","fileCount":178,"integrity":"sha512-PMDvic0mUtbD+8ghnNB0oLY+IXjQXLvwtRK7DQEiyhvrESvyrEStfRYaeA77zGfVdUWM+w6hos2R5rZjmvkR0Q==","signatures":[{"sig":"MEUCIA8atRHj1NGvJn1XrHZqjqgWgI+lgKy7MR2vNxOrrK8TAiEAwhZKnaMW59UPhWxGjHChfc6kdispAasNpdw2Iauckis=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":899891},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"cbb1345b63aeb8ca14b795ada8161ef09ed58f21","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"11.4.2","description":"<!--suppress ALL -->","directories":{},"_nodeVersion":"22.16.0","dependencies":{"rxjs":"^7.8.2","uuid":"^11.1.0","axios":"^1.10.0","tslib":"^2.3.0","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","passport":"^0.7.0","cacheable":"^1.10.0","validator":"13.15.15","@keyv/redis":"^4.4.0","@nestjs/jwt":"^11.0.0","body-parser":"2.2.0","triple-beam":"1.4.1","passport-jwt":"^4.0.1","@nestjs/axios":"^4.0.0","passport-local":"^1.0.0","class-validator":"^0.14.2","@nestjs/passport":"^11.0.5","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.0.1","passport-google-oauth2":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"@nestjs/core":"^11.1.3","@hichchi/utils":"0.0.1-beta.1","@nestjs/common":"^11.1.3","@hichchi/nest-core":"0.0.1-beta.3","@hichchi/nest-connector":"0.0.1-beta.2"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.1-beta.3_1752727264303_0.9699153054819101","host":"s3://npm-registry-packages-npm-production"}},"0.0.1-beta.4":{"name":"@hichchi/nest-auth","version":"0.0.1-beta.4","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.1-beta.4","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"6aca0b97ddd19cbf3ae1e53a35dbd99eb279b9b5","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.1-beta.4.tgz","fileCount":178,"integrity":"sha512-tEUXUNFZTIhEkshuIhEcNKcMv9liKmAy3H7CfSlp/4LJHE7VKvTGoHOnU/6lrVJH2VhU84lA3Y5lDVWLQly6yg==","signatures":[{"sig":"MEQCIEzoXjcGNNV7e/iI4XnGrHpjHZUWdL0k7OufL9eKnSClAiBY3Zguz+4KIjyX1viRaOH6rD3Q3vpm5AwYTHmlF7Bn2A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":900109},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"b15c37be63446fc995727d551eab5031c8a33575","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"11.4.2","description":"<!--suppress ALL -->","directories":{},"_nodeVersion":"22.16.0","dependencies":{"rxjs":"^7.8.2","uuid":"^11.1.0","axios":"^1.10.0","tslib":"^2.3.0","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","passport":"^0.7.0","cacheable":"^1.10.0","validator":"13.15.15","@keyv/redis":"^4.4.0","@nestjs/jwt":"^11.0.0","body-parser":"2.2.0","triple-beam":"1.4.1","passport-jwt":"^4.0.1","@nestjs/axios":"^4.0.0","passport-local":"^1.0.0","class-validator":"^0.14.2","@nestjs/passport":"^11.0.5","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.0.1","passport-google-oauth2":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"readmeFilename":"README.md","peerDependencies":{"@nestjs/core":"^11.1.3","@hichchi/utils":"0.0.1-beta.2","@nestjs/common":"^11.1.3","@hichchi/nest-core":"0.0.1-beta.4","@hichchi/nest-connector":"0.0.1-beta.3"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.1-beta.4_1752819453106_0.8046253226130067","host":"s3://npm-registry-packages-npm-production"}},"0.0.1":{"name":"@hichchi/nest-auth","version":"0.0.1","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.1","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"ac17d3c24726910abf543be2048666cc4eca2d55","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.1.tgz","fileCount":175,"integrity":"sha512-cbACIcZvDPtCn3cjl0FyIIAIi1WrSLgwFT4iulTJ12N5rhWj5xF1JkKuqVCcMb/REJYgR4FlJc+iqrQ860G9Eg==","signatures":[{"sig":"MEUCIQCP0L8bf/yhdek24SVKCq1VsF3oeRyb/QE6JmNHi0kJnwIgE0c/zzpp2mpOH1aN/LOv9JIPaAcbAVPBww/iYyUOcKI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":884224},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"8e700cb7ea6f934c9a13315bc4d2d36ef5f5be0f","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"10.8.2","description":"<!--suppress ALL -->","directories":{},"resolutions":{"nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0","@nx/devkit/nx":"22.5.0"},"_nodeVersion":"20.20.0","dependencies":{"rxjs":"^7.8.2","uuid":"^11.1.0","axios":"1.13.5","tslib":"^2.3.0","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","passport":"^0.7.0","cacheable":"^1.10.0","validator":"13.15.26","@keyv/redis":"^4.4.0","@nestjs/jwt":"^11.0.2","body-parser":"2.2.2","triple-beam":"1.4.1","passport-jwt":"^4.0.1","@nestjs/axios":"^4.0.0","passport-local":"^1.0.0","class-validator":"^0.14.2","@nestjs/passport":"^11.0.5","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.1.0","passport-google-oauth2":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@nestjs/core":"^11.1.3","@hichchi/utils":"0.0.1","@nestjs/common":"^11.1.3","@hichchi/nest-core":"0.0.1","@hichchi/nest-connector":"0.0.1"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.1_1770975963647_0.17457898435975783","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@hichchi/nest-auth","version":"0.0.2","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.2","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"617a8034c088872bfd9b8bd20bb0fa02329614a3","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.2.tgz","fileCount":175,"integrity":"sha512-/Kj73IGA5p7VLYGbs4PsU1EfXUdWqGoH4X26JW/6pxTGNYhsD3GaGvHlYcVZIK4BwDofpQgDcodriCDRXLBbRw==","signatures":[{"sig":"MEUCIEDiPVynvggF2uCpwx3f1ff8atb9oCd232gT4Ikugz5jAiEA3uhqmFUUgJThK6e98O4eu9A3Od4kax+v8GVGhSibNkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":884369},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"983e48b190e990df051fc66cc9928f993b664625","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"10.8.2","description":"<!--suppress ALL -->","directories":{},"resolutions":{"nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0","@nx/devkit/nx":"22.5.0"},"_nodeVersion":"20.20.0","dependencies":{"rxjs":"^7.8.2","uuid":"^11.1.0","axios":"1.13.5","tslib":"^2.3.0","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","passport":"^0.7.0","cacheable":"^1.10.0","validator":"13.15.26","@keyv/redis":"^4.4.0","@nestjs/jwt":"^11.0.2","body-parser":"2.2.2","triple-beam":"1.4.1","passport-jwt":"^4.0.1","@nestjs/axios":"^4.0.0","passport-local":"^1.0.0","class-validator":"^0.14.2","@nestjs/passport":"^11.0.5","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.1.0","passport-google-oauth2":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@nestjs/core":"^11.1.13","@hichchi/utils":"0.0.2","@nestjs/common":"^11.1.13","@hichchi/nest-core":"0.0.2","@hichchi/nest-connector":"0.0.2"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.2_1771000608987_0.3130515357196624","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@hichchi/nest-auth","version":"0.0.3","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.3","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"ecaaa28f3e1aab505d48db5ecf33266816264452","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.3.tgz","fileCount":175,"integrity":"sha512-3AJznjyX+qDTS202zmGGwH5RHobTz011h29M+sAIYYyNL5YS4uhVd9CaZT1BAtr6uNmt9A/DP3Kq9UzALP/A+A==","signatures":[{"sig":"MEQCICdcnsxa49MYCObABpqzHXSI3s2qgxM5qZjOn7G17VOQAiADVB1SDikNlG0AHAOj4eQ9bzbDx5vFkevFaqzCTLO8BA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":880137},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"a33b82721445f361f0e79d9f575c7d7b2d2b6ff0","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"10.8.2","description":"NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and","directories":{},"resolutions":{"nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0","@nx/devkit/nx":"22.5.0"},"_nodeVersion":"20.20.0","dependencies":{"rxjs":"^7.8.2","uuid":"^11.1.0","axios":"1.13.5","tslib":"^2.8.1","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","passport":"^0.7.0","cacheable":"^1.10.0","validator":"13.15.26","@keyv/redis":"^4.4.0","@nestjs/jwt":"^11.0.2","body-parser":"2.2.2","triple-beam":"1.4.1","passport-jwt":"^4.0.1","@nestjs/axios":"^4.0.0","passport-local":"^1.0.0","class-validator":"^0.14.2","@nestjs/passport":"^11.0.5","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.1.0","passport-google-oauth2":"^0.2.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"@nestjs/core":"^11.1.13","@hichchi/utils":"0.0.3","@nestjs/common":"^11.1.13","@hichchi/nest-core":"0.0.3","@hichchi/nest-connector":"0.0.3"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.3_1771015094385_0.018761463177262128","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@hichchi/nest-auth","version":"0.0.4","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.4","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"795c9e1d4dd8e83acd923ceea382fe7166e93f8f","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.4.tgz","fileCount":175,"integrity":"sha512-6rTVfLsZKvInqYnBO1QAQWkLvCeF41vFwdvbKzDwS3spoDeS9FfG4HCZbxum874Fi18D3xNvbW15Xde4e+aR+w==","signatures":[{"sig":"MEYCIQCe39vFnLZJjNorgoEvyjPw27ONLCpvVgXddrt7Fa/9VwIhAJ5is9Dq9g2YNCvOiybfbTdZm3GnYAas3tiqMiy7Ggzk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":882896},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"945db660e7bba28e17d58da0bb856736e708db35","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"10.8.2","description":"NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and","directories":{},"resolutions":{"nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0","@nx/devkit/nx":"22.5.0"},"_nodeVersion":"20.20.0","dependencies":{"rxjs":"^7.8.2","uuid":"^11.1.0","axios":"1.13.5","tslib":"^2.8.1","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","cacheable":"^1.10.0","validator":"13.15.26","@keyv/redis":"^5.1.6","@nestjs/jwt":"^11.0.2","body-parser":"2.2.2","triple-beam":"1.4.1","@nestjs/axios":"^4.0.0","class-validator":"^0.14.2","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"passport":"^0.7.0","@nestjs/core":"^11.1.13","passport-jwt":"^4.0.1","@hichchi/utils":"0.0.4","@nestjs/common":"^11.1.13","passport-local":"^1.0.0","@nestjs/passport":"^11.0.5","@hichchi/nest-core":"0.0.4","passport-google-oauth2":"^0.2.0","@hichchi/nest-connector":"0.0.4"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.4_1771328800346_0.7798353700614418","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@hichchi/nest-auth","version":"0.0.5","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.5","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"ed1de7619067737c1645388517c8a128371bf0b7","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.5.tgz","fileCount":178,"integrity":"sha512-w7DqCJg0P7UTnyRVecCGDKzMheiGqSf3DMsj8Zp+e1bFhYsZ+n8ddvLQFxYi/Yjzw32W6jlSAsZVpnKT3FoIRQ==","signatures":[{"sig":"MEYCIQDxrfH0jaoT4/SY9z4R191MC8+qlPqoUb7OjaEFqElfDgIhAIhY85l+IYNn0sk3AtN56Pr84dIpuPJmTyMuBEZwDMoM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":892216},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"c121162f0e7c73fa9689890acdf338b167d99488","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"10.8.2","description":"NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and","directories":{},"resolutions":{"nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0","@nx/devkit/nx":"22.5.0"},"_nodeVersion":"20.20.0","dependencies":{"qs":"6.14.2","rxjs":"^7.8.2","uuid":"^11.1.0","axios":"1.13.5","tslib":"^2.8.1","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","cacheable":"^1.10.0","validator":"13.15.26","@keyv/redis":"^5.1.6","@nestjs/jwt":"^11.0.2","body-parser":"2.2.2","triple-beam":"1.4.1","@nestjs/axios":"^4.0.0","class-validator":"^0.14.2","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.1.0","@types/express-serve-static-core":"4.19.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"passport":"^0.7.0","@nestjs/core":"^11.1.13","passport-jwt":"^4.0.1","@hichchi/utils":"0.0.5","@nestjs/common":"^11.1.13","passport-local":"^1.0.0","@nestjs/passport":"^11.0.5","@hichchi/nest-core":"0.0.5","passport-google-oauth2":"^0.2.0","@hichchi/nest-connector":"0.0.5"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.5_1771368354119_0.5857161447542703","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@hichchi/nest-auth","version":"0.0.6","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.6","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"3ebefcf4a8dd315accc10f06fb168fe815249f68","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.6.tgz","fileCount":178,"integrity":"sha512-3/bhssc/0GDuzggdv4TrsabsUTtBXco/37o1Ng/W4we1wpTR8sPLmKpM0J+nUO8Q1TqnW9f1oJ1E3Tg9mcJj5g==","signatures":[{"sig":"MEQCICxgCfrs8pKMwhX+QV3+UtGfNVavi6j8BbO1kYFPnShqAiBbwg1m6fNx/xTjyanI5N9xvUprr/D2p/RORG/MeLFFBQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":891508},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"b44bdf8a17124fe8613cd83abb500ceb6d4215aa","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"10.8.2","description":"NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and","directories":{},"resolutions":{"nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0","@nx/devkit/nx":"22.5.0"},"_nodeVersion":"20.20.0","dependencies":{"qs":"6.14.2","rxjs":"^7.8.2","uuid":"^11.1.0","axios":"1.13.5","tslib":"^2.8.1","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","cacheable":"^1.10.0","validator":"13.15.26","@keyv/redis":"^5.1.6","@nestjs/jwt":"^11.0.2","body-parser":"2.2.2","triple-beam":"1.4.1","@nestjs/axios":"^4.0.0","class-validator":"^0.14.2","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.1.0","@types/express-serve-static-core":"4.19.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"passport":"^0.7.0","@nestjs/core":"^11.1.13","passport-jwt":"^4.0.1","@hichchi/utils":"0.0.6","@nestjs/common":"^11.1.13","passport-local":"^1.0.0","@nestjs/passport":"^11.0.5","@hichchi/nest-core":"0.0.6","passport-google-oauth2":"^0.2.0","@hichchi/nest-connector":"0.0.6"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.6_1771372697657_0.5194756314243067","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@hichchi/nest-auth","version":"0.0.7","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.7","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"be0d5af66a9b1369ccc0ee71ee22e1fb9125ae4b","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.7.tgz","fileCount":178,"integrity":"sha512-KGFeFMf9Xh/UlnewRlIhsYwedUZROIDXd+XCA9fL+Adov+srevRkasdAooIHx7v8QyZS85EWBhsF7P0YOdypLQ==","signatures":[{"sig":"MEUCIQDyp/XydJ5tqnSIq6NY54pY+NKRhRY9Psw4a0pDJI+JcgIgVv7+qRXdnn+0Qoia1lFqc7tOmQbyt0xH0zGIQZjkOIM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":891651},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"1cb3f5d5b50725cffae7b70afbd699f9c0ac1274","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"10.8.2","description":"NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and","directories":{},"resolutions":{"nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0","@nx/devkit/nx":"22.5.0"},"_nodeVersion":"20.20.0","dependencies":{"qs":"6.14.2","rxjs":"^7.8.2","uuid":"^11.1.0","axios":"1.13.5","tslib":"^2.8.1","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","cacheable":"^1.10.0","validator":"13.15.26","@keyv/redis":"^5.1.6","@nestjs/jwt":"^11.0.2","body-parser":"2.2.2","triple-beam":"1.4.1","@nestjs/axios":"^4.0.0","class-validator":"^0.14.2","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.1.0","@types/express-serve-static-core":"4.19.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"passport":"^0.7.0","@nestjs/core":"^11.1.13","passport-jwt":"^4.0.1","@hichchi/utils":"0.0.7","@nestjs/common":"^11.1.13","passport-local":"^1.0.0","@nestjs/passport":"^11.0.5","@hichchi/nest-core":"0.0.7","passport-google-oauth2":"^0.2.0","@hichchi/nest-connector":"0.0.7"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.7_1771406267959_0.3625202158477183","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@hichchi/nest-auth","version":"0.0.8","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.8","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"3beadc10bc4c16b147a5b2f64f958ce70644d9a5","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.8.tgz","fileCount":181,"integrity":"sha512-tPZQuAwQM8M5dlFp+l0g3vPxgaoYxamO2GQLIKXqi+wEfoKeHYdPnmEjFDEAZskudToEurHgneNw5//+suzQUw==","signatures":[{"sig":"MEUCIGYvr6YcX6CYZyaEVwDgEOUWxgSVXzGh7SBt+WILqpZfAiEAh1mkDAviTjoyHSkJN2EcloxDdLd9pT/Fotb4Yd0iFrs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":901474},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"661708a168a514f0073af7a3e99988a063a581ff","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"10.8.2","description":"NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and","directories":{},"resolutions":{"nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0","@nx/devkit/nx":"22.5.0"},"_nodeVersion":"20.20.0","dependencies":{"qs":"6.14.2","rxjs":"^7.8.2","uuid":"^11.1.0","axios":"1.13.5","tslib":"^2.8.1","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","cacheable":"^1.10.0","validator":"13.15.26","@keyv/redis":"^5.1.6","@nestjs/jwt":"^11.0.2","body-parser":"2.2.2","triple-beam":"1.4.1","@nestjs/axios":"^4.0.0","class-validator":"^0.14.2","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.1.0","@types/express-serve-static-core":"4.19.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"passport":"^0.7.0","@nestjs/core":"^11.1.13","passport-jwt":"^4.0.1","@hichchi/utils":"0.0.8","@nestjs/common":"^11.1.13","passport-local":"^1.0.0","@nestjs/passport":"^11.0.5","@hichchi/nest-core":"0.0.8","passport-google-oauth2":"^0.2.0","@hichchi/nest-connector":"0.0.8"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.8_1771530551814_0.9041841998926308","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@hichchi/nest-auth","version":"0.0.9","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.9","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"91cc29823a353cd3c48fefe94826287bc2627261","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.9.tgz","fileCount":181,"integrity":"sha512-K/yGwR9oP8MOwGH6tYvK3UmkQU5ydzFLzCYJPS87NjOSn2hB6Tc8Fct2KO/G0h+KrtRcwnbwNeF0z4UHnxEK2w==","signatures":[{"sig":"MEUCIBPwrK/KMYMZpe4NAqqJGmT9i04clF2x+Au8Wsr4GGC7AiEAoBEgw1rqgwWBzTrHdifaeGoyROGDOcLvkO9Hs4o4qLs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":901723},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"7cc8f718fda8fd802c5c3750a7189d04a95d48d3","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"10.8.2","description":"NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and","directories":{},"resolutions":{"nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0","@nx/devkit/nx":"22.5.0"},"_nodeVersion":"20.20.0","dependencies":{"qs":"6.14.2","rxjs":"^7.8.2","uuid":"^11.1.0","axios":"1.13.5","tslib":"^2.8.1","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","cacheable":"^1.10.0","validator":"13.15.26","@keyv/redis":"^5.1.6","@nestjs/jwt":"^11.0.2","body-parser":"2.2.2","triple-beam":"1.4.1","@nestjs/axios":"^4.0.0","class-validator":"^0.14.2","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.1.0","@types/express-serve-static-core":"4.19.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"passport":"^0.7.0","@nestjs/core":"^11.1.13","passport-jwt":"^4.0.1","@hichchi/utils":"0.0.9","@nestjs/common":"^11.1.13","passport-local":"^1.0.0","@nestjs/passport":"^11.0.5","@hichchi/nest-core":"0.0.9","passport-google-oauth2":"^0.2.0","@hichchi/nest-connector":"0.0.9"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.9_1771569942144_0.12406828652129898","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@hichchi/nest-auth","version":"0.0.10","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.10","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"177f39339e26704f0dbb7bd2dc61340bdcfc6bd5","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.10.tgz","fileCount":181,"integrity":"sha512-WsJPREwNL0HnkYgGWfiOIgHBT6PRo42UjRNrEgJCqE0A/+eWeQh7GWIxiHALqmkAgjp6nJIoZe4cMV2EF1Y+Kw==","signatures":[{"sig":"MEUCIQDS5lqmxBW/kh+3T4acGf/z1LkNeD6YiiRSuGMQ7frT/AIgSN2dq4+JawUzoN9HMk6FZn8qEoU3oCRymQF6Fxpoa1A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":901870},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"d14d227d063dec0e02398be1ff6d0b6c97d6074c","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"10.9.3","description":"NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and","directories":{},"resolutions":{"nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0","@nx/devkit/nx":"22.5.0"},"_nodeVersion":"22.20.0","dependencies":{"qs":"6.14.2","rxjs":"^7.8.2","uuid":"^11.1.0","axios":"1.13.5","tslib":"^2.8.1","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","cacheable":"^1.10.0","validator":"13.15.26","@keyv/redis":"^5.1.6","@nestjs/jwt":"^11.0.2","body-parser":"2.2.2","triple-beam":"1.4.1","@nestjs/axios":"^4.0.0","class-validator":"^0.14.2","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.1.0","@types/express-serve-static-core":"4.19.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"passport":"^0.7.0","@nestjs/core":"^11.1.13","passport-jwt":"^4.0.1","@hichchi/utils":"0.0.10","@nestjs/common":"^11.1.13","passport-local":"^1.0.0","@nestjs/passport":"^11.0.5","@hichchi/nest-core":"0.0.10","passport-google-oauth2":"^0.2.0","@hichchi/nest-connector":"0.0.10"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.10_1772963556575_0.08633984690168028","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@hichchi/nest-auth","version":"0.0.11","keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","_id":"@hichchi/nest-auth@0.0.11","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"homepage":"https://github.com/hichchidev/hichchi#readme","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"dist":{"shasum":"47fb3a0a5708301deb400d42b45d005a91157904","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.11.tgz","fileCount":181,"integrity":"sha512-yjurBDgEhfTSF0CudfdOlrMiYsdqa8JUlzWpz/vqzH98H3t8C30XOUgWw9NJLnvcBSaygfbvZ7htyz8Dp3QeQg==","signatures":[{"sig":"MEQCIEiNIJEfHbkp3SzDS4+xJdyZp4bFL3WShojH0eA4++07AiAi7aMBz0vddZRMf8gf2cZgMWM5a12jzgK3CUE7qFRP2Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":902017},"main":"./index.js","type":"commonjs","types":"./index.d.ts","gitHead":"4b386b0d4bbd54a3aac6dbdfd2e8cb551fe2600d","typings":"./index.d.ts","_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"repository":{"url":"git+https://github.com/hichchidev/hichchi.git","type":"git"},"_npmVersion":"10.9.3","description":"NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and","directories":{},"resolutions":{"nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0","@nx/devkit/nx":"22.5.0"},"_nodeVersion":"22.20.0","dependencies":{"qs":"6.14.2","rxjs":"^7.8.2","uuid":"^11.1.0","axios":"1.13.5","tslib":"^2.8.1","bcrypt":"^6.0.0","express":"5.1.0","logform":"2.7.0","winston":"^3.17.0","cacheable":"^1.10.0","validator":"13.15.26","@keyv/redis":"^5.1.6","@nestjs/jwt":"^11.0.2","body-parser":"2.2.2","triple-beam":"1.4.1","@nestjs/axios":"^4.0.0","class-validator":"^0.14.2","class-transformer":"^0.5.1","winston-transport":"4.9.0","fast-safe-stringify":"^2.1.1","@nestjs/cache-manager":"^3.1.0","@types/express-serve-static-core":"4.19.8"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"passport":"^0.7.0","@nestjs/core":"^11.1.13","passport-jwt":"^4.0.1","@hichchi/utils":"0.0.11","@nestjs/common":"^11.1.13","passport-local":"^1.0.0","@nestjs/passport":"^11.0.5","@hichchi/nest-core":"0.0.11","passport-google-oauth2":"^0.2.0","@hichchi/nest-connector":"0.0.11"},"_npmOperationalInternal":{"tmp":"tmp/nest-auth_0.0.11_1773003776521_0.9025831354492426","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@hichchi/nest-auth","description":"NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and","version":"0.0.12","publishConfig":{"access":"public"},"repository":{"type":"git","url":"git+https://github.com/hichchidev/hichchi.git"},"keywords":[],"author":{"name":"Waruna Udayanga"},"license":"MIT","type":"commonjs","main":"./index.js","typings":"./index.d.ts","dependencies":{"@keyv/redis":"^5.1.6","@nestjs/axios":"^4.0.0","@nestjs/cache-manager":"^3.1.0","@nestjs/jwt":"^11.0.2","@types/express-serve-static-core":"4.19.8","axios":"1.13.5","bcrypt":"^6.0.0","body-parser":"2.2.2","cacheable":"^1.10.0","class-transformer":"^0.5.1","class-validator":"^0.14.2","express":"5.1.0","fast-safe-stringify":"^2.1.1","logform":"2.7.0","qs":"6.14.2","rxjs":"^7.8.2","triple-beam":"1.4.1","tslib":"^2.8.1","uuid":"^11.1.0","validator":"13.15.26","winston":"^3.17.0","winston-transport":"4.9.0"},"peerDependencies":{"@hichchi/nest-connector":"0.0.12","@hichchi/nest-core":"0.0.12","@hichchi/utils":"0.0.12","@nestjs/common":"^11.1.13","@nestjs/core":"^11.1.13","@nestjs/passport":"^11.0.5","passport":"^0.7.0","passport-google-oauth2":"^0.2.0","passport-jwt":"^4.0.1","passport-local":"^1.0.0"},"resolutions":{"nx":"22.5.0","@nx/devkit/nx":"22.5.0","jest":"29.7.0","ts-jest":"29.4.0"},"types":"./index.d.ts","_id":"@hichchi/nest-auth@0.0.12","gitHead":"c28031a351f7c598b93a01e0a34897e9b1d7c12c","bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"homepage":"https://github.com/hichchidev/hichchi#readme","_nodeVersion":"22.20.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-Eij+ORx0jELC+ZCZ5WWdeQWF4KpQDB/63WLVK3vzcC0yz4bZNZWDpAWvyGizTyQ/JZN715F8KV6KKwwCcVvG9w==","shasum":"4163ccbddabe54610f6c7f6626e73a4a75992447","tarball":"https://registry.npmjs.org/@hichchi/nest-auth/-/nest-auth-0.0.12.tgz","fileCount":181,"unpackedSize":902188,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICVqJAv5W1JM3boJxD7ZqpusUrA7b51Xc8BZh8kskA0pAiB1CFS8Y16Le50/IJJ+P/Xs0kLSgw7MS2I0qMePQdATFA=="}]},"_npmUser":{"name":"hichchidev","email":"hichchidev@gmail.com"},"directories":{},"maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/nest-auth_0.0.12_1773179549896_0.8026049858641813"},"_hasShrinkwrap":false}},"time":{"created":"2025-06-23T05:00:14.270Z","modified":"2026-03-10T21:52:30.240Z","0.0.1-alpha.0":"2025-06-23T05:00:14.699Z","0.0.1-alpha.1":"2025-06-23T08:38:49.729Z","0.0.1-beta.0":"2025-07-15T13:38:40.707Z","0.0.1-beta.1":"2025-07-16T16:56:19.166Z","0.0.1-beta.2":"2025-07-16T18:00:05.402Z","0.0.1-beta.3":"2025-07-17T04:41:04.589Z","0.0.1-beta.4":"2025-07-18T06:17:33.355Z","0.0.1-test.0":"2025-07-18T14:18:32.468Z","0.0.1-test.1":"2025-07-18T14:30:58.501Z","0.0.1-test.2":"2025-07-18T14:52:39.484Z","0.0.1-test.3":"2025-07-18T15:23:16.017Z","0.0.1-test.4":"2025-07-18T15:32:03.113Z","0.0.1":"2026-02-13T09:46:03.861Z","0.0.2":"2026-02-13T16:36:49.201Z","0.0.3":"2026-02-13T20:38:14.649Z","0.0.4":"2026-02-17T11:46:40.561Z","0.0.5":"2026-02-17T22:45:54.331Z","0.0.6":"2026-02-17T23:58:17.831Z","0.0.7":"2026-02-18T09:17:48.217Z","0.0.8":"2026-02-19T19:49:12.108Z","0.0.9":"2026-02-20T06:45:42.350Z","0.0.10":"2026-03-08T09:52:36.741Z","0.0.11":"2026-03-08T21:02:56.713Z","0.0.12":"2026-03-10T21:52:30.126Z"},"bugs":{"url":"https://github.com/hichchidev/hichchi/issues"},"author":{"name":"Waruna Udayanga"},"license":"MIT","homepage":"https://github.com/hichchidev/hichchi#readme","keywords":[],"repository":{"type":"git","url":"git+https://github.com/hichchidev/hichchi.git"},"description":"NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and","maintainers":[{"name":"hichchidev","email":"hichchidev@gmail.com"}],"readme":"<!--suppress ALL -->\n\n<div align=\"center\">\n\n# 🔐 @hichchi/nest-auth\n\n## Description\n\n**NestJS authentication extension library that extends @hichchi/nest-core functionality with comprehensive JWT tokens, Google OAuth, local authentication, role-based access control, permission guards, user caching, encryption services, token management, and enterprise-grade security features - cannot be used independently, requires nest-core as foundation**\n\n[![npm version](https://img.shields.io/npm/v/@hichchi/nest-auth?style=flat&color=blue)](https://www.npmjs.com/package/@hichchi/nest-auth)\n[![npm downloads](https://img.shields.io/npm/dm/@hichchi/nest-auth?style=flat&color=green)](https://www.npmjs.com/package/@hichchi/nest-auth)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/hichchidev/hichchi/blob/main/LICENSE)\n[![NestJS](https://img.shields.io/badge/nestjs-11.1.3-red.svg)](https://nestjs.com/)\n\n_Part of the [Hichchi](https://github.com/hichchidev/hichchi) ecosystem - A powerful, scalable application built with Nx workspace_\n\n[📚 Jump to Documentation](#-api-documentation)\n\n</div>\n\n---\n\n## 📋 Table of Contents\n\n- [📦 Installation](#-installation)\n- [⚡ Quick Start](#-quick-start)\n- [📋 Prerequisites](#-prerequisites)\n- [🌟 Overview](#-overview)\n- [✨ Features](#-features)\n- [🚀 Usage](#-usage)\n- [🔧 Configuration Reference](#-configuration-reference)\n- [🔧 Development](#-development)\n- [📖 API Documentation](#-api-documentation)\n\n---\n\n## 📦 Installation\n\n```bash\nnpm install @hichchi/nest-core @hichchi/nest-auth\n```\n\n## ⚡ Quick Start\n\nGet up and running with authentication in just a few minutes! This guide will walk you through setting up a complete authentication system with JWT tokens, user management, and secure endpoints.\n\n#### 1. Create a NestJS service implementing `IUserService`\n\nFirst, you need to create a service that handles user operations in your database. This service must implement the `IUserService` interface to work with the authentication module.\n\n**_NOTE:_** All available methods can be found in the [IUserService](#iuserservice) interface documentation.\n\n```typescript\nimport { Injectable } from \"@nestjs/common\";\nimport { GoogleProfile, IUserService } from \"@hichchi/nest-auth\";\nimport { AuthProvider, User } from \"@hichchi/nest-connector/auth\";\nimport { EntityId } from \"@hichchi/nest-connector/crud\";\n\n@Injectable()\nexport class UserService implements IUserService {\n  /**\n   * Find user by email address (required for email-based authentication)\n   */\n  getUserByEmail(email: string): Promise<(User & { email: string }) | null> {\n    // Implement your database query logic here\n    // Example: return await this.userRepository.findOne({ where: { email } });\n  }\n\n  /**\n   * Find user by username (required for username-based authentication)\n   */\n  getUserByUsername(\n    username: string,\n  ): Promise<(User & { username: string }) | null> {\n    // Implement your database query logic here\n    // Example: return this.userRepository.findOne({ where: { username } });\n  }\n\n  /**\n   * Find user by ID (required for token validation and user profile operations)\n   */\n  getUserById(id: EntityId): Promise<User | null> {\n    // Implement your database query logic here\n    // Example: return this.userRepository.findOne({ where: { id } });\n  }\n\n  /**\n   * Create new user during registration (supports both local and OAuth registration)\n   */\n  signUpUser(\n    userDto: Partial<User>,\n    signUpType: AuthProvider,\n    profile?: GoogleProfile,\n  ): Promise<User | null> {\n    // Implement user creation logic here\n    // Handle password hashing for local registration\n    // Handle OAuth profile data for social registration\n    // Example: return this.createUser(userDto, signUpType, profile);\n  }\n\n  /**\n   * Update existing user information (required for profile updates)\n   */\n  updateUserById(\n    id: EntityId,\n    userDto: Partial<User>,\n    updatedBy: User,\n  ): Promise<User | null> {\n    // Implement user update logic here\n    // Example: return this.userRepository.update(id, userDto);\n  }\n}\n```\n\n#### 2. Create and export your user module\n\nCreate a module that provides your user service and makes it available for dependency injection.\n\n```typescript\nimport { Module } from \"@nestjs/common\";\nimport { UserService } from \"./services\";\n\n@Module({\n  providers: [UserService],\n  // Export the service so it can be used by the auth module\n  exports: [UserService],\n})\nexport class UserModule {}\n```\n\n#### 3. Register the authentication module in your `app.module.ts`\n\nConfigure the authentication module by providing your user service and setting up authentication options.\n\n**_NOTE:_** All available configuration options can be found in the [AuthOptions](#authoptions) interface documentation.\n\n```typescript\nimport { Module } from \"@nestjs/common\";\nimport { AuthField, AuthMethod } from \"@hichchi/nest-connector/auth\";\nimport { HichchiAuthModule } from \"@hichchi/nest-auth\";\nimport { UserModule } from \"./user/user.module\";\n\n@Module({\n  imports: [\n    // Register the authentication module with your user service\n    HichchiAuthModule.register(\n      {\n        imports: [UserModule], // Import your user module\n        useExisting: UserService, // Use your existing user service\n      },\n      {\n        // Optional: Redis configuration for token caching and session management\n        redis: {\n          host: \"localhost\",\n          port: 6379,\n          prefix: \"nest-auth\", // Prefix for Redis keys\n        },\n        // JWT token configuration\n        jwt: {\n          secret: \"your-super-secret-jwt-key-here\", // Use a strong secret in production\n          expiresIn: 86400, // Access token expires in 24 hours (in seconds)\n          refreshSecret: \"your-super-secret-refresh-key-here\", // Use a different secret for refresh tokens\n          refreshExpiresIn: 604800, // Refresh token expires in 7 days (in seconds)\n        },\n        authMethod: AuthMethod.JWT, // Use JWT-based authentication\n        authField: AuthField.EMAIL, // Authenticate users by email address\n        validationExceptionFactory: true, // Enable detailed validation error messages\n      },\n    ),\n  ],\n})\nexport class AppModule {}\n```\n\n#### 4. Start using the authentication endpoints\n\nOnce configured, your application will automatically have the following authentication endpoints available under `/auth`:\n\n**Authentication Endpoints:**\n\n- `POST /auth/sign-up` - Register a new user account\n- `POST /auth/sign-in` - Login with email/username and password\n- `POST /auth/sign-out` - Logout and invalidate tokens\n- `POST /auth/refresh-token` - Refresh access tokens using refresh token\n- `POST /auth/get-auth-response` - Get authentication response from an existing token\n- `GET /auth/me` - Get current user profile (requires authentication)\n- `POST /auth/change-password` - Change user password (requires authentication)\n- `POST /auth/request-password-reset` - Request password reset\n- `POST /auth/reset-password-verify` - Verify password reset token/code\n- `POST /auth/reset-password` - Reset password using reset token\n- `POST /auth/resend-email-verification` - Send verification email again\n- `POST /auth/verify-email` - Verify email address\n- `GET /auth/google-sign-in` - Initiate Google OAuth login (if configured)\n- `GET /auth/google-callback` - Google OAuth callback endpoint\n\n**_NOTE:_** All available endpoints are also available from `AuthEndpoint` enum of the [@hichchi/nest-connector](https://www.npmjs.com/package/@hichchi/nest-connector) package\n\n**Example Usage:**\n\n```bash\n# Register a new user\ncurl -X POST http://localhost:3000/auth/sign-up \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\": \"user@example.com\", \"password\": \"securePassword123\"}'\n\n# Login\ncurl -X POST http://localhost:3000/auth/sign-in \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"email\": \"user@example.com\", \"password\": \"securePassword123\"}'\n\n# Access protected profile endpoint (include JWT token in Authorization header)\ncurl -X GET http://localhost:3000/auth/me \\\n  -H \"Authorization: Bearer YOUR_JWT_TOKEN_HERE\"\n```\n\nYour authentication system is now ready to use! 🎉\n\n## 📋 Prerequisites\n\nBefore installing @hichchi/nest-auth, ensure you have:\n\n### Required Dependencies\n\n- **Node.js**: >= 18.0.0\n- **NestJS**: >= 11.0.0\n- **TypeScript**: >= 5.6.0\n\n### Peer Dependencies\n\n```bash\nnpm install @nestjs/common @nestjs/core @nestjs/jwt @nestjs/passport\nnpm install passport passport-local passport-jwt\nnpm install bcrypt jsonwebtoken\n```\n\n### Internal Dependencies\n\nThis package depends on:\n\n```bash\nnpm install @hichchi/nest-connector @hichchi/nest-core @hichchi/utils\n```\n\n### Optional Dependencies\n\nFor enhanced features:\n\n```bash\n# For Google OAuth\nnpm install passport-google-oauth20\n```\n\n### Database Requirements\n\n- A user entity/model in your database\n- User service that implements basic CRUD operations\n- Fields for email/username and password storage\n\n## 🌟 Overview\n\n🎯 **Your complete authentication toolkit** for NestJS applications. From JWT tokens to Google OAuth, from Redis caching to encryption services - everything you need to secure your application with enterprise-grade authentication features.\n\n## ✨ Features\n\n### 🚀 Ready-to-Use Authentication Endpoints\n\n- 📝 **User Registration** - Complete sign-up flow with email verification\n- 🔐 **User Login/Logout** - Secure authentication with JWT tokens\n- 🔄 **Token Refresh** - Automatic token renewal for seamless user experience\n- 👤 **User Profile Management** - Get current user info and update profiles\n- 🔑 **Password Management** - Change password and reset password functionality\n- ✉️ **Email Verification** - Built-in email verification system\n- 🌐 **Google OAuth Integration** - Social login with Google authentication\n\n### 🔐 Authentication Strategies\n\n- 🔑 **JWT Authentication** - Secure token-based authentication with customizable options\n- 👤 **Local Authentication** - Traditional username/password authentication\n- 🌐 **Google OAuth 2.0** - Social authentication integration\n\n### 🛡️ Route Protection\n\n- 🔒 **JWT Auth Guard** - Protect your routes with JWT token validation\n- 👮 **Role-Based Access Control** - Restrict access based on user roles with tenant-aware user typing support\n- 🎫 **Permission-Based Access Control** - Fine-grained permission system\n- 🌍 **Google Auth Guard** - Protect routes with Google OAuth\n\n### 🎯 Helpful Decorators\n\n- 👤 **@CurrentUser** - Get the authenticated user in your controllers\n- 🏷️ **@Roles** - Define required roles for route access\n- 🎫 **@Permission** - Define required permissions for route access\n- 📋 **@AuthInfo** - Access authentication metadata\n\n### 🔧 Configuration Options\n\n- 🔧 **Flexible Module Setup** - Easy configuration with your existing user service\n- ⚡ **Redis Caching** - Optional Redis integration for improved performance\n- 🔒 **Security Settings** - Customizable JWT options, password requirements\n- 🌐 **Multi-tenant Support** - tenant-based authentication with normalized tenant slug claims in JWT payloads\n- 🔌 **WebSocket Support** - Real-time authentication for WebSocket connections\n\n## 🚀 Usage\n\n### Using Guards\n\n#### `JwtAuthGuard`\n\nThis guard is used to authenticate requests using JWT tokens. It validates JWT tokens from either the Authorization header (Bearer token) or cookies, depending on your authentication method configuration. The guard also supports automatic token refresh when using cookie-based authentication.\n\n```typescript\nimport { JwtAuthGuard, CurrentUser, AuthUser } from \"@hichchi/nest-auth\";\nimport { UseGuards, Post, Get, Body } from \"@nestjs/common\";\n\n// In a controller - protect routes that require authentication\n@UseGuards(JwtAuthGuard)\n@Post()\ncreate(@Body() dto: CreateUserDto, @CurrentUser() user: AuthUser): Promise<User | null> {\n  return this.userService.save(dto);\n}\n\n// Get current user profile\n@UseGuards(JwtAuthGuard)\n@Get('profile')\ngetProfile(@CurrentUser() user: AuthUser): AuthUser {\n  return user;\n}\n```\n\n#### `LocalAuthGuard`\n\nThis guard is used to authenticate users with username/password credentials (local authentication). It validates that the required credentials (email/username and password) are provided in the request body before proceeding with authentication using the local strategy.\n\nUsually used with `@CurrentUser()` decorator - the `LocalAuthGuard` handles the authentication part and returns the authenticated user to the request, and the decorator is used to access the authenticated user from the request.\n\n```typescript\nimport {\n  AuthUser,\n  CurrentUser,\n  LocalAuthGuard,\n  SignInDto\n} from \"@hichchi/nest-auth\";\nimport { AuthEndpoint, AuthResponse } from \"@hichchi/nest-connector/auth\";\nimport { HttpSuccessStatus } from \"@hichchi/nest-connector\";\nimport { Post, HttpCode, UseGuards, Body } from \"@nestjs/common\";\n\n// In a controller - for sign-in endpoint\n@Post(AuthEndpoint.SIGN_IN)\n@HttpCode(HttpSuccessStatus.OK)\n@UseGuards(LocalAuthGuard)\nsignIn(\n  @CurrentUser() authUser: AuthUser,\n  @Body() signInDto: SignInDto,\n): Promise<AuthResponse> {\n  return this.authService.signIn(authUser, signInDto);\n}\n```\n\n#### `GoogleAuthGuard`\n\nThis guard is used to authenticate users with Google OAuth 2.0. It handles the OAuth authentication flow, validates that Google authentication is properly configured, and manages authentication callbacks from Google's OAuth service. Requires Google OAuth configuration in your auth options.\n\n```typescript\nimport { GoogleAuthGuard } from \"@hichchi/nest-auth\";\nimport { UseGuards, Get, Query } from \"@nestjs/common\";\n\n// Initiate Google OAuth authentication\n@UseGuards(GoogleAuthGuard)\n@Get('google-sign-in')\ngoogleSignIn(@Query('redirectUrl') redirectUrl: string): void {\n  // This route initiates Google OAuth authentication\n  // User will be redirected to Google's OAuth consent screen\n}\n\n// Handle Google OAuth callback\n@UseGuards(GoogleAuthGuard)\n@Get('google-callback')\ngoogleCallback(): void {\n  // This route handles the callback from Google after authentication\n  // The guard processes the OAuth response and authenticates the user\n}\n```\n\n### Using Decorators\n\n#### `@CurrentUser`\n\nThis decorator is used to extract the authenticated user information from the request context. It removes sensitive information like password and provides access to user details in controller methods. Requires authentication guard to be applied to the route.\n\n```typescript\nimport { CurrentUser, AuthUser, JwtAuthGuard } from \"@hichchi/nest-auth\";\nimport { UseGuards, Get, Post, Body } from \"@nestjs/common\";\n\n// Get current authenticated user\n@UseGuards(JwtAuthGuard)\n@Get('profile')\ngetProfile(@CurrentUser() user: AuthUser): AuthUser {\n  return user; // Password is automatically removed\n}\n\n// Use current user in business logic\n@UseGuards(JwtAuthGuard)\n@Post('users')\ncreateUser(@Body() dto: CreateUserDto, @CurrentUser() user: AuthUser): Promise<User> {\n  return this.userService.save({ ...dto, createdBy: user.id });\n}\n```\n\n#### `@Roles`\n\nThis decorator is used to define required roles for route access. Works with role-based access control to restrict endpoints based on user roles.\n\n```typescript\nimport { Roles, RoleGuard, JwtAuthGuard } from \"@hichchi/nest-auth\";\nimport { UseGuards, Delete, Put, Param, Body } from \"@nestjs/common\";\n\n// Require admin role\n@UseGuards(JwtAuthGuard, RoleGuard)\n@Roles('admin')\n@Delete(':id')\ndeleteUser(@Param('id') id: string): Promise<void> {\n  return this.userService.delete(id);\n}\n\n// Require multiple roles (user must have at least one)\n@UseGuards(JwtAuthGuard, RoleGuard)\n@Roles('admin', 'moderator')\n@Patch(':id')\nupdateUser(@Param('id') id: string, @Body() dto: UpdateUserDto): Promise<User> {\n  return this.userService.update(id, dto);\n}\n```\n\n#### `@Permission`\n\nThis decorator is used to define required permissions for route access. Provides fine-grained permission-based access control.\n\n```typescript\nimport { Permission, PermissionGuard, JwtAuthGuard } from \"@hichchi/nest-auth\";\nimport { UseGuards, Get, Delete, Param } from \"@nestjs/common\";\n\n// Require specific permission\n@UseGuards(JwtAuthGuard, PermissionGuard)\n@Permission('users:read')\n@Get()\ngetUsers(): Promise<User[]> {\n  return this.userService.findAll();\n}\n\n// Require multiple permissions\n@UseGuards(JwtAuthGuard, PermissionGuard)\n@Permission('users:write', 'users:delete')\n@Delete(':id')\ndeleteUser(@Param('id') id: string): Promise<void> {\n  return this.userService.delete(id);\n}\n```\n\n#### `@AuthInfo`\n\nThis decorator is used to access authentication metadata and additional information about the current authentication context.\n\n```typescript\nimport { AuthInfo, JwtAuthGuard } from \"@hichchi/nest-auth\";\nimport { UseGuards, Get } from \"@nestjs/common\";\n\n// Access authentication metadata\n@UseGuards(JwtAuthGuard)\n@Get('session-info')\ngetSessionInfo(@AuthInfo() authInfo: any): any {\n  return {\n    tokenType: authInfo.tokenType,\n    issuedAt: authInfo.iat,\n    expiresAt: authInfo.exp,\n    // Additional auth metadata\n  };\n}\n```\n\n#### `@SocketId`\n\nThis decorator is used to extract the socket ID from the authenticated user's token data in the request. It provides easy access to the socket ID within controller methods for WebSocket-related functionality. Requires authentication guard to be applied to the route.\n\n```typescript\nimport { SocketId, JwtAuthGuard } from \"@hichchi/nest-auth\";\nimport { UseGuards, Get, Post, Body } from \"@nestjs/common\";\n\n// Get socket ID for WebSocket operations\n@UseGuards(JwtAuthGuard)\n@Get('socket-info')\ngetSocketInfo(@SocketId() socketId: string): any {\n  return {\n    socketId,\n    message: 'Socket ID retrieved successfully'\n  };\n}\n\n// Use socket ID in business logic\n@UseGuards(JwtAuthGuard)\n@Post('users/:id/update')\nupdateUserWithSocket(@Param('id') id: string, @Body() dto: UpdateUserDto, @SocketId() socketId: string): Promise<User> {\n  return this.userService.update(id, { ...dto, socketId });\n}\n```\n\n#### `@Tenant`\n\nThis decorator is used to extract the tenant identifier from the incoming request headers using the configured tenant header key. It provides a simple way to access tenant context in controller methods for multi-tenant routing and business logic.\n\n```typescript\nimport { Tenant, JwtAuthGuard } from \"@hichchi/nest-auth\";\nimport { UseGuards, Get, Post, Body } from \"@nestjs/common\";\n\n// Read tenant context from request headers\n@UseGuards(JwtAuthGuard)\n@Get('tenant-context')\ngetTenantContext(@Tenant() tenant: TenantSlug): any {\n  return {\n    tenant,\n    message: 'Tenant resolved successfully'\n  };\n}\n\n// Use tenant in service operations\n@UseGuards(JwtAuthGuard)\n@Post('users')\ncreateTenantUser(@Body() dto: CreateUserDto, @Tenant() tenant: TenantSlug): Promise<User> {\n  return this.userService.createForTenant(tenant, dto);\n}\n```\n\n### Using Extractors\n\n#### `cookieExtractor`\n\nThis extractor function is used to extract JWT access tokens from request cookies. It's primarily used internally by the authentication system when using cookie-based authentication, but can also be used in custom authentication strategies.\n\n```typescript\nimport { cookieExtractor } from \"@hichchi/nest-auth\";\nimport { ExtractJwt } from \"passport-jwt\";\nimport { Request } from \"express\";\n\n// Use with passport-jwt ExtractJwt.fromExtractors\nconst jwtOptions = {\n  jwtFromRequest: ExtractJwt.fromExtractors([cookieExtractor]),\n  secretOrKey: \"your-secret-key\",\n};\n\n// Manual usage to extract token from request\nfunction extractTokenFromCookies(request: Request): string | null {\n  return cookieExtractor(request);\n}\n\n// Example in a custom strategy\n@Injectable()\nexport class CustomJwtStrategy extends PassportStrategy(\n  Strategy,\n  \"custom-jwt\",\n) {\n  constructor() {\n    super({\n      jwtFromRequest: ExtractJwt.fromExtractors([\n        cookieExtractor, // Extract from cookies first\n        ExtractJwt.fromAuthHeaderAsBearerToken(), // Fallback to Authorization header\n      ]),\n      secretOrKey: process.env.JWT_SECRET,\n    });\n  }\n}\n```\n\n### Using Utilities\n\n#### Configuration Validation Functions\n\nThese utility functions help validate authentication configuration during module setup to ensure all required options are properly configured.\n\n##### `validateRedisOptions`\n\nValidates Redis connection options to ensure either a URL or host is provided for establishing a connection.\n\n```typescript\nimport { validateRedisOptions } from \"@hichchi/nest-auth\";\nimport { RedisOptions } from \"@hichchi/nest-core\";\n\n// Validate Redis configuration before using\nconst redisConfig: RedisOptions = {\n  host: \"localhost\",\n  port: 6379,\n  prefix: \"auth-cache\",\n};\n\ntry {\n  validateRedisOptions(redisConfig);\n  console.log(\"Redis configuration is valid\");\n} catch (error) {\n  console.error(\"Invalid Redis configuration:\", error.message);\n}\n\n// Example with URL-based configuration\nconst redisUrlConfig: RedisOptions = {\n  url: \"redis://localhost:6379\",\n};\n\nvalidateRedisOptions(redisUrlConfig); // Will pass validation\n```\n\n##### `validateJwtOptions`\n\nValidates JWT configuration options to ensure all required secrets and expiration times are provided.\n\n```typescript\nimport { validateJwtOptions } from \"@hichchi/nest-auth\";\nimport { JwtOptions } from \"@hichchi/nest-auth\";\n\n// Validate JWT configuration\nconst jwtConfig: JwtOptions = {\n  secret: \"your-access-token-secret\",\n  expiresIn: 3600, // 1 hour\n  refreshSecret: \"your-refresh-token-secret\",\n  refreshExpiresIn: 604800, // 7 days\n};\n\ntry {\n  validateJwtOptions(jwtConfig);\n  console.log(\"JWT configuration is valid\");\n} catch (error) {\n  console.error(\"Invalid JWT configuration:\", error.message);\n}\n\n// Example usage in module configuration\n@Module({\n  imports: [\n    HichchiAuthModule.register(\n      {\n        /* user service config */\n      },\n      {\n        jwt: jwtConfig, // This will be validated internally\n        // other auth options...\n      },\n    ),\n  ],\n})\nexport class AppModule {}\n```\n\n##### `validateUserServiceProvider`\n\nValidates that a user service implements all required methods based on the authentication configuration.\n\n```typescript\nimport { validateUserServiceProvider } from \"@hichchi/nest-auth\";\nimport { IUserService, AuthOptions } from \"@hichchi/nest-auth\";\nimport { AuthField } from \"@hichchi/nest-connector/auth\";\n\n// Example user service implementation\n@Injectable()\nexport class UserService implements IUserService {\n  async getUserByEmail(email: string) {\n    /* implementation */\n  }\n  async getUserByUsername(username: string) {\n    /* implementation */\n  }\n  async getUserById(id: string) {\n    /* implementation */\n  }\n  async signUpUser(userDto: any) {\n    /* implementation */\n  }\n  async updateUserById(id: string, userDto: any) {\n    /* implementation */\n  }\n}\n\n// Validate the user service against auth configuration\nconst authOptions: AuthOptions = {\n  authField: AuthField.EMAIL,\n  jwt: {\n    /* jwt config */\n  },\n  googleAuth: {\n    /* google config */\n  },\n};\n\nconst userService = new UserService();\n\ntry {\n  validateUserServiceProvider(userService, authOptions);\n  console.log(\"User service implements all required methods\");\n} catch (error) {\n  console.error(\"User service validation failed:\", error.message);\n}\n```\n\n#### User Management Functions\n\n##### `generateAuthUser`\n\nGenerates an AuthUser object from cached user data and access token, combining user information with session details.\n\n```typescript\nimport { generateAuthUser } from \"@hichchi/nest-auth\";\nimport { CacheUser, AuthUser } from \"@hichchi/nest-auth\";\n\n// Example cached user data\nconst cacheUser: CacheUser = {\n  id: \"user-123\",\n  firstName: \"John\",\n  lastName: \"Doe\",\n  email: \"john.doe@example.com\",\n  roles: [\"user\"],\n  sessions: [\n    {\n      sessionId: \"session-456\",\n      accessToken: \"jwt-access-token-here\",\n      refreshToken: \"jwt-refresh-token-here\",\n    },\n  ],\n};\n\n// Generate AuthUser from cache and token\ntry {\n  const authUser: AuthUser = generateAuthUser(\n    cacheUser,\n    \"jwt-access-token-here\",\n  );\n\n  console.log(\"Generated AuthUser:\", {\n    id: authUser.id,\n    fullName: authUser.fullName, // 'John Doe' - automatically generated\n    email: authUser.email,\n    sessionId: authUser.sessionId,\n    accessToken: authUser.accessToken,\n    refreshToken: authUser.refreshToken,\n  });\n} catch (error) {\n  console.error(\"Failed to generate AuthUser:\", error.message);\n}\n\n// Example usage in a custom authentication service\n@Injectable()\nexport class CustomAuthService {\n  constructor(private cacheService: UserCacheService) {}\n\n  async getAuthenticatedUser(accessToken: string): Promise<AuthUser> {\n    // Get user from cache (implementation depends on your cache strategy)\n    const cacheUser = await this.cacheService.getUserByToken(accessToken);\n\n    if (!cacheUser) {\n      throw new UnauthorizedException(\"User not found in cache\");\n    }\n\n    // Generate AuthUser with session information\n    return generateAuthUser(cacheUser, accessToken);\n  }\n}\n```\n\n## 🔧 Configuration Reference\n\n### Complete Configuration Options\n\n```typescript\n// JWT authentication configuration options\ninterface JwtOptions {\n  /** Secret key used to sign JWT access tokens */\n  secret: string;\n  /** Expiration time for access tokens in seconds */\n  expiresIn: number;\n  /** Secret key used to sign JWT refresh tokens */\n  refreshSecret: string;\n  /** Expiration time for refresh tokens in seconds */\n  refreshExpiresIn: number;\n}\n\n// Google OAuth authentication configuration options\ninterface GoogleAuthOptions {\n  /** Google OAuth client ID from Google Developer Console */\n  clientId: string;\n  /** Google OAuth client secret from Google Developer Console */\n  clientSecret: string;\n}\n\n// Cookie configuration options\ninterface CookiesOptions {\n  /** Secret key used for signing cookies */\n  secret?: string;\n  /** Controls how cookies are sent with cross-site requests */\n  sameSite?: boolean | \"lax\" | \"strict\" | \"none\";\n  /** Whether cookies should only be sent over HTTPS */\n  secure?: boolean;\n}\n\n// Main authentication configuration options\ninterface AuthOptions {\n  /**\n   * Whether the application is running in production mode\n   * @default false\n   */\n  isProd?: boolean;\n\n  /**\n   * Redis configuration for caching user sessions\n   * When provided, user sessions will be stored in Redis\n   */\n  redis?: RedisOptions;\n\n  /**\n   * Secret key used for encrypting user sessions in cache\n   * Required when using Redis caching with sensitive user data\n   */\n  sessionSecret?: string;\n\n  /**\n   * JWT configuration options (Required)\n   */\n  jwt: JwtOptions;\n\n  /**\n   * Google OAuth configuration options\n   * When provided, enables Google OAuth authentication\n   */\n  googleAuth?: GoogleAuthOptions;\n\n  /**\n   * Cookie configuration options\n   * Used when authMethod is set to AuthMethod.COOKIE\n   */\n  cookies?: CookiesOptions;\n\n  /**\n   * Whether to verify user email before allowing authentication\n   * @default false\n   */\n  checkEmailVerified?: boolean;\n\n  /**\n   * URL to redirect to after email verification\n   * Required when checkEmailVerified is true\n   */\n  emailVerifyRedirect?: string;\n\n  /**\n   * Password reset token expiration time in seconds\n   * @default 3600 (1 hour)\n   */\n  passwordResetExp?: number;\n\n  /**\n   * Authentication method (JWT, Cookie, etc.)\n   * @default AuthMethod.JWT\n   */\n  authMethod?: AuthMethod;\n\n  /**\n   * Field used for authentication (email, username, etc.)\n   * @default AuthField.EMAIL\n   */\n  authField?: AuthField | string;\n\n  /**\n   * Custom DTO class for sign-up requests\n   */\n  signUpDto?: typeof SignUpDto;\n\n  /**\n   * Custom DTO class for user views\n   */\n  viewDto?: Type<ViewUserDto>;\n\n  /**\n   * Custom validation exception factory\n   * @default false\n   */\n  validationExceptionFactory?:\n    | boolean\n    | ((errors: ValidationError[]) => HttpException);\n\n  /**\n   * Whether to disable sign-up functionality\n   * @default false\n   */\n  disableSignUp?: boolean;\n\n  /**\n   * List of allowed domains for redirect URLs\n   * Used to prevent open redirect vulnerabilities\n   */\n  allowedRedirectDomains?: string[];\n}\n```\n\n### Default Configuration\n\n```typescript\nconst defaultConfig: Partial<AuthOptions> = {\n  isProd: false,\n  checkEmailVerified: false,\n  passwordResetExp: 3600, // 1 hour\n  authMethod: AuthMethod.JWT,\n  authField: AuthField.EMAIL,\n  disableSignUp: false,\n  validationExceptionFactory: false,\n};\n```\n\n## 🔧 Development\n\n### Building\n\n```bash\nnx build nest-auth\n```\n\nCompile and bundle the authentication module for production use.\n\n### Testing\n\n```bash\nnx test nest-auth\n```\n\nRun comprehensive unit tests powered by [Jest](https://jestjs.io).\n\n---\n\n<div align=\"center\">\n\n**Made with ❤️ by [Hichchi Dev](https://github.com/hichchidev)**\n\n[![Hichchi Ecosystem](https://img.shields.io/badge/🏠_Hichchi_Ecosystem-blue)](https://github.com/hichchidev/hichchi)\n[![Report Bug](https://img.shields.io/badge/🐛_Report_Bug-red)](https://github.com/hichchidev/hichchi/issues)\n[![Request Feature](https://img.shields.io/badge/✨_Request_Feature-green)](https://github.com/hichchidev/hichchi/issues)\n\n_Empowering secure applications with enterprise-grade authentication, JWT tokens, OAuth integration, and role-based access control_\n\n</div>\n\n---\n\n# 📖 API Documentation\n\nComplete technical reference for all classes, interfaces, methods, and types in this library.\n\n**Auto-generated by TypeDoc** - Browse through detailed API references, code examples, and implementation guides below.\n\n<!-- TypeDoc generated documentation will be appended below this point -->\n\n---\n\n## 📋 API Table of Contents\n\n- [Classes](#classes)\n  - [AuthController](#authcontroller)\n  - [AuthService](#authservice)\n  - [EmailVerifyDto](#emailverifydto)\n  - [GetAuthResponseDto](#getauthresponsedto)\n  - [GoogleAuthGuard](#googleauthguard-1)\n  - [GoogleStrategy](#googlestrategy)\n  - [HichchiAuthModule](#hichchiauthmodule)\n  - [JwtAuthGuard](#jwtauthguard-1)\n  - [JwtStrategy](#jwtstrategy)\n  - [JwtTokenService](#jwttokenservice)\n  - [LocalAuthGuard](#localauthguard-1)\n  - [LocalStrategy](#localstrategy)\n  - [OverrideSignUpDtoPipe](#overridesignupdtopipe)\n  - [PermissionGuard](#permissionguard)\n  - [RefreshTokenDto](#refreshtokendto)\n  - [RequestResetDto](#requestresetdto)\n  - [ResendEmailVerifyDto](#resendemailverifydto)\n  - [ResetPasswordDto](#resetpassworddto)\n  - [ResetPasswordTokenVerifyDto](#resetpasswordtokenverifydto)\n  - [RoleGuard](#roleguard)\n  - [SignInDto](#signindto)\n  - [SignUpDto](#signupdto)\n  - [UpdatePasswordDto](#updatepassworddto)\n  - [UserCacheService](#usercacheservice)\n  - [ViewUserDto](#viewuserdto)\n- [Functions](#functions)\n  - [AuthInfo()](#authinfo-1)\n  - [cookieExtractor()](#cookieextractor-1)\n  - [CurrentTenant()](#currenttenant)\n  - [CurrentTenantId()](#currenttenantid)\n  - [CurrentUser()](#currentuser-1)\n  - [Permission()](#permission-1)\n  - [Roles()](#roles-1)\n  - [SocketId()](#socketid-1)\n- [Interfaces](#interfaces)\n  - [AuthOptions](#authoptions)\n  - [AuthUser](#authuser)\n  - [CacheUser](#cacheuser)\n  - [CookiesOptions](#cookiesoptions)\n  - [CurrentTenantIdOptions](#currenttenantidoptions)\n  - [GoogleAuthOptions](#googleauthoptions)\n  - [IJwtPayload](#ijwtpayload)\n  - [IUserService](#iuserservice)\n  - [JwtOptions](#jwtoptions)\n  - [UserExtra](#userextra)\n  - [UserServiceActions](#userserviceactions)\n  - [UserServiceEvents](#userserviceevents)\n  - [UserServiceExistingProvider](#userserviceexistingprovider)\n  - [UserServiceFactoryProvider](#userservicefactoryprovider)\n- [Type Aliases](#type-aliases)\n  - [UserServiceProvider](#userserviceprovider)\n- [Variables](#variables)\n  - [ACCESS_TOKEN_COOKIE_NAME](#access_token_cookie_name)\n  - [AUTH_OPTIONS](#auth_options)\n  - [EMAIL_KEY](#email_key)\n  - [PERMISSION_KEY](#permission_key)\n  - [REFRESH_TOKEN_COOKIE_NAME](#refresh_token_cookie_name)\n  - [ROLES_KEY](#roles_key)\n  - [USER_SERVICE](#user_service)\n  - [USERNAME_KEY](#username_key)\n\n## Classes\n\n### AuthController\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:72](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L72)\n\nAuthentication controller that handles all authentication-related endpoints.\n\nThis controller provides endpoints for user sign up, authentication, password management,\nemail verification, and social authentication.\n\nThe default endpoint path is 'auth' but can be customized by extending this class:\n\n#### Example\n\n```typescript\n@Controller(\"custom-auth\")\nexport class CustomAuthController extends AuthController {\n  // Override existing methods or add new ones\n\n  @Get(\"custom-endpoint\")\n  async customEndpoint() {\n    return \"Custom endpoint\";\n  }\n}\n```\n\n#### See\n\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n- Endpoint - Contains all available endpoints for this module.\n\n#### Constructors\n\n##### Constructor\n\n```ts\nnew AuthController(options, authService): AuthController;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:83](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L83)\n\nCreates an instance of AuthController.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`options`\n\n</td>\n<td>\n\n[`AuthOptions`](#authoptions)\n\n</td>\n<td>\n\nThe authentication options injected from `AUTH_OPTIONS` token\n\n</td>\n</tr>\n<tr>\n<td>\n\n`authService`\n\n</td>\n<td>\n\n[`AuthService`](#authservice)\n\n</td>\n<td>\n\nThe authentication service\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n[`AuthController`](#authcontroller)\n\n###### See\n\n- [AUTH_OPTIONS](#auth_options) Token used to inject authentication options\n- [AuthOptions](#authoptions) Interface defining authentication configuration\n- [AuthService](#authservice) Service handling authentication logic\n\n#### Methods\n\n##### changePassword()\n\n```ts\nchangePassword(\n   request,\n   authUser,\n   updatePasswordDto,\ntenant?): Promise<User<string, string, TenantSlug>>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:485](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L485)\n\nChanges the password for the currently authenticated user.\n\nThis endpoint allows an authenticated user to change their password.\nIt requires both the current password and the new password.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`authUser`\n\n</td>\n<td>\n\n[`AuthUser`](#authuser)\n\n</td>\n<td>\n\nThe authenticated user information (provided by JwtAuthGuard)\n\n</td>\n</tr>\n<tr>\n<td>\n\n`updatePasswordDto`\n\n</td>\n<td>\n\n[`UpdatePasswordDto`](#updatepassworddto)\n\n</td>\n<td>\n\nDTO containing the current and new passwords\n\n</td>\n</tr>\n<tr>\n<td>\n\n`tenant?`\n\n</td>\n<td>\n\n`TenantSlug`\n\n</td>\n<td>\n\nThe tenant slug (optional)\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`User`<`string`, `string`, `TenantSlug`>>\n\nThe updated user information\n\n###### Example\n\n```typescript\n// Client-side example\nconst response = await fetch(\"/auth/change-password\", {\n  method: \"POST\",\n  headers: {\n    \"Content-Type\": \"application/json\",\n    Authorization: \"Bearer your-jwt-token\",\n  },\n  body: JSON.stringify({\n    currentPassword: \"current-password\",\n    newPassword: \"new-password\",\n  }),\n});\n```\n\n```json\n// result:\n{\n  \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"email\": \"user@example.com\",\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"isVerified\": true,\n  \"signUpType\": \"local\"\n}\n```\n\n###### See\n\n- AuthEndpoint.CHANGE_PASSWORD - The specific endpoint path segment for changing user passwords.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### getAuthResponse()\n\n```ts\ngetAuthResponse(\n   request,\n   response,\n   getAuthResponseDto,\ntenant?): Promise<AuthResponse>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:339](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L339)\n\nGets a complete authentication response using an existing access token.\n\nThis endpoint allows clients to retrieve a complete authentication response\nusing a previously issued JWT access token. It verifies the token,\nretrieves the associated user information, generates new tokens,\nand returns comprehensive authentication data.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`response`\n\n</td>\n<td>\n\n`Response`\n\n</td>\n<td>\n\nThe Express response object for setting cookies\n\n</td>\n</tr>\n<tr>\n<td>\n\n`getAuthResponseDto`\n\n</td>\n<td>\n\n[`GetAuthResponseDto`](#getauthresponsedto)\n\n</td>\n<td>\n\nDTO containing the JWT access token\n\n</td>\n</tr>\n<tr>\n<td>\n\n`tenant?`\n\n</td>\n<td>\n\n`TenantSlug`\n\n</td>\n<td>\n\nThe tenant slug (optional)\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`AuthResponse`>\n\nAuthentication response containing user info and tokens\n\n###### Example\n\n```typescript\n// Client-side example - using a previously obtained JWT token\nconst response = await fetch(\"/auth/get-auth-response\", {\n  method: \"POST\",\n  headers: { \"Content-Type\": \"application/json\" },\n  body: JSON.stringify({\n    accessToken: \"previously-issued-jwt-token\",\n  }),\n});\nconst authData = await response.json();\n```\n\n```json\n// Result:\n{\n  \"user\": {\n    \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"email\": \"user@example.com\",\n    \"firstName\": \"John\",\n    \"lastName\": \"Doe\",\n    \"isVerified\": true,\n    \"signUpType\": \"google\"\n  },\n  \"accessToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"refreshToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"accessTokenExpiresOn\": \"2025-06-24T15:12:45.123Z\",\n  \"refreshTokenExpiresOn\": \"2025-07-24T10:12:45.123Z\",\n  \"sessionId\": \"sess_abc123\"\n}\n```\n\n###### See\n\n- AuthEndpoint.GET_AUTH_RESPONSE - The specific endpoint path segment for retrieving authentication data.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### getCurrentUser()\n\n```ts\ngetCurrentUser(\n   request,\n   authUser,\ntenant?): Promise<User<string, string, TenantSlug> | null>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:431](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L431)\n\nRetrieves the currently authenticated user's information.\n\nThis endpoint returns the user information for the currently authenticated user.\nIt requires a valid JWT token and is protected by the JwtAuthGuard.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`authUser`\n\n</td>\n<td>\n\n[`AuthUser`](#authuser)\n\n</td>\n<td>\n\nThe authenticated user information (provided by JwtAuthGuard)\n\n</td>\n</tr>\n<tr>\n<td>\n\n`tenant?`\n\n</td>\n<td>\n\n`TenantSlug`\n\n</td>\n<td>\n\nThe tenant slug (optional)\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`User`<`string`, `string`, `TenantSlug`> | `null`>\n\nThe current user's information or null if not found\n\n###### Example\n\n```typescript\n// Client-side example\nconst response = await fetch(\"/auth/me\", {\n  method: \"GET\",\n  headers: {\n    Authorization: \"Bearer your-jwt-token\",\n  },\n});\nconst user = await response.json();\n```\n\n```json\n// result:\n{\n  \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"email\": \"user@example.com\",\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"isVerified\": true,\n  \"signUpType\": \"local\"\n}\n```\n\n###### See\n\n- AuthEndpoint.ME - The specific endpoint path segment for retrieving current user information.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### googleCallback()\n\n```ts\ngoogleCallback(\n   response,\n   authUser,\n   state): void;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:276](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L276)\n\nHandles the callback from Google OAuth authentication.\n\nThis endpoint is called by Google after successful authentication.\nIt extracts the redirect URL from the state parameter and redirects the user\nto that URL with the access token as a query parameter.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`response`\n\n</td>\n<td>\n\n`Response`\n\n</td>\n<td>\n\nThe Express response object for redirection\n\n</td>\n</tr>\n<tr>\n<td>\n\n`authUser`\n\n</td>\n<td>\n\n[`AuthUser`](#authuser)\n\n</td>\n<td>\n\nThe authenticated user information (provided by GoogleAuthGuard)\n\n</td>\n</tr>\n<tr>\n<td>\n\n`state`\n\n</td>\n<td>\n\n`string`\n\n</td>\n<td>\n\nJSON string containing the redirectUrl\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`void`\n\nThis method doesn't return any content as it redirects to the client application\n\n###### Throws\n\nIf there's an error processing the callback\n\n###### Example\n\n```typescript\n// This endpoint is not called directly from client code\n// It's called by Google's OAuth service after user authenticates\n// The flow typically is:\n// 1. User clicks \"Sign In with Google\" link (pointing to googleSignIn endpoint)\n// 2. User authenticates on Google's site\n// 3. Google redirects to this callback URL\n// 4. This method redirects to the original application with the token\n```\n\n###### See\n\n- AuthEndpoint.GOOGLE_CALLBACK - The specific endpoint path segment for Google OAuth callback processing.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### googleSignIn()\n\n```ts\ngoogleSignIn(_query): Promise<void>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:239](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L239)\n\nInitiates Google OAuth sign-in flow.\n\nThis endpoint redirects the user to Google's authentication page.\nThe redirectUrl query parameter is used to determine where to redirect after successful authentication.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`_query`\n\n</td>\n<td>\n\n`GoogleAuthRequestQuery`\n\n</td>\n<td>\n\nThe query parameters from the request\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`void`>\n\nThis method doesn't return any content as it redirects to Google\n\n###### Example\n\n```typescript\n// Client-side example - typically used as a link in your frontend\n<a href=\"/auth/google-sign-in?redirectUrl=http://your-app.com/dashboard\">\n    Sign in with Google\n</a>\n```\n\nNote: Recommended approach is to use a browser popup or new tab to call this API instead of a full page redirect.\nThis allows smoother handling of the authentication flow and makes it easier to capture the callback response,\nespecially in single-page applications (SPAs) or when working with cross-origin redirects.\n\n###### See\n\n- AuthEndpoint.GOOGLE_SIGN_IN - The specific endpoint path segment for initiating Google OAuth flow.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### refreshTokens()\n\n```ts\nrefreshTokens(\n   request,\n   refreshTokenDto,\n   response,\ntenant?): Promise<TokenResponse>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:380](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L380)\n\nRefreshes the authentication tokens using a refresh token.\n\nThis endpoint allows clients to obtain new access and refresh tokens\nwhen their current access token expires, without requiring the user to log in again.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`refreshTokenDto`\n\n</td>\n<td>\n\n[`RefreshTokenDto`](#refreshtokendto)\n\n</td>\n<td>\n\nDTO containing the refresh token\n\n</td>\n</tr>\n<tr>\n<td>\n\n`response`\n\n</td>\n<td>\n\n`Response`\n\n</td>\n<td>\n\nThe Express response object for setting cookies\n\n</td>\n</tr>\n<tr>\n<td>\n\n`tenant?`\n\n</td>\n<td>\n\n`TenantSlug`\n\n</td>\n<td>\n\nThe tenant slug (optional)\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`TokenResponse`>\n\nNew access and refresh tokens\n\n###### Example\n\n```typescript\n// Client-side example\nconst response = await fetch(\"/auth/refresh-token\", {\n  method: \"POST\",\n  headers: { \"Content-Type\": \"application/json\" },\n  body: JSON.stringify({\n    refreshToken: \"your-refresh-token\",\n  }),\n});\nconst tokens = await response.json();\n// tokens contains new accessToken and refreshToken\n```\n\n###### See\n\n- AuthEndpoint.REFRESH_TOKEN - The specific endpoint path segment for token refreshing.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### requestPasswordReset()\n\n```ts\nrequestPasswordReset(\n   request,\n   requestResetDto,\ntenant?): Promise<SuccessResponse>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:629](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L629)\n\nInitiates the password reset process for a user.\n\nThis endpoint allows users to request a password reset by providing their email address.\nIf the email exists in the system, a password reset link will be sent to that email.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`requestResetDto`\n\n</td>\n<td>\n\n[`RequestResetDto`](#requestresetdto)\n\n</td>\n<td>\n\nDTO containing the email address\n\n</td>\n</tr>\n<tr>\n<td>\n\n`tenant?`\n\n</td>\n<td>\n\n`TenantSlug`\n\n</td>\n<td>\n\nThe tenant slug (optional)\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`SuccessResponse`>\n\nSuccess response indicating the reset email was sent\n\n###### Example\n\n```typescript\n// Client-side example\nconst response = await fetch(\"/auth/request-password-reset\", {\n  method: \"POST\",\n  headers: { \"Content-Type\": \"application/json\" },\n  body: JSON.stringify({\n    email: \"user@example.com\",\n  }),\n});\nconst result = await response.json();\n```\n\n```json\n// result:\n{\n  \"statusCode\": 200,\n  \"code\": \"AUTH_200_PASSWORD_RESET_EMAIL_SENT\",\n  \"message\": \"Password reset email sent successfully\"\n}\n```\n\n###### See\n\n- AuthEndpoint.REQUEST_PASSWORD_RESET - The specific endpoint path segment for requesting password resets.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### resendEmailVerification()\n\n```ts\nresendEmailVerification(\n   request,\n   resendEmailVerifyDto,\ntenant?): Promise<SuccessResponse>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:533](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L533)\n\nResends the email verification link to the user.\n\nThis endpoint allows users to request a new email verification link\nif they didn't receive the original one or if it expired.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`resendEmailVerifyDto`\n\n</td>\n<td>\n\n[`ResendEmailVerifyDto`](#resendemailverifydto)\n\n</td>\n<td>\n\nDTO containing the email address\n\n</td>\n</tr>\n<tr>\n<td>\n\n`tenant?`\n\n</td>\n<td>\n\n`TenantSlug`\n\n</td>\n<td>\n\nThe tenant slug (optional)\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`SuccessResponse`>\n\nSuccess response indicating the email was sent\n\n###### Example\n\n```typescript\n// Client-side example\nconst response = await fetch(\"/auth/resend-email-verification\", {\n  method: \"POST\",\n  headers: { \"Content-Type\": \"application/json\" },\n  body: JSON.stringify({\n    email: \"user@example.com\",\n  }),\n});\nconst result = await response.json();\n```\n\n```json\n// result:\n{\n  \"statusCode\": 200,\n  \"code\": \"AUTH_200_EMAIL_VERIFICATION_SENT\",\n  \"message\": \"Verification email sent successfully\"\n}\n```\n\n###### See\n\n- AuthEndpoint.RESEND_EMAIL_VERIFICATION - The specific endpoint path segment for resending verification emails.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### resetPassword()\n\n```ts\nresetPassword(\n   request,\n   resetPasswordDto,\ntenant?): Promise<SuccessResponse>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:722](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L722)\n\nResets a user's password using a valid reset token.\n\nThis endpoint allows users to set a new password after verifying their reset token.\nIt should be called after the token has been verified using the verifyResetPasswordToken endpoint.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`resetPasswordDto`\n\n</td>\n<td>\n\n[`ResetPasswordDto`](#resetpassworddto)\n\n</td>\n<td>\n\nDTO containing the reset token and new password\n\n</td>\n</tr>\n<tr>\n<td>\n\n`tenant?`\n\n</td>\n<td>\n\n`TenantSlug`\n\n</td>\n<td>\n\nThe tenant slug (optional)\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`SuccessResponse`>\n\nSuccess response indicating the password was reset\n\n###### Example\n\n```typescript\n// Client-side example\nconst response = await fetch(\"/auth/reset-password\", {\n  method: \"POST\",\n  headers: { \"Content-Type\": \"application/json\" },\n  body: JSON.stringify({\n    token: \"reset-token-from-email\",\n    password: \"new-password\",\n  }),\n});\nconst result = await response.json();\n```\n\n```json\n// result:\n{\n  \"statusCode\": 200,\n  \"code\": \"AUTH_200_PASSWORD_RESET_SUCCESS\",\n  \"message\": \"Password reset successfully\"\n}\n```\n\n###### See\n\n- AuthEndpoint.RESET_PASSWORD - The specific endpoint path segment for setting a new password after reset.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### signIn()\n\n```ts\nsignIn(\n   request,\n   authUser,\n   _signInDto,\n   response,\ntenant?): Promise<AuthResponse>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:201](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L201)\n\nAuthenticates a user with email/username and password.\n\nThis endpoint handles user sign in using local authentication strategy.\nIt sets authentication cookies and returns user information with tokens.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`authUser`\n\n</td>\n<td>\n\n[`AuthUser`](#authuser)\n\n</td>\n<td>\n\nThe authenticated user information (provided by LocalAuthGuard)\n\n</td>\n</tr>\n<tr>\n<td>\n\n`_signInDto`\n\n</td>\n<td>\n\n[`SignInDto`](#signindto)\n\n</td>\n<td>\n\nThe sign in credentials (not used directly as LocalAuthGuard handles validation)\n\n</td>\n</tr>\n<tr>\n<td>\n\n`response`\n\n</td>\n<td>\n\n`Response`\n\n</td>\n<td>\n\nThe Express response object for setting cookies\n\n</td>\n</tr>\n<tr>\n<td>\n\n`tenant?`\n\n</td>\n<td>\n\n`TenantSlug`\n\n</td>\n<td>\n\nThe tenant slug (optional)\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`AuthResponse`>\n\nAuthentication response containing user info and tokens\n\n###### Example\n\n```typescript\n// Client-side example\nconst response = await fetch(\"/auth/sign-in\", {\n  method: \"POST\",\n  headers: { \"Content-Type\": \"application/json\" },\n  body: JSON.stringify({\n    email: \"user@example.com\",\n    password: \"password123\",\n  }),\n});\nconst authData = await response.json();\n```\n\n```json\n// Result:\n{\n  \"user\": {\n    \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\n    \"email\": \"user@example.com\",\n    \"firstName\": \"John\",\n    \"lastName\": \"Doe\",\n    \"isVerified\": true,\n    \"signUpType\": \"local\"\n  },\n  \"accessToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"refreshToken\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"accessTokenExpiresOn\": \"2025-06-24T15:12:45.123Z\",\n  \"refreshTokenExpiresOn\": \"2025-07-24T10:12:45.123Z\",\n  \"sessionId\": \"sess_abc123\"\n}\n```\n\n###### See\n\n- AuthEndpoint.SIGN_IN - The specific endpoint path segment for user authentication.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### signOut()\n\n```ts\nsignOut(\n   request,\n   authUser,\nresponse): Promise<SuccessResponse>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:774](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L774)\n\nSigns out the currently authenticated user.\n\nThis endpoint invalidates the user's authentication tokens and clears authentication cookies.\nIt requires a valid JWT token and is protected by the JwtAuthGuard.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`authUser`\n\n</td>\n<td>\n\n[`AuthUser`](#authuser)\n\n</td>\n<td>\n\nThe authenticated user information (provided by JwtAuthGuard)\n\n</td>\n</tr>\n<tr>\n<td>\n\n`response`\n\n</td>\n<td>\n\n`Response`\n\n</td>\n<td>\n\nThe Express response object for clearing cookies\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`SuccessResponse`>\n\nSuccess response indicating the user was signed out\n\n###### Example\n\n```typescript\n// Client-side example\nconst response = await fetch(\"/auth/sign-out\", {\n  method: \"POST\",\n  headers: {\n    Authorization: \"Bearer your-jwt-token\",\n  },\n});\nconst result = await response.json();\n\n// After this, the client should clear any stored tokens and redirect to the sign in page\nlocalStorage.removeItem(\"accessToken\");\nlocalStorage.removeItem(\"refreshToken\");\nwindow.location.href = \"/sign-in\";\n```\n\n```json\n// result\n{\n  \"statusCode\": HttpSuccessStatus.OK,\n  \"code\": AuthSuccessResponseCode.AUTH_200_SIGNED_OUT,\n  \"message\": \"Signed out successfully\",\n}\n```\n\n###### See\n\n- AuthEndpoint.SIGN_OUT - The specific endpoint path segment for user logout and token invalidation.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### signUp()\n\n```ts\nsignUp(\n   request,\n   dto,\ntenant?): Promise<User<string, string, TenantSlug>>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:137](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L137)\n\nSign up a new user with the provided sign-up data.\n\nThis endpoint creates a new user account with the provided sign up data.\nIf sign up is disabled in the auth options, it will throw a ForbiddenException.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`dto`\n\n</td>\n<td>\n\n`SignUpBody`\n\n</td>\n<td>\n\nThe sign-up data transfer object containing user sign up information\n\n</td>\n</tr>\n<tr>\n<td>\n\n`tenant?`\n\n</td>\n<td>\n\n`TenantSlug`\n\n</td>\n<td>\n\nThe tenant slug (optional)\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`User`<`string`, `string`, `TenantSlug`>>\n\nThe newly created user\n\n###### Throws\n\nIf sign up is disabled\n\n###### Example\n\n```typescript\n// Client-side example\nconst response = await fetch(\"/auth/sign-up\", {\n  method: \"POST\",\n  headers: { \"Content-Type\": \"application/json\" },\n  body: JSON.stringify({\n    email: \"user@example.com\",\n    password: \"password123\",\n    firstName: \"John\",\n    lastName: \"Doe\",\n  }),\n});\nconst user = await response.json();\n```\n\n```json\n// Result:\n{\n  \"id\": \"123e4567-e89b-12d3-a456-426614174000\",\n  \"email\": \"user@example.com\",\n  \"firstName\": \"John\",\n  \"lastName\": \"Doe\",\n  \"isVerified\": true,\n  \"signUpType\": \"local\",\n  \"createdAt\": \"2025-06-24T10:12:45.123Z\",\n  \"updatedAt\": \"2025-06-24T11:30:15.456Z\"\n}\n```\n\n###### See\n\n- AuthEndpoint.SIGN_UP - The specific endpoint path segment for user registration.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### verifyEmail()\n\n```ts\nverifyEmail(\n   request,\n   response,\n   emailVerifyDto,\ntenant?): Promise<void>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:573](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L573)\n\nVerifies a user's email address using the verification token.\n\nThis endpoint is accessed via a link sent to the user's email.\nIt verifies the token and redirects the user to a configured URL\nwith a query parameter indicating whether verification was successful.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`response`\n\n</td>\n<td>\n\n`Response`\n\n</td>\n<td>\n\nThe Express response object for redirection\n\n</td>\n</tr>\n<tr>\n<td>\n\n`emailVerifyDto`\n\n</td>\n<td>\n\n[`EmailVerifyDto`](#emailverifydto)\n\n</td>\n<td>\n\nDTO containing the verification token\n\n</td>\n</tr>\n<tr>\n<td>\n\n`tenant?`\n\n</td>\n<td>\n\n`TenantSlug`\n\n</td>\n<td>\n\nThe tenant slug (optional)\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`void`>\n\nThis method doesn't return any content as it redirects to the configured URL\n\n###### Example\n\n```html\nThis endpoint is typically accessed via a link in an email:\n\n<a href=\"https://your-api.com/auth/verify-email?token=verification-token\">\n  Verify Email\n</a>\n\nThe user will be redirected to the configured URL:\nhttps://your-app.com/email-verification?verified=true\n```\n\n###### See\n\n- AuthEndpoint.VERIFY_EMAIL - The specific endpoint path segment for email verification processing.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n##### verifyResetPasswordToken()\n\n```ts\nverifyResetPasswordToken(request, verifyDto): Promise<SuccessResponse>;\n```\n\nDefined in: [libs/nest-auth/src/controllers/auth.controller.ts:675](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L675)\n\nVerifies a password reset token.\n\nThis endpoint allows clients to verify if a password reset token is valid\nbefore showing the password reset form to the user.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`request`\n\n</td>\n<td>\n\n`Request`\n\n</td>\n<td>\n\nThe Express request object\n\n</td>\n</tr>\n<tr>\n<td>\n\n`verifyDto`\n\n</td>\n<td>\n\n[`ResetPasswordTokenVerifyDto`](#resetpasswordtokenverifydto)\n\n</td>\n<td>\n\nDTO containing the reset token\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n`Promise`<`SuccessResponse`>\n\nSuccess response indicating if the token is valid\n\n###### Example\n\n```typescript\n// Client-side example\nconst response = await fetch(\"/auth/reset-password-verify\", {\n  method: \"POST\",\n  headers: { \"Content-Type\": \"application/json\" },\n  body: JSON.stringify({\n    token: \"reset-token-from-email\",\n  }),\n});\nconst result = await response.json();\n```\n\n```json\n// result:\n{\n  \"statusCode\": 200,\n  \"code\": \"AUTH_200_PASSWORD_RESET_TOKEN_VALID\",\n  \"message\": \"Password reset token is valid\"\n}\n```\n\n###### See\n\n- AuthEndpoint.RESET_PASSWORD_VERIFY - The specific endpoint path segment for verifying password reset tokens.\n- AuthEndpoint - Enum containing all authentication-specific endpoint paths.\n- Endpoint.AUTH - The default endpoint path constant used for this controller.\n\n#### Properties\n\n<table>\n<thead>\n<tr>\n<th>Property</th>\n<th>Modifier</th>\n<th>Type</th>\n<th>Description</th>\n<th>Defined in</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n<a id=\"property-authservice\"></a> `authService`\n\n</td>\n<td>\n\n`readonly`\n\n</td>\n<td>\n\n[`AuthService`](#authservice)\n\n</td>\n<td>\n\nThe authentication service\n\n</td>\n<td>\n\n[libs/nest-auth/src/controllers/auth.controller.ts:85](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/controllers/auth.controller.ts#L85)\n\n</td>\n</tr>\n</tbody>\n</table>\n\n---\n\n### AuthService\n\nDefined in: [libs/nest-auth/src/services/auth.service.ts:108](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/services/auth.service.ts#L108)\n\nCore authentication service that provides comprehensive identity management functionality.\n\nThis service is responsible for handling all authentication-related operations within the application.\nIt works alongside the AuthController to provide a complete authentication solution. The service\ndelegates many operations to specialized services like JwtTokenService for token management,\nUserCacheService for session management, and TokenVerifyService for verification tokens.\n\nKey features include:\n\n- User sign up and sign in with email/username and password\n- JWT token generation, validation, and refresh\n- Password management (change, reset, verify)\n- Email verification workflow\n- Social authentication (Google OAuth)\n- Session management with multi-device support\n- Token-based and cookie-based authentication modes\n\nThe service is designed to be flexible and configurable through the AuthOptions injection token,\nallowing applications to customize authentication behaviors. It also integrates with a user service\nprovided by the application through the USER_SERVICE injection token, which handles user data storage.\n\nSecurity features include:\n\n- Secure password hashing with bcrypt\n- Cryptographically secure token generation\n- Token expiration and refresh mechanisms\n- Protection against common authentication vulnerabilities\n\n#### Example\n\n```typescript\n// In a controller\n@Controller(\"auth\")\nexport class AuthController {\n  constructor(private readonly authService: AuthService) {}\n\n  @Post(\"sign-up\")\n  async signUp(@Req() request: Request, @Body() signUpDto: SignUpDto) {\n    return this.authService.signUp(request, signUpDto);\n  }\n}\n```\n\n#### See\n\n- [AuthController](#authcontroller) The controller that exposes authentication endpoints using this service\n- [JwtTokenService](#jwttokenservice) Service responsible for JWT token operations\n- [UserCacheService](#usercacheservice) Service that manages user session caching\n- TokenVerifyService Service that handles verification tokens\n- [AuthOptions](#authoptions) Configuration options for authentication behavior\n- [IUserService](#iuserservice) Interface that user services must implement\n\n#### Constructors\n\n##### Constructor\n\n```ts\nnew AuthService(\n   options,\n   userService,\n   jwtTokenService,\n   cacheService,\n   tokenVerifyService): AuthService;\n```\n\nDefined in: [libs/nest-auth/src/services/auth.service.ts:118](https://github.com/hichchidev/hichchi/blob/451086b0863c82a6952d5ee0c05bf458abaaa227/libs/nest-auth/src/services/auth.service.ts#L118)\n\nCreates an instance of AuthService.\n\n###### Parameters\n\n<table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>\n\n`options`\n\n</td>\n<td>\n\n[`AuthOptions`](#authoptions)\n\n</td>\n<td>\n\nThe authentication options injected from `AUTH_OPTIONS` token\n\n</td>\n</tr>\n<tr>\n<td>\n\n`userService`\n\n</td>\n<td>\n\n[`IUserService`](#iuserservice)\n\n</td>\n<td>\n\nThe user service injected from `USER_SERVICE` token\n\n</td>\n</tr>\n<tr>\n<td>\n\n`jwtTokenService`\n\n</td>\n<td>\n\n[`JwtTokenService`](#jwttokenservice)\n\n</td>\n<td>\n\nThe JWT token service for token operations\n\n</td>\n</tr>\n<tr>\n<td>\n\n`cacheService`\n\n</td>\n<td>\n\n[`UserCacheService`](#usercacheservice)\n\n</td>\n<td>\n\nThe user cache service for storing user sessions\n\n</td>\n</tr>\n<tr>\n<td>\n\n`tokenVerifyService`\n\n</td>\n<td>\n\n`TokenVerifyService`\n\n</td>\n<td>\n\nThe token verification service for email and password reset tokens\n\n</td>\n</tr>\n</tbody>\n</table>\n\n###### Returns\n\n[`AuthService`](#authservice)\n\n#### Methods\n\n##### authenticate()\n\n```ts\nauthenticate(\n   request,\n   username,\n   password,\ntenant?): Promise<AuthUser>;\n```\n\nDefined ","readmeFilename":"README.md"}