{"_id":"@acontplus/ng-auth","_rev":"42-da8eea507de77ad8e87dca29dc722c04","name":"@acontplus/ng-auth","dist-tags":{"latest":"3.0.3"},"versions":{"1.0.0":{"name":"@acontplus/ng-auth","version":"1.0.0","keywords":["acontplus","angular","authentication","jwt","guards","typescript","frontend","library"],"author":{"name":"Emilio Senguana","email":"sengua2017@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.0.0","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"ce4cfe2cb1bd09adbeed1c3dd8434a03c6717d38","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.0.0.tgz","fileCount":4,"integrity":"sha512-DfvErs2c8ncIyuci7aRcEXktv6luG9e4YjJyNqLhI5/3xxeqAlzNMk3eaw+cGq8p2qHcsewukf/OLZf/9ysBRA==","signatures":[{"sig":"MEYCIQCM7h6qb+UtWlVsFkKbUpok4/rTJ8+3K/8wIuG7JXfD8QIhALBJLMVKyHO+Dkbdy/WucmyZEeywEoQNU3tVXgljghmp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":31177},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"436080048bf86d4099c23d1c8eff4be82b7e0344","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"deprecated":"version with issues","repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Acontplus Angular Authentication Module","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"tslib":"^2.3.0","@acontplus/ng-config":"^1.0.0","@acontplus/ng-infrastructure":"^1.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^20.3.2","@acontplus/core":"^1.0.12","@angular/common":"^20.3.2","@angular/router":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.0.0_1759216065555_0.021220975759098204","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@acontplus/ng-auth","version":"1.0.1","keywords":["acontplus","angular","authentication","jwt","guards","typescript","frontend","library"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.0.1","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"58c823605fb621e3a42623bd2a141939244a19c5","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.0.1.tgz","fileCount":5,"integrity":"sha512-NuXcRNu4bnhPI9JqIuQ5brpiEIOt7raAbWH9/lYoCCrlIwAeWg2qxCMohAAZRmxlMFhOsXD4OvYkKd12nOcndw==","signatures":[{"sig":"MEUCIQDLC9ogLHcXbSGqGtkK3o9/cc7oH1LJCdt2bNiaEtE2TgIgDWaAFh2zLnBExYlXzL84mQ87lqT8Bnk9BApLX886EJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204435},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"5ee9c75c0f4f67fffe2905947754c137a5fdd164","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"deprecated":"version with issues","repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Acontplus Angular Authentication Module","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.0.1","@acontplus/ng-infrastructure":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":"^20.0.0","@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.0.13","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.0.1_1759270810953_0.1312078117009683","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@acontplus/ng-auth","version":"1.0.2","keywords":["acontplus","angular","authentication","jwt","guards","typescript","frontend","library"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.0.2","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"a7ef2d4236eb73442cc0af3d68b6b81ff5c4bbe5","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.0.2.tgz","fileCount":5,"integrity":"sha512-A+vNqVZkaf2W9AfyMYu5aW+fO0Sfi/9DngfHsK6utk2IE4bApmqmEWmJHMkdEuK9GDOrB/IWSplcYCN4+YEm2A==","signatures":[{"sig":"MEUCIQCkEHN2L55DAmeBnN3KuVdAsuFN2UGf8n8CFzbSOv3QgQIgMz6xaujLU2J7OqiIF0iN2S3PmqXMV6yzIKtkCtULBkw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215548},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"a1b4c8d89f090ea1c8fa04017f6afd13d60e90f3","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"deprecated":"version with issues","repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Acontplus Angular Authentication Module","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.0.1","@acontplus/ng-infrastructure":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":"^20.0.0","@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.0.13","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.0.2_1759296623154_0.4255598074937572","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@acontplus/ng-auth","version":"1.0.3","keywords":["acontplus","angular","authentication","jwt","guards","typescript","frontend","library"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.0.3","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"441ebe964348df3632bd6f6beb4074bfb9c9f645","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.0.3.tgz","fileCount":5,"integrity":"sha512-gqpX3S2HlNFfYkmIm/BOGgVtlaldQ4FF7wCoKOTSaAD61RV5Ave46MIUQE7vwyHQhTkFCEFJRYGy+IrE59TEfw==","signatures":[{"sig":"MEQCIBotOue3Fzn/bkbQ0E/+jnNUMjWygGIhKPnMOKJA40TNAiBjrr4Lzpb2uYFfURGdRcBVGGFRliqry3YJVcj2eKF1CQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":215548},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"fbc96de5b3e1b1e73bb0b76d5f8c7182003f091b","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"deprecated":"version with issues","repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Acontplus Angular Authentication Module","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.0.1","@acontplus/ng-infrastructure":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":"^20.0.0","@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.0.13","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.0.3_1759431706489_0.8236940637539618","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@acontplus/ng-auth","version":"1.1.0","keywords":["acontplus","angular","authentication","jwt","guards","typescript","frontend","library"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.1.0","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"a65c875b30e59ff5f094343a504b70e4f7ca432b","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.1.0.tgz","fileCount":5,"integrity":"sha512-+9YtQpAT4sydlltYCkEXSFId8jbjWY9rPt588jhcgXRfqdd4t4M0diFf1TZwCYuUHGHbzKoh3waC9H9Y2ugLJQ==","signatures":[{"sig":"MEYCIQDLeB+sJKP6+HDY52RMrh7mslWyHR9fqEo8J9z/3euKNAIhALc8EhzGjnoSjnZ3oVS65c06joIGs1wsbiUKjQSJNkyy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261600},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"9d4637e7a6e9e887879671accb45e0cdf745a0df","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Acontplus Angular Authentication Module","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.0.1","@acontplus/ng-infrastructure":"^1.0.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":"^20.0.0","@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.0.13","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.1.0_1759449962518_0.5372092155332708","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@acontplus/ng-auth","version":"1.1.1","keywords":["acontplus","angular","authentication","jwt","guards","typescript","frontend","library"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.1.1","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"5883cb0797afe99f299b51e1b6eaef7cabc54f11","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.1.1.tgz","fileCount":5,"integrity":"sha512-m6kZd7fKKQkRwqHlRQJcTgUECAC2us1EdqEaDPm26HJ5Aef7DXe/vs4IWMOb30u0XW9U4aSVr+crsrMWboEUJQ==","signatures":[{"sig":"MEUCIEBcxhBzurdBT61MFc3dgBEyrQ1b5i07mQxMfzvzhP9kAiEAtQaRMi5+EK8CRZixFWLlqP9C+EVs5+T/uoYBvZUoaX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261447},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"9af9eaf636664267f5a6490e8e9f3dc24af2583c","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Acontplus Angular Authentication Module","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.0.3","@acontplus/ng-infrastructure":"^1.0.3"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":"^20.0.0","@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.0.13","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.1.1_1759521019650_0.7394205579232696","host":"s3://npm-registry-packages-npm-production"}},"1.1.2":{"name":"@acontplus/ng-auth","version":"1.1.2","keywords":["acontplus","angular","authentication","jwt","guards","typescript","frontend","library"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.1.2","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"2afce9648cf9d1c0b9da6cb701ad0ced1861d8af","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.1.2.tgz","fileCount":5,"integrity":"sha512-NDfnQH/cuURE7zPrMVBKQbcq4oUnSR6YXr6FGKtJQr/qsVMDgH7rIuw+7ykrR61852qa2ynbgSin1KVlhIRlMA==","signatures":[{"sig":"MEUCIQC6W46/Z6cl/GfDrGtZsK1BkUYZB0fB231owjDWna1HFwIgamlqYwOnYa0sDPHYxLfp/HAa94w0J2Iwo0Ef5VfRjEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":255768},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"b9908fc33e755b4ff0c5581944a3c1ff65ee0794","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Acontplus Angular Authentication Module","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.0.3","@acontplus/ng-infrastructure":"^1.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":"^20.0.0","@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.0.13","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.1.2_1759818874344_0.08546007818289203","host":"s3://npm-registry-packages-npm-production"}},"1.1.3":{"name":"@acontplus/ng-auth","version":"1.1.3","keywords":["acontplus","angular","authentication","jwt","guards","typescript","frontend","library"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.1.3","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"8ed82361da195a7b73195f1c07bebcb191b38ba9","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.1.3.tgz","fileCount":5,"integrity":"sha512-Rneibu8hLmS+sJ3OncUIVvypcm+MaN5UFd22OiQmV42y01rJkGsSiQvP9q4LtrS4GoyPlA377WKMzuRn4c2LQA==","signatures":[{"sig":"MEQCIFYebJAzWSwniKmcRz4IGO1+YDBSEH/FWajm0eYvHsjyAiBnUe4tEKnb72Zqu6AZjIs22Q8vrLb4AQ+T348Z9Evx4g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":262732},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"0d5d42754b92291420da7455d1a75e2d1da2b1f4","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Acontplus Angular Authentication Module","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.0.3","@acontplus/ng-infrastructure":"^1.0.4"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":"^20.0.0","@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.0.13","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.1.3_1759822041478_0.08711986515547565","host":"s3://npm-registry-packages-npm-production"}},"1.1.4":{"name":"@acontplus/ng-auth","version":"1.1.4","keywords":["acontplus","angular","authentication","jwt","guards","typescript","frontend","library"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.1.4","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"3a14f73d8867f5c698379129602e869db36476c1","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.1.4.tgz","fileCount":5,"integrity":"sha512-GufdUHX0klSKRfE3wbpFliz3qPQMTf/7Tkj1MPATv7ipTpma/o5i742fvQKzC2NtHaK+g75xmesthfiUQNvcCA==","signatures":[{"sig":"MEQCID36CN1cv1KJXV8AzmChgQudado1MUdk6fGRMSjOIznPAiBJGSJvoFIbQz8+L9OoUz4BnzZkITswWRErT1tFRMgPDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274534},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"2715344d65f5854b37049a82aa31b69cd07efd53","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Acontplus Angular Authentication Module","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.0.4","@acontplus/ng-infrastructure":"^1.0.5"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":"^20.0.0","@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.0.15","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.1.4_1759861771396_0.29070043084359165","host":"s3://npm-registry-packages-npm-production"}},"1.1.5":{"name":"@acontplus/ng-auth","version":"1.1.5","keywords":["acontplus","angular","authentication","jwt","guards","typescript","frontend","library"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.1.5","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"51394ed2591c184a452d57a6312cf444c13440e6","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.1.5.tgz","fileCount":5,"integrity":"sha512-fmn1+RsxRS+qilGgckRinh+zV/ECGSHfFeYZBoCXSgtCLu6HMnZmTK2Qj8VBHHyKO9aDp+Ryr+j+M/fVUgTXqA==","signatures":[{"sig":"MEUCIGNICGuXiAtqiJbT5ti3cwIQNJS2owO6W5XAMz3pQLX8AiEAvYzFtN6D2YzcyNIVfEerXD08Vy3A0r/kecprm6HPrTY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":274534},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"900474954ed92cba200fbaa00740701d959e1224","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Acontplus Angular Authentication Module","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.0.5","@acontplus/ng-infrastructure":"^1.0.6"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":"^20.0.0","@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.0.16","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.1.5_1759865113121_0.6916086464312525","host":"s3://npm-registry-packages-npm-production"}},"1.1.6":{"name":"@acontplus/ng-auth","version":"1.1.6","keywords":["acontplus","angular","authentication","jwt","guards","typescript","frontend","library"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.1.6","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"c2cbe080b86f8a75a6e8953a11d74b1aa19b27b2","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.1.6.tgz","fileCount":5,"integrity":"sha512-h22nFBBB/K6KnqsfFKQ1RogbG9/1mq3T5sP2zLn+cVCwxzWG7BIg821uqnI5IBt0f0XFOTWzds28hnLSymvvrQ==","signatures":[{"sig":"MEQCIHbiZGbyUUqF33T+VfrIgrn862LkZqdC73YPl0+THQMRAiB8ozoXR4AxF4Xljsgf3voeZRFD4b/tZr3spC9KchEieA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":275762},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"5891fc11feeafef59b97927abfab2bdb0e16d19b","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Acontplus Angular Authentication Module","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.0.5","@acontplus/ng-infrastructure":"^1.0.7"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":"^20.0.0","@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.0.16","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.1.6_1759997737933_0.8718296941295247","host":"s3://npm-registry-packages-npm-production"}},"1.1.7":{"name":"@acontplus/ng-auth","version":"1.1.7","keywords":["acontplus","angular","authentication","jwt","jwt-decode","guards","auth-guard","interceptors","csrf","url-redirect","session","token-management","login","ddd","clean-architecture","repositories","use-cases","typescript","frontend","library"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.1.7","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"20bc117de5e5d5cefb0a594c74558f7e83203ced","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.1.7.tgz","fileCount":5,"integrity":"sha512-z+VKH6gNjoBt1+qLABgBgIXwg4mq1C0WhXy/4BbAMLPxMOOhJ9fduK8BdroqEk5dFjQ3qg5dWtnBMC5FP/Z5Pw==","signatures":[{"sig":"MEUCIHVsiYpnxvRRLOUssz0ODfRDgtN8lrYhG2INWW2YwttOAiEAsJwWpIdhpcVur3DdOH9qspzpy3gw/nD9peCgAZRAR5Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":276180},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"8331d89f5be64c570963bfb29d6413aead23f7c1","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.0.6","@acontplus/ng-infrastructure":"^1.0.8"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/cdk":"^20.0.0","@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.0.17","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.1.7_1760037922111_0.9592574847257005","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@acontplus/ng-auth","version":"1.2.0","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.2.0","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"7e35d13b83ad689b7611397864727bfcd96ae650","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.2.0.tgz","fileCount":5,"integrity":"sha512-d7TJ9TL6VdXk4AQeDmijeyF/TPAig7OALNsr7EKg/MbXf8yLaNa/l1x0G1i0+oa/vGdc+j+w/qAFa5eBI3Jgcg==","signatures":[{"sig":"MEYCIQCNsca6cCCNhglQXHLJAKx3IEkWnpvDbW1V3Qpoc+6yhQIhAONwjfr1TqndgXiASfTPGarbfJ2J5UvVRLq12RG5+QrD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273840},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"59a78629f135dff2b9e033072818aa4ca90bfd6b","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.1.0","@acontplus/ng-infrastructure":"^1.1.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.1.0","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.2.0_1760323642973_0.3003879835271859","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@acontplus/ng-auth","version":"1.2.1","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.2.1","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"ba4e53ae7e870a9538652a549bf11702275cf043","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.2.1.tgz","fileCount":5,"integrity":"sha512-NkOG3grmQzRppaNtiPA4SaFFDWZYlj7FZ4Ony3Bl+N8c56Q9uP5xt2/8TA+KZEL2DJ1ca22l5/Y0MsXSjgi2IQ==","signatures":[{"sig":"MEQCIBDGDfaD1kG3jKRz+OAwFojrdSwB9gT/t8OCFJgJW/oyAiA4B0euMD6wozPNuaN48deWuzoPb6LnQgj0SjL2m0sfrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":273840},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"a873a3dd98444532cf8aa048d2ac6e0762305b3d","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.0","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"22.19.0","dependencies":{"rxjs":"^7.8.1","tslib":"^2.3.0","jwt-decode":"^4.0.0","@acontplus/ng-config":"^1.1.0","@acontplus/ng-infrastructure":"^1.1.1"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"@angular/core":"^20.3.2","@angular/forms":"^20.3.2","@acontplus/core":"^1.1.0","@angular/common":"^20.3.2","@angular/router":"^20.3.2","@angular/material":"^20.0.0","@angular/platform-browser":"^20.3.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.2.1_1760325801501_0.5801777244561293","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@acontplus/ng-auth","version":"1.2.2","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.2.2","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"2b08f463a499433e03af99dabc5b0c6ed4304a2b","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.2.2.tgz","fileCount":5,"integrity":"sha512-wiAH1fmoIRXsQCka7+/J8GVKiPAdS7CITpyub36Rd+xFbpYwquzPWTYTch+NrTGEI4S00Vi/uB/lsFXPqMt8XA==","signatures":[{"sig":"MEYCIQClUMRSEu2E38fZsqpys4H6Azr6+ZYi/ZH/tYp//mQy8AIhAJe8h/6eS/uNVrzgVUApx1HEJFeeZgp0Pm5qukAr04iv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153078},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"453554aa46d27cd5bf2815eb0427d1ef0a2f1567","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^20.3.9","@angular/forms":"^20.3.9","@acontplus/core":"^1.1.1","@angular/common":"^20.3.9","@angular/router":"^20.3.9","@angular/material":"^20.2.12","@acontplus/ng-config":"^1.1.1","@angular/platform-browser":"^20.3.9","@acontplus/ng-infrastructure":"^1.1.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.2.2_1762547820021_0.3320794180556137","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@acontplus/ng-auth","version":"1.2.3","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@1.2.3","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"441b20fc71d4c38a2700aa25ed97634ca5605c67","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-1.2.3.tgz","fileCount":5,"integrity":"sha512-errYLlqp8d8tFzZlJEgRrj9SuFncJfRW0MUpGQ5mv8UsotbQImNZ5CI0bBEYrp4q8uUBv2+ms86CJk3H8O4i0A==","signatures":[{"sig":"MEQCIESGlUmV5AkF1uOA+Om5pXpfGMF75X30p2PYqXoTXZxBAiAL5qP1OeGMXSWUNirp+pKUIm+KRG6OJvDhJdrpNsS77A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153078},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./index.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"0111d41eb3ca9646f69f8c4432e3a778ade3141c","release":{"branches":["main"]},"typings":"index.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^20.3.9","@angular/forms":"^20.3.9","@acontplus/core":"^1.1.1","@angular/common":"^20.3.9","@angular/router":"^20.3.9","@angular/material":"^20.2.12","@acontplus/ng-config":"^1.1.1","@angular/platform-browser":"^20.3.9","@acontplus/ng-infrastructure":"^1.1.3"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_1.2.3_1764050889902_0.8379101634971244","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@acontplus/ng-auth","version":"2.0.0","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.0.0","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"97319cd8d98c2008dbc516720985525c08b32f5f","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.0.0.tgz","fileCount":5,"integrity":"sha512-cJ0h07XHo5SbelGzFZmMrg1cwJAjSnI7x3n4vhVoNHfAjOCnJRXQ1eXatA02x9qNT64W8KWH7EWQkJ+PD1Ukrw==","signatures":[{"sig":"MEUCIQDy5lvNBcn7DTeXfHsn6vE9KcL/OMb/tqVb58aw+kJbSgIgeicaggoWJhwx14NBLTbQTsxVry3WroTQZm3uNtZ+j+U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":153125},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"a65cf1b1f240b118b2cf570495c66db626b90724","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.2","jwt-decode":"^4.0.0","@angular/core":"^21.0.6","@angular/forms":"^21.0.6","@acontplus/core":"^1.1.1","@angular/common":"^21.0.6","@angular/router":"^21.0.6","@angular/material":"^21.0.5","@acontplus/ng-config":"^2.0.0","@angular/platform-browser":"^21.0.6","@acontplus/ng-infrastructure":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.0.0_1766714583636_0.9670348519045746","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@acontplus/ng-auth","version":"2.1.0","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.0","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"e3c30016fca7a9fcbe0ac1e2eb35a8d6a37f4c45","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.0.tgz","fileCount":5,"integrity":"sha512-ZxveJTVxpun/CYZARGZFVauv6Y7jFLhBQDK12+LnBsetOqDfM3D6ECeUzNRc6Omlz2i2QBe0PNZ2EPYgT3Baeg==","signatures":[{"sig":"MEYCIQCfJNV3u/IkWNbhl9dW+VV6Medohal7SOOcApoWFa/mbgIhAKZIwdJ1rAcujMzPNCd0RLhzXJyOKyd8aJYRQbrmVYsJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":240584},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"1aa1f387fd318908f488fc43c1f97393e79c0cf3","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.2","jwt-decode":"^4.0.0","@angular/core":"^21.0.6","@angular/forms":"^21.0.6","@acontplus/core":"^1.1.1","@angular/common":"^21.0.6","@angular/router":"^21.0.6","@angular/material":"^21.0.5","@acontplus/ng-config":"^2.0.0","@angular/platform-browser":"^21.0.6","@acontplus/ng-infrastructure":"^2.0.1"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.0_1767317331541_0.7498950078660147","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@acontplus/ng-auth","version":"2.1.1","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.1","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"2e100195368df240e2e5716f15e8107835757496","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.1.tgz","fileCount":5,"integrity":"sha512-18y9S7fZ2g7qAJbKXfZqEHA47oHjzWyI6D1H3hHxGIrabge5bsq2g9Z0WfatBLhzd9cQHzLAJDOXX4ENSaIESg==","signatures":[{"sig":"MEUCICdgz72pb5ImQbqZa9mJ3EsJnlmelgi4U+8s27k2dg1+AiEAtW9WRUAprpVCm6LdKpQU8+rnC6TPQseW3fcDYs8qNAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242818},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"2e62e826ba5aad5c7e2dd510d7018712e6a45a6f","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.6","@angular/forms":"^21.0.6","@acontplus/core":"^1.1.1","@angular/common":"^21.0.6","@angular/router":"^21.0.6","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.5","@acontplus/ng-config":"^2.0.0","@angular/platform-browser":"^21.0.6","@acontplus/ng-infrastructure":"^2.0.2"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.1_1767327193173_0.7285265310481339","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@acontplus/ng-auth","version":"2.1.2","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.2","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"763e7e54f79675a8822bf16a3b75c185f360d4ad","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.2.tgz","fileCount":5,"integrity":"sha512-SRNV1ns3/KgWLxtqa9bT10jEMd5c8rOSTNbg/eJxmGgBIHq0g3vDboHvHblbV2BQbAZDz9TnyJt1LRjyWhAP6A==","signatures":[{"sig":"MEYCIQDkZk9r2iC7JxCkWA1LjMCiafXwLSbXit/CxmAyTPaBNgIhAJk4Jll9F5Vz5Bdcg/OMBuvLiRI7qnn1XPEBQjUEXCjJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":242819},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"62a33212b6a8a71e29aca8a8d92db4214ad16347","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.6","@angular/forms":"^21.0.6","@acontplus/core":"^1.1.1","@angular/common":"^21.0.6","@angular/router":"^21.0.6","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.5","@acontplus/ng-config":"^2.0.0","@angular/platform-browser":"^21.0.6","@acontplus/ng-infrastructure":"^2.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.2_1767382556756_0.5323507381874926","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@acontplus/ng-auth","version":"2.1.3","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.3","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"a6b39d54b714fcc0ce2488aba274837e1707b83e","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.3.tgz","fileCount":5,"integrity":"sha512-tJde7GgclgAJaIFNt1nSucnrt0Yszf2QfcoI9b29b8fXf5yRNV9VLeN7rT5hVmM06KdMKp5RT9yT0JKlw2wyOg==","signatures":[{"sig":"MEUCIQD15AFdabq+58BI7zCKfB+Bivhtccq6Qoms6Jay53nwIwIgGHHmZbOoMhCuJFiWbbvtl+SdSP11RXQAZYCysODqD0o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243113},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"d46ed427bd211d5a95067a6a841475e1b151d023","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@acontplus/core":"^1.1.2","@angular/common":"^21.0.0","@angular/router":"^21.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.0","@acontplus/ng-config":"^2.0.1","@angular/platform-browser":"^21.0.0","@acontplus/ng-infrastructure":"^2.0.4"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.3_1767577073234_0.6767897317927603","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"@acontplus/ng-auth","version":"2.1.4","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.4","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"7a15dc010e03c47971e7f39063c3571fb5ae649b","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.4.tgz","fileCount":5,"integrity":"sha512-F/184dEzkh4/H1a6OS57CKDaaojB0er1BfFKD4AosgkVNihAfu1MFtWfHzVgJmI0lTTzgf2ViWK4+4d4IBUlTw==","signatures":[{"sig":"MEYCIQDmp7zLf6DCGivxqwyjmewDWn5QUjd2YYGYNGFVJPtyhAIhAKdncNWIwPyy58XIbyG8ifYz8VpFUtQbyZTMB+Y2u7wj","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243113},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"d46ed427bd211d5a95067a6a841475e1b151d023","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@acontplus/core":"^1.1.2","@angular/common":"^21.0.0","@angular/router":"^21.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.0","@acontplus/ng-config":"^2.0.1","@angular/platform-browser":"^21.0.0","@acontplus/ng-infrastructure":"^2.0.5"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.4_1767578649804_0.372661954858458","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"@acontplus/ng-auth","version":"2.1.5","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.5","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/Acontplus-S-A-S/acontplus-libs#readme","bugs":{"url":"https://github.com/Acontplus-S-A-S/acontplus-libs/issues"},"dist":{"shasum":"52aa906642a49b21c7057487648ceb113b6ff6a4","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.5.tgz","fileCount":5,"integrity":"sha512-Mweh0ZYrRvGh19yZTc6rpLAp1HC05kyIuw6P0HJSEfO1YkHz+pQxAvpTnC2SvRH+gZFbx5xaJ6rbkwawsdgI/g==","signatures":[{"sig":"MEQCIHnae7gNPBe+W679DvFwhUqXF2bbc1QBNv82LHtirdQ4AiA869vLKVefRgETyMvJFXTcYuJ6DNQ0WGAqddbNNM1OhQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243113},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"d162c20b3326fc0ae81462581ee1e511f2551278","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/Acontplus-S-A-S/acontplus-libs.git","type":"git"},"_npmVersion":"11.6.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.11.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@acontplus/core":"^1.1.3","@angular/common":"^21.0.0","@angular/router":"^21.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.0","@acontplus/ng-config":"^2.0.2","@angular/platform-browser":"^21.0.0","@acontplus/ng-infrastructure":"^2.0.6"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.5_1767579776544_0.12436283520478342","host":"s3://npm-registry-packages-npm-production"}},"2.1.7":{"name":"@acontplus/ng-auth","version":"2.1.7","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.7","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"30eabd34ec3a3987d706bc119833b687ab48e8bb","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.7.tgz","fileCount":5,"integrity":"sha512-5EoscqUEO7VXJCyT4JjIHIwD0dP43X93wdstSLlXyItQV1cedzbYO0Q/ZriIHyd90IeZajrBF8c/4amM+Cek3w==","signatures":[{"sig":"MEQCICAJuxztB7l6IOgjQ3FRqoJgOR29d+K1s81FnMNn014LAiBheWInhPIrWfgC0naKSKW+Z4nnF24P3wenUDF/QO4Z6w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243095},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"49c985ff5867d4823e4368f8ef77576938af3eaa","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"11.11.0","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@acontplus/core":"^1.1.4","@angular/common":"^21.0.0","@angular/router":"^21.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^21.0.0","@acontplus/ng-infrastructure":"^2.0.8"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.7_1772775169477_0.6390677029744556","host":"s3://npm-registry-packages-npm-production"}},"2.1.9":{"name":"@acontplus/ng-auth","version":"2.1.9","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.9","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"e8f40034642552f0aeba66f346140e49faa206e7","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.9.tgz","fileCount":5,"integrity":"sha512-Kk1danJQkxP8F9kc3nvkjvqa3F7Ikw1CE0QlP8Nv6BnJrusFb8a/rB/h/IuUCIHdnkd2A3r9U+jU9B3vGwjyGw==","signatures":[{"sig":"MEUCIQDzmwq7Sl7giiKwKgU5rRFvR7M8bJpKzaYvSWLQOjza6gIgFbLjHwYqvYn3khXcyns/xtgz9Wf2tWW7dW8eWJuEIEQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":243096},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"4b6d709488bd61ddd50c3caa3713f4276b63aa47","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"11.11.0","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.14.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@acontplus/core":"^1.1.4","@angular/common":"^21.0.0","@angular/router":"^21.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^21.0.0","@acontplus/ng-infrastructure":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.9_1772776497827_0.37378391129871824","host":"s3://npm-registry-packages-npm-production"}},"2.1.10":{"name":"@acontplus/ng-auth","version":"2.1.10","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.10","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"1ff4808fdecec6180daf52cdf9397cea1b5161ca","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.10.tgz","fileCount":5,"integrity":"sha512-zbASljp9o3XhEvSve7GTSdKaQs2nuLK3OvEAWupDP/onciqgUKyxcwn1SeCMqGSzDjIDIMQFetVPVvqgRB2mRA==","signatures":[{"sig":"MEYCIQCxs0t56DwupwDK8L6BlhDuqLa4ZK5S/z3kftwkduXTwgIhAJoMGmOd4QoUYxOI6ubLLFz8fBmOgR6bSSiY5ButSvrI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.1.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243051},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"78c177946a0f55fac4869dab40d3b4bc77e7f479","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"10.9.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@acontplus/core":"^1.1.4","@angular/common":"^21.0.0","@angular/router":"^21.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^21.0.0","@acontplus/ng-infrastructure":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.10_1773120939969_0.5785457255868915","host":"s3://npm-registry-packages-npm-production"}},"2.1.11":{"name":"@acontplus/ng-auth","version":"2.1.11","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.11","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"0fd3648893dc93c5ec13b588a75f732556037b26","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.11.tgz","fileCount":5,"integrity":"sha512-cD0K23Sp7n82ha2Z12SpSdvuq6snug6ykUzkdAoRazdcFG1xIT021Oo2L+RlC6VgsHEDqnwaLOsv8nyJ53rEyw==","signatures":[{"sig":"MEUCIE+kKoOIS8vJ6MmcQ/spFz04m+n1ovQAyT4qaZuzL+cbAiEA79zlq8mTorGGCRAmRNLFxM+N4+NCzWUI95l8jNHOTD4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.1.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243051},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"a178fc4f12c19d9be92a86455065b408c8eb779f","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"10.9.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@acontplus/core":"^1.1.4","@angular/common":"^21.0.0","@angular/router":"^21.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^21.0.0","@acontplus/ng-infrastructure":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.11_1773122076301_0.6668299919830227","host":"s3://npm-registry-packages-npm-production"}},"2.1.12":{"name":"@acontplus/ng-auth","version":"2.1.12","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.12","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"0f77f542f920f2cf23a8cb7cac97cadcaea350be","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.12.tgz","fileCount":5,"integrity":"sha512-dkMxH3e4JI7FlZiG6cTELLdLuMxKJa70fCXAmOTQ+T0UdG8b5umqHxvCzpecrbmVbfJjpDupUo7lBUKMh3vDkg==","signatures":[{"sig":"MEUCIQCssrQF1WgsPMngBxJG6RJoP7ZXixE2Ll/pN63CbsC0gAIgf9xDo/KBXbTmNpO7RVI21yxfANsh7UyDeTjieh09sjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.1.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243051},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"a0c3734a089d901f5a20e38a69530ae3cdab9f2b","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"10.9.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@acontplus/core":"^1.1.4","@angular/common":"^21.0.0","@angular/router":"^21.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^21.0.0","@acontplus/ng-infrastructure":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.12_1773336686954_0.7767714534723509","host":"s3://npm-registry-packages-npm-production"}},"2.1.13":{"name":"@acontplus/ng-auth","version":"2.1.13","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.13","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"860caf362d8194bc7866b86127e2a60848ad71ca","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.13.tgz","fileCount":5,"integrity":"sha512-59b8n0MzV3twLhY3GKFNNnTfyMWblcZcm6kkOVoKlSwgV+uTcycK3b/DQ28d0xhKxuiTuVcffTJwpaPeA6ydtw==","signatures":[{"sig":"MEQCIDAnI3YN70QqEb5rdwtqpCPoUqjBhpzTxOx+Mr2995JGAiBFYW77Y99MPjbiPKGcK9+Cgdj6swOdV5RllhrlOZHtTw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.1.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243051},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"e462a080fd87bb94954f354c196b2efebeff7293","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"10.9.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@acontplus/core":"^1.1.4","@angular/common":"^21.0.0","@angular/router":"^21.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^21.0.0","@acontplus/ng-infrastructure":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.13_1775183022446_0.7851130209729029","host":"s3://npm-registry-packages-npm-production"}},"2.1.14":{"name":"@acontplus/ng-auth","version":"2.1.14","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.14","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"ecc70695a3b24b74b8a6a69519d2fb8e41ad9b25","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.14.tgz","fileCount":5,"integrity":"sha512-cFPfin4jezue7H4AD/GiO96Ln7tlIJIEKwlzLLmNZHjpTBaNr5VEZRPYJ/Vina43hDJ+pqukCbx0cJpY30lciA==","signatures":[{"sig":"MEUCIQCb29hMMz3IG5M+HI2PW0LFkU1ApsosSOsp42c5TT1ZRwIgFUfvbYyysqhC5ONvuwtw2dsatRHGm3IgCWnbZej6O0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.1.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243051},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"0516ea08807a9c041632f4fff4a094cfa1b27a44","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"10.9.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@acontplus/core":"^1.1.4","@angular/common":"^21.0.0","@angular/router":"^21.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^21.0.0","@acontplus/ng-infrastructure":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.14_1775183351838_0.3336409496180188","host":"s3://npm-registry-packages-npm-production"}},"2.1.15":{"name":"@acontplus/ng-auth","version":"2.1.15","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.15","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"5d8915885a13ca50d4b9a15f29a47f762e48d3da","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.15.tgz","fileCount":5,"integrity":"sha512-gOfgBqE7zKh+B6eQPzD7uaBNrA31l6Uo3HjE/MyvbeeUF0EQcA9fQruHEYAjhk75C25wV0OmcHVt0BYXHWoDvg==","signatures":[{"sig":"MEQCIBQ1loqsamwFSLcCZHQShHuUtd+JfE8xT8TgrCNLaAkSAiB+nJCmymf03wN5QQ/SS+VFGNxXjWyMcd5WwEBdMM4otA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.1.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":241174},"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"b275f7a5e744612669b69a98e616cebf0269681b","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"iferpaz7","email":"ifer343@gmail.com"},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"10.9.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"22.14.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^21.0.0","@angular/forms":"^21.0.0","@acontplus/core":"^1.1.4","@angular/common":"^21.0.0","@angular/router":"^21.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^21.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^21.0.0","@acontplus/ng-infrastructure":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.15_1775233232280_0.009158846780995988","host":"s3://npm-registry-packages-npm-production"}},"2.1.16":{"name":"@acontplus/ng-auth","version":"2.1.16","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.1.16","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"c93577e62636efc6471c7fa1c24b966fdcd2c5f4","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.1.16.tgz","fileCount":5,"integrity":"sha512-HhR1Ol3kdKThB+fbSow55Ulc7k5b+aMc7Yb8HLE316NyDBXqbc+RS65XNs+nuyT8ftLBv1v/YyxZs1oxbLuMpg==","signatures":[{"sig":"MEYCIQCtlCjICSgeS/5gs+DdrS97x73NyBBPJv4ZAMTGoHcxlgIhAKihLwmQuN0XNxQKbs4qImJ1ctCMISOSFpoDgrAE9/vW","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.1.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242385},"main":"fesm2022/acontplus-ng-auth.mjs","type":"module","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"95e843efa859cca06b8373c5beba98ea6b992214","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fb9b7960-2c74-4d4d-ac9c-4a68670726e7"}},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"12.0.1","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^22.0.0","@angular/forms":"^22.0.0","@acontplus/core":"^1.1.4","@angular/common":"^22.0.0","@angular/router":"^22.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^22.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^22.0.0","@acontplus/ng-infrastructure":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.1.16_1783836321770_0.8328157186993244","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@acontplus/ng-auth","version":"2.2.0","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.2.0","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"58bc31a4899fb22509b56e7b23ab75c600e63b51","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.2.0.tgz","fileCount":5,"integrity":"sha512-u02AVZAXOI2V3jjvorPmBhP5Jx/ae6ipZCJ4B4Fyn1qrybzKL2gkdbuf/g3aWrtjkVUWBwiYCoRpIkmUbPurHg==","signatures":[{"sig":"MEYCIQC4cIkaLpyK16Ih5/wOkbt6x5aXVvElv0PvGpRzQKHPywIhAMeCSrO9f4JFIH/zuuqUqvXVYIvnOJDQJapMNqC27lJ4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242388},"main":"fesm2022/acontplus-ng-auth.mjs","type":"module","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"7703f10c53e06cfa853012a2b808e989ec0fe91d","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fb9b7960-2c74-4d4d-ac9c-4a68670726e7"}},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"12.0.1","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^22.0.0","@angular/forms":"^22.0.0","@acontplus/core":"^1.1.4","@angular/common":"^22.0.0","@angular/router":"^22.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^22.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^22.0.0","@acontplus/ng-infrastructure":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.2.0_1784237078006_0.8276137104025947","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@acontplus/ng-auth","version":"2.2.1","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.2.1","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"fb02a2a1e7518ae69ed4fde09bbe3e63d19531f0","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.2.1.tgz","fileCount":5,"integrity":"sha512-grpsfghFyyyBUWzY08ikGVh+2Hu7+oocD+XXPNL+/GczENc9mfBXJlCDeTfeRrLE7OEzvdFrU+mBKiTmi8OUXA==","signatures":[{"sig":"MEUCIQDfqUElu1NMzyIlLVSN1d+Kl1OMvtH0YTrRuB0OjsGxTQIgfSitqB5d5VVWLgcuFZgAN1PH+wGxjviY0BDgt66phMk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242618},"main":"fesm2022/acontplus-ng-auth.mjs","type":"module","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"44bc23d91bf7bbe013dca15b7d52bb838ffee4ad","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fb9b7960-2c74-4d4d-ac9c-4a68670726e7"}},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"12.0.1","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^22.0.0","@angular/forms":"^22.0.0","@acontplus/core":"^1.1.4","@angular/common":"^22.0.0","@angular/router":"^22.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^22.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^22.0.0","@acontplus/ng-infrastructure":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.2.1_1784321446492_0.5286419108106724","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@acontplus/ng-auth","version":"2.3.0","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.3.0","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"1dcb651195f9e6c9007e4a4f63f6982254859e60","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.3.0.tgz","fileCount":5,"integrity":"sha512-WESiHDweXhkZ39wvwOCg9L1nB/CJl5+TWBo9iAtH0sSOOZuxB0GWPpJy9vJo5WLWcP9jUI5ZZ5AYQQtMwYsulQ==","signatures":[{"sig":"MEQCIHuVXKLBD/EB1//jI0Lc+nctYdSlBYcw7nP4VkIzmUgEAiAP1bLG6gv4ygm/e5CbO/v4/Mm+stFkeYpFu/G4+4S7jA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242641},"main":"fesm2022/acontplus-ng-auth.mjs","type":"module","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"a9599cd819f89eda30c6fde04a0561405f856d9b","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fb9b7960-2c74-4d4d-ac9c-4a68670726e7"}},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"12.0.1","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^22.0.0","@angular/forms":"^22.0.0","@acontplus/core":"^1.1.4","@angular/common":"^22.0.0","@angular/router":"^22.0.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^22.0.0","@acontplus/ng-config":"^2.0.3","@angular/platform-browser":"^22.0.0","@acontplus/ng-infrastructure":"^2.0.10"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.3.0_1784606033434_0.7696208033327279","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@acontplus/ng-auth","version":"2.3.1","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.3.1","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"727a43f0a2cf1b5827eaacd69dfd0e047f1421f3","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.3.1.tgz","fileCount":5,"integrity":"sha512-TukSMEaTuJECXoOvOp0qgTc6qT+pbwphhv4BTer5Zsme8TvEQazt9EVimJJmKfM9pUTrdDQZryE4hIR0tswReg==","signatures":[{"sig":"MEUCIQDOPLU4Ie/M6CtRhSVLvh6eJ5ZNc07dfr7sNWb+pCHArQIgex4DPSmEzSAoJpzOrek/qeTwQfanpnyCQCd8gKR0F0U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242638},"main":"fesm2022/acontplus-ng-auth.mjs","type":"module","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"8ee00f9dbacc3645f43345f3f61020b8363662dc","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fb9b7960-2c74-4d4d-ac9c-4a68670726e7"}},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"12.0.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^22.1.0","@angular/forms":"^22.1.0","@acontplus/core":"^1.1.4","@angular/common":"^22.1.0","@angular/router":"^22.1.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^22.1.0","@acontplus/ng-config":"2.0.6","@angular/platform-browser":"^22.1.0","@acontplus/ng-infrastructure":"2.2.1"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.3.1_1785734980231_0.396963730207879","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@acontplus/ng-auth","version":"2.4.0","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@2.4.0","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"91170b9d0995d79e01be82da790a49efa12b4e76","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-2.4.0.tgz","fileCount":5,"integrity":"sha512-IBQlcz66vMzz9fGZEmE4bIpIwbudOgy4IThMkv1Yq9q5nWZG0wGZLmNm8He0emHA6NpGNmF0XXion3UXnapH7g==","signatures":[{"sig":"MEUCIQC1RjEuk9D214EGKIdb4QXiaobOKlGKN/UQr55ETg2TVgIgf3RgU6XP0bALWg5nlr25VMvPsvCXTcYOc5G9xfUNVUQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242638},"main":"fesm2022/acontplus-ng-auth.mjs","type":"module","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"a0c9cefa179a8bc8f39ac9a80d2b7c74fa9ee063","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fb9b7960-2c74-4d4d-ac9c-4a68670726e7"}},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"12.0.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^22.1.0","@angular/forms":"^22.1.0","@acontplus/core":"^1.1.4","@angular/common":"^22.1.0","@angular/router":"^22.1.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^22.1.0","@acontplus/ng-config":"2.1.0","@angular/platform-browser":"^22.1.0","@acontplus/ng-infrastructure":"2.3.0"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_2.4.0_1785736015370_0.7682792530378411","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@acontplus/ng-auth","version":"3.0.0","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@3.0.0","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"2e12009e82435c07d9d35ce390c696308016f580","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-3.0.0.tgz","fileCount":5,"integrity":"sha512-lmGuBAqK+TFDHhCnoV31kzwOccB2RwRXzvVJdfwLC2Bzc1XkhPsnWtSFkNDnG2E4vC+nrzSbzgsGUWjDEGdwqA==","signatures":[{"sig":"MEQCIGcRQcksrYTpECUFbA4H4QQd1ujnW5HE1wTd6Wzfy13gAiBopNmlFMGpWa1K957BjobO/md+qP38GFn9is6kpVgq3w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@3.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242638},"main":"fesm2022/acontplus-ng-auth.mjs","type":"module","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"dee4b8bc00b092695d451da398009dcc82007539","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fb9b7960-2c74-4d4d-ac9c-4a68670726e7"}},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"12.0.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^22.1.0","@angular/forms":"^22.1.0","@acontplus/core":"^1.1.4","@angular/common":"^22.1.0","@angular/router":"^22.1.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^22.1.0","@acontplus/ng-config":"3.0.0","@angular/platform-browser":"^22.1.0","@acontplus/ng-infrastructure":"3.0.0"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_3.0.0_1785736795924_0.9692303171478616","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@acontplus/ng-auth","version":"3.0.1","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@3.0.1","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"33d7faf82dc5d95878c578240bb524bd9b205d4e","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-3.0.1.tgz","fileCount":5,"integrity":"sha512-rWVLRJOORYvEW1ThkaJIvJ7nkM4e6cszLnWUSQiYlUr4zr2/rQhieRo4KbA2xAUfsbnOM8qNGtgU3EfR6nyaEA==","signatures":[{"sig":"MEQCIBqJv3imJmVUo+mwPwrTrwm4JyhZ7YCq7ONOHPJOtTbzAiBWg2AKEKfX4UBiv5ymydFdLq9aKf3sNIdyzuipIhf6xw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@3.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242800},"main":"fesm2022/acontplus-ng-auth.mjs","type":"module","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"72e98ef1ebd9e064ce63a467578d89c5acbb13c5","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fb9b7960-2c74-4d4d-ac9c-4a68670726e7"}},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"12.0.2","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.18.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^22.1.0","@angular/forms":"^22.1.0","@acontplus/core":"^1.1.4","@angular/common":"^22.1.0","@angular/router":"^22.1.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^22.1.0","@acontplus/ng-config":"3.0.1","@angular/platform-browser":"^22.1.0","@acontplus/ng-infrastructure":"3.1.0"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_3.0.1_1785823853119_0.4312804779160997","host":"s3://npm-registry-packages-npm-production"}},"3.0.2":{"name":"@acontplus/ng-auth","version":"3.0.2","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","_id":"@acontplus/ng-auth@3.0.2","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"homepage":"https://github.com/acontplus/acontplus-libs#readme","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"dist":{"shasum":"03b3a762ff893afb2a179fa56d09d03956e61a97","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-3.0.2.tgz","fileCount":5,"integrity":"sha512-ANDUA72gvnpCz63tBCoj7Zv5muEBUroad4s1+q+QaYxWuK2RtxfR0zVD87nWb1hMJ7Qicy1ObhvXfTD6ARu9ww==","signatures":[{"sig":"MEUCIQD0KmO71yFxqxAMeOpL6q21e5KjDdQIHYBB78p4GMjWKQIgWrrbHqTB8i/GbCEJgay3yXlu8YuNsE7+OmbsdXqj3Pk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@3.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":242796},"main":"fesm2022/acontplus-ng-auth.mjs","type":"module","module":"fesm2022/acontplus-ng-auth.mjs","engines":{"node":">=18.0.0"},"exports":{".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"},"./package.json":{"default":"./package.json"}},"gitHead":"73881923fc45a9d02f37a14297250359b3b5450e","release":{"branches":["main"]},"typings":"types/acontplus-ng-auth.d.ts","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fb9b7960-2c74-4d4d-ac9c-4a68670726e7"}},"repository":{"url":"git+https://github.com/acontplus/acontplus-libs.git","type":"git"},"_npmVersion":"11.19.0","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","directories":{},"sideEffects":false,"_nodeVersion":"24.19.0","dependencies":{"tslib":"^2.3.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"peerDependencies":{"rxjs":"^7.8.1","jwt-decode":"^4.0.0","@angular/core":"^22.1.0","@angular/forms":"^22.1.0","@acontplus/core":"^1.1.4","@angular/common":"^22.1.0","@angular/router":"^22.1.0","@acontplus/ui-kit":"^1.0.2","@angular/material":"^22.1.0","@acontplus/ng-config":"3.0.2","@angular/platform-browser":"^22.1.0","@acontplus/ng-infrastructure":"3.1.1"},"_npmOperationalInternal":{"tmp":"tmp/ng-auth_3.0.2_1787505272771_0.9391312784066554","host":"s3://npm-registry-packages-npm-production"}},"3.0.3":{"name":"@acontplus/ng-auth","version":"3.0.3","description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","peerDependencies":{"@acontplus/core":"^1.1.4","@acontplus/ng-infrastructure":"3.1.2","@acontplus/ng-config":"3.0.3","@acontplus/ui-kit":"^1.0.2","@angular/common":"^22.1.0","@angular/core":"^22.1.0","@angular/router":"^22.1.0","@angular/forms":"^22.1.0","@angular/platform-browser":"^22.1.0","@angular/material":"^22.1.0","jwt-decode":"^4.0.0","rxjs":"^7.8.1"},"sideEffects":false,"main":"fesm2022/acontplus-ng-auth.mjs","module":"fesm2022/acontplus-ng-auth.mjs","typings":"types/acontplus-ng-auth.d.ts","engines":{"node":">=18.0.0"},"publishConfig":{"access":"public"},"keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"homepage":"https://github.com/acontplus/acontplus-libs#readme","repository":{"type":"git","url":"git+https://github.com/acontplus/acontplus-libs.git"},"release":{"branches":["main"]},"exports":{"./package.json":{"default":"./package.json"},".":{"types":"./types/acontplus-ng-auth.d.ts","default":"./fesm2022/acontplus-ng-auth.mjs"}},"type":"module","dependencies":{"tslib":"^2.3.0"},"gitHead":"9d568f64dc623616b54d16deb153f0ebc5b93b12","_id":"@acontplus/ng-auth@3.0.3","_nodeVersion":"24.20.0","_npmVersion":"11.19.1","dist":{"integrity":"sha512-HllmGvvivNWp9EPlthmpPHSgBn1Ht3fDeO52z+KqQ/gjTlV0pqKOD8L44XQ6k8BII1acEVdsBV7pJb3ZI4zJQQ==","shasum":"2d57689d49a2f5e9f35d42a3aa3a16db32b93bda","tarball":"https://registry.npmjs.org/@acontplus/ng-auth/-/ng-auth-3.0.3.tgz","fileCount":5,"unpackedSize":242796,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@acontplus%2fng-auth@3.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC/D56UKVAE3ipZU7/4M7HdW7+jpUbZ61EPSZGB+/86dQIgVIYzT+GSaRz1kxFXGVfJVe2IYyS7+JLk+229v129FEs="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:fb9b7960-2c74-4d4d-ac9c-4a68670726e7"}},"directories":{},"maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ng-auth_3.0.3_1789085663544_0.8453702722720708"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-30T07:07:45.118Z","modified":"2026-09-11T00:14:24.035Z","1.0.0":"2025-09-30T07:07:45.800Z","1.0.1":"2025-09-30T22:20:11.144Z","1.0.2":"2025-10-01T05:30:23.343Z","1.0.3":"2025-10-02T19:01:46.711Z","1.1.0":"2025-10-03T00:06:02.727Z","1.1.1":"2025-10-03T19:50:19.869Z","1.1.2":"2025-10-07T06:34:34.573Z","1.1.3":"2025-10-07T07:27:21.660Z","1.1.4":"2025-10-07T18:29:31.585Z","1.1.5":"2025-10-07T19:25:13.320Z","1.1.6":"2025-10-09T08:15:38.114Z","1.1.7":"2025-10-09T19:25:22.339Z","1.2.0":"2025-10-13T02:47:23.198Z","1.2.1":"2025-10-13T03:23:21.679Z","1.2.2":"2025-11-07T20:37:00.230Z","1.2.3":"2025-11-25T06:08:10.079Z","2.0.0":"2025-12-26T02:03:03.795Z","2.1.0":"2026-01-02T01:28:51.687Z","2.1.1":"2026-01-02T04:13:13.354Z","2.1.2":"2026-01-02T19:35:56.914Z","2.1.3":"2026-01-05T01:37:53.389Z","2.1.4":"2026-01-05T02:04:09.948Z","2.1.5":"2026-01-05T02:22:56.678Z","2.1.7":"2026-03-06T05:32:49.628Z","2.1.9":"2026-03-06T05:54:57.966Z","2.1.10":"2026-03-10T05:35:40.127Z","2.1.11":"2026-03-10T05:54:36.440Z","2.1.12":"2026-03-12T17:31:27.119Z","2.1.13":"2026-04-03T02:23:42.593Z","2.1.14":"2026-04-03T02:29:11.999Z","2.1.15":"2026-04-03T16:20:32.411Z","2.1.16":"2026-07-12T06:05:21.915Z","2.2.0":"2026-07-16T21:24:38.137Z","2.2.1":"2026-07-17T20:50:46.622Z","2.3.0":"2026-07-21T03:53:53.583Z","2.3.1":"2026-08-03T05:29:40.387Z","2.4.0":"2026-08-03T05:46:55.523Z","3.0.0":"2026-08-03T05:59:56.067Z","3.0.1":"2026-08-04T06:10:53.296Z","3.0.2":"2026-08-23T17:14:32.908Z","3.0.3":"2026-09-11T00:14:23.677Z"},"bugs":{"url":"https://github.com/acontplus/acontplus-libs/issues"},"author":{"name":"Ivan Paz","email":"ifer343@gmail.com"},"license":"MIT","homepage":"https://github.com/acontplus/acontplus-libs#readme","keywords":["acontplus","angular","authentication","jwt","jwt-decode","auth-guard","route-guards","auth-interceptor","csrf-interceptor","csrf-protection","url-redirect","session-management","token-management","login-component","auth-providers","auth-repository","auth-stores","ddd","clean-architecture","hexagonal-architecture","use-cases","domain-models","typescript","angular-material","enterprise","frontend"],"repository":{"type":"git","url":"git+https://github.com/acontplus/acontplus-libs.git"},"description":"Comprehensive Angular authentication module with JWT token management, route guards, CSRF protection, URL redirection, session handling, and clean architecture patterns. Includes login components, auth interceptors, and DDD-based repositories.","maintainers":[{"name":"iferpaz7","email":"ifer343@gmail.com"},{"name":"emilio_dev","email":"sengua2017@gmail.com"}],"readme":"# @acontplus/ng-auth\n\nAngular authentication library with comprehensive auth features following Angular 22 best practices and clean architecture principles.\n\n> **🚀 New Feature**: Multi-Tenant OAuth / Enterprise SSO  \n> Support for Google Workspace, Microsoft 365, and Azure AD with automatic domain discovery.  \n> Perfect for SaaS applications with enterprise customers.\n\n## Installation\n\n```bash\nnpm install @acontplus/ng-auth\n# or\npnpm add @acontplus/ng-auth\n```\n\n## Features\n\n- ✅ **Modern Angular 22 Patterns**: Signals, inject(), standalone components\n- ✅ **Clean Architecture**: Domain → Data → Services (no use cases overhead)\n- ✅ **AuthState Service**: Centralized auth state with reactive signals\n- ✅ **Multi-Tenant OAuth**: Enterprise SSO with domain discovery (Google Workspace, Azure AD)\n- ✅ **Route Guards**: Protection with automatic redirect handling\n- ✅ **Token Management**: JWT storage, refresh, and validation\n- ✅ **Auto Token Refresh**: Scheduled refresh before expiration\n- ✅ **URL Redirection**: Returns users to intended page after login\n- ✅ **Password Management**: Reset, change, forgot password flows\n- ✅ **Email Verification**: Email verification with resend capability\n- ✅ **MFA/2FA Support**: Setup, verify, and disable two-factor auth\n- ✅ **Social Login**: Google, Microsoft, GitHub, Facebook, Apple, LinkedIn OAuth\n- ✅ **Domain Discovery**: Automatic OAuth provider detection from email\n- ✅ **CSRF Protection**: Built-in CSRF token management\n- ✅ **Session Handling**: Auto-logout on expiry, 401 interceptor\n- ✅ **Login Component**: Ready-to-use Material Design UI with OAuth support\n- ✅ **TypeScript**: Full type safety with comprehensive types\n\n## Quick Start\n\n### 1. Install the package\n\n```bash\npnpm add @acontplus/ng-auth\n```\n\n### 2. Configure providers\n\n```typescript\n// app.config.ts\nimport { ApplicationConfig } from '@angular/core';\nimport { provideHttpClient, withInterceptors } from '@angular/common/http';\nimport { authProviders, authRedirectInterceptor, csrfInterceptor } from '@acontplus/ng-auth';\nimport { ENVIRONMENT } from '@acontplus/ng-config';\nimport { Environment } from '@acontplus/core';\n\nconst environment: Environment = {\n  isProduction: false,\n  apiBaseUrl: 'https://api.example.com',\n  clientId: 'my-app',\n  tokenKey: 'auth_token',\n  refreshTokenKey: 'refresh_token',\n  loginRoute: 'auth/login',\n};\n\nexport const appConfig: ApplicationConfig = {\n  providers: [\n    provideHttpClient(\n      withInterceptors([\n        authRedirectInterceptor, // Handles 401 errors\n        csrfInterceptor, // CSRF protection\n      ]),\n    ),\n\n    // Auth services\n    ...authProviders,\n\n    // Environment config\n    {\n      provide: ENVIRONMENT,\n      useValue: environment,\n    },\n  ],\n};\n```\n\n### 3. Protect routes\n\n```typescript\n// app.routes.ts\nimport { Routes } from '@angular/router';\nimport { authGuard } from '@acontplus/ng-auth';\n\nexport const routes: Routes = [\n  {\n    path: 'auth/login',\n    loadComponent: () => import('./pages/auth').then((m) => m.AuthPage),\n  },\n  {\n    path: 'dashboard',\n    loadComponent: () => import('./pages/dashboard').then((m) => m.Dashboard),\n    canActivate: [authGuard], // 👈 Protected route\n  },\n];\n```\n\n### 4. Use AuthState service\n\n```typescript\n// dashboard.component.ts\nimport { Component, inject } from '@angular/core';\nimport { AuthState } from '@acontplus/ng-auth';\n\n@Component({\n  selector: 'app-dashboard',\n  template: `\n    <h1>Welcome, {{ authState.user()?.displayName }}!</h1>\n    <p>Email: {{ authState.user()?.email }}</p>\n\n    @if (authState.isLoading()) {\n      <p>Loading...</p>\n    }\n\n    <button (click)=\"logout()\">Logout</button>\n  `,\n})\nexport class Dashboard {\n  protected readonly authState = inject(AuthState);\n\n  logout() {\n    this.authState.logout().subscribe();\n  }\n}\n```\n\n## Core API\n\n### AuthState Service\n\nThe main service for all authentication operations. Uses Angular signals for reactive state.\n\n```typescript\nimport { inject } from '@angular/core';\nimport { AuthState } from '@acontplus/ng-auth';\n\nconst authState = inject(AuthState);\n\n// Reactive state (signals)\nauthState.isAuthenticated(); // Signal<boolean>\nauthState.user(); // Signal<UserData | null>\nauthState.isLoading(); // Signal<boolean>\nauthState.mfaRequired(); // Signal<boolean>\nauthState.emailVerified(); // Signal<boolean>\n\n// Authentication methods\nauthState.login({ email, password, rememberMe }).subscribe();\nauthState.register({ email, displayName, password }).subscribe();\nauthState.logout().subscribe();\nauthState.refreshToken().subscribe();\n\n// Password management\nauthState.forgotPassword({ email }).subscribe();\nauthState.resetPassword({ token, newPassword }).subscribe();\nauthState.changePassword({ currentPassword, newPassword }).subscribe();\n\n// Email verification\nauthState.verifyEmail({ token }).subscribe();\nauthState.resendVerificationEmail({ email }).subscribe();\n\n// MFA/2FA\nauthState.setupMfa().subscribe(); // Returns QR code + backup codes\nauthState.verifyMfa({ code, email }).subscribe();\nauthState.disableMfa(code).subscribe();\n\n// Social login\nauthState.getSocialAuthUrl('google').subscribe();\nauthState.socialLogin({ provider: 'google', accessToken, idToken }).subscribe();\n\n// State checks\nauthState.checkAuthentication(); // Returns boolean\nauthState.setAuthenticated(tokens, rememberMe);\n```\n\n### Route Protection\n\n```typescript\n// app.routes.ts\nimport { authGuard } from '@acontplus/ng-auth';\n\nconst routes: Routes = [\n  {\n    path: 'admin',\n    canActivate: [authGuard],\n    children: [...],\n  },\n];\n```\n\n**How it works:**\n\n1. User tries to access `/admin/settings`\n2. `authGuard` checks authentication\n3. If not authenticated: stores URL → redirects to login\n4. After login: automatically redirects back to `/admin/settings`\n\n### Token Repository\n\nLow-level token storage operations (usually not needed directly):\n\n```typescript\nimport { inject } from '@angular/core';\nimport { AuthTokenRepositoryImpl } from '@acontplus/ng-auth';\n\nconst tokenRepo = inject(AuthTokenRepositoryImpl);\n\n// Token operations\ntokenRepo.getToken(); // Get access token\ntokenRepo.getRefreshToken(); // Get refresh token\ntokenRepo.saveTokens(tokens, rememberMe);\ntokenRepo.clearTokens();\n\n// Validation\ntokenRepo.isAuthenticated(); // Check if token is valid\ntokenRepo.needsRefresh(); // Check if token needs refresh\n\n// User data extraction from JWT\ntokenRepo.getUserData(); // Returns UserData | null\ntokenRepo.isRememberMeEnabled(); // Check storage location\n```\n\n### Interceptors\n\n**Auth Redirect Interceptor** - Handles 401 errors:\n\n```typescript\nimport { authRedirectInterceptor } from '@acontplus/ng-auth';\n\nprovideHttpClient(withInterceptors([authRedirectInterceptor]));\n```\n\n**CSRF Interceptor** - Adds CSRF tokens:\n\n```typescript\nimport { csrfInterceptor } from '@acontplus/ng-auth';\n\nprovideHttpClient(withInterceptors([csrfInterceptor]));\n```\n\n## Login Component\n\nReady-to-use Material Design login/register UI.\n\n### Basic Usage\n\n```typescript\nimport { Login } from '@acontplus/ng-auth';\n\n@Component({\n  selector: 'app-auth',\n  imports: [Login],\n  template: `<acp-login />`,\n})\nexport class AuthPage {}\n```\n\n### With Customization\n\n```typescript\n@Component({\n  template: `\n    <acp-login\n      title=\"Welcome to MyApp\"\n      [showRegisterButton]=\"true\"\n      [showRememberMe]=\"true\"\n      [additionalSigninControls]=\"extraSigninFields\"\n      [additionalSignupControls]=\"extraSignupFields\"\n      [footerContent]=\"footer\"\n    />\n\n    <ng-template #footer>\n      <div class=\"text-center\">\n        <a href=\"/terms\">Terms</a> |\n        <a href=\"/privacy\">Privacy</a>\n      </div>\n    </ng-template>\n  `,\n})\nexport class AuthPage {\n  extraSigninFields = {\n    companyId: new FormControl('', Validators.required),\n  };\n\n  extraSignupFields = {\n    role: new FormControl('user', Validators.required),\n  };\n}\n```\n\n### Component Inputs\n\n| Input                      | Type                              | Default   | Description               |\n| -------------------------- | --------------------------------- | --------- | ------------------------- |\n| `title`                    | `string`                          | `'Login'` | Card title                |\n| `showRegisterButton`       | `boolean`                         | `true`    | Show register toggle      |\n| `showRememberMe`           | `boolean`                         | `true`    | Show remember me checkbox |\n| `additionalSigninControls` | `Record<string, AbstractControl>` | `{}`      | Extra login fields        |\n| `additionalSignupControls` | `Record<string, AbstractControl>` | `{}`      | Extra signup fields       |\n| `additionalSigninFields`   | `TemplateRef`                     | `null`    | Custom login template     |\n| `additionalSignupFields`   | `TemplateRef`                     | `null`    | Custom signup template    |\n| `footerContent`            | `TemplateRef`                     | `null`    | Custom footer             |\n\n## Architecture\n\nFollowing **Angular 22 style guide** and **clean architecture**:\n\n```\nng-auth/\n├── domain/\n│   ├── models/                    # DTOs and interfaces\n│   └── repositories/              # Abstract contracts\n├── data/\n│   └── repositories/              # HTTP implementations\n├── repositories/                  # Token storage impl\n├── services/\n│   ├── auth-state.ts             # 👈 Main service\n│   ├── auth-url-redirect.ts       # URL management\n│   └── csrf-api.ts                # CSRF tokens\n├── guards/\n│   └── auth-guard.ts              # Route protection\n├── interceptors/\n│   ├── auth-redirect-interceptor.ts\n│   └── csrf-interceptor.ts\n├── providers/\n│   └── auth-providers.ts          # DI providers\n└── ui/\n    └── login/                     # Login component\n```\n\n**Key decisions:**\n\n- ❌ No use cases layer (unnecessary for a library)\n- ✅ AuthState consolidates all auth operations\n- ✅ Signals for reactive state\n- ✅ Repository pattern for data abstraction\n- ✅ No `.service.ts` suffix (Angular 22 style guide)\n\n## Real-World Example\n\n### Complete Auth Page\n\n```typescript\n// auth.page.ts\nimport { Component, inject } from '@angular/core';\nimport { Login, AuthState } from '@acontplus/ng-auth';\n\n@Component({\n  selector: 'app-auth',\n  imports: [Login],\n  template: `\n    <div class=\"auth-container\">\n      <acp-login title=\"Welcome to Acontplus\" />\n    </div>\n  `,\n  styles: [\n    `\n      .auth-container {\n        min-height: 100vh;\n        display: flex;\n        align-items: center;\n        justify-content: center;\n        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);\n      }\n    `,\n  ],\n})\nexport class AuthPage {}\n```\n\n### Protected Dashboard\n\n```typescript\n// dashboard.page.ts\nimport { Component, inject } from '@angular/core';\nimport { AuthState } from '@acontplus/ng-auth';\nimport { Router } from '@angular/router';\n\n@Component({\n  selector: 'app-dashboard',\n  template: `\n    <div class=\"dashboard\">\n      <header>\n        <h1>Dashboard</h1>\n        <div class=\"user-info\">\n          @if (user(); as userData) {\n            <span>{{ userData.displayName }}</span>\n            <button (click)=\"logout()\">Logout</button>\n          }\n        </div>\n      </header>\n\n      <main>\n        <p>Welcome back, {{ user()?.displayName }}!</p>\n        <p>Email: {{ user()?.email }}</p>\n\n        @if (user()?.roles?.includes('admin')) {\n          <a routerLink=\"/admin\">Admin Panel</a>\n        }\n\n        @if (!emailVerified()) {\n          <div class=\"warning\">\n            Please verify your email\n            <button (click)=\"resendVerification()\">Resend</button>\n          </div>\n        }\n      </main>\n    </div>\n  `,\n})\nexport class Dashboard {\n  private readonly authState = inject(AuthState);\n  private readonly router = inject(Router);\n\n  // Reactive state\n  user = this.authState.user;\n  emailVerified = this.authState.emailVerified;\n\n  logout() {\n    this.authState.logout().subscribe(() => {\n      this.router.navigate(['/auth']);\n    });\n  }\n\n  resendVerification() {\n    const email = this.user()?.email;\n    if (email) {\n      this.authState.resendVerificationEmail({ email }).subscribe();\n    }\n  }\n}\n```\n\n## Migration from v1.x\n\nIf you're upgrading from the old version:\n\n### ❌ Before (Use Cases)\n\n```typescript\nimport { LoginUseCase, LogoutUseCase } from '@acontplus/ng-auth';\n\nexport class MyComponent {\n  constructor(\n    private loginUseCase: LoginUseCase,\n    private logoutUseCase: LogoutUseCase,\n  ) {}\n\n  login() {\n    this.loginUseCase.execute({ email, password }).subscribe();\n  }\n}\n```\n\n### ✅ After (AuthState)\n\n```typescript\nimport { inject } from '@angular/core';\nimport { AuthState } from '@acontplus/ng-auth';\n\nexport class MyComponent {\n  private authState = inject(AuthState);\n\n  login() {\n    this.authState.login({ email, password }).subscribe();\n  }\n}\n```\n\n## FAQ\n\n**Q: Why no use cases layer?**  \nA: For a library, use cases add unnecessary indirection. The `AuthState` service provides a clean facade with all operations.\n\n**Q: Can I use constructor injection instead of inject()?**  \nA: Yes, but `inject()` is the Angular 22 recommended approach.\n\n**Q: How do I customize the login component?**  \nA: Use the component inputs (`additionalSigninControls`, templates) or create your own using `AuthState` directly.\n\n**Q: What about server-side rendering (SSR)?**  \nA: The library is SSR-compatible. Token operations use `isPlatformBrowser` checks.\n\n**Q: How to handle token expiry?**  \nA: Token refresh is automatic. Use `authRedirectInterceptor` for 401 handling.\n\n## Multi-Tenant OAuth / Enterprise SSO\n\nThe library includes comprehensive support for multi-tenant OAuth authentication, ideal for SaaS applications where different organizations use their own identity providers (like Google Workspace, Microsoft Azure AD, etc.).\n\n### Features\n\n- ✅ **Domain Discovery**: Automatically detect OAuth provider from email domain\n- ✅ **Tenant Isolation**: Support multiple tenants with different OAuth configurations\n- ✅ **SSO Integration**: Google Workspace, Microsoft 365, Azure AD, etc.\n- ✅ **Flexible Authentication**: Allow both OAuth and password login per tenant\n- ✅ **OAuth Callback Handling**: Built-in callback component with CSRF protection\n- ✅ **State Management**: Secure OAuth state verification\n\n### Use Cases\n\n1. **Google Workspace Multi-Tenant**\n   - Each company has their own Google Workspace domain\n   - Users from `@acme.com` use Acme's Google Workspace\n   - Users from `@techcorp.com` use TechCorp's Google Workspace\n\n2. **Microsoft 365 / Azure AD**\n   - Enterprise organizations with Azure AD\n   - Single sign-on for employees\n   - Optional password fallback for external users\n\n3. **Hybrid Authentication**\n   - OAuth for enterprise customers\n   - Password login for individual users\n   - Social login for public users\n\n### Backend Requirements\n\nYour backend needs to implement these endpoints:\n\n```typescript\n// Domain Discovery - Maps email domain to OAuth provider\nPOST /api/auth/domain-discovery\nRequest: { email: string }\nResponse: {\n  provider?: 'google' | 'microsoft' | 'apple' | 'linkedin' | 'github',\n  tenantId?: string,\n  domain?: string,\n  discoveryUrl?: string,\n  requiresOAuth: boolean,\n  allowPasswordLogin: boolean\n}\n\n// Get OAuth Authorization URL with tenant context\nGET /api/auth/social/{provider}/url?tenantId=xxx&domain=xxx\nResponse: {\n  url: string,    // OAuth authorization URL\n  state: string   // CSRF state token\n}\n\n// OAuth Callback - Exchange code for tokens\nPOST /api/auth/social/{provider}/callback\nRequest: {\n  provider: string,\n  code: string,\n  state: string,\n  tenantId?: string,\n  domain?: string\n}\nResponse: {\n  token: string,\n  refreshToken: string\n}\n\n// Tenant Configuration (optional - for admin UI)\nGET /api/auth/tenants\nGET /api/auth/tenants/{tenantId}\n```\n\n### Setup: Domain Discovery in Login\n\nEnable automatic domain discovery in the login component:\n\n```typescript\n// auth.page.ts\nimport { Component } from '@angular/core';\nimport { Login } from '@acontplus/ng-auth';\n\n@Component({\n  selector: 'app-auth',\n  standalone: true,\n  imports: [Login],\n  template: ` <acp-login [enableDomainDiscovery]=\"true\" [showSocialLogin]=\"true\" /> `,\n})\nexport class AuthPage {}\n```\n\n**How it works:**\n\n1. User types email: `user@acme.com`\n2. Library calls `/api/auth/domain-discovery` with email\n3. Backend responds with OAuth provider and tenant info\n4. UI shows appropriate login method (OAuth button or password field)\n\n### Setup: OAuth Callback Route\n\nRegister the OAuth callback component in your routes:\n\n```typescript\n// app.routes.ts\nimport { Routes } from '@angular/router';\nimport { OAuthCallbackComponent } from '@acontplus/ng-auth';\n\nexport const routes: Routes = [\n  {\n    path: 'auth/callback/:provider',\n    component: OAuthCallbackComponent,\n  },\n  // ... other routes\n];\n```\n\nConfigure these redirect URIs in your OAuth provider:\n\n- Google: `https://your-app.com/auth/callback/google`\n- Microsoft: `https://your-app.com/auth/callback/microsoft`\n- GitHub: `https://your-app.com/auth/callback/github`\n\n### Programmatic OAuth Flow\n\nFor custom implementations, use the AuthState methods directly:\n\n```typescript\nimport { Component, inject } from '@angular/core';\nimport { AuthState } from '@acontplus/ng-auth';\n\n@Component({\n  selector: 'app-custom-login',\n  template: `\n    <input #emailInput (blur)=\"checkDomain(emailInput.value)\" />\n\n    @if (discovery?.requiresOAuth) {\n      <button (click)=\"loginWithOAuth()\">Login with {{ discovery.provider }}</button>\n    }\n\n    @if (discovery?.allowPasswordLogin) {\n      <input type=\"password\" [(ngModel)]=\"password\" />\n      <button (click)=\"loginWithPassword()\">Login</button>\n    }\n  `,\n})\nexport class CustomLogin {\n  private authState = inject(AuthState);\n\n  email = '';\n  password = '';\n  discovery: DomainDiscoveryResponse | null = null;\n\n  checkDomain(email: string) {\n    this.email = email;\n    this.authState.discoverDomain(email).subscribe({\n      next: (result) => {\n        this.discovery = result;\n      },\n    });\n  }\n\n  loginWithOAuth() {\n    if (!this.discovery?.provider) return;\n\n    // This redirects to OAuth provider\n    this.authState.startOAuthFlow({\n      provider: this.discovery.provider,\n      tenantId: this.discovery.tenantId,\n      domain: this.discovery.domain,\n    });\n  }\n\n  loginWithPassword() {\n    this.authState\n      .login({\n        email: this.email,\n        password: this.password,\n      })\n      .subscribe();\n  }\n}\n```\n\n### Manual OAuth Callback Handling\n\nIf not using the provided callback component:\n\n```typescript\nimport { Component, OnInit, inject } from '@angular/core';\nimport { ActivatedRoute } from '@angular/router';\nimport { AuthState } from '@acontplus/ng-auth';\n\n@Component({\n  selector: 'app-oauth-callback',\n  template: '<p>Completing authentication...</p>',\n})\nexport class MyOAuthCallback implements OnInit {\n  private authState = inject(AuthState);\n  private route = inject(ActivatedRoute);\n\n  ngOnInit() {\n    const provider = this.route.snapshot.paramMap.get('provider');\n    const code = this.route.snapshot.queryParamMap.get('code');\n    const state = this.route.snapshot.queryParamMap.get('state');\n\n    if (provider && code && state) {\n      this.authState.handleOAuthCallback(provider as SocialProvider, code, state).subscribe({\n        next: () => {\n          // Success - AuthState redirects automatically\n        },\n        error: (err) => {\n          console.error('OAuth failed:', err);\n        },\n      });\n    }\n  }\n}\n```\n\n### Backend Implementation Example (Google Workspace)\n\nHere's a Node.js/Express example for Google Workspace multi-tenant:\n\n```typescript\n// Domain discovery endpoint\napp.post('/api/auth/domain-discovery', async (req, res) => {\n  const { email } = req.body;\n  const domain = email.split('@')[1];\n\n  // Check if domain is configured for OAuth\n  const tenant = await db.tenants.findOne({ domain });\n\n  if (tenant?.oauthProvider === 'google') {\n    return res.json({\n      provider: 'google',\n      tenantId: tenant.id,\n      domain: tenant.domain,\n      requiresOAuth: true,\n      allowPasswordLogin: tenant.allowPasswordFallback,\n    });\n  }\n\n  // Default to password login\n  res.json({\n    requiresOAuth: false,\n    allowPasswordLogin: true,\n  });\n});\n\n// Get OAuth URL\napp.get('/api/auth/social/google/url', async (req, res) => {\n  const { tenantId, domain } = req.query;\n\n  const tenant = await db.tenants.findOne({ id: tenantId });\n  const state = crypto.randomBytes(32).toString('hex');\n\n  // Store state for verification\n  await redis.set(`oauth:state:${state}`, tenantId, 'EX', 600);\n\n  const authUrl = new URL('https://accounts.google.com/o/oauth2/v2/auth');\n  authUrl.searchParams.set('client_id', tenant.googleClientId);\n  authUrl.searchParams.set('redirect_uri', 'https://your-app.com/auth/callback/google');\n  authUrl.searchParams.set('response_type', 'code');\n  authUrl.searchParams.set('scope', 'openid email profile');\n  authUrl.searchParams.set('state', state);\n\n  // Tenant hint for Google Workspace\n  if (domain) {\n    authUrl.searchParams.set('hd', domain);\n  }\n\n  res.json({\n    url: authUrl.toString(),\n    state,\n  });\n});\n\n// OAuth callback\napp.post('/api/auth/social/google/callback', async (req, res) => {\n  const { code, state, tenantId } = req.body;\n\n  // Verify state\n  const storedTenantId = await redis.get(`oauth:state:${state}`);\n  if (!storedTenantId) {\n    return res.status(400).json({ error: 'Invalid state' });\n  }\n\n  const tenant = await db.tenants.findOne({ id: tenantId });\n\n  // Exchange code for tokens\n  const tokenResponse = await fetch('https://oauth2.googleapis.com/token', {\n    method: 'POST',\n    headers: { 'Content-Type': 'application/json' },\n    body: JSON.stringify({\n      client_id: tenant.googleClientId,\n      client_secret: tenant.googleClientSecret,\n      code,\n      grant_type: 'authorization_code',\n      redirect_uri: 'https://your-app.com/auth/callback/google',\n    }),\n  });\n\n  const tokens = await tokenResponse.json();\n\n  // Get user info\n  const userInfo = await fetch('https://www.googleapis.com/oauth2/v2/userinfo', {\n    headers: { Authorization: `Bearer ${tokens.access_token}` },\n  }).then((r) => r.json());\n\n  // Verify domain matches tenant\n  const userDomain = userInfo.email.split('@')[1];\n  if (tenant.domain !== userDomain) {\n    return res.status(403).json({ error: 'Domain mismatch' });\n  }\n\n  // Create or update user\n  const user = await db.users.upsert({\n    email: userInfo.email,\n    displayName: userInfo.name,\n    tenantId: tenant.id,\n    emailVerified: userInfo.verified_email,\n  });\n\n  // Generate JWT\n  const jwt = generateJWT(user);\n\n  res.json({\n    token: jwt,\n    refreshToken: generateRefreshToken(user),\n  });\n});\n```\n\n### Configuration Example: Tenant Management\n\n```typescript\n// Tenant configuration for admin panel\ninterface TenantConfig {\n  tenantId: string;\n  domain: string; // e.g., \"acme.com\"\n  displayName: string; // e.g., \"Acme Corporation\"\n  provider: 'google' | 'microsoft';\n\n  // OAuth credentials\n  clientId: string;\n  clientSecret: string; // Stored securely on backend\n  issuer?: string; // For OIDC providers\n\n  // Settings\n  allowedDomains?: string[]; // Additional domains\n  allowPasswordLogin: boolean;\n  autoProvision: boolean; // Auto-create users on first login\n\n  customParameters?: {\n    hd?: string; // Google Workspace domain hint\n    tenant?: string; // Azure AD tenant ID\n  };\n}\n```\n\n### Testing OAuth Locally\n\nFor local development, use these redirect URIs:\n\n- `http://localhost:4200/auth/callback/google`\n- `http://localhost:4200/auth/callback/microsoft`\n\nConfigure your OAuth apps with these URLs in development mode.\n\n### OAuth Security Best Practices\n\n1. **CSRF Protection**: Always verify the `state` parameter matches\n2. **Domain Validation**: Verify user's email domain matches tenant configuration\n3. **HTTPS Only**: Enforce HTTPS in production (OAuth providers require it)\n4. **Secret Storage**: Encrypt OAuth client secrets at rest in your database\n5. **Token Expiry**: Set reasonable expiry for OAuth state tokens (5-10 minutes)\n6. **Scope Limitation**: Request only the minimum required OAuth scopes\n\n### Database Schema for Multi-Tenant\n\n```typescript\n// Tenants table\ninterface Tenant {\n  id: string;\n  domain: string; // \"acme.com\"\n  displayName: string; // \"Acme Corporation\"\n  oauthProvider: 'google' | 'microsoft' | 'apple' | null;\n\n  // OAuth credentials (encrypted at rest!)\n  googleClientId?: string;\n  googleClientSecret?: string;\n  microsoftClientId?: string;\n  microsoftClientSecret?: string;\n  azureTenantId?: string; // For Azure AD\n\n  // Settings\n  allowPasswordLogin: boolean;\n  autoProvisionUsers: boolean; // Auto-create users on first OAuth login\n  requireEmailVerification: boolean;\n\n  createdAt: Date;\n  updatedAt: Date;\n}\n\n// Users table\ninterface User {\n  id: string;\n  email: string;\n  displayName: string;\n  tenantId?: string; // Reference to tenant\n  emailVerified: boolean;\n\n  // Track which auth method they used\n  authProvider: 'password' | 'google' | 'microsoft' | 'github' | 'apple';\n\n  // OAuth user ID from provider\n  oauthProviderId?: string;\n\n  createdAt: Date;\n  lastLoginAt: Date;\n}\n```\n\n### OAuth Provider Setup Guides\n\n<details>\n<summary><b>Google Cloud Console Setup</b></summary>\n\n1. Go to [console.cloud.google.com](https://console.cloud.google.com)\n2. Create a new project or select existing\n3. Enable **Google+ API** (or People API)\n4. Navigate to **Credentials** → **Create Credentials** → **OAuth 2.0 Client ID**\n5. Application type: **Web application**\n6. **Authorized redirect URIs**:\n   - Production: `https://your-app.com/auth/callback/google`\n   - Development: `http://localhost:4200/auth/callback/google`\n7. Copy the **Client ID** and **Client Secret**\n8. For Google Workspace:\n   - Use the `hd` parameter to restrict to specific domain\n   - Example: `authUrl.searchParams.set('hd', 'acme.com')`\n\n**Scopes needed:**\n\n- `openid` - Basic authentication\n- `email` - User's email address\n- `profile` - User's name and photo\n\n</details>\n\n<details>\n<summary><b>Microsoft Azure AD Setup</b></summary>\n\n1. Go to [portal.azure.com](https://portal.azure.com)\n2. Navigate to **Azure Active Directory** → **App registrations**\n3. Click **New registration**\n4. Name your application\n5. **Supported account types**:\n   - Single tenant: Only users in your organization\n   - Multi-tenant: Users in any Azure AD directory\n6. **Redirect URI**:\n   - Platform: **Web**\n   - URI: `https://your-app.com/auth/callback/microsoft`\n7. After creation, go to **Certificates & secrets**\n8. Create a **New client secret** and save it immediately\n9. Go to **API permissions** → **Add a permission**\n10. Select **Microsoft Graph** → **Delegated permissions**\n11. Add: `openid`, `email`, `profile`\n\n**For multi-tenant:**\n\n- Use tenant-specific endpoint: `https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/authorize`\n- Or use common endpoint: `https://login.microsoftonline.com/common/oauth2/v2.0/authorize`\n\n</details>\n\n<details>\n<summary><b>GitHub OAuth App Setup</b></summary>\n\n1. Go to [github.com/settings/developers](https://github.com/settings/developers)\n2. Click **New OAuth App**\n3. Fill in application details\n4. **Authorization callback URL**: `https://your-app.com/auth/callback/github`\n5. Copy **Client ID** and generate **Client Secret**\n\n**Scopes needed:**\n\n- `user:email` - Access user's email address\n- `read:user` - Read user profile information\n\n</details>\n\n### Common Issues and Solutions\n\n<details>\n<summary><b>Error: \"Invalid redirect URI\"</b></summary>\n\n**Cause**: The redirect URI in your OAuth request doesn't match what's configured in the provider's settings.\n\n**Solutions**:\n\n1. Ensure exact match including protocol (`http://` vs `https://`), port, and path\n2. No trailing slash unless configured that way\n3. Check for typos in domain name\n4. For local dev, ensure `http://localhost:4200` is added to allowed URIs\n\n</details>\n\n<details>\n<summary><b>Error: \"Invalid state\" or \"State mismatch\"</b></summary>\n\n**Cause**: OAuth state token expired or doesn't match.\n\n**Solutions**:\n\n1. Increase Redis/storage TTL for state tokens (recommended: 600 seconds)\n2. User may have taken too long to complete OAuth flow\n3. Ensure state is properly stored before redirect\n4. Check that state is being retrieved from the same storage\n\n</details>\n\n<details>\n<summary><b>Error: \"Domain mismatch\" or \"Wrong organization\"</b></summary>\n\n**Cause**: User authenticated with an account from a different organization.\n\n**Solutions**:\n\n1. For Google: Use `hd` parameter to force specific domain\n2. Show clear error message explaining which domain is expected\n3. Verify domain matching logic in backend before issuing JWT\n4. Consider allowing multiple domains per tenant\n\n</details>\n\n<details>\n<summary><b>Callback hangs or never completes</b></summary>\n\n**Cause**: Frontend or backend error during token exchange.\n\n**Solutions**:\n\n1. Check browser console for JavaScript errors\n2. Verify backend endpoint is responding\n3. Check CORS configuration on backend\n4. Ensure OAuth client secret is correct\n5. Verify authorization code hasn't expired (valid for ~10 minutes)\n\n</details>\n\n### Testing Strategies\n\n```typescript\n// Mock domain discovery for testing\ndescribe('OAuth Flow', () => {\n  let authState: AuthState;\n  let httpMock: HttpTestingController;\n\n  beforeEach(() => {\n    TestBed.configureTestingModule({\n      imports: [HttpClientTestingModule],\n      providers: [AuthState, ...authProviders],\n    });\n\n    authState = TestBed.inject(AuthState);\n    httpMock = TestBed.inject(HttpTestingController);\n  });\n\n  it('should discover Google Workspace tenant', (done) => {\n    authState.discoverDomain('user@acme.com').subscribe((result) => {\n      expect(result.provider).toBe('google');\n      expect(result.tenantId).toBe('acme-123');\n      expect(result.requiresOAuth).toBe(true);\n      done();\n    });\n\n    const req = httpMock.expectOne('/api/auth/domain-discovery');\n    expect(req.request.method).toBe('POST');\n    expect(req.request.body).toEqual({ email: 'user@acme.com' });\n\n    req.flush({\n      provider: 'google',\n      tenantId: 'acme-123',\n      requiresOAuth: true,\n      allowPasswordLogin: false,\n    });\n  });\n\n  it('should start OAuth flow with tenant context', () => {\n    spyOn(window.location, 'href', 'set');\n\n    authState.startOAuthFlow({\n      provider: 'google',\n      tenantId: 'acme-123',\n      domain: 'acme.com',\n    });\n\n    const req = httpMock.expectOne((req) => req.url.includes('/api/auth/social/google/url'));\n\n    req.flush({\n      url: 'https://accounts.google.com/o/oauth2/v2/auth?...',\n      state: 'test-state-token',\n    });\n\n    // Verify state stored in session storage\n    expect(sessionStorage.getItem('oauth_state')).toBe('test-state-token');\n    expect(sessionStorage.getItem('oauth_tenant_id')).toBe('acme-123');\n  });\n});\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}