{"version":3,"sources":["package.json","node_modules/ngx-cookie-service/fesm2022/ngx-cookie-service.mjs","src/app/services/auth/auth.service.ts"],"sourcesContent":["{\r\n \"name\": \"moje-gwo-fe-new\",\r\n \"version\": \"1.4.2\",\r\n \"scripts\": {\r\n \"ng\": \"ng\",\r\n \"start\": \"ng serve\",\r\n \"build\": \"ng build\",\r\n \"build:test\": \"ng build --configuration test\",\r\n \"build:dev\": \"ng build --configuration develop\",\r\n \"watch\": \"ng build --watch --configuration test\",\r\n \"test\": \"ng test\",\r\n \"test-ci\": \"ng test --no-watch --no-progress --code-coverage --browsers=GitlabHeadlessChrome\"\r\n },\r\n \"private\": true,\r\n \"dependencies\": {\r\n \"@angular/animations\": \"^17.1.0\",\r\n \"@angular/cdk\": \"^17.1.2\",\r\n \"@angular/common\": \"^17.1.0\",\r\n \"@angular/compiler\": \"^17.1.0\",\r\n \"@angular/core\": \"^17.1.0\",\r\n \"@angular/forms\": \"^17.1.0\",\r\n \"@angular/material\": \"^17.1.2\",\r\n \"@angular/platform-browser\": \"^17.1.0\",\r\n \"@angular/platform-browser-dynamic\": \"^17.1.0\",\r\n \"@angular/router\": \"^17.1.0\",\r\n \"@ngrx/effects\": \"^17.1.1\",\r\n \"@ngrx/store\": \"^17.1.1\",\r\n \"@ngrx/store-devtools\": \"^17.1.1\",\r\n \"@sentry/angular\": \"^8.37.1\",\r\n \"http-method-enum\": \"^1.0.0\",\r\n \"jquery\": \"^3.7.1\",\r\n \"lighthouse\": \"^12.2.2\",\r\n \"ng-http-loader\": \"^15.0.0\",\r\n \"ngx-cookie-service\": \"^17.1.0\",\r\n \"ngx-infinite-scroll\": \"^17.0.1\",\r\n \"ngx-loading\": \"^17.0.0\",\r\n \"ngx-slick-carousel\": \"^17.0.0\",\r\n \"rxjs\": \"~7.8.0\",\r\n \"slick-carousel\": \"^1.8.1\",\r\n \"tslib\": \"^2.3.0\",\r\n \"zone.js\": \"~0.14.3\"\r\n },\r\n \"devDependencies\": {\r\n \"@angular-devkit/build-angular\": \"^17.1.1\",\r\n \"@angular/cli\": \"^17.1.1\",\r\n \"@angular/compiler-cli\": \"^17.1.0\",\r\n \"@types/jasmine\": \"~5.1.0\",\r\n \"jasmine-core\": \"~5.1.0\",\r\n \"karma\": \"~6.4.0\",\r\n \"karma-chrome-launcher\": \"~3.2.0\",\r\n \"karma-coverage\": \"~2.2.0\",\r\n \"karma-jasmine\": \"~5.1.0\",\r\n \"karma-jasmine-html-reporter\": \"~2.1.0\",\r\n \"karma-junit-reporter\": \"^2.0.1\",\r\n \"typescript\": \"~5.3.2\"\r\n }\r\n}\r\n","import * as i0 from '@angular/core';\nimport { PLATFORM_ID, Injectable, Inject } from '@angular/core';\nimport { isPlatformBrowser, DOCUMENT } from '@angular/common';\n\n// This service is based on the `ng2-cookies` package which sadly is not a service and does\n// not use `DOCUMENT` injection and therefore doesn't work well with AoT production builds.\n// Package: https://github.com/BCJTI/ng2-cookies\nlet CookieService = /*#__PURE__*/(() => {\n class CookieService {\n constructor(document,\n // Get the `PLATFORM_ID` so we can check if we're in a browser.\n platformId) {\n this.document = document;\n this.platformId = platformId;\n this.documentIsAccessible = isPlatformBrowser(this.platformId);\n }\n /**\n * Get cookie Regular Expression\n *\n * @param name Cookie name\n * @returns property RegExp\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n static getCookieRegExp(name) {\n const escapedName = name.replace(/([\\[\\]{}()|=;+?,.*^$])/gi, '\\\\$1');\n return new RegExp('(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');\n }\n /**\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @param encodedURIComponent A value representing an encoded URI component.\n *\n * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n static safeDecodeURIComponent(encodedURIComponent) {\n try {\n return decodeURIComponent(encodedURIComponent);\n } catch {\n // probably it is not uri encoded. return as is\n return encodedURIComponent;\n }\n }\n /**\n * Return `true` if {@link Document} is accessible, otherwise return `false`\n *\n * @param name Cookie name\n * @returns boolean - whether cookie with specified name exists\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n check(name) {\n if (!this.documentIsAccessible) {\n return false;\n }\n name = encodeURIComponent(name);\n const regExp = CookieService.getCookieRegExp(name);\n return regExp.test(this.document.cookie);\n }\n /**\n * Get cookies by name\n *\n * @param name Cookie name\n * @returns property value\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n get(name) {\n if (this.documentIsAccessible && this.check(name)) {\n name = encodeURIComponent(name);\n const regExp = CookieService.getCookieRegExp(name);\n const result = regExp.exec(this.document.cookie);\n return result[1] ? CookieService.safeDecodeURIComponent(result[1]) : '';\n } else {\n return '';\n }\n }\n /**\n * Get all cookies in JSON format\n *\n * @returns all the cookies in json\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n getAll() {\n if (!this.documentIsAccessible) {\n return {};\n }\n const cookies = {};\n const document = this.document;\n if (document.cookie && document.cookie !== '') {\n document.cookie.split(';').forEach(currentCookie => {\n const [cookieName, cookieValue] = currentCookie.split('=');\n cookies[CookieService.safeDecodeURIComponent(cookieName.replace(/^ /, ''))] = CookieService.safeDecodeURIComponent(cookieValue);\n });\n }\n return cookies;\n }\n set(name, value, expiresOrOptions, path, domain, secure, sameSite, partitioned) {\n if (!this.documentIsAccessible) {\n return;\n }\n if (typeof expiresOrOptions === 'number' || expiresOrOptions instanceof Date || path || domain || secure || sameSite) {\n const optionsBody = {\n expires: expiresOrOptions,\n path,\n domain,\n secure,\n sameSite: sameSite ? sameSite : 'Lax',\n partitioned\n };\n this.set(name, value, optionsBody);\n return;\n }\n let cookieString = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';\n const options = expiresOrOptions ? expiresOrOptions : {};\n if (options.expires) {\n if (typeof options.expires === 'number') {\n const dateExpires = new Date(new Date().getTime() + options.expires * 1000 * 60 * 60 * 24);\n cookieString += 'expires=' + dateExpires.toUTCString() + ';';\n } else {\n cookieString += 'expires=' + options.expires.toUTCString() + ';';\n }\n }\n if (options.path) {\n cookieString += 'path=' + options.path + ';';\n }\n if (options.domain) {\n cookieString += 'domain=' + options.domain + ';';\n }\n if (options.secure === false && options.sameSite === 'None') {\n options.secure = true;\n console.warn(`[ngx-cookie-service] Cookie ${name} was forced with secure flag because sameSite=None.` + `More details : https://github.com/stevermeister/ngx-cookie-service/issues/86#issuecomment-597720130`);\n }\n if (options.secure) {\n cookieString += 'secure;';\n }\n if (!options.sameSite) {\n options.sameSite = 'Lax';\n }\n cookieString += 'sameSite=' + options.sameSite + ';';\n if (options.partitioned) {\n cookieString += 'Partitioned;';\n }\n this.document.cookie = cookieString;\n }\n /**\n * Delete cookie by name\n *\n * @param name Cookie name\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Cookie secure flag\n * @param sameSite Cookie sameSite flag - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n delete(name, path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const expiresDate = new Date('Thu, 01 Jan 1970 00:00:01 GMT');\n this.set(name, '', {\n expires: expiresDate,\n path,\n domain,\n secure,\n sameSite\n });\n }\n /**\n * Delete all cookies\n *\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Is the Cookie secure\n * @param sameSite Is the cookie same site\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n deleteAll(path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const cookies = this.getAll();\n for (const cookieName in cookies) {\n if (cookies.hasOwnProperty(cookieName)) {\n this.delete(cookieName, path, domain, secure, sameSite);\n }\n }\n }\n static {\n this.ɵfac = function CookieService_Factory(t) {\n return new (t || CookieService)(i0.ɵɵinject(DOCUMENT), i0.ɵɵinject(PLATFORM_ID));\n };\n }\n static {\n this.ɵprov = /* @__PURE__ */i0.ɵɵdefineInjectable({\n token: CookieService,\n factory: CookieService.ɵfac,\n providedIn: 'root'\n });\n }\n }\n return CookieService;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/*\n * Public API Surface of ngx-cookie-service\n */\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { CookieService };\n","import {Injectable, OnDestroy} from '@angular/core';\nimport {BehaviorSubject, Observable} from 'rxjs';\nimport {CookieService} from 'ngx-cookie-service';\nimport {environment} from \"../../../environments/environment\";\nimport {HttpClient} from \"@angular/common/http\";\nimport {Store} from \"@ngrx/store\";\nimport {AppState} from \"../../core/store/reducers\";\nimport {ErrorActions, UserActions} from \"../../core/store/actions\";\nimport {UserModel} from \"../../models/interfaces/user-model\";\nimport {ANNOUNCEMENT_URL, DICTIONARY_URL, USER_INFO_URL} from \"../../models/const/api\";\nimport {DictionaryModel} from \"../../models/interfaces/dictionary-model\";\nimport {AnnouncementModelApi} from \"../../models/interfaces/notification-model\";\n\n@Injectable({providedIn: 'root'})\nexport class AuthService implements OnDestroy {\n private readonly tokenBS = new BehaviorSubject(null);\n\n private readonly token$ = this.tokenBS.asObservable();\n\n private tokenSubscription = this.token$.subscribe((token) => {\n if (!token?.length) {\n return this.notifyUserLoginError();\n }\n\n this.initUser(token);\n });\n\n constructor(\n private readonly cookieService: CookieService,\n private readonly httpClient: HttpClient,\n private readonly store: Store,\n ) {\n }\n\n init(): void {\n const authToken = this.cookieService.get(environment.cookieName);\n this.tokenBS.next(authToken);\n }\n\n initUser(token: string): void {\n this.setAuthCookieWatcher();\n this.store.dispatch(UserActions.initUser({token}));\n }\n\n setAuthCookieWatcher(): void {\n setInterval(() => { /** @todo find more elegant solution */\n if (this.cookieService.get(environment.cookieName) !== this.tokenBS.getValue()) {\n this.notifyUserAuthExpired();\n }\n }, 1500);\n }\n\n removeUserCookie(): void {\n this.cookieService.delete(environment.cookieName, '/', environment.domainName, false, 'Lax');\n }\n\n getUserData(): Observable {\n return this.httpClient.get(USER_INFO_URL)\n }\n\n getUserAnnouncement(): Observable {\n return this.httpClient.get(ANNOUNCEMENT_URL)\n }\n\n getDictionary(): Observable {\n return this.httpClient.get(DICTIONARY_URL)\n }\n\n notifyUserAuthExpired(): void {\n this.store.dispatch(ErrorActions.userAuthenticationExpiredError());\n }\n\n notifyUserLoginError(): void {\n this.store.dispatch(ErrorActions.userAuthenticationError());\n }\n\n ngOnDestroy(): void {\n this.tokenSubscription.unsubscribe();\n }\n}\n"],"mappings":"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","names":["package_default","CookieService","_CookieService","document","platformId","isPlatformBrowser","name","escapedName","encodedURIComponent","result","cookies","currentCookie","cookieName","cookieValue","value","expiresOrOptions","path","domain","secure","sameSite","partitioned","optionsBody","cookieString","options","dateExpires","expiresDate","ɵɵinject","DOCUMENT","PLATFORM_ID","ɵɵdefineInjectable","AuthService","constructor","cookieService","httpClient","store","tokenBS","BehaviorSubject","token$","asObservable","tokenSubscription","subscribe","token","length","notifyUserLoginError","initUser","init","authToken","get","environment","cookieName","next","setAuthCookieWatcher","dispatch","UserActions","setInterval","getValue","notifyUserAuthExpired","removeUserCookie","delete","domainName","getUserData","USER_INFO_URL","getUserAnnouncement","ANNOUNCEMENT_URL","getDictionary","DICTIONARY_URL","ErrorActions","userAuthenticationExpiredError","userAuthenticationError","ngOnDestroy","unsubscribe","ɵɵinject","CookieService","HttpClient","Store","factory","ɵfac","providedIn","_AuthService"],"x_google_ignoreList":[1]}