@posiwise/common-services 0.1.78 → 0.1.80
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/esm2022/index.mjs +2 -1
- package/esm2022/lib/auth.service.mjs +7 -1
- package/esm2022/lib/seo.service.mjs +43 -0
- package/fesm2022/posiwise-common-services.mjs +47 -1
- package/fesm2022/posiwise-common-services.mjs.map +1 -1
- package/index.d.ts +1 -0
- package/lib/auth.service.d.ts +4 -0
- package/lib/seo.service.d.ts +16 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"posiwise-common-services.mjs","sources":["../../../../libs/common-services/src/lib/script-loader.service.ts","../../../../libs/common-services/src/lib/google-analytics.service.ts","../../../../libs/common-services/src/lib/toast.service.ts","../../../../libs/common-services/src/lib/base-http.service.ts","../../../../libs/common-services/src/lib/integrations-api-http.service.ts","../../../../libs/common-services/src/lib/local-storage.service.ts","../../../../libs/common-services/src/lib/main-api-http.service.ts","../../../../libs/common-services/src/lib/secure-token-storage.service.ts","../../../../libs/common-services/src/lib/user.service.ts","../../../../libs/common-services/src/lib/auth.service.ts","../../../../libs/common-services/src/lib/effects/user.effects.ts","../../../../libs/common-services/src/lib/common-services.module.ts","../../../../libs/common-services/src/lib/permission.service.ts","../../../../libs/common-services/src/lib/link-loader.service.ts","../../../../libs/common-services/src/lib/custom-preloading.service.ts","../../../../libs/common-services/src/lib/ab-test.service.ts","../../../../libs/common-services/src/lib/geo.service.ts","../../../../libs/common-services/src/lib/profile.service.ts","../../../../libs/common-services/src/lib/subscription.service.ts","../../../../libs/common-services/src/lib/product.service.ts","../../../../libs/common-services/src/lib/validation.service.ts","../../../../libs/common-services/src/lib/form-helper.service.ts","../../../../libs/common-services/src/lib/ahoy.service.ts","../../../../libs/common-services/src/lib/common.service.ts","../../../../libs/common-services/src/lib/date-formatter.service.ts","../../../../libs/common-services/src/lib/primeNgHelper.ts","../../../../libs/common-services/src/lib/tag.service.ts","../../../../libs/common-services/src/lib/tips.service.ts","../../../../libs/common-services/src/lib/window.service.ts","../../../../libs/common-services/src/lib/group.service.ts","../../../../libs/common-services/src/lib/qualification.service.ts","../../../../libs/common-services/src/lib/dashboard.service.ts","../../../../libs/common-services/src/lib/mailbox.service.ts","../../../../libs/common-services/src/lib/socket.service.ts","../../../../libs/common-services/src/lib/notification.service.ts","../../../../libs/common-services/src/lib/data.service.ts","../../../../libs/common-services/src/lib/number-picker.service.ts","../../../../libs/common-services/src/lib/sentry.service.ts","../../../../libs/common-services/src/lib/logo-caching.service.ts","../../../../libs/common-services/src/lib/hopscotch.service.ts","../../../../libs/common-services/src/lib/brain-api-http.service.ts","../../../../libs/common-services/src/lib/brain.service.ts","../../../../libs/common-services/src/index.ts","../../../../libs/common-services/src/posiwise-common-services.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\ninterface Script {\n src: string;\n loaded: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScriptLoaderService {\n private _scripts: { [key: string]: Script } = {};\n\n constructor(@Inject(DOCUMENT) private readonly document: Document) {}\n\n load(tag, ...scripts: string[]) {\n scripts.forEach((src: string) => {\n if (!this._scripts[src]) {\n this._scripts[src] = { src, loaded: false };\n }\n });\n\n const promises: object[] = [];\n scripts.forEach(src => promises.push(this.loadScript(tag, src)));\n\n return Promise.all(promises);\n }\n\n loadScripts(tag, scripts, loadOnce?: boolean) {\n loadOnce = loadOnce || false;\n\n scripts.forEach((script: string) => {\n if (!this._scripts[script]) {\n this._scripts[script] = { src: script, loaded: false };\n }\n });\n\n const promises: object[] = [];\n scripts.forEach(script => promises.push(this.loadScript(tag, script, loadOnce)));\n\n return Promise.all(promises);\n }\n\n loadScript(tag, src: string, loadOnce?: boolean) {\n const isLoad = loadOnce || false;\n\n if (!this._scripts[src]) {\n this._scripts[src] = { src, loaded: false };\n }\n\n return new Promise((resolve, _reject) => {\n // resolve if already loaded\n if (this._scripts[src].loaded && isLoad) {\n // NOSONAR\n resolve({ src, loaded: true });\n } else {\n // load script tag\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = this._scripts[src].src;\n\n scriptTag.onload = () => {\n this._scripts[src].loaded = true;\n resolve({ src, loaded: true });\n };\n\n scriptTag.onerror = () => {\n // Handle script loading error (if needed)\n console.error(`Failed to load script: ${src}`);\n resolve({ src, loaded: false });\n };\n\n document.getElementsByTagName(tag)[0].appendChild(scriptTag);\n }\n });\n }\n\n loadStyle(styleUrl: string) {\n const head = this.document.getElementsByTagName('head')[0];\n\n const style = this.document.createElement('link');\n style.id = 'client-theme';\n style.rel = 'stylesheet';\n style.href = styleUrl;\n\n head.appendChild(style);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\n\nimport { Subscription } from 'rxjs';\n\nimport { ScriptLoaderService } from './script-loader.service';\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ga: any;\n }\n}\n\n@Injectable()\nexport class GoogleAnalyticsService {\n private static trackingId: string;\n private subscription: Subscription;\n\n constructor(\n private readonly router: Router,\n private readonly scriptLoader: ScriptLoaderService,\n private readonly appConfigService: AppConfigService\n ) {}\n\n private isGaAvailable(): boolean {\n return typeof window.ga !== 'undefined';\n }\n\n loadGScript(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (this.isGaAvailable()) {\n resolve(); // GA is already loaded, no need to load again.\n return;\n }\n this.appConfigService.appConfig$.subscribe(config => {\n this.scriptLoader\n .loadScript('head', 'https://www.google-analytics.com/analytics.js', true)\n .then(() => {\n this.pushArgumentsGA();\n window.ga.l = Date.now();\n GoogleAnalyticsService.trackingId = config.integrations.google_analytics;\n window.ga('create', GoogleAnalyticsService.trackingId, 'auto');\n resolve(); // Resolve the promise once the script is loaded and ga is initialized\n })\n .catch(error => {\n console.error('Error loading Google Analytics script:', error);\n reject(error instanceof Error ? error : new Error(error));\n });\n });\n });\n }\n\n pushArgumentsGA() {\n if (typeof window.ga === 'undefined') {\n window.ga = function (...args) {\n window.ga.q ??= [];\n window.ga.q.push(args);\n };\n window.ga.q = [];\n window.ga.l = +new Date();\n }\n }\n\n private addOneTimeTrackingListeners(url: string): void {\n const handler = () => {\n if (this.isGaAvailable()) {\n window.ga('set', 'page', url);\n window.ga('send', 'pageview');\n }\n };\n\n ['mousemove', 'scroll', 'touchstart'].forEach(eventName => {\n window.addEventListener(eventName, handler, { once: true });\n });\n }\n\n subscribe() {\n this.subscription ??= this.router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n // Ensure that the Google Analytics script is loaded before using the ga function\n this.loadGScript().then(() => {\n try {\n this.addOneTimeTrackingListeners(e.urlAfterRedirects);\n } catch {\n console.error('Tracking not found -- make sure you installed the scripts');\n }\n });\n }\n });\n }\n\n /**\n * Emit google analytics event\n * Fire event example:\n * this.sendEvent(\"testCategory\", \"testAction\", \"testLabel\", 10);\n * @param {string} eventCategory\n * @param {string} eventAction\n * @param {string} eventLabel\n * @param {number} eventValue\n */\n sendEvent(\n eventCategory: string,\n eventAction: string,\n eventLabel: string = null,\n eventValue: number = null\n ) {\n if (this.isGaAvailable()) {\n window.ga('send', 'event', {\n eventCategory,\n eventAction,\n eventLabel,\n eventValue\n });\n } else {\n console.error('Google Analytics tracking not available.');\n }\n }\n\n /**\n * Enable UserId Tracking for Google Analytics\n * @param user\n */\n setUserContext(user) {\n if (GoogleAnalyticsService.trackingId) {\n if (this.isGaAvailable()) {\n window.ga('set', 'userId', user?.id);\n }\n }\n }\n\n unsubscribe() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomToastService {\n constructor(private readonly toastr: ToastrService) {}\n\n success(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n if (message) {\n this.toastr.success(message, title, { ...options, timeOut: 10000 });\n }\n }\n\n error(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n options = {\n ...options,\n timeOut: 20000\n };\n if (message) {\n this.toastr.error(message, title, options);\n }\n }\n\n info(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n // disable auto timeout, toast would close on click (to disable auto timeout please use this attribute disableTimeOut:true in options)\n options = { ...options, timeOut: 30000, enableHtml: true };\n if (message) {\n this.toastr.info(\n `<div class=\"d-flex align-items-center\">\n <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\n <div>${message}</div>\n </div>`,\n title,\n options\n );\n }\n }\n\n warning(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n // disable auto timeout, toast would close on click (to disable auto timeout please use this attribute disableTimeOut:true in options)\n options = { ...options, timeOut: 30000 };\n if (message) {\n this.toastr.warning(message, title, options);\n }\n }\n\n showToast(errorResponse) {\n const message = HelperService.getErrorMessage(errorResponse.error);\n\n // clear all the toastr before showing something went wrong\n if (errorResponse.message?.includes('Something went wrong')) {\n this.clear();\n }\n if (errorResponse?.status === 503) {\n this.error(errorResponse?.error, '', { enableHtml: true });\n }\n\n this.showToastrOnType(errorResponse?.error?.type, message);\n }\n\n clear() {\n this.toastr.clear();\n }\n\n showToastrOnType(type: string, message: string): void {\n if (!message || !type) {\n return;\n }\n\n switch (type) {\n case 'success':\n this.success(message);\n break;\n case 'error':\n this.error(message);\n break;\n case 'info':\n this.info(message);\n break;\n case 'warning':\n this.warning(message);\n break;\n default:\n this.error(message);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { CustomToastService } from './toast.service';\n\n@Injectable()\nexport abstract class BaseHttpService {\n protected baseUrl = '';\n\n private readonly toast: CustomToastService;\n\n abstract getConfig(): void;\n\n constructor(\n public http: HttpClient,\n public injector: Injector\n ) {\n this.getConfig();\n this.toast = injector.get(CustomToastService);\n }\n\n get<T>(url): Observable<any> {\n return this.http.get<T>(`${this.baseUrl}${url}`).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getWithParams<T>(url, params): Observable<any> {\n // eslint-disable-next-line no-restricted-syntax\n for (const k in params) {\n // Sending a param as \"null\" or \"undefined\" makes the value a string called \"null\"\n // or \"undefined\" which is not what we want. In such cases, just don't sent any param.\n if ([null, undefined].includes(params[k])) {\n delete params[k];\n }\n }\n\n return this.http.get<T>(`${this.baseUrl}${url}`, { params }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n post<T>(url, params = {}): Observable<any> {\n return this.http.post<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n put<T>(url, params = {}): Observable<any> {\n return this.http.put<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n patch<T>(url, params = {}): Observable<any> {\n return this.http.patch<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n delete<T>(url, option = {}): Observable<any> {\n return this.http.delete<T>(`${this.baseUrl}${url}`, option).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n upload(url, file: File, param): Observable<any> {\n const formData = new FormData();\n formData.append(param, file);\n const headers = new HttpHeaders({ enctype: 'multipart/form-data' });\n\n return this.http.put(`${this.baseUrl}${url}`, formData, { headers }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n uploadWithData(url: string, data): Observable<any> {\n const formData = new FormData();\n // eslint-disable-next-line no-restricted-syntax\n for (const item in data) {\n if (Object.hasOwn(data, item)) {\n formData.append(item, data[item]);\n }\n }\n\n const headers = new HttpHeaders({ enctype: 'multipart/form-data' });\n\n return this.http.post(`${this.baseUrl}${url}`, formData, { headers }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n handleError(error: HttpErrorResponse): void {\n if (error?.error?.status_code !== 'unauthorized__REMOVED_X_TESTING') {\n if (error?.error?.status === 401) {\n this.toast.clear();\n }\n\n this.toast.showToast(error);\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { INTEGRATIONS_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IntegrationsApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n getConfig() {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode()\n ? INTEGRATIONS_API_PREFIX\n : config?.['links']?.integrations_api;\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorage {\n getItem$(key: string) {\n return of(localStorage.getItem(key));\n }\n\n setItem$(key: string, value: string) {\n return of(localStorage.setItem(key, value));\n }\n\n removeItem$(key: string) {\n return of(localStorage.removeItem(key));\n }\n\n clear$() {\n return of(localStorage.clear());\n }\n\n clearAll() {\n return localStorage.clear();\n }\n\n getItem(key: string) {\n return localStorage.getItem(key);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { MAIN_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MainApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n getConfig() {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode() ? MAIN_API_PREFIX : config?.['links']?.main_api;\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable, of } from 'rxjs';\n\n/**\n * Secure Token Storage Service\n *\n * This service provides secure token storage using memory + secure cookies.\n * NO localStorage usage - tokens are stored only in memory and secure cookies.\n *\n * Security Features:\n * - Memory storage (primary) - not persistent across refreshes\n * - Secure cookies (backup) - with SameSite=Strict protection\n * - No localStorage - prevents XSS token theft\n * - Secure flag for HTTPS\n * - CSRF protection via SameSite cookies\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class SecureTokenStorageService {\n private readonly TOKEN_COOKIE_NAME = 'auth_token';\n private readonly IMPERSONATED_TOKEN_COOKIE_NAME = 'user_impersonated_token';\n private readonly PHONEGAP_TOKEN_COOKIE_NAME = 'user_impersonated_phonegap_token';\n\n // In-memory fallback for development or when cookies are not available\n private readonly memoryStorage = new Map<string, string>();\n private readonly tokenSubject = new BehaviorSubject<string | null>(null);\n private readonly impersonatedTokenSubject = new BehaviorSubject<string | null>(null);\n private readonly phonegapTokenSubject = new BehaviorSubject<string | null>(null);\n\n constructor(@Inject(DOCUMENT) private readonly document: Document) {\n this.initializeTokens();\n }\n\n /**\n * Store authentication token securely\n */\n storeToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.TOKEN_COOKIE_NAME, token);\n\n this.tokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store token, using memory fallback:', error);\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, token);\n this.tokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Store impersonated user token\n */\n storeImpersonatedToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.impersonatedTokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store impersonated token, using memory fallback:', error);\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.impersonatedTokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Store phonegap impersonated token\n */\n storePhonegapToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.phonegapTokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store phonegap token, using memory fallback:', error);\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.phonegapTokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Get authentication token\n */\n getToken(): string | null {\n // Try memory storage first (primary storage)\n const memoryToken = this.memoryStorage.get(this.TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n // Try cookie as backup\n const cookieToken = this.getCookieValue(this.TOKEN_COOKIE_NAME);\n if (cookieToken) {\n // Restore to memory storage\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get impersonated token\n */\n getImpersonatedToken(): string | null {\n const memoryToken = this.memoryStorage.get(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n const cookieToken = this.getCookieValue(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n if (cookieToken) {\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get phonegap token\n */\n getPhonegapToken(): string | null {\n const memoryToken = this.memoryStorage.get(this.PHONEGAP_TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n const cookieToken = this.getCookieValue(this.PHONEGAP_TOKEN_COOKIE_NAME);\n if (cookieToken) {\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get token as Observable\n */\n getToken$(): Observable<string | null> {\n return this.tokenSubject.asObservable();\n }\n\n /**\n * Get impersonated token as Observable\n */\n getImpersonatedToken$(): Observable<string | null> {\n return this.impersonatedTokenSubject.asObservable();\n }\n\n /**\n * Get phonegap token as Observable\n */\n getPhonegapToken$(): Observable<string | null> {\n return this.phonegapTokenSubject.asObservable();\n }\n\n /**\n * Remove all tokens\n */\n clearTokens(): Observable<boolean> {\n try {\n // Clear cookies\n this.deleteCookie(this.TOKEN_COOKIE_NAME);\n this.deleteCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.deleteCookie(this.PHONEGAP_TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to clear cookies:', error);\n }\n\n // Clear memory storage\n this.memoryStorage.delete(this.TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.PHONEGAP_TOKEN_COOKIE_NAME);\n\n // Update subjects\n this.tokenSubject.next(null);\n this.impersonatedTokenSubject.next(null);\n this.phonegapTokenSubject.next(null);\n\n return of(true);\n }\n\n /**\n * Remove specific token\n */\n removeToken(): Observable<boolean> {\n try {\n this.deleteCookie(this.TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to remove token:', error);\n }\n\n this.memoryStorage.delete(this.TOKEN_COOKIE_NAME);\n this.tokenSubject.next(null);\n return of(true);\n }\n\n /**\n * Remove impersonated tokens\n */\n removeImpersonatedTokens(): Observable<boolean> {\n try {\n this.deleteCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.deleteCookie(this.PHONEGAP_TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to remove impersonated tokens:', error);\n }\n\n this.memoryStorage.delete(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.PHONEGAP_TOKEN_COOKIE_NAME);\n this.impersonatedTokenSubject.next(null);\n this.phonegapTokenSubject.next(null);\n return of(true);\n }\n\n /**\n * Set secure cookie\n * Note: HttpOnly cannot be set from client-side JavaScript\n * For maximum security, backend should set httpOnly cookies\n */\n private setSecureCookie(name: string, value: string): void {\n const isSecure = this.document.location.protocol === 'https:';\n\n // Set cookie with maximum security possible from client-side\n const cookieString = `${name}=${value}; Path=/; ${isSecure ? 'Secure; ' : ''}SameSite=Strict; Max-Age=86400`;\n this.document.cookie = cookieString;\n\n // Log warning about security limitations\n console.warn(\n '⚠️ SECURITY WARNING: Cookie is not httpOnly. For maximum security, backend should set httpOnly cookies.'\n );\n }\n\n /**\n * Get cookie value\n */\n private getCookieValue(name: string): string | null {\n const value = `; ${this.document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop()?.split(';').shift() || null;\n }\n return null;\n }\n\n /**\n * Delete cookie\n */\n private deleteCookie(name: string): void {\n this.document.cookie = `${name}=; Path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;`;\n }\n\n /**\n * Initialize tokens from storage on service startup\n */\n private initializeTokens(): void {\n const token = this.getToken();\n const impersonatedToken = this.getImpersonatedToken();\n const phonegapToken = this.getPhonegapToken();\n\n if (token) {\n this.tokenSubject.next(token);\n }\n if (impersonatedToken) {\n this.impersonatedTokenSubject.next(impersonatedToken);\n }\n if (phonegapToken) {\n this.phonegapTokenSubject.next(phonegapToken);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AppState, getUser, UserState } from '@posiwise/app-store';\nimport { Paging, User, USER_PATH } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { Observable, tap } from 'rxjs';\n\nimport { Store } from '@ngrx/store';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService {\n private readonly endpoint = USER_PATH;\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly store: Store<AppState>,\n private readonly router: Router\n ) {}\n\n getUserState(): Observable<UserState> {\n return this.store.select(getUser);\n }\n\n getUserInfo() {\n return this.api.get(this.endpoint).pipe(\n tap((data: User) => {\n // enforce 2fa\n if (data?.auth?.should_enforce_2fa) {\n this.router.navigate(['settings/security']);\n }\n })\n );\n }\n\n followUser(id: number) {\n return this.api.post(`${this.endpoint}/toggle_relationship/${id}`);\n }\n\n sendSSOActivationEmail() {\n return this.api.post(`/cognito/create_cognito_user`);\n }\n\n updateSlug(slug: string) {\n return this.api.put(`${this.endpoint}/update_slug`, { slug });\n }\n\n getCurrentUserObject(object_type: string) {\n return this.api.get(`${this.endpoint}/get_current_user_object?object=${object_type}`);\n }\n\n updateEmail(data: { [key: string]: string }) {\n const formData = new FormData();\n formData.append('email', data['email']);\n formData.append('confirmation_path', data['confirmation_path']);\n\n return this.api.put(`${this.endpoint}/email`, formData);\n }\n\n checkPassword(data: { password: string }) {\n return this.api.post(`${this.endpoint}/check_password`, data);\n }\n\n confirmUser(\n confirmation_token: string,\n email: string,\n password: string,\n password_confirmation: string\n ) {\n const formData = new FormData();\n formData.append('confirmation_token', confirmation_token);\n formData.append('email', email);\n formData.append('password', password);\n formData.append('password_confirmation', password_confirmation);\n\n return this.api.put(`${this.endpoint}/confirm`, formData);\n }\n\n checkTokenValidity(type: string, token: string, email: string) {\n return this.api.get(\n `${this.endpoint}/check_token_validity?type=${type}&confirmation_token=${token}&email=${email}`\n );\n }\n\n getUserNotifications() {\n return this.api.get(`${this.endpoint}/user_notifications`);\n }\n\n addAvatar(file: File) {\n return this.api.upload(this.endpoint, file, 'avatar');\n }\n\n createTwoFactorAuthenticator() {\n return this.api.put(`/two_factor_authenticator/create`);\n }\n\n verifyTwoFactorAuthenticator(google_code: string) {\n return this.api.post(`/two_factor_authenticator/verification_code`, { google_code });\n }\n\n enableTwoFactorAuthenticator(google_code: string) {\n return this.api.put(`/two_factor_authenticator/enable`, { google_code });\n }\n\n disableTwoFactorAuthenticator() {\n return this.api.put(`/two_factor_authenticator/disable`);\n }\n\n // User API Ends\n\n validateNewEmail(confirmationToken: string) {\n return this.api.get(\n `${this.endpoint}/new_email_confirm?confirmation_token=${confirmationToken}`\n );\n }\n\n getUserSubscriptions(id: number) {\n return this.api.get(`/users/${id}/subscriptions`);\n }\n\n addNewSubscriptionUsingStripe(data) {\n return this.api.post('/signups/trial_user_stripe_account', data);\n }\n\n updatePassword(data: {\n password: string;\n password_confirmation: string;\n old_password: string;\n }) {\n return this.api.put('/password/update', data);\n }\n\n getUserInvoices(paging: Paging, id: number) {\n return this.api.getWithParams(`${this.endpoint}/invoices`, {\n ...HelperService.getPagingParams(paging),\n user_id: id\n });\n }\n\n postTipsDisregarded(data: { tip_id: number; disregarded: boolean }) {\n return this.api.post('/users/user_tips', data);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport {\n CAPTCHA_VALIDATION_PATH,\n NEWSLETTER_CONFIRMATION_PATH,\n NEWSLETTER_UNSUBSCRIBE_PATH,\n SOCIAL_LOGIN_PATH,\n TOKEN_HEADER_KEY,\n TOKEN_KEY\n} from '@posiwise/common-utilities';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport swal from 'sweetalert2';\n\nimport { SignUpValues } from './common-services.interface';\nimport { IntegrationsApiHttpService } from './integrations-api-http.service';\nimport { LocalStorage } from './local-storage.service';\nimport { MainApiHttpService } from './main-api-http.service';\nimport { SecureTokenStorageService } from './secure-token-storage.service';\nimport { CustomToastService } from './toast.service';\nimport { UserService } from './user.service';\n\n@Injectable()\nexport class AuthService {\n private readonly platformSubject = new BehaviorSubject<string>('');\n private readonly twitterEndpoint = '/twitter';\n\n auth_token: string;\n header_key = 'browser';\n platform = '';\n\n platform$ = this.platformSubject.asObservable();\n\n isUserPersonated: boolean;\n\n constructor(\n private readonly localStorage: LocalStorage,\n private readonly secureTokenStorage: SecureTokenStorageService,\n private readonly router: Router,\n private readonly http: MainApiHttpService,\n private readonly userService: UserService,\n private readonly toastr: CustomToastService,\n private readonly appConfigService: AppConfigService,\n private readonly integrationsApi: IntegrationsApiHttpService,\n @Inject(DOCUMENT) private readonly document: Document\n ) {\n // Set Header Key\n this.setHeaderKey();\n }\n\n getToken() {\n if (this.secureTokenStorage.getImpersonatedToken()) {\n this.isUserPersonated = true;\n return this.secureTokenStorage.getImpersonatedToken();\n }\n if (this.secureTokenStorage.getPhonegapToken()) {\n this.isUserPersonated = true;\n return this.secureTokenStorage.getPhonegapToken();\n }\n\n this.isUserPersonated = false;\n return this.secureTokenStorage.getToken();\n }\n\n getImpersonatedToken() {\n return (\n this.secureTokenStorage.getImpersonatedToken() ||\n this.secureTokenStorage.getPhonegapToken()\n );\n }\n\n setHeaderKey() {\n // Mobile: app\n // Website: browser\n this.getHeaderKey().subscribe({\n next: (key: string) => {\n if (key === null) {\n this.header_key = 'browser';\n this.platformSubject.next('browser');\n } else if (key === 'app') {\n this.header_key = key;\n this.platformSubject.next(key);\n }\n },\n error: () => {\n this.header_key = 'browser';\n }\n });\n }\n\n signUpUser(values: SignUpValues) {\n const formData = new FormData();\n formData.append('confirmation_path', values.confirmation_path);\n formData.append('contact_name', values.contact_name);\n formData.append('email', values.email);\n formData.append('user_signup_url', values.user_signup_url);\n formData.append('organisation', values.organisation);\n formData.append('product_id', values.product_id.toString());\n formData.append('units', values.units.toString());\n formData.append('stripe_token', values.stripe_token);\n formData.append('master_subscription_id', values.master_subscription_id.toString());\n\n return this.http.post('signups', formData);\n }\n\n trialSignUp(data: object) {\n return this.http.post('signups/trial_signup', data);\n }\n\n validateEmail(email: string) {\n const params = {\n email\n };\n\n return this.http.getWithParams('users/validate_email', params);\n }\n\n forgotPassword(email: string, reset_path: string) {\n const params = {\n email,\n reset_path\n };\n\n return this.http.getWithParams('password', params);\n }\n\n resetPassword(password: string, confirm_password: string, password_reset_token: string) {\n const formData = new FormData();\n formData.append('password', password);\n formData.append('password_confirmation', confirm_password);\n formData.append('reset_password_token', password_reset_token);\n\n return this.http.put('password', formData);\n }\n\n header() {\n if (this.header_key === 'browser') {\n const headers = new HttpHeaders({\n [TOKEN_HEADER_KEY]: btoa(this.auth_token)\n });\n\n return headers;\n }\n const headers = new HttpHeaders({\n 'X-Phonegap-Token': btoa(this.auth_token)\n });\n\n return headers;\n }\n\n private getHeaderKey() {\n return this.localStorage.getItem$('platform');\n }\n\n private getPlatform() {\n return this.localStorage.getItem$('platform');\n }\n\n signInUser(email: string, password: string) {\n const formData = new FormData();\n formData.append('email', email);\n formData.append('password', password);\n\n return this.http.post('session', formData);\n }\n\n signInUserWith2Fa(email: string, password: string, google_code) {\n const formData = new FormData();\n formData.append('email', email);\n formData.append('password', password);\n formData.append('google_code', google_code);\n\n return this.http.post('session', formData);\n }\n\n storeToken(token: string) {\n return this.secureTokenStorage.storeToken(token);\n }\n\n storePlatform(plat: string) {\n return this.localStorage.setItem$('platform', plat);\n }\n\n logout() {\n const options = {\n headers: this.header()\n };\n\n if (this.header_key !== 'browser') {\n options['params'] = {\n phonegap: true\n };\n }\n\n // Clear all tokens securely\n this.secureTokenStorage.clearTokens().subscribe();\n\n return this.http.delete('session', options);\n }\n\n /**\n * Clear all authentication tokens\n */\n clearTokens() {\n return this.secureTokenStorage.clearTokens();\n }\n\n getToken$() {\n return this.secureTokenStorage.getToken$();\n }\n\n getNewsletterSubscription(token: string) {\n return this.http.get(`${NEWSLETTER_CONFIRMATION_PATH}?token=${token}`);\n }\n\n unsubscribeNewsletter(token: string) {\n return this.http.get(`${NEWSLETTER_UNSUBSCRIBE_PATH}?token=${token}`);\n }\n\n validateReCaptcha(token: string) {\n return this.http.get(`${CAPTCHA_VALIDATION_PATH}=${token}`);\n }\n\n socialLogin(data) {\n return this.http.post(SOCIAL_LOGIN_PATH, data);\n }\n\n twitterLogin() {\n return this.http.get(`${this.twitterEndpoint}/get_authorize_url`);\n }\n\n twitterAuthCallback(data) {\n return this.http.post(`${this.twitterEndpoint}/authorization_callback`, data);\n }\n\n microsoftLogin() {\n return this.http.get(`microsoft/get_authorize_url`);\n }\n\n cognitoLogin() {\n return this.http.get(`cognito/get_authorize_url`);\n }\n\n microsoftAuthCallback(data) {\n return this.http.post(`microsoft/authorization_callback`, data);\n }\n\n googleLogin() {\n return this.http.get(`google/get_authorize_url`);\n }\n\n googleAuthCallback(data) {\n return this.http.post(`google/authorization_callback`, data);\n }\n\n facebookLogin() {\n return this.http.get(`facebook/get_authorize_url`);\n }\n\n facebookAuthCallback(data) {\n return this.http.post(`facebook/authorization_callback`, data);\n }\n\n appleLogin() {\n return this.http.get(`apple/get_authorize_url`);\n }\n\n appleAuthCallback(data) {\n return this.http.post(`apple/authorization_callback`, data);\n }\n\n cognitoAuthCallback(data) {\n return this.http.post(`cognito/authorization_callback`, data);\n }\n\n linkedinLogin() {\n return this.appConfigService.appConfig$.pipe(\n switchMap(config => {\n return this.http.get(\n `/linkedin/get_authorize_url?redirect_url=${config['links'].frontend_link}/linkedin-confirmation`\n );\n })\n );\n }\n\n linkedInAuthCallback(data) {\n return this.http.post('linkedin/authorization_callback', data);\n }\n\n postLogin(response) {\n this.localStorage.removeItem$('product_id').subscribe();\n this.setHeaderKey();\n // this.setPlatform(); call it from cloudolive repo.\n\n // Saves the token into the localStorage and fetches the user information\n const sequence$ = this.storeToken(response[TOKEN_KEY]).pipe(\n switchMap(() => {\n return this.userService.getUserInfo();\n })\n );\n\n sequence$.subscribe(resp => {\n localStorage.setItem('name', resp.first_name);\n this.router.navigate(['home']);\n if ($('.cc-dismiss').length > 0) {\n $('.cc-dismiss')[0].click();\n }\n\n return true;\n });\n }\n\n impersonateUser(data: { email: string; subscription_id: number; phonegap?: boolean }) {\n if (!data.phonegap) {\n delete data.phonegap;\n }\n\n return this.http.post('/session/impersonate_user', data).pipe(\n map(x => {\n if (x?.auth_token) {\n this.secureTokenStorage.storeImpersonatedToken(x.auth_token);\n }\n if (x?.phonegap_token) {\n this.secureTokenStorage.storePhonegapToken(x.phonegap_token);\n }\n\n return x;\n })\n );\n }\n\n postSocialLogin(response) {\n const alreadySigned = !!response[TOKEN_KEY];\n const isNewSignUp = !!response.subscription;\n\n if (isNewSignUp) {\n this.router.navigate(['confirmation'], {\n queryParams: {\n ref: response.reference_number,\n subscription: response.subscription,\n users: response.users\n }\n });\n } else if (alreadySigned) {\n this.storeToken(response[TOKEN_KEY]).subscribe({\n next: () => {\n this.router.navigate(['home']);\n },\n error: error => {\n this.toastr.showToast(error);\n }\n });\n } else {\n swal.fire({\n toast: true,\n position: 'bottom',\n html: `<strong class=\"text-danger\"> ${response.error.message}</strong>`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'error'\n }).then(rep => {\n if (rep.value) {\n this.router.navigate(['register']);\n }\n });\n }\n }\n\n registerTokenListener() {\n window.addEventListener('storage', data => {\n // logs out the other tabs when the token is changed.\n // we assume that token doesn't refresh and backend updates the expiry time\n if (data?.key === TOKEN_KEY && data?.oldValue !== data?.newValue) {\n this.document.location.reload();\n }\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\n\nimport { SetUser, UserActionTypes } from '@posiwise/app-store';\n\nimport { Observable } from 'rxjs';\nimport { map, mergeMap } from 'rxjs/operators';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\n\nimport { UserService } from '../user.service';\n\n/* NgRx */\n@Injectable()\nexport class UserEffects {\n private readonly actions$ = inject(Actions);\n constructor(private readonly userService: UserService) {}\n\n loadUser$: Observable<Action> = createEffect(() => {\n return this.actions$.pipe(\n ofType(UserActionTypes.GET_USER),\n // take(1),\n mergeMap(() =>\n this.userService.getUserInfo().pipe(\n map(response => new SetUser(response))\n // catchError(err => of(new userActions.LoadFail(err)))\n )\n )\n );\n });\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { appReducers } from '@posiwise/app-store';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { AuthService } from './auth.service';\nimport { UserEffects } from './effects/user.effects';\n\n@NgModule({\n imports: [CommonModule, EffectsModule.forRoot([UserEffects]), StoreModule.forRoot(appReducers)],\n providers: [AuthService]\n})\nexport class CommonServicesModule {}\n","import { Injectable } from '@angular/core';\n\nimport { ADMIN_SUB_MENU_WHITELIST, PERMISSION_NAMES, User } from '@posiwise/common-utilities';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport pickBy from 'lodash/pickBy';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static selectedProduct: any; // NOSONAR\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static selectedSubscription: any; // NOSONAR\n\n user: User = null;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n setCurrentSubscription(subscription) {\n PermissionService.selectedSubscription = subscription;\n }\n\n isGranted(\n permissionName: string,\n productKey = null,\n permission_key = null,\n productSlug = null\n ): boolean {\n if (this.user) {\n const { user } = this;\n\n // Admin have access to all the menus.\n // E.g., Pages.SuperAdmin\n if (this.isSuperAdmin()) {\n return true;\n }\n\n if (permissionName) {\n permissionName = this.getFormattedPermissionName(permissionName, productSlug);\n }\n\n // Returning true if user has a given permission\n // E.g., Pages.Role.CloudOlive.SalesManager\n // or Pages.Beta or Pages.Alpha\n\n if (permissionName?.includes('||')) {\n const parts = permissionName.split('||').map(p => p.trim());\n if (this.hasAnyGrantedPermission(parts, user)) {\n return true;\n }\n } else if (user['auth']?.['granted'][permissionName]) {\n return true;\n }\n\n const filteredPermissions = this.handleProductKey(\n productKey,\n user,\n permission_key,\n permissionName\n );\n\n if (filteredPermissions) {\n return filteredPermissions;\n }\n\n // no valid permission was detected for this user\n return false;\n }\n // user not logged-in\n return false;\n }\n\n private hasAnyGrantedPermission(parts: string[], user): boolean {\n return parts.some(part => user['auth']?.['granted'][part]);\n }\n\n handleProductKey(productKey, user, permission_key, permissionName) {\n if (productKey) {\n // filters the permission only for the selected product.\n let filteredPermissions = pickBy(cloneDeep(user['auth']['granted']), (_value, key) => {\n return key.includes(productKey);\n });\n // add Pages.Product.{permission_key}\n filteredPermissions = {\n ...{ [`Pages.Product.${permission_key}`]: true },\n ...filteredPermissions\n };\n\n // E.g., Pages.Product.CloudOlive.CloudOlive_MspKey\n return filteredPermissions[permissionName] ?? false;\n }\n }\n\n private getFormattedPermissionName(permissionName: string, productSlug: string | null): string {\n const selectedProduct = PermissionService?.selectedProduct ?? this.getCurrentProduct();\n const subscriptionSlug = selectedProduct?.subscription_slug;\n\n let slugToCheck: string;\n if (!productSlug) {\n if (permissionName.includes('Pages.Product.')) {\n slugToCheck = `Pages.Product.${subscriptionSlug}.`;\n }\n\n if (permissionName.includes('Pages.Role.')) {\n slugToCheck = `Pages.Role.${subscriptionSlug}.`;\n }\n } else {\n slugToCheck = productSlug;\n }\n\n if (!permissionName.includes(slugToCheck) && permissionName.includes('Pages.Product.')) {\n permissionName = permissionName.replace('Pages.Product.', slugToCheck);\n }\n\n if (permissionName.includes('Pages.Role.') && !permissionName.includes(slugToCheck)) {\n permissionName = permissionName.replace('Pages.Role.', slugToCheck);\n }\n\n return permissionName;\n }\n\n getPermissionTreeDataByRole(data) {\n const permissions = [];\n data.all.forEach(element => {\n const { name } = element;\n permissions.push({\n id: element.id, // permissionId: Used to update the permissions on change\n parentName: name.includes('.') ? name.substring(0, name.lastIndexOf('.')) : null,\n name,\n displayName: element.name\n });\n });\n\n return {\n permissions,\n grantedPermissionNames: Object.keys(data.granted)\n };\n }\n\n evaluatePermissions(\n permission: string,\n productKey: string = null,\n permission_key: string = null,\n productSlug: string = null\n ): boolean {\n if (!permission) {\n return false;\n }\n\n let expr = '';\n\n if (permission === PERMISSION_NAMES.SuperAdmin) {\n return this.isSuperAdmin();\n }\n if (permission === PERMISSION_NAMES.SubscriptionAdmin) {\n return this.isUserSubscriptionAdmin() || this.isUserSubscriptionOwner();\n }\n if (permission === PERMISSION_NAMES.SubscriptionOwner) {\n return this.isUserSubscriptionOwner();\n }\n if (permission === PERMISSION_NAMES.SubscriptionSuperAdmin) {\n return (\n this.isUserSubscriptionSuperAdmin() ||\n this.isUserSubscriptionSuperOwner() ||\n this.isSuperAdmin()\n );\n }\n if (permission === PERMISSION_NAMES.SubscriptionSuperOwner) {\n return this.isUserSubscriptionSuperOwner() || this.isSuperAdmin();\n }\n if (\n typeof permission === 'string' &&\n ADMIN_SUB_MENU_WHITELIST.some(v => permission.includes(v)) &&\n (this.isUserSubscriptionSuperAdmin() || this.isUserSubscriptionSuperOwner())\n ) {\n return true;\n }\n\n expr = this.handleNonBooleanPermissions(\n permission,\n expr,\n productKey,\n permission_key,\n productSlug\n );\n\n // Now expr is made of true/false values with &&, ||, ()\n // eslint-disable-next-line no-eval\n return eval(expr); // NOSONAR\n }\n\n handleNonBooleanPermissions(permission, expr, productKey, permission_key, productSlug) {\n if (typeof permission !== 'boolean') {\n permission.split(' ').forEach(x => {\n const raw = x.trim();\n\n if (['||', '&&', '(', ')'].includes(raw)) {\n expr += ` ${raw} `;\n } else {\n let evaluated: boolean;\n\n if (raw === PERMISSION_NAMES.SuperAdmin) {\n evaluated = this.isSuperAdmin();\n } else if (raw === PERMISSION_NAMES.SubscriptionAdmin) {\n evaluated =\n this.isUserSubscriptionAdmin() || this.isUserSubscriptionOwner();\n } else if (raw === PERMISSION_NAMES.SubscriptionOwner) {\n evaluated = this.isUserSubscriptionOwner();\n } else if (raw === PERMISSION_NAMES.SubscriptionSuperAdmin) {\n evaluated =\n this.isUserSubscriptionSuperAdmin() ||\n this.isUserSubscriptionSuperOwner() ||\n this.isSuperAdmin();\n } else if (raw === PERMISSION_NAMES.SubscriptionSuperOwner) {\n evaluated = this.isUserSubscriptionSuperOwner() || this.isSuperAdmin();\n } else if (productKey) {\n // Assume it's Pages.Product or Pages.Role with productKey\n evaluated = this.isGranted(raw, productKey, permission_key, productSlug);\n } else {\n evaluated = this.isGranted(raw);\n }\n\n expr += ` ${evaluated} `;\n }\n }, this);\n }\n return expr;\n }\n\n getPermissionByRole(roleId: number) {\n return this.api.get(`/admin/role_permissions/${roleId}`);\n }\n\n saveUserPermission(payload) {\n return this.api.post(`/admin/role_permissions`, payload);\n }\n\n /**\n * determine user is super_admin using user.auth.granted['Pages.SuperAdmin']\n */\n isSuperAdmin(): boolean {\n return !!this.user.auth.granted['Pages.SuperAdmin'] || false;\n }\n\n /**\n * Any Product Admin regardless of the product being master product or not.\n */\n public isUserSubscriptionOwner(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionOwner`\n ];\n }\n\n /**\n * Any Product Admin regardless of the product being master product or not.\n * *rbacAllow=\"SubscriptionAdmin\"\n * @returns\n */\n public isUserSubscriptionAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return (\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionAdmin`\n ] ||\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionOwner`\n ]\n );\n }\n\n /**\n * Any Product Admin of the product being the master product\n */\n isUserSubscriptionSuperAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return (\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionSuperAdmin`\n ] ||\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionSuperOwner`\n ]\n );\n }\n\n isUserMasterSubscriptionSuperAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n return !!this.user.auth.granted[\n `Pages.Product.${product?.permission_key}.${product.feature_key}.SubscriptionSuperAdmin`\n ];\n }\n\n /**\n * Any Product Admin of the product being the master product\n */\n public isUserSubscriptionSuperOwner(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionSuperOwner`\n ];\n }\n\n setCurrentProduct(product) {\n localStorage.setItem(\n 'product',\n JSON.stringify({\n id: product.id,\n permission_key: product?.permission_key,\n feature_key: product.feature_key,\n subscriptionId: product.subscriptionId,\n subscription_slug: product.subscription_slug\n })\n );\n }\n\n public getCurrentProduct() {\n return JSON.parse(localStorage.getItem('product'));\n }\n}\n","/*\n * Similar to Meta service but made to handle <link> creation for SEO purposes\n */\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, RendererFactory2, ViewEncapsulation } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LinkService {\n constructor(\n private readonly rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private readonly document\n ) {}\n\n /**\n * Inject the State into the bottom of the <head>\n */\n addTag(tag: LinkDefinition, _forceCreation?: boolean) {\n try {\n const renderer = this.rendererFactory.createRenderer(this.document, {\n id: '-1',\n encapsulation: ViewEncapsulation.None,\n styles: [],\n data: {}\n });\n\n const link = renderer.createElement('link');\n const { head } = this.document;\n\n if (head === null) {\n throw new Error('<head> not found within DOCUMENT.');\n }\n\n Object.keys(tag).forEach((prop: string) => {\n return renderer.setAttribute(link, prop, tag[prop]);\n });\n\n // [TODO]: get them to update the existing one (if it exists) ?\n renderer.appendChild(head, link);\n } catch (e) {\n window.console.error('Error within linkService : ', e);\n }\n }\n}\n\ndeclare type LinkDefinition = {\n charset?: string;\n crossorigin?: string;\n href?: string;\n hreflang?: string;\n media?: string;\n rel?: string;\n rev?: string;\n sizes?: string;\n target?: string;\n type?: string;\n} & {\n [prop: string]: string;\n};\n","import { Injectable } from '@angular/core';\nimport { PreloadingStrategy, Route } from '@angular/router';\n\nimport { Observable, of, timer } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\n\nimport { PermissionService } from './permission.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomPreloadingStrategy implements PreloadingStrategy {\n constructor(private readonly permission: PermissionService) {}\n\n preload(route: Route, load: () => Observable<string>): Observable<string> {\n const loadRoute = delay => (delay ? timer(5000).pipe(mergeMap(_ => load())) : load());\n\n return route.data && this.checkModulePermission(route.data)\n ? loadRoute(route.data['delay'])\n : of(null);\n }\n\n private checkModulePermission(routeData) {\n const ret = routeData.preload && this.permission.isGranted(routeData.permission);\n\n return ret;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { AB_TEST_ACTIONS } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AbTestService {\n constructor(\n private readonly injector: Injector,\n private readonly http: HttpClient\n ) {}\n\n /**\n * POST: start or stop observable\n * payload: {\n \"test_name\": \"my_first_experiment\",\n \"action_type\": \"ab_test\"\n }\n */\n getExperiment(test_name: string, action_type: string, service: unknown) {\n return this.getServiceInstance(service).post('/ab_test', { test_name, action_type });\n }\n\n /**\n * Finish the experiment and remove from the cookie app-store\n */\n finishExperiment(test_name: string, service: unknown) {\n return this.getServiceInstance(service).post('/ab_test', {\n test_name,\n action_type: AB_TEST_ACTIONS.FINISH\n });\n }\n\n finishABExperiment(test_name: string, shard_name: unknown) {\n const baseUrl = HelperService.getBaseUrlMicroService({ name: shard_name });\n return this.http.post(`${baseUrl}/ab_test`, {\n test_name,\n action_type: AB_TEST_ACTIONS.FINISH\n });\n }\n\n /**\n * dynamically loads the microservice\n */\n private getServiceInstance(service) {\n console.log(typeof service);\n return service ? this.injector.get(service) : this.injector.get(MainApiHttpService); // fallback to Core Microservice\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { GEO_PATH } from '@posiwise/common-utilities';\n\nimport { CookieService } from 'ngx-cookie';\nimport { of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GeoService {\n private readonly url = GEO_PATH;\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly cookieService: CookieService\n ) {}\n\n getCountries() {\n return this.api.get(`${this.url}/countries`);\n }\n\n getRegions(countryId) {\n return this.api.get(`${this.url}/regions/${countryId}`);\n }\n\n getCountryFromIP() {\n // Cache the location details\n if (this.cookieService.get('location_from_ip')) {\n return of(JSON.parse(this.cookieService.get('location_from_ip')));\n }\n\n return this.api.get(`${this.url}/location_from_ip`).pipe(\n tap((data: object) => {\n return this.cookieService.putObject('location_from_ip', data);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PROJECT_PATH } from '@posiwise/common-utilities';\n\nimport { AddProjectPicturesData, ProfileData } from './common-services.interface';\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProfileService {\n private readonly endpoint = PROJECT_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n updateUserProfile(user: ProfileData) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in user) {\n if (key in user) {\n formData.append(key, user[key]);\n }\n }\n\n return this.api.put('/user', formData);\n }\n\n getUserProfile(slug: string) {\n return this.api.get(`/users/${slug}/profile/`);\n }\n\n getUserObject(objectType: string, slug: string) {\n return this.api.get(`/users/${slug}/get_object?object=${objectType}`);\n }\n\n getProjects(slug: string) {\n return this.api.get(`/users/${slug}/projects`);\n }\n\n addProjects(data: { [key: string]: string }) {\n return this.api.post(this.endpoint, data);\n }\n\n updateProjects(id: number, data: { [key: string]: string }) {\n return this.api.put(`${this.endpoint}${id}`, data);\n }\n\n deleteProject(id: number) {\n return this.api.delete(`${this.endpoint}/${id}`);\n }\n\n addProjectPictures(data: AddProjectPicturesData) {\n return this.api.uploadWithData('/project_pictures', data);\n }\n\n getProjectPictures(slug: string) {\n return this.api.get(`/users/${slug}/project_pictures`);\n }\n\n deletePicture(projectId: number) {\n return this.api.delete(`/project_pictures/${projectId}`);\n }\n\n // Recommendations\n\n postProjectRecommendation(data: object) {\n return this.api.post(`/project_recommendations`, data);\n }\n\n postLinks(data: { [key: string]: string }) {\n return this.api.post('/user_links', data);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, Subscription } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable()\nexport class SubscriptionService {\n endpoint = '/subscriptions/';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getById(id: number) {\n return this.api.get(`${this.endpoint}${id}`);\n }\n\n deleteSubscription(id: number, reqJson: object) {\n return this.api.delete(`/subscriptions/${id}`, reqJson);\n }\n\n getSubscriptions(id: number) {\n return this.api.get(`/subscriptions/${id}`);\n }\n\n postSubscription(data: Partial<Subscription>) {\n return this.api.post('/subscriptions', data);\n }\n\n updateSubscription(id: number, data: Partial<Subscription>) {\n return this.api.put(`/subscriptions/${id}`, data);\n }\n\n updateSubscriptionUnit(id: number, units) {\n return this.api.put(`/subscriptions/${id}/update_units`, { purchased_units: units });\n }\n\n addPartnersToSubscription(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`/subscriptions/${id}/partners/invite_partner`, data);\n }\n\n getProductList(paging?: Paging, subscription_id?: number, _params?) {\n return this.api.getWithParams(\n `/subscriptions/${subscription_id}/partners/products_for_partners`,\n HelperService.getPagingParams(paging)\n );\n }\n\n removePartner(id: number, partner_id: number) {\n return this.api.delete(`/subscriptions/${id}/partners/remove_partner/${partner_id}`);\n }\n\n deactivatePartner(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.put(`/subscriptions/${id}/partners/toggle_active_status`, data);\n }\n\n addMembersToSubscription(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`/subscriptions/${id}/signup_members`, data);\n }\n\n signUpMemberUrl(id: number) {\n return `/subscriptions/${id}/signup_members`;\n }\n\n getEnrolledSubscription(id: number, paging?: Paging) {\n return this.api.getWithParams(\n `/subscriptions/${id}/members`,\n HelperService.getPagingParams(paging)\n );\n }\n removeEnrolledSubscription(id: number, user_id: number) {\n return this.api.delete(`/subscriptions/${id}/remove_member/${user_id}`);\n }\n\n toggleAdmin(id: number, data) {\n return this.api.put(`/subscriptions/${id}/toggle_admin`, data);\n }\n\n updateSubscriptionAPIKey(id: number) {\n return this.api.put(`/subscriptions/${id}/update_api_key`);\n }\n\n refreshApiTokens(id: number) {\n return this.api.get(`/subscriptions/${id}/refresh_api_tokens`);\n }\n\n addFullLogo(id: number, data) {\n return this.api.upload(`/subscriptions/${id}`, data, 'full_logo');\n }\n\n addSquaredLogo(id: number, data) {\n return this.api.upload(`/subscriptions/${id}`, data, 'squared_logo');\n }\n\n getCardDetails(subscriptionId: number) {\n return this.api.get(`/subscriptions/${subscriptionId}/card_detail`);\n }\n\n updateCardDetails(data: { [key: string]: string }, subscription_id: number) {\n return this.api.post(`/subscriptions/${subscription_id}/update_card`, data);\n }\n\n getEnterpriseInsight(subscriptionId: number, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/subscriptions/${subscriptionId}/enterprise_analytics?type=summary`,\n { starting_at, ending_at }\n );\n }\n\n postSubscriptionCredential(data) {\n return this.api.post(`/subscription_credentials`, data);\n }\n\n editSubscriptionCredential(id: number, data) {\n return this.api.put(`/subscription_credentials/${id}`, data);\n }\n\n getAllSubscriptionCredentials(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/subscription_credentials/get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAllSubscriptionPartners(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/subscriptions/${subscription_id}/partners/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n\n deleteSubscriptionCredential(id: number, subscriptionId: number) {\n return this.api.delete(`/subscription_credentials/${id}?subscription_id=${subscriptionId}`);\n }\n\n getAllCredentials(paging?: Paging) {\n return this.api.getWithParams(`/credentials/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, PRODUCT_PATH } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductService {\n private readonly endpoint = '/admin/product';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n /// ////////////////////\n /// // ADMIN PRODUCT API\n /// ////////////////////\n deleteProduct(id: number, subscription_id: number) {\n return this.api.delete(`${this.endpoint}/${id}?subscription_id=${subscription_id}`);\n }\n\n updateProduct(data, id: number) {\n return this.api.put(`${this.endpoint}/${id}`, data);\n }\n\n addProduct(data) {\n return this.api.post(this.endpoint, data);\n }\n\n inviteForTrial(id: number, body, subscription_id: number) {\n return this.api.post(`${this.endpoint}/${id}/invite_for_trial`, {\n ...body,\n subscription_id\n });\n }\n\n getProductList(paging?: Paging, subscription_id?: number, params?) {\n return this.api.getWithParams(`${PRODUCT_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id,\n ...params\n });\n }\n\n getSupportedCurrency() {\n return this.api.get(`${PRODUCT_PATH}/supported_currencies`);\n }\n\n getSupportedRegions() {\n return this.api.get(`${PRODUCT_PATH}/supported_regions`);\n }\n\n /// ////////////////////\n /// // PRODUCT API\n /// ////////////////////\n getProducts(params) {\n return this.api.getWithParams(`${PRODUCT_PATH}/get_all?page=1&page_size=200`, {\n ...params\n });\n }\n\n getProductById(id: number) {\n return this.api.get(`${PRODUCT_PATH}/${id}`);\n }\n\n getProductCategories() {\n return this.api.get(`${PRODUCT_PATH}/categories`);\n }\n\n getProductInsight(subscriptionId: number, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/admin/subscriptions_analytics?type=products&subscription_id=${subscriptionId}`,\n { starting_at, ending_at }\n );\n }\n\n getUsersForProduct(id: number, subscription_id: number) {\n return this.api.getWithParams(`${this.endpoint}/${id}/insights`, { subscription_id });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n@Injectable()\nexport class ValidationService {\n static readonly CustomValidatorPatterns = {\n StrongPassword: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*])(?=.{8,})/,\n Year: '[0-9]{4}$'\n };\n\n /**\n * Validates email.\n */\n static email(input: string) {\n if (!input) {\n return false;\n }\n const reg = /^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\n\n return reg.test(input);\n }\n\n static patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn | null {\n return (control: AbstractControl): { [key: string]: string } => {\n if (!control.value) {\n // if control is empty return no error\n return null;\n }\n\n // test the value of the control against the regexp supplied\n const valid = regex.test(control.value as string);\n\n // if true, return no error (no error), else return error passed in the second parameter\n return valid ? null : error;\n };\n }\n}\n","import { AbstractControl, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nexport class FormHelperService {\n static markFormAsPristine(form: UntypedFormGroup | UntypedFormControl | AbstractControl) {\n form.markAsPristine();\n form.markAsUntouched();\n }\n\n static markAsTouched(form) {\n /* eslint-disable no-restricted-syntax */\n /* eslint-disable guard-for-in */\n for (const i in form.form.controls) {\n form.form.controls[i]['touched'] = true;\n }\n }\n\n static validateAllFormFields(form): void {\n Object.keys(form.controls).forEach(field => {\n const control = form.get(field);\n if (control instanceof UntypedFormControl) {\n control.markAsTouched();\n control.updateValueAndValidity();\n } else if (control instanceof UntypedFormGroup) {\n this.validateAllFormFields(control);\n }\n });\n }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport {\n AhoyEventResponse,\n AhoyMessageResponse,\n AhoyVersionResponse,\n AhoyVisitResponse,\n RequestParams,\n TrackEventResponse\n} from './common-services.interface';\nimport { CustomToastService } from './toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AhoyService {\n private readonly ahoy = '/ahoy';\n\n private readonly toast: CustomToastService;\n\n constructor(\n private readonly http: HttpClient,\n public injector: Injector\n ) {\n this.toast = injector.get(CustomToastService);\n }\n\n getAhoyEvents(params: RequestParams, service, paging: Paging): Observable<AhoyEventResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyEventResponse>(`${baseUrl}${this.ahoy}/events`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getAhoyMessages(\n params: RequestParams,\n service,\n paging: Paging\n ): Observable<AhoyMessageResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyMessageResponse>(`${baseUrl}${this.ahoy}/messages`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getAhoyVisits(params: RequestParams, service, paging: Paging): Observable<AhoyVisitResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyVisitResponse>(`${baseUrl}${this.ahoy}/visits`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getVersions(params: RequestParams, service, paging: Paging): Observable<AhoyVersionResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyVersionResponse>(`${baseUrl}/versions/get_all`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getEvents(params: RequestParams, service, paging: Paging): Observable<TrackEventResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<TrackEventResponse>(`${baseUrl}/events/get_all`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n handleError(error: HttpErrorResponse): void {\n if (error?.error?.status_code !== 'unauthorized__REMOVED_X_TESTING') {\n if (error?.error?.status === 401) {\n this.toast.clear();\n }\n\n this.toast.showToast(error);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ADMIN_FAQS_PATH,\n CONTACT_US_PATH,\n CUSTOMER_SUPPORT_PATH,\n FAQS_PATH,\n FEEDBACK_QUESTIONS_PATH,\n GLOBAL_CONFIGS_PATH,\n GLOBAL_SUBSCRIPTION_CONFIGS_PATH,\n INCIDENTS_PATH,\n INCIDENTS_PATH_ADMIN,\n NEWSLETTER_SUBSCRIPTION_PATH,\n NEWSLETTER_UNSUBSCRIBE_PATH,\n NEWSLETTERS_PATH,\n ORGANIZATIONS_PATH,\n Paging,\n USER_FEEDBACKS_PATH,\n USER_LOGIN_NOTIFICATION\n} from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { GetFaqParams } from './common-services.interface';\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommonService {\n constructor(private readonly api: MainApiHttpService) {}\n\n addContactUsMessage(data) {\n return this.api.post(CONTACT_US_PATH, data);\n }\n\n getIncidents(paging?: Paging) {\n return this.api.getWithParams(`${INCIDENTS_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getIncidentsAdmin(paging?: Paging, subscriptionId?: number) {\n return this.api.getWithParams(`${INCIDENTS_PATH_ADMIN}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id: subscriptionId\n });\n }\n\n addIncident(data) {\n return this.api.post(`${INCIDENTS_PATH_ADMIN}`, data);\n }\n\n editIncident(id, data) {\n return this.api.put(`${INCIDENTS_PATH_ADMIN}/${id}`, data);\n }\n\n getIncidentById(id: number, subscription_id) {\n return this.api.get(`${INCIDENTS_PATH_ADMIN}/${id}?subscription_id=${subscription_id}`);\n }\n\n deleteIncidentAdmin(id: number, subscription_id: number) {\n return this.api.delete(`${INCIDENTS_PATH_ADMIN}/${id}?subscription_id=${subscription_id}`);\n }\n // Newsletters\n\n getAllNewsletter(paging?: Paging) {\n return this.api.getWithParams(`${NEWSLETTERS_PATH}/get_all`, {\n visible: true,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n toggleNewsletter(newsletterId: number, param) {\n return this.api.put(`${NEWSLETTER_SUBSCRIPTION_PATH}/${newsletterId}/toggle`, param);\n }\n\n unsubscribeNewsletter(token: string) {\n return this.api.get(`/${NEWSLETTER_UNSUBSCRIBE_PATH}?token=${token}`);\n }\n\n // FAQ\n\n getFaq(params: GetFaqParams) {\n return this.api.getWithParams(ADMIN_FAQS_PATH, { ...params });\n }\n\n getFaqById(id: number, subscription_id) {\n return this.api.getWithParams(`${FAQS_PATH}/${id}`, { subscription_id });\n }\n getFaqCategories(subscription_id: number) {\n return this.api.getWithParams(`faqs/available_categories`, { subscription_id });\n }\n getPublicFaq(subscription_id: number, search_term = '') {\n return this.api.getWithParams(`${FAQS_PATH}`, { subscription_id, search_term });\n }\n\n getPublicFaqById(id: number) {\n return this.api.get(`${FAQS_PATH}/${id}`);\n }\n\n // Organization\n\n getOrganizationSizes(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/sizes/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationTypes(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/types/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationIndustries(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/industries/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationDepartments(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/departments/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // Global Config\n\n getAllGlobalSubscriptionConfigs(paging?: Paging) {\n return this.api.getWithParams(\n `${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}/get_all?`,\n HelperService.getPagingParams(paging)\n );\n }\n\n postGlobalSubscriptionConfig(data) {\n return this.api.post(`${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}`, data);\n }\n\n editGlobalSubscriptionConfig(id: number, data) {\n return this.api.post(`${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}/${id}`, data);\n }\n\n getAllGlobalConfigs(paging?: Paging) {\n return this.api.getWithParams(\n `${GLOBAL_CONFIGS_PATH}/get_all?`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // User Login Notification\n\n userLoginNotification(data) {\n return this.api.post(`${USER_LOGIN_NOTIFICATION}`, data);\n }\n\n // Customer Satisfaction\n\n feedbackQuestions(subscription_id: number) {\n return this.api.get(`${FEEDBACK_QUESTIONS_PATH}?subscription_id=${subscription_id}`);\n }\n\n userFeedbacks(data) {\n return this.api.post(`${USER_FEEDBACKS_PATH}`, data);\n }\n\n getAllUserFeedbacks(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`${USER_FEEDBACKS_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n getAllCustomerSupport(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`${CUSTOMER_SUPPORT_PATH}/get_all?`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n postCustomerSupport(data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`${CUSTOMER_SUPPORT_PATH}`, formData);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport isNumber from 'lodash/isNumber';\nimport moment from 'moment';\n\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\n\nfunction padNumber(value: number) {\n if (isNumber(value)) {\n return `0${value}`.slice(-2);\n }\n\n return '';\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgbDateCustomParserFormatter extends NgbDateParserFormatter {\n private readonly DELIMITER = '-';\n\n parse(value: string): NgbDateStruct | null {\n if (value) {\n const date = value.trim().split(this.DELIMITER);\n const hasNumber = /\\d/;\n if (!date[1]) {\n return null;\n }\n // convert month name to number\n const month = date[1] ? moment().month(date[1]).format('M') : '';\n // title case\n const str = date[1]\n .split(' ')\n .map(\n ([firstChar, ...rest]) => firstChar.toUpperCase() + rest.join('').toLowerCase()\n )\n .join(' ');\n if (!month || hasNumber.test(date[1]) || !moment.monthsShort().includes(str)) {\n return null;\n }\n return {\n day: Number.parseInt(date[0], 10),\n month: Number.parseInt(month, 10),\n year: Number.parseInt(date[2], 10)\n };\n }\n\n return null;\n }\n\n format(date: NgbDateStruct): string {\n const monthNames = [\n '',\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ];\n\n if (!date) {\n return '';\n }\n\n const day = isNumber(date.day) ? padNumber(date.day) : '';\n const month = isNumber(date.month) ? monthNames[date.month] : '';\n const year = date.year;\n return `${day}-${month}-${year}`;\n }\n\n dateFormatForPicker(date: string): NgbDateStruct {\n return {\n year: Number(date.substring(0, 4)),\n month: Number(date.substring(5, 7)),\n day: Number(date.substring(8, 10))\n };\n }\n}\n","export class PrimeNgHelper {\n isLoading = false;\n\n static dropdownDataSource(dataSource, label, value) {\n const result = [];\n dataSource.forEach(element => {\n const item = {\n ...element,\n label: element[label],\n value: element[value]\n };\n result.push(item);\n });\n\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ADMIN_PATH,\n ADMIN_TAG_CATEGORIES_PATH,\n ADMIN_TAG_PATH,\n Paging\n} from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TagService {\n ADMIN_TAG_PATH = ADMIN_TAG_PATH;\n ADMIN_TAG_CATEGORIES_PATH = ADMIN_TAG_CATEGORIES_PATH;\n ADMIN_PATH = ADMIN_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n /// //////////////////////\n /// /// Admin Tag Section\n /// //////////////////////\n deleteTagById(id: number, subscription_id: number) {\n return this.api.delete(`${this.ADMIN_TAG_PATH}${id}?subscription_id=${subscription_id}`);\n }\n\n updateTagById(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.put(`${this.ADMIN_TAG_PATH}${id}`, formData);\n }\n\n addAdminTag(data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(this.ADMIN_TAG_PATH, formData);\n }\n\n /// //////////////////////\n /// /// Tags API's\n /// //////////////////////\n getTagsByType(tag_type: string, paging: Paging, subscription_id?: number) {\n return this.api.getWithParams('/tags/get_all_tags', {\n tag_type,\n subscription_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAvailableTagType(subscription_id: number) {\n return this.api.getWithParams('/tags/available_tag_types', { subscription_id });\n }\n\n addTags(data, subscription_id?: number) {\n return this.api.post('/tags', { ...data, subscription_id });\n }\n\n getTagsByEntity(slug: string, tag_entity: string, tag_type: string, subscription_id?: number) {\n return this.api.getWithParams('/tags/get_entity_tags', {\n slug,\n tag_entity,\n tag_type,\n subscription_id,\n ...HelperService.getPagingParams({})\n });\n }\n\n getGroupedSkills(slug: string, tagEntity: string, tagType: string) {\n return this.api.get(\n `/tags/grouped_tags?slug=${slug}&tag_entity=${tagEntity}&tag_type=${tagType}`\n );\n }\n\n /// //////////////////////\n /// ///// Tag Categories\n /// //////////////////////\n getTagCategories(params: Paging, subscription_id: number) {\n return this.api.getWithParams(`${this.ADMIN_TAG_CATEGORIES_PATH}get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(params)\n });\n }\n\n getAllTagCategories(params: Paging, subscription_id: number) {\n return this.api.getWithParams(`tag_categories/get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(params)\n });\n }\n\n deleteTagCategoryById(id: number, subscription_id: number) {\n return this.api.delete(\n `${this.ADMIN_TAG_CATEGORIES_PATH}${id}?subscription_id=${subscription_id}`\n );\n }\n\n updateTagCategoryById(id: number, data, subscription_id: number) {\n return this.api.put(`${this.ADMIN_TAG_CATEGORIES_PATH}${id}`, { ...data, subscription_id });\n }\n\n addTagCategoryById(data, subscription_id: number) {\n return this.api.post(this.ADMIN_TAG_CATEGORIES_PATH, { ...data, subscription_id });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TipsService {\n endpoint = '/tips/';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getAll(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/admin${this.endpoint}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n getById(id: number, subscription_id: number) {\n return this.api.getWithParams(`/admin/tips/${id}`, { subscription_id });\n }\n\n saveTips(id: number, data, subscription_id: number) {\n return this.api.put(`/admin/tips/${id}`, { ...data, subscription_id });\n }\n\n addTips(data, subscription_id: number) {\n return this.api.post(`/admin/tips`, { ...data, subscription_id });\n }\n addUserTips(data, subscription_id?: number) {\n return this.api.post(`/users/user_tips`, { ...data, subscription_id });\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WindowService {\n /**\n * redirect to the given url\n * NOTE: this does hard page reload\n */\n replaceUrl(url: string) {\n window.location.href = url;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ADMIN_PATH, Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupService {\n private readonly subscription_endpoint = '/subscriptions/';\n private readonly group_communications_endpoint = '/group_communications/';\n private readonly group_definitions_endpoint = '/group_definitions/';\n private readonly groups_endpoint = '/groups/';\n\n ADMIN_PATH = ADMIN_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n // ------------------------------------------------------------\n // Subscription Service\n // ------------------------------------------------------------\n\n getById(id) {\n return this.api.get(`${this.subscription_endpoint}${id}`);\n }\n\n updateAgent(id: number, agent_id: number, data) {\n return this.api.put(\n `${ADMIN_PATH}${this.subscription_endpoint}${id}/agents/${agent_id}`,\n data\n );\n }\n\n getSubscriptionMembers(id: number, paging?: Paging) {\n return this.api.getWithParams(\n `${this.subscription_endpoint}${id}/members`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // ------------------------------------------------------------\n // Group Service\n // ------------------------------------------------------------\n\n getGroupDefinitionById(id: number) {\n return this.api.get(`${this.group_definitions_endpoint}${id}`);\n }\n\n groupDefinitionGetAll(related_entity_id: number, related_entity_type: string, paging?: Paging) {\n return this.api.getWithParams(`${this.group_definitions_endpoint}get_all`, {\n related_entity_id,\n related_entity_type,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n groupDefinitions(data) {\n return this.api.post(`${this.group_definitions_endpoint}`, data);\n }\n\n groupDefinitionsDelete(id: number) {\n return this.api.delete(`${this.group_definitions_endpoint}${id}`);\n }\n\n groupDefinitionsUpdate(id: number, data) {\n return this.api.put(`${this.group_definitions_endpoint}${id}`, data);\n }\n\n // ------------------------------------------------------------\n // Group Service\n // ------------------------------------------------------------\n\n postGroup(data) {\n return this.api.post(this.groups_endpoint, data);\n }\n\n getGroup(id: number) {\n return this.api.get(`${this.groups_endpoint}${id}`);\n }\n\n updateGroup(id: number, data) {\n return this.api.put(`${this.groups_endpoint}${id}`, data);\n }\n\n deleteGroup(id: number) {\n return this.api.delete(`${this.groups_endpoint}${id}`);\n }\n\n addEntityGroup(id: number, data) {\n return this.api.post(`${this.groups_endpoint}${id}/add_entities`, data);\n }\n\n deleteEntityGroup(entityId: number, related_entity_ids, related_entity_type: string) {\n return this.api.delete(\n `${this.groups_endpoint}${entityId}/remove_entity?related_entity_ids=${related_entity_ids}&related_entity_type=${related_entity_type}`\n );\n }\n\n getEntityGroup(id: number) {\n return this.api.get(`/groups/${id}`);\n }\n\n // ------------------------------------------------------------\n // Group Communication Service\n // ------------------------------------------------------------\n\n postCommunications(data) {\n return this.api.post(this.group_communications_endpoint, data);\n }\n\n editCommunications(id: number, data) {\n return this.api.put(`${this.group_communications_endpoint}${id}`, data);\n }\n\n getCommunicationDetails(id: number) {\n return this.api.get(`${this.group_communications_endpoint}${id}`);\n }\n\n deleteCommunications(id: number) {\n return this.api.delete(`${this.group_communications_endpoint}${id}`);\n }\n\n getAllCommunications(\n subscription_id: number,\n communication_type: string,\n group_id: number | string,\n paging?: Paging\n ) {\n return this.api.getWithParams(`${this.group_communications_endpoint}get_all`, {\n subscription_id,\n communication_type,\n group_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAllCommunicationsWithOutGroupId(\n subscription_id: number,\n communication_type: string,\n paging?: Paging\n ) {\n return this.api.getWithParams(`${this.group_communications_endpoint}get_all`, {\n subscription_id,\n communication_type,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n // ------------------------------------------------------------\n // Group Communication Files Service\n // ------------------------------------------------------------\n\n postCommunicationFiles(data) {\n return this.api.post(`/group_communication_files`, data);\n }\n\n deleteCommunicationFiles(id: number) {\n return this.api.delete(`/group_communication_files/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { QUALIFICATIONS_PATH } from '@posiwise/common-utilities';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class QualificationService {\n private readonly endPoint = QUALIFICATIONS_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n addQualifications(data) {\n return this.api.post(this.endPoint, data);\n }\n\n updateQualifications(id: number, data) {\n return this.api.put(`${this.endPoint}/${id}`, data);\n }\n\n deleteQualifications(id: number) {\n return this.api.delete(`${this.endPoint}/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardService {\n constructor(private readonly api: MainApiHttpService) {}\n\n search(keyword: string, subscriptionId: number) {\n return this.api.get(\n `/search/global_search?search_term=${keyword}&subscription_id=${subscriptionId}`\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\nimport { PermissionService } from './permission.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MailBoxService {\n private readonly endpoint = '/mailbox/';\n private readonly checkUnreadCountSubject = new BehaviorSubject<number>(0);\n\n totalUnreadCount$ = this.checkUnreadCountSubject.asObservable();\n\n constructor(private readonly http: MainApiHttpService) {}\n\n getMessages(conversation_id, page_number = 1, page_size = 10) {\n return conversation_id\n ? this.http.get(\n `${this.endpoint}${conversation_id}/messages?page=${page_number}&page_size=${page_size}`\n )\n : of([]);\n }\n\n getConversations() {\n return this.http\n .get(\n `${this.endpoint}conversations?subscription_id=${PermissionService.selectedSubscription.id}`\n )\n .pipe(\n map(c => {\n const count = c\n .map(x => x?.unread_count)\n .reduce((a: number, b: number) => a + b, 0);\n if (count > -1) {\n this.checkUnreadCountSubject.next(count);\n }\n\n return c;\n })\n );\n }\n\n postMessage(data) {\n return this.http.post(`${this.endpoint}compose`, data);\n }\n\n markAsRead(conversation_id) {\n return this.http.post(`${this.endpoint}read`, { conversation_id });\n }\n\n decrementUnreadCount(count: number) {\n const newCount = +this.checkUnreadCountSubject.getValue() - count;\n if (newCount > -1) {\n this.checkUnreadCountSubject.next(newCount);\n }\n }\n\n incrementUnreadCount(count: number) {\n const newCount = +this.checkUnreadCountSubject.getValue() + count;\n if (newCount > -1) {\n this.checkUnreadCountSubject.next(newCount);\n }\n }\n\n deleteMessage(conversationId, messageId) {\n return this.http.delete(\n `${this.endpoint}delete_message?conversation_id=${conversationId}&message_id=${messageId}`\n );\n }\n\n getRecipient(params = {}) {\n return this.http.getWithParams(`${this.endpoint}available_recipients`, params);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\n\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\n\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WebsocketService {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private webSocketSubject: WebSocketSubject<any>;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n webSocket$: Observable<any>;\n\n constructor(\n private readonly appConfigService: AppConfigService,\n private readonly authService: AuthService\n ) {\n this.appConfigService.appConfig$.subscribe(config => {\n const socketLink = config['links'].socket_link;\n const url = `${socketLink}/websockets/websocket?session_token=${btoa(\n this.authService.getToken()\n )}`;\n this.webSocketSubject = webSocket(url);\n this.webSocket$ = this.webSocketSubject.asObservable().pipe(distinctUntilChanged());\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, SOCKET_TYPE } from '@posiwise/common-utilities';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\nimport { WebsocketService } from './socket.service';\nimport { CustomToastService } from './toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n private readonly notificationSubject$ = new BehaviorSubject<string[]>([]);\n\n endpoint = 'notes_read';\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly toastrService: CustomToastService,\n private readonly socketService: WebsocketService\n ) {}\n\n getNotifications(paging?: Paging) {\n return this.api.getWithParams(`/notes?show_on_dashboard=true`, {\n ...paging\n });\n }\n\n getDismissedNotifications(paging?: Paging) {\n return this.api.getWithParams(`/notes?dismissed=true`, {\n ...paging\n });\n }\n\n showNotifications(data) {\n this.notificationSubject$.next(data);\n }\n\n readNotifications() {\n return this.api.put('/user/notes_read', {});\n }\n\n dismissNotification(id: number) {\n const formData = new FormData();\n formData.append('dismissed', 'true');\n formData.append('id', String(id));\n\n return this.api.put(`/notes/${id}/dismiss`, formData).pipe(map(res => JSON.stringify(res)));\n }\n\n deleteNotifications(id: number) {\n return this.api.delete(`/notes/${id}`);\n }\n\n reinstateNotification(id: number) {\n return this.api.put(`/notes/${id}/reinstate`);\n }\n\n notiWebSocket() {\n return this.socketService.webSocket$.pipe(\n map(response => {\n if (response.event === SOCKET_TYPE.NOTI) {\n const notification = response.data;\n // show the toastr for noti which is marked as show_on_toast to true\n if (notification?.show_on_toast) {\n this.toastrService.showToastrOnType(\n notification.toast_type,\n notification.content\n );\n }\n\n return notification;\n }\n\n return null;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataService {\n private readonly messageSource = new BehaviorSubject<number>(0);\n\n currentMessage = this.messageSource.asObservable();\n\n changeMessage(message: number) {\n this.messageSource.next(message);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NumberPickerService {\n /**\n * Min picker value\n */\n min = 0;\n\n /**\n * Max picker value\n */\n max = 100;\n\n /**\n * Pick step value\n */\n step = 1;\n\n /**\n * Delay for start picking values\n */\n pickStartAfter = 500;\n\n /**\n * Delay between each pick\n */\n pickTimer = 100;\n\n /**\n * value precision\n */\n precision = 1;\n\n /**\n * Initial picker value\n */\n value = null;\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ErrorHandler, Injectable } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { User } from '@posiwise/common-utilities';\n\nimport { StatusCodes } from 'http-status-codes';\nimport { fromError } from 'stacktrace-js';\n\nimport * as Sentry from '@sentry/angular-ivy';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SentryErrorHandler implements ErrorHandler {\n private static user: Partial<User>;\n private static sentryInitialized = false;\n\n constructor(private readonly appConfigService: AppConfigService) {}\n\n private async initializeSentryAsync(): Promise<void> {\n if (SentryErrorHandler.sentryInitialized) {\n // Sentry is already initialized, no need to do it again\n return;\n }\n Sentry.createErrorHandler();\n\n const config = await this.getSentryConfigAsync();\n\n this.appConfigService.appConfig$.subscribe(env => {\n if (env?.integrations?.sentry_config) {\n Sentry.init({ ...config, ...env.integrations.sentry_config });\n SentryErrorHandler.sentryInitialized = true;\n\n // Add a global listener for unhandled promise rejections\n window.addEventListener('unhandledrejection', (event: PromiseRejectionEvent) => {\n this.handlePromiseRejection(event);\n });\n }\n });\n // Add a global listener for unhandled promise rejections\n window.addEventListener('unhandledrejection', (event: PromiseRejectionEvent) => {\n this.handlePromiseRejection(event);\n });\n }\n\n private async getSentryConfigAsync(): Promise<Sentry.BrowserOptions> {\n return new Promise(resolve => {\n const environment =\n window.location.host?.includes('dev') || window.location.host?.includes('localhost')\n ? 'development'\n : 'production';\n\n const ignoredPaths = [''];\n const healthCheckPaths = ['/ping'];\n const onePercentIgnoredPaths = [''];\n const fivePercentIgnoredPaths = [''];\n\n const config: Sentry.BrowserOptions = {\n dsn: null,\n tracesSampleRate: 0.1,\n beforeSend(event, hint) {\n // Check if the event is of type CloseEvent and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n // Update the condition based on the actual structure of the event\n return !(\n value.type === 'CloseEvent' || value.value.includes('CloseEvent')\n );\n });\n }\n\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n // Check for the specific error message and ignore it\n return !(\n value.type === 'Error' &&\n value.value.includes('ResizeObserver loop completed')\n );\n });\n }\n\n // originates from vendor.js file\n if (event?.exception?.values) {\n const isJsonParsingError = event.exception.values.some(value => {\n return (\n value.type === 'SyntaxError' &&\n value?.value?.includes(\"expected ':' after property name in\")\n );\n });\n\n if (isJsonParsingError) {\n return null;\n }\n }\n\n // Check if the event is a ChunkLoadError and ignore it (it could be because of poor network)\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'ChunkLoadError' ||\n value.value.includes('ChunkLoadError: Loading chunk')\n );\n });\n }\n\n // Check if the event is a script loading error and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'Error' &&\n value.value.includes('Could not load \"util\"')\n );\n });\n }\n\n // Check if the event is a timeout error and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'Error' &&\n value.value.includes('Error loading plotly.js library from')\n );\n });\n }\n\n // Check if the event is related to cross-origin frame access\n if (event?.exception?.values) {\n const isCrossOriginFrameError = event.exception.values.some(value => {\n return (\n value.type === 'SecurityError' &&\n value?.value?.includes(\n \"Failed to read a named property 'navigator' from 'Window': Blocked a frame with origin\"\n )\n );\n });\n\n if (isCrossOriginFrameError) {\n // Exclude cross-origin frame errors from being reported to Sentry\n return null;\n }\n }\n\n // Check if the event has an exception and values array\n if (event?.exception?.values) {\n // Filter out events generated by TryCatch and GlobalHandlers\n event.exception.values = event.exception.values.filter(value => {\n const mechanism = value.mechanism;\n return !(\n mechanism &&\n (mechanism.type === 'TryCatch' ||\n mechanism.type === 'GlobalHandlers')\n );\n });\n }\n\n // Check if it's a non-error exception\n const isNonErrorException =\n event?.exception?.values?.[0]?.value?.startsWith(\n 'Non-Error exception captured'\n ) ??\n (hint?.originalException as Error)?.message?.startsWith(\n 'Non-Error exception captured'\n );\n\n if (isNonErrorException) {\n // We want to ignore those kinds of errors\n return null;\n }\n\n return event;\n },\n denyUrls: [/drift.*\\.js/i, /analytics.*\\.js/i, /polyfills.*\\.js/i, /vendor.*\\.js/i],\n integrations: [\n // Registers and configures the Tracing integration,\n // which automatically instruments your application to monitor its\n // performance, including custom Angular routing instrumentation\n new Sentry.BrowserTracing({\n routingInstrumentation: Sentry.routingInstrumentation\n })\n ],\n tracesSampler: samplingContext => {\n // Examine provided context data (including parent decision, if any) along\n // with anything in the global namespace to compute the sample rate or\n // sampling decision for this transaction\n const pathname = samplingContext.location.pathname;\n if (ignoredPaths.includes(pathname)) {\n return 0;\n } else if (healthCheckPaths.includes(pathname)) {\n // very low rate as these are extremely frequent and pretty useless\n return 0.001;\n } else if (onePercentIgnoredPaths.includes(pathname)) {\n return 0.01;\n } else if (fivePercentIgnoredPaths.includes(pathname)) {\n return 0.05;\n } else {\n // Default sample rate\n return 0.1;\n }\n },\n environment,\n\n // We ignore Server Errors. We have to define here since Angular\n // http client uses setTimeout to detect http call progress.\n // And when the call fails, it throws an exception inside that timeout\n // that bubbles up higher to the main Angular's error handler.\n ignoreErrors: [\n 'top.GLOBALS',\n 'ResizeObserver loop completed with undelivered notifications'\n ]\n };\n resolve(config);\n });\n }\n initializeUser(user: Partial<User>) {\n SentryErrorHandler.user = {\n id: user?.id,\n name: user?.first_name,\n email: user?.email\n } as Partial<User>;\n }\n\n private handlePromiseRejection(event: PromiseRejectionEvent): void {\n const error = event.reason;\n this.logToSentry(error);\n this.logToConsole(error);\n }\n\n handleError(incomingError: HttpErrorResponse | Error) {\n // in case of 401, return no exception\n if (incomingError instanceof HttpErrorResponse) {\n if (\n incomingError.status === StatusCodes.UNAUTHORIZED ||\n incomingError.status === StatusCodes.FORBIDDEN\n ) {\n // Handle 401 error (e.g., redirect to login page)\n console.error('Unauthorized request:', incomingError);\n return;\n }\n\n if (incomingError.status === StatusCodes.UNPROCESSABLE_ENTITY) {\n // Handle 422 error\n console.error('UNPROCESSABLE_ENTITY request:', incomingError);\n return;\n }\n\n if (incomingError.status === 433) {\n // Handle 433 error\n console.error('over message quota:', incomingError);\n return;\n }\n }\n this.handleExceptionError(incomingError);\n }\n\n handleExceptionError(incomingError) {\n if (incomingError) {\n let error = incomingError; // The actual error to log\n while ('originalError' in error && error.originalError instanceof Error) {\n this.logToConsole(error);\n error = error.originalError;\n }\n this.extractOriginalError(error, incomingError);\n }\n }\n\n extractOriginalError(error, incomingError) {\n // Exclude specific errors\n if (error instanceof HttpErrorResponse) {\n if (error.status === StatusCodes.NOT_FOUND) {\n console.warn('Excluded 404 error:', error);\n return; // Skip logging to Sentry\n }\n if (error.status === 0 && error.statusText === 'Unknown Error') {\n // Handle network-related errors differently or suppress them\n console.warn('Network-related error:', error);\n return; // Don't rethrow the error\n }\n const message = this.getErrorMessage(error);\n error = new Error(`Got HttpErrorResponse on URL ${error.url} message: ${message}`);\n }\n\n this.handleNonHttpErrorResponse(error);\n\n // Ensure all errors have a proper message\n this.errorMessageFormatter(error);\n\n // Existing Sentry initialization logic\n this.sentryInitialization(error, incomingError);\n }\n\n getErrorMessage(error): string {\n let { message } = error;\n if (!message) {\n try {\n message = JSON.stringify(error);\n } catch (e) {\n message =\n typeof error === 'object' && error !== null\n ? JSON.stringify(error)\n : error.toString();\n console.log(e);\n }\n }\n return message;\n }\n\n handleNonHttpErrorResponse(error) {\n if (typeof error === 'object' && 'message' in error) {\n if (error instanceof HttpErrorResponse) {\n if (error.status !== StatusCodes.UNAUTHORIZED) {\n error = new Error(`Object captured as exception: ${error}`); // NOSONAR\n }\n }\n // Exclude reporting 401 errors\n }\n }\n\n errorMessageFormatter(error) {\n if (!(error instanceof Error) || !error.message) {\n const defaultMessage = 'Captured an unlabeled event';\n\n if (error && 'isTrusted' in error) {\n console.warn('Ignored isTrusted browser event:', error);\n return;\n }\n\n const errorDetails = error ? JSON.stringify(error) : 'No more additional error info';\n const enhancedErrorMessage = `${defaultMessage} | Original error detail: ${errorDetails}`;\n error = new Error(enhancedErrorMessage); // NOSONAR\n }\n }\n\n sentryInitialization(error, incomingError) {\n if (!SentryErrorHandler.sentryInitialized) {\n this.initializeSentryAsync()\n .then(() => {\n this.logToSentry(error);\n throw incomingError;\n })\n .catch(err => {\n console.error('Error initializing Sentry:', err);\n this.logToConsole(error);\n });\n } else {\n this.logToSentry(error);\n }\n }\n\n private logToSentry(error: Error) {\n try {\n const user = SentryErrorHandler.user as Error;\n this.scopeWithSentry(error, user);\n } catch (e) {\n console.error('Unable to log the error to Sentry. An exception occurred:');\n console.error(e);\n }\n }\n\n private scopeWithSentry(error, user) {\n Sentry.withScope(scope => {\n // Appends user details for sentry log\n scope.setUser({\n ...user\n });\n\n // Ensure error is properly formatted\n if (error instanceof Error && error.message) {\n Sentry.captureException(error);\n } else if (typeof error === 'object' && error !== null) {\n this.handleNonStandardError(error);\n } else {\n this.handleUnlabeledEvent(error);\n }\n });\n }\n\n private handleNonStandardError(error: object) {\n if ('isTrusted' in error) {\n return;\n }\n // If it's an object but not a standard Error, attempt to log its properties safely\n let errorMessage = 'Captured non-standard error with no message'; // NOSONAR\n\n // Try to extract any message-like property safely\n if ('message' in error) {\n let messageText = '';\n\n if (typeof error.message === 'object' && error.message !== null) {\n messageText = JSON.stringify(error.message);\n } else if (typeof error.message === 'string') {\n messageText = error.message;\n }\n\n errorMessage = `Error message: ${messageText}`;\n } else {\n // Attempt to capture key properties safely\n try {\n errorMessage = `Captured non-standard error: ${JSON.stringify(error, Object.getOwnPropertyNames(error))}`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (jsonError: any) {\n errorMessage = `Captured non-standard error with serialization issue: ${jsonError.message}`;\n }\n }\n\n // Create a new Error object with the enhanced message\n const errorObject = new Error(errorMessage);\n Sentry.captureException(errorObject);\n }\n\n private handleUnlabeledEvent(error) {\n const defaultMessage = 'Captured an unlabeled event';\n\n if (error && 'isTrusted' in error) {\n console.warn('Ignored isTrusted browser event:', error);\n return;\n }\n\n const errorDetails = error ? JSON.stringify(error) : 'No additional error info';\n const enhancedErrorMessage = `${defaultMessage} | Original error details: ${errorDetails}`;\n const enhancedError = new Error(enhancedErrorMessage);\n\n Sentry.captureException(enhancedError);\n }\n\n private logToConsole(error: Error) {\n // Attempt to print in the console\n try {\n // We use StackTrace to try getting a good stacktrace. If it fails, just print the error\n const message = error.message ? error.message : error.toString();\n const url = window.location.href;\n fromError(error instanceof Error ? error : new Error('Non-Error Object')).then(\n stackFrames => {\n const stackString = stackFrames.splice(0, 20).map(sf => sf.toString());\n\n console.error({ message, url, stack: stackString, error });\n }\n );\n } catch (e) {\n console.error(error, e);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LogoCacheService {\n private cache: { [url: string]: string } = {};\n private loadingUrls: { [url: string]: boolean } = {};\n\n constructor() {\n this.loadCache();\n }\n\n getLogo(url: string): string {\n if (this.cache[url]) {\n // If the URL is in the cache, return the base64-encoded image data directly\n return this.cache[url];\n }\n\n // If the URL is already in the process of loading, return the default image\n if (this.loadingUrls[url]) {\n return 'assets/img/icons/company.png';\n }\n\n // Mark the URL as in progress to prevent concurrent requests for the same URL\n this.loadingUrls[url] = true;\n\n // Attempt to load the image\n const img = new Image();\n img.crossOrigin = 'Anonymous'; // Set crossOrigin to handle CORS issues\n img.src = url;\n img.onload = () => {\n // If the image loads successfully (HTTP 200), update the cache with base64 data\n const canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0);\n const base64Data = canvas.toDataURL('image/png');\n this.cache[url] = base64Data;\n this.saveCache();\n // Remove the URL from the in-progress list\n delete this.loadingUrls[url];\n };\n img.onerror = () => {\n // If the image fails to load, update the cache with the default image\n this.cache[url] = 'assets/img/icons/company.png';\n this.saveCache();\n // Remove the URL from the in-progress list\n delete this.loadingUrls[url];\n };\n\n // Return the default image while the image is being loaded\n return 'assets/img/icons/company.png';\n }\n\n private saveCache() {\n localStorage.setItem('Clearbit_Logos_Cache', JSON.stringify(this.cache));\n }\n\n private loadCache() {\n const cacheData = localStorage.getItem('Clearbit_Logos_Cache');\n if (cacheData) {\n this.cache = JSON.parse(cacheData);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ScriptLoaderService } from './script-loader.service';\nimport { TipsService } from './tips.service';\n\ninterface Tour {\n id: string;\n steps: TourStep[];\n}\n\ninterface TourStep {\n target: string;\n title: string;\n content: string;\n placement: string;\n arrowOffset?: number;\n xOffset?: number;\n yOffset?: number;\n isHTML?: boolean;\n showPrevButton?: boolean;\n}\n\ndeclare let window: {\n hopscotch: {\n startTour: (tour: Tour) => void;\n endTour: () => void;\n nextStep: () => void;\n showStep: (stepNumber: number) => void;\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HopscotchService {\n private readonly tour: Tour = {\n id: '',\n steps: []\n };\n\n constructor(\n private readonly scriptLoader: ScriptLoaderService,\n private readonly tipService: TipsService\n ) {}\n\n initializeTour(tourId: string, steps: TourStep[], tip_data, subscription_id?: number): void {\n this.tour.id = tourId;\n this.tour.steps = steps;\n\n this.scriptLoader.loadScript('head', '/assets/js/hopscotch.min.js', true).then(() => {\n window.hopscotch?.startTour(this.tour);\n // eslint-disable-next-line func-names\n window.hopscotch.nextStep = function () {\n const stepNumber = $('.hopscotch-bubble-number').text();\n\n if (this.tour.steps.length === Number(stepNumber)) {\n this.tipService.addUserTips(tip_data, subscription_id).subscribe();\n window?.hopscotch?.endTour();\n } else {\n window.hopscotch.showStep(Number(stepNumber));\n }\n }.bind(this);\n });\n }\n\n endTour(): void {\n if (window?.hopscotch) {\n window?.hopscotch?.endTour();\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { BRAIN_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrainApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n\n override getConfig(): void {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode() ? BRAIN_API_PREFIX : config?.['links']['brain_api'] ?? '';\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BrainApiHttpService } from './brain-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrainApiService {\n constructor(private readonly api: BrainApiHttpService) {}\n\n invokeModel(payload: {\n model_name: 'claude' | 'deepseek';\n prompt: string;\n session_id?: string;\n max_tokens?: number;\n temperature?: number;\n }) {\n return this.api.post('/bedrock/invoke', payload);\n }\n}\n","/*\n * Public API Surface of pw-services\n */\nexport * from './lib/google-analytics.service';\nexport * from './lib/script-loader.service';\nexport * from './lib/base-http.service';\nexport * from './lib/common-services.module';\nexport * from './lib/main-api-http.service';\nexport * from './lib/permission.service';\nexport * from './lib/toast.service';\nexport * from './lib/auth.service';\nexport * from './lib/local-storage.service';\nexport * from './lib/secure-token-storage.service';\nexport * from './lib/integrations-api-http.service';\nexport * from './lib/link-loader.service';\nexport * from './lib/user.service';\nexport * from './lib/custom-preloading.service';\nexport * from './lib/ab-test.service';\nexport * from './lib/geo.service';\nexport * from './lib/profile.service';\nexport * from './lib/subscription.service';\nexport * from './lib/product.service';\nexport * from './lib/validation.service';\nexport * from './lib/form-helper.service';\nexport * from './lib/ahoy.service';\nexport * from './lib/common.service';\nexport * from './lib/date-formatter.service';\nexport * from './lib/primeNgHelper';\nexport * from './lib/tag.service';\nexport * from './lib/tips.service';\nexport * from './lib/window.service';\nexport * from './lib/group.service';\nexport * from './lib/qualification.service';\nexport * from './lib/dashboard.service';\nexport * from './lib/mailbox.service';\nexport * from './lib/notification.service';\nexport * from './lib/socket.service';\nexport * from './lib/effects/user.effects';\nexport * from './lib/data.service';\nexport * from './lib/number-picker.service';\nexport * from './lib/sentry.service';\nexport * from './lib/logo-caching.service';\nexport * from './lib/hopscotch.service';\nexport * from './lib/brain.service';\nexport * from './lib/brain-api-http.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.ScriptLoaderService","i3","i1.MainApiHttpService","i1.UserService","i1.PermissionService","tap","i2","i2.AuthService","i2.CustomToastService","i3.WebsocketService","i1.ScriptLoaderService","i2.TipsService","i1.BrainApiHttpService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"posiwise-common-services.mjs","sources":["../../../../libs/common-services/src/lib/script-loader.service.ts","../../../../libs/common-services/src/lib/google-analytics.service.ts","../../../../libs/common-services/src/lib/toast.service.ts","../../../../libs/common-services/src/lib/base-http.service.ts","../../../../libs/common-services/src/lib/integrations-api-http.service.ts","../../../../libs/common-services/src/lib/local-storage.service.ts","../../../../libs/common-services/src/lib/main-api-http.service.ts","../../../../libs/common-services/src/lib/secure-token-storage.service.ts","../../../../libs/common-services/src/lib/user.service.ts","../../../../libs/common-services/src/lib/auth.service.ts","../../../../libs/common-services/src/lib/effects/user.effects.ts","../../../../libs/common-services/src/lib/common-services.module.ts","../../../../libs/common-services/src/lib/seo.service.ts","../../../../libs/common-services/src/lib/permission.service.ts","../../../../libs/common-services/src/lib/link-loader.service.ts","../../../../libs/common-services/src/lib/custom-preloading.service.ts","../../../../libs/common-services/src/lib/ab-test.service.ts","../../../../libs/common-services/src/lib/geo.service.ts","../../../../libs/common-services/src/lib/profile.service.ts","../../../../libs/common-services/src/lib/subscription.service.ts","../../../../libs/common-services/src/lib/product.service.ts","../../../../libs/common-services/src/lib/validation.service.ts","../../../../libs/common-services/src/lib/form-helper.service.ts","../../../../libs/common-services/src/lib/ahoy.service.ts","../../../../libs/common-services/src/lib/common.service.ts","../../../../libs/common-services/src/lib/date-formatter.service.ts","../../../../libs/common-services/src/lib/primeNgHelper.ts","../../../../libs/common-services/src/lib/tag.service.ts","../../../../libs/common-services/src/lib/tips.service.ts","../../../../libs/common-services/src/lib/window.service.ts","../../../../libs/common-services/src/lib/group.service.ts","../../../../libs/common-services/src/lib/qualification.service.ts","../../../../libs/common-services/src/lib/dashboard.service.ts","../../../../libs/common-services/src/lib/mailbox.service.ts","../../../../libs/common-services/src/lib/socket.service.ts","../../../../libs/common-services/src/lib/notification.service.ts","../../../../libs/common-services/src/lib/data.service.ts","../../../../libs/common-services/src/lib/number-picker.service.ts","../../../../libs/common-services/src/lib/sentry.service.ts","../../../../libs/common-services/src/lib/logo-caching.service.ts","../../../../libs/common-services/src/lib/hopscotch.service.ts","../../../../libs/common-services/src/lib/brain-api-http.service.ts","../../../../libs/common-services/src/lib/brain.service.ts","../../../../libs/common-services/src/index.ts","../../../../libs/common-services/src/posiwise-common-services.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\ninterface Script {\n src: string;\n loaded: boolean;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ScriptLoaderService {\n private _scripts: { [key: string]: Script } = {};\n\n constructor(@Inject(DOCUMENT) private readonly document: Document) {}\n\n load(tag, ...scripts: string[]) {\n scripts.forEach((src: string) => {\n if (!this._scripts[src]) {\n this._scripts[src] = { src, loaded: false };\n }\n });\n\n const promises: object[] = [];\n scripts.forEach(src => promises.push(this.loadScript(tag, src)));\n\n return Promise.all(promises);\n }\n\n loadScripts(tag, scripts, loadOnce?: boolean) {\n loadOnce = loadOnce || false;\n\n scripts.forEach((script: string) => {\n if (!this._scripts[script]) {\n this._scripts[script] = { src: script, loaded: false };\n }\n });\n\n const promises: object[] = [];\n scripts.forEach(script => promises.push(this.loadScript(tag, script, loadOnce)));\n\n return Promise.all(promises);\n }\n\n loadScript(tag, src: string, loadOnce?: boolean) {\n const isLoad = loadOnce || false;\n\n if (!this._scripts[src]) {\n this._scripts[src] = { src, loaded: false };\n }\n\n return new Promise((resolve, _reject) => {\n // resolve if already loaded\n if (this._scripts[src].loaded && isLoad) {\n // NOSONAR\n resolve({ src, loaded: true });\n } else {\n // load script tag\n const scriptTag = document.createElement('script');\n scriptTag.type = 'text/javascript';\n scriptTag.src = this._scripts[src].src;\n\n scriptTag.onload = () => {\n this._scripts[src].loaded = true;\n resolve({ src, loaded: true });\n };\n\n scriptTag.onerror = () => {\n // Handle script loading error (if needed)\n console.error(`Failed to load script: ${src}`);\n resolve({ src, loaded: false });\n };\n\n document.getElementsByTagName(tag)[0].appendChild(scriptTag);\n }\n });\n }\n\n loadStyle(styleUrl: string) {\n const head = this.document.getElementsByTagName('head')[0];\n\n const style = this.document.createElement('link');\n style.id = 'client-theme';\n style.rel = 'stylesheet';\n style.href = styleUrl;\n\n head.appendChild(style);\n }\n}\n","import { Injectable } from '@angular/core';\nimport { NavigationEnd, Router } from '@angular/router';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\n\nimport { Subscription } from 'rxjs';\n\nimport { ScriptLoaderService } from './script-loader.service';\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ga: any;\n }\n}\n\n@Injectable()\nexport class GoogleAnalyticsService {\n private static trackingId: string;\n private subscription: Subscription;\n\n constructor(\n private readonly router: Router,\n private readonly scriptLoader: ScriptLoaderService,\n private readonly appConfigService: AppConfigService\n ) {}\n\n private isGaAvailable(): boolean {\n return typeof window.ga !== 'undefined';\n }\n\n loadGScript(): Promise<void> {\n return new Promise<void>((resolve, reject) => {\n if (this.isGaAvailable()) {\n resolve(); // GA is already loaded, no need to load again.\n return;\n }\n this.appConfigService.appConfig$.subscribe(config => {\n this.scriptLoader\n .loadScript('head', 'https://www.google-analytics.com/analytics.js', true)\n .then(() => {\n this.pushArgumentsGA();\n window.ga.l = Date.now();\n GoogleAnalyticsService.trackingId = config.integrations.google_analytics;\n window.ga('create', GoogleAnalyticsService.trackingId, 'auto');\n resolve(); // Resolve the promise once the script is loaded and ga is initialized\n })\n .catch(error => {\n console.error('Error loading Google Analytics script:', error);\n reject(error instanceof Error ? error : new Error(error));\n });\n });\n });\n }\n\n pushArgumentsGA() {\n if (typeof window.ga === 'undefined') {\n window.ga = function (...args) {\n window.ga.q ??= [];\n window.ga.q.push(args);\n };\n window.ga.q = [];\n window.ga.l = +new Date();\n }\n }\n\n private addOneTimeTrackingListeners(url: string): void {\n const handler = () => {\n if (this.isGaAvailable()) {\n window.ga('set', 'page', url);\n window.ga('send', 'pageview');\n }\n };\n\n ['mousemove', 'scroll', 'touchstart'].forEach(eventName => {\n window.addEventListener(eventName, handler, { once: true });\n });\n }\n\n subscribe() {\n this.subscription ??= this.router.events.subscribe(e => {\n if (e instanceof NavigationEnd) {\n // Ensure that the Google Analytics script is loaded before using the ga function\n this.loadGScript().then(() => {\n try {\n this.addOneTimeTrackingListeners(e.urlAfterRedirects);\n } catch {\n console.error('Tracking not found -- make sure you installed the scripts');\n }\n });\n }\n });\n }\n\n /**\n * Emit google analytics event\n * Fire event example:\n * this.sendEvent(\"testCategory\", \"testAction\", \"testLabel\", 10);\n * @param {string} eventCategory\n * @param {string} eventAction\n * @param {string} eventLabel\n * @param {number} eventValue\n */\n sendEvent(\n eventCategory: string,\n eventAction: string,\n eventLabel: string = null,\n eventValue: number = null\n ) {\n if (this.isGaAvailable()) {\n window.ga('send', 'event', {\n eventCategory,\n eventAction,\n eventLabel,\n eventValue\n });\n } else {\n console.error('Google Analytics tracking not available.');\n }\n }\n\n /**\n * Enable UserId Tracking for Google Analytics\n * @param user\n */\n setUserContext(user) {\n if (GoogleAnalyticsService.trackingId) {\n if (this.isGaAvailable()) {\n window.ga('set', 'userId', user?.id);\n }\n }\n }\n\n unsubscribe() {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomToastService {\n constructor(private readonly toastr: ToastrService) {}\n\n success(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n if (message) {\n this.toastr.success(message, title, { ...options, timeOut: 10000 });\n }\n }\n\n error(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n options = {\n ...options,\n timeOut: 20000\n };\n if (message) {\n this.toastr.error(message, title, options);\n }\n }\n\n info(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n // disable auto timeout, toast would close on click (to disable auto timeout please use this attribute disableTimeOut:true in options)\n options = { ...options, timeOut: 30000, enableHtml: true };\n if (message) {\n this.toastr.info(\n `<div class=\"d-flex align-items-center\">\n <i class=\"fa fa-info-circle\" aria-hidden=\"true\"></i>\n <div>${message}</div>\n </div>`,\n title,\n options\n );\n }\n }\n\n warning(message: string, title = '', options: Partial<IndividualConfig> = {}) {\n // disable auto timeout, toast would close on click (to disable auto timeout please use this attribute disableTimeOut:true in options)\n options = { ...options, timeOut: 30000 };\n if (message) {\n this.toastr.warning(message, title, options);\n }\n }\n\n showToast(errorResponse) {\n const message = HelperService.getErrorMessage(errorResponse.error);\n\n // clear all the toastr before showing something went wrong\n if (errorResponse.message?.includes('Something went wrong')) {\n this.clear();\n }\n if (errorResponse?.status === 503) {\n this.error(errorResponse?.error, '', { enableHtml: true });\n }\n\n this.showToastrOnType(errorResponse?.error?.type, message);\n }\n\n clear() {\n this.toastr.clear();\n }\n\n showToastrOnType(type: string, message: string): void {\n if (!message || !type) {\n return;\n }\n\n switch (type) {\n case 'success':\n this.success(message);\n break;\n case 'error':\n this.error(message);\n break;\n case 'info':\n this.info(message);\n break;\n case 'warning':\n this.warning(message);\n break;\n default:\n this.error(message);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport { CustomToastService } from './toast.service';\n\n@Injectable()\nexport abstract class BaseHttpService {\n protected baseUrl = '';\n\n private readonly toast: CustomToastService;\n\n abstract getConfig(): void;\n\n constructor(\n public http: HttpClient,\n public injector: Injector\n ) {\n this.getConfig();\n this.toast = injector.get(CustomToastService);\n }\n\n get<T>(url): Observable<any> {\n return this.http.get<T>(`${this.baseUrl}${url}`).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getWithParams<T>(url, params): Observable<any> {\n // eslint-disable-next-line no-restricted-syntax\n for (const k in params) {\n // Sending a param as \"null\" or \"undefined\" makes the value a string called \"null\"\n // or \"undefined\" which is not what we want. In such cases, just don't sent any param.\n if ([null, undefined].includes(params[k])) {\n delete params[k];\n }\n }\n\n return this.http.get<T>(`${this.baseUrl}${url}`, { params }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n post<T>(url, params = {}): Observable<any> {\n return this.http.post<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n put<T>(url, params = {}): Observable<any> {\n return this.http.put<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n patch<T>(url, params = {}): Observable<any> {\n return this.http.patch<T>(`${this.baseUrl}${url}`, params).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n delete<T>(url, option = {}): Observable<any> {\n return this.http.delete<T>(`${this.baseUrl}${url}`, option).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n upload(url, file: File, param): Observable<any> {\n const formData = new FormData();\n formData.append(param, file);\n const headers = new HttpHeaders({ enctype: 'multipart/form-data' });\n\n return this.http.put(`${this.baseUrl}${url}`, formData, { headers }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n uploadWithData(url: string, data): Observable<any> {\n const formData = new FormData();\n // eslint-disable-next-line no-restricted-syntax\n for (const item in data) {\n if (Object.hasOwn(data, item)) {\n formData.append(item, data[item]);\n }\n }\n\n const headers = new HttpHeaders({ enctype: 'multipart/form-data' });\n\n return this.http.post(`${this.baseUrl}${url}`, formData, { headers }).pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n handleError(error: HttpErrorResponse): void {\n if (error?.error?.status_code !== 'unauthorized__REMOVED_X_TESTING') {\n if (error?.error?.status === 401) {\n this.toast.clear();\n }\n\n this.toast.showToast(error);\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { INTEGRATIONS_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IntegrationsApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n getConfig() {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode()\n ? INTEGRATIONS_API_PREFIX\n : config?.['links']?.integrations_api;\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { of } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LocalStorage {\n getItem$(key: string) {\n return of(localStorage.getItem(key));\n }\n\n setItem$(key: string, value: string) {\n return of(localStorage.setItem(key, value));\n }\n\n removeItem$(key: string) {\n return of(localStorage.removeItem(key));\n }\n\n clear$() {\n return of(localStorage.clear());\n }\n\n clearAll() {\n return localStorage.clear();\n }\n\n getItem(key: string) {\n return localStorage.getItem(key);\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { MAIN_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MainApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n getConfig() {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode() ? MAIN_API_PREFIX : config?.['links']?.main_api;\n });\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable, of } from 'rxjs';\n\n/**\n * Secure Token Storage Service\n *\n * This service provides secure token storage using memory + secure cookies.\n * NO localStorage usage - tokens are stored only in memory and secure cookies.\n *\n * Security Features:\n * - Memory storage (primary) - not persistent across refreshes\n * - Secure cookies (backup) - with SameSite=Strict protection\n * - No localStorage - prevents XSS token theft\n * - Secure flag for HTTPS\n * - CSRF protection via SameSite cookies\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class SecureTokenStorageService {\n private readonly TOKEN_COOKIE_NAME = 'auth_token';\n private readonly IMPERSONATED_TOKEN_COOKIE_NAME = 'user_impersonated_token';\n private readonly PHONEGAP_TOKEN_COOKIE_NAME = 'user_impersonated_phonegap_token';\n\n // In-memory fallback for development or when cookies are not available\n private readonly memoryStorage = new Map<string, string>();\n private readonly tokenSubject = new BehaviorSubject<string | null>(null);\n private readonly impersonatedTokenSubject = new BehaviorSubject<string | null>(null);\n private readonly phonegapTokenSubject = new BehaviorSubject<string | null>(null);\n\n constructor(@Inject(DOCUMENT) private readonly document: Document) {\n this.initializeTokens();\n }\n\n /**\n * Store authentication token securely\n */\n storeToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.TOKEN_COOKIE_NAME, token);\n\n this.tokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store token, using memory fallback:', error);\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, token);\n this.tokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Store impersonated user token\n */\n storeImpersonatedToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.impersonatedTokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store impersonated token, using memory fallback:', error);\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, token);\n this.impersonatedTokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Store phonegap impersonated token\n */\n storePhonegapToken(token: string): Observable<boolean> {\n try {\n // Store ONLY in memory and secure cookie - NO localStorage\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.setSecureCookie(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.phonegapTokenSubject.next(token);\n return of(true);\n } catch (error) {\n console.warn('Failed to store phonegap token, using memory fallback:', error);\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, token);\n this.phonegapTokenSubject.next(token);\n return of(true);\n }\n }\n\n /**\n * Get authentication token\n */\n getToken(): string | null {\n // Try memory storage first (primary storage)\n const memoryToken = this.memoryStorage.get(this.TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n // Try cookie as backup\n const cookieToken = this.getCookieValue(this.TOKEN_COOKIE_NAME);\n if (cookieToken) {\n // Restore to memory storage\n this.memoryStorage.set(this.TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get impersonated token\n */\n getImpersonatedToken(): string | null {\n const memoryToken = this.memoryStorage.get(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n const cookieToken = this.getCookieValue(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n if (cookieToken) {\n this.memoryStorage.set(this.IMPERSONATED_TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get phonegap token\n */\n getPhonegapToken(): string | null {\n const memoryToken = this.memoryStorage.get(this.PHONEGAP_TOKEN_COOKIE_NAME);\n if (memoryToken) {\n return memoryToken;\n }\n\n const cookieToken = this.getCookieValue(this.PHONEGAP_TOKEN_COOKIE_NAME);\n if (cookieToken) {\n this.memoryStorage.set(this.PHONEGAP_TOKEN_COOKIE_NAME, cookieToken);\n return cookieToken;\n }\n\n return null;\n }\n\n /**\n * Get token as Observable\n */\n getToken$(): Observable<string | null> {\n return this.tokenSubject.asObservable();\n }\n\n /**\n * Get impersonated token as Observable\n */\n getImpersonatedToken$(): Observable<string | null> {\n return this.impersonatedTokenSubject.asObservable();\n }\n\n /**\n * Get phonegap token as Observable\n */\n getPhonegapToken$(): Observable<string | null> {\n return this.phonegapTokenSubject.asObservable();\n }\n\n /**\n * Remove all tokens\n */\n clearTokens(): Observable<boolean> {\n try {\n // Clear cookies\n this.deleteCookie(this.TOKEN_COOKIE_NAME);\n this.deleteCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.deleteCookie(this.PHONEGAP_TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to clear cookies:', error);\n }\n\n // Clear memory storage\n this.memoryStorage.delete(this.TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.PHONEGAP_TOKEN_COOKIE_NAME);\n\n // Update subjects\n this.tokenSubject.next(null);\n this.impersonatedTokenSubject.next(null);\n this.phonegapTokenSubject.next(null);\n\n return of(true);\n }\n\n /**\n * Remove specific token\n */\n removeToken(): Observable<boolean> {\n try {\n this.deleteCookie(this.TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to remove token:', error);\n }\n\n this.memoryStorage.delete(this.TOKEN_COOKIE_NAME);\n this.tokenSubject.next(null);\n return of(true);\n }\n\n /**\n * Remove impersonated tokens\n */\n removeImpersonatedTokens(): Observable<boolean> {\n try {\n this.deleteCookie(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.deleteCookie(this.PHONEGAP_TOKEN_COOKIE_NAME);\n } catch (error) {\n console.warn('Failed to remove impersonated tokens:', error);\n }\n\n this.memoryStorage.delete(this.IMPERSONATED_TOKEN_COOKIE_NAME);\n this.memoryStorage.delete(this.PHONEGAP_TOKEN_COOKIE_NAME);\n this.impersonatedTokenSubject.next(null);\n this.phonegapTokenSubject.next(null);\n return of(true);\n }\n\n /**\n * Set secure cookie\n * Note: HttpOnly cannot be set from client-side JavaScript\n * For maximum security, backend should set httpOnly cookies\n */\n private setSecureCookie(name: string, value: string): void {\n const isSecure = this.document.location.protocol === 'https:';\n\n // Set cookie with maximum security possible from client-side\n const cookieString = `${name}=${value}; Path=/; ${isSecure ? 'Secure; ' : ''}SameSite=Strict; Max-Age=86400`;\n this.document.cookie = cookieString;\n\n // Log warning about security limitations\n console.warn(\n '⚠️ SECURITY WARNING: Cookie is not httpOnly. For maximum security, backend should set httpOnly cookies.'\n );\n }\n\n /**\n * Get cookie value\n */\n private getCookieValue(name: string): string | null {\n const value = `; ${this.document.cookie}`;\n const parts = value.split(`; ${name}=`);\n if (parts.length === 2) {\n return parts.pop()?.split(';').shift() || null;\n }\n return null;\n }\n\n /**\n * Delete cookie\n */\n private deleteCookie(name: string): void {\n this.document.cookie = `${name}=; Path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;`;\n }\n\n /**\n * Initialize tokens from storage on service startup\n */\n private initializeTokens(): void {\n const token = this.getToken();\n const impersonatedToken = this.getImpersonatedToken();\n const phonegapToken = this.getPhonegapToken();\n\n if (token) {\n this.tokenSubject.next(token);\n }\n if (impersonatedToken) {\n this.impersonatedTokenSubject.next(impersonatedToken);\n }\n if (phonegapToken) {\n this.phonegapTokenSubject.next(phonegapToken);\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AppState, getUser, UserState } from '@posiwise/app-store';\nimport { Paging, User, USER_PATH } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { Observable, tap } from 'rxjs';\n\nimport { Store } from '@ngrx/store';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UserService {\n private readonly endpoint = USER_PATH;\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly store: Store<AppState>,\n private readonly router: Router\n ) {}\n\n getUserState(): Observable<UserState> {\n return this.store.select(getUser);\n }\n\n getUserInfo() {\n return this.api.get(this.endpoint).pipe(\n tap((data: User) => {\n // enforce 2fa\n if (data?.auth?.should_enforce_2fa) {\n this.router.navigate(['settings/security']);\n }\n })\n );\n }\n\n followUser(id: number) {\n return this.api.post(`${this.endpoint}/toggle_relationship/${id}`);\n }\n\n sendSSOActivationEmail() {\n return this.api.post(`/cognito/create_cognito_user`);\n }\n\n updateSlug(slug: string) {\n return this.api.put(`${this.endpoint}/update_slug`, { slug });\n }\n\n getCurrentUserObject(object_type: string) {\n return this.api.get(`${this.endpoint}/get_current_user_object?object=${object_type}`);\n }\n\n updateEmail(data: { [key: string]: string }) {\n const formData = new FormData();\n formData.append('email', data['email']);\n formData.append('confirmation_path', data['confirmation_path']);\n\n return this.api.put(`${this.endpoint}/email`, formData);\n }\n\n checkPassword(data: { password: string }) {\n return this.api.post(`${this.endpoint}/check_password`, data);\n }\n\n confirmUser(\n confirmation_token: string,\n email: string,\n password: string,\n password_confirmation: string\n ) {\n const formData = new FormData();\n formData.append('confirmation_token', confirmation_token);\n formData.append('email', email);\n formData.append('password', password);\n formData.append('password_confirmation', password_confirmation);\n\n return this.api.put(`${this.endpoint}/confirm`, formData);\n }\n\n checkTokenValidity(type: string, token: string, email: string) {\n return this.api.get(\n `${this.endpoint}/check_token_validity?type=${type}&confirmation_token=${token}&email=${email}`\n );\n }\n\n getUserNotifications() {\n return this.api.get(`${this.endpoint}/user_notifications`);\n }\n\n addAvatar(file: File) {\n return this.api.upload(this.endpoint, file, 'avatar');\n }\n\n createTwoFactorAuthenticator() {\n return this.api.put(`/two_factor_authenticator/create`);\n }\n\n verifyTwoFactorAuthenticator(google_code: string) {\n return this.api.post(`/two_factor_authenticator/verification_code`, { google_code });\n }\n\n enableTwoFactorAuthenticator(google_code: string) {\n return this.api.put(`/two_factor_authenticator/enable`, { google_code });\n }\n\n disableTwoFactorAuthenticator() {\n return this.api.put(`/two_factor_authenticator/disable`);\n }\n\n // User API Ends\n\n validateNewEmail(confirmationToken: string) {\n return this.api.get(\n `${this.endpoint}/new_email_confirm?confirmation_token=${confirmationToken}`\n );\n }\n\n getUserSubscriptions(id: number) {\n return this.api.get(`/users/${id}/subscriptions`);\n }\n\n addNewSubscriptionUsingStripe(data) {\n return this.api.post('/signups/trial_user_stripe_account', data);\n }\n\n updatePassword(data: {\n password: string;\n password_confirmation: string;\n old_password: string;\n }) {\n return this.api.put('/password/update', data);\n }\n\n getUserInvoices(paging: Paging, id: number) {\n return this.api.getWithParams(`${this.endpoint}/invoices`, {\n ...HelperService.getPagingParams(paging),\n user_id: id\n });\n }\n\n postTipsDisregarded(data: { tip_id: number; disregarded: boolean }) {\n return this.api.post('/users/user_tips', data);\n }\n}\n","import { DOCUMENT } from '@angular/common';\nimport { HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport {\n CAPTCHA_VALIDATION_PATH,\n NEWSLETTER_CONFIRMATION_PATH,\n NEWSLETTER_UNSUBSCRIBE_PATH,\n SOCIAL_LOGIN_PATH,\n TOKEN_HEADER_KEY,\n TOKEN_KEY\n} from '@posiwise/common-utilities';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\nimport swal from 'sweetalert2';\n\nimport { SignUpValues } from './common-services.interface';\nimport { IntegrationsApiHttpService } from './integrations-api-http.service';\nimport { LocalStorage } from './local-storage.service';\nimport { MainApiHttpService } from './main-api-http.service';\nimport { SecureTokenStorageService } from './secure-token-storage.service';\nimport { CustomToastService } from './toast.service';\nimport { UserService } from './user.service';\n\n@Injectable()\nexport class AuthService {\n private readonly platformSubject = new BehaviorSubject<string>('');\n private readonly twitterEndpoint = '/twitter';\n\n auth_token: string;\n header_key = 'browser';\n platform = '';\n\n platform$ = this.platformSubject.asObservable();\n\n isUserPersonated: boolean;\n\n constructor(\n private readonly localStorage: LocalStorage,\n private readonly secureTokenStorage: SecureTokenStorageService,\n private readonly router: Router,\n private readonly http: MainApiHttpService,\n private readonly userService: UserService,\n private readonly toastr: CustomToastService,\n private readonly appConfigService: AppConfigService,\n private readonly integrationsApi: IntegrationsApiHttpService,\n @Inject(DOCUMENT) private readonly document: Document\n ) {\n // Set Header Key\n this.setHeaderKey();\n }\n\n getToken() {\n if (this.secureTokenStorage.getImpersonatedToken()) {\n this.isUserPersonated = true;\n return this.secureTokenStorage.getImpersonatedToken();\n }\n if (this.secureTokenStorage.getPhonegapToken()) {\n this.isUserPersonated = true;\n return this.secureTokenStorage.getPhonegapToken();\n }\n\n this.isUserPersonated = false;\n return this.secureTokenStorage.getToken();\n }\n\n getImpersonatedToken() {\n return (\n this.secureTokenStorage.getImpersonatedToken() ||\n this.secureTokenStorage.getPhonegapToken()\n );\n }\n\n setHeaderKey() {\n // Mobile: app\n // Website: browser\n this.getHeaderKey().subscribe({\n next: (key: string) => {\n if (key === null) {\n this.header_key = 'browser';\n this.platformSubject.next('browser');\n } else if (key === 'app') {\n this.header_key = key;\n this.platformSubject.next(key);\n }\n },\n error: () => {\n this.header_key = 'browser';\n }\n });\n }\n\n signUpUser(values: SignUpValues) {\n const formData = new FormData();\n formData.append('confirmation_path', values.confirmation_path);\n formData.append('contact_name', values.contact_name);\n formData.append('email', values.email);\n formData.append('user_signup_url', values.user_signup_url);\n formData.append('organisation', values.organisation);\n formData.append('product_id', values.product_id.toString());\n formData.append('units', values.units.toString());\n formData.append('stripe_token', values.stripe_token);\n formData.append('master_subscription_id', values.master_subscription_id.toString());\n\n return this.http.post('signups', formData);\n }\n\n trialSignUp(data: object) {\n return this.http.post('signups/trial_signup', data);\n }\n\n validateEmail(email: string) {\n const params = {\n email\n };\n\n return this.http.getWithParams('users/validate_email', params);\n }\n\n forgotPassword(email: string, reset_path: string) {\n const params = {\n email,\n reset_path\n };\n\n return this.http.getWithParams('password', params);\n }\n\n resetPassword(password: string, confirm_password: string, password_reset_token: string) {\n const formData = new FormData();\n formData.append('password', password);\n formData.append('password_confirmation', confirm_password);\n formData.append('reset_password_token', password_reset_token);\n\n return this.http.put('password', formData);\n }\n\n header() {\n if (this.header_key === 'browser') {\n const headers = new HttpHeaders({\n [TOKEN_HEADER_KEY]: btoa(this.auth_token)\n });\n\n return headers;\n }\n const headers = new HttpHeaders({\n 'X-Phonegap-Token': btoa(this.auth_token)\n });\n\n return headers;\n }\n\n private getHeaderKey() {\n return this.localStorage.getItem$('platform');\n }\n\n private getPlatform() {\n return this.localStorage.getItem$('platform');\n }\n\n signInUser(email: string, password: string) {\n const formData = new FormData();\n formData.append('email', email);\n formData.append('password', password);\n\n return this.http.post('session', formData);\n }\n\n signInUserWith2Fa(email: string, password: string, google_code) {\n const formData = new FormData();\n formData.append('email', email);\n formData.append('password', password);\n formData.append('google_code', google_code);\n\n return this.http.post('session', formData);\n }\n\n storeToken(token: string) {\n return this.secureTokenStorage.storeToken(token);\n }\n\n storePlatform(plat: string) {\n return this.localStorage.setItem$('platform', plat);\n }\n\n logout() {\n const options = {\n headers: this.header()\n };\n\n if (this.header_key !== 'browser') {\n options['params'] = {\n phonegap: true\n };\n }\n\n // Clear all tokens securely\n this.secureTokenStorage.clearTokens().subscribe();\n\n return this.http.delete('session', options);\n }\n\n /**\n * Clear all authentication tokens\n */\n clearTokens() {\n return this.secureTokenStorage.clearTokens();\n }\n\n /**\n * Remove only impersonation tokens (not all tokens)\n */\n removeImpersonationTokens() {\n return this.secureTokenStorage.removeImpersonatedTokens();\n }\n\n getToken$() {\n return this.secureTokenStorage.getToken$();\n }\n\n getNewsletterSubscription(token: string) {\n return this.http.get(`${NEWSLETTER_CONFIRMATION_PATH}?token=${token}`);\n }\n\n unsubscribeNewsletter(token: string) {\n return this.http.get(`${NEWSLETTER_UNSUBSCRIBE_PATH}?token=${token}`);\n }\n\n validateReCaptcha(token: string) {\n return this.http.get(`${CAPTCHA_VALIDATION_PATH}=${token}`);\n }\n\n socialLogin(data) {\n return this.http.post(SOCIAL_LOGIN_PATH, data);\n }\n\n twitterLogin() {\n return this.http.get(`${this.twitterEndpoint}/get_authorize_url`);\n }\n\n twitterAuthCallback(data) {\n return this.http.post(`${this.twitterEndpoint}/authorization_callback`, data);\n }\n\n microsoftLogin() {\n return this.http.get(`microsoft/get_authorize_url`);\n }\n\n cognitoLogin() {\n return this.http.get(`cognito/get_authorize_url`);\n }\n\n microsoftAuthCallback(data) {\n return this.http.post(`microsoft/authorization_callback`, data);\n }\n\n googleLogin() {\n return this.http.get(`google/get_authorize_url`);\n }\n\n googleAuthCallback(data) {\n return this.http.post(`google/authorization_callback`, data);\n }\n\n facebookLogin() {\n return this.http.get(`facebook/get_authorize_url`);\n }\n\n facebookAuthCallback(data) {\n return this.http.post(`facebook/authorization_callback`, data);\n }\n\n appleLogin() {\n return this.http.get(`apple/get_authorize_url`);\n }\n\n appleAuthCallback(data) {\n return this.http.post(`apple/authorization_callback`, data);\n }\n\n cognitoAuthCallback(data) {\n return this.http.post(`cognito/authorization_callback`, data);\n }\n\n linkedinLogin() {\n return this.appConfigService.appConfig$.pipe(\n switchMap(config => {\n return this.http.get(\n `/linkedin/get_authorize_url?redirect_url=${config['links'].frontend_link}/linkedin-confirmation`\n );\n })\n );\n }\n\n linkedInAuthCallback(data) {\n return this.http.post('linkedin/authorization_callback', data);\n }\n\n postLogin(response) {\n this.localStorage.removeItem$('product_id').subscribe();\n this.setHeaderKey();\n // this.setPlatform(); call it from cloudolive repo.\n\n // Saves the token into the localStorage and fetches the user information\n const sequence$ = this.storeToken(response[TOKEN_KEY]).pipe(\n switchMap(() => {\n return this.userService.getUserInfo();\n })\n );\n\n sequence$.subscribe(resp => {\n localStorage.setItem('name', resp.first_name);\n this.router.navigate(['home']);\n if ($('.cc-dismiss').length > 0) {\n $('.cc-dismiss')[0].click();\n }\n\n return true;\n });\n }\n\n impersonateUser(data: { email: string; subscription_id: number; phonegap?: boolean }) {\n if (!data.phonegap) {\n delete data.phonegap;\n }\n\n return this.http.post('/session/impersonate_user', data).pipe(\n map(x => {\n if (x?.auth_token) {\n this.secureTokenStorage.storeImpersonatedToken(x.auth_token);\n }\n if (x?.phonegap_token) {\n this.secureTokenStorage.storePhonegapToken(x.phonegap_token);\n }\n\n return x;\n })\n );\n }\n\n postSocialLogin(response) {\n const alreadySigned = !!response[TOKEN_KEY];\n const isNewSignUp = !!response.subscription;\n\n if (isNewSignUp) {\n this.router.navigate(['confirmation'], {\n queryParams: {\n ref: response.reference_number,\n subscription: response.subscription,\n users: response.users\n }\n });\n } else if (alreadySigned) {\n this.storeToken(response[TOKEN_KEY]).subscribe({\n next: () => {\n this.router.navigate(['home']);\n },\n error: error => {\n this.toastr.showToast(error);\n }\n });\n } else {\n swal.fire({\n toast: true,\n position: 'bottom',\n html: `<strong class=\"text-danger\"> ${response.error.message}</strong>`,\n showCancelButton: true,\n reverseButtons: true,\n icon: 'error'\n }).then(rep => {\n if (rep.value) {\n this.router.navigate(['register']);\n }\n });\n }\n }\n\n registerTokenListener() {\n window.addEventListener('storage', data => {\n // logs out the other tabs when the token is changed.\n // we assume that token doesn't refresh and backend updates the expiry time\n if (data?.key === TOKEN_KEY && data?.oldValue !== data?.newValue) {\n this.document.location.reload();\n }\n });\n }\n}\n","import { inject, Injectable } from '@angular/core';\n\nimport { SetUser, UserActionTypes } from '@posiwise/app-store';\n\nimport { Observable } from 'rxjs';\nimport { map, mergeMap } from 'rxjs/operators';\n\nimport { Actions, createEffect, ofType } from '@ngrx/effects';\nimport { Action } from '@ngrx/store';\n\nimport { UserService } from '../user.service';\n\n/* NgRx */\n@Injectable()\nexport class UserEffects {\n private readonly actions$ = inject(Actions);\n constructor(private readonly userService: UserService) {}\n\n loadUser$: Observable<Action> = createEffect(() => {\n return this.actions$.pipe(\n ofType(UserActionTypes.GET_USER),\n // take(1),\n mergeMap(() =>\n this.userService.getUserInfo().pipe(\n map(response => new SetUser(response))\n // catchError(err => of(new userActions.LoadFail(err)))\n )\n )\n );\n });\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { appReducers } from '@posiwise/app-store';\n\nimport { EffectsModule } from '@ngrx/effects';\nimport { StoreModule } from '@ngrx/store';\n\nimport { AuthService } from './auth.service';\nimport { UserEffects } from './effects/user.effects';\n\n@NgModule({\n imports: [CommonModule, EffectsModule.forRoot([UserEffects]), StoreModule.forRoot(appReducers)],\n providers: [AuthService]\n})\nexport class CommonServicesModule {}\n","import { Injectable } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SeoService {\n constructor(\n private meta: Meta,\n private titleService: Title\n ) {}\n\n /**\n * Set SEO metadata for a page\n * @param title - Page title\n * @param description - Meta description\n * @param keywords - Meta keywords (optional)\n */\n setSEO(title: string, description: string, keywords?: string): void {\n // Set page title\n this.titleService.setTitle(title);\n\n // Set meta description\n this.meta.updateTag({ name: 'description', content: description });\n\n // Set keywords if provided\n if (keywords) {\n this.meta.updateTag({ name: 'keywords', content: keywords });\n }\n\n // Set Open Graph tags\n this.meta.updateTag({ property: 'og:title', content: title });\n this.meta.updateTag({ property: 'og:description', content: description });\n this.meta.updateTag({ property: 'og:type', content: 'website' });\n\n // Set Twitter Card tags\n this.meta.updateTag({ name: 'twitter:title', content: title });\n this.meta.updateTag({ name: 'twitter:description', content: description });\n this.meta.updateTag({ name: 'twitter:card', content: 'summary' });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ADMIN_SUB_MENU_WHITELIST, PERMISSION_NAMES, User } from '@posiwise/common-utilities';\n\nimport cloneDeep from 'lodash/cloneDeep';\nimport pickBy from 'lodash/pickBy';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PermissionService {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static selectedProduct: any; // NOSONAR\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static selectedSubscription: any; // NOSONAR\n\n user: User = null;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n setCurrentSubscription(subscription) {\n PermissionService.selectedSubscription = subscription;\n }\n\n isGranted(\n permissionName: string,\n productKey = null,\n permission_key = null,\n productSlug = null\n ): boolean {\n if (this.user) {\n const { user } = this;\n\n // Admin have access to all the menus.\n // E.g., Pages.SuperAdmin\n if (this.isSuperAdmin()) {\n return true;\n }\n\n if (permissionName) {\n permissionName = this.getFormattedPermissionName(permissionName, productSlug);\n }\n\n // Returning true if user has a given permission\n // E.g., Pages.Role.CloudOlive.SalesManager\n // or Pages.Beta or Pages.Alpha\n\n if (permissionName?.includes('||')) {\n const parts = permissionName.split('||').map(p => p.trim());\n if (this.hasAnyGrantedPermission(parts, user)) {\n return true;\n }\n } else if (user['auth']?.['granted'][permissionName]) {\n return true;\n }\n\n const filteredPermissions = this.handleProductKey(\n productKey,\n user,\n permission_key,\n permissionName\n );\n\n if (filteredPermissions) {\n return filteredPermissions;\n }\n\n // no valid permission was detected for this user\n return false;\n }\n // user not logged-in\n return false;\n }\n\n private hasAnyGrantedPermission(parts: string[], user): boolean {\n return parts.some(part => user['auth']?.['granted'][part]);\n }\n\n handleProductKey(productKey, user, permission_key, permissionName) {\n if (productKey) {\n // filters the permission only for the selected product.\n let filteredPermissions = pickBy(cloneDeep(user['auth']['granted']), (_value, key) => {\n return key.includes(productKey);\n });\n // add Pages.Product.{permission_key}\n filteredPermissions = {\n ...{ [`Pages.Product.${permission_key}`]: true },\n ...filteredPermissions\n };\n\n // E.g., Pages.Product.CloudOlive.CloudOlive_MspKey\n return filteredPermissions[permissionName] ?? false;\n }\n }\n\n private getFormattedPermissionName(permissionName: string, productSlug: string | null): string {\n const selectedProduct = PermissionService?.selectedProduct ?? this.getCurrentProduct();\n const subscriptionSlug = selectedProduct?.subscription_slug;\n\n let slugToCheck: string;\n if (!productSlug) {\n if (permissionName.includes('Pages.Product.')) {\n slugToCheck = `Pages.Product.${subscriptionSlug}.`;\n }\n\n if (permissionName.includes('Pages.Role.')) {\n slugToCheck = `Pages.Role.${subscriptionSlug}.`;\n }\n } else {\n slugToCheck = productSlug;\n }\n\n if (!permissionName.includes(slugToCheck) && permissionName.includes('Pages.Product.')) {\n permissionName = permissionName.replace('Pages.Product.', slugToCheck);\n }\n\n if (permissionName.includes('Pages.Role.') && !permissionName.includes(slugToCheck)) {\n permissionName = permissionName.replace('Pages.Role.', slugToCheck);\n }\n\n return permissionName;\n }\n\n getPermissionTreeDataByRole(data) {\n const permissions = [];\n data.all.forEach(element => {\n const { name } = element;\n permissions.push({\n id: element.id, // permissionId: Used to update the permissions on change\n parentName: name.includes('.') ? name.substring(0, name.lastIndexOf('.')) : null,\n name,\n displayName: element.name\n });\n });\n\n return {\n permissions,\n grantedPermissionNames: Object.keys(data.granted)\n };\n }\n\n evaluatePermissions(\n permission: string,\n productKey: string = null,\n permission_key: string = null,\n productSlug: string = null\n ): boolean {\n if (!permission) {\n return false;\n }\n\n let expr = '';\n\n if (permission === PERMISSION_NAMES.SuperAdmin) {\n return this.isSuperAdmin();\n }\n if (permission === PERMISSION_NAMES.SubscriptionAdmin) {\n return this.isUserSubscriptionAdmin() || this.isUserSubscriptionOwner();\n }\n if (permission === PERMISSION_NAMES.SubscriptionOwner) {\n return this.isUserSubscriptionOwner();\n }\n if (permission === PERMISSION_NAMES.SubscriptionSuperAdmin) {\n return (\n this.isUserSubscriptionSuperAdmin() ||\n this.isUserSubscriptionSuperOwner() ||\n this.isSuperAdmin()\n );\n }\n if (permission === PERMISSION_NAMES.SubscriptionSuperOwner) {\n return this.isUserSubscriptionSuperOwner() || this.isSuperAdmin();\n }\n if (\n typeof permission === 'string' &&\n ADMIN_SUB_MENU_WHITELIST.some(v => permission.includes(v)) &&\n (this.isUserSubscriptionSuperAdmin() || this.isUserSubscriptionSuperOwner())\n ) {\n return true;\n }\n\n expr = this.handleNonBooleanPermissions(\n permission,\n expr,\n productKey,\n permission_key,\n productSlug\n );\n\n // Now expr is made of true/false values with &&, ||, ()\n // eslint-disable-next-line no-eval\n return eval(expr); // NOSONAR\n }\n\n handleNonBooleanPermissions(permission, expr, productKey, permission_key, productSlug) {\n if (typeof permission !== 'boolean') {\n permission.split(' ').forEach(x => {\n const raw = x.trim();\n\n if (['||', '&&', '(', ')'].includes(raw)) {\n expr += ` ${raw} `;\n } else {\n let evaluated: boolean;\n\n if (raw === PERMISSION_NAMES.SuperAdmin) {\n evaluated = this.isSuperAdmin();\n } else if (raw === PERMISSION_NAMES.SubscriptionAdmin) {\n evaluated =\n this.isUserSubscriptionAdmin() || this.isUserSubscriptionOwner();\n } else if (raw === PERMISSION_NAMES.SubscriptionOwner) {\n evaluated = this.isUserSubscriptionOwner();\n } else if (raw === PERMISSION_NAMES.SubscriptionSuperAdmin) {\n evaluated =\n this.isUserSubscriptionSuperAdmin() ||\n this.isUserSubscriptionSuperOwner() ||\n this.isSuperAdmin();\n } else if (raw === PERMISSION_NAMES.SubscriptionSuperOwner) {\n evaluated = this.isUserSubscriptionSuperOwner() || this.isSuperAdmin();\n } else if (productKey) {\n // Assume it's Pages.Product or Pages.Role with productKey\n evaluated = this.isGranted(raw, productKey, permission_key, productSlug);\n } else {\n evaluated = this.isGranted(raw);\n }\n\n expr += ` ${evaluated} `;\n }\n }, this);\n }\n return expr;\n }\n\n getPermissionByRole(roleId: number) {\n return this.api.get(`/admin/role_permissions/${roleId}`);\n }\n\n saveUserPermission(payload) {\n return this.api.post(`/admin/role_permissions`, payload);\n }\n\n /**\n * determine user is super_admin using user.auth.granted['Pages.SuperAdmin']\n */\n isSuperAdmin(): boolean {\n return !!this.user.auth.granted['Pages.SuperAdmin'] || false;\n }\n\n /**\n * Any Product Admin regardless of the product being master product or not.\n */\n public isUserSubscriptionOwner(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionOwner`\n ];\n }\n\n /**\n * Any Product Admin regardless of the product being master product or not.\n * *rbacAllow=\"SubscriptionAdmin\"\n * @returns\n */\n public isUserSubscriptionAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return (\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionAdmin`\n ] ||\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionOwner`\n ]\n );\n }\n\n /**\n * Any Product Admin of the product being the master product\n */\n isUserSubscriptionSuperAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return (\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionSuperAdmin`\n ] ||\n !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionSuperOwner`\n ]\n );\n }\n\n isUserMasterSubscriptionSuperAdmin(product?): boolean {\n product ??= this.getCurrentProduct();\n return !!this.user.auth.granted[\n `Pages.Product.${product?.permission_key}.${product.feature_key}.SubscriptionSuperAdmin`\n ];\n }\n\n /**\n * Any Product Admin of the product being the master product\n */\n public isUserSubscriptionSuperOwner(product?): boolean {\n product ??= this.getCurrentProduct();\n const subscriptionSlug = product?.subscription_slug;\n return !!this.user.auth.granted[\n `Pages.Product.${subscriptionSlug}.${product?.permission_key}.${product.feature_key}.SubscriptionSuperOwner`\n ];\n }\n\n setCurrentProduct(product) {\n localStorage.setItem(\n 'product',\n JSON.stringify({\n id: product.id,\n permission_key: product?.permission_key,\n feature_key: product.feature_key,\n subscriptionId: product.subscriptionId,\n subscription_slug: product.subscription_slug\n })\n );\n }\n\n public getCurrentProduct() {\n return JSON.parse(localStorage.getItem('product'));\n }\n}\n","/*\n * Similar to Meta service but made to handle <link> creation for SEO purposes\n */\nimport { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable, RendererFactory2, ViewEncapsulation } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LinkService {\n constructor(\n private readonly rendererFactory: RendererFactory2,\n @Inject(DOCUMENT) private readonly document\n ) {}\n\n /**\n * Inject the State into the bottom of the <head>\n */\n addTag(tag: LinkDefinition, _forceCreation?: boolean) {\n try {\n const renderer = this.rendererFactory.createRenderer(this.document, {\n id: '-1',\n encapsulation: ViewEncapsulation.None,\n styles: [],\n data: {}\n });\n\n const link = renderer.createElement('link');\n const { head } = this.document;\n\n if (head === null) {\n throw new Error('<head> not found within DOCUMENT.');\n }\n\n Object.keys(tag).forEach((prop: string) => {\n return renderer.setAttribute(link, prop, tag[prop]);\n });\n\n // [TODO]: get them to update the existing one (if it exists) ?\n renderer.appendChild(head, link);\n } catch (e) {\n window.console.error('Error within linkService : ', e);\n }\n }\n}\n\ndeclare type LinkDefinition = {\n charset?: string;\n crossorigin?: string;\n href?: string;\n hreflang?: string;\n media?: string;\n rel?: string;\n rev?: string;\n sizes?: string;\n target?: string;\n type?: string;\n} & {\n [prop: string]: string;\n};\n","import { Injectable } from '@angular/core';\nimport { PreloadingStrategy, Route } from '@angular/router';\n\nimport { Observable, of, timer } from 'rxjs';\nimport { mergeMap } from 'rxjs/operators';\n\nimport { PermissionService } from './permission.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CustomPreloadingStrategy implements PreloadingStrategy {\n constructor(private readonly permission: PermissionService) {}\n\n preload(route: Route, load: () => Observable<string>): Observable<string> {\n const loadRoute = delay => (delay ? timer(5000).pipe(mergeMap(_ => load())) : load());\n\n return route.data && this.checkModulePermission(route.data)\n ? loadRoute(route.data['delay'])\n : of(null);\n }\n\n private checkModulePermission(routeData) {\n const ret = routeData.preload && this.permission.isGranted(routeData.permission);\n\n return ret;\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { AB_TEST_ACTIONS } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AbTestService {\n constructor(\n private readonly injector: Injector,\n private readonly http: HttpClient\n ) {}\n\n /**\n * POST: start or stop observable\n * payload: {\n \"test_name\": \"my_first_experiment\",\n \"action_type\": \"ab_test\"\n }\n */\n getExperiment(test_name: string, action_type: string, service: unknown) {\n return this.getServiceInstance(service).post('/ab_test', { test_name, action_type });\n }\n\n /**\n * Finish the experiment and remove from the cookie app-store\n */\n finishExperiment(test_name: string, service: unknown) {\n return this.getServiceInstance(service).post('/ab_test', {\n test_name,\n action_type: AB_TEST_ACTIONS.FINISH\n });\n }\n\n finishABExperiment(test_name: string, shard_name: unknown) {\n const baseUrl = HelperService.getBaseUrlMicroService({ name: shard_name });\n return this.http.post(`${baseUrl}/ab_test`, {\n test_name,\n action_type: AB_TEST_ACTIONS.FINISH\n });\n }\n\n /**\n * dynamically loads the microservice\n */\n private getServiceInstance(service) {\n console.log(typeof service);\n return service ? this.injector.get(service) : this.injector.get(MainApiHttpService); // fallback to Core Microservice\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { GEO_PATH } from '@posiwise/common-utilities';\n\nimport { CookieService } from 'ngx-cookie';\nimport { of } from 'rxjs';\nimport { tap } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GeoService {\n private readonly url = GEO_PATH;\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly cookieService: CookieService\n ) {}\n\n getCountries() {\n return this.api.get(`${this.url}/countries`);\n }\n\n getRegions(countryId) {\n return this.api.get(`${this.url}/regions/${countryId}`);\n }\n\n getCountryFromIP() {\n // Cache the location details\n if (this.cookieService.get('location_from_ip')) {\n return of(JSON.parse(this.cookieService.get('location_from_ip')));\n }\n\n return this.api.get(`${this.url}/location_from_ip`).pipe(\n tap((data: object) => {\n return this.cookieService.putObject('location_from_ip', data);\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PROJECT_PATH } from '@posiwise/common-utilities';\n\nimport { AddProjectPicturesData, ProfileData } from './common-services.interface';\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProfileService {\n private readonly endpoint = PROJECT_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n updateUserProfile(user: ProfileData) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in user) {\n if (key in user) {\n formData.append(key, user[key]);\n }\n }\n\n return this.api.put('/user', formData);\n }\n\n getUserProfile(slug: string) {\n return this.api.get(`/users/${slug}/profile/`);\n }\n\n getUserObject(objectType: string, slug: string) {\n return this.api.get(`/users/${slug}/get_object?object=${objectType}`);\n }\n\n getProjects(slug: string) {\n return this.api.get(`/users/${slug}/projects`);\n }\n\n addProjects(data: { [key: string]: string }) {\n return this.api.post(this.endpoint, data);\n }\n\n updateProjects(id: number, data: { [key: string]: string }) {\n return this.api.put(`${this.endpoint}${id}`, data);\n }\n\n deleteProject(id: number) {\n return this.api.delete(`${this.endpoint}/${id}`);\n }\n\n addProjectPictures(data: AddProjectPicturesData) {\n return this.api.uploadWithData('/project_pictures', data);\n }\n\n getProjectPictures(slug: string) {\n return this.api.get(`/users/${slug}/project_pictures`);\n }\n\n deletePicture(projectId: number) {\n return this.api.delete(`/project_pictures/${projectId}`);\n }\n\n // Recommendations\n\n postProjectRecommendation(data: object) {\n return this.api.post(`/project_recommendations`, data);\n }\n\n postLinks(data: { [key: string]: string }) {\n return this.api.post('/user_links', data);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, Subscription } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable()\nexport class SubscriptionService {\n endpoint = '/subscriptions/';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getById(id: number) {\n return this.api.get(`${this.endpoint}${id}`);\n }\n\n deleteSubscription(id: number, reqJson: object) {\n return this.api.delete(`/subscriptions/${id}`, reqJson);\n }\n\n getSubscriptions(id: number) {\n return this.api.get(`/subscriptions/${id}`);\n }\n\n postSubscription(data: Partial<Subscription>) {\n return this.api.post('/subscriptions', data);\n }\n\n updateSubscription(id: number, data: Partial<Subscription>) {\n return this.api.put(`/subscriptions/${id}`, data);\n }\n\n updateSubscriptionUnit(id: number, units) {\n return this.api.put(`/subscriptions/${id}/update_units`, { purchased_units: units });\n }\n\n addPartnersToSubscription(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`/subscriptions/${id}/partners/invite_partner`, data);\n }\n\n getProductList(paging?: Paging, subscription_id?: number, _params?) {\n return this.api.getWithParams(\n `/subscriptions/${subscription_id}/partners/products_for_partners`,\n HelperService.getPagingParams(paging)\n );\n }\n\n removePartner(id: number, partner_id: number) {\n return this.api.delete(`/subscriptions/${id}/partners/remove_partner/${partner_id}`);\n }\n\n deactivatePartner(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.put(`/subscriptions/${id}/partners/toggle_active_status`, data);\n }\n\n addMembersToSubscription(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (Object.hasOwn(data, key)) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`/subscriptions/${id}/signup_members`, data);\n }\n\n signUpMemberUrl(id: number) {\n return `/subscriptions/${id}/signup_members`;\n }\n\n getEnrolledSubscription(id: number, paging?: Paging) {\n return this.api.getWithParams(\n `/subscriptions/${id}/members`,\n HelperService.getPagingParams(paging)\n );\n }\n removeEnrolledSubscription(id: number, user_id: number) {\n return this.api.delete(`/subscriptions/${id}/remove_member/${user_id}`);\n }\n\n toggleAdmin(id: number, data) {\n return this.api.put(`/subscriptions/${id}/toggle_admin`, data);\n }\n\n updateSubscriptionAPIKey(id: number) {\n return this.api.put(`/subscriptions/${id}/update_api_key`);\n }\n\n refreshApiTokens(id: number) {\n return this.api.get(`/subscriptions/${id}/refresh_api_tokens`);\n }\n\n addFullLogo(id: number, data) {\n return this.api.upload(`/subscriptions/${id}`, data, 'full_logo');\n }\n\n addSquaredLogo(id: number, data) {\n return this.api.upload(`/subscriptions/${id}`, data, 'squared_logo');\n }\n\n getCardDetails(subscriptionId: number) {\n return this.api.get(`/subscriptions/${subscriptionId}/card_detail`);\n }\n\n updateCardDetails(data: { [key: string]: string }, subscription_id: number) {\n return this.api.post(`/subscriptions/${subscription_id}/update_card`, data);\n }\n\n getEnterpriseInsight(subscriptionId: number, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/subscriptions/${subscriptionId}/enterprise_analytics?type=summary`,\n { starting_at, ending_at }\n );\n }\n\n postSubscriptionCredential(data) {\n return this.api.post(`/subscription_credentials`, data);\n }\n\n editSubscriptionCredential(id: number, data) {\n return this.api.put(`/subscription_credentials/${id}`, data);\n }\n\n getAllSubscriptionCredentials(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/subscription_credentials/get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAllSubscriptionPartners(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/subscriptions/${subscription_id}/partners/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n\n deleteSubscriptionCredential(id: number, subscriptionId: number) {\n return this.api.delete(`/subscription_credentials/${id}?subscription_id=${subscriptionId}`);\n }\n\n getAllCredentials(paging?: Paging) {\n return this.api.getWithParams(`/credentials/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, PRODUCT_PATH } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ProductService {\n private readonly endpoint = '/admin/product';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n /// ////////////////////\n /// // ADMIN PRODUCT API\n /// ////////////////////\n deleteProduct(id: number, subscription_id: number) {\n return this.api.delete(`${this.endpoint}/${id}?subscription_id=${subscription_id}`);\n }\n\n updateProduct(data, id: number) {\n return this.api.put(`${this.endpoint}/${id}`, data);\n }\n\n addProduct(data) {\n return this.api.post(this.endpoint, data);\n }\n\n inviteForTrial(id: number, body, subscription_id: number) {\n return this.api.post(`${this.endpoint}/${id}/invite_for_trial`, {\n ...body,\n subscription_id\n });\n }\n\n getProductList(paging?: Paging, subscription_id?: number, params?) {\n return this.api.getWithParams(`${PRODUCT_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id,\n ...params\n });\n }\n\n getSupportedCurrency() {\n return this.api.get(`${PRODUCT_PATH}/supported_currencies`);\n }\n\n getSupportedRegions() {\n return this.api.get(`${PRODUCT_PATH}/supported_regions`);\n }\n\n /// ////////////////////\n /// // PRODUCT API\n /// ////////////////////\n getProducts(params) {\n return this.api.getWithParams(`${PRODUCT_PATH}/get_all?page=1&page_size=200`, {\n ...params\n });\n }\n\n getProductById(id: number) {\n return this.api.get(`${PRODUCT_PATH}/${id}`);\n }\n\n getProductCategories() {\n return this.api.get(`${PRODUCT_PATH}/categories`);\n }\n\n getProductInsight(subscriptionId: number, starting_at?: string, ending_at?: string) {\n return this.api.getWithParams(\n `/admin/subscriptions_analytics?type=products&subscription_id=${subscriptionId}`,\n { starting_at, ending_at }\n );\n }\n\n getUsersForProduct(id: number, subscription_id: number) {\n return this.api.getWithParams(`${this.endpoint}/${id}/insights`, { subscription_id });\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';\n\n@Injectable()\nexport class ValidationService {\n static readonly CustomValidatorPatterns = {\n StrongPassword: /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*])(?=.{8,})/,\n Year: '[0-9]{4}$'\n };\n\n /**\n * Validates email.\n */\n static email(input: string) {\n if (!input) {\n return false;\n }\n const reg = /^\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$/;\n\n return reg.test(input);\n }\n\n static patternValidator(regex: RegExp, error: ValidationErrors): ValidatorFn | null {\n return (control: AbstractControl): { [key: string]: string } => {\n if (!control.value) {\n // if control is empty return no error\n return null;\n }\n\n // test the value of the control against the regexp supplied\n const valid = regex.test(control.value as string);\n\n // if true, return no error (no error), else return error passed in the second parameter\n return valid ? null : error;\n };\n }\n}\n","import { AbstractControl, UntypedFormControl, UntypedFormGroup } from '@angular/forms';\n\nexport class FormHelperService {\n static markFormAsPristine(form: UntypedFormGroup | UntypedFormControl | AbstractControl) {\n form.markAsPristine();\n form.markAsUntouched();\n }\n\n static markAsTouched(form) {\n /* eslint-disable no-restricted-syntax */\n /* eslint-disable guard-for-in */\n for (const i in form.form.controls) {\n form.form.controls[i]['touched'] = true;\n }\n }\n\n static validateAllFormFields(form): void {\n Object.keys(form.controls).forEach(field => {\n const control = form.get(field);\n if (control instanceof UntypedFormControl) {\n control.markAsTouched();\n control.updateValueAndValidity();\n } else if (control instanceof UntypedFormGroup) {\n this.validateAllFormFields(control);\n }\n });\n }\n}\n","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\nimport { Injectable, Injector } from '@angular/core';\n\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { Observable, throwError } from 'rxjs';\nimport { catchError } from 'rxjs/operators';\n\nimport {\n AhoyEventResponse,\n AhoyMessageResponse,\n AhoyVersionResponse,\n AhoyVisitResponse,\n RequestParams,\n TrackEventResponse\n} from './common-services.interface';\nimport { CustomToastService } from './toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AhoyService {\n private readonly ahoy = '/ahoy';\n\n private readonly toast: CustomToastService;\n\n constructor(\n private readonly http: HttpClient,\n public injector: Injector\n ) {\n this.toast = injector.get(CustomToastService);\n }\n\n getAhoyEvents(params: RequestParams, service, paging: Paging): Observable<AhoyEventResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyEventResponse>(`${baseUrl}${this.ahoy}/events`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getAhoyMessages(\n params: RequestParams,\n service,\n paging: Paging\n ): Observable<AhoyMessageResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyMessageResponse>(`${baseUrl}${this.ahoy}/messages`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getAhoyVisits(params: RequestParams, service, paging: Paging): Observable<AhoyVisitResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyVisitResponse>(`${baseUrl}${this.ahoy}/visits`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getVersions(params: RequestParams, service, paging: Paging): Observable<AhoyVersionResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<AhoyVersionResponse>(`${baseUrl}/versions/get_all`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n getEvents(params: RequestParams, service, paging: Paging): Observable<TrackEventResponse> {\n const baseUrl = HelperService.getBaseUrlMicroService(service);\n const page = HelperService.getPagingParams(paging);\n\n return this.http\n .get<TrackEventResponse>(`${baseUrl}/events/get_all`, {\n params: { ...page, ...params }\n })\n .pipe(\n catchError(error => {\n this.handleError(error);\n\n return throwError(() => new HttpErrorResponse(error));\n })\n );\n }\n\n handleError(error: HttpErrorResponse): void {\n if (error?.error?.status_code !== 'unauthorized__REMOVED_X_TESTING') {\n if (error?.error?.status === 401) {\n this.toast.clear();\n }\n\n this.toast.showToast(error);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ADMIN_FAQS_PATH,\n CONTACT_US_PATH,\n CUSTOMER_SUPPORT_PATH,\n FAQS_PATH,\n FEEDBACK_QUESTIONS_PATH,\n GLOBAL_CONFIGS_PATH,\n GLOBAL_SUBSCRIPTION_CONFIGS_PATH,\n INCIDENTS_PATH,\n INCIDENTS_PATH_ADMIN,\n NEWSLETTER_SUBSCRIPTION_PATH,\n NEWSLETTER_UNSUBSCRIBE_PATH,\n NEWSLETTERS_PATH,\n ORGANIZATIONS_PATH,\n Paging,\n USER_FEEDBACKS_PATH,\n USER_LOGIN_NOTIFICATION\n} from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { GetFaqParams } from './common-services.interface';\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CommonService {\n constructor(private readonly api: MainApiHttpService) {}\n\n addContactUsMessage(data) {\n return this.api.post(CONTACT_US_PATH, data);\n }\n\n getIncidents(paging?: Paging) {\n return this.api.getWithParams(`${INCIDENTS_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getIncidentsAdmin(paging?: Paging, subscriptionId?: number) {\n return this.api.getWithParams(`${INCIDENTS_PATH_ADMIN}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id: subscriptionId\n });\n }\n\n addIncident(data) {\n return this.api.post(`${INCIDENTS_PATH_ADMIN}`, data);\n }\n\n editIncident(id, data) {\n return this.api.put(`${INCIDENTS_PATH_ADMIN}/${id}`, data);\n }\n\n getIncidentById(id: number, subscription_id) {\n return this.api.get(`${INCIDENTS_PATH_ADMIN}/${id}?subscription_id=${subscription_id}`);\n }\n\n deleteIncidentAdmin(id: number, subscription_id: number) {\n return this.api.delete(`${INCIDENTS_PATH_ADMIN}/${id}?subscription_id=${subscription_id}`);\n }\n // Newsletters\n\n getAllNewsletter(paging?: Paging) {\n return this.api.getWithParams(`${NEWSLETTERS_PATH}/get_all`, {\n visible: true,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n toggleNewsletter(newsletterId: number, param) {\n return this.api.put(`${NEWSLETTER_SUBSCRIPTION_PATH}/${newsletterId}/toggle`, param);\n }\n\n unsubscribeNewsletter(token: string) {\n return this.api.get(`/${NEWSLETTER_UNSUBSCRIBE_PATH}?token=${token}`);\n }\n\n // FAQ\n\n getFaq(params: GetFaqParams) {\n return this.api.getWithParams(ADMIN_FAQS_PATH, { ...params });\n }\n\n getFaqById(id: number, subscription_id) {\n return this.api.getWithParams(`${FAQS_PATH}/${id}`, { subscription_id });\n }\n getFaqCategories(subscription_id: number) {\n return this.api.getWithParams(`faqs/available_categories`, { subscription_id });\n }\n getPublicFaq(subscription_id: number, search_term = '') {\n return this.api.getWithParams(`${FAQS_PATH}`, { subscription_id, search_term });\n }\n\n getPublicFaqById(id: number) {\n return this.api.get(`${FAQS_PATH}/${id}`);\n }\n\n // Organization\n\n getOrganizationSizes(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/sizes/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationTypes(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/types/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationIndustries(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/industries/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n getOrganizationDepartments(paging?: Paging) {\n return this.api.getWithParams(\n `${ORGANIZATIONS_PATH}/departments/get_all`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // Global Config\n\n getAllGlobalSubscriptionConfigs(paging?: Paging) {\n return this.api.getWithParams(\n `${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}/get_all?`,\n HelperService.getPagingParams(paging)\n );\n }\n\n postGlobalSubscriptionConfig(data) {\n return this.api.post(`${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}`, data);\n }\n\n editGlobalSubscriptionConfig(id: number, data) {\n return this.api.post(`${GLOBAL_SUBSCRIPTION_CONFIGS_PATH}/${id}`, data);\n }\n\n getAllGlobalConfigs(paging?: Paging) {\n return this.api.getWithParams(\n `${GLOBAL_CONFIGS_PATH}/get_all?`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // User Login Notification\n\n userLoginNotification(data) {\n return this.api.post(`${USER_LOGIN_NOTIFICATION}`, data);\n }\n\n // Customer Satisfaction\n\n feedbackQuestions(subscription_id: number) {\n return this.api.get(`${FEEDBACK_QUESTIONS_PATH}?subscription_id=${subscription_id}`);\n }\n\n userFeedbacks(data) {\n return this.api.post(`${USER_FEEDBACKS_PATH}`, data);\n }\n\n getAllUserFeedbacks(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`${USER_FEEDBACKS_PATH}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n getAllCustomerSupport(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`${CUSTOMER_SUPPORT_PATH}/get_all?`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n postCustomerSupport(data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(`${CUSTOMER_SUPPORT_PATH}`, formData);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport isNumber from 'lodash/isNumber';\nimport moment from 'moment';\n\nimport { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\n\nfunction padNumber(value: number) {\n if (isNumber(value)) {\n return `0${value}`.slice(-2);\n }\n\n return '';\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgbDateCustomParserFormatter extends NgbDateParserFormatter {\n private readonly DELIMITER = '-';\n\n parse(value: string): NgbDateStruct | null {\n if (value) {\n const date = value.trim().split(this.DELIMITER);\n const hasNumber = /\\d/;\n if (!date[1]) {\n return null;\n }\n // convert month name to number\n const month = date[1] ? moment().month(date[1]).format('M') : '';\n // title case\n const str = date[1]\n .split(' ')\n .map(\n ([firstChar, ...rest]) => firstChar.toUpperCase() + rest.join('').toLowerCase()\n )\n .join(' ');\n if (!month || hasNumber.test(date[1]) || !moment.monthsShort().includes(str)) {\n return null;\n }\n return {\n day: Number.parseInt(date[0], 10),\n month: Number.parseInt(month, 10),\n year: Number.parseInt(date[2], 10)\n };\n }\n\n return null;\n }\n\n format(date: NgbDateStruct): string {\n const monthNames = [\n '',\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec'\n ];\n\n if (!date) {\n return '';\n }\n\n const day = isNumber(date.day) ? padNumber(date.day) : '';\n const month = isNumber(date.month) ? monthNames[date.month] : '';\n const year = date.year;\n return `${day}-${month}-${year}`;\n }\n\n dateFormatForPicker(date: string): NgbDateStruct {\n return {\n year: Number(date.substring(0, 4)),\n month: Number(date.substring(5, 7)),\n day: Number(date.substring(8, 10))\n };\n }\n}\n","export class PrimeNgHelper {\n isLoading = false;\n\n static dropdownDataSource(dataSource, label, value) {\n const result = [];\n dataSource.forEach(element => {\n const item = {\n ...element,\n label: element[label],\n value: element[value]\n };\n result.push(item);\n });\n\n return result;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport {\n ADMIN_PATH,\n ADMIN_TAG_CATEGORIES_PATH,\n ADMIN_TAG_PATH,\n Paging\n} from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TagService {\n ADMIN_TAG_PATH = ADMIN_TAG_PATH;\n ADMIN_TAG_CATEGORIES_PATH = ADMIN_TAG_CATEGORIES_PATH;\n ADMIN_PATH = ADMIN_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n /// //////////////////////\n /// /// Admin Tag Section\n /// //////////////////////\n deleteTagById(id: number, subscription_id: number) {\n return this.api.delete(`${this.ADMIN_TAG_PATH}${id}?subscription_id=${subscription_id}`);\n }\n\n updateTagById(id: number, data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.put(`${this.ADMIN_TAG_PATH}${id}`, formData);\n }\n\n addAdminTag(data) {\n const formData = new FormData();\n\n // eslint-disable-next-line no-restricted-syntax\n for (const key in data) {\n if (key in data) {\n formData.append(key, data[key]);\n }\n }\n\n return this.api.post(this.ADMIN_TAG_PATH, formData);\n }\n\n /// //////////////////////\n /// /// Tags API's\n /// //////////////////////\n getTagsByType(tag_type: string, paging: Paging, subscription_id?: number) {\n return this.api.getWithParams('/tags/get_all_tags', {\n tag_type,\n subscription_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAvailableTagType(subscription_id: number) {\n return this.api.getWithParams('/tags/available_tag_types', { subscription_id });\n }\n\n addTags(data, subscription_id?: number) {\n return this.api.post('/tags', { ...data, subscription_id });\n }\n\n getTagsByEntity(slug: string, tag_entity: string, tag_type: string, subscription_id?: number) {\n return this.api.getWithParams('/tags/get_entity_tags', {\n slug,\n tag_entity,\n tag_type,\n subscription_id,\n ...HelperService.getPagingParams({})\n });\n }\n\n getGroupedSkills(slug: string, tagEntity: string, tagType: string) {\n return this.api.get(\n `/tags/grouped_tags?slug=${slug}&tag_entity=${tagEntity}&tag_type=${tagType}`\n );\n }\n\n /// //////////////////////\n /// ///// Tag Categories\n /// //////////////////////\n getTagCategories(params: Paging, subscription_id: number) {\n return this.api.getWithParams(`${this.ADMIN_TAG_CATEGORIES_PATH}get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(params)\n });\n }\n\n getAllTagCategories(params: Paging, subscription_id: number) {\n return this.api.getWithParams(`tag_categories/get_all`, {\n subscription_id,\n ...HelperService.getPagingParams(params)\n });\n }\n\n deleteTagCategoryById(id: number, subscription_id: number) {\n return this.api.delete(\n `${this.ADMIN_TAG_CATEGORIES_PATH}${id}?subscription_id=${subscription_id}`\n );\n }\n\n updateTagCategoryById(id: number, data, subscription_id: number) {\n return this.api.put(`${this.ADMIN_TAG_CATEGORIES_PATH}${id}`, { ...data, subscription_id });\n }\n\n addTagCategoryById(data, subscription_id: number) {\n return this.api.post(this.ADMIN_TAG_CATEGORIES_PATH, { ...data, subscription_id });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TipsService {\n endpoint = '/tips/';\n\n constructor(private readonly api: MainApiHttpService) {}\n\n getAll(subscription_id: number, paging?: Paging) {\n return this.api.getWithParams(`/admin${this.endpoint}/get_all`, {\n ...HelperService.getPagingParams(paging),\n subscription_id\n });\n }\n\n getById(id: number, subscription_id: number) {\n return this.api.getWithParams(`/admin/tips/${id}`, { subscription_id });\n }\n\n saveTips(id: number, data, subscription_id: number) {\n return this.api.put(`/admin/tips/${id}`, { ...data, subscription_id });\n }\n\n addTips(data, subscription_id: number) {\n return this.api.post(`/admin/tips`, { ...data, subscription_id });\n }\n addUserTips(data, subscription_id?: number) {\n return this.api.post(`/users/user_tips`, { ...data, subscription_id });\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WindowService {\n /**\n * redirect to the given url\n * NOTE: this does hard page reload\n */\n replaceUrl(url: string) {\n window.location.href = url;\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ADMIN_PATH, Paging } from '@posiwise/common-utilities';\nimport { HelperService } from '@posiwise/helper-service';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GroupService {\n private readonly subscription_endpoint = '/subscriptions/';\n private readonly group_communications_endpoint = '/group_communications/';\n private readonly group_definitions_endpoint = '/group_definitions/';\n private readonly groups_endpoint = '/groups/';\n\n ADMIN_PATH = ADMIN_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n // ------------------------------------------------------------\n // Subscription Service\n // ------------------------------------------------------------\n\n getById(id) {\n return this.api.get(`${this.subscription_endpoint}${id}`);\n }\n\n updateAgent(id: number, agent_id: number, data) {\n return this.api.put(\n `${ADMIN_PATH}${this.subscription_endpoint}${id}/agents/${agent_id}`,\n data\n );\n }\n\n getSubscriptionMembers(id: number, paging?: Paging) {\n return this.api.getWithParams(\n `${this.subscription_endpoint}${id}/members`,\n HelperService.getPagingParams(paging)\n );\n }\n\n // ------------------------------------------------------------\n // Group Service\n // ------------------------------------------------------------\n\n getGroupDefinitionById(id: number) {\n return this.api.get(`${this.group_definitions_endpoint}${id}`);\n }\n\n groupDefinitionGetAll(related_entity_id: number, related_entity_type: string, paging?: Paging) {\n return this.api.getWithParams(`${this.group_definitions_endpoint}get_all`, {\n related_entity_id,\n related_entity_type,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n groupDefinitions(data) {\n return this.api.post(`${this.group_definitions_endpoint}`, data);\n }\n\n groupDefinitionsDelete(id: number) {\n return this.api.delete(`${this.group_definitions_endpoint}${id}`);\n }\n\n groupDefinitionsUpdate(id: number, data) {\n return this.api.put(`${this.group_definitions_endpoint}${id}`, data);\n }\n\n // ------------------------------------------------------------\n // Group Service\n // ------------------------------------------------------------\n\n postGroup(data) {\n return this.api.post(this.groups_endpoint, data);\n }\n\n getGroup(id: number) {\n return this.api.get(`${this.groups_endpoint}${id}`);\n }\n\n updateGroup(id: number, data) {\n return this.api.put(`${this.groups_endpoint}${id}`, data);\n }\n\n deleteGroup(id: number) {\n return this.api.delete(`${this.groups_endpoint}${id}`);\n }\n\n addEntityGroup(id: number, data) {\n return this.api.post(`${this.groups_endpoint}${id}/add_entities`, data);\n }\n\n deleteEntityGroup(entityId: number, related_entity_ids, related_entity_type: string) {\n return this.api.delete(\n `${this.groups_endpoint}${entityId}/remove_entity?related_entity_ids=${related_entity_ids}&related_entity_type=${related_entity_type}`\n );\n }\n\n getEntityGroup(id: number) {\n return this.api.get(`/groups/${id}`);\n }\n\n // ------------------------------------------------------------\n // Group Communication Service\n // ------------------------------------------------------------\n\n postCommunications(data) {\n return this.api.post(this.group_communications_endpoint, data);\n }\n\n editCommunications(id: number, data) {\n return this.api.put(`${this.group_communications_endpoint}${id}`, data);\n }\n\n getCommunicationDetails(id: number) {\n return this.api.get(`${this.group_communications_endpoint}${id}`);\n }\n\n deleteCommunications(id: number) {\n return this.api.delete(`${this.group_communications_endpoint}${id}`);\n }\n\n getAllCommunications(\n subscription_id: number,\n communication_type: string,\n group_id: number | string,\n paging?: Paging\n ) {\n return this.api.getWithParams(`${this.group_communications_endpoint}get_all`, {\n subscription_id,\n communication_type,\n group_id,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n getAllCommunicationsWithOutGroupId(\n subscription_id: number,\n communication_type: string,\n paging?: Paging\n ) {\n return this.api.getWithParams(`${this.group_communications_endpoint}get_all`, {\n subscription_id,\n communication_type,\n ...HelperService.getPagingParams(paging)\n });\n }\n\n // ------------------------------------------------------------\n // Group Communication Files Service\n // ------------------------------------------------------------\n\n postCommunicationFiles(data) {\n return this.api.post(`/group_communication_files`, data);\n }\n\n deleteCommunicationFiles(id: number) {\n return this.api.delete(`/group_communication_files/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { QUALIFICATIONS_PATH } from '@posiwise/common-utilities';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class QualificationService {\n private readonly endPoint = QUALIFICATIONS_PATH;\n\n constructor(private readonly api: MainApiHttpService) {}\n\n addQualifications(data) {\n return this.api.post(this.endPoint, data);\n }\n\n updateQualifications(id: number, data) {\n return this.api.put(`${this.endPoint}/${id}`, data);\n }\n\n deleteQualifications(id: number) {\n return this.api.delete(`${this.endPoint}/${id}`);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { MainApiHttpService } from './main-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DashboardService {\n constructor(private readonly api: MainApiHttpService) {}\n\n search(keyword: string, subscriptionId: number) {\n return this.api.get(\n `/search/global_search?search_term=${keyword}&subscription_id=${subscriptionId}`\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\nimport { PermissionService } from './permission.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class MailBoxService {\n private readonly endpoint = '/mailbox/';\n private readonly checkUnreadCountSubject = new BehaviorSubject<number>(0);\n\n totalUnreadCount$ = this.checkUnreadCountSubject.asObservable();\n\n constructor(private readonly http: MainApiHttpService) {}\n\n getMessages(conversation_id, page_number = 1, page_size = 10) {\n return conversation_id\n ? this.http.get(\n `${this.endpoint}${conversation_id}/messages?page=${page_number}&page_size=${page_size}`\n )\n : of([]);\n }\n\n getConversations() {\n return this.http\n .get(\n `${this.endpoint}conversations?subscription_id=${PermissionService.selectedSubscription.id}`\n )\n .pipe(\n map(c => {\n const count = c\n .map(x => x?.unread_count)\n .reduce((a: number, b: number) => a + b, 0);\n if (count > -1) {\n this.checkUnreadCountSubject.next(count);\n }\n\n return c;\n })\n );\n }\n\n postMessage(data) {\n return this.http.post(`${this.endpoint}compose`, data);\n }\n\n markAsRead(conversation_id) {\n return this.http.post(`${this.endpoint}read`, { conversation_id });\n }\n\n decrementUnreadCount(count: number) {\n const newCount = +this.checkUnreadCountSubject.getValue() - count;\n if (newCount > -1) {\n this.checkUnreadCountSubject.next(newCount);\n }\n }\n\n incrementUnreadCount(count: number) {\n const newCount = +this.checkUnreadCountSubject.getValue() + count;\n if (newCount > -1) {\n this.checkUnreadCountSubject.next(newCount);\n }\n }\n\n deleteMessage(conversationId, messageId) {\n return this.http.delete(\n `${this.endpoint}delete_message?conversation_id=${conversationId}&message_id=${messageId}`\n );\n }\n\n getRecipient(params = {}) {\n return this.http.getWithParams(`${this.endpoint}available_recipients`, params);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\n\nimport { Observable } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\nimport { webSocket, WebSocketSubject } from 'rxjs/webSocket';\n\nimport { AuthService } from './auth.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class WebsocketService {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private webSocketSubject: WebSocketSubject<any>;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n webSocket$: Observable<any>;\n\n constructor(\n private readonly appConfigService: AppConfigService,\n private readonly authService: AuthService\n ) {\n this.appConfigService.appConfig$.subscribe(config => {\n const socketLink = config['links'].socket_link;\n const url = `${socketLink}/websockets/websocket?session_token=${btoa(\n this.authService.getToken()\n )}`;\n this.webSocketSubject = webSocket(url);\n this.webSocket$ = this.webSocketSubject.asObservable().pipe(distinctUntilChanged());\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { Paging, SOCKET_TYPE } from '@posiwise/common-utilities';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { MainApiHttpService } from './main-api-http.service';\nimport { WebsocketService } from './socket.service';\nimport { CustomToastService } from './toast.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NotificationService {\n private readonly notificationSubject$ = new BehaviorSubject<string[]>([]);\n\n endpoint = 'notes_read';\n\n constructor(\n private readonly api: MainApiHttpService,\n private readonly toastrService: CustomToastService,\n private readonly socketService: WebsocketService\n ) {}\n\n getNotifications(paging?: Paging) {\n return this.api.getWithParams(`/notes?show_on_dashboard=true`, {\n ...paging\n });\n }\n\n getDismissedNotifications(paging?: Paging) {\n return this.api.getWithParams(`/notes?dismissed=true`, {\n ...paging\n });\n }\n\n showNotifications(data) {\n this.notificationSubject$.next(data);\n }\n\n readNotifications() {\n return this.api.put('/user/notes_read', {});\n }\n\n dismissNotification(id: number) {\n const formData = new FormData();\n formData.append('dismissed', 'true');\n formData.append('id', String(id));\n\n return this.api.put(`/notes/${id}/dismiss`, formData).pipe(map(res => JSON.stringify(res)));\n }\n\n deleteNotifications(id: number) {\n return this.api.delete(`/notes/${id}`);\n }\n\n reinstateNotification(id: number) {\n return this.api.put(`/notes/${id}/reinstate`);\n }\n\n notiWebSocket() {\n return this.socketService.webSocket$.pipe(\n map(response => {\n if (response.event === SOCKET_TYPE.NOTI) {\n const notification = response.data;\n // show the toastr for noti which is marked as show_on_toast to true\n if (notification?.show_on_toast) {\n this.toastrService.showToastrOnType(\n notification.toast_type,\n notification.content\n );\n }\n\n return notification;\n }\n\n return null;\n })\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class DataService {\n private readonly messageSource = new BehaviorSubject<number>(0);\n\n currentMessage = this.messageSource.asObservable();\n\n changeMessage(message: number) {\n this.messageSource.next(message);\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NumberPickerService {\n /**\n * Min picker value\n */\n min = 0;\n\n /**\n * Max picker value\n */\n max = 100;\n\n /**\n * Pick step value\n */\n step = 1;\n\n /**\n * Delay for start picking values\n */\n pickStartAfter = 500;\n\n /**\n * Delay between each pick\n */\n pickTimer = 100;\n\n /**\n * value precision\n */\n precision = 1;\n\n /**\n * Initial picker value\n */\n value = null;\n}\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { ErrorHandler, Injectable } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { User } from '@posiwise/common-utilities';\n\nimport { StatusCodes } from 'http-status-codes';\nimport { fromError } from 'stacktrace-js';\n\nimport * as Sentry from '@sentry/angular-ivy';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SentryErrorHandler implements ErrorHandler {\n private static user: Partial<User>;\n private static sentryInitialized = false;\n\n constructor(private readonly appConfigService: AppConfigService) {}\n\n private async initializeSentryAsync(): Promise<void> {\n if (SentryErrorHandler.sentryInitialized) {\n // Sentry is already initialized, no need to do it again\n return;\n }\n Sentry.createErrorHandler();\n\n const config = await this.getSentryConfigAsync();\n\n this.appConfigService.appConfig$.subscribe(env => {\n if (env?.integrations?.sentry_config) {\n Sentry.init({ ...config, ...env.integrations.sentry_config });\n SentryErrorHandler.sentryInitialized = true;\n\n // Add a global listener for unhandled promise rejections\n window.addEventListener('unhandledrejection', (event: PromiseRejectionEvent) => {\n this.handlePromiseRejection(event);\n });\n }\n });\n // Add a global listener for unhandled promise rejections\n window.addEventListener('unhandledrejection', (event: PromiseRejectionEvent) => {\n this.handlePromiseRejection(event);\n });\n }\n\n private async getSentryConfigAsync(): Promise<Sentry.BrowserOptions> {\n return new Promise(resolve => {\n const environment =\n window.location.host?.includes('dev') || window.location.host?.includes('localhost')\n ? 'development'\n : 'production';\n\n const ignoredPaths = [''];\n const healthCheckPaths = ['/ping'];\n const onePercentIgnoredPaths = [''];\n const fivePercentIgnoredPaths = [''];\n\n const config: Sentry.BrowserOptions = {\n dsn: null,\n tracesSampleRate: 0.1,\n beforeSend(event, hint) {\n // Check if the event is of type CloseEvent and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n // Update the condition based on the actual structure of the event\n return !(\n value.type === 'CloseEvent' || value.value.includes('CloseEvent')\n );\n });\n }\n\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n // Check for the specific error message and ignore it\n return !(\n value.type === 'Error' &&\n value.value.includes('ResizeObserver loop completed')\n );\n });\n }\n\n // originates from vendor.js file\n if (event?.exception?.values) {\n const isJsonParsingError = event.exception.values.some(value => {\n return (\n value.type === 'SyntaxError' &&\n value?.value?.includes(\"expected ':' after property name in\")\n );\n });\n\n if (isJsonParsingError) {\n return null;\n }\n }\n\n // Check if the event is a ChunkLoadError and ignore it (it could be because of poor network)\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'ChunkLoadError' ||\n value.value.includes('ChunkLoadError: Loading chunk')\n );\n });\n }\n\n // Check if the event is a script loading error and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'Error' &&\n value.value.includes('Could not load \"util\"')\n );\n });\n }\n\n // Check if the event is a timeout error and ignore it\n if (event?.exception?.values) {\n event.exception.values = event.exception.values.filter(value => {\n return !(\n value.type === 'Error' &&\n value.value.includes('Error loading plotly.js library from')\n );\n });\n }\n\n // Check if the event is related to cross-origin frame access\n if (event?.exception?.values) {\n const isCrossOriginFrameError = event.exception.values.some(value => {\n return (\n value.type === 'SecurityError' &&\n value?.value?.includes(\n \"Failed to read a named property 'navigator' from 'Window': Blocked a frame with origin\"\n )\n );\n });\n\n if (isCrossOriginFrameError) {\n // Exclude cross-origin frame errors from being reported to Sentry\n return null;\n }\n }\n\n // Check if the event has an exception and values array\n if (event?.exception?.values) {\n // Filter out events generated by TryCatch and GlobalHandlers\n event.exception.values = event.exception.values.filter(value => {\n const mechanism = value.mechanism;\n return !(\n mechanism &&\n (mechanism.type === 'TryCatch' ||\n mechanism.type === 'GlobalHandlers')\n );\n });\n }\n\n // Check if it's a non-error exception\n const isNonErrorException =\n event?.exception?.values?.[0]?.value?.startsWith(\n 'Non-Error exception captured'\n ) ??\n (hint?.originalException as Error)?.message?.startsWith(\n 'Non-Error exception captured'\n );\n\n if (isNonErrorException) {\n // We want to ignore those kinds of errors\n return null;\n }\n\n return event;\n },\n denyUrls: [/drift.*\\.js/i, /analytics.*\\.js/i, /polyfills.*\\.js/i, /vendor.*\\.js/i],\n integrations: [\n // Registers and configures the Tracing integration,\n // which automatically instruments your application to monitor its\n // performance, including custom Angular routing instrumentation\n new Sentry.BrowserTracing({\n routingInstrumentation: Sentry.routingInstrumentation\n })\n ],\n tracesSampler: samplingContext => {\n // Examine provided context data (including parent decision, if any) along\n // with anything in the global namespace to compute the sample rate or\n // sampling decision for this transaction\n const pathname = samplingContext.location.pathname;\n if (ignoredPaths.includes(pathname)) {\n return 0;\n } else if (healthCheckPaths.includes(pathname)) {\n // very low rate as these are extremely frequent and pretty useless\n return 0.001;\n } else if (onePercentIgnoredPaths.includes(pathname)) {\n return 0.01;\n } else if (fivePercentIgnoredPaths.includes(pathname)) {\n return 0.05;\n } else {\n // Default sample rate\n return 0.1;\n }\n },\n environment,\n\n // We ignore Server Errors. We have to define here since Angular\n // http client uses setTimeout to detect http call progress.\n // And when the call fails, it throws an exception inside that timeout\n // that bubbles up higher to the main Angular's error handler.\n ignoreErrors: [\n 'top.GLOBALS',\n 'ResizeObserver loop completed with undelivered notifications'\n ]\n };\n resolve(config);\n });\n }\n initializeUser(user: Partial<User>) {\n SentryErrorHandler.user = {\n id: user?.id,\n name: user?.first_name,\n email: user?.email\n } as Partial<User>;\n }\n\n private handlePromiseRejection(event: PromiseRejectionEvent): void {\n const error = event.reason;\n this.logToSentry(error);\n this.logToConsole(error);\n }\n\n handleError(incomingError: HttpErrorResponse | Error) {\n // in case of 401, return no exception\n if (incomingError instanceof HttpErrorResponse) {\n if (\n incomingError.status === StatusCodes.UNAUTHORIZED ||\n incomingError.status === StatusCodes.FORBIDDEN\n ) {\n // Handle 401 error (e.g., redirect to login page)\n console.error('Unauthorized request:', incomingError);\n return;\n }\n\n if (incomingError.status === StatusCodes.UNPROCESSABLE_ENTITY) {\n // Handle 422 error\n console.error('UNPROCESSABLE_ENTITY request:', incomingError);\n return;\n }\n\n if (incomingError.status === 433) {\n // Handle 433 error\n console.error('over message quota:', incomingError);\n return;\n }\n }\n this.handleExceptionError(incomingError);\n }\n\n handleExceptionError(incomingError) {\n if (incomingError) {\n let error = incomingError; // The actual error to log\n while ('originalError' in error && error.originalError instanceof Error) {\n this.logToConsole(error);\n error = error.originalError;\n }\n this.extractOriginalError(error, incomingError);\n }\n }\n\n extractOriginalError(error, incomingError) {\n // Exclude specific errors\n if (error instanceof HttpErrorResponse) {\n if (error.status === StatusCodes.NOT_FOUND) {\n console.warn('Excluded 404 error:', error);\n return; // Skip logging to Sentry\n }\n if (error.status === 0 && error.statusText === 'Unknown Error') {\n // Handle network-related errors differently or suppress them\n console.warn('Network-related error:', error);\n return; // Don't rethrow the error\n }\n const message = this.getErrorMessage(error);\n error = new Error(`Got HttpErrorResponse on URL ${error.url} message: ${message}`);\n }\n\n this.handleNonHttpErrorResponse(error);\n\n // Ensure all errors have a proper message\n this.errorMessageFormatter(error);\n\n // Existing Sentry initialization logic\n this.sentryInitialization(error, incomingError);\n }\n\n getErrorMessage(error): string {\n let { message } = error;\n if (!message) {\n try {\n message = JSON.stringify(error);\n } catch (e) {\n message =\n typeof error === 'object' && error !== null\n ? JSON.stringify(error)\n : error.toString();\n console.log(e);\n }\n }\n return message;\n }\n\n handleNonHttpErrorResponse(error) {\n if (typeof error === 'object' && 'message' in error) {\n if (error instanceof HttpErrorResponse) {\n if (error.status !== StatusCodes.UNAUTHORIZED) {\n error = new Error(`Object captured as exception: ${error}`); // NOSONAR\n }\n }\n // Exclude reporting 401 errors\n }\n }\n\n errorMessageFormatter(error) {\n if (!(error instanceof Error) || !error.message) {\n const defaultMessage = 'Captured an unlabeled event';\n\n if (error && 'isTrusted' in error) {\n console.warn('Ignored isTrusted browser event:', error);\n return;\n }\n\n const errorDetails = error ? JSON.stringify(error) : 'No more additional error info';\n const enhancedErrorMessage = `${defaultMessage} | Original error detail: ${errorDetails}`;\n error = new Error(enhancedErrorMessage); // NOSONAR\n }\n }\n\n sentryInitialization(error, incomingError) {\n if (!SentryErrorHandler.sentryInitialized) {\n this.initializeSentryAsync()\n .then(() => {\n this.logToSentry(error);\n throw incomingError;\n })\n .catch(err => {\n console.error('Error initializing Sentry:', err);\n this.logToConsole(error);\n });\n } else {\n this.logToSentry(error);\n }\n }\n\n private logToSentry(error: Error) {\n try {\n const user = SentryErrorHandler.user as Error;\n this.scopeWithSentry(error, user);\n } catch (e) {\n console.error('Unable to log the error to Sentry. An exception occurred:');\n console.error(e);\n }\n }\n\n private scopeWithSentry(error, user) {\n Sentry.withScope(scope => {\n // Appends user details for sentry log\n scope.setUser({\n ...user\n });\n\n // Ensure error is properly formatted\n if (error instanceof Error && error.message) {\n Sentry.captureException(error);\n } else if (typeof error === 'object' && error !== null) {\n this.handleNonStandardError(error);\n } else {\n this.handleUnlabeledEvent(error);\n }\n });\n }\n\n private handleNonStandardError(error: object) {\n if ('isTrusted' in error) {\n return;\n }\n // If it's an object but not a standard Error, attempt to log its properties safely\n let errorMessage = 'Captured non-standard error with no message'; // NOSONAR\n\n // Try to extract any message-like property safely\n if ('message' in error) {\n let messageText = '';\n\n if (typeof error.message === 'object' && error.message !== null) {\n messageText = JSON.stringify(error.message);\n } else if (typeof error.message === 'string') {\n messageText = error.message;\n }\n\n errorMessage = `Error message: ${messageText}`;\n } else {\n // Attempt to capture key properties safely\n try {\n errorMessage = `Captured non-standard error: ${JSON.stringify(error, Object.getOwnPropertyNames(error))}`;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n } catch (jsonError: any) {\n errorMessage = `Captured non-standard error with serialization issue: ${jsonError.message}`;\n }\n }\n\n // Create a new Error object with the enhanced message\n const errorObject = new Error(errorMessage);\n Sentry.captureException(errorObject);\n }\n\n private handleUnlabeledEvent(error) {\n const defaultMessage = 'Captured an unlabeled event';\n\n if (error && 'isTrusted' in error) {\n console.warn('Ignored isTrusted browser event:', error);\n return;\n }\n\n const errorDetails = error ? JSON.stringify(error) : 'No additional error info';\n const enhancedErrorMessage = `${defaultMessage} | Original error details: ${errorDetails}`;\n const enhancedError = new Error(enhancedErrorMessage);\n\n Sentry.captureException(enhancedError);\n }\n\n private logToConsole(error: Error) {\n // Attempt to print in the console\n try {\n // We use StackTrace to try getting a good stacktrace. If it fails, just print the error\n const message = error.message ? error.message : error.toString();\n const url = window.location.href;\n fromError(error instanceof Error ? error : new Error('Non-Error Object')).then(\n stackFrames => {\n const stackString = stackFrames.splice(0, 20).map(sf => sf.toString());\n\n console.error({ message, url, stack: stackString, error });\n }\n );\n } catch (e) {\n console.error(error, e);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class LogoCacheService {\n private cache: { [url: string]: string } = {};\n private loadingUrls: { [url: string]: boolean } = {};\n\n constructor() {\n this.loadCache();\n }\n\n getLogo(url: string): string {\n if (this.cache[url]) {\n // If the URL is in the cache, return the base64-encoded image data directly\n return this.cache[url];\n }\n\n // If the URL is already in the process of loading, return the default image\n if (this.loadingUrls[url]) {\n return 'assets/img/icons/company.png';\n }\n\n // Mark the URL as in progress to prevent concurrent requests for the same URL\n this.loadingUrls[url] = true;\n\n // Attempt to load the image\n const img = new Image();\n img.crossOrigin = 'Anonymous'; // Set crossOrigin to handle CORS issues\n img.src = url;\n img.onload = () => {\n // If the image loads successfully (HTTP 200), update the cache with base64 data\n const canvas = document.createElement('canvas');\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext('2d');\n ctx.drawImage(img, 0, 0);\n const base64Data = canvas.toDataURL('image/png');\n this.cache[url] = base64Data;\n this.saveCache();\n // Remove the URL from the in-progress list\n delete this.loadingUrls[url];\n };\n img.onerror = () => {\n // If the image fails to load, update the cache with the default image\n this.cache[url] = 'assets/img/icons/company.png';\n this.saveCache();\n // Remove the URL from the in-progress list\n delete this.loadingUrls[url];\n };\n\n // Return the default image while the image is being loaded\n return 'assets/img/icons/company.png';\n }\n\n private saveCache() {\n localStorage.setItem('Clearbit_Logos_Cache', JSON.stringify(this.cache));\n }\n\n private loadCache() {\n const cacheData = localStorage.getItem('Clearbit_Logos_Cache');\n if (cacheData) {\n this.cache = JSON.parse(cacheData);\n }\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { ScriptLoaderService } from './script-loader.service';\nimport { TipsService } from './tips.service';\n\ninterface Tour {\n id: string;\n steps: TourStep[];\n}\n\ninterface TourStep {\n target: string;\n title: string;\n content: string;\n placement: string;\n arrowOffset?: number;\n xOffset?: number;\n yOffset?: number;\n isHTML?: boolean;\n showPrevButton?: boolean;\n}\n\ndeclare let window: {\n hopscotch: {\n startTour: (tour: Tour) => void;\n endTour: () => void;\n nextStep: () => void;\n showStep: (stepNumber: number) => void;\n };\n};\n\n@Injectable({\n providedIn: 'root'\n})\nexport class HopscotchService {\n private readonly tour: Tour = {\n id: '',\n steps: []\n };\n\n constructor(\n private readonly scriptLoader: ScriptLoaderService,\n private readonly tipService: TipsService\n ) {}\n\n initializeTour(tourId: string, steps: TourStep[], tip_data, subscription_id?: number): void {\n this.tour.id = tourId;\n this.tour.steps = steps;\n\n this.scriptLoader.loadScript('head', '/assets/js/hopscotch.min.js', true).then(() => {\n window.hopscotch?.startTour(this.tour);\n // eslint-disable-next-line func-names\n window.hopscotch.nextStep = function () {\n const stepNumber = $('.hopscotch-bubble-number').text();\n\n if (this.tour.steps.length === Number(stepNumber)) {\n this.tipService.addUserTips(tip_data, subscription_id).subscribe();\n window?.hopscotch?.endTour();\n } else {\n window.hopscotch.showStep(Number(stepNumber));\n }\n }.bind(this);\n });\n }\n\n endTour(): void {\n if (window?.hopscotch) {\n window?.hopscotch?.endTour();\n }\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable, Injector, isDevMode } from '@angular/core';\n\nimport { AppConfigService } from '@posiwise/app-config-service';\nimport { BRAIN_API_PREFIX } from '@posiwise/common-utilities';\n\nimport { BaseHttpService } from './base-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrainApiHttpService extends BaseHttpService {\n constructor(http: HttpClient, injector: Injector) {\n super(http, injector);\n }\n\n override getConfig(): void {\n this.injector.get(AppConfigService).appConfig$.subscribe(config => {\n this.baseUrl = isDevMode() ? BRAIN_API_PREFIX : config?.['links']['brain_api'] ?? '';\n });\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BrainApiHttpService } from './brain-api-http.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class BrainApiService {\n constructor(private readonly api: BrainApiHttpService) {}\n\n invokeModel(payload: {\n model_name: 'claude' | 'deepseek';\n prompt: string;\n session_id?: string;\n max_tokens?: number;\n temperature?: number;\n }) {\n return this.api.post('/bedrock/invoke', payload);\n }\n}\n","/*\n * Public API Surface of pw-services\n */\nexport * from './lib/google-analytics.service';\nexport * from './lib/script-loader.service';\nexport * from './lib/base-http.service';\nexport * from './lib/common-services.module';\nexport * from './lib/seo.service';\nexport * from './lib/main-api-http.service';\nexport * from './lib/permission.service';\nexport * from './lib/toast.service';\nexport * from './lib/auth.service';\nexport * from './lib/local-storage.service';\nexport * from './lib/secure-token-storage.service';\nexport * from './lib/integrations-api-http.service';\nexport * from './lib/link-loader.service';\nexport * from './lib/user.service';\nexport * from './lib/custom-preloading.service';\nexport * from './lib/ab-test.service';\nexport * from './lib/geo.service';\nexport * from './lib/profile.service';\nexport * from './lib/subscription.service';\nexport * from './lib/product.service';\nexport * from './lib/validation.service';\nexport * from './lib/form-helper.service';\nexport * from './lib/ahoy.service';\nexport * from './lib/common.service';\nexport * from './lib/date-formatter.service';\nexport * from './lib/primeNgHelper';\nexport * from './lib/tag.service';\nexport * from './lib/tips.service';\nexport * from './lib/window.service';\nexport * from './lib/group.service';\nexport * from './lib/qualification.service';\nexport * from './lib/dashboard.service';\nexport * from './lib/mailbox.service';\nexport * from './lib/notification.service';\nexport * from './lib/socket.service';\nexport * from './lib/effects/user.effects';\nexport * from './lib/data.service';\nexport * from './lib/number-picker.service';\nexport * from './lib/sentry.service';\nexport * from './lib/logo-caching.service';\nexport * from './lib/hopscotch.service';\nexport * from './lib/brain.service';\nexport * from './lib/brain-api-http.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2.ScriptLoaderService","i3","i1.MainApiHttpService","i1.UserService","i1.PermissionService","tap","i2","i2.AuthService","i2.CustomToastService","i3.WebsocketService","i1.ScriptLoaderService","i2.TipsService","i1.BrainApiHttpService"],"mappings":"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"}
|