@acontplus/ng-auth 1.0.0 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +288 -0
- package/fesm2022/acontplus-ng-auth.mjs +618 -32
- package/fesm2022/acontplus-ng-auth.mjs.map +1 -1
- package/index.d.ts +197 -4
- package/package.json +12 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acontplus-ng-auth.mjs","sources":["../tmp-esm2022/lib/repositories/token.repository.js","../tmp-esm2022/lib/services/auth-token.service.js","../tmp-esm2022/lib/guards/auth.guard.js","../tmp-esm2022/acontplus-ng-auth.js"],"sourcesContent":["import { Injectable, inject } from '@angular/core';\nimport { jwtDecode } from 'jwt-decode';\nimport { ENVIRONMENT } from '@acontplus/ng-config';\nimport * as i0 from \"@angular/core\";\nexport class TokenRepository {\n environment = inject(ENVIRONMENT);\n saveTokens(tokens, rememberMe = false) {\n this.setToken(tokens.token, rememberMe);\n this.setRefreshToken(tokens.refreshToken, rememberMe);\n }\n getAccessToken() {\n return (localStorage.getItem(this.environment.tokenKey) ||\n sessionStorage.getItem(this.environment.tokenKey));\n }\n getRefreshToken() {\n return (localStorage.getItem(this.environment.refreshTokenKey) ||\n sessionStorage.getItem(this.environment.refreshTokenKey));\n }\n setToken(token, rememberMe = false) {\n if (rememberMe) {\n localStorage.setItem(this.environment.tokenKey, token);\n }\n else {\n sessionStorage.setItem(this.environment.tokenKey, token);\n }\n }\n setRefreshToken(refreshToken, rememberMe = false) {\n if (rememberMe) {\n localStorage.setItem(this.environment.refreshTokenKey, refreshToken);\n }\n else {\n sessionStorage.setItem(this.environment.refreshTokenKey, refreshToken);\n }\n }\n clearTokens() {\n localStorage.removeItem(this.environment.tokenKey);\n localStorage.removeItem(this.environment.refreshTokenKey);\n sessionStorage.removeItem(this.environment.tokenKey);\n sessionStorage.removeItem(this.environment.refreshTokenKey);\n }\n isAuthenticated() {\n const accessToken = this.getAccessToken();\n const refreshToken = this.getRefreshToken();\n if (!accessToken || !refreshToken) {\n return false;\n }\n try {\n const decodedAccessToken = jwtDecode(accessToken);\n const accessExpiration = Number(decodedAccessToken.exp);\n const currentTimeUTC = Math.floor(Date.now() / 1000);\n if (accessExpiration > currentTimeUTC) {\n return true;\n }\n return this.isRefreshTokenValid();\n }\n catch {\n return false;\n }\n }\n isRefreshTokenValid() {\n const refreshToken = this.getRefreshToken();\n if (!refreshToken) {\n return false;\n }\n try {\n return true; // Backend validates expiration\n }\n catch {\n return false;\n }\n }\n needsRefresh() {\n const accessToken = this.getAccessToken();\n if (!accessToken) {\n return false;\n }\n try {\n const decodedToken = jwtDecode(accessToken);\n const expiration = Number(decodedToken.exp);\n const currentTimeUTC = Math.floor(Date.now() / 1000);\n const timeUntilExpiry = expiration - currentTimeUTC;\n return timeUntilExpiry <= 300; // 5 minutes\n }\n catch {\n return false;\n }\n }\n getTokenPayload() {\n const token = this.getAccessToken();\n if (!token)\n return null;\n try {\n return jwtDecode(token);\n }\n catch (error) {\n return null;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: TokenRepository, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: TokenRepository, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: TokenRepository, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4ucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWF1dGgvc3JjL2xpYi9yZXBvc2l0b3JpZXMvdG9rZW4ucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBRXZDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLGVBQWU7SUFDbEIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUUxQyxVQUFVLENBQUMsTUFBa0IsRUFBRSxVQUFVLEdBQUcsS0FBSztRQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxDQUNMLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUM7WUFDL0MsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUNsRCxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixPQUFPLENBQ0wsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN0RCxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQ3pELENBQUM7SUFDSixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWEsRUFBRSxVQUFVLEdBQUcsS0FBSztRQUN4QyxJQUFJLFVB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QUFDLENBQUM7WUFDckQsTUFBTSxlQUFlLEdBQUcsVUFBVSxHQUFHLGNBQWMsQ0FBQztZQUVwRCxPQUFPLGVBQWUsSUFBSSxHQUFHLENBQUMsQ0FBQyxZQUFZO1FBQzdDLENBQUM7UUFBQyxNQUFNLENBQUM7WUFDUCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBRXhCLElBQUksQ0FBQztZQUNILE9BQU8sU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQzt1R0E1R1UsZUFBZTsyR0FBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGp3dERlY29kZSB9IGZyb20gJ2p3dC1kZWNvZGUnO1xuaW1wb3J0IHsgQXV0aFRva2VucyB9IGZyb20gJ0BhY29udHBsdXMvY29yZSc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVCB9IGZyb20gJ0BhY29udHBsdXMvbmctY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRva2VuUmVwb3NpdG9yeSB7XG4gIHByaXZhdGUgZW52aXJvbm1lbnQgPSBpbmplY3QoRU5WSVJPTk1FTlQpO1xuXG4gIHNhdmVUb2tlbnModG9rZW5zOiBBdXRoVG9rZW5zLCByZW1lbWJlck1lID0gZmFsc2UpOiB2b2lkIHtcbiAgICB0aGlzLnNldFRva2VuKHRva2Vucy50b2tlbiwgcmVtZW1iZXJNZSk7XG4gICAgdGhpcy5zZXRSZWZyZXNoVG9rZW4odG9rZW5zLnJlZnJlc2hUb2tlbiwgcmVtZW1iZXJNZSk7XG4gIH1cblxuICBnZXRBY2Nlc3NUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gKFxuICAgICAgbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5lbnZpcm9ubWVudC50b2tlbktleSkgfHxcbiAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5lbnZpcm9ubWVudC50b2tlbktleSlcbiAgICApO1xuICB9XG5cbiAgZ2V0UmVmcmVzaFRva2VuKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiAoXG4gICAgICBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmVudmlyb25tZW50LnJlZnJlc2hUb2tlbktleSkgfHxcbiAgICAgIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5lbnZpcm9ubWVudC5yZWZyZXNoVG9rZW5LZXkpXG4gICAgKTtcbiAgfVxuXG4gIHNldFRva2VuKHRva2VuOiBzdHJpbmcsIHJlbWVtYmVyTWUgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmIChyZW1lbWJlck1lKSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmVudmlyb25tZW50LnRva2VuS2V5LCB0b2tlbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5lbnZpcm9ubWVudC50b2tlbktleSwgdG9rZW4pO1xuICAgIH1cbiAgfVxuXG4gIHNldFJlZnJlc2hUb2tlbihyZWZyZXNoVG9rZW46IHN0cmluZywgcmVtZW1iZXJNZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKHJlbWVtYmVyTWUpIHtcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuZW52aXJvbm1lbnQucmVmcmVzaFRva2VuS2V5LCByZWZyZXNoVG9rZW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuZW52aXJvbm1lbnQucmVmcmVzaFRva2VuS2V5LCByZWZyZXNoVG9rZW4pO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyVG9rZW5zKCk6IHZvaWQge1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZW52aXJvbm1lbnQudG9rZW5LZXkpO1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZW52aXJvbm1lbnQucmVmcmVzaFRva2VuS2V5KTtcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZW52aXJvbm1lbnQudG9rZW5LZXkpO1xuICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5lbnZpcm9ubWVudC5yZWZyZXNoVG9rZW5LZXkpO1xuICB9XG5cbiAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdGhpcy5nZXRBY2Nlc3NUb2tlbigpO1xuICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMuZ2V0UmVmcmVzaFRva2VuKCk7XG5cbiAgICBpZiAoIWFjY2Vzc1Rva2VuIHx8ICFyZWZyZXNoVG9rZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVjb2RlZEFjY2Vzc1Rva2VuID0gand0RGVjb2RlKGFjY2Vzc1Rva2VuKTtcbiAgICAgIGNvbnN0IGFjY2Vzc0V4cGlyYXRpb24gPSBOdW1iZXIoZGVjb2RlZEFjY2Vzc1Rva2VuLmV4cCk7XG4gICAgICBjb25zdCBjdXJyZW50VGltZVVUQyA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuXG4gICAgICBpZiAoYWNjZXNzRXhwaXJhdGlvbiA+IGN1cnJlbnRUaW1lVVRDKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdGhpcy5pc1JlZnJlc2hUb2tlblZhbGlkKCk7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc1JlZnJlc2hUb2tlblZhbGlkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMuZ2V0UmVmcmVzaFRva2VuKCk7XG4gICAgaWYgKCFyZWZyZXNoVG9rZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIHRydWU7IC8vIEJhY2tlbmQgdmFsaWRhdGVzIGV4cGlyYXRpb25cbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBuZWVkc1JlZnJlc2goKTogYm9vbGVhbiB7XG4gICAgY29uc3QgYWNjZXNzVG9rZW4gPSB0aGlzLmdldEFjY2Vzc1Rva2VuKCk7XG4gICAgaWYgKCFhY2Nlc3NUb2tlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSBqd3REZWNvZGUoYWNjZXNzVG9rZW4pO1xuICAgICAgY29uc3QgZXhwaXJhdGlvbiA9IE51bWJlcihkZWNvZGVkVG9rZW4uZXhwKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRUaW1lVVRDID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gICAgICBjb25zdCB0aW1lVW50aWxFeHBpcnkgPSBleHBpcmF0aW9uIC0gY3VycmVudFRpbWVVVEM7XG5cbiAgICAgIHJldHVybiB0aW1lVW50aWxFeHBpcnkgPD0gMzAwOyAvLyA1IG1pbnV0ZXNcbiAgICB9IGNhdGNoIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBnZXRUb2tlblBheWxvYWQoKTogYW55IHtcbiAgICBjb25zdCB0b2tlbiA9IHRoaXMuZ2V0QWNjZXNzVG9rZW4oKTtcbiAgICBpZiAoIXRva2VuKSByZXR1cm4gbnVsbDtcblxuICAgIHRyeSB7XG4gICAgICByZXR1cm4gand0RGVjb2RlKHRva2VuKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../repositories/token.repository\";\nexport class AuthTokenService {\n tokenRepository;\n constructor(tokenRepository) {\n this.tokenRepository = tokenRepository;\n }\n getToken() {\n return this.tokenRepository.getAccessToken();\n }\n isAuthenticated() {\n return this.tokenRepository.isAuthenticated();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthTokenService, deps: [{ token: i1.TokenRepository }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthTokenService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthTokenService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.TokenRepository }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC10b2tlbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctYXV0aC9zcmMvbGliL3NlcnZpY2VzL2F1dGgtdG9rZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUNQO0lBQXBCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUFHLENBQUM7SUFFeEQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNoRCxDQUFDO3VHQVRVLGdCQUFnQjsyR0FBaEIsZ0JBQWdCLGNBREgsTUFBTTs7MkZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVG9rZW5Qcm92aWRlciB9IGZyb20gJ0BhY29udHBsdXMvbmctaW5mcmFzdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgVG9rZW5SZXBvc2l0b3J5IH0gZnJvbSAnLi4vcmVwb3NpdG9yaWVzL3Rva2VuLnJlcG9zaXRvcnknO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhUb2tlblNlcnZpY2UgaW1wbGVtZW50cyBJVG9rZW5Qcm92aWRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdG9rZW5SZXBvc2l0b3J5OiBUb2tlblJlcG9zaXRvcnkpIHt9XG5cbiAgZ2V0VG9rZW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5SZXBvc2l0b3J5LmdldEFjY2Vzc1Rva2VuKCk7XG4gIH1cblxuICBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5SZXBvc2l0b3J5LmlzQXV0aGVudGljYXRlZCgpO1xuICB9XG59XG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthTokenService } from '../services/auth-token.service';\nimport { ENVIRONMENT } from '@acontplus/ng-config';\nexport const authGuard = (_route, _state) => {\n const authService = inject(AuthTokenService);\n const router = inject(Router);\n const environment = inject(ENVIRONMENT);\n if (authService.isAuthenticated()) {\n return true;\n }\n // Redirect to login page (configurable via environment)\n router.navigate([environment.loginRoute]);\n return false;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWF1dGgvc3JjL2xpYi9ndWFyZHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBaUIsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBa0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDekQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV4QyxJQUFJLFdBQVcsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDMUMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4sIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXV0aC10b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IEVOVklST05NRU5UIH0gZnJvbSAnQGFjb250cGx1cy9uZy1jb25maWcnO1xuXG5leHBvcnQgY29uc3QgYXV0aEd1YXJkOiBDYW5BY3RpdmF0ZUZuID0gKF9yb3V0ZSwgX3N0YXRlKSA9PiB7XG4gIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhUb2tlblNlcnZpY2UpO1xuICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgY29uc3QgZW52aXJvbm1lbnQgPSBpbmplY3QoRU5WSVJPTk1FTlQpO1xuXG4gIGlmIChhdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gUmVkaXJlY3QgdG8gbG9naW4gcGFnZSAoY29uZmlndXJhYmxlIHZpYSBlbnZpcm9ubWVudClcbiAgcm91dGVyLm5hdmlnYXRlKFtlbnZpcm9ubWVudC5sb2dpblJvdXRlXSk7XG4gIHJldHVybiBmYWxzZTtcbn07XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvbnRwbHVzLW5nLWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9hY29udHBsdXMtbmctYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1.TokenRepository"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acontplus-ng-auth.mjs","sources":["../tmp-esm2022/lib/repositories/token.repository.js","../tmp-esm2022/lib/services/auth-token.service.js","../tmp-esm2022/lib/guards/auth.guard.js","../tmp-esm2022/lib/services/csrf.service.js","../tmp-esm2022/lib/domain/models/user.js","../tmp-esm2022/lib/domain/models/index.js","../tmp-esm2022/lib/domain/repositories/auth.repository.js","../tmp-esm2022/lib/domain/repositories/index.js","../tmp-esm2022/lib/domain/index.js","../tmp-esm2022/lib/data/repositories/auth-http.repository.js","../tmp-esm2022/lib/data/repositories/index.js","../tmp-esm2022/lib/data/index.js","../tmp-esm2022/lib/ui/stores/auth.store.js","../tmp-esm2022/lib/application/use-cases/login.use-case.js","../tmp-esm2022/lib/application/use-cases/register.use-case.js","../tmp-esm2022/lib/application/use-cases/refresh-token.use-case.js","../tmp-esm2022/lib/application/use-cases/logout.use-case.js","../tmp-esm2022/lib/application/use-cases/index.js","../tmp-esm2022/lib/application/index.js","../tmp-esm2022/lib/ui/stores/index.js","../tmp-esm2022/lib/ui/login/login.component.js","../tmp-esm2022/lib/ui/login/index.js","../tmp-esm2022/lib/ui/index.js","../tmp-esm2022/lib/providers/auth.providers.js","../tmp-esm2022/lib/providers/index.js","../tmp-esm2022/acontplus-ng-auth.js"],"sourcesContent":["import { Injectable, inject, PLATFORM_ID } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { jwtDecode } from 'jwt-decode';\nimport { ENVIRONMENT } from '@acontplus/ng-config';\nimport * as i0 from \"@angular/core\";\nexport class TokenRepository {\n environment = inject(ENVIRONMENT);\n platformId = inject(PLATFORM_ID);\n saveTokens(tokens, rememberMe = false) {\n if (isPlatformBrowser(this.platformId)) {\n this.setToken(tokens.token, rememberMe);\n this.setRefreshToken(tokens.refreshToken, rememberMe);\n }\n }\n getAccessToken() {\n if (!isPlatformBrowser(this.platformId)) {\n return null;\n }\n return (localStorage.getItem(this.environment.tokenKey) ||\n sessionStorage.getItem(this.environment.tokenKey));\n }\n getRefreshToken() {\n // Refresh tokens are now stored in HttpOnly cookies by the server\n // We can't read them directly from client-side code for security\n // They are automatically sent with requests when withCredentials: true is used\n return null;\n }\n setToken(token, rememberMe = false) {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n if (rememberMe) {\n localStorage.setItem(this.environment.tokenKey, token);\n }\n else {\n sessionStorage.setItem(this.environment.tokenKey, token);\n }\n }\n setRefreshToken(_refreshToken, _rememberMe = false) {\n // Refresh tokens are now set by the server as HttpOnly cookies\n // Client-side code cannot set HttpOnly cookies for security reasons\n // They are set in response to successful login/register requests\n }\n clearTokens() {\n if (!isPlatformBrowser(this.platformId)) {\n return;\n }\n localStorage.removeItem(this.environment.tokenKey);\n localStorage.removeItem(this.environment.refreshTokenKey);\n sessionStorage.removeItem(this.environment.tokenKey);\n sessionStorage.removeItem(this.environment.refreshTokenKey);\n }\n isAuthenticated() {\n const accessToken = this.getAccessToken();\n if (!accessToken) {\n return false;\n }\n try {\n const decodedAccessToken = jwtDecode(accessToken);\n const accessExpiration = Number(decodedAccessToken.exp);\n const currentTimeUTC = Math.floor(Date.now() / 1000);\n return accessExpiration > currentTimeUTC;\n }\n catch {\n return false;\n }\n }\n needsRefresh() {\n const accessToken = this.getAccessToken();\n if (!accessToken) {\n return false;\n }\n try {\n const decodedToken = jwtDecode(accessToken);\n const expiration = Number(decodedToken.exp);\n const currentTimeUTC = Math.floor(Date.now() / 1000);\n const timeUntilExpiry = expiration - currentTimeUTC;\n return timeUntilExpiry <= 300; // 5 minutes\n }\n catch {\n return false;\n }\n }\n getTokenPayload() {\n const token = this.getAccessToken();\n if (!token)\n return null;\n try {\n return jwtDecode(token);\n }\n catch (error) {\n return null;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: TokenRepository, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: TokenRepository, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: TokenRepository, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW4ucmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWF1dGgvc3JjL2xpYi9yZXBvc2l0b3JpZXMvdG9rZW4ucmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBS25ELE1BQU0sT0FBTyxlQUFlO0lBQ2xCLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV6QyxVQUFVLENBQUMsTUFBa0IsRUFBRSxVQUFVLEdBQUcsS0FBSztRQUMvQyxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDeEQsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sQ0FDTCxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDO1lBQy9DLGNBQWMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFD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LGNBQWMsRUFBRSxDQUFDO1FBQ3BDLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDO1lBQ0gsT0FBTyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQztRQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7WUFDZixPQUFPLElBQUksQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO3VHQXBHVSxlQUFlOzJHQUFmLGVBQWUsY0FGZCxNQUFNOzsyRkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIGluamVjdCwgUExBVEZPUk1fSUQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGp3dERlY29kZSB9IGZyb20gJ2p3dC1kZWNvZGUnO1xuaW1wb3J0IHsgQXV0aFRva2VucyB9IGZyb20gJ0BhY29udHBsdXMvY29yZSc7XG5pbXBvcnQgeyBFTlZJUk9OTUVOVCB9IGZyb20gJ0BhY29udHBsdXMvbmctY29uZmlnJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFRva2VuUmVwb3NpdG9yeSB7XG4gIHByaXZhdGUgZW52aXJvbm1lbnQgPSBpbmplY3QoRU5WSVJPTk1FTlQpO1xuICBwcml2YXRlIHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gIHNhdmVUb2tlbnModG9rZW5zOiBBdXRoVG9rZW5zLCByZW1lbWJlck1lID0gZmFsc2UpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgdGhpcy5zZXRUb2tlbih0b2tlbnMudG9rZW4sIHJlbWVtYmVyTWUpO1xuICAgICAgdGhpcy5zZXRSZWZyZXNoVG9rZW4odG9rZW5zLnJlZnJlc2hUb2tlbiwgcmVtZW1iZXJNZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0QWNjZXNzVG9rZW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZW52aXJvbm1lbnQudG9rZW5LZXkpIHx8XG4gICAgICBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuZW52aXJvbm1lbnQudG9rZW5LZXkpXG4gICAgKTtcbiAgfVxuXG4gIGdldFJlZnJlc2hUb2tlbigpOiBzdHJpbmcgfCBudWxsIHtcbiAgICAvLyBSZWZyZXNoIHRva2VucyBhcmUgbm93IHN0b3JlZCBpbiBIdHRwT25seSBjb29raWVzIGJ5IHRoZSBzZXJ2ZXJcbiAgICAvLyBXZSBjYW4ndCByZWFkIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQtc2lkZSBjb2RlIGZvciBzZWN1cml0eVxuICAgIC8vIFRoZXkgYXJlIGF1dG9tYXRpY2FsbHkgc2VudCB3aXRoIHJlcXVlc3RzIHdoZW4gd2l0aENyZWRlbnRpYWxzOiB0cnVlIGlzIHVzZWRcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHNldFRva2VuKHRva2VuOiBzdHJpbmcsIHJlbWVtYmVyTWUgPSBmYWxzZSk6IHZvaWQge1xuICAgIGlmICghaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmVtZW1iZXJNZSkge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5lbnZpcm9ubWVudC50b2tlbktleSwgdG9rZW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuZW52aXJvbm1lbnQudG9rZW5LZXksIHRva2VuKTtcbiAgICB9XG4gIH1cblxuICBzZXRSZWZyZXNoVG9rZW4oX3JlZnJlc2hUb2tlbjogc3RyaW5nLCBfcmVtZW1iZXJNZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgLy8gUmVmcmVzaCB0b2tlbnMgYXJlIG5vdyBzZXQgYnkgdGhlIHNlcnZlciBhcyBIdHRwT25seSBjb29raWVzXG4gICAgLy8gQ2xpZW50LXNpZGUgY29kZSBjYW5ub3Qgc2V0IEh0dHBPbmx5IGNvb2tpZXMgZm9yIHNlY3VyaXR5IHJlYXNvbnNcbiAgICAvLyBUaGV5IGFyZSBzZXQgaW4gcmVzcG9uc2UgdG8gc3VjY2Vzc2Z1bCBsb2dpbi9yZWdpc3RlciByZXF1ZXN0c1xuICB9XG5cbiAgY2xlYXJUb2tlbnMoKTogdm9pZCB7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZW52aXJvbm1lbnQudG9rZW5LZXkpO1xuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZW52aXJvbm1lbnQucmVmcmVzaFRva2VuS2V5KTtcbiAgICBzZXNzaW9uU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZW52aXJvbm1lbnQudG9rZW5LZXkpO1xuICAgIHNlc3Npb25TdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5lbnZpcm9ubWVudC5yZWZyZXNoVG9rZW5LZXkpO1xuICB9XG5cbiAgaXNBdXRoZW50aWNhdGVkKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdGhpcy5nZXRBY2Nlc3NUb2tlbigpO1xuXG4gICAgaWYgKCFhY2Nlc3NUb2tlbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkQWNjZXNzVG9rZW4gPSBqd3REZWNvZGUoYWNjZXNzVG9rZW4pO1xuICAgICAgY29uc3QgYWNjZXNzRXhwaXJhdGlvbiA9IE51bWJlcihkZWNvZGVkQWNjZXNzVG9rZW4uZXhwKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRUaW1lVVRDID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG5cbiAgICAgIHJldHVybiBhY2Nlc3NFeHBpcmF0aW9uID4gY3VycmVudFRpbWVVVEM7XG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgbmVlZHNSZWZyZXNoKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gdGhpcy5nZXRBY2Nlc3NUb2tlbigpO1xuICAgIGlmICghYWNjZXNzVG9rZW4pIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gand0RGVjb2RlKGFjY2Vzc1Rva2VuKTtcbiAgICAgIGNvbnN0IGV4cGlyYXRpb24gPSBOdW1iZXIoZGVjb2RlZFRva2VuLmV4cCk7XG4gICAgICBjb25zdCBjdXJyZW50VGltZVVUQyA9IE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xuICAgICAgY29uc3QgdGltZVVudGlsRXhwaXJ5ID0gZXhwaXJhdGlvbiAtIGN1cnJlbnRUaW1lVVRDO1xuXG4gICAgICByZXR1cm4gdGltZVVudGlsRXhwaXJ5IDw9IDMwMDsgLy8gNSBtaW51dGVzXG4gICAgfSBjYXRjaCB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgZ2V0VG9rZW5QYXlsb2FkKCk6IGFueSB7XG4gICAgY29uc3QgdG9rZW4gPSB0aGlzLmdldEFjY2Vzc1Rva2VuKCk7XG4gICAgaWYgKCF0b2tlbikgcmV0dXJuIG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGp3dERlY29kZSh0b2tlbik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../repositories/token.repository\";\nexport class AuthTokenService {\n tokenRepository;\n constructor(tokenRepository) {\n this.tokenRepository = tokenRepository;\n }\n getToken() {\n return this.tokenRepository.getAccessToken();\n }\n isAuthenticated() {\n return this.tokenRepository.isAuthenticated();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthTokenService, deps: [{ token: i1.TokenRepository }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthTokenService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthTokenService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.TokenRepository }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC10b2tlbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctYXV0aC9zcmMvbGliL3NlcnZpY2VzL2F1dGgtdG9rZW4uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFLM0MsTUFBTSxPQUFPLGdCQUFnQjtJQUNQO0lBQXBCLFlBQW9CLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtJQUFHLENBQUM7SUFFeEQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMvQyxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUNoRCxDQUFDO3VHQVRVLGdCQUFnQjsyR0FBaEIsZ0JBQWdCLGNBREgsTUFBTTs7MkZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJVG9rZW5Qcm92aWRlciB9IGZyb20gJ0BhY29udHBsdXMvbmctaW5mcmFzdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgVG9rZW5SZXBvc2l0b3J5IH0gZnJvbSAnLi4vcmVwb3NpdG9yaWVzL3Rva2VuLnJlcG9zaXRvcnknO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIEF1dGhUb2tlblNlcnZpY2UgaW1wbGVtZW50cyBJVG9rZW5Qcm92aWRlciB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdG9rZW5SZXBvc2l0b3J5OiBUb2tlblJlcG9zaXRvcnkpIHt9XG5cbiAgZ2V0VG9rZW4oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5SZXBvc2l0b3J5LmdldEFjY2Vzc1Rva2VuKCk7XG4gIH1cblxuICBpc0F1dGhlbnRpY2F0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMudG9rZW5SZXBvc2l0b3J5LmlzQXV0aGVudGljYXRlZCgpO1xuICB9XG59XG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { AuthTokenService } from '../services/auth-token.service';\nimport { ENVIRONMENT } from '@acontplus/ng-config';\nexport const authGuard = (_route, _state) => {\n const authService = inject(AuthTokenService);\n const router = inject(Router);\n const environment = inject(ENVIRONMENT);\n if (authService.isAuthenticated()) {\n return true;\n }\n // Redirect to login page (configurable via environment)\n router.navigate([environment.loginRoute]);\n return false;\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5ndWFyZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWF1dGgvc3JjL2xpYi9ndWFyZHMvYXV0aC5ndWFyZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBaUIsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBa0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDekQsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDN0MsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUV4QyxJQUFJLFdBQVcsQ0FBQyxlQUFlLEVBQUUsRUFBRSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELHdEQUF3RDtJQUN4RCxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDMUMsT0FBTyxLQUFLLENBQUM7QUFDZixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENhbkFjdGl2YXRlRm4sIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBBdXRoVG9rZW5TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYXV0aC10b2tlbi5zZXJ2aWNlJztcbmltcG9ydCB7IEVOVklST05NRU5UIH0gZnJvbSAnQGFjb250cGx1cy9uZy1jb25maWcnO1xuXG5leHBvcnQgY29uc3QgYXV0aEd1YXJkOiBDYW5BY3RpdmF0ZUZuID0gKF9yb3V0ZSwgX3N0YXRlKSA9PiB7XG4gIGNvbnN0IGF1dGhTZXJ2aWNlID0gaW5qZWN0KEF1dGhUb2tlblNlcnZpY2UpO1xuICBjb25zdCByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcbiAgY29uc3QgZW52aXJvbm1lbnQgPSBpbmplY3QoRU5WSVJPTk1FTlQpO1xuXG4gIGlmIChhdXRoU2VydmljZS5pc0F1dGhlbnRpY2F0ZWQoKSkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLy8gUmVkaXJlY3QgdG8gbG9naW4gcGFnZSAoY29uZmlndXJhYmxlIHZpYSBlbnZpcm9ubWVudClcbiAgcm91dGVyLm5hdmlnYXRlKFtlbnZpcm9ubWVudC5sb2dpblJvdXRlXSk7XG4gIHJldHVybiBmYWxzZTtcbn07XG4iXX0=","// src/lib/services/csrf.service.ts\nimport { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { ENVIRONMENT } from '@acontplus/ng-config';\nimport * as i0 from \"@angular/core\";\nexport class CsrfService {\n http = inject(HttpClient);\n environment = inject(ENVIRONMENT);\n csrfToken = null;\n /**\n * Get CSRF token, fetching it if not available\n */\n async getCsrfToken() {\n if (this.csrfToken) {\n return this.csrfToken;\n }\n try {\n const response = await this.http\n .get(`${this.environment.apiBaseUrl}/csrf-token`)\n .toPromise();\n this.csrfToken = response?.csrfToken || null;\n return this.csrfToken || '';\n }\n catch {\n // If CSRF endpoint fails, return empty token\n // Server should handle missing CSRF tokens appropriately\n return '';\n }\n }\n /**\n * Clear stored CSRF token (useful on logout)\n */\n clearCsrfToken() {\n this.csrfToken = null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: CsrfService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: CsrfService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: CsrfService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3NyZi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctYXV0aC9zcmMvbGliL3NlcnZpY2VzL2NzcmYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxtQ0FBbUM7QUFDbkMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFLbkQsTUFBTSxPQUFPLFdBQVc7SUFDZCxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFCLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsU0FBUyxHQUFrQixJQUFJLENBQUM7SUFFeEM7O09BRUc7SUFDSCxLQUFLLENBQUMsWUFBWTtRQUNoQixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDeEIsQ0FBQztRQUVELElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUk7aUJBQzdCLEdBQUcsQ0FBd0IsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsYUFBYSxDQUFDO2lCQUN2RSxTQUFTLEVBQUUsQ0FBQztZQUVmLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxFQUFFLFNBQVMsSUFBSSxJQUFJLENBQUM7WUFDN0MsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLEVBQUUsQ0FBQztRQUM5QixDQUFDO1FBQUMsTUFBTSxDQUFDO1lBQ1AsNkNBQTZDO1lBQzdDLHlEQUF5RDtZQUN6RCxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjO1FBQ1osSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDeEIsQ0FBQzt1R0FoQ1UsV0FBVzsyR0FBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL3NlcnZpY2VzL2NzcmYuc2VydmljZS50c1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgRU5WSVJPTk1FTlQgfSBmcm9tICdAYWNvbnRwbHVzL25nLWNvbmZpZyc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBDc3JmU2VydmljZSB7XG4gIHByaXZhdGUgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcbiAgcHJpdmF0ZSBlbnZpcm9ubWVudCA9IGluamVjdChFTlZJUk9OTUVOVCk7XG4gIHByaXZhdGUgY3NyZlRva2VuOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogR2V0IENTUkYgdG9rZW4sIGZldGNoaW5nIGl0IGlmIG5vdCBhdmFpbGFibGVcbiAgICovXG4gIGFzeW5jIGdldENzcmZUb2tlbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGlmICh0aGlzLmNzcmZUb2tlbikge1xuICAgICAgcmV0dXJuIHRoaXMuY3NyZlRva2VuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHRoaXMuaHR0cFxuICAgICAgICAuZ2V0PHsgY3NyZlRva2VuOiBzdHJpbmcgfT4oYCR7dGhpcy5lbnZpcm9ubWVudC5hcGlCYXNlVXJsfS9jc3JmLXRva2VuYClcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xuXG4gICAgICB0aGlzLmNzcmZUb2tlbiA9IHJlc3BvbnNlPy5jc3JmVG9rZW4gfHwgbnVsbDtcbiAgICAgIHJldHVybiB0aGlzLmNzcmZUb2tlbiB8fCAnJztcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIElmIENTUkYgZW5kcG9pbnQgZmFpbHMsIHJldHVybiBlbXB0eSB0b2tlblxuICAgICAgLy8gU2VydmVyIHNob3VsZCBoYW5kbGUgbWlzc2luZyBDU1JGIHRva2VucyBhcHByb3ByaWF0ZWx5XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENsZWFyIHN0b3JlZCBDU1JGIHRva2VuICh1c2VmdWwgb24gbG9nb3V0KVxuICAgKi9cbiAgY2xlYXJDc3JmVG9rZW4oKTogdm9pZCB7XG4gICAgdGhpcy5jc3JmVG9rZW4gPSBudWxsO1xuICB9XG59XG4iXX0=","export class User {\n id;\n email;\n displayName;\n _refreshToken;\n constructor(id, email, displayName, _refreshToken) {\n this.id = id;\n this.email = email;\n this.displayName = displayName;\n this._refreshToken = _refreshToken;\n }\n get refreshToken() {\n return this._refreshToken;\n }\n updateRefreshToken(token) {\n this._refreshToken = token;\n }\n clearRefreshToken() {\n this._refreshToken = undefined;\n }\n static create(email, displayName, _password) {\n const id = Date.now(); // Generate a numeric ID\n return new User(id, email, displayName);\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWF1dGgvc3JjL2xpYi9kb21haW4vbW9kZWxzL3VzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBeUJBLE1BQU0sT0FBTyxJQUFJO0lBRUc7SUFDQTtJQUNBO0lBQ1I7SUFKVixZQUNrQixFQUFVLEVBQ1YsS0FBYSxFQUNiLFdBQW1CLEVBQzNCLGFBQXNCO1FBSGQsT0FBRSxHQUFGLEVBQUUsQ0FBUTtRQUNWLFVBQUssR0FBTCxLQUFLLENBQVE7UUFDYixnQkFBVyxHQUFYLFdBQVcsQ0FBUTtRQUMzQixrQkFBYSxHQUFiLGFBQWEsQ0FBUztJQUM3QixDQUFDO0lBRUosSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzVCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxLQUFhO1FBQzlCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFhLEVBQUUsV0FBbUIsRUFBRSxTQUFpQjtRQUNqRSxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyx3QkFBd0I7UUFDL0MsT0FBTyxJQUFJLElBQUksQ0FBQyxFQUFFLEVBQUUsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQzFDLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9saWIvZG9tYWluL21vZGVscy91c2VyLnRzXG5pbXBvcnQgeyBCYXNlRW50aXR5IH0gZnJvbSAnQGFjb250cGx1cy9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBMb2dpblJlcXVlc3Qge1xuICBlbWFpbDogc3RyaW5nO1xuICBwYXNzd29yZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIGRpc3BsYXlOYW1lOiBzdHJpbmc7XG4gIHBhc3N3b3JkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaFRva2VuUmVxdWVzdCB7XG4gIGVtYWlsOiBzdHJpbmc7XG4gIHJlZnJlc2hUb2tlbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZ2lzdGVyUmVzcG9uc2Uge1xuICBpZDogc3RyaW5nO1xuICBlbWFpbDogc3RyaW5nO1xuICBkaXNwbGF5TmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgVXNlciBpbXBsZW1lbnRzIEJhc2VFbnRpdHkge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgaWQ6IG51bWJlcixcbiAgICBwdWJsaWMgcmVhZG9ubHkgZW1haWw6IHN0cmluZyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGlzcGxheU5hbWU6IHN0cmluZyxcbiAgICBwcml2YXRlIF9yZWZyZXNoVG9rZW4/OiBzdHJpbmcsXG4gICkge31cblxuICBnZXQgcmVmcmVzaFRva2VuKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX3JlZnJlc2hUb2tlbjtcbiAgfVxuXG4gIHVwZGF0ZVJlZnJlc2hUb2tlbih0b2tlbjogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fcmVmcmVzaFRva2VuID0gdG9rZW47XG4gIH1cblxuICBjbGVhclJlZnJlc2hUb2tlbigpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWZyZXNoVG9rZW4gPSB1bmRlZmluZWQ7XG4gIH1cblxuICBzdGF0aWMgY3JlYXRlKGVtYWlsOiBzdHJpbmcsIGRpc3BsYXlOYW1lOiBzdHJpbmcsIF9wYXNzd29yZDogc3RyaW5nKTogVXNlciB7XG4gICAgY29uc3QgaWQgPSBEYXRlLm5vdygpOyAvLyBHZW5lcmF0ZSBhIG51bWVyaWMgSURcbiAgICByZXR1cm4gbmV3IFVzZXIoaWQsIGVtYWlsLCBkaXNwbGF5TmFtZSk7XG4gIH1cbn1cbiJdfQ==","// src/lib/domain/models/index.ts\nexport * from './user';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvZG9tYWluL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxpQ0FBaUM7QUFDakMsY0FBYyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL2RvbWFpbi9tb2RlbHMvaW5kZXgudHNcbmV4cG9ydCAqIGZyb20gJy4vdXNlcic7XG4iXX0=","export class AuthRepository {\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctYXV0aC9zcmMvbGliL2RvbWFpbi9yZXBvc2l0b3JpZXMvYXV0aC5yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBLE1BQU0sT0FBZ0IsY0FBYztDQUtuQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9saWIvZG9tYWluL3JlcG9zaXRvcmllcy9hdXRoLnJlcG9zaXRvcnkudHNcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFVzZXIsIExvZ2luUmVxdWVzdCwgUmVnaXN0ZXJSZXF1ZXN0LCBSZWZyZXNoVG9rZW5SZXF1ZXN0IH0gZnJvbSAnLi4vbW9kZWxzL3VzZXInO1xuaW1wb3J0IHsgQXV0aFRva2VucyB9IGZyb20gJ0BhY29udHBsdXMvY29yZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBdXRoUmVwb3NpdG9yeSB7XG4gIGFic3RyYWN0IGxvZ2luKHJlcXVlc3Q6IExvZ2luUmVxdWVzdCk6IE9ic2VydmFibGU8QXV0aFRva2Vucz47XG4gIGFic3RyYWN0IHJlZ2lzdGVyKHJlcXVlc3Q6IFJlZ2lzdGVyUmVxdWVzdCk6IE9ic2VydmFibGU8VXNlcj47XG4gIGFic3RyYWN0IHJlZnJlc2hUb2tlbihyZXF1ZXN0OiBSZWZyZXNoVG9rZW5SZXF1ZXN0KTogT2JzZXJ2YWJsZTxBdXRoVG9rZW5zPjtcbiAgYWJzdHJhY3QgbG9nb3V0KGVtYWlsOiBzdHJpbmcsIHJlZnJlc2hUb2tlbjogc3RyaW5nKTogT2JzZXJ2YWJsZTx2b2lkPjtcbn1cbiJdfQ==","// src/lib/domain/repositories/index.ts\nexport * from './auth.repository';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvZG9tYWluL3JlcG9zaXRvcmllcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7QUFDdkMsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9saWIvZG9tYWluL3JlcG9zaXRvcmllcy9pbmRleC50c1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnJlcG9zaXRvcnknO1xuIl19","// src/lib/domain/index.ts\nexport * from './models';\nexport * from './repositories';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvZG9tYWluL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDBCQUEwQjtBQUMxQixjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2xpYi9kb21haW4vaW5kZXgudHNcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3NpdG9yaWVzJztcbiJdfQ==","// src/lib/data/repositories/auth-http.repository.ts\nimport { HttpClient } from '@angular/common/http';\nimport { Injectable, inject } from '@angular/core';\nimport { map, from } from 'rxjs';\nimport { switchMap } from 'rxjs/operators';\nimport { AuthRepository } from '../../domain/repositories/auth.repository';\nimport { User } from '../../domain/models/user';\nimport { AuthTokens } from '@acontplus/core';\nimport { AUTH_API } from '@acontplus/ng-config';\nimport { CsrfService } from '../../services/csrf.service';\nimport * as i0 from \"@angular/core\";\nfunction getDeviceInfo() {\n return `${navigator.platform ?? 'Unknown'} - ${navigator.userAgent}`;\n}\nexport class AuthHttpRepository extends AuthRepository {\n http = inject(HttpClient);\n csrfService = inject(CsrfService);\n URL = `${AUTH_API.ACCOUNT}`;\n login(request) {\n return from(this.csrfService.getCsrfToken()).pipe(switchMap(csrfToken => this.http.post(`${this.URL}login`, request, {\n headers: {\n 'Device-Info': getDeviceInfo(),\n 'X-CSRF-Token': csrfToken,\n },\n withCredentials: true,\n })));\n }\n register(request) {\n return from(this.csrfService.getCsrfToken()).pipe(switchMap(csrfToken => this.http\n .post(`${this.URL}register`, request, {\n headers: {\n 'Device-Info': getDeviceInfo(),\n 'X-CSRF-Token': csrfToken,\n },\n withCredentials: true,\n })\n .pipe(map(response => {\n // Convert string ID to number - if response.id is a string, hash it to get a number\n const numericId = response.id !== ''\n ? Math.abs(response.id.split('').reduce((a, b) => {\n a = (a << 5) - a + b.charCodeAt(0);\n return a & a;\n }, 0))\n : Date.now();\n return new User(numericId, request.email, request.displayName);\n }))));\n }\n refreshToken(request) {\n return from(this.csrfService.getCsrfToken()).pipe(switchMap(csrfToken => this.http\n .post(`${this.URL}refresh`, request, {\n headers: {\n 'Device-Info': getDeviceInfo(),\n 'X-CSRF-Token': csrfToken,\n },\n withCredentials: true,\n })\n .pipe(map(response => new AuthTokens(response.token, response.refreshToken)))));\n }\n logout(email, refreshToken) {\n return from(this.csrfService.getCsrfToken()).pipe(switchMap(csrfToken => this.http.post(`${this.URL}logout`, { email, refreshToken: refreshToken || undefined }, {\n headers: { 'X-CSRF-Token': csrfToken },\n withCredentials: true, // Ensure cookies are sent\n })));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthHttpRepository, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthHttpRepository, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthHttpRepository, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC1odHRwLnJlcG9zaXRvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvZGF0YS9yZXBvc2l0b3JpZXMvYXV0aC1odHRwLnJlcG9zaXRvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0RBQW9EO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQWMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBd0UsSUFBSSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7O0FBRTFELFNBQVMsYUFBYTtJQUNwQixPQUFPLEdBQUcsU0FBUyxDQUFDLFFBQVEsSUFBSSxTQUFTLE1BQU0sU0FBUyxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQ3ZFLENBQUM7QUFLRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsY0FBYztJQUNuQyxJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzFCLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDbEMsR0FBRyxHQUFHLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBRTdDLEtBQUssQ0FBQyxPQUFxQjtRQUN6QixPQUFPLElBQUks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NUYsT0FBTyxFQUFFLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRTtZQUN0QyxlQUFlLEVBQUUsSUFBSSxFQUFFLDBCQUEwQjtTQUNsRCxDQUFDLENBQ0gsQ0FDRixDQUFDO0lBQ0osQ0FBQzt1R0ExRVUsa0JBQWtCOzJHQUFsQixrQkFBa0IsY0FGakIsTUFBTTs7MkZBRVAsa0JBQWtCO2tCQUg5QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9saWIvZGF0YS9yZXBvc2l0b3JpZXMvYXV0aC1odHRwLnJlcG9zaXRvcnkudHNcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG1hcCwgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXV0aFJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi9kb21haW4vcmVwb3NpdG9yaWVzL2F1dGgucmVwb3NpdG9yeSc7XG5pbXBvcnQgeyBMb2dpblJlcXVlc3QsIFJlZ2lzdGVyUmVxdWVzdCwgUmVmcmVzaFRva2VuUmVxdWVzdCwgUmVnaXN0ZXJSZXNwb25zZSwgVXNlciB9IGZyb20gJy4uLy4uL2RvbWFpbi9tb2RlbHMvdXNlcic7XG5pbXBvcnQgeyBBdXRoVG9rZW5zIH0gZnJvbSAnQGFjb250cGx1cy9jb3JlJztcbmltcG9ydCB7IEFVVEhfQVBJIH0gZnJvbSAnQGFjb250cGx1cy9uZy1jb25maWcnO1xuaW1wb3J0IHsgQ3NyZlNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9jc3JmLnNlcnZpY2UnO1xuXG5mdW5jdGlvbiBnZXREZXZpY2VJbmZvKCk6IHN0cmluZyB7XG4gIHJldHVybiBgJHtuYXZpZ2F0b3IucGxhdGZvcm0gPz8gJ1Vua25vd24nfSAtICR7bmF2aWdhdG9yLnVzZXJBZ2VudH1gO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQXV0aEh0dHBSZXBvc2l0b3J5IGV4dGVuZHMgQXV0aFJlcG9zaXRvcnkge1xuICBwcml2YXRlIHJlYWRvbmx5IGh0dHAgPSBpbmplY3QoSHR0cENsaWVudCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgY3NyZlNlcnZpY2UgPSBpbmplY3QoQ3NyZlNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IFVSTCA9IGAke0FVVEhfQVBJLkFDQ09VTlR9YDtcblxuICBsb2dpbihyZXF1ZXN0OiBMb2dpblJlcXVlc3QpOiBPYnNlcnZhYmxlPEF1dGhUb2tlbnM+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNzcmZTZXJ2aWNlLmdldENzcmZUb2tlbigpKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGNzcmZUb2tlbiA9PlxuICAgICAgICB0aGlzLmh0dHAucG9zdDxBdXRoVG9rZW5zPihgJHt0aGlzLlVSTH1sb2dpbmAsIHJlcXVlc3QsIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAnRGV2aWNlLUluZm8nOiBnZXREZXZpY2VJbmZvKCksXG4gICAgICAgICAgICAnWC1DU1JGLVRva2VuJzogY3NyZlRva2VuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLFxuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gIH1cblxuICByZWdpc3RlcihyZXF1ZXN0OiBSZWdpc3RlclJlcXVlc3QpOiBPYnNlcnZhYmxlPFVzZXI+IHtcbiAgICByZXR1cm4gZnJvbSh0aGlzLmNzcmZTZXJ2aWNlLmdldENzcmZUb2tlbigpKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGNzcmZUb2tlbiA9PlxuICAgICAgICB0aGlzLmh0dHBcbiAgICAgICAgICAucG9zdDxSZWdpc3RlclJlc3BvbnNlPihgJHt0aGlzLlVSTH1yZWdpc3RlcmAsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0RldmljZS1JbmZvJzogZ2V0RGV2aWNlSW5mbygpLFxuICAgICAgICAgICAgICAnWC1DU1JGLVRva2VuJzogY3NyZlRva2VuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKHJlc3BvbnNlID0+IHtcbiAgICAgICAgICAgICAgLy8gQ29udmVydCBzdHJpbmcgSUQgdG8gbnVtYmVyIC0gaWYgcmVzcG9uc2UuaWQgaXMgYSBzdHJpbmcsIGhhc2ggaXQgdG8gZ2V0IGEgbnVtYmVyXG4gICAgICAgICAgICAgIGNvbnN0IG51bWVyaWNJZCA9XG4gICAgICAgICAgICAgICAgcmVzcG9uc2UuaWQgIT09ICcnXG4gICAgICAgICAgICAgICAgICA/IE1hdGguYWJzKFxuICAgICAgICAgICAgICAgICAgICAgIHJlc3BvbnNlLmlkLnNwbGl0KCcnKS5yZWR1Y2UoKGEsIGIpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGEgPSAoYSA8PCA1KSAtIGEgKyBiLmNoYXJDb2RlQXQoMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gYSAmIGE7XG4gICAgICAgICAgICAgICAgICAgICAgfSwgMCksXG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIDogRGF0ZS5ub3coKTtcbiAgICAgICAgICAgICAgcmV0dXJuIG5ldyBVc2VyKG51bWVyaWNJZCwgcmVxdWVzdC5lbWFpbCwgcmVxdWVzdC5kaXNwbGF5TmFtZSk7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICApXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIHJlZnJlc2hUb2tlbihyZXF1ZXN0OiBSZWZyZXNoVG9rZW5SZXF1ZXN0KTogT2JzZXJ2YWJsZTxBdXRoVG9rZW5zPiB7XG4gICAgcmV0dXJuIGZyb20odGhpcy5jc3JmU2VydmljZS5nZXRDc3JmVG9rZW4oKSkucGlwZShcbiAgICAgIHN3aXRjaE1hcChjc3JmVG9rZW4gPT5cbiAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgLnBvc3Q8QXV0aFRva2Vucz4oYCR7dGhpcy5VUkx9cmVmcmVzaGAsIHJlcXVlc3QsIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0RldmljZS1JbmZvJzogZ2V0RGV2aWNlSW5mbygpLFxuICAgICAgICAgICAgICAnWC1DU1JGLVRva2VuJzogY3NyZlRva2VuLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHdpdGhDcmVkZW50aWFsczogdHJ1ZSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5waXBlKG1hcChyZXNwb25zZSA9PiBuZXcgQXV0aFRva2VucyhyZXNwb25zZS50b2tlbiwgcmVzcG9uc2UucmVmcmVzaFRva2VuKSkpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIGxvZ291dChlbWFpbDogc3RyaW5nLCByZWZyZXNoVG9rZW46IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiBmcm9tKHRoaXMuY3NyZlNlcnZpY2UuZ2V0Q3NyZlRva2VuKCkpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoY3NyZlRva2VuID0+XG4gICAgICAgIHRoaXMuaHR0cC5wb3N0PHZvaWQ+KGAke3RoaXMuVVJMfWxvZ291dGAsIHsgZW1haWwsIHJlZnJlc2hUb2tlbjogcmVmcmVzaFRva2VuIHx8IHVuZGVmaW5lZCB9LCB7XG4gICAgICAgICAgaGVhZGVyczogeyAnWC1DU1JGLVRva2VuJzogY3NyZlRva2VuIH0sXG4gICAgICAgICAgd2l0aENyZWRlbnRpYWxzOiB0cnVlLCAvLyBFbnN1cmUgY29va2llcyBhcmUgc2VudFxuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==","// src/lib/data/repositories/index.ts\nexport * from './auth-http.repository';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvZGF0YS9yZXBvc2l0b3JpZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEscUNBQXFDO0FBQ3JDLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL2RhdGEvcmVwb3NpdG9yaWVzL2luZGV4LnRzXG5leHBvcnQgKiBmcm9tICcuL2F1dGgtaHR0cC5yZXBvc2l0b3J5JztcbiJdfQ==","// src/lib/data/index.ts\nexport * from './repositories';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvZGF0YS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3QkFBd0I7QUFDeEIsY0FBYyxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9saWIvZGF0YS9pbmRleC50c1xuZXhwb3J0ICogZnJvbSAnLi9yZXBvc2l0b3JpZXMnO1xuIl19","// src/lib/presentation/stores/auth.store.ts\nimport { Injectable, inject, signal } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { of, tap, catchError } from 'rxjs';\nimport { AuthRepository } from '../../domain/repositories/auth.repository';\nimport { TokenRepository } from '../../repositories/token.repository';\nimport { UserRepository } from '@acontplus/ng-infrastructure';\nimport * as i0 from \"@angular/core\";\nexport class AuthStore {\n authRepository = inject(AuthRepository);\n tokenRepository = inject(TokenRepository);\n userRepository = inject(UserRepository);\n router = inject(Router);\n // Authentication state signals\n _isAuthenticated = signal(false, ...(ngDevMode ? [{ debugName: \"_isAuthenticated\" }] : []));\n _isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"_isLoading\" }] : []));\n _user = signal(null, ...(ngDevMode ? [{ debugName: \"_user\" }] : []));\n // Public readonly signals\n isAuthenticated = this._isAuthenticated.asReadonly();\n isLoading = this._isLoading.asReadonly();\n user = this._user.asReadonly();\n // Private refresh token timeout (instead of interval)\n refreshTokenTimeout;\n refreshInProgress$;\n constructor() {\n this.initializeAuthentication();\n }\n /**\n * Initialize authentication state on app startup\n */\n initializeAuthentication() {\n this._isLoading.set(true);\n try {\n const isAuthenticated = this.tokenRepository.isAuthenticated();\n this._isAuthenticated.set(isAuthenticated);\n if (isAuthenticated) {\n const userData = this.userRepository.getCurrentUser();\n this._user.set(userData);\n this.scheduleTokenRefresh();\n }\n }\n catch {\n this.logout();\n }\n finally {\n this._isLoading.set(false);\n }\n }\n /**\n * Schedule token refresh based on actual expiration time\n */\n scheduleTokenRefresh() {\n const accessToken = this.tokenRepository.getAccessToken();\n if (!accessToken) {\n return;\n }\n try {\n const decodedToken = this.decodeToken(accessToken);\n const currentTime = Math.floor(Date.now() / 1000);\n const timeUntilExpiry = decodedToken.exp - currentTime;\n // Refresh 5 minutes before expiry (300 seconds)\n const refreshTime = Math.max((timeUntilExpiry - 300) * 1000, 1000);\n // Clear any existing timeout\n if (this.refreshTokenTimeout) {\n clearTimeout(this.refreshTokenTimeout);\n }\n this.refreshTokenTimeout = window.setTimeout(() => {\n // Check if refresh is still needed before executing\n if (this.tokenRepository.needsRefresh()) {\n this.refreshToken().subscribe();\n }\n }, refreshTime);\n }\n catch {\n // Silent fail - token might be invalid\n }\n }\n /**\n * Stop token refresh timer\n */\n stopTokenRefreshTimer() {\n if (this.refreshTokenTimeout) {\n clearTimeout(this.refreshTokenTimeout);\n this.refreshTokenTimeout = undefined;\n }\n }\n /**\n * Refresh authentication tokens\n */\n refreshToken() {\n // Return existing refresh request if one is in progress\n if (this.refreshInProgress$) {\n return this.refreshInProgress$;\n }\n const userData = this.userRepository.getCurrentUser();\n const refreshToken = this.tokenRepository.getRefreshToken();\n if (!userData?.email || !refreshToken) {\n this.logout();\n return of(null);\n }\n this.refreshInProgress$ = this.authRepository\n .refreshToken({\n email: userData.email,\n refreshToken,\n })\n .pipe(tap(tokens => {\n this.setAuthenticated(tokens);\n }), catchError(() => {\n this.logout();\n return of(null);\n }), tap({\n complete: () => {\n this.refreshInProgress$ = undefined;\n },\n error: () => {\n this.refreshInProgress$ = undefined;\n }\n }));\n return this.refreshInProgress$;\n }\n /**\n * Set authentication state after successful login\n */\n setAuthenticated(tokens) {\n this.tokenRepository.saveTokens(tokens);\n this._isAuthenticated.set(true);\n const userData = this.userRepository.getCurrentUser();\n this._user.set(userData);\n this.scheduleTokenRefresh();\n }\n /**\n * Logout user and clear all authentication data\n */\n logout() {\n const user = this._user();\n if (user) {\n // Call server-side logout first\n this.authRepository.logout(user.email, '').subscribe({\n next: () => {\n // Server logout successful, clear client-side data\n this.performClientLogout();\n },\n error: () => {\n // Server logout failed, still clear client-side data for security\n this.performClientLogout();\n }\n });\n }\n else {\n // No user data, just clear client-side data\n this.performClientLogout();\n }\n }\n /**\n * Perform client-side logout operations\n */\n performClientLogout() {\n this.stopTokenRefreshTimer();\n this.tokenRepository.clearTokens();\n this._isAuthenticated.set(false);\n this._user.set(null);\n // Navigate to login page\n this.router.navigate(['/auth']);\n }\n /**\n * Check if user is authenticated\n */\n checkAuthentication() {\n const isAuthenticated = this.tokenRepository.isAuthenticated();\n this._isAuthenticated.set(isAuthenticated);\n if (!isAuthenticated) {\n this.logout();\n }\n return isAuthenticated;\n }\n /**\n * Decode JWT token\n */\n decodeToken(token) {\n try {\n const base64Url = token.split('.')[1];\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\n const jsonPayload = decodeURIComponent(atob(base64)\n .split('')\n .map(c => {\n return `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`;\n })\n .join(''));\n return JSON.parse(jsonPayload);\n }\n catch {\n throw new Error('Invalid token format');\n }\n }\n /**\n * Cleanup on store destruction\n */\n ngOnDestroy() {\n this.stopTokenRefreshTimer();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthStore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthStore, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: AuthStore, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5zdG9yZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWF1dGgvc3JjL2xpYi91aS9zdG9yZXMvYXV0aC5zdG9yZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0Q0FBNEM7QUFDNUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQWMsRUFBRSxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBTzlELE1BQU0sT0FBTyxTQUFTO0lBQ0gsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUV6QywrQkFBK0I7SUFDZCxnQkFBZ0IsR0FBRyxNQUFNLENBQVUsS0FBSyw0REFBQyxDQUFDO0lBQzFDLFVBQVUsR0FBRyxNQUFNLENBQVUsS0FBSyxzREFBQyxDQUFDO0lBQ3BDLEtBQUssR0FBRyxNQUFNLENBQWtCLElBQUksaURBQUMsQ0FBQztJQUV2RCwwQkFBMEI7SUFDakIsZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyRCxTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVB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QUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQzt1R0EzTlUsU0FBUzsyR0FBVCxTQUFTLGNBRlIsTUFBTTs7MkZBRVAsU0FBUztrQkFIckIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL3ByZXNlbnRhdGlvbi9zdG9yZXMvYXV0aC5zdG9yZS50c1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0LCBzaWduYWwsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mLCB0YXAsIGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGp3dERlY29kZSB9IGZyb20gJ2p3dC1kZWNvZGUnO1xuaW1wb3J0IHsgQXV0aFJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi9kb21haW4vcmVwb3NpdG9yaWVzL2F1dGgucmVwb3NpdG9yeSc7XG5pbXBvcnQgeyBUb2tlblJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi9yZXBvc2l0b3JpZXMvdG9rZW4ucmVwb3NpdG9yeSc7XG5pbXBvcnQgeyBVc2VyUmVwb3NpdG9yeSB9IGZyb20gJ0BhY29udHBsdXMvbmctaW5mcmFzdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgQXV0aFRva2VucyB9IGZyb20gJ0BhY29udHBsdXMvY29yZSc7XG5pbXBvcnQgeyBVc2VyRGF0YSwgRGVjb2RlZFRva2VuIH0gZnJvbSAnQGFjb250cGx1cy9jb3JlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEF1dGhTdG9yZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aFJlcG9zaXRvcnkgPSBpbmplY3QoQXV0aFJlcG9zaXRvcnkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuUmVwb3NpdG9yeSA9IGluamVjdChUb2tlblJlcG9zaXRvcnkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHVzZXJSZXBvc2l0b3J5ID0gaW5qZWN0KFVzZXJSZXBvc2l0b3J5KTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICAvLyBBdXRoZW50aWNhdGlvbiBzdGF0ZSBzaWduYWxzXG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzQXV0aGVudGljYXRlZCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2lzTG9hZGluZyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3VzZXIgPSBzaWduYWw8VXNlckRhdGEgfCBudWxsPihudWxsKTtcblxuICAvLyBQdWJsaWMgcmVhZG9ubHkgc2lnbmFsc1xuICByZWFkb25seSBpc0F1dGhlbnRpY2F0ZWQgPSB0aGlzLl9pc0F1dGhlbnRpY2F0ZWQuYXNSZWFkb25seSgpO1xuICByZWFkb25seSBpc0xvYWRpbmcgPSB0aGlzLl9pc0xvYWRpbmcuYXNSZWFkb25seSgpO1xuICByZWFkb25seSB1c2VyID0gdGhpcy5fdXNlci5hc1JlYWRvbmx5KCk7XG5cbiAgLy8gUHJpdmF0ZSByZWZyZXNoIHRva2VuIHRpbWVvdXQgKGluc3RlYWQgb2YgaW50ZXJ2YWwpXG4gIHByaXZhdGUgcmVmcmVzaFRva2VuVGltZW91dD86IG51bWJlcjtcbiAgcHJpdmF0ZSByZWZyZXNoSW5Qcm9ncmVzcyQ/OiBPYnNlcnZhYmxlPEF1dGhUb2tlbnMgfCBudWxsPjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmluaXRpYWxpemVBdXRoZW50aWNhdGlvbigpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgYXV0aGVudGljYXRpb24gc3RhdGUgb24gYXBwIHN0YXJ0dXBcbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUF1dGhlbnRpY2F0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuX2lzTG9hZGluZy5zZXQodHJ1ZSk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgaXNBdXRoZW50aWNhdGVkID0gdGhpcy50b2tlblJlcG9zaXRvcnkuaXNBdXRoZW50aWNhdGVkKCk7XG4gICAgICB0aGlzLl9pc0F1dGhlbnRpY2F0ZWQuc2V0KGlzQXV0aGVudGljYXRlZCk7XG5cbiAgICAgIGlmIChpc0F1dGhlbnRpY2F0ZWQpIHtcbiAgICAgICAgY29uc3QgdXNlckRhdGEgPSB0aGlzLnVzZXJSZXBvc2l0b3J5LmdldEN1cnJlbnRVc2VyKCk7XG4gICAgICAgIHRoaXMuX3VzZXIuc2V0KHVzZXJEYXRhKTtcbiAgICAgICAgdGhpcy5zY2hlZHVsZVRva2VuUmVmcmVzaCgpO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgdGhpcy5sb2dvdXQoKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5faXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNjaGVkdWxlIHRva2VuIHJlZnJlc2ggYmFzZWQgb24gYWN0dWFsIGV4cGlyYXRpb24gdGltZVxuICAgKi9cbiAgcHJpdmF0ZSBzY2hlZHVsZVRva2VuUmVmcmVzaCgpOiB2b2lkIHtcbiAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHRoaXMudG9rZW5SZXBvc2l0b3J5LmdldEFjY2Vzc1Rva2VuKCk7XG4gICAgaWYgKCFhY2Nlc3NUb2tlbikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBkZWNvZGVkVG9rZW4gPSB0aGlzLmRlY29kZVRva2VuKGFjY2Vzc1Rva2VuKTtcbiAgICAgIGNvbnN0IGN1cnJlbnRUaW1lID0gTWF0aC5mbG9vcihEYXRlLm5vdygpIC8gMTAwMCk7XG4gICAgICBjb25zdCB0aW1lVW50aWxFeHBpcnkgPSBkZWNvZGVkVG9rZW4uZXhwIC0gY3VycmVudFRpbWU7XG5cbiAgICAgIC8vIFJlZnJlc2ggNSBtaW51dGVzIGJlZm9yZSBleHBpcnkgKDMwMCBzZWNvbmRzKVxuICAgICAgY29uc3QgcmVmcmVzaFRpbWUgPSBNYXRoLm1heCgodGltZVVudGlsRXhwaXJ5IC0gMzAwKSAqIDEwMDAsIDEwMDApO1xuXG4gICAgICAvLyBDbGVhciBhbnkgZXhpc3RpbmcgdGltZW91dFxuICAgICAgaWYgKHRoaXMucmVmcmVzaFRva2VuVGltZW91dCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5yZWZyZXNoVG9rZW5UaW1lb3V0KTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5yZWZyZXNoVG9rZW5UaW1lb3V0ID0gd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAvLyBDaGVjayBpZiByZWZyZXNoIGlzIHN0aWxsIG5lZWRlZCBiZWZvcmUgZXhlY3V0aW5nXG4gICAgICAgIGlmICh0aGlzLnRva2VuUmVwb3NpdG9yeS5uZWVkc1JlZnJlc2goKSkge1xuICAgICAgICAgIHRoaXMucmVmcmVzaFRva2VuKCkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIHJlZnJlc2hUaW1lKTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIFNpbGVudCBmYWlsIC0gdG9rZW4gbWlnaHQgYmUgaW52YWxpZFxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTdG9wIHRva2VuIHJlZnJlc2ggdGltZXJcbiAgICovXG4gIHByaXZhdGUgc3RvcFRva2VuUmVmcmVzaFRpbWVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlZnJlc2hUb2tlblRpbWVvdXQpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLnJlZnJlc2hUb2tlblRpbWVvdXQpO1xuICAgICAgdGhpcy5yZWZyZXNoVG9rZW5UaW1lb3V0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoIGF1dGhlbnRpY2F0aW9uIHRva2Vuc1xuICAgKi9cbiAgcmVmcmVzaFRva2VuKCk6IE9ic2VydmFibGU8QXV0aFRva2VucyB8IG51bGw+IHtcbiAgICAvLyBSZXR1cm4gZXhpc3RpbmcgcmVmcmVzaCByZXF1ZXN0IGlmIG9uZSBpcyBpbiBwcm9ncmVzc1xuICAgIGlmICh0aGlzLnJlZnJlc2hJblByb2dyZXNzJCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVmcmVzaEluUHJvZ3Jlc3MkO1xuICAgIH1cblxuICAgIGNvbnN0IHVzZXJEYXRhID0gdGhpcy51c2VyUmVwb3NpdG9yeS5nZXRDdXJyZW50VXNlcigpO1xuICAgIGNvbnN0IHJlZnJlc2hUb2tlbiA9IHRoaXMudG9rZW5SZXBvc2l0b3J5LmdldFJlZnJlc2hUb2tlbigpO1xuXG4gICAgaWYgKCF1c2VyRGF0YT8uZW1haWwgfHwgIXJlZnJlc2hUb2tlbikge1xuICAgICAgdGhpcy5sb2dvdXQoKTtcbiAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICB9XG5cbiAgICB0aGlzLnJlZnJlc2hJblByb2dyZXNzJCA9IHRoaXMuYXV0aFJlcG9zaXRvcnlcbiAgICAgIC5yZWZyZXNoVG9rZW4oe1xuICAgICAgICBlbWFpbDogdXNlckRhdGEuZW1haWwsXG4gICAgICAgIHJlZnJlc2hUb2tlbixcbiAgICAgIH0pXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKHRva2VucyA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRBdXRoZW50aWNhdGVkKHRva2Vucyk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKCgpID0+IHtcbiAgICAgICAgICB0aGlzLmxvZ291dCgpO1xuICAgICAgICAgIHJldHVybiBvZihudWxsKTtcbiAgICAgICAgfSksXG4gICAgICAgIHRhcCh7XG4gICAgICAgICAgY29tcGxldGU6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaEluUHJvZ3Jlc3MkID0gdW5kZWZpbmVkO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVmcmVzaEluUHJvZ3Jlc3MkID0gdW5kZWZpbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICByZXR1cm4gdGhpcy5yZWZyZXNoSW5Qcm9ncmVzcyQ7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGF1dGhlbnRpY2F0aW9uIHN0YXRlIGFmdGVyIHN1Y2Nlc3NmdWwgbG9naW5cbiAgICovXG4gIHNldEF1dGhlbnRpY2F0ZWQodG9rZW5zOiBBdXRoVG9rZW5zKTogdm9pZCB7XG4gICAgdGhpcy50b2tlblJlcG9zaXRvcnkuc2F2ZVRva2Vucyh0b2tlbnMpO1xuICAgIHRoaXMuX2lzQXV0aGVudGljYXRlZC5zZXQodHJ1ZSk7XG4gICAgY29uc3QgdXNlckRhdGEgPSB0aGlzLnVzZXJSZXBvc2l0b3J5LmdldEN1cnJlbnRVc2VyKCk7XG4gICAgdGhpcy5fdXNlci5zZXQodXNlckRhdGEpO1xuICAgIHRoaXMuc2NoZWR1bGVUb2tlblJlZnJlc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2dvdXQgdXNlciBhbmQgY2xlYXIgYWxsIGF1dGhlbnRpY2F0aW9uIGRhdGFcbiAgICovXG4gIGxvZ291dCgpOiB2b2lkIHtcbiAgICBjb25zdCB1c2VyID0gdGhpcy5fdXNlcigpO1xuICAgIGlmICh1c2VyKSB7XG4gICAgICAvLyBDYWxsIHNlcnZlci1zaWRlIGxvZ291dCBmaXJzdFxuICAgICAgdGhpcy5hdXRoUmVwb3NpdG9yeS5sb2dvdXQodXNlci5lbWFpbCwgJycpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6ICgpID0+IHtcbiAgICAgICAgICAvLyBTZXJ2ZXIgbG9nb3V0IHN1Y2Nlc3NmdWwsIGNsZWFyIGNsaWVudC1zaWRlIGRhdGFcbiAgICAgICAgICB0aGlzLnBlcmZvcm1DbGllbnRMb2dvdXQoKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAvLyBTZXJ2ZXIgbG9nb3V0IGZhaWxlZCwgc3RpbGwgY2xlYXIgY2xpZW50LXNpZGUgZGF0YSBmb3Igc2VjdXJpdHlcbiAgICAgICAgICB0aGlzLnBlcmZvcm1DbGllbnRMb2dvdXQoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIE5vIHVzZXIgZGF0YSwganVzdCBjbGVhciBjbGllbnQtc2lkZSBkYXRhXG4gICAgICB0aGlzLnBlcmZvcm1DbGllbnRMb2dvdXQoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybSBjbGllbnQtc2lkZSBsb2dvdXQgb3BlcmF0aW9uc1xuICAgKi9cbiAgcHJpdmF0ZSBwZXJmb3JtQ2xpZW50TG9nb3V0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcFRva2VuUmVmcmVzaFRpbWVyKCk7XG4gICAgdGhpcy50b2tlblJlcG9zaXRvcnkuY2xlYXJUb2tlbnMoKTtcbiAgICB0aGlzLl9pc0F1dGhlbnRpY2F0ZWQuc2V0KGZhbHNlKTtcbiAgICB0aGlzLl91c2VyLnNldChudWxsKTtcblxuICAgIC8vIE5hdmlnYXRlIHRvIGxvZ2luIHBhZ2VcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy9hdXRoJ10pO1xuICB9XG5cbiAgLyoqXG4gICAqIENoZWNrIGlmIHVzZXIgaXMgYXV0aGVudGljYXRlZFxuICAgKi9cbiAgY2hlY2tBdXRoZW50aWNhdGlvbigpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc0F1dGhlbnRpY2F0ZWQgPSB0aGlzLnRva2VuUmVwb3NpdG9yeS5pc0F1dGhlbnRpY2F0ZWQoKTtcbiAgICB0aGlzLl9pc0F1dGhlbnRpY2F0ZWQuc2V0KGlzQXV0aGVudGljYXRlZCk7XG5cbiAgICBpZiAoIWlzQXV0aGVudGljYXRlZCkge1xuICAgICAgdGhpcy5sb2dvdXQoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gaXNBdXRoZW50aWNhdGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIERlY29kZSBKV1QgdG9rZW5cbiAgICovXG4gIHByaXZhdGUgZGVjb2RlVG9rZW4odG9rZW46IHN0cmluZyk6IERlY29kZWRUb2tlbiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGJhc2U2NFVybCA9IHRva2VuLnNwbGl0KCcuJylbMV07XG4gICAgICBjb25zdCBiYXNlNjQgPSBiYXNlNjRVcmwucmVwbGFjZSgvLS9nLCAnKycpLnJlcGxhY2UoL18vZywgJy8nKTtcbiAgICAgIGNvbnN0IGpzb25QYXlsb2FkID0gZGVjb2RlVVJJQ29tcG9uZW50KFxuICAgICAgICBhdG9iKGJhc2U2NClcbiAgICAgICAgICAuc3BsaXQoJycpXG4gICAgICAgICAgLm1hcChjID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgJSR7YDAwJHtjLmNoYXJDb2RlQXQoMCkudG9TdHJpbmcoMTYpfWAuc2xpY2UoLTIpfWA7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuam9pbignJyksXG4gICAgICApO1xuICAgICAgcmV0dXJuIEpTT04ucGFyc2UoanNvblBheWxvYWQpO1xuICAgIH0gY2F0Y2gge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnZhbGlkIHRva2VuIGZvcm1hdCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhbnVwIG9uIHN0b3JlIGRlc3RydWN0aW9uXG4gICAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3BUb2tlblJlZnJlc2hUaW1lcigpO1xuICB9XG59XG4iXX0=","// src/lib/application/use-cases/login.use-case.ts\nimport { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { tap } from 'rxjs';\nimport { AuthRepository } from '../../domain/repositories/auth.repository';\nimport { AuthStore } from '../../ui/stores/auth.store';\nimport * as i0 from \"@angular/core\";\nexport class LoginUseCase {\n authRepository = inject(AuthRepository);\n authStore = inject(AuthStore);\n router = inject(Router);\n execute(request) {\n return this.authRepository.login(request).pipe(tap(tokens => {\n // Set authentication state\n this.authStore.setAuthenticated(tokens);\n // Navigate to main page\n this.router.navigate(['/']);\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: LoginUseCase, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: LoginUseCase, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: LoginUseCase, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4udXNlLWNhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvYXBwbGljYXRpb24vdXNlLWNhc2VzL2xvZ2luLnVzZS1jYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGtEQUFrRDtBQUNsRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFHM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUt2RCxNQUFNLE9BQU8sWUFBWTtJQUNOLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QixNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXpDLE9BQU8sQ0FBQyxPQUFxQjtRQUMzQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDNUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsMkJBQTJCO1lBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFeEMsd0JBQXdCO1lBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzt1R0FmVSxZQUFZOzJHQUFaLFlBQVksY0FGWCxNQUFNOzsyRkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9saWIvYXBwbGljYXRpb24vdXNlLWNhc2VzL2xvZ2luLnVzZS1jYXNlLnRzXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEF1dGhSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vZG9tYWluL3JlcG9zaXRvcmllcy9hdXRoLnJlcG9zaXRvcnknO1xuaW1wb3J0IHsgTG9naW5SZXF1ZXN0IH0gZnJvbSAnLi4vLi4vZG9tYWluL21vZGVscy91c2VyJztcbmltcG9ydCB7IEF1dGhUb2tlbnMgfSBmcm9tICdAYWNvbnRwbHVzL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFN0b3JlIH0gZnJvbSAnLi4vLi4vdWkvc3RvcmVzL2F1dGguc3RvcmUnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTG9naW5Vc2VDYXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoUmVwb3NpdG9yeSA9IGluamVjdChBdXRoUmVwb3NpdG9yeSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgYXV0aFN0b3JlID0gaW5qZWN0KEF1dGhTdG9yZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgZXhlY3V0ZShyZXF1ZXN0OiBMb2dpblJlcXVlc3QpOiBPYnNlcnZhYmxlPEF1dGhUb2tlbnM+IHtcbiAgICByZXR1cm4gdGhpcy5hdXRoUmVwb3NpdG9yeS5sb2dpbihyZXF1ZXN0KS5waXBlKFxuICAgICAgdGFwKHRva2VucyA9PiB7XG4gICAgICAgIC8vIFNldCBhdXRoZW50aWNhdGlvbiBzdGF0ZVxuICAgICAgICB0aGlzLmF1dGhTdG9yZS5zZXRBdXRoZW50aWNhdGVkKHRva2Vucyk7XG5cbiAgICAgICAgLy8gTmF2aWdhdGUgdG8gbWFpbiBwYWdlXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnLyddKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","// src/lib/application/use-cases/register.use-case.ts\nimport { Injectable, inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { tap } from 'rxjs';\nimport { AuthRepository } from '../../domain/repositories/auth.repository';\nimport * as i0 from \"@angular/core\";\nexport class RegisterUseCase {\n authRepository = inject(AuthRepository);\n router = inject(Router);\n execute(request) {\n return this.authRepository.register(request).pipe(tap(() => {\n this.router.navigate(['/', 'auth']);\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: RegisterUseCase, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: RegisterUseCase, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: RegisterUseCase, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXIudXNlLWNhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvYXBwbGljYXRpb24vdXNlLWNhc2VzL3JlZ2lzdGVyLnVzZS1jYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHFEQUFxRDtBQUNyRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekMsT0FBTyxFQUFjLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7O0FBTTNFLE1BQU0sT0FBTyxlQUFlO0lBQ1QsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBRXpDLE9BQU8sQ0FBQyxPQUF3QjtRQUM5QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FDL0MsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDdEMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7dUdBVlUsZUFBZTsyR0FBZixlQUFlLGNBRmQsTUFBTTs7MkZBRVAsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL2FwcGxpY2F0aW9uL3VzZS1jYXNlcy9yZWdpc3Rlci51c2UtY2FzZS50c1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uL2RvbWFpbi9yZXBvc2l0b3JpZXMvYXV0aC5yZXBvc2l0b3J5JztcbmltcG9ydCB7IFJlZ2lzdGVyUmVxdWVzdCwgVXNlciB9IGZyb20gJy4uLy4uL2RvbWFpbi9tb2RlbHMvdXNlcic7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZWdpc3RlclVzZUNhc2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhSZXBvc2l0b3J5ID0gaW5qZWN0KEF1dGhSZXBvc2l0b3J5KTtcbiAgcHJpdmF0ZSByZWFkb25seSByb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICBleGVjdXRlKHJlcXVlc3Q6IFJlZ2lzdGVyUmVxdWVzdCk6IE9ic2VydmFibGU8VXNlcj4ge1xuICAgIHJldHVybiB0aGlzLmF1dGhSZXBvc2l0b3J5LnJlZ2lzdGVyKHJlcXVlc3QpLnBpcGUoXG4gICAgICB0YXAoKCkgPT4ge1xuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbJy8nLCAnYXV0aCddKTtcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==","// src/lib/application/use-cases/refresh-token.use-case.ts\nimport { Injectable, inject } from '@angular/core';\nimport { throwError, catchError, tap } from 'rxjs';\nimport { AuthRepository } from '../../domain/repositories/auth.repository';\nimport { UserRepository } from '@acontplus/ng-infrastructure';\nimport { TokenRepository } from '../../repositories/token.repository';\nimport { AuthStore } from '../../ui/stores/auth.store';\nimport * as i0 from \"@angular/core\";\nexport class RefreshTokenUseCase {\n authRepository = inject(AuthRepository);\n userRepository = inject(UserRepository);\n tokenRepository = inject(TokenRepository);\n authStore = inject(AuthStore);\n execute() {\n const userData = this.userRepository.getCurrentUser();\n const refreshToken = this.tokenRepository.getRefreshToken();\n if (!userData?.email || !refreshToken || refreshToken.trim().length === 0) {\n const error = new Error('No refresh token or email available');\n return throwError(() => error);\n }\n return this.authRepository\n .refreshToken({\n email: userData.email,\n refreshToken,\n })\n .pipe(tap(tokens => {\n // Update authentication state\n this.authStore.setAuthenticated(tokens);\n }), catchError(error => {\n // Don't logout here, let the interceptor handle it\n return throwError(() => error);\n }));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: RefreshTokenUseCase, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: RefreshTokenUseCase, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: RefreshTokenUseCase, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmcmVzaC10b2tlbi51c2UtY2FzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWF1dGgvc3JjL2xpYi9hcHBsaWNhdGlvbi91c2UtY2FzZXMvcmVmcmVzaC10b2tlbi51c2UtY2FzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwREFBMEQ7QUFDMUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLG1CQUFtQjtJQUNiLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsY0FBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN4QyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzFDLFNBQVMsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7SUFFL0MsT0FBTztRQUNMLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUU1RCxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssSUFBSSxDQUFDLFlBQVksSUFBSSxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzFFLE1BQU0sS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLHFDQUFxQyxDQUFDLENBQUM7WUFDL0QsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztRQUVELE9BQU8sSUFBSSxDQUFDLGNBQWM7YUFDdkIsWUFBWSxDQUFDO1lBQ1osS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO1lBQ3JCLFlBQVk7U0FDYixDQUFDO2FBQ0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLDhCQUE4QjtZQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUNGLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNqQixtREFBbUQ7WUFDbkQsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNOLENBQUM7dUdBOUJVLG1CQUFtQjsyR0FBbkIsbUJBQW1CLGNBRmxCLE1BQU07OzJGQUVQLG1CQUFtQjtrQkFIL0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvbGliL2FwcGxpY2F0aW9uL3VzZS1jYXNlcy9yZWZyZXNoLXRva2VuLnVzZS1jYXNlLnRzXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHRocm93RXJyb3IsIGNhdGNoRXJyb3IsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXV0aFJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi9kb21haW4vcmVwb3NpdG9yaWVzL2F1dGgucmVwb3NpdG9yeSc7XG5pbXBvcnQgeyBVc2VyUmVwb3NpdG9yeSB9IGZyb20gJ0BhY29udHBsdXMvbmctaW5mcmFzdHJ1Y3R1cmUnO1xuaW1wb3J0IHsgVG9rZW5SZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vcmVwb3NpdG9yaWVzL3Rva2VuLnJlcG9zaXRvcnknO1xuaW1wb3J0IHsgQXV0aFRva2VucyB9IGZyb20gJ0BhY29udHBsdXMvY29yZSc7XG5pbXBvcnQgeyBBdXRoU3RvcmUgfSBmcm9tICcuLi8uLi91aS9zdG9yZXMvYXV0aC5zdG9yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZWZyZXNoVG9rZW5Vc2VDYXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoUmVwb3NpdG9yeSA9IGluamVjdChBdXRoUmVwb3NpdG9yeSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlclJlcG9zaXRvcnkgPSBpbmplY3QoVXNlclJlcG9zaXRvcnkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuUmVwb3NpdG9yeSA9IGluamVjdChUb2tlblJlcG9zaXRvcnkpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTdG9yZSA9IGluamVjdChBdXRoU3RvcmUpO1xuXG4gIGV4ZWN1dGUoKTogT2JzZXJ2YWJsZTxBdXRoVG9rZW5zPiB7XG4gICAgY29uc3QgdXNlckRhdGEgPSB0aGlzLnVzZXJSZXBvc2l0b3J5LmdldEN1cnJlbnRVc2VyKCk7XG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gdGhpcy50b2tlblJlcG9zaXRvcnkuZ2V0UmVmcmVzaFRva2VuKCk7XG5cbiAgICBpZiAoIXVzZXJEYXRhPy5lbWFpbCB8fCAhcmVmcmVzaFRva2VuIHx8IHJlZnJlc2hUb2tlbi50cmltKCkubGVuZ3RoID09PSAwKSB7XG4gICAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcignTm8gcmVmcmVzaCB0b2tlbiBvciBlbWFpbCBhdmFpbGFibGUnKTtcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IGVycm9yKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5hdXRoUmVwb3NpdG9yeVxuICAgICAgLnJlZnJlc2hUb2tlbih7XG4gICAgICAgIGVtYWlsOiB1c2VyRGF0YS5lbWFpbCxcbiAgICAgICAgcmVmcmVzaFRva2VuLFxuICAgICAgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAodG9rZW5zID0+IHtcbiAgICAgICAgICAvLyBVcGRhdGUgYXV0aGVudGljYXRpb24gc3RhdGVcbiAgICAgICAgICB0aGlzLmF1dGhTdG9yZS5zZXRBdXRoZW50aWNhdGVkKHRva2Vucyk7XG4gICAgICAgIH0pLFxuICAgICAgICBjYXRjaEVycm9yKGVycm9yID0+IHtcbiAgICAgICAgICAvLyBEb24ndCBsb2dvdXQgaGVyZSwgbGV0IHRoZSBpbnRlcmNlcHRvciBoYW5kbGUgaXRcbiAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBlcnJvcik7XG4gICAgICAgIH0pLFxuICAgICAgKTtcbiAgfVxufVxuIl19","// src/lib/application/use-cases/logout.use-case.ts\nimport { Injectable, inject } from '@angular/core';\nimport { of, tap } from 'rxjs';\nimport { AuthRepository } from '../../domain/repositories/auth.repository';\nimport { UserRepository } from '@acontplus/ng-infrastructure';\nimport { TokenRepository } from '../../repositories/token.repository';\nimport { AuthStore } from '../../ui/stores/auth.store';\nimport * as i0 from \"@angular/core\";\nexport class LogoutUseCase {\n authRepository = inject(AuthRepository);\n userRepository = inject(UserRepository);\n tokenRepository = inject(TokenRepository);\n authStore = inject(AuthStore);\n execute() {\n const userData = this.userRepository.getCurrentUser();\n const refreshToken = this.tokenRepository.getRefreshToken();\n if (userData?.email && refreshToken && refreshToken.length > 0) {\n return this.authRepository.logout(userData.email, refreshToken).pipe(tap(() => this.cleanup()));\n }\n this.cleanup();\n return of(void 0);\n }\n cleanup() {\n // Use auth store for centralized logout\n this.authStore.logout();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: LogoutUseCase, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: LogoutUseCase, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: LogoutUseCase, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nb3V0LnVzZS1jYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctYXV0aC9zcmMvbGliL2FwcGxpY2F0aW9uL3VzZS1jYXNlcy9sb2dvdXQudXNlLWNhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsbURBQW1EO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBYyxFQUFFLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLGFBQWE7SUFDUCxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLGNBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUMxQyxTQUFTLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBRS9DLE9BQU87UUFDTCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFNUQsSUFBSSxRQUFRLEVBQUUsS0FBSyxJQUFJLFlBQVksSUFBSSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQy9ELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDbEcsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNmLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUVPLE9BQU87UUFDYix3Q0FBd0M7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUMxQixDQUFDO3VHQXJCVSxhQUFhOzJHQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9saWIvYXBwbGljYXRpb24vdXNlLWNhc2VzL2xvZ291dC51c2UtY2FzZS50c1xuaW1wb3J0IHsgSW5qZWN0YWJsZSwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBdXRoUmVwb3NpdG9yeSB9IGZyb20gJy4uLy4uL2RvbWFpbi9yZXBvc2l0b3JpZXMvYXV0aC5yZXBvc2l0b3J5JztcbmltcG9ydCB7IFVzZXJSZXBvc2l0b3J5IH0gZnJvbSAnQGFjb250cGx1cy9uZy1pbmZyYXN0cnVjdHVyZSc7XG5pbXBvcnQgeyBUb2tlblJlcG9zaXRvcnkgfSBmcm9tICcuLi8uLi9yZXBvc2l0b3JpZXMvdG9rZW4ucmVwb3NpdG9yeSc7XG5pbXBvcnQgeyBBdXRoU3RvcmUgfSBmcm9tICcuLi8uLi91aS9zdG9yZXMvYXV0aC5zdG9yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBMb2dvdXRVc2VDYXNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBhdXRoUmVwb3NpdG9yeSA9IGluamVjdChBdXRoUmVwb3NpdG9yeSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgdXNlclJlcG9zaXRvcnkgPSBpbmplY3QoVXNlclJlcG9zaXRvcnkpO1xuICBwcml2YXRlIHJlYWRvbmx5IHRva2VuUmVwb3NpdG9yeSA9IGluamVjdChUb2tlblJlcG9zaXRvcnkpO1xuICBwcml2YXRlIHJlYWRvbmx5IGF1dGhTdG9yZSA9IGluamVjdChBdXRoU3RvcmUpO1xuXG4gIGV4ZWN1dGUoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgY29uc3QgdXNlckRhdGEgPSB0aGlzLnVzZXJSZXBvc2l0b3J5LmdldEN1cnJlbnRVc2VyKCk7XG4gICAgY29uc3QgcmVmcmVzaFRva2VuID0gdGhpcy50b2tlblJlcG9zaXRvcnkuZ2V0UmVmcmVzaFRva2VuKCk7XG5cbiAgICBpZiAodXNlckRhdGE/LmVtYWlsICYmIHJlZnJlc2hUb2tlbiAmJiByZWZyZXNoVG9rZW4ubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuYXV0aFJlcG9zaXRvcnkubG9nb3V0KHVzZXJEYXRhLmVtYWlsLCByZWZyZXNoVG9rZW4pLnBpcGUodGFwKCgpID0+IHRoaXMuY2xlYW51cCgpKSk7XG4gICAgfVxuXG4gICAgdGhpcy5jbGVhbnVwKCk7XG4gICAgcmV0dXJuIG9mKHZvaWQgMCk7XG4gIH1cblxuICBwcml2YXRlIGNsZWFudXAoKTogdm9pZCB7XG4gICAgLy8gVXNlIGF1dGggc3RvcmUgZm9yIGNlbnRyYWxpemVkIGxvZ291dFxuICAgIHRoaXMuYXV0aFN0b3JlLmxvZ291dCgpO1xuICB9XG59XG4iXX0=","// src/lib/application/use-cases/index.ts\nexport * from './login.use-case';\nexport * from './register.use-case';\nexport * from './refresh-token.use-case';\nexport * from './logout.use-case';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvYXBwbGljYXRpb24vdXNlLWNhc2VzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHlDQUF5QztBQUN6QyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLG1CQUFtQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2xpYi9hcHBsaWNhdGlvbi91c2UtY2FzZXMvaW5kZXgudHNcbmV4cG9ydCAqIGZyb20gJy4vbG9naW4udXNlLWNhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWdpc3Rlci51c2UtY2FzZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlZnJlc2gtdG9rZW4udXNlLWNhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9sb2dvdXQudXNlLWNhc2UnO1xuIl19","// src/lib/application/index.ts\nexport * from './use-cases';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvYXBwbGljYXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2xpYi9hcHBsaWNhdGlvbi9pbmRleC50c1xuZXhwb3J0ICogZnJvbSAnLi91c2UtY2FzZXMnO1xuIl19","// src/lib/presentation/stores/index.ts\nexport * from './auth.store';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvdWkvc3RvcmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHVDQUF1QztBQUN2QyxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9saWIvcHJlc2VudGF0aW9uL3N0b3Jlcy9pbmRleC50c1xuZXhwb3J0ICogZnJvbSAnLi9hdXRoLnN0b3JlJztcbiJdfQ==","// src/lib/presentation/components/login/login.component.ts\nimport { ChangeDetectionStrategy, Component, inject, input, signal, computed, } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormBuilder, Validators, ReactiveFormsModule, } from '@angular/forms';\nimport { MatCard, MatCardContent, MatCardFooter, MatCardHeader, MatCardTitle, } from '@angular/material/card';\nimport { MatFormField, MatLabel } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { MatIcon } from '@angular/material/icon';\nimport { MatAnchor, MatButton } from '@angular/material/button';\nimport { LoginUseCase } from '../../application/use-cases/login.use-case';\nimport { RegisterUseCase } from '../../application/use-cases/register.use-case';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/forms\";\nexport class LoginComponent {\n title = input('Login', ...(ngDevMode ? [{ debugName: \"title\" }] : []));\n showRegisterButton = input(true, ...(ngDevMode ? [{ debugName: \"showRegisterButton\" }] : []));\n // Additional form controls that can be passed from parent components\n additionalSigninControls = input({}, ...(ngDevMode ? [{ debugName: \"additionalSigninControls\" }] : []));\n additionalSignupControls = input({}, ...(ngDevMode ? [{ debugName: \"additionalSignupControls\" }] : []));\n // Additional field templates\n additionalSigninFields = input(null, ...(ngDevMode ? [{ debugName: \"additionalSigninFields\" }] : []));\n additionalSignupFields = input(null, ...(ngDevMode ? [{ debugName: \"additionalSignupFields\" }] : []));\n // Footer content template\n footerContent = input(null, ...(ngDevMode ? [{ debugName: \"footerContent\" }] : []));\n // Computed signal to check if footer content exists\n hasFooterContent = computed(() => this.footerContent() !== null, ...(ngDevMode ? [{ debugName: \"hasFooterContent\" }] : []));\n fb = inject(FormBuilder);\n loginUseCase = inject(LoginUseCase);\n registerUseCase = inject(RegisterUseCase);\n // Angular 20+ signals\n isLoginMode = signal(true, ...(ngDevMode ? [{ debugName: \"isLoginMode\" }] : []));\n isLoading = signal(false, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n errorMessage = signal(null, ...(ngDevMode ? [{ debugName: \"errorMessage\" }] : []));\n signinForm;\n signupForm;\n constructor() {\n this.signinForm = this.fb.group({\n email: ['', [Validators.required, Validators.email]],\n password: ['', Validators.required],\n });\n this.signupForm = this.fb.group({\n displayName: ['', Validators.required],\n email: ['', [Validators.required, Validators.email]],\n password: ['', [Validators.required, Validators.minLength(6)]],\n });\n }\n ngOnInit() {\n // Add additional controls to signin form\n Object.entries(this.additionalSigninControls()).forEach(([key, control]) => {\n this.signinForm.addControl(key, control);\n });\n // Add additional controls to signup form\n Object.entries(this.additionalSignupControls()).forEach(([key, control]) => {\n this.signupForm.addControl(key, control);\n });\n }\n switchMode() {\n this.isLoginMode.set(!this.isLoginMode());\n this.errorMessage.set(null);\n }\n signIn() {\n if (this.signinForm.valid) {\n this.isLoading.set(true);\n this.errorMessage.set(null);\n this.loginUseCase.execute(this.signinForm.value).subscribe({\n next: () => {\n this.isLoading.set(false);\n },\n error: error => {\n this.isLoading.set(false);\n this.errorMessage.set('Error al iniciar sesión. Verifique sus credenciales.');\n console.error('Login error:', error);\n },\n });\n }\n }\n registerUser() {\n if (this.signupForm.valid) {\n this.isLoading.set(true);\n this.errorMessage.set(null);\n this.registerUseCase.execute(this.signupForm.value).subscribe({\n next: () => {\n this.isLoading.set(false);\n this.signupForm.reset();\n this.isLoginMode.set(true);\n },\n error: error => {\n this.isLoading.set(false);\n this.errorMessage.set('Error al registrar usuario. Intente nuevamente.');\n console.error('Register error:', error);\n },\n });\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: LoginComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.2\", type: LoginComponent, isStandalone: true, selector: \"acp-login\", inputs: { title: { classPropertyName: \"title\", publicName: \"title\", isSignal: true, isRequired: false, transformFunction: null }, showRegisterButton: { classPropertyName: \"showRegisterButton\", publicName: \"showRegisterButton\", isSignal: true, isRequired: false, transformFunction: null }, additionalSigninControls: { classPropertyName: \"additionalSigninControls\", publicName: \"additionalSigninControls\", isSignal: true, isRequired: false, transformFunction: null }, additionalSignupControls: { classPropertyName: \"additionalSignupControls\", publicName: \"additionalSignupControls\", isSignal: true, isRequired: false, transformFunction: null }, additionalSigninFields: { classPropertyName: \"additionalSigninFields\", publicName: \"additionalSigninFields\", isSignal: true, isRequired: false, transformFunction: null }, additionalSignupFields: { classPropertyName: \"additionalSignupFields\", publicName: \"additionalSignupFields\", isSignal: true, isRequired: false, transformFunction: null }, footerContent: { classPropertyName: \"footerContent\", publicName: \"footerContent\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<section id=\\\"wrapper\\\" class=\\\"d-flex justify-content-center align-items-center\\\">\\n <mat-card class=\\\"mat-elevation-z8 p-4 rounded\\\">\\n <mat-card-header>\\n <mat-card-title class=\\\"text-center\\\">{{ title() }}</mat-card-title>\\n </mat-card-header>\\n <mat-card-content>\\n @if (isLoginMode()) {\\n <form [formGroup]=\\\"signinForm\\\" (ngSubmit)=\\\"signIn()\\\" class=\\\"d-flex flex-column gap-3\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Usuario</mat-label>\\n <input matInput type=\\\"text\\\" placeholder=\\\"Ingrese su usuario\\\" formControlName=\\\"email\\\" />\\n </mat-form-field>\\n\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Contrase\\u00F1a</mat-label>\\n <input matInput type=\\\"password\\\" placeholder=\\\"Ingrese su contrase\\u00F1a\\\" formControlName=\\\"password\\\" />\\n </mat-form-field>\\n\\n <!-- Additional signin fields -->\\n <ng-container *ngTemplateOutlet=\\\"additionalSigninFields()\\\"></ng-container>\\n\\n <div class=\\\"d-flex justify-content-center mt-3\\\">\\n <button mat-raised-button color=\\\"primary\\\" [disabled]=\\\"!signinForm.valid || isLoading()\\\" type=\\\"submit\\\"\\n class=\\\"w-100\\\">\\n @if (isLoading()) {\\n Ingresando...\\n } @else {\\n <ng-container>Ingresar <mat-icon>login</mat-icon></ng-container>\\n }\\n </button>\\n </div>\\n\\n <div class=\\\"text-center mt-2\\\">\\n @if (showRegisterButton()) {\\n <button mat-button type=\\\"button\\\" (click)=\\\"switchMode()\\\">\\n \\u00BFNo tienes cuenta? Reg\\u00EDstrate\\n </button>\\n }\\n </div>\\n </form>\\n } @else {\\n <form [formGroup]=\\\"signupForm\\\" (ngSubmit)=\\\"registerUser()\\\" class=\\\"d-flex flex-column gap-3\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Nombre</mat-label>\\n <input matInput type=\\\"text\\\" placeholder=\\\"Ingrese su nombre\\\" formControlName=\\\"displayName\\\" />\\n </mat-form-field>\\n\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Email</mat-label>\\n <input matInput type=\\\"email\\\" placeholder=\\\"Ingrese su email\\\" formControlName=\\\"email\\\" />\\n </mat-form-field>\\n\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Contrase\\u00F1a</mat-label>\\n <input matInput type=\\\"password\\\" placeholder=\\\"Ingrese su contrase\\u00F1a\\\" formControlName=\\\"password\\\" />\\n </mat-form-field>\\n\\n <!-- Additional signup fields -->\\n <ng-container *ngTemplateOutlet=\\\"additionalSignupFields()\\\"></ng-container>\\n\\n <div class=\\\"d-flex justify-content-center mt-3\\\">\\n <button mat-raised-button color=\\\"primary\\\" [disabled]=\\\"!signupForm.valid || isLoading()\\\" type=\\\"submit\\\"\\n class=\\\"w-100\\\">\\n @if (isLoading()) {\\n Registrando...\\n } @else {\\n <ng-container>Registrarse <mat-icon>person_add</mat-icon></ng-container>\\n }\\n </button>\\n </div>\\n\\n <div class=\\\"text-center mt-2\\\">\\n <button mat-button type=\\\"button\\\" (click)=\\\"switchMode()\\\">\\u00BFYa tienes cuenta? Inicia sesi\\u00F3n</button>\\n </div>\\n </form>\\n }\\n @if (errorMessage()) {\\n <div class=\\\"alert alert-danger mt-3\\\" role=\\\"alert\\\">\\n {{ errorMessage() }}\\n </div>\\n }\\n </mat-card-content>\\n @if (hasFooterContent()) {\\n <mat-card-footer>\\n <ng-container *ngTemplateOutlet=\\\"footerContent()\\\"></ng-container>\\n </mat-card-footer>\\n }\\n </mat-card>\\n</section>\\n\", styles: [\"#wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--mdc-theme-primary, #5c5f5c) 0%,var(--mdc-theme-secondary, #79747e) 100%);padding:20px}mat-card{width:100%;max-width:400px;border-radius:12px;box-shadow:0 8px 32px #0000001a}mat-card-header{text-align:center;margin-bottom:20px}mat-card-title{font-size:24px;font-weight:600;color:var(--mdc-theme-on-surface, #1c1b1f)}mat-form-field{width:100%}.w-100{width:100%}.d-flex{display:flex}.flex-column{flex-direction:column}.gap-3{gap:12px}.justify-content-center{justify-content:center}.align-items-center{align-items:center}.mt-3{margin-top:12px}.mt-2{margin-top:8px}.text-center{text-align:center}.p-4{padding:16px}.rounded{border-radius:12px}.alert-danger{background-color:var(--mdc-theme-error-container, #ffdad6);border-color:var(--mdc-theme-error, #ba1a1a);color:var(--mdc-theme-on-error-container, #410002);padding:12px;border-radius:4px;border:1px solid transparent}.row{display:flex;flex-wrap:wrap;margin:0 -15px}.col-xs-12,.col-sm-12,.col-md-12{flex:0 0 100%;max-width:100%;padding:0 15px}.m-t-10{margin-top:10px}.social{display:flex;justify-content:center}mat-button{border-radius:8px}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: ReactiveFormsModule }, { kind: \"directive\", type: i2.ɵNgNoValidate, selector: \"form:not([ngNoForm]):not([ngNativeValidate])\" }, { kind: \"directive\", type: i2.DefaultValueAccessor, selector: \"input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]\" }, { kind: \"directive\", type: i2.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i2.NgControlStatusGroup, selector: \"[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]\" }, { kind: \"directive\", type: i2.FormGroupDirective, selector: \"[formGroup]\", inputs: [\"formGroup\"], outputs: [\"ngSubmit\"], exportAs: [\"ngForm\"] }, { kind: \"directive\", type: i2.FormControlName, selector: \"[formControlName]\", inputs: [\"formControlName\", \"disabled\", \"ngModel\"], outputs: [\"ngModelChange\"] }, { kind: \"component\", type: MatCard, selector: \"mat-card\", inputs: [\"appearance\"], exportAs: [\"matCard\"] }, { kind: \"component\", type: MatCardHeader, selector: \"mat-card-header\" }, { kind: \"directive\", type: MatLabel, selector: \"mat-label\" }, { kind: \"directive\", type: MatCardTitle, selector: \"mat-card-title, [mat-card-title], [matCardTitle]\" }, { kind: \"directive\", type: MatCardContent, selector: \"mat-card-content\" }, { kind: \"component\", type: MatFormField, selector: \"mat-form-field\", inputs: [\"hideRequiredMarker\", \"color\", \"floatLabel\", \"appearance\", \"subscriptSizing\", \"hintLabel\"], exportAs: [\"matFormField\"] }, { kind: \"directive\", type: MatInput, selector: \"input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]\", inputs: [\"disabled\", \"id\", \"placeholder\", \"name\", \"required\", \"type\", \"errorStateMatcher\", \"aria-describedby\", \"value\", \"readonly\", \"disabledInteractive\"], exportAs: [\"matInput\"] }, { kind: \"component\", type: MatIcon, selector: \"mat-icon\", inputs: [\"color\", \"inline\", \"svgIcon\", \"fontSet\", \"fontIcon\"], exportAs: [\"matIcon\"] }, { kind: \"component\", type: MatButton, selector: \" button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] \", inputs: [\"matButton\"], exportAs: [\"matButton\", \"matAnchor\"] }, { kind: \"directive\", type: MatCardFooter, selector: \"mat-card-footer\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.2\", ngImport: i0, type: LoginComponent, decorators: [{\n type: Component,\n args: [{ selector: 'acp-login', imports: [\n CommonModule,\n ReactiveFormsModule,\n MatCard,\n MatCardHeader,\n MatLabel,\n MatCardTitle,\n MatCardContent,\n MatFormField,\n MatInput,\n MatIcon,\n MatButton,\n MatCardFooter,\n MatAnchor,\n ], changeDetection: ChangeDetectionStrategy.OnPush, template: \"<section id=\\\"wrapper\\\" class=\\\"d-flex justify-content-center align-items-center\\\">\\n <mat-card class=\\\"mat-elevation-z8 p-4 rounded\\\">\\n <mat-card-header>\\n <mat-card-title class=\\\"text-center\\\">{{ title() }}</mat-card-title>\\n </mat-card-header>\\n <mat-card-content>\\n @if (isLoginMode()) {\\n <form [formGroup]=\\\"signinForm\\\" (ngSubmit)=\\\"signIn()\\\" class=\\\"d-flex flex-column gap-3\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Usuario</mat-label>\\n <input matInput type=\\\"text\\\" placeholder=\\\"Ingrese su usuario\\\" formControlName=\\\"email\\\" />\\n </mat-form-field>\\n\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Contrase\\u00F1a</mat-label>\\n <input matInput type=\\\"password\\\" placeholder=\\\"Ingrese su contrase\\u00F1a\\\" formControlName=\\\"password\\\" />\\n </mat-form-field>\\n\\n <!-- Additional signin fields -->\\n <ng-container *ngTemplateOutlet=\\\"additionalSigninFields()\\\"></ng-container>\\n\\n <div class=\\\"d-flex justify-content-center mt-3\\\">\\n <button mat-raised-button color=\\\"primary\\\" [disabled]=\\\"!signinForm.valid || isLoading()\\\" type=\\\"submit\\\"\\n class=\\\"w-100\\\">\\n @if (isLoading()) {\\n Ingresando...\\n } @else {\\n <ng-container>Ingresar <mat-icon>login</mat-icon></ng-container>\\n }\\n </button>\\n </div>\\n\\n <div class=\\\"text-center mt-2\\\">\\n @if (showRegisterButton()) {\\n <button mat-button type=\\\"button\\\" (click)=\\\"switchMode()\\\">\\n \\u00BFNo tienes cuenta? Reg\\u00EDstrate\\n </button>\\n }\\n </div>\\n </form>\\n } @else {\\n <form [formGroup]=\\\"signupForm\\\" (ngSubmit)=\\\"registerUser()\\\" class=\\\"d-flex flex-column gap-3\\\">\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Nombre</mat-label>\\n <input matInput type=\\\"text\\\" placeholder=\\\"Ingrese su nombre\\\" formControlName=\\\"displayName\\\" />\\n </mat-form-field>\\n\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Email</mat-label>\\n <input matInput type=\\\"email\\\" placeholder=\\\"Ingrese su email\\\" formControlName=\\\"email\\\" />\\n </mat-form-field>\\n\\n <mat-form-field class=\\\"w-100\\\">\\n <mat-label>Contrase\\u00F1a</mat-label>\\n <input matInput type=\\\"password\\\" placeholder=\\\"Ingrese su contrase\\u00F1a\\\" formControlName=\\\"password\\\" />\\n </mat-form-field>\\n\\n <!-- Additional signup fields -->\\n <ng-container *ngTemplateOutlet=\\\"additionalSignupFields()\\\"></ng-container>\\n\\n <div class=\\\"d-flex justify-content-center mt-3\\\">\\n <button mat-raised-button color=\\\"primary\\\" [disabled]=\\\"!signupForm.valid || isLoading()\\\" type=\\\"submit\\\"\\n class=\\\"w-100\\\">\\n @if (isLoading()) {\\n Registrando...\\n } @else {\\n <ng-container>Registrarse <mat-icon>person_add</mat-icon></ng-container>\\n }\\n </button>\\n </div>\\n\\n <div class=\\\"text-center mt-2\\\">\\n <button mat-button type=\\\"button\\\" (click)=\\\"switchMode()\\\">\\u00BFYa tienes cuenta? Inicia sesi\\u00F3n</button>\\n </div>\\n </form>\\n }\\n @if (errorMessage()) {\\n <div class=\\\"alert alert-danger mt-3\\\" role=\\\"alert\\\">\\n {{ errorMessage() }}\\n </div>\\n }\\n </mat-card-content>\\n @if (hasFooterContent()) {\\n <mat-card-footer>\\n <ng-container *ngTemplateOutlet=\\\"footerContent()\\\"></ng-container>\\n </mat-card-footer>\\n }\\n </mat-card>\\n</section>\\n\", styles: [\"#wrapper{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--mdc-theme-primary, #5c5f5c) 0%,var(--mdc-theme-secondary, #79747e) 100%);padding:20px}mat-card{width:100%;max-width:400px;border-radius:12px;box-shadow:0 8px 32px #0000001a}mat-card-header{text-align:center;margin-bottom:20px}mat-card-title{font-size:24px;font-weight:600;color:var(--mdc-theme-on-surface, #1c1b1f)}mat-form-field{width:100%}.w-100{width:100%}.d-flex{display:flex}.flex-column{flex-direction:column}.gap-3{gap:12px}.justify-content-center{justify-content:center}.align-items-center{align-items:center}.mt-3{margin-top:12px}.mt-2{margin-top:8px}.text-center{text-align:center}.p-4{padding:16px}.rounded{border-radius:12px}.alert-danger{background-color:var(--mdc-theme-error-container, #ffdad6);border-color:var(--mdc-theme-error, #ba1a1a);color:var(--mdc-theme-on-error-container, #410002);padding:12px;border-radius:4px;border:1px solid transparent}.row{display:flex;flex-wrap:wrap;margin:0 -15px}.col-xs-12,.col-sm-12,.col-md-12{flex:0 0 100%;max-width:100%;padding:0 15px}.m-t-10{margin-top:10px}.social{display:flex;justify-content:center}mat-button{border-radius:8px}\\n\"] }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9naW4uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmctYXV0aC9zcmMvbGliL3VpL2xvZ2luL2xvZ2luLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLWF1dGgvc3JjL2xpYi91aS9sb2dpbi9sb2dpbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwyREFBMkQ7QUFDM0QsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sUUFBUSxHQUdULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBRUwsV0FBVyxFQUNYLFVBQVUsRUFDVixtQkFBbUIsR0FFcEIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQ0wsT0FBTyxFQUNQLGNBQWMsRUFDZCxhQUFhLEVBQ2IsYUFBYSxFQUNiLFlBQVksR0FDYixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7QUF1QmhGLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLEtBQUssR0FBRyxLQUFLLENBQVMsT0FBTyxpREFBQyxDQUFDO0lBQy9CLGtCQUFr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QUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztnQkFDRCxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUU7b0JBQ2IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7b0JBQ3pFLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQzFDLENBQUM7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzt1R0FoR1UsY0FBYzsyRkFBZCxjQUFjLGdyQ0N2RDNCLDhpSEF5RkEsb3ZDRHBESSxZQUFZLHFNQUNaLG1CQUFtQiw2OEJBQ25CLE9BQU8sb0dBQ1AsYUFBYSw0REFDYixRQUFRLHNEQUNSLFlBQVksNkZBQ1osY0FBYyw2REFDZCxZQUFZLDRMQUNaLFFBQVEsd1ZBQ1IsT0FBTywySUFDUCxTQUFTLHlVQUNULGFBQWE7OzJGQU9KLGNBQWM7a0JBckIxQixTQUFTOytCQUNFLFdBQVcsV0FDWjt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsT0FBTzt3QkFDUCxhQUFhO3dCQUNiLFFBQVE7d0JBQ1IsWUFBWTt3QkFDWixjQUFjO3dCQUNkLFlBQVk7d0JBQ1osUUFBUTt3QkFDUixPQUFPO3dCQUNQLFNBQVM7d0JBQ1QsYUFBYTt3QkFDYixTQUFTO3FCQUNWLG1CQUdnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2xpYi9wcmVzZW50YXRpb24vY29tcG9uZW50cy9sb2dpbi9sb2dpbi5jb21wb25lbnQudHNcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbiAgZWZmZWN0LFxuICBjb21wdXRlZCxcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgRm9ybUdyb3VwLFxuICBGb3JtQnVpbGRlcixcbiAgVmFsaWRhdG9ycyxcbiAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgQWJzdHJhY3RDb250cm9sLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1xuICBNYXRDYXJkLFxuICBNYXRDYXJkQ29udGVudCxcbiAgTWF0Q2FyZEZvb3RlcixcbiAgTWF0Q2FyZEhlYWRlcixcbiAgTWF0Q2FyZFRpdGxlLFxufSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jYXJkJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgTWF0SWNvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0QW5jaG9yLCBNYXRCdXR0b24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTG9naW5Vc2VDYXNlIH0gZnJvbSAnLi4vLi4vYXBwbGljYXRpb24vdXNlLWNhc2VzL2xvZ2luLnVzZS1jYXNlJztcbmltcG9ydCB7IFJlZ2lzdGVyVXNlQ2FzZSB9IGZyb20gJy4uLy4uL2FwcGxpY2F0aW9uL3VzZS1jYXNlcy9yZWdpc3Rlci51c2UtY2FzZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FjcC1sb2dpbicsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBNYXRDYXJkLFxuICAgIE1hdENhcmRIZWFkZXIsXG4gICAgTWF0TGFiZWwsXG4gICAgTWF0Q2FyZFRpdGxlLFxuICAgIE1hdENhcmRDb250ZW50LFxuICAgIE1hdEZvcm1GaWVsZCxcbiAgICBNYXRJbnB1dCxcbiAgICBNYXRJY29uLFxuICAgIE1hdEJ1dHRvbixcbiAgICBNYXRDYXJkRm9vdGVyLFxuICAgIE1hdEFuY2hvcixcbiAgXSxcbiAgdGVtcGxhdGVVcmw6IGAuL2xvZ2luLmNvbXBvbmVudC5odG1sYCxcbiAgc3R5bGVVcmxzOiBbJy4vbG9naW4uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIExvZ2luQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgdGl0bGUgPSBpbnB1dDxzdHJpbmc+KCdMb2dpbicpO1xuICBzaG93UmVnaXN0ZXJCdXR0b24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcblxuICAvLyBBZGRpdGlvbmFsIGZvcm0gY29udHJvbHMgdGhhdCBjYW4gYmUgcGFzc2VkIGZyb20gcGFyZW50IGNvbXBvbmVudHNcbiAgYWRkaXRpb25hbFNpZ25pbkNvbnRyb2xzID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgQWJzdHJhY3RDb250cm9sPj4oe30pO1xuICBhZGRpdGlvbmFsU2lnbnVwQ29udHJvbHMgPSBpbnB1dDxSZWNvcmQ8c3RyaW5nLCBBYnN0cmFjdENvbnRyb2w+Pih7fSk7XG5cbiAgLy8gQWRkaXRpb25hbCBmaWVsZCB0ZW1wbGF0ZXNcbiAgYWRkaXRpb25hbFNpZ25pbkZpZWxkcyA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPihudWxsKTtcbiAgYWRkaXRpb25hbFNpZ251cEZpZWxkcyA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4gfCBudWxsPihudWxsKTtcblxuICAvLyBGb290ZXIgY29udGVudCB0ZW1wbGF0ZVxuICBmb290ZXJDb250ZW50ID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55PiB8IG51bGw+KG51bGwpO1xuXG4gIC8vIENvbXB1dGVkIHNpZ25hbCB0byBjaGVjayBpZiBmb290ZXIgY29udGVudCBleGlzdHNcbiAgaGFzRm9vdGVyQ29udGVudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZm9vdGVyQ29udGVudCgpICE9PSBudWxsKTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGZiID0gaW5qZWN0KEZvcm1CdWlsZGVyKTtcbiAgcHJpdmF0ZSByZWFkb25seSBsb2dpblVzZUNhc2UgPSBpbmplY3QoTG9naW5Vc2VDYXNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSByZWdpc3RlclVzZUNhc2UgPSBpbmplY3QoUmVnaXN0ZXJVc2VDYXNlKTtcblxuICAvLyBBbmd1bGFyIDIwKyBzaWduYWxzXG4gIGlzTG9naW5Nb2RlID0gc2lnbmFsKHRydWUpO1xuICBpc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICBlcnJvck1lc3NhZ2UgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgc2lnbmluRm9ybTogRm9ybUdyb3VwO1xuICBzaWdudXBGb3JtOiBGb3JtR3JvdXA7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zaWduaW5Gb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBlbWFpbDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF1dLFxuICAgICAgcGFzc3dvcmQ6IFsnJywgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgfSk7XG5cbiAgICB0aGlzLnNpZ251cEZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIGRpc3BsYXlOYW1lOiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgZW1haWw6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdXSxcbiAgICAgIHBhc3N3b3JkOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg2KV1dLFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gQWRkIGFkZGl0aW9uYWwgY29udHJvbHMgdG8gc2lnbmluIGZvcm1cbiAgICBPYmplY3QuZW50cmllcyh0aGlzLmFkZGl0aW9uYWxTaWduaW5Db250cm9scygpKS5mb3JFYWNoKChba2V5LCBjb250cm9sXSkgPT4ge1xuICAgICAgdGhpcy5zaWduaW5Gb3JtLmFkZENvbnRyb2woa2V5LCBjb250cm9sKTtcbiAgICB9KTtcblxuICAgIC8vIEFkZCBhZGRpdGlvbmFsIGNvbnRyb2xzIHRvIHNpZ251cCBmb3JtXG4gICAgT2JqZWN0LmVudHJpZXModGhpcy5hZGRpdGlvbmFsU2lnbnVwQ29udHJvbHMoKSkuZm9yRWFjaCgoW2tleSwgY29udHJvbF0pID0+IHtcbiAgICAgIHRoaXMuc2lnbnVwRm9ybS5hZGRDb250cm9sKGtleSwgY29udHJvbCk7XG4gICAgfSk7XG4gIH1cblxuICBzd2l0Y2hNb2RlKCk6IHZvaWQge1xuICAgIHRoaXMuaXNMb2dpbk1vZGUuc2V0KCF0aGlzLmlzTG9naW5Nb2RlKCkpO1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlLnNldChudWxsKTtcbiAgfVxuXG4gIHNpZ25JbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaWduaW5Gb3JtLnZhbGlkKSB7XG4gICAgICB0aGlzLmlzTG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZS5zZXQobnVsbCk7XG5cbiAgICAgIHRoaXMubG9naW5Vc2VDYXNlLmV4ZWN1dGUodGhpcy5zaWduaW5Gb3JtLnZhbHVlKS5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmlzTG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlLnNldCgnRXJyb3IgYWwgaW5pY2lhciBzZXNpw7NuLiBWZXJpZmlxdWUgc3VzIGNyZWRlbmNpYWxlcy4nKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCdMb2dpbiBlcnJvcjonLCBlcnJvcik7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICByZWdpc3RlclVzZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2lnbnVwRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2Uuc2V0KG51bGwpO1xuXG4gICAgICB0aGlzLnJlZ2lzdGVyVXNlQ2FzZS5leGVjdXRlKHRoaXMuc2lnbnVwRm9ybS52YWx1ZSkuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKCkgPT4ge1xuICAgICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgICAgdGhpcy5zaWdudXBGb3JtLnJlc2V0KCk7XG4gICAgICAgICAgdGhpcy5pc0xvZ2luTW9kZS5zZXQodHJ1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiBlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgICAgICB0aGlzLmVycm9yTWVzc2FnZS5zZXQoJ0Vycm9yIGFsIHJlZ2lzdHJhciB1c3VhcmlvLiBJbnRlbnRlIG51ZXZhbWVudGUuJyk7XG4gICAgICAgICAgY29uc29sZS5lcnJvcignUmVnaXN0ZXIgZXJyb3I6JywgZXJyb3IpO1xuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8c2VjdGlvbiBpZD1cIndyYXBwZXJcIiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICA8bWF0LWNhcmQgY2xhc3M9XCJtYXQtZWxldmF0aW9uLXo4IHAtNCByb3VuZGVkXCI+XG4gICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgIDxtYXQtY2FyZC10aXRsZSBjbGFzcz1cInRleHQtY2VudGVyXCI+e3sgdGl0bGUoKSB9fTwvbWF0LWNhcmQtdGl0bGU+XG4gICAgPC9tYXQtY2FyZC1oZWFkZXI+XG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICBAaWYgKGlzTG9naW5Nb2RlKCkpIHtcbiAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwic2lnbmluRm9ybVwiIChuZ1N1Ym1pdCk9XCJzaWduSW4oKVwiIGNsYXNzPVwiZC1mbGV4IGZsZXgtY29sdW1uIGdhcC0zXCI+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5Vc3VhcmlvPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJJbmdyZXNlIHN1IHVzdWFyaW9cIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICA8bWF0LWxhYmVsPkNvbnRyYXNlw7FhPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJwYXNzd29yZFwiIHBsYWNlaG9sZGVyPVwiSW5ncmVzZSBzdSBjb250cmFzZcOxYVwiIGZvcm1Db250cm9sTmFtZT1cInBhc3N3b3JkXCIgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8IS0tIEFkZGl0aW9uYWwgc2lnbmluIGZpZWxkcyAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImFkZGl0aW9uYWxTaWduaW5GaWVsZHMoKVwiPjwvbmctY29udGFpbmVyPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBtdC0zXCI+XG4gICAgICAgICAgPGJ1dHRvbiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiBbZGlzYWJsZWRdPVwiIXNpZ25pbkZvcm0udmFsaWQgfHwgaXNMb2FkaW5nKClcIiB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgIEBpZiAoaXNMb2FkaW5nKCkpIHtcbiAgICAgICAgICAgIEluZ3Jlc2FuZG8uLi5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lcj5JbmdyZXNhciA8bWF0LWljb24+bG9naW48L21hdC1pY29uPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbXQtMlwiPlxuICAgICAgICAgIEBpZiAoc2hvd1JlZ2lzdGVyQnV0dG9uKCkpIHtcbiAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzd2l0Y2hNb2RlKClcIj5cbiAgICAgICAgICAgIMK/Tm8gdGllbmVzIGN1ZW50YT8gUmVnw61zdHJhdGVcbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInNpZ251cEZvcm1cIiAobmdTdWJtaXQpPVwicmVnaXN0ZXJVc2VyKClcIiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+Tm9tYnJlPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCJJbmdyZXNlIHN1IG5vbWJyZVwiIGZvcm1Db250cm9sTmFtZT1cImRpc3BsYXlOYW1lXCIgLz5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+RW1haWw8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgdHlwZT1cImVtYWlsXCIgcGxhY2Vob2xkZXI9XCJJbmdyZXNlIHN1IGVtYWlsXCIgZm9ybUNvbnRyb2xOYW1lPVwiZW1haWxcIiAvPlxuICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5Db250cmFzZcOxYTwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwicGFzc3dvcmRcIiBwbGFjZWhvbGRlcj1cIkluZ3Jlc2Ugc3UgY29udHJhc2XDsWFcIiBmb3JtQ29udHJvbE5hbWU9XCJwYXNzd29yZFwiIC8+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPCEtLSBBZGRpdGlvbmFsIHNpZ251cCBmaWVsZHMgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJhZGRpdGlvbmFsU2lnbnVwRmllbGRzKClcIj48L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgbXQtM1wiPlxuICAgICAgICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gY29sb3I9XCJwcmltYXJ5XCIgW2Rpc2FibGVkXT1cIiFzaWdudXBGb3JtLnZhbGlkIHx8IGlzTG9hZGluZygpXCIgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgICAgICAgICBSZWdpc3RyYW5kby4uLlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyPlJlZ2lzdHJhcnNlIDxtYXQtaWNvbj5wZXJzb25fYWRkPC9tYXQtaWNvbj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtY2VudGVyIG10LTJcIj5cbiAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzd2l0Y2hNb2RlKClcIj7Cv1lhIHRpZW5lcyBjdWVudGE/IEluaWNpYSBzZXNpw7NuPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9mb3JtPlxuICAgICAgfVxuICAgICAgQGlmIChlcnJvck1lc3NhZ2UoKSkge1xuICAgICAgPGRpdiBjbGFzcz1cImFsZXJ0IGFsZXJ0LWRhbmdlciBtdC0zXCIgcm9sZT1cImFsZXJ0XCI+XG4gICAgICAgIHt7IGVycm9yTWVzc2FnZSgpIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG4gICAgQGlmIChoYXNGb290ZXJDb250ZW50KCkpIHtcbiAgICA8bWF0LWNhcmQtZm9vdGVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlckNvbnRlbnQoKVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LWNhcmQtZm9vdGVyPlxuICAgIH1cbiAgPC9tYXQtY2FyZD5cbjwvc2VjdGlvbj5cbiJdfQ==","// src/lib/presentation/components/index.ts\nexport { LoginComponent } from './login.component';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvdWkvbG9naW4vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsMkNBQTJDO0FBQzNDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9saWIvcHJlc2VudGF0aW9uL2NvbXBvbmVudHMvaW5kZXgudHNcbmV4cG9ydCB7IExvZ2luQ29tcG9uZW50IH0gZnJvbSAnLi9sb2dpbi5jb21wb25lbnQnO1xuIl19","// src/lib/presentation/index.ts\nexport * from './stores';\nexport * from './login';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvdWkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsZ0NBQWdDO0FBQ2hDLGNBQWMsVUFBVSxDQUFDO0FBQ3pCLGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2xpYi9wcmVzZW50YXRpb24vaW5kZXgudHNcbmV4cG9ydCAqIGZyb20gJy4vc3RvcmVzJztcbmV4cG9ydCAqIGZyb20gJy4vbG9naW4nO1xuIl19","import { AuthRepository } from '../domain/repositories/auth.repository';\nimport { AuthHttpRepository } from '../data/repositories/auth-http.repository';\nexport const authProviders = [\n {\n provide: AuthRepository,\n useClass: AuthHttpRepository,\n },\n];\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aC5wcm92aWRlcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvcHJvdmlkZXJzL2F1dGgucHJvdmlkZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUUvRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQWU7SUFDdkM7UUFDRSxPQUFPLEVBQUUsY0FBYztRQUN2QixRQUFRLEVBQUUsa0JBQWtCO0tBQzdCO0NBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIHNyYy9saWIvcHJvdmlkZXJzL2F1dGgucHJvdmlkZXJzLnRzXG5pbXBvcnQgeyBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXV0aFJlcG9zaXRvcnkgfSBmcm9tICcuLi9kb21haW4vcmVwb3NpdG9yaWVzL2F1dGgucmVwb3NpdG9yeSc7XG5pbXBvcnQgeyBBdXRoSHR0cFJlcG9zaXRvcnkgfSBmcm9tICcuLi9kYXRhL3JlcG9zaXRvcmllcy9hdXRoLWh0dHAucmVwb3NpdG9yeSc7XG5cbmV4cG9ydCBjb25zdCBhdXRoUHJvdmlkZXJzOiBQcm92aWRlcltdID0gW1xuICB7XG4gICAgcHJvdmlkZTogQXV0aFJlcG9zaXRvcnksXG4gICAgdXNlQ2xhc3M6IEF1dGhIdHRwUmVwb3NpdG9yeSxcbiAgfSxcbl07XG4iXX0=","// src/lib/providers/index.ts\nexport * from './auth.providers';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9saWIvcHJvdmlkZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDZCQUE2QjtBQUM3QixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gc3JjL2xpYi9wcm92aWRlcnMvaW5kZXgudHNcbmV4cG9ydCAqIGZyb20gJy4vYXV0aC5wcm92aWRlcnMnO1xuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvbnRwbHVzLW5nLWF1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1hdXRoL3NyYy9hY29udHBsdXMtbmctYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1.TokenRepository"],"mappings":"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"}
|