{ "version": 3, "sources": ["src/app/shared/guards/access-token/valid-access-token.guard.ts", "src/app/shared/guards/page/page-id-validator.guard.ts", "src/app/shared/guards/role/role.guard.ts", "src/app/shared/guards/application/application-id-validator.guard.ts", "src/app/shared/guards/page/join-demo.guard.ts", "src/app/shared/guards/subscription/subscription-validator.guard.ts", "src/app/shared/guards/view/view-validator.guard.ts"], "sourcesContent": ["/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { inject } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivateFn,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { AuthService } from '../../services/auth.service';\n\nexport const validAccessTokenGuard: CanActivateFn = async (\n _: ActivatedRouteSnapshot,\n __: RouterStateSnapshot\n) => {\n const oauthService = inject(OAuthService);\n const validAccessToken = oauthService.hasValidAccessToken();\n if (validAccessToken) {\n return true;\n }\n\n const authService = inject(AuthService);\n await authService.redirectToPageBasedOnLoginState();\n return false;\n};\n", "/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { inject } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivateFn,\n createUrlTreeFromSnapshot,\n Router,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { firstValueFrom } from 'rxjs';\nimport { fullUrls, shortUrls } from '../../../app-urls';\nimport { SetPage } from '../../data/actions/context.actions';\nimport { UpdateInterfaceTitle } from '../../data/actions/interface.actions';\nimport { AppState } from '../../data/state/app.state.model';\nimport { UserRole, ViewMenuItem } from '../../models';\nimport { AuthService } from '../../services/auth.service';\nimport { UserSubscriptionService } from '../../services/user-subscriptions.service';\nimport { findIntersectionOfTwoLists } from '../../util';\n\nexport const pageIdValidatorGuard: CanActivateFn = async (\n activatedRouteSnapshot: ActivatedRouteSnapshot,\n routerStateSnapshot: RouterStateSnapshot\n) => {\n const router = inject(Router);\n const store = inject(Store);\n const userSubscriptionService = inject(UserSubscriptionService);\n const authService = inject(AuthService);\n\n const menuItems = await firstValueFrom(userSubscriptionService.menuItems$);\n const userRoles = await firstValueFrom(authService.userRoles$);\n\n const activePageId = activatedRouteSnapshot.paramMap.get('pageId');\n if (!activePageId) {\n const validStartPage = getValidStartPage({ menuItems, userRoles });\n const pageToGo = validStartPage ? validStartPage.id : shortUrls.home;\n\n return createUrlTreeFromSnapshot(activatedRouteSnapshot, [pageToGo]);\n }\n\n if (activePageId === shortUrls.home) {\n return true;\n }\n\n const pageIds = menuItems.map((v) => v.id);\n if (!pageIds.includes(activePageId)) {\n router.navigateByUrl(fullUrls.error);\n return false;\n }\n\n const activePage = menuItems.find(\n (mi) => mi.id === activePageId\n ) as ViewMenuItem;\n\n const userHasAccessToThisPage = !!findIntersectionOfTwoLists(\n userRoles,\n activePage.roles\n ).length;\n if (!userHasAccessToThisPage) {\n return router.navigateByUrl(fullUrls.error);\n }\n store.dispatch(new SetPage(activePage));\n store.dispatch(\n new UpdateInterfaceTitle(activePage.label ?? { en: '', de: '' })\n );\n return true;\n};\n\nconst getValidStartPage = ({\n userRoles,\n menuItems,\n}: {\n userRoles: Array;\n menuItems: Array;\n}) => {\n const startPages = menuItems.filter((menu) => menu.startPage === true);\n\n let validPage = null;\n for (const sp of startPages) {\n const matchingStartPage = !!findIntersectionOfTwoLists(\n userRoles,\n sp.roles\n ).length;\n if (matchingStartPage) {\n validPage = sp;\n break;\n }\n }\n return validPage;\n};\n", "/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { inject } from '@angular/core';\nimport { ActivatedRouteSnapshot } from '@angular/router';\nimport { firstValueFrom } from 'rxjs';\nimport { UserRole } from '../../models';\nimport { AuthService } from '../../services/auth.service';\nimport { findIntersectionOfTwoLists } from '../../util';\n\nexport const validRoleGuard = async ({\n requiredRoles,\n activatedRouteSnapshot,\n}: {\n requiredRoles: Array;\n activatedRouteSnapshot: ActivatedRouteSnapshot;\n}): Promise => {\n const authService = inject(AuthService);\n const userRoles = await firstValueFrom(authService.userRoles$);\n return !!findIntersectionOfTwoLists(userRoles, requiredRoles).length;\n};\n", "/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { inject } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivateFn,\n Router,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { firstValueFrom } from 'rxjs';\nimport { fullUrls } from '../../../app-urls';\nimport {\n LoadPublicAppConfig,\n SetApplicationId,\n} from '../../data/actions/context.actions';\nimport { AppState } from '../../data/state/app.state.model';\nimport { AuthService } from '../../services/auth.service';\nimport { UserSubscriptionService } from '../../services/user-subscriptions.service';\nimport { logIt } from '../../util';\n\nexport const applicationIdValidatorGuard: CanActivateFn = async (\n activatedRouteSnapshot: ActivatedRouteSnapshot,\n routerStateSnapshot: RouterStateSnapshot\n) => {\n const validatorName = 'applicationIdValidatorGuard';\n const store = inject(Store);\n const router = inject(Router);\n const userSubscriptionService = inject(UserSubscriptionService);\n const authService = inject(AuthService);\n const activeApplicationId = activatedRouteSnapshot.paramMap.get(\n 'applicationId'\n ) as string;\n\n const user = await firstValueFrom(authService.currentUserInfo$);\n if (user.profileLoaded && user.profile && user.profile.id) {\n const userSubscriptions = await firstValueFrom(\n userSubscriptionService.userSubscriptions$\n );\n\n const applicationIds = userSubscriptions.map((u) => u.appConfiguration.id);\n\n if (!applicationIds.length) {\n logIt('error', `${validatorName}: user does not have any application.`);\n return router.navigateByUrl(fullUrls.error);\n }\n\n if (!applicationIds.includes(activeApplicationId)) {\n logIt('error', `${validatorName}: expected ${applicationIds.join(',')}`);\n return router.navigateByUrl(fullUrls.visitorWelcome);\n }\n }\n store.dispatch(new SetApplicationId(activeApplicationId));\n store.dispatch(new LoadPublicAppConfig());\n return true;\n};\n", "/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { inject } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivateFn,\n Router,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { firstValueFrom } from 'rxjs';\nimport { UserSubscriptionService } from '../../services/user-subscriptions.service';\n\nexport const joinDemoGuard: CanActivateFn = async (\n activatedRouteSnapshot: ActivatedRouteSnapshot,\n routerStateSnapshot: RouterStateSnapshot\n) => {\n const router = inject(Router);\n\n const userSubscriptionService = inject(UserSubscriptionService);\n const userSubscriptions = await firstValueFrom(\n userSubscriptionService.userSubscriptions$\n );\n if (!userSubscriptions.length) {\n return true;\n }\n\n const {\n id: subscriptionId,\n appConfiguration: { id: applicationId },\n } = userSubscriptions[0];\n return router.createUrlTree(['/', applicationId, subscriptionId]);\n};\n", "/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { inject } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivateFn,\n createUrlTreeFromSnapshot,\n Router,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { firstValueFrom } from 'rxjs';\nimport { env } from '../../../../environments/environment';\nimport { fullUrls } from '../../../app-urls';\nimport { SetSubscriptionId } from '../../data/actions/context.actions';\nimport {\n LoadMaintenanceInfo,\n LoadSubscription,\n LoadViews,\n ResetSubscription,\n} from '../../data/actions/subscription.actions';\nimport { DecodeJWTForUserInfo } from '../../data/actions/user.actions';\nimport { AppState } from '../../data/state/app.state.model';\nimport { CopilotService } from '../../services/copilot.service';\nimport { UserSubscriptionService } from '../../services/user-subscriptions.service';\nimport { logIt } from '../../util';\n\nexport const subscriptionValidatorGuard: CanActivateFn = async (\n activatedRouteSnapshot: ActivatedRouteSnapshot,\n routerStateSnapshot: RouterStateSnapshot\n) => {\n const validatorName = 'subscriptionValidatorGuard';\n const router = inject(Router);\n const store = inject(Store);\n const copilotService = inject(CopilotService);\n store.dispatch(new ResetSubscription());\n\n const userSubscriptionService = inject(UserSubscriptionService);\n const userSubscriptions = await firstValueFrom(\n userSubscriptionService.userSubscriptions$\n );\n\n // send to welcome page if user has no subscription\n if (!userSubscriptions.length) {\n logIt('error', `${validatorName}: user does not have any subscription.`);\n return router.navigateByUrl(fullUrls.visitorWelcome);\n }\n\n let activeApplicationId = await firstValueFrom(\n userSubscriptionService.activeApplicationId$\n );\n\n // navigate to first user subscription when sandbox was loaded\n if (activeApplicationId === env.DEFAULT_APPLICATION) {\n logIt(\n 'info',\n `${validatorName}: Since user loaded default route /ui we need to pick first subscription from list.`\n );\n\n return router.navigateByUrl(\n `/${userSubscriptions[0].appConfiguration.id}/${userSubscriptions[0].id}`\n );\n }\n\n let activeSubscriptionId = activatedRouteSnapshot.paramMap.get(\n 'subscriptionId'\n ) as string;\n\n const subscriptionsUnderApplication = userSubscriptions.filter(\n (s) => s.appConfiguration.id === activeApplicationId\n );\n\n /**\n * Navigate to subscription-access-denied page when wrong application name is\n * entered (that can be confirmed if no subscription is found under given application)\n * */\n if (!subscriptionsUnderApplication.length) {\n logIt(\n 'error',\n `${validatorName}: no subscription found under the application ${activeApplicationId}`\n );\n\n return router.navigateByUrl(fullUrls.subscriptionAccessDenied);\n }\n\n if (!activeSubscriptionId) {\n logIt('info', `${validatorName}: no subscription id passed`);\n activeSubscriptionId = subscriptionsUnderApplication[0].id;\n return createUrlTreeFromSnapshot(activatedRouteSnapshot, [\n activeSubscriptionId,\n ]);\n }\n\n const subscriptionIds = subscriptionsUnderApplication.map((s) => s.id);\n if (!subscriptionIds.includes(activeSubscriptionId)) {\n logIt(\n 'error',\n `${validatorName}: expected sub to be ${subscriptionIds.join(',')}`\n );\n return router.navigateByUrl(fullUrls.subscriptionAccessDenied);\n }\n\n store.dispatch(new SetSubscriptionId(activeSubscriptionId));\n store.dispatch(new LoadSubscription());\n store.dispatch(new DecodeJWTForUserInfo());\n store.dispatch(new LoadViews());\n store.dispatch(new LoadMaintenanceInfo());\n\n copilotService.clearChat();\n copilotService.setChatWindowVisibility(false);\n return true;\n};\n", "/**\n * Copyright (c) 2020-2023 by Bosch.IO GmbH\n *\n * http://www.bosch.io\n * All rights reserved,\n * also regarding any disposal, exploitation, reproduction,\n * editing, distribution, as well as in the event of\n * applications for industrial property rights.\n *\n * This software is the confidential and proprietary information\n * of Bosch.IO GmbH. You shall not disclose\n * such Confidential Information and shall use it only in\n * accordance with the terms of the license agreement you\n * entered into with Bosch.IO.\n */\nimport { inject } from '@angular/core';\nimport {\n ActivatedRouteSnapshot,\n CanActivateFn,\n createUrlTreeFromSnapshot,\n Router,\n RouterStateSnapshot,\n} from '@angular/router';\nimport { Store } from '@ngrx/store';\nimport { firstValueFrom } from 'rxjs';\nimport { fullUrls } from '../../../app-urls';\nimport { SetView } from '../../data/actions/context.actions';\nimport { AppState } from '../../data/state/app.state.model';\nimport { UserSubscriptionService } from '../../services/user-subscriptions.service';\n\nexport const viewValidatorGuard: CanActivateFn = async (\n activatedRouteSnapshot: ActivatedRouteSnapshot,\n routerStateSnapshot: RouterStateSnapshot\n) => {\n const router = inject(Router);\n const store = inject(Store);\n const userSubscriptionService = inject(UserSubscriptionService);\n\n let activeViewId = activatedRouteSnapshot.paramMap.get('viewId') as string;\n\n const views = await firstValueFrom(userSubscriptionService.views$);\n if (!activeViewId) {\n const defaultView = views[0];\n return createUrlTreeFromSnapshot(activatedRouteSnapshot, [defaultView.id]);\n }\n\n const viewIds = views.map((v) => v.id);\n if (!viewIds.includes(activeViewId)) {\n return router.navigateByUrl(fullUrls.error);\n }\n\n store.dispatch(new SetView(views.find((v) => v.id === activeViewId)));\n return true;\n};\n"], "mappings": "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", "names": ["validAccessTokenGuard", "_", "__", "oauthService", "inject", "OAuthService", "validAccessToken", "hasValidAccessToken", "authService", "AuthService", "redirectToPageBasedOnLoginState", "pageIdValidatorGuard", "activatedRouteSnapshot", "routerStateSnapshot", "router", "inject", "Router", "store", "Store", "userSubscriptionService", "UserSubscriptionService", "authService", "AuthService", "menuItems", "firstValueFrom", "menuItems$", "userRoles", "userRoles$", "activePageId", "paramMap", "get", "validStartPage", "getValidStartPage", "pageToGo", "id", "shortUrls", "home", "createUrlTreeFromSnapshot", "pageIds", "map", "v", "includes", "navigateByUrl", "fullUrls", "error", "activePage", "find", "mi", "userHasAccessToThisPage", "findIntersectionOfTwoLists", "roles", "length", "dispatch", "SetPage", "UpdateInterfaceTitle", "label", "en", "de", "startPages", "filter", "menu", "startPage", "validPage", "sp", "matchingStartPage", "validRoleGuard", "requiredRoles", "activatedRouteSnapshot", "authService", "inject", "AuthService", "userRoles", "firstValueFrom", "userRoles$", "findIntersectionOfTwoLists", "length", "applicationIdValidatorGuard", "activatedRouteSnapshot", "routerStateSnapshot", "validatorName", "store", "inject", "Store", "router", "Router", "userSubscriptionService", "UserSubscriptionService", "authService", "AuthService", "activeApplicationId", "paramMap", "get", "user", "firstValueFrom", "currentUserInfo$", "profileLoaded", "profile", "id", "userSubscriptions", "userSubscriptions$", "applicationIds", "map", "u", "appConfiguration", "length", "logIt", "navigateByUrl", "fullUrls", "error", "includes", "join", "visitorWelcome", "dispatch", "SetApplicationId", "LoadPublicAppConfig", "joinDemoGuard", "activatedRouteSnapshot", "routerStateSnapshot", "router", "inject", "Router", "userSubscriptionService", "UserSubscriptionService", "userSubscriptions", "firstValueFrom", "userSubscriptions$", "length", "id", "subscriptionId", "appConfiguration", "applicationId", "createUrlTree", "subscriptionValidatorGuard", "activatedRouteSnapshot", "routerStateSnapshot", "validatorName", "router", "inject", "Router", "store", "Store", "copilotService", "CopilotService", "dispatch", "ResetSubscription", "userSubscriptionService", "UserSubscriptionService", "userSubscriptions", "firstValueFrom", "userSubscriptions$", "length", "logIt", "navigateByUrl", "fullUrls", "visitorWelcome", "activeApplicationId", "activeApplicationId$", "env", "DEFAULT_APPLICATION", "appConfiguration", "id", "activeSubscriptionId", "paramMap", "get", "subscriptionsUnderApplication", "filter", "s", "subscriptionAccessDenied", "createUrlTreeFromSnapshot", "subscriptionIds", "map", "includes", "join", "SetSubscriptionId", "LoadSubscription", "DecodeJWTForUserInfo", "LoadViews", "LoadMaintenanceInfo", "clearChat", "setChatWindowVisibility", "viewValidatorGuard", "activatedRouteSnapshot", "routerStateSnapshot", "router", "inject", "Router", "store", "Store", "userSubscriptionService", "UserSubscriptionService", "activeViewId", "paramMap", "get", "views", "firstValueFrom", "views$", "defaultView", "createUrlTreeFromSnapshot", "id", "viewIds", "map", "v", "includes", "navigateByUrl", "fullUrls", "error", "dispatch", "SetView", "find"] }