@softheon/armature 10.45.3 → 15.0.0
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/assets/styles/material-overrides.scss +103 -88
- package/assets/styles/sof-styles.scss +442 -376
- package/esm2020/lib/alert-banner/alert-banner-api.mjs +10 -0
- package/esm2020/lib/alert-banner/alert-banner.module.mjs +41 -0
- package/esm2020/lib/alert-banner/components/alert-banner/alert-banner.component.mjs +83 -0
- package/esm2020/lib/alert-banner/models/alert-banner-config.mjs +2 -0
- package/esm2020/lib/alert-banner/models/alert-banner-context.mjs +2 -0
- package/esm2020/lib/alert-banner/models/constants.mjs +16 -0
- package/esm2020/lib/alert-banner/services/alert-banner.service.mjs +44 -0
- package/esm2020/lib/armature.module.mjs +176 -0
- package/esm2020/lib/base-components/base-component-api.mjs +9 -0
- package/esm2020/lib/base-components/base-component.module.mjs +93 -0
- package/esm2020/lib/base-components/sof-alert/sof-alert.component.mjs +79 -0
- package/esm2020/lib/base-components/sof-banner/sof-banner.component.mjs +49 -0
- package/esm2020/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.mjs +188 -0
- package/esm2020/lib/base-components/sof-modal/sof-modal.component.mjs +58 -0
- package/esm2020/lib/base-components/sof-progress-bar/sof-progress-bar.component.mjs +79 -0
- package/esm2020/lib/component-save-print/components/component-save-print/component-save-print.component.mjs +91 -0
- package/esm2020/lib/component-save-print/services/component-save-print.service.mjs +30 -0
- package/esm2020/lib/component-save-print/sof-ar-component-save-print.module.mjs +32 -0
- package/esm2020/lib/core/client-generated/api/session.service.mjs +242 -0
- package/esm2020/lib/core/client-generated/configuration.mjs +59 -0
- package/esm2020/lib/core/client-generated/encoder.mjs +17 -0
- package/esm2020/lib/core/client-generated/model/applicationUserModel.mjs +20 -0
- package/esm2020/lib/core/client-generated/model/assertedUserModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/brandingModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/errorModel.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/folderLink.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/identityProfile.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/models.mjs +20 -0
- package/esm2020/lib/core/client-generated/model/oAuthModel.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/preferencesRow.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/rolesRow.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/sessionGetResponseModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/sessionPostRequestModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/sessionPostResponseModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/sessionPutRequestModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/sessionPutResponseModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/sessionResponseModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/settingsProfile.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/themePaletteColorsModel.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/themePaletteModel.mjs +2 -0
- package/esm2020/lib/core/client-generated/model/trackingModel.mjs +13 -0
- package/esm2020/lib/core/client-generated/model/validationRecordsRow.mjs +13 -0
- package/esm2020/lib/core/client-generated/variables.mjs +9 -0
- package/esm2020/lib/core/components/app-template/app-template.component.mjs +250 -0
- package/esm2020/lib/core/functions/guid.mjs +11 -0
- package/esm2020/lib/core/functions/naming-convention.mjs +33 -0
- package/esm2020/lib/core/initializer/abstract-startup-service.mjs +4 -0
- package/esm2020/lib/core/initializer/initializer.service.mjs +189 -0
- package/esm2020/lib/core/interceptors/armature-auth-token-append.interceptor.mjs +73 -0
- package/esm2020/lib/core/models/base-config.mjs +2 -0
- package/esm2020/lib/core/models/constants.mjs +13 -0
- package/esm2020/lib/core/models/data-store-config.mjs +4 -0
- package/esm2020/lib/core/models/header-config.mjs +2 -0
- package/esm2020/lib/core/models/http-verbs.mjs +9 -0
- package/esm2020/lib/core/models/navigation-config.mjs +2 -0
- package/esm2020/lib/core/models/oidc-auth-settings.mjs +2 -0
- package/esm2020/lib/core/models/route-path.mjs +7 -0
- package/esm2020/lib/core/models/session-config.mjs +4 -0
- package/esm2020/lib/core/models/styles.mjs +2 -0
- package/esm2020/lib/core/models/typed-session.mjs +4 -0
- package/esm2020/lib/core/models/user-entity-service-config.mjs +12 -0
- package/esm2020/lib/core/services/authorization.service.mjs +175 -0
- package/esm2020/lib/core/services/banner.service.mjs +43 -0
- package/esm2020/lib/core/services/base-config.service.mjs +32 -0
- package/esm2020/lib/core/services/custom-auth-config.service.mjs +4 -0
- package/esm2020/lib/core/services/default-config.service.mjs +19 -0
- package/esm2020/lib/core/services/session.service.mjs +385 -0
- package/esm2020/lib/core/services/user-entity.service.mjs +140 -0
- package/esm2020/lib/distributed-cache/client-generated/api/api.mjs +4 -0
- package/esm2020/lib/distributed-cache/client-generated/api/cache.service.mjs +213 -0
- package/esm2020/lib/distributed-cache/client-generated/configuration.mjs +59 -0
- package/esm2020/lib/distributed-cache/client-generated/encoder.mjs +17 -0
- package/esm2020/lib/distributed-cache/client-generated/model/cacheExpirationType.mjs +16 -0
- package/esm2020/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.mjs +2 -0
- package/esm2020/lib/distributed-cache/client-generated/model/models.mjs +5 -0
- package/esm2020/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.mjs +13 -0
- package/esm2020/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.mjs +13 -0
- package/esm2020/lib/distributed-cache/client-generated/variables.mjs +9 -0
- package/esm2020/lib/distributed-cache/distributed-cache-api.mjs +8 -0
- package/esm2020/lib/distributed-cache/distributed-cache.module.mjs +38 -0
- package/esm2020/lib/distributed-cache/models/constants.mjs +3 -0
- package/esm2020/lib/distributed-cache/models/policy-person.mjs +9 -0
- package/esm2020/lib/distributed-cache/services/server-cache.service.mjs +48 -0
- package/esm2020/lib/error/components/error-common/error-common.component.mjs +25 -0
- package/esm2020/lib/error/error-api.mjs +7 -0
- package/esm2020/lib/error/error.module.mjs +31 -0
- package/esm2020/lib/error/models/error-common-config.mjs +8 -0
- package/esm2020/lib/faq/components/faq/faq.component.mjs +40 -0
- package/esm2020/lib/faq/faq-api.mjs +8 -0
- package/esm2020/lib/faq/faq.module.mjs +41 -0
- package/esm2020/lib/faq/models/faq-config.mjs +4 -0
- package/esm2020/lib/faq/models/faq.mjs +8 -0
- package/esm2020/lib/footer/components/footer/footer.component.mjs +25 -0
- package/esm2020/lib/footer/components/site-map/site-map.component.mjs +25 -0
- package/esm2020/lib/footer/footer-api.mjs +10 -0
- package/esm2020/lib/footer/footer.module.mjs +45 -0
- package/esm2020/lib/footer/models/enum/site-map-direction.mjs +15 -0
- package/esm2020/lib/footer/models/footer-config.mjs +4 -0
- package/esm2020/lib/footer/models/site-map-models.mjs +2 -0
- package/esm2020/lib/forms/components/sof-address/sof-address.component.mjs +110 -0
- package/esm2020/lib/forms/directives/alphanumeric/alphanumeric.directive.mjs +78 -0
- package/esm2020/lib/forms/directives/input-trim/input-trim.directive.mjs +110 -0
- package/esm2020/lib/forms/directives/letters-only/letters-only.directive.mjs +72 -0
- package/esm2020/lib/forms/directives/numbers-only/numbers-only.directive.mjs +60 -0
- package/esm2020/lib/forms/forms-api.mjs +19 -0
- package/esm2020/lib/forms/forms.module.mjs +83 -0
- package/esm2020/lib/forms/models/address.mjs +2 -0
- package/esm2020/lib/forms/models/constants.mjs +10 -0
- package/esm2020/lib/forms/models/county.mjs +2 -0
- package/esm2020/lib/forms/models/enums/states.mjs +58 -0
- package/esm2020/lib/forms/pipes/phone-format.pipe.mjs +33 -0
- package/esm2020/lib/forms/services/alert.service.mjs +167 -0
- package/esm2020/lib/header/components/header/header.component.mjs +161 -0
- package/esm2020/lib/header/components/mobile-header-menu/mobile-header-menu.component.mjs +39 -0
- package/esm2020/lib/header/header-api.mjs +12 -0
- package/esm2020/lib/header/header.module.mjs +85 -0
- package/esm2020/lib/header/models/header-auth.settings.mjs +32 -0
- package/esm2020/lib/header/models/header-language.settings.mjs +2 -0
- package/esm2020/lib/header/models/header-theme.settings.mjs +2 -0
- package/esm2020/lib/header/models/header.settings.mjs +2 -0
- package/esm2020/lib/header/models/mobile-header-nav.settings.mjs +2 -0
- package/esm2020/lib/navigation/components/navigation/navigation.component.mjs +555 -0
- package/esm2020/lib/navigation/models/nav-theme.settings.mjs +2 -0
- package/esm2020/lib/navigation/models/nav.settings.mjs +2 -0
- package/esm2020/lib/navigation/models/navigation.mjs +2 -0
- package/esm2020/lib/navigation/navigation-api.mjs +9 -0
- package/esm2020/lib/navigation/navigation.module.mjs +126 -0
- package/esm2020/lib/oauth/models/constants.mjs +6 -0
- package/esm2020/lib/oauth/models/generated/accountManagementAssertionModel.mjs +2 -0
- package/esm2020/lib/oauth/models/generated/accountManagementRefreshRequestModel.mjs +2 -0
- package/esm2020/lib/oauth/models/generated/accountManagementResponseModel.mjs +2 -0
- package/esm2020/lib/oauth/models/generated/coverageDetail.mjs +19 -0
- package/esm2020/lib/oauth/models/generated/finance.mjs +13 -0
- package/esm2020/lib/oauth/models/generated/iSsoResponseModel.mjs +13 -0
- package/esm2020/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.mjs +2 -0
- package/esm2020/lib/oauth/models/generated/person.mjs +13 -0
- package/esm2020/lib/oauth/models/generated/policy.mjs +2 -0
- package/esm2020/lib/oauth/models/generated/refreshResponseModel.mjs +13 -0
- package/esm2020/lib/oauth/models/hybrid-saml-oauth-config.mjs +4 -0
- package/esm2020/lib/oauth/oauth-api.mjs +15 -0
- package/esm2020/lib/oauth/oauth.module.mjs +29 -0
- package/esm2020/lib/oauth/services/hybrid-saml-oauth.service.mjs +201 -0
- package/esm2020/lib/rbac/directives/rbac-action.directive.mjs +50 -0
- package/esm2020/lib/rbac/models/access-token-claims.mjs +23 -0
- package/esm2020/lib/rbac/models/constants.mjs +4 -0
- package/esm2020/lib/rbac/models/decoded-access-token.mjs +69 -0
- package/esm2020/lib/rbac/models/rbac-config.mjs +4 -0
- package/esm2020/lib/rbac/models/role-access.mjs +10 -0
- package/esm2020/lib/rbac/rbac-api.mjs +15 -0
- package/esm2020/lib/rbac/rbac.module.mjs +51 -0
- package/esm2020/lib/rbac/services/ar-role-nav.service.mjs +91 -0
- package/esm2020/lib/rbac/services/oauth2-role.service.mjs +114 -0
- package/esm2020/lib/rbac/services/role-nav.service.mjs +4 -0
- package/esm2020/lib/resize-panels/components/resize-panels/resize-panels.component.mjs +156 -0
- package/esm2020/lib/resize-panels/models/resize-event.mjs +2 -0
- package/esm2020/lib/resize-panels/resize-panels-api.mjs +5 -0
- package/esm2020/lib/resize-panels/resize-panels.module.mjs +23 -0
- package/esm2020/lib/rum/models/arm-error.mjs +29 -0
- package/esm2020/lib/rum/models/rum-config.mjs +4 -0
- package/esm2020/lib/rum/rum-api.mjs +10 -0
- package/esm2020/lib/rum/rum.module.mjs +48 -0
- package/esm2020/lib/rum/services/rum.service.mjs +115 -0
- package/esm2020/lib/rum/services/shared-error.service.mjs +45 -0
- package/esm2020/lib/rum/services/softheon-error-handler.service.mjs +76 -0
- package/esm2020/lib/saml/components/redirect-saml/redirect-saml.component.mjs +79 -0
- package/esm2020/lib/saml/models/i-saml-request.mjs +2 -0
- package/esm2020/lib/saml/models/i-saml-response.mjs +2 -0
- package/esm2020/lib/saml/models/redirect-saml-request.mjs +4 -0
- package/esm2020/lib/saml/models/sso-gateway-model.mjs +4 -0
- package/esm2020/lib/saml/saml-api.mjs +15 -0
- package/esm2020/lib/saml/saml.module.mjs +43 -0
- package/esm2020/lib/saml/services/entry/abstract-saml-entry.service.mjs +4 -0
- package/esm2020/lib/saml/services/entry/sso-gateway-entry.service.mjs +36 -0
- package/esm2020/lib/saml/services/send-off/abstract-saml.service.mjs +4 -0
- package/esm2020/lib/saml/services/send-off/saml.service.mjs +39 -0
- package/esm2020/lib/sof-pipe/constants/constants.mjs +17 -0
- package/esm2020/lib/sof-pipe/models/sof-date-pipe-format.mjs +2 -0
- package/esm2020/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.mjs +39 -0
- package/esm2020/lib/sof-pipe/pipes/sof-date/sof-date.pipe.mjs +59 -0
- package/esm2020/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.mjs +28 -0
- package/esm2020/lib/sof-pipe/sof-pipe.api.mjs +9 -0
- package/esm2020/lib/sof-pipe/sof-pipe.module.mjs +39 -0
- package/esm2020/lib/theming/directives/css-override.directive.mjs +69 -0
- package/esm2020/lib/theming/models/css-override.mjs +11 -0
- package/esm2020/lib/theming/services/theme.service.mjs +167 -0
- package/esm2020/lib/theming/theme-api.mjs +6 -0
- package/esm2020/lib/theming/theme.module.mjs +31 -0
- package/esm2020/public-api.mjs +48 -0
- package/esm2020/softheon-armature.mjs +5 -0
- package/fesm2015/softheon-armature.mjs +6767 -0
- package/fesm2015/softheon-armature.mjs.map +1 -0
- package/fesm2020/softheon-armature.mjs +6829 -0
- package/fesm2020/softheon-armature.mjs.map +1 -0
- package/index.d.ts +5 -0
- package/lib/alert-banner/alert-banner.module.d.ts +9 -0
- package/lib/alert-banner/components/alert-banner/alert-banner.component.d.ts +3 -0
- package/lib/alert-banner/services/alert-banner.service.d.ts +3 -0
- package/lib/armature.module.d.ts +15 -0
- package/lib/base-components/base-component.module.d.ts +24 -0
- package/lib/base-components/sof-alert/sof-alert.component.d.ts +3 -0
- package/lib/base-components/sof-banner/sof-banner.component.d.ts +3 -0
- package/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.d.ts +3 -0
- package/lib/base-components/sof-modal/sof-modal.component.d.ts +3 -0
- package/lib/base-components/sof-progress-bar/sof-progress-bar.component.d.ts +3 -0
- package/lib/component-save-print/components/component-save-print/component-save-print.component.d.ts +3 -0
- package/lib/component-save-print/services/component-save-print.service.d.ts +3 -0
- package/lib/component-save-print/sof-ar-component-save-print.module.d.ts +6 -0
- package/lib/core/client-generated/api/session.service.d.ts +3 -11
- package/lib/core/components/app-template/app-template.component.d.ts +3 -0
- package/lib/core/initializer/initializer.service.d.ts +3 -0
- package/lib/core/interceptors/armature-auth-token-append.interceptor.d.ts +3 -0
- package/lib/core/models/http-verbs.d.ts +1 -1
- package/lib/core/services/authorization.service.d.ts +3 -0
- package/lib/core/services/banner.service.d.ts +3 -0
- package/lib/core/services/base-config.service.d.ts +3 -0
- package/lib/core/services/default-config.service.d.ts +3 -0
- package/lib/core/services/session.service.d.ts +3 -0
- package/lib/core/services/user-entity.service.d.ts +3 -0
- package/lib/distributed-cache/client-generated/api/cache.service.d.ts +3 -11
- package/lib/distributed-cache/client-generated/model/cacheExpirationType.d.ts +1 -1
- package/lib/distributed-cache/distributed-cache.module.d.ts +5 -0
- package/lib/distributed-cache/services/server-cache.service.d.ts +3 -0
- package/lib/error/components/error-common/error-common.component.d.ts +3 -0
- package/lib/error/error.module.d.ts +8 -0
- package/lib/faq/components/faq/faq.component.d.ts +3 -0
- package/lib/faq/faq.module.d.ts +12 -0
- package/lib/footer/components/footer/footer.component.d.ts +3 -0
- package/lib/footer/components/site-map/site-map.component.d.ts +3 -0
- package/lib/footer/footer.module.d.ts +11 -0
- package/lib/forms/components/sof-address/sof-address.component.d.ts +3 -0
- package/lib/forms/directives/alphanumeric/alphanumeric.directive.d.ts +3 -0
- package/lib/forms/directives/input-trim/input-trim.directive.d.ts +3 -0
- package/lib/forms/directives/letters-only/letters-only.directive.d.ts +3 -0
- package/lib/forms/directives/numbers-only/numbers-only.directive.d.ts +3 -0
- package/lib/forms/forms.module.d.ts +17 -0
- package/lib/forms/pipes/phone-format.pipe.d.ts +3 -0
- package/lib/forms/services/alert.service.d.ts +3 -0
- package/lib/header/components/header/header.component.d.ts +4 -1
- package/lib/header/components/mobile-header-menu/mobile-header-menu.component.d.ts +3 -0
- package/lib/header/header.module.d.ts +18 -0
- package/lib/navigation/components/navigation/navigation.component.d.ts +6 -3
- package/lib/navigation/navigation.module.d.ts +22 -0
- package/lib/oauth/oauth.module.d.ts +6 -0
- package/lib/oauth/services/hybrid-saml-oauth.service.d.ts +3 -0
- package/lib/rbac/directives/rbac-action.directive.d.ts +3 -0
- package/lib/rbac/rbac.module.d.ts +6 -0
- package/lib/rbac/services/ar-role-nav.service.d.ts +3 -0
- package/lib/rbac/services/oauth2-role.service.d.ts +3 -0
- package/lib/resize-panels/components/resize-panels/resize-panels.component.d.ts +3 -0
- package/lib/resize-panels/resize-panels.module.d.ts +6 -0
- package/lib/rum/rum.module.d.ts +5 -0
- package/lib/rum/services/rum.service.d.ts +3 -0
- package/lib/rum/services/shared-error.service.d.ts +3 -0
- package/lib/rum/services/softheon-error-handler.service.d.ts +3 -0
- package/lib/saml/components/redirect-saml/redirect-saml.component.d.ts +3 -0
- package/lib/saml/saml.module.d.ts +6 -0
- package/lib/saml/services/entry/sso-gateway-entry.service.d.ts +3 -0
- package/lib/saml/services/send-off/saml.service.d.ts +3 -0
- package/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.d.ts +3 -0
- package/lib/sof-pipe/pipes/sof-date/sof-date.pipe.d.ts +3 -0
- package/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.d.ts +3 -0
- package/lib/sof-pipe/sof-pipe.module.d.ts +8 -0
- package/lib/theming/directives/css-override.directive.d.ts +3 -0
- package/lib/theming/services/theme.service.d.ts +3 -0
- package/lib/theming/theme.module.d.ts +6 -0
- package/package.json +39 -27
- package/bundles/softheon-armature.umd.js +0 -7210
- package/bundles/softheon-armature.umd.js.map +0 -1
- package/bundles/softheon-armature.umd.min.js +0 -16
- package/bundles/softheon-armature.umd.min.js.map +0 -1
- package/esm2015/lib/alert-banner/alert-banner-api.js +0 -10
- package/esm2015/lib/alert-banner/alert-banner.module.js +0 -30
- package/esm2015/lib/alert-banner/components/alert-banner/alert-banner.component.js +0 -78
- package/esm2015/lib/alert-banner/models/alert-banner-config.js +0 -2
- package/esm2015/lib/alert-banner/models/alert-banner-context.js +0 -2
- package/esm2015/lib/alert-banner/models/constants.js +0 -16
- package/esm2015/lib/alert-banner/services/alert-banner.service.js +0 -43
- package/esm2015/lib/armature.module.js +0 -142
- package/esm2015/lib/base-components/base-component-api.js +0 -9
- package/esm2015/lib/base-components/base-component.module.js +0 -61
- package/esm2015/lib/base-components/sof-alert/sof-alert.component.js +0 -67
- package/esm2015/lib/base-components/sof-banner/sof-banner.component.js +0 -44
- package/esm2015/lib/base-components/sof-button-toggle-group/sof-button-toggle-group.component.js +0 -169
- package/esm2015/lib/base-components/sof-modal/sof-modal.component.js +0 -49
- package/esm2015/lib/base-components/sof-progress-bar/sof-progress-bar.component.js +0 -76
- package/esm2015/lib/component-save-print/components/component-save-print/component-save-print.component.js +0 -97
- package/esm2015/lib/component-save-print/services/component-save-print.service.js +0 -29
- package/esm2015/lib/component-save-print/sof-ar-component-save-print.module.js +0 -25
- package/esm2015/lib/core/client-generated/api/session.service.js +0 -235
- package/esm2015/lib/core/client-generated/configuration.js +0 -59
- package/esm2015/lib/core/client-generated/encoder.js +0 -17
- package/esm2015/lib/core/client-generated/model/applicationUserModel.js +0 -20
- package/esm2015/lib/core/client-generated/model/assertedUserModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/brandingModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/errorModel.js +0 -13
- package/esm2015/lib/core/client-generated/model/folderLink.js +0 -13
- package/esm2015/lib/core/client-generated/model/identityProfile.js +0 -2
- package/esm2015/lib/core/client-generated/model/models.js +0 -20
- package/esm2015/lib/core/client-generated/model/oAuthModel.js +0 -13
- package/esm2015/lib/core/client-generated/model/preferencesRow.js +0 -13
- package/esm2015/lib/core/client-generated/model/rolesRow.js +0 -13
- package/esm2015/lib/core/client-generated/model/sessionGetResponseModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/sessionPostRequestModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/sessionPostResponseModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/sessionPutRequestModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/sessionPutResponseModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/sessionResponseModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/settingsProfile.js +0 -2
- package/esm2015/lib/core/client-generated/model/themePaletteColorsModel.js +0 -13
- package/esm2015/lib/core/client-generated/model/themePaletteModel.js +0 -2
- package/esm2015/lib/core/client-generated/model/trackingModel.js +0 -13
- package/esm2015/lib/core/client-generated/model/validationRecordsRow.js +0 -13
- package/esm2015/lib/core/client-generated/variables.js +0 -9
- package/esm2015/lib/core/components/app-template/app-template.component.js +0 -249
- package/esm2015/lib/core/functions/guid.js +0 -11
- package/esm2015/lib/core/functions/naming-convention.js +0 -33
- package/esm2015/lib/core/initializer/abstract-startup-service.js +0 -4
- package/esm2015/lib/core/initializer/initializer.service.js +0 -206
- package/esm2015/lib/core/interceptors/armature-auth-token-append.interceptor.js +0 -75
- package/esm2015/lib/core/models/base-config.js +0 -2
- package/esm2015/lib/core/models/constants.js +0 -13
- package/esm2015/lib/core/models/data-store-config.js +0 -4
- package/esm2015/lib/core/models/header-config.js +0 -2
- package/esm2015/lib/core/models/http-verbs.js +0 -9
- package/esm2015/lib/core/models/navigation-config.js +0 -2
- package/esm2015/lib/core/models/oidc-auth-settings.js +0 -2
- package/esm2015/lib/core/models/route-path.js +0 -7
- package/esm2015/lib/core/models/session-config.js +0 -4
- package/esm2015/lib/core/models/styles.js +0 -2
- package/esm2015/lib/core/models/typed-session.js +0 -4
- package/esm2015/lib/core/models/user-entity-service-config.js +0 -12
- package/esm2015/lib/core/services/authorization.service.js +0 -178
- package/esm2015/lib/core/services/banner.service.js +0 -42
- package/esm2015/lib/core/services/base-config.service.js +0 -31
- package/esm2015/lib/core/services/custom-auth-config.service.js +0 -4
- package/esm2015/lib/core/services/default-config.service.js +0 -18
- package/esm2015/lib/core/services/session.service.js +0 -386
- package/esm2015/lib/core/services/user-entity.service.js +0 -147
- package/esm2015/lib/distributed-cache/client-generated/api/api.js +0 -4
- package/esm2015/lib/distributed-cache/client-generated/api/cache.service.js +0 -206
- package/esm2015/lib/distributed-cache/client-generated/configuration.js +0 -59
- package/esm2015/lib/distributed-cache/client-generated/encoder.js +0 -17
- package/esm2015/lib/distributed-cache/client-generated/model/cacheExpirationType.js +0 -16
- package/esm2015/lib/distributed-cache/client-generated/model/createCacheEntryRequestModel.js +0 -2
- package/esm2015/lib/distributed-cache/client-generated/model/models.js +0 -5
- package/esm2015/lib/distributed-cache/client-generated/model/retrieveCacheEntryResponseModel.js +0 -13
- package/esm2015/lib/distributed-cache/client-generated/model/updateCacheEntryRequestModel.js +0 -13
- package/esm2015/lib/distributed-cache/client-generated/variables.js +0 -9
- package/esm2015/lib/distributed-cache/distributed-cache-api.js +0 -8
- package/esm2015/lib/distributed-cache/distributed-cache.module.js +0 -26
- package/esm2015/lib/distributed-cache/models/constants.js +0 -3
- package/esm2015/lib/distributed-cache/models/policy-person.js +0 -9
- package/esm2015/lib/distributed-cache/services/server-cache.service.js +0 -52
- package/esm2015/lib/error/components/error-common/error-common.component.js +0 -24
- package/esm2015/lib/error/error-api.js +0 -7
- package/esm2015/lib/error/error.module.js +0 -22
- package/esm2015/lib/error/models/error-common-config.js +0 -8
- package/esm2015/lib/faq/components/faq/faq.component.js +0 -35
- package/esm2015/lib/faq/faq-api.js +0 -8
- package/esm2015/lib/faq/faq.module.js +0 -32
- package/esm2015/lib/faq/models/faq-config.js +0 -4
- package/esm2015/lib/faq/models/faq.js +0 -8
- package/esm2015/lib/footer/components/footer/footer.component.js +0 -25
- package/esm2015/lib/footer/components/site-map/site-map.component.js +0 -23
- package/esm2015/lib/footer/footer-api.js +0 -10
- package/esm2015/lib/footer/footer.module.js +0 -30
- package/esm2015/lib/footer/models/enum/site-map-direction.js +0 -15
- package/esm2015/lib/footer/models/footer-config.js +0 -4
- package/esm2015/lib/footer/models/site-map-models.js +0 -2
- package/esm2015/lib/forms/components/sof-address/sof-address.component.js +0 -99
- package/esm2015/lib/forms/directives/alphanumeric/alphanumeric.directive.js +0 -75
- package/esm2015/lib/forms/directives/input-trim/input-trim.directive.js +0 -97
- package/esm2015/lib/forms/directives/letters-only/letters-only.directive.js +0 -68
- package/esm2015/lib/forms/directives/numbers-only/numbers-only.directive.js +0 -58
- package/esm2015/lib/forms/forms-api.js +0 -19
- package/esm2015/lib/forms/forms.module.js +0 -63
- package/esm2015/lib/forms/models/address.js +0 -2
- package/esm2015/lib/forms/models/constants.js +0 -10
- package/esm2015/lib/forms/models/county.js +0 -2
- package/esm2015/lib/forms/models/enums/states.js +0 -58
- package/esm2015/lib/forms/pipes/phone-format.pipe.js +0 -29
- package/esm2015/lib/forms/services/alert.service.js +0 -170
- package/esm2015/lib/header/components/header/header.component.js +0 -157
- package/esm2015/lib/header/components/mobile-header-menu/mobile-header-menu.component.js +0 -37
- package/esm2015/lib/header/header-api.js +0 -12
- package/esm2015/lib/header/header.module.js +0 -51
- package/esm2015/lib/header/models/header-auth.settings.js +0 -32
- package/esm2015/lib/header/models/header-language.settings.js +0 -2
- package/esm2015/lib/header/models/header-theme.settings.js +0 -2
- package/esm2015/lib/header/models/header.settings.js +0 -2
- package/esm2015/lib/header/models/mobile-header-nav.settings.js +0 -2
- package/esm2015/lib/navigation/components/navigation/navigation.component.js +0 -542
- package/esm2015/lib/navigation/models/nav-theme.settings.js +0 -2
- package/esm2015/lib/navigation/models/nav.settings.js +0 -2
- package/esm2015/lib/navigation/models/navigation.js +0 -2
- package/esm2015/lib/navigation/navigation-api.js +0 -9
- package/esm2015/lib/navigation/navigation.module.js +0 -67
- package/esm2015/lib/oauth/models/constants.js +0 -6
- package/esm2015/lib/oauth/models/generated/accountManagementAssertionModel.js +0 -2
- package/esm2015/lib/oauth/models/generated/accountManagementRefreshRequestModel.js +0 -2
- package/esm2015/lib/oauth/models/generated/accountManagementResponseModel.js +0 -2
- package/esm2015/lib/oauth/models/generated/coverageDetail.js +0 -19
- package/esm2015/lib/oauth/models/generated/finance.js +0 -13
- package/esm2015/lib/oauth/models/generated/iSsoResponseModel.js +0 -13
- package/esm2015/lib/oauth/models/generated/iSsoResponseModelAccountManagementAssertionModel.js +0 -2
- package/esm2015/lib/oauth/models/generated/person.js +0 -13
- package/esm2015/lib/oauth/models/generated/policy.js +0 -2
- package/esm2015/lib/oauth/models/generated/refreshResponseModel.js +0 -13
- package/esm2015/lib/oauth/models/hybrid-saml-oauth-config.js +0 -4
- package/esm2015/lib/oauth/oauth-api.js +0 -15
- package/esm2015/lib/oauth/oauth.module.js +0 -20
- package/esm2015/lib/oauth/services/hybrid-saml-oauth.service.js +0 -202
- package/esm2015/lib/rbac/directives/rbac-action.directive.js +0 -52
- package/esm2015/lib/rbac/models/access-token-claims.js +0 -23
- package/esm2015/lib/rbac/models/constants.js +0 -4
- package/esm2015/lib/rbac/models/decoded-access-token.js +0 -69
- package/esm2015/lib/rbac/models/rbac-config.js +0 -4
- package/esm2015/lib/rbac/models/role-access.js +0 -10
- package/esm2015/lib/rbac/rbac-api.js +0 -15
- package/esm2015/lib/rbac/rbac.module.js +0 -43
- package/esm2015/lib/rbac/services/ar-role-nav.service.js +0 -90
- package/esm2015/lib/rbac/services/oauth2-role.service.js +0 -120
- package/esm2015/lib/rbac/services/role-nav.service.js +0 -4
- package/esm2015/lib/resize-panels/components/resize-panels/resize-panels.component.js +0 -142
- package/esm2015/lib/resize-panels/models/resize-event.js +0 -2
- package/esm2015/lib/resize-panels/resize-panels-api.js +0 -5
- package/esm2015/lib/resize-panels/resize-panels.module.js +0 -18
- package/esm2015/lib/rum/models/arm-error.js +0 -29
- package/esm2015/lib/rum/models/rum-config.js +0 -4
- package/esm2015/lib/rum/rum-api.js +0 -10
- package/esm2015/lib/rum/rum.module.js +0 -40
- package/esm2015/lib/rum/services/rum.service.js +0 -118
- package/esm2015/lib/rum/services/shared-error.service.js +0 -46
- package/esm2015/lib/rum/services/softheon-error-handler.service.js +0 -81
- package/esm2015/lib/saml/components/redirect-saml/redirect-saml.component.js +0 -76
- package/esm2015/lib/saml/models/i-saml-request.js +0 -2
- package/esm2015/lib/saml/models/i-saml-response.js +0 -2
- package/esm2015/lib/saml/models/redirect-saml-request.js +0 -4
- package/esm2015/lib/saml/models/sso-gateway-model.js +0 -4
- package/esm2015/lib/saml/saml-api.js +0 -15
- package/esm2015/lib/saml/saml.module.js +0 -36
- package/esm2015/lib/saml/services/entry/abstract-saml-entry.service.js +0 -4
- package/esm2015/lib/saml/services/entry/sso-gateway-entry.service.js +0 -35
- package/esm2015/lib/saml/services/send-off/abstract-saml.service.js +0 -9
- package/esm2015/lib/saml/services/send-off/saml.service.js +0 -41
- package/esm2015/lib/sof-pipe/constants/constants.js +0 -17
- package/esm2015/lib/sof-pipe/models/sof-date-pipe-format.js +0 -2
- package/esm2015/lib/sof-pipe/pipes/sof-blank/sof-blank.pipe.js +0 -33
- package/esm2015/lib/sof-pipe/pipes/sof-date/sof-date.pipe.js +0 -54
- package/esm2015/lib/sof-pipe/pipes/sof-ssn/sof-ssn.pipe.js +0 -24
- package/esm2015/lib/sof-pipe/sof-pipe.api.js +0 -9
- package/esm2015/lib/sof-pipe/sof-pipe.module.js +0 -28
- package/esm2015/lib/theming/directives/css-override.directive.js +0 -67
- package/esm2015/lib/theming/models/css-override.js +0 -11
- package/esm2015/lib/theming/services/theme.service.js +0 -166
- package/esm2015/lib/theming/theme-api.js +0 -6
- package/esm2015/lib/theming/theme.module.js +0 -24
- package/esm2015/public-api.js +0 -48
- package/esm2015/softheon-armature.js +0 -12
- package/fesm2015/softheon-armature.js +0 -6515
- package/fesm2015/softheon-armature.js.map +0 -1
- package/softheon-armature.d.ts +0 -11
- package/softheon-armature.metadata.json +0 -1
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
import { Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { AuthConfig } from 'angular-oauth2-oidc';
|
|
3
|
+
import { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';
|
|
4
|
+
import * as _ from 'lodash';
|
|
5
|
+
import { BehaviorSubject, throwError } from 'rxjs';
|
|
6
|
+
import { languageStorageKey } from '../models/constants';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common/http";
|
|
9
|
+
import * as i2 from "@ngx-translate/core";
|
|
10
|
+
import * as i3 from "../../theming/services/theme.service";
|
|
11
|
+
import * as i4 from "../services/base-config.service";
|
|
12
|
+
import * as i5 from "angular-oauth2-oidc";
|
|
13
|
+
import * as i6 from "../services/custom-auth-config.service";
|
|
14
|
+
/**
|
|
15
|
+
* The startup service is used to call methods that should be run when initially loading the application
|
|
16
|
+
*/
|
|
17
|
+
export class Initializer {
|
|
18
|
+
/** Gets the configurations */
|
|
19
|
+
get isInitialized() {
|
|
20
|
+
return this.isInitializedBs.value;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Constructs the startup service. Include any services that should be used during startup
|
|
24
|
+
* @param http The HTTP Client
|
|
25
|
+
* @param translateService The translate service
|
|
26
|
+
* @param configService The configuration service
|
|
27
|
+
* @param oAuthService The oidc authorization service
|
|
28
|
+
* @param customAuthConfigService The service that will configure the auth config
|
|
29
|
+
*/
|
|
30
|
+
constructor(http, translateService, themeService, configService, oAuthService, customAuthConfigService) {
|
|
31
|
+
this.http = http;
|
|
32
|
+
this.translateService = translateService;
|
|
33
|
+
this.themeService = themeService;
|
|
34
|
+
this.configService = configService;
|
|
35
|
+
this.oAuthService = oAuthService;
|
|
36
|
+
this.customAuthConfigService = customAuthConfigService;
|
|
37
|
+
/** The configuration behavior subject */
|
|
38
|
+
this.isInitializedBs = new BehaviorSubject(false);
|
|
39
|
+
this.isInitialized$ = this.isInitializedBs.asObservable();
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Loads all data that is needed upon initial loading of the website
|
|
43
|
+
*/
|
|
44
|
+
async initialize() {
|
|
45
|
+
// reads the language from local storage set in the parent app
|
|
46
|
+
// language loading
|
|
47
|
+
// Set languages for translation service
|
|
48
|
+
const lang = window.localStorage.getItem(languageStorageKey) || window.sessionStorage.getItem(languageStorageKey) || 'en';
|
|
49
|
+
this.translateService.setDefaultLang(lang);
|
|
50
|
+
this.translateService.use(lang);
|
|
51
|
+
// Adapted from https://stackoverflow.com/a/41636880
|
|
52
|
+
// Adapted from https://stackoverflow.com/a/41736293
|
|
53
|
+
// A callback used to initialize the promise. This callback is passed two arguments:
|
|
54
|
+
// a resolve callback used resolve the promise with a value or the result of another promise,
|
|
55
|
+
// and a reject callback used to reject the promise with a provided reason or error.
|
|
56
|
+
return new Promise(async (resolve, reject) => {
|
|
57
|
+
// Go through all services and complete any API calls necessary.
|
|
58
|
+
// At the end, if all works and loads as expected, resolve the promise and set startup success to true.
|
|
59
|
+
// If an issue is encountered, you can call reject() to hit the catch() code below.
|
|
60
|
+
// First, load the configurations
|
|
61
|
+
let [baseConfig, overrideConfig, baseLang, overrideLang, theme] = [JSON, JSON, JSON, JSON, JSON];
|
|
62
|
+
try {
|
|
63
|
+
[baseConfig, overrideConfig, baseLang, overrideLang, theme] = await Promise.all([
|
|
64
|
+
this.http.get('./assets/baseline/appsettings.json').toPromise(),
|
|
65
|
+
this.http.get('./assets/configurations/appsettings.json').toPromise(),
|
|
66
|
+
this.http.get(`./assets/i18n/${this.translateService.currentLang}.json`).toPromise(),
|
|
67
|
+
this.http.get(`./assets/configurations/${this.translateService.currentLang}.json`).toPromise(),
|
|
68
|
+
this.http.get('./assets/configurations/theme.json').toPromise()
|
|
69
|
+
]);
|
|
70
|
+
this.configService.config = _.mergeWith(baseConfig, overrideConfig, this.mergeCustomizer);
|
|
71
|
+
const configSnapShot = this.configService.config;
|
|
72
|
+
configSnapShot.theme = theme;
|
|
73
|
+
this.configService.config = configSnapShot;
|
|
74
|
+
this.translateService.setTranslation(this.translateService.currentLang, _.mergeWith(baseLang, overrideLang, this.mergeCustomizer));
|
|
75
|
+
this.themeService.initPalette(theme);
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
// Catch any errors during the get configurations API call
|
|
79
|
+
console.error('Error Loading Configurations or Languages');
|
|
80
|
+
// Reject the promise
|
|
81
|
+
reject('error');
|
|
82
|
+
return throwError(error.error || 'Server error');
|
|
83
|
+
}
|
|
84
|
+
try {
|
|
85
|
+
if (this.customAuthConfigService) {
|
|
86
|
+
await this.customAuthConfigService.configureAuthSettings().then(authConfig => {
|
|
87
|
+
if (authConfig) {
|
|
88
|
+
const config = this.configService.config.oAuthSettings;
|
|
89
|
+
return this.login(config);
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
return Promise.resolve(false);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
const oAuth = await this.setUpOAuth();
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
catch (error) {
|
|
101
|
+
reject(error);
|
|
102
|
+
return throwError(error);
|
|
103
|
+
}
|
|
104
|
+
this.isInitializedBs.next(true);
|
|
105
|
+
resolve(true);
|
|
106
|
+
}).catch((error) => {
|
|
107
|
+
// Catch the error
|
|
108
|
+
console.error('There was an error loading the startup configurations.');
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Configure implicit flow
|
|
113
|
+
*/
|
|
114
|
+
async setUpOAuth() {
|
|
115
|
+
if (this.configService.config?.oAuthSettings?.issuer) {
|
|
116
|
+
const config = this.configService.config.oAuthSettings;
|
|
117
|
+
const authConfig = new AuthConfig({
|
|
118
|
+
clientId: config.clientId,
|
|
119
|
+
redirectUri: config.redirectUri,
|
|
120
|
+
issuer: config.issuer,
|
|
121
|
+
scope: config.scope,
|
|
122
|
+
skipIssuerCheck: config.skipIssuerCheck != undefined ? config.skipIssuerCheck : true,
|
|
123
|
+
timeoutFactor: config.timeoutFactor || 0.75,
|
|
124
|
+
postLogoutRedirectUri: config.postLogoutRedirectUri,
|
|
125
|
+
loginUrl: config.loginUrl,
|
|
126
|
+
strictDiscoveryDocumentValidation: false,
|
|
127
|
+
responseType: config.responseType || 'code'
|
|
128
|
+
});
|
|
129
|
+
this.oAuthService.configure(authConfig);
|
|
130
|
+
this.oAuthService.skipIssuerCheck = true;
|
|
131
|
+
this.oAuthService.responseType = config.responseType || 'code';
|
|
132
|
+
this.oAuthService.strictDiscoveryDocumentValidation = false;
|
|
133
|
+
this.oAuthService.tokenValidationHandler = new JwksValidationHandler();
|
|
134
|
+
this.oAuthService.timeoutFactor = 0.75;
|
|
135
|
+
this.oAuthService.setupAutomaticSilentRefresh({}, 'access_token');
|
|
136
|
+
// set initialized on start up to true
|
|
137
|
+
config.authSetOnStartup = true;
|
|
138
|
+
const parentConfig = this.configService.config;
|
|
139
|
+
parentConfig.oAuthSettings = config;
|
|
140
|
+
this.configService.config = parentConfig;
|
|
141
|
+
return this.login(config);
|
|
142
|
+
}
|
|
143
|
+
return Promise.resolve(true);
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* Handle Login
|
|
147
|
+
* @param config The Oidc Auth Settings
|
|
148
|
+
*/
|
|
149
|
+
async login(config) {
|
|
150
|
+
if (config.requireLoginOnStartup) {
|
|
151
|
+
return this.oAuthService.loadDiscoveryDocumentAndLogin()
|
|
152
|
+
// handles the case for expired access token or invalid nonce or people bookmarking the ids login page
|
|
153
|
+
.catch(async (res) => {
|
|
154
|
+
this.oAuthService.initLoginFlow();
|
|
155
|
+
return Promise.resolve(true);
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
return this.oAuthService.loadDiscoveryDocumentAndTryLogin()
|
|
160
|
+
// handles the case for expired access token or invalid nonce or people bookmarking the ids login page
|
|
161
|
+
.catch(async (res) => {
|
|
162
|
+
this.oAuthService.initLoginFlow();
|
|
163
|
+
return Promise.resolve(true);
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Merges the two config objects ignoring the array type
|
|
169
|
+
* @param objValue The default config value
|
|
170
|
+
* @param srcValue The target switchboard config value
|
|
171
|
+
* @returns The merge of the two configs provided
|
|
172
|
+
*/
|
|
173
|
+
mergeCustomizer(objValue, srcValue) {
|
|
174
|
+
if (_.isArray(objValue) && srcValue) {
|
|
175
|
+
return srcValue;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
Initializer.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: Initializer, deps: [{ token: i1.HttpClient }, { token: i2.TranslateService }, { token: i3.ThemeService }, { token: i4.BaseConfigService }, { token: i5.OAuthService }, { token: i6.CustomAuthConfigService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
180
|
+
Initializer.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: Initializer, providedIn: 'root' });
|
|
181
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: Initializer, decorators: [{
|
|
182
|
+
type: Injectable,
|
|
183
|
+
args: [{
|
|
184
|
+
providedIn: 'root'
|
|
185
|
+
}]
|
|
186
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.TranslateService }, { type: i3.ThemeService }, { type: i4.BaseConfigService }, { type: i5.OAuthService }, { type: i6.CustomAuthConfigService, decorators: [{
|
|
187
|
+
type: Optional
|
|
188
|
+
}] }]; } });
|
|
189
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbGl6ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9pbml0aWFsaXplci9pbml0aWFsaXplci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBVSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzdELE9BQU8sRUFBRSxVQUFVLEVBQWdCLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGVBQWUsRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHL0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7O0FBS3pEOztHQUVHO0FBTUgsTUFBTSxPQUFPLFdBQVc7SUFLdEIsOEJBQThCO0lBQzlCLElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFLRDs7Ozs7OztPQU9HO0lBQ0gsWUFDbUIsSUFBZ0IsRUFDaEIsZ0JBQWtDLEVBQ2xDLFlBQTBCLEVBQzFCLGFBQWdDLEVBQ2hDLFlBQTBCLEVBQ2QsdUJBQWdEO1FBTDVELFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixrQkFBYSxHQUFiLGFBQWEsQ0FBbUI7UUFDaEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDZCw0QkFBdUIsR0FBdkIsdUJBQXVCLENBQXlCO1FBekIvRSx5Q0FBeUM7UUFDeEIsb0JBQWUsR0FBNkIsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENB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LFdBQVc7a0JBTHZCLFVBQVU7bUJBQ1Q7b0JBQ0UsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkE2QkUsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgQXV0aENvbmZpZywgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnYW5ndWxhci1vYXV0aDItb2lkYyc7XHJcbmltcG9ydCB7IEp3a3NWYWxpZGF0aW9uSGFuZGxlciB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMtandrcyc7XHJcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCB0aHJvd0Vycm9yIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQgeyBUaGVtZVNlcnZpY2UgfSBmcm9tICcuLi8uLi90aGVtaW5nL3NlcnZpY2VzL3RoZW1lLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBsYW5ndWFnZVN0b3JhZ2VLZXkgfSBmcm9tICcuLi9tb2RlbHMvY29uc3RhbnRzJztcclxuaW1wb3J0IHsgT2lkY0F1dGhTZXR0aW5ncyB9IGZyb20gJy4uL21vZGVscy9vaWRjLWF1dGgtc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBCYXNlQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Jhc2UtY29uZmlnLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXN0b21BdXRoQ29uZmlnU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2N1c3RvbS1hdXRoLWNvbmZpZy5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBUaGUgc3RhcnR1cCBzZXJ2aWNlIGlzIHVzZWQgdG8gY2FsbCBtZXRob2RzIHRoYXQgc2hvdWxkIGJlIHJ1biB3aGVuIGluaXRpYWxseSBsb2FkaW5nIHRoZSBhcHBsaWNhdGlvblxyXG4gKi9cclxuQEluamVjdGFibGUoXHJcbiAge1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbiAgfVxyXG4pXHJcbmV4cG9ydCBjbGFzcyBJbml0aWFsaXplciB7XHJcblxyXG4gIC8qKiBUaGUgY29uZmlndXJhdGlvbiBiZWhhdmlvciBzdWJqZWN0ICovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0luaXRpYWxpemVkQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogR2V0cyB0aGUgY29uZmlndXJhdGlvbnMgKi9cclxuICBwdWJsaWMgZ2V0IGlzSW5pdGlhbGl6ZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5pc0luaXRpYWxpemVkQnMudmFsdWU7XHJcbiAgfVxyXG5cclxuICAvKiogVGhlIGNvbmZpZ3VyYXRpb24gb2JzZXJ2YWJsZSAqL1xyXG4gIHB1YmxpYyByZWFkb25seSBpc0luaXRpYWxpemVkJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0cyB0aGUgc3RhcnR1cCBzZXJ2aWNlLiBJbmNsdWRlIGFueSBzZXJ2aWNlcyB0aGF0IHNob3VsZCBiZSB1c2VkIGR1cmluZyBzdGFydHVwXHJcbiAgICogQHBhcmFtIGh0dHAgVGhlIEhUVFAgQ2xpZW50XHJcbiAgICogQHBhcmFtIHRyYW5zbGF0ZVNlcnZpY2UgVGhlIHRyYW5zbGF0ZSBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGNvbmZpZ1NlcnZpY2UgVGhlIGNvbmZpZ3VyYXRpb24gc2VydmljZVxyXG4gICAqIEBwYXJhbSBvQXV0aFNlcnZpY2UgVGhlIG9pZGMgYXV0aG9yaXphdGlvbiBzZXJ2aWNlXHJcbiAgICogQHBhcmFtIGN1c3RvbUF1dGhDb25maWdTZXJ2aWNlIFRoZSBzZXJ2aWNlIHRoYXQgd2lsbCBjb25maWd1cmUgdGhlIGF1dGggY29uZmlnXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRoZW1lU2VydmljZTogVGhlbWVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWdTZXJ2aWNlOiBCYXNlQ29uZmlnU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgb0F1dGhTZXJ2aWNlOiBPQXV0aFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUF1dGhDb25maWdTZXJ2aWNlOiBDdXN0b21BdXRoQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pc0luaXRpYWxpemVkJCA9IHRoaXMuaXNJbml0aWFsaXplZEJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogTG9hZHMgYWxsIGRhdGEgdGhhdCBpcyBuZWVkZWQgdXBvbiBpbml0aWFsIGxvYWRpbmcgb2YgdGhlIHdlYnNpdGVcclxuICAgKi9cclxuICBwdWJsaWMgYXN5bmMgaW5pdGlhbGl6ZSgpOiBQcm9taXNlPGFueT4ge1xyXG4gICAgLy8gcmVhZHMgdGhlIGxhbmd1YWdlIGZyb20gbG9jYWwgc3RvcmFnZSBzZXQgaW4gdGhlIHBhcmVudCBhcHBcclxuICAgIC8vIGxhbmd1YWdlIGxvYWRpbmdcclxuXHJcbiAgICAvLyBTZXQgbGFuZ3VhZ2VzIGZvciB0cmFuc2xhdGlvbiBzZXJ2aWNlXHJcbiAgICBjb25zdCBsYW5nID0gd2luZG93LmxvY2FsU3RvcmFnZS5nZXRJdGVtKGxhbmd1YWdlU3RvcmFnZUtleSkgfHwgd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0obGFuZ3VhZ2VTdG9yYWdlS2V5KSB8fCAnZW4nO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldERlZmF1bHRMYW5nKGxhbmcpO1xyXG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsYW5nKTtcclxuXHJcbiAgICAvLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQxNjM2ODgwXHJcbiAgICAvLyBBZGFwdGVkIGZyb20gaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9hLzQxNzM2MjkzXHJcblxyXG4gICAgLy8gQSBjYWxsYmFjayB1c2VkIHRvIGluaXRpYWxpemUgdGhlIHByb21pc2UuIFRoaXMgY2FsbGJhY2sgaXMgcGFzc2VkIHR3byBhcmd1bWVudHM6XHJcbiAgICAvLyBhIHJlc29sdmUgY2FsbGJhY2sgdXNlZCByZXNvbHZlIHRoZSBwcm9taXNlIHdpdGggYSB2YWx1ZSBvciB0aGUgcmVzdWx0IG9mIGFub3RoZXIgcHJvbWlzZSxcclxuICAgIC8vIGFuZCBhIHJlamVjdCBjYWxsYmFjayB1c2VkIHRvIHJlamVjdCB0aGUgcHJvbWlzZSB3aXRoIGEgcHJvdmlkZWQgcmVhc29uIG9yIGVycm9yLlxyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGFzeW5jIChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgLy8gR28gdGhyb3VnaCBhbGwgc2VydmljZXMgYW5kIGNvbXBsZXRlIGFueSBBUEkgY2FsbHMgbmVjZXNzYXJ5LlxyXG4gICAgICAvLyBBdCB0aGUgZW5kLCBpZiBhbGwgd29ya3MgYW5kIGxvYWRzIGFzIGV4cGVjdGVkLCByZXNvbHZlIHRoZSBwcm9taXNlIGFuZCBzZXQgc3RhcnR1cCBzdWNjZXNzIHRvIHRydWUuXHJcbiAgICAgIC8vIElmIGFuIGlzc3VlIGlzIGVuY291bnRlcmVkLCB5b3UgY2FuIGNhbGwgcmVqZWN0KCkgdG8gaGl0IHRoZSBjYXRjaCgpIGNvZGUgYmVsb3cuXHJcblxyXG4gICAgICAvLyBGaXJzdCwgbG9hZCB0aGUgY29uZmlndXJhdGlvbnNcclxuICAgICAgbGV0IFtiYXNlQ29uZmlnLCBvdmVycmlkZUNvbmZpZywgYmFzZUxhbmcsIG92ZXJyaWRlTGFuZywgdGhlbWVdID0gW0pTT04sIEpTT04sIEpTT04sIEpTT04sIEpTT05dO1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgIFtiYXNlQ29uZmlnLCBvdmVycmlkZUNvbmZpZywgYmFzZUxhbmcsIG92ZXJyaWRlTGFuZywgdGhlbWVdID0gYXdhaXQgUHJvbWlzZS5hbGwoW1xyXG4gICAgICAgICAgdGhpcy5odHRwLmdldDxKU09OPignLi9hc3NldHMvYmFzZWxpbmUvYXBwc2V0dGluZ3MuanNvbicpLnRvUHJvbWlzZSgpLFxyXG4gICAgICAgICAgdGhpcy5odHRwLmdldDxKU09OPignLi9hc3NldHMvY29uZmlndXJhdGlvbnMvYXBwc2V0dGluZ3MuanNvbicpLnRvUHJvbWlzZSgpLFxyXG4gICAgICAgICAgdGhpcy5odHRwLmdldDxKU09OPihgLi9hc3NldHMvaTE4bi8ke3RoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZ30uanNvbmApLnRvUHJvbWlzZSgpLFxyXG4gICAgICAgICAgdGhpcy5odHRwLmdldDxKU09OPihgLi9hc3NldHMvY29uZmlndXJhdGlvbnMvJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmd9Lmpzb25gKS50b1Byb21pc2UoKSxcclxuICAgICAgICAgIHRoaXMuaHR0cC5nZXQ8SlNPTj4oJy4vYXNzZXRzL2NvbmZpZ3VyYXRpb25zL3RoZW1lLmpzb24nKS50b1Byb21pc2UoKVxyXG4gICAgICAgIF0pO1xyXG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5jb25maWcgPSBfLm1lcmdlV2l0aChiYXNlQ29uZmlnLCBvdmVycmlkZUNvbmZpZywgdGhpcy5tZXJnZUN1c3RvbWl6ZXIpO1xyXG4gICAgICAgIGNvbnN0IGNvbmZpZ1NuYXBTaG90ID0gdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZztcclxuICAgICAgICBjb25maWdTbmFwU2hvdC50aGVtZSA9IHRoZW1lIGFzIGFueTtcclxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnID0gY29uZmlnU25hcFNob3Q7XHJcbiAgICAgICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnNldFRyYW5zbGF0aW9uKHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZywgXy5tZXJnZVdpdGgoYmFzZUxhbmcsIG92ZXJyaWRlTGFuZywgdGhpcy5tZXJnZUN1c3RvbWl6ZXIpKTtcclxuICAgICAgICB0aGlzLnRoZW1lU2VydmljZS5pbml0UGFsZXR0ZSh0aGVtZSBhcyBhbnkpO1xyXG4gICAgICB9XHJcbiAgICAgIGNhdGNoIChlcnJvcikge1xyXG4gICAgICAgIC8vIENhdGNoIGFueSBlcnJvcnMgZHVyaW5nIHRoZSBnZXQgY29uZmlndXJhdGlvbnMgQVBJIGNhbGxcclxuICAgICAgICBjb25zb2xlLmVycm9yKCdFcnJvciBMb2FkaW5nIENvbmZpZ3VyYXRpb25zIG9yIExhbmd1YWdlcycpO1xyXG4gICAgICAgIC8vIFJlamVjdCB0aGUgcHJvbWlzZVxyXG4gICAgICAgIHJlamVjdCgnZXJyb3InKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IuZXJyb3IgfHwgJ1NlcnZlciBlcnJvcicpO1xyXG4gICAgICB9XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UuY29uZmlndXJlQXV0aFNldHRpbmdzKCkudGhlbihhdXRoQ29uZmlnID0+IHtcclxuICAgICAgICAgICAgaWYgKGF1dGhDb25maWcpIHtcclxuICAgICAgICAgICAgICBjb25zdCBjb25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnLm9BdXRoU2V0dGluZ3M7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubG9naW4oY29uZmlnKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgY29uc3Qgb0F1dGggPSBhd2FpdCB0aGlzLnNldFVwT0F1dGgoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgICAgcmVqZWN0KGVycm9yKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHRocm93RXJyb3IoZXJyb3IpO1xyXG4gICAgICB9XHJcblxyXG4gICAgICB0aGlzLmlzSW5pdGlhbGl6ZWRCcy5uZXh0KHRydWUpO1xyXG4gICAgICByZXNvbHZlKHRydWUpO1xyXG4gICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XHJcbiAgICAgIC8vIENhdGNoIHRoZSBlcnJvclxyXG4gICAgICBjb25zb2xlLmVycm9yKCdUaGVyZSB3YXMgYW4gZXJyb3IgbG9hZGluZyB0aGUgc3RhcnR1cCBjb25maWd1cmF0aW9ucy4nKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ29uZmlndXJlIGltcGxpY2l0IGZsb3dcclxuICAgKi9cclxuICBwcml2YXRlIGFzeW5jIHNldFVwT0F1dGgoKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZz8ub0F1dGhTZXR0aW5ncz8uaXNzdWVyKSB7XHJcbiAgICAgIGNvbnN0IGNvbmZpZyA9IHRoaXMuY29uZmlnU2VydmljZS5jb25maWcub0F1dGhTZXR0aW5ncztcclxuICAgICAgY29uc3QgYXV0aENvbmZpZyA9IG5ldyBBdXRoQ29uZmlnKHtcclxuICAgICAgICBjbGllbnRJZDogY29uZmlnLmNsaWVudElkLFxyXG4gICAgICAgIHJlZGlyZWN0VXJpOiBjb25maWcucmVkaXJlY3RVcmksXHJcbiAgICAgICAgaXNzdWVyOiBjb25maWcuaXNzdWVyLFxyXG4gICAgICAgIHNjb3BlOiBjb25maWcuc2NvcGUsXHJcbiAgICAgICAgc2tpcElzc3VlckNoZWNrOiBjb25maWcuc2tpcElzc3VlckNoZWNrICE9IHVuZGVmaW5lZCA/IGNvbmZpZy5za2lwSXNzdWVyQ2hlY2sgOiB0cnVlLFxyXG4gICAgICAgIHRpbWVvdXRGYWN0b3I6IGNvbmZpZy50aW1lb3V0RmFjdG9yIHx8IDAuNzUsXHJcbiAgICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiBjb25maWcucG9zdExvZ291dFJlZGlyZWN0VXJpLFxyXG4gICAgICAgIGxvZ2luVXJsOiBjb25maWcubG9naW5VcmwsXHJcbiAgICAgICAgc3RyaWN0RGlzY292ZXJ5RG9jdW1lbnRWYWxpZGF0aW9uOiBmYWxzZSxcclxuICAgICAgICByZXNwb25zZVR5cGU6IGNvbmZpZy5yZXNwb25zZVR5cGUgfHwgJ2NvZGUnXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLm9BdXRoU2VydmljZS5jb25maWd1cmUoYXV0aENvbmZpZyk7XHJcbiAgICAgIHRoaXMub0F1dGhTZXJ2aWNlLnNraXBJc3N1ZXJDaGVjayA9IHRydWU7XHJcbiAgICAgIHRoaXMub0F1dGhTZXJ2aWNlLnJlc3BvbnNlVHlwZSA9IGNvbmZpZy5yZXNwb25zZVR5cGUgfHwgJ2NvZGUnO1xyXG4gICAgICB0aGlzLm9BdXRoU2VydmljZS5zdHJpY3REaXNjb3ZlcnlEb2N1bWVudFZhbGlkYXRpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5vQXV0aFNlcnZpY2UudG9rZW5WYWxpZGF0aW9uSGFuZGxlciA9IG5ldyBKd2tzVmFsaWRhdGlvbkhhbmRsZXIoKTtcclxuICAgICAgdGhpcy5vQXV0aFNlcnZpY2UudGltZW91dEZhY3RvciA9IDAuNzU7XHJcbiAgICAgIHRoaXMub0F1dGhTZXJ2aWNlLnNldHVwQXV0b21hdGljU2lsZW50UmVmcmVzaCh7fSwgJ2FjY2Vzc190b2tlbicpO1xyXG5cclxuICAgICAgLy8gc2V0IGluaXRpYWxpemVkIG9uIHN0YXJ0IHVwIHRvIHRydWVcclxuICAgICAgY29uZmlnLmF1dGhTZXRPblN0YXJ0dXAgPSB0cnVlO1xyXG4gICAgICBjb25zdCBwYXJlbnRDb25maWcgPSB0aGlzLmNvbmZpZ1NlcnZpY2UuY29uZmlnO1xyXG4gICAgICBwYXJlbnRDb25maWcub0F1dGhTZXR0aW5ncyA9IGNvbmZpZztcclxuICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLmNvbmZpZyA9IHBhcmVudENvbmZpZztcclxuXHJcbiAgICAgIHJldHVybiB0aGlzLmxvZ2luKGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEhhbmRsZSBMb2dpblxyXG4gICAqIEBwYXJhbSBjb25maWcgVGhlIE9pZGMgQXV0aCBTZXR0aW5nc1xyXG4gICAqL1xyXG4gIHByaXZhdGUgYXN5bmMgbG9naW4oY29uZmlnOiBPaWRjQXV0aFNldHRpbmdzKTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgICBpZiAoY29uZmlnLnJlcXVpcmVMb2dpbk9uU3RhcnR1cCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5vQXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50QW5kTG9naW4oKVxyXG4gICAgICAgIC8vIGhhbmRsZXMgdGhlIGNhc2UgZm9yIGV4cGlyZWQgYWNjZXNzIHRva2VuIG9yIGludmFsaWQgbm9uY2Ugb3IgcGVvcGxlIGJvb2ttYXJraW5nIHRoZSBpZHMgbG9naW4gcGFnZVxyXG4gICAgICAgIC5jYXRjaChhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9BdXRoU2VydmljZS5pbml0TG9naW5GbG93KCk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5vQXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50QW5kVHJ5TG9naW4oKVxyXG4gICAgICAgIC8vIGhhbmRsZXMgdGhlIGNhc2UgZm9yIGV4cGlyZWQgYWNjZXNzIHRva2VuIG9yIGludmFsaWQgbm9uY2Ugb3IgcGVvcGxlIGJvb2ttYXJraW5nIHRoZSBpZHMgbG9naW4gcGFnZVxyXG4gICAgICAgIC5jYXRjaChhc3luYyAocmVzKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLm9BdXRoU2VydmljZS5pbml0TG9naW5GbG93KCk7XHJcblxyXG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh0cnVlKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIE1lcmdlcyB0aGUgdHdvIGNvbmZpZyBvYmplY3RzIGlnbm9yaW5nIHRoZSBhcnJheSB0eXBlXHJcbiAgICogQHBhcmFtIG9ialZhbHVlIFRoZSBkZWZhdWx0IGNvbmZpZyB2YWx1ZVxyXG4gICAqIEBwYXJhbSBzcmNWYWx1ZSBUaGUgdGFyZ2V0IHN3aXRjaGJvYXJkIGNvbmZpZyB2YWx1ZVxyXG4gICAqIEByZXR1cm5zIFRoZSBtZXJnZSBvZiB0aGUgdHdvIGNvbmZpZ3MgcHJvdmlkZWRcclxuICAgKi9cclxuICBwcml2YXRlIG1lcmdlQ3VzdG9taXplcihvYmpWYWx1ZTogYW55LCBzcmNWYWx1ZTogYW55KTogYW55IHtcclxuICAgIGlmIChfLmlzQXJyYXkob2JqVmFsdWUpICYmIHNyY1ZhbHVlKSB7XHJcbiAgICAgIHJldHVybiBzcmNWYWx1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Injectable, isDevMode, Optional } from '@angular/core';
|
|
2
|
+
import { catchError } from 'rxjs/operators';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "angular-oauth2-oidc";
|
|
5
|
+
/** The Custom OAuth Interceptor Service */
|
|
6
|
+
export class ArmatureAuthTokenAppendInterceptor {
|
|
7
|
+
/**
|
|
8
|
+
* The Constructor
|
|
9
|
+
* @param authStorage The Authorization storage
|
|
10
|
+
* @param errorHandler The Error handler
|
|
11
|
+
* @param moduleConfig The Authorization module config
|
|
12
|
+
*/
|
|
13
|
+
constructor(authStorage, errorHandler, moduleConfig) {
|
|
14
|
+
this.authStorage = authStorage;
|
|
15
|
+
this.errorHandler = errorHandler;
|
|
16
|
+
this.moduleConfig = moduleConfig;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Checks if the given url starts with the current website url
|
|
20
|
+
* @param url The url
|
|
21
|
+
*/
|
|
22
|
+
checkUrl(url) {
|
|
23
|
+
// don't append token to non softheon calls for dev mode
|
|
24
|
+
if (isDevMode() && (url.indexOf('.softheon.com') > -1 || url.indexOf('localhost') > -1)) {
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
if (!this.moduleConfig.resourceServer
|
|
28
|
+
|| !this.moduleConfig.resourceServer.allowedUrls
|
|
29
|
+
|| !this.moduleConfig.resourceServer.sendAccessToken) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
const currentUrl = `${window.location.protocol}//${window.location.hostname}${window.location.port ? `:${window.location.port}` : ''}`;
|
|
33
|
+
// still append token to local url refs
|
|
34
|
+
return url.startsWith(currentUrl) || url.indexOf('http') === -1;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Intercepts the http requests and appends the authorization token to the header if the endpoint matches the current base uri
|
|
38
|
+
* @param req The request
|
|
39
|
+
* @param next The Next
|
|
40
|
+
* https://manfredsteyer.github.io/angular-oauth2-oidc/angular-oauth2-oidc/docs/additional-documentation/working-with-httpinterceptors.html
|
|
41
|
+
*/
|
|
42
|
+
intercept(req, next) {
|
|
43
|
+
// request url
|
|
44
|
+
const url = req.url.toLowerCase();
|
|
45
|
+
// checks the url and determines if sending the access token is allowed
|
|
46
|
+
if ((this.checkUrl(url) && this.moduleConfig.resourceServer.sendAccessToken)) {
|
|
47
|
+
let headers = req.headers;
|
|
48
|
+
let token = this.authStorage.getItem('access_token');
|
|
49
|
+
const ssoToken = window.sessionStorage.getItem('Sof-Arm-Access-Token');
|
|
50
|
+
if (ssoToken) {
|
|
51
|
+
token = ssoToken;
|
|
52
|
+
}
|
|
53
|
+
const header = `Bearer ${token}`;
|
|
54
|
+
if (token) {
|
|
55
|
+
headers = headers.set('Authorization', header);
|
|
56
|
+
}
|
|
57
|
+
req = req.clone({ headers });
|
|
58
|
+
}
|
|
59
|
+
return next.handle(req)
|
|
60
|
+
.pipe(catchError(err => this.errorHandler.handleError(err)));
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
ArmatureAuthTokenAppendInterceptor.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ArmatureAuthTokenAppendInterceptor, deps: [{ token: i1.OAuthStorage }, { token: i1.OAuthResourceServerErrorHandler }, { token: i1.OAuthModuleConfig, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
64
|
+
ArmatureAuthTokenAppendInterceptor.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ArmatureAuthTokenAppendInterceptor, providedIn: 'root' });
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ArmatureAuthTokenAppendInterceptor, decorators: [{
|
|
66
|
+
type: Injectable,
|
|
67
|
+
args: [{
|
|
68
|
+
providedIn: 'root'
|
|
69
|
+
}]
|
|
70
|
+
}], ctorParameters: function () { return [{ type: i1.OAuthStorage }, { type: i1.OAuthResourceServerErrorHandler }, { type: i1.OAuthModuleConfig, decorators: [{
|
|
71
|
+
type: Optional
|
|
72
|
+
}] }]; } });
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJtYXR1cmUtYXV0aC10b2tlbi1hcHBlbmQuaW50ZXJjZXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvaW50ZXJjZXB0b3JzL2FybWF0dXJlLWF1dGgtdG9rZW4tYXBwZW5kLmludGVyY2VwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUU1QywyQ0FBMkM7QUFJM0MsTUFBTSxPQUFPLGtDQUFrQztJQUM3Qzs7Ozs7T0FLRztJQUNILFlBQ21CLFdBQXlCLEVBQ3pCLFlBQTZDLEVBQ2pDLFlBQStCO1FBRjNDLGdCQUFXLEdBQVgsV0FBVyxDQUFjO1FBQ3pCLGlCQUFZLEdBQVosWUFBWSxDQUFpQztRQUNqQyxpQkFBWSxHQUFaLFlBQVksQ0FBbUI7SUFDMUQsQ0FBQztJQUVMOzs7T0FHRztJQUNJLFFBQVEsQ0FBQyxHQUFXO1FBQ3pCLHdEQUF3RDtRQUN4RCxJQUFJLFNBQVMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkYsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWM7ZUFDaEMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxXQUFXO2VBQzdDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsZUFBZSxFQUFFO1lBQ3RELE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxNQUFNLFVBQVUsR0FBRyxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLE1BQU0sQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBRXZJLHVDQUF1QztRQUN2QyxPQUFPLEdBQUcsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxTQUFTLENBQUMsR0FBcUIsRUFBRSxJQUFpQjtRQUN2RCxjQUFjO1FBQ2QsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVsQyx1RUFBdUU7UUFDdkUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDNUUsSUFBSSxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQztZQUUxQixJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNyRCxNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksUUFBUSxFQUFFO2dCQUNaLEtBQUssR0FBRyxRQUFRLENBQUM7YUFDbEI7WUFDRCxNQUFNLE1BQU0sR0FBRyxVQUFVLEtBQUssRUFBRSxDQUFDO1lBQ2pDLElBQUksS0FBSyxFQUFFO2dCQUNULE9BQU8sR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNoRDtZQUVELEdBQUcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUM5QjtRQUVELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUM7YUFDcEIsSUFBSSxDQUNILFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3RELENBQUM7SUFDTixDQUFDOzsrSEFoRVUsa0NBQWtDO21JQUFsQyxrQ0FBa0MsY0FGakMsTUFBTTsyRkFFUCxrQ0FBa0M7a0JBSDlDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFXSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cEV2ZW50LCBIdHRwSGFuZGxlciwgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIGlzRGV2TW9kZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT0F1dGhNb2R1bGVDb25maWcsIE9BdXRoUmVzb3VyY2VTZXJ2ZXJFcnJvckhhbmRsZXIsIE9BdXRoU3RvcmFnZSB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKiogVGhlIEN1c3RvbSBPQXV0aCBJbnRlcmNlcHRvciBTZXJ2aWNlICovXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIEFybWF0dXJlQXV0aFRva2VuQXBwZW5kSW50ZXJjZXB0b3Ige1xyXG4gIC8qKlxyXG4gICAqIFRoZSBDb25zdHJ1Y3RvclxyXG4gICAqIEBwYXJhbSBhdXRoU3RvcmFnZSBUaGUgQXV0aG9yaXphdGlvbiBzdG9yYWdlXHJcbiAgICogQHBhcmFtIGVycm9ySGFuZGxlciBUaGUgRXJyb3IgaGFuZGxlciBcclxuICAgKiBAcGFyYW0gbW9kdWxlQ29uZmlnIFRoZSBBdXRob3JpemF0aW9uIG1vZHVsZSBjb25maWdcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFN0b3JhZ2U6IE9BdXRoU3RvcmFnZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JIYW5kbGVyOiBPQXV0aFJlc291cmNlU2VydmVyRXJyb3JIYW5kbGVyLFxyXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSByZWFkb25seSBtb2R1bGVDb25maWc6IE9BdXRoTW9kdWxlQ29uZmlnXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2hlY2tzIGlmIHRoZSBnaXZlbiB1cmwgc3RhcnRzIHdpdGggdGhlIGN1cnJlbnQgd2Vic2l0ZSB1cmxcclxuICAgKiBAcGFyYW0gdXJsIFRoZSB1cmxcclxuICAgKi9cclxuICBwdWJsaWMgY2hlY2tVcmwodXJsOiBzdHJpbmcpOiBib29sZWFuIHtcclxuICAgIC8vIGRvbid0IGFwcGVuZCB0b2tlbiB0byBub24gc29mdGhlb24gY2FsbHMgZm9yIGRldiBtb2RlXHJcbiAgICBpZiAoaXNEZXZNb2RlKCkgJiYgKHVybC5pbmRleE9mKCcuc29mdGhlb24uY29tJykgPiAtMSB8fCB1cmwuaW5kZXhPZignbG9jYWxob3N0JykgPiAtMSkpIHtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICBpZiAoIXRoaXMubW9kdWxlQ29uZmlnLnJlc291cmNlU2VydmVyXHJcbiAgICAgIHx8ICF0aGlzLm1vZHVsZUNvbmZpZy5yZXNvdXJjZVNlcnZlci5hbGxvd2VkVXJsc1xyXG4gICAgICB8fCAhdGhpcy5tb2R1bGVDb25maWcucmVzb3VyY2VTZXJ2ZXIuc2VuZEFjY2Vzc1Rva2VuKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH1cclxuICAgIGNvbnN0IGN1cnJlbnRVcmwgPSBgJHt3aW5kb3cubG9jYXRpb24ucHJvdG9jb2x9Ly8ke3dpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZX0ke3dpbmRvdy5sb2NhdGlvbi5wb3J0ID8gYDoke3dpbmRvdy5sb2NhdGlvbi5wb3J0fWAgOiAnJ31gO1xyXG5cclxuICAgIC8vIHN0aWxsIGFwcGVuZCB0b2tlbiB0byBsb2NhbCB1cmwgcmVmc1xyXG4gICAgcmV0dXJuIHVybC5zdGFydHNXaXRoKGN1cnJlbnRVcmwpIHx8IHVybC5pbmRleE9mKCdodHRwJykgPT09IC0xO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW50ZXJjZXB0cyB0aGUgaHR0cCByZXF1ZXN0cyBhbmQgYXBwZW5kcyB0aGUgYXV0aG9yaXphdGlvbiB0b2tlbiB0byB0aGUgaGVhZGVyIGlmIHRoZSBlbmRwb2ludCBtYXRjaGVzIHRoZSBjdXJyZW50IGJhc2UgdXJpXHJcbiAgICogQHBhcmFtIHJlcSBUaGUgcmVxdWVzdFxyXG4gICAqIEBwYXJhbSBuZXh0IFRoZSBOZXh0XHJcbiAgICogaHR0cHM6Ly9tYW5mcmVkc3RleWVyLmdpdGh1Yi5pby9hbmd1bGFyLW9hdXRoMi1vaWRjL2FuZ3VsYXItb2F1dGgyLW9pZGMvZG9jcy9hZGRpdGlvbmFsLWRvY3VtZW50YXRpb24vd29ya2luZy13aXRoLWh0dHBpbnRlcmNlcHRvcnMuaHRtbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBpbnRlcmNlcHQocmVxOiBIdHRwUmVxdWVzdDxhbnk+LCBuZXh0OiBIdHRwSGFuZGxlcik6IE9ic2VydmFibGU8SHR0cEV2ZW50PGFueT4+IHtcclxuICAgIC8vIHJlcXVlc3QgdXJsXHJcbiAgICBjb25zdCB1cmwgPSByZXEudXJsLnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgLy8gY2hlY2tzIHRoZSB1cmwgYW5kIGRldGVybWluZXMgaWYgc2VuZGluZyB0aGUgYWNjZXNzIHRva2VuIGlzIGFsbG93ZWRcclxuICAgIGlmICgodGhpcy5jaGVja1VybCh1cmwpICYmIHRoaXMubW9kdWxlQ29uZmlnLnJlc291cmNlU2VydmVyLnNlbmRBY2Nlc3NUb2tlbikpIHtcclxuICAgICAgbGV0IGhlYWRlcnMgPSByZXEuaGVhZGVycztcclxuXHJcbiAgICAgIGxldCB0b2tlbiA9IHRoaXMuYXV0aFN0b3JhZ2UuZ2V0SXRlbSgnYWNjZXNzX3Rva2VuJyk7XHJcbiAgICAgIGNvbnN0IHNzb1Rva2VuID0gd2luZG93LnNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ1NvZi1Bcm0tQWNjZXNzLVRva2VuJyk7XHJcbiAgICAgIGlmIChzc29Ub2tlbikge1xyXG4gICAgICAgIHRva2VuID0gc3NvVG9rZW47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgaGVhZGVyID0gYEJlYXJlciAke3Rva2VufWA7XHJcbiAgICAgIGlmICh0b2tlbikge1xyXG4gICAgICAgIGhlYWRlcnMgPSBoZWFkZXJzLnNldCgnQXV0aG9yaXphdGlvbicsIGhlYWRlcik7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJlcSA9IHJlcS5jbG9uZSh7IGhlYWRlcnMgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG5leHQuaGFuZGxlKHJlcSlcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgY2F0Y2hFcnJvcihlcnIgPT4gdGhpcy5lcnJvckhhbmRsZXIuaGFuZGxlRXJyb3IoZXJyKSlcclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL2Jhc2UtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUaGVtZVBhbGV0dGVNb2RlbCB9IGZyb20gJy4uL2NsaWVudC1nZW5lcmF0ZWQvbW9kZWwvdGhlbWVQYWxldHRlTW9kZWwnO1xyXG5pbXBvcnQgeyBIZWFkZXJDb25maWcgfSBmcm9tICcuL2hlYWRlci1jb25maWcnO1xyXG5pbXBvcnQgeyBOYXZpZ2F0aW9uQ29uZmlnIH0gZnJvbSAnLi9uYXZpZ2F0aW9uLWNvbmZpZyc7XHJcbmltcG9ydCB7IE9pZGNBdXRoU2V0dGluZ3MgfSBmcm9tICcuL29pZGMtYXV0aC1zZXR0aW5ncyc7XHJcblxyXG4vKiogVGhlIGJhc2UgY29uZmlndXJhdGlvbiBpbnRlcmZhY2UgKi9cclxuZXhwb3J0IGludGVyZmFjZSBCYXNlQ29uZmlnIHtcclxuICAgIC8qKiBUaGUgb2lkYyBzZXR0aW5ncyAqL1xyXG4gICAgb0F1dGhTZXR0aW5nczogT2lkY0F1dGhTZXR0aW5ncztcclxuXHJcbiAgICAvKiogVGhlIGhlYWRlciBjb25maWd1cmF0aW9ucyAqL1xyXG4gICAgaGVhZGVyOiBIZWFkZXJDb25maWc7XHJcblxyXG4gICAgLyoqIFRoZSB0aGVtZSBwYWxldHRlICovXHJcbiAgICB0aGVtZTogVGhlbWVQYWxldHRlTW9kZWw7XHJcblxyXG4gICAgLyoqIFRoZSBuYXZpZ2F0aW9uIGNvbmZpZyAqL1xyXG4gICAgbmF2aWdhdGlvbjogTmF2aWdhdGlvbkNvbmZpZztcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
// Injection tokens
|
|
3
|
+
/** The session configs */
|
|
4
|
+
export const SESSION_CONFIG = new InjectionToken('SessionConfig');
|
|
5
|
+
/** The window interface */
|
|
6
|
+
export const WINDOW = new InjectionToken('Window');
|
|
7
|
+
/** The user entity service configs */
|
|
8
|
+
export const USER_ENTITY_SERVICE_CONFIG = new InjectionToken('UserEntityServiceConfig');
|
|
9
|
+
/** The pre sign in route storage key */
|
|
10
|
+
export const preSignInRouteStorageKey = 'preSignInRoute';
|
|
11
|
+
/** The language storage key */
|
|
12
|
+
export const languageStorageKey = 'language';
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL21vZGVscy9jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUsvQyxtQkFBbUI7QUFDbkIsMEJBQTBCO0FBQzFCLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBa0MsSUFBSSxjQUFjLENBQWdCLGVBQWUsQ0FBQyxDQUFDO0FBRWhILDJCQUEyQjtBQUMzQixNQUFNLENBQUMsTUFBTSxNQUFNLEdBQTJCLElBQUksY0FBYyxDQUFTLFFBQVEsQ0FBQyxDQUFDO0FBRW5GLHNDQUFzQztBQUN0QyxNQUFNLENBQUMsTUFBTSwwQkFBMEIsR0FBNEMsSUFBSSxjQUFjLENBQTBCLHlCQUF5QixDQUFDLENBQUM7QUFFMUosd0NBQXdDO0FBQ3hDLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFXLGdCQUFnQixDQUFDO0FBRWpFLCtCQUErQjtBQUMvQixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBVyxVQUFVLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgU2Vzc2lvbkNvbmZpZyB9IGZyb20gJy4vc2Vzc2lvbi1jb25maWcnO1xyXG5pbXBvcnQgeyBVc2VyRW50aXR5U2VydmljZUNvbmZpZyB9IGZyb20gJy4vdXNlci1lbnRpdHktc2VydmljZS1jb25maWcnO1xyXG5cclxuLy8gSW5qZWN0aW9uIHRva2Vuc1xyXG4vKiogVGhlIHNlc3Npb24gY29uZmlncyAqL1xyXG5leHBvcnQgY29uc3QgU0VTU0lPTl9DT05GSUc6IEluamVjdGlvblRva2VuPFNlc3Npb25Db25maWc+ID0gbmV3IEluamVjdGlvblRva2VuPFNlc3Npb25Db25maWc+KCdTZXNzaW9uQ29uZmlnJyk7XHJcblxyXG4vKiogVGhlIHdpbmRvdyBpbnRlcmZhY2UgKi9cclxuZXhwb3J0IGNvbnN0IFdJTkRPVzogSW5qZWN0aW9uVG9rZW48V2luZG93PiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxXaW5kb3c+KCdXaW5kb3cnKTtcclxuXHJcbi8qKiBUaGUgdXNlciBlbnRpdHkgc2VydmljZSBjb25maWdzICovXHJcbmV4cG9ydCBjb25zdCBVU0VSX0VOVElUWV9TRVJWSUNFX0NPTkZJRzogSW5qZWN0aW9uVG9rZW48VXNlckVudGl0eVNlcnZpY2VDb25maWc+ID0gbmV3IEluamVjdGlvblRva2VuPFVzZXJFbnRpdHlTZXJ2aWNlQ29uZmlnPignVXNlckVudGl0eVNlcnZpY2VDb25maWcnKTtcclxuXHJcbi8qKiBUaGUgcHJlIHNpZ24gaW4gcm91dGUgc3RvcmFnZSBrZXkgKi9cclxuZXhwb3J0IGNvbnN0IHByZVNpZ25JblJvdXRlU3RvcmFnZUtleTogc3RyaW5nID0gJ3ByZVNpZ25JblJvdXRlJztcclxuXHJcbi8qKiBUaGUgbGFuZ3VhZ2Ugc3RvcmFnZSBrZXkgKi9cclxuZXhwb3J0IGNvbnN0IGxhbmd1YWdlU3RvcmFnZUtleTogc3RyaW5nID0gJ2xhbmd1YWdlJztcclxuIl19
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** The data store configurations */
|
|
2
|
+
export class DataStoreConfig {
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1zdG9yZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL2RhdGEtc3RvcmUtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLG9DQUFvQztBQUNwQyxNQUFNLE9BQU8sZUFBZTtDQXdCM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwVmVyYiB9IGZyb20gJy4vaHR0cC12ZXJicyc7XHJcbmltcG9ydCB7IFR5cGVkU2Vzc2lvbiB9IGZyb20gJy4uLy4uL2NvcmUvbW9kZWxzL3R5cGVkLXNlc3Npb24nO1xyXG5cclxuLyoqIFRoZSBkYXRhIHN0b3JlIGNvbmZpZ3VyYXRpb25zICovXHJcbmV4cG9ydCBjbGFzcyBEYXRhU3RvcmVDb25maWc8VCA9IGFueT4ge1xyXG4gICAgLyoqIFRoZSBkYXRhIHN0b3JlIGJhc2UgdXJpICovXHJcbiAgICBwdWJsaWMgYmFzZVVyaTogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBUaGUgcmV0cmlldmUgaHR0cCB2ZXJiICovXHJcbiAgICBwdWJsaWMgcmV0cmlldmVWZXJiOiBIdHRwVmVyYjtcclxuXHJcbiAgICAvKiogVGhlIHJldHJpZXZlIHJlcXVlc3QgZGVsZWdhdGUgKi9cclxuICAgIHB1YmxpYyByZXRyaWV2ZVJlcXVlc3REZWxlZ2F0ZTogKGJhc2VVcmk6IHN0cmluZywgZGF0YTogVHlwZWRTZXNzaW9uPFQ+KSA9PiB7IHVyaTogc3RyaW5nLCBib2R5PzogYW55IH07XHJcblxyXG4gICAgLyoqIFRoZSByZXRyaWV2ZSByZXNwb25zZSBkZWxlZ2F0ZSAqL1xyXG4gICAgcHVibGljIHJldHJpZXZlUmVzcG9uc2VEZWxlZ2F0ZTogKHJlc3BvbnNlOiBhbnksIHNlc3Npb246IFR5cGVkU2Vzc2lvbjxUPikgPT4gVHlwZWRTZXNzaW9uPFQ+O1xyXG5cclxuICAgIC8qKiBUaGUgcmV0cmlldmUgc2VjdXJhYmxlIGRlbGVnYXRlICovXHJcbiAgICBwdWJsaWMgcmV0cmlldmVTZWN1cmFibGVEZWxlZ2F0ZTogKHJlc3BvbnNlOiBhbnkpID0+IEFycmF5PChhcmc6IGFueSkgPT4gYW55PiB8ICgoYXJnOiBhbnkpID0+IGFueSk7XHJcblxyXG4gICAgLyoqIFRoZSB1cGRhdGUgaHR0cCB2ZXJiICovXHJcbiAgICBwdWJsaWMgdXBkYXRlVmVyYjogSHR0cFZlcmI7XHJcblxyXG4gICAgLyoqIFRoZSB1cGRhdGUgcmVxdWVzdCBkZWxlZ2F0ZSAqL1xyXG4gICAgcHVibGljIHVwZGF0ZVJlcXVlc3REZWxlZ2F0ZTogKGJhc2VVcmk6IHN0cmluZywgZGF0YTogVCkgPT4geyB1cmk6IHN0cmluZywgYm9keT86IGFueX07XHJcblxyXG4gICAgLyoqIERlbGVnYXRlIGZvciBkZXRlcm1pbmluZyB3aGVuIHRvIG1ha2UgYSBjYWxsIHRvIHVwZGF0ZSB0aGUgZGF0YSBzdG9yZSAqL1xyXG4gICAgcHVibGljIHNob3VsZFVwZGF0ZURhdGFTdG9yZURlbGVnYXRlOiAoZGF0YTogVCkgPT4gYm9vbGVhbjtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLWNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9tb2RlbHMvaGVhZGVyLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSGVhZGVyVGhlbWVTZXR0aW5ncyB9IGZyb20gXCIuLi8uLi9oZWFkZXIvbW9kZWxzL2hlYWRlci10aGVtZS5zZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBIZWFkZXJTZXR0aW5ncyB9IGZyb20gXCIuLi8uLi9oZWFkZXIvbW9kZWxzL2hlYWRlci5zZXR0aW5nc1wiO1xyXG5cclxuLyoqIFRoZSBoZWFkZXIgY29uZmlndXJhdGlvbnMgKi9cclxuZXhwb3J0IGludGVyZmFjZSBIZWFkZXJDb25maWcge1xyXG4gICAgLyoqIFRoZSBoZWFkZXIgdGhlbWUgc2V0dGluZ3MgKi9cclxuICAgIHRoZW1lOiBIZWFkZXJUaGVtZVNldHRpbmdzO1xyXG4gICAgLyoqIFRoZSBoZWFkZXIgc2V0dGluZ3MgKi9cclxuICAgIHNldHRpbmdzOiBIZWFkZXJTZXR0aW5ncztcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/** The http verb constants */
|
|
2
|
+
export const httpVerb = {
|
|
3
|
+
POST: 'POST',
|
|
4
|
+
GET: 'GET',
|
|
5
|
+
PUT: 'PUT',
|
|
6
|
+
PATCH: 'PATCH',
|
|
7
|
+
DELETE: 'DELETE',
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC12ZXJicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9tb2RlbHMvaHR0cC12ZXJicy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSw4QkFBOEI7QUFDOUIsTUFBTSxDQUFDLE1BQU0sUUFBUSxHQUFHO0lBQ3BCLElBQUksRUFBRSxNQUFrQjtJQUN4QixHQUFHLEVBQUUsS0FBaUI7SUFDdEIsR0FBRyxFQUFFLEtBQWlCO0lBQ3RCLEtBQUssRUFBRSxPQUFtQjtJQUMxQixNQUFNLEVBQUUsUUFBb0I7Q0FDL0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBUaGUgaHR0cCB2ZXJiIHR5cGVzICovXHJcbmV4cG9ydCB0eXBlIEh0dHBWZXJiID0gJ1BPU1QnIHwgJ0dFVCcgfCAnUFVUJyB8ICdQQVRDSCcgfCAnREVMRVRFJztcclxuXHJcbi8qKiBUaGUgaHR0cCB2ZXJiIGNvbnN0YW50cyAqL1xyXG5leHBvcnQgY29uc3QgaHR0cFZlcmIgPSB7XHJcbiAgICBQT1NUOiAnUE9TVCcgYXMgSHR0cFZlcmIsXHJcbiAgICBHRVQ6ICdHRVQnIGFzIEh0dHBWZXJiLFxyXG4gICAgUFVUOiAnUFVUJyBhcyBIdHRwVmVyYixcclxuICAgIFBBVENIOiAnUEFUQ0gnIGFzIEh0dHBWZXJiLFxyXG4gICAgREVMRVRFOiAnREVMRVRFJyBhcyBIdHRwVmVyYixcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2aWdhdGlvbi1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL25hdmlnYXRpb24tY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOYXZpZ2F0aW9uVGhlbWVTZXR0aW5ncyB9IGZyb20gJy4uLy4uL25hdmlnYXRpb24vbW9kZWxzL25hdi10aGVtZS5zZXR0aW5ncyc7XHJcbmltcG9ydCB7IE5hdmlnYXRpb25BZHZhbmNlZFNldHRpbmdzLCBOYXZpZ2F0aW9uU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9uYXZpZ2F0aW9uL21vZGVscy9uYXYuc2V0dGluZ3MnO1xyXG5pbXBvcnQgeyBOYXZOb2RlIH0gZnJvbSAnLi4vLi4vbmF2aWdhdGlvbi9tb2RlbHMvbmF2aWdhdGlvbic7XHJcblxyXG4vKiogVGhlIG5hdmlnYXRpb24gY29uZmlnICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmF2aWdhdGlvbkNvbmZpZyB7XHJcbiAgICAvKiogVGhlIG5hdmlnYXRpb24gdGhlbWUgc2V0dGluZ3MgKi9cclxuICAgIHRoZW1lOiBOYXZpZ2F0aW9uVGhlbWVTZXR0aW5ncztcclxuICAgIC8qKiBUaGUgbmF2aWdhdGlvbiBzZXR0aW5ncyAqL1xyXG4gICAgc2V0dGluZ3M6IE5hdmlnYXRpb25TZXR0aW5ncztcclxuICAgIC8qKiBUaGUgYWR2YW5jZWQgbmF2aWdhdGlvbiBzZXR0aW5ncyAqL1xyXG4gICAgYWR2YW5jZWQ6IE5hdmlnYXRpb25BZHZhbmNlZFNldHRpbmdzO1xyXG4gICAgLyoqIFRoZSBuYXZpZ2F0aW9uIGFycmF5ICovXHJcbiAgICBub2RlczogQXJyYXk8TmF2Tm9kZT47XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2lkYy1hdXRoLXNldHRpbmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL21vZGVscy9vaWRjLWF1dGgtc2V0dGluZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEF1dGhDb25maWcgfSBmcm9tICdhbmd1bGFyLW9hdXRoMi1vaWRjJztcclxuXHJcbi8qKiBPSURDIEF1dGggU2V0dGluZ3MgKi9cclxuZXhwb3J0IGludGVyZmFjZSBPaWRjQXV0aFNldHRpbmdzIGV4dGVuZHMgQXV0aENvbmZpZyB7XHJcbiAgICBsb2dJblRleHQ/OiBzdHJpbmc7XHJcbiAgICBsb2dPdXRUZXh0Pzogc3RyaW5nO1xyXG4gICAgcmV0dXJuUm91dGU/OiBzdHJpbmc7XHJcbiAgICBhdXRoU2V0T25TdGFydHVwPzogYm9vbGVhbjtcclxuICAgIHJlcXVpcmVMb2dpbk9uU3RhcnR1cD86IGJvb2xlYW47XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** The route path enum */
|
|
2
|
+
export var RoutePath;
|
|
3
|
+
(function (RoutePath) {
|
|
4
|
+
RoutePath["Internal"] = "internal";
|
|
5
|
+
RoutePath["External"] = "external";
|
|
6
|
+
})(RoutePath || (RoutePath = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUtcGF0aC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9tb2RlbHMvcm91dGUtcGF0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwQkFBMEI7QUFDMUIsTUFBTSxDQUFOLElBQVksU0FHWDtBQUhELFdBQVksU0FBUztJQUNuQixrQ0FBcUIsQ0FBQTtJQUNyQixrQ0FBcUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsU0FBUyxLQUFULFNBQVMsUUFHcEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogVGhlIHJvdXRlIHBhdGggZW51bSAqL1xyXG5leHBvcnQgZW51bSBSb3V0ZVBhdGgge1xyXG4gIEludGVybmFsID0gJ2ludGVybmFsJyxcclxuICBFeHRlcm5hbCA9ICdleHRlcm5hbCdcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** The session configurations */
|
|
2
|
+
export class SessionConfig {
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Vzc2lvbi1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL3Nlc3Npb24tY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLGlDQUFpQztBQUNqQyxNQUFNLE9BQU8sYUFBYTtDQXFCekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXRhU3RvcmVDb25maWcgfSBmcm9tICcuL2RhdGEtc3RvcmUtY29uZmlnJztcclxuXHJcbi8qKiBUaGUgc2Vzc2lvbiBjb25maWd1cmF0aW9ucyAqL1xyXG5leHBvcnQgY2xhc3MgU2Vzc2lvbkNvbmZpZzxUID0gYW55PiB7XHJcbiAgICAvKiogVGhlIGJyb3dzZXIgc3RvcmFnZSBpbXBsZW1lbnRhdGlvbiAqL1xyXG4gICAgcHVibGljIGJyb3dzZXJTdG9yYWdlSW1wbGVtZW50YXRpb246IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIHNlc3Npb24gbWFuYWdlbWVudCBpbXBsZW1lbnRhdGlvbiAqL1xyXG4gICAgcHVibGljIHNlc3Npb25NYW5hZ2VtZW50SW1wbGVtZW50YXRpb246IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIGRhdGEgc3RvcmUgY29uZmlndXJhdGlvbnMgKi9cclxuICAgIHB1YmxpYyBkYXRhU3RvcmVDb25maWc6IERhdGFTdG9yZUNvbmZpZzxUPjtcclxuXHJcbiAgICAvKiogVGhlIHRyYW5zZmVyIGJhc2UgcGF0aCAqL1xyXG4gICAgcHVibGljIHRyYW5zZmVyQmFzZVBhdGg6IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIGtleSBwYXRoIHVzZWQgZm9yIGJyb3dzZXIgc3RvcmFnZSAqL1xyXG4gICAgcHVibGljIGtleVBhdGg6IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIHNlc3Npb24gbWFuYWdlbWVudCBiYXNlIHBhdGggKi9cclxuICAgIHB1YmxpYyBzZXNzaW9uTWFuYWdlbWVudEJhc2VQYXRoOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIFRoZSBzZXNzaW9uIHJlZnJlc2ggdGltZSBpbiBtaW51dGVzICovXHJcbiAgICBwdWJsaWMgc2Vzc2lvblJlZnJlc2hUaW1lTWludXRlczogbnVtYmVyO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3R5bGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL21vZGVscy9zdHlsZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBUaGUgc3R5bGVzIGludGVyZmFjZSAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFN0eWxlcyB7XHJcbiAgICAvKiogVGhlIGhlaWdodCBpbiBweCAqL1xyXG4gICAgaGVpZ2h0PzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBUaGUgbW9iaWxlIGhlaWdodCBpbiBweCAqL1xyXG4gICAgaGVpZ2h0TW9iaWxlPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBUaGUgd2lkdGggaW4gcHggKi9cclxuICAgIHdpZHRoPzogbnVtYmVyO1xyXG5cclxuICAgIC8qKiBUaGUgbW9iaWxlIHdpZHRoIGluIHB4ICovXHJcbiAgICB3aWR0aE1vYmlsZT86IG51bWJlcjtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/** The session class */
|
|
2
|
+
export class TypedSession {
|
|
3
|
+
}
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZWQtc2Vzc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FybWF0dXJlL3NyYy9saWIvY29yZS9tb2RlbHMvdHlwZWQtc2Vzc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSx3QkFBd0I7QUFDeEIsTUFBTSxPQUFPLFlBQVk7Q0FrQnhCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU2Vzc2lvblJlc3BvbnNlTW9kZWwgfSBmcm9tICcuLi8uLi9jb3JlL2NsaWVudC1nZW5lcmF0ZWQvbW9kZWwvc2Vzc2lvblJlc3BvbnNlTW9kZWwnO1xyXG5pbXBvcnQgeyBCcmFuZGluZ01vZGVsLCBUcmFja2luZ01vZGVsLCBPQXV0aE1vZGVsIH0gZnJvbSAnLi4vLi4vY29yZS9jbGllbnQtZ2VuZXJhdGVkL21vZGVsL21vZGVscyc7XHJcblxyXG4vKiogVGhlIHNlc3Npb24gY2xhc3MgKi9cclxuZXhwb3J0IGNsYXNzIFR5cGVkU2Vzc2lvbjxUPiBpbXBsZW1lbnRzIFNlc3Npb25SZXNwb25zZU1vZGVsIHtcclxuICAgIC8qKiBUaGUgaW5pdGFsaXppbmcgb3JpZ2luICovXHJcbiAgICBwdWJsaWMgaW5pdGlhbGl6aW5nT3JpZ2luPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBUaGUgc2Vzc2lvbiBpZCAqL1xyXG4gICAgcHVibGljIHNlc3Npb25JZD86IHN0cmluZztcclxuXHJcbiAgICAvKiogVGhlIHR5cGVkIHNlc3Npb24gZGF0YSAqL1xyXG4gICAgcHVibGljIHNlc3Npb25EYXRhPzogVDtcclxuXHJcbiAgICAvKiogVGhlIGJyYW5kaW5nIG1vZGVsICovXHJcbiAgICBwdWJsaWMgYnJhbmRpbmc/OiBCcmFuZGluZ01vZGVsO1xyXG5cclxuICAgIC8qKiBUaGUgdHJhY2tpbmcgbW9kZWwgKi9cclxuICAgIHB1YmxpYyB0cmFja2luZz86IFRyYWNraW5nTW9kZWw7XHJcblxyXG4gICAgLyoqIFRoZSBvYXV0aCBtb2RlbCAqL1xyXG4gICAgcHVibGljIG9BdXRoPzogT0F1dGhNb2RlbDtcclxufSJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/** The user entity service config */
|
|
2
|
+
export class UserEntityServiceConfig {
|
|
3
|
+
constructor() {
|
|
4
|
+
/** true if getting user on start up */
|
|
5
|
+
this.getUserOnInit = true;
|
|
6
|
+
/** True when including links */
|
|
7
|
+
this.includeLinks = true;
|
|
8
|
+
/** The validate function */
|
|
9
|
+
this.validate = (user) => true;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1lbnRpdHktc2VydmljZS1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcm1hdHVyZS9zcmMvbGliL2NvcmUvbW9kZWxzL3VzZXItZW50aXR5LXNlcnZpY2UtY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLHFDQUFxQztBQUNyQyxNQUFNLE9BQU8sdUJBQXVCO0lBQXBDO1FBQ0ksdUNBQXVDO1FBQ2hDLGtCQUFhLEdBQVksSUFBSSxDQUFDO1FBS3JDLGdDQUFnQztRQUN6QixpQkFBWSxHQUFZLElBQUksQ0FBQztRQUtwQyw0QkFBNEI7UUFDckIsYUFBUSxHQUF5QyxDQUFDLElBQXVCLEVBQVcsRUFBRSxDQUFDLElBQUksQ0FBQztJQUN2RyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3NlcnRlZFVzZXJNb2RlbCB9IGZyb20gJy4uL2NsaWVudC1nZW5lcmF0ZWQvbW9kZWwvYXNzZXJ0ZWRVc2VyTW9kZWwnO1xyXG5cclxuLyoqIFRoZSB1c2VyIGVudGl0eSBzZXJ2aWNlIGNvbmZpZyAqL1xyXG5leHBvcnQgY2xhc3MgVXNlckVudGl0eVNlcnZpY2VDb25maWcge1xyXG4gICAgLyoqIHRydWUgaWYgZ2V0dGluZyB1c2VyIG9uIHN0YXJ0IHVwICovXHJcbiAgICBwdWJsaWMgZ2V0VXNlck9uSW5pdDogYm9vbGVhbiA9IHRydWU7XHJcblxyXG4gICAgLyoqIFRoZSB1c2VyIGVudGl0eSBiYXNlIHVybCAqL1xyXG4gICAgcHVibGljIHVzZXJFbnRpdHlCYXNlVXJsOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIFRydWUgd2hlbiBpbmNsdWRpbmcgbGlua3MgKi9cclxuICAgIHB1YmxpYyBpbmNsdWRlTGlua3M6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgIC8qKiBUaGUgcGFydGlhbCBmb3IgdGhlIGdldCB1c2VyIGNhbGwgKi9cclxuICAgIHB1YmxpYyBnZXRVc2VyUGFydGlhbDogc3RyaW5nO1xyXG5cclxuICAgIC8qKiBUaGUgdmFsaWRhdGUgZnVuY3Rpb24gKi9cclxuICAgIHB1YmxpYyB2YWxpZGF0ZTogKHVzZXI6IEFzc2VydGVkVXNlck1vZGVsKSA9PiBib29sZWFuID0gKHVzZXI6IEFzc2VydGVkVXNlck1vZGVsKTogYm9vbGVhbiA9PiB0cnVlO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { Injectable, Optional } from "@angular/core";
|
|
2
|
+
import { AuthConfig } from "angular-oauth2-oidc";
|
|
3
|
+
import { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';
|
|
4
|
+
import { BehaviorSubject } from "rxjs";
|
|
5
|
+
import { preSignInRouteStorageKey } from "../models/constants";
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "angular-oauth2-oidc";
|
|
8
|
+
import * as i2 from "@angular/common/http";
|
|
9
|
+
import * as i3 from "../../oauth/oauth-api";
|
|
10
|
+
import * as i4 from "./custom-auth-config.service";
|
|
11
|
+
/** The session service */
|
|
12
|
+
export class AuthorizationService {
|
|
13
|
+
/**
|
|
14
|
+
* Constructs authorization service
|
|
15
|
+
* @param authService The OAuth Service
|
|
16
|
+
* @param httpClient The HTTPClient
|
|
17
|
+
* @param authStorage The AuthStorage
|
|
18
|
+
* @param hybridAuthService The Hybrid Service
|
|
19
|
+
* @param customAuthConfigService The Custom Authorization Service
|
|
20
|
+
*/
|
|
21
|
+
constructor(authService, httpClient, authStorage, hybridAuthService, customAuthConfigService) {
|
|
22
|
+
this.authService = authService;
|
|
23
|
+
this.httpClient = httpClient;
|
|
24
|
+
this.authStorage = authStorage;
|
|
25
|
+
this.hybridAuthService = hybridAuthService;
|
|
26
|
+
this.customAuthConfigService = customAuthConfigService;
|
|
27
|
+
/** IsloggedIn behaviour subject **/
|
|
28
|
+
this.isLoggedInBs = new BehaviorSubject(false);
|
|
29
|
+
this.isLoggedIn$ = this.isLoggedInBs.asObservable();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Initialize Authorization Settings.
|
|
33
|
+
* @param authSettings The Authorization settings
|
|
34
|
+
*/
|
|
35
|
+
initializeAuthSettings(authSettings, shouldTryLogin = true) {
|
|
36
|
+
this.authSettings = authSettings;
|
|
37
|
+
if (this.customAuthConfigService) {
|
|
38
|
+
this.customAuthConfigService.configureAuthSettings().then(authConfig => {
|
|
39
|
+
// Overwrite initial header auth setting with custom resolver
|
|
40
|
+
this.authSettings = {
|
|
41
|
+
...authSettings,
|
|
42
|
+
...authConfig
|
|
43
|
+
};
|
|
44
|
+
if (shouldTryLogin) {
|
|
45
|
+
this.handleTryLogin(authSettings.authSetOnStartup);
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
const authConfig = new AuthConfig({
|
|
51
|
+
clientId: authSettings.clientId,
|
|
52
|
+
redirectUri: authSettings.redirectUri,
|
|
53
|
+
issuer: authSettings.issuer,
|
|
54
|
+
scope: authSettings.scope,
|
|
55
|
+
skipIssuerCheck: authSettings.skipIssuerCheck,
|
|
56
|
+
timeoutFactor: authSettings.timeoutFactor || 0.75,
|
|
57
|
+
postLogoutRedirectUri: authSettings.postLogOutUrl,
|
|
58
|
+
loginUrl: authSettings.loginUrl,
|
|
59
|
+
responseType: authSettings.responseType || 'code'
|
|
60
|
+
});
|
|
61
|
+
this.authService.configure(authConfig);
|
|
62
|
+
this.authService.issuer = authSettings.issuer;
|
|
63
|
+
this.authService.strictDiscoveryDocumentValidation = false;
|
|
64
|
+
this.authService.skipIssuerCheck = true;
|
|
65
|
+
this.authService.tokenValidationHandler = new JwksValidationHandler();
|
|
66
|
+
this.authService.setupAutomaticSilentRefresh({}, 'access_token');
|
|
67
|
+
this.authService.timeoutFactor = authSettings.timeoutFactor || 0.75;
|
|
68
|
+
this.authService.responseType = authSettings.responseType || 'code';
|
|
69
|
+
if (shouldTryLogin) {
|
|
70
|
+
this.handleTryLogin(authSettings.authSetOnStartup);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
/** The user name */
|
|
75
|
+
userName() {
|
|
76
|
+
let name = '';
|
|
77
|
+
if (this.claims.given_name) {
|
|
78
|
+
name += this.claims.given_name;
|
|
79
|
+
}
|
|
80
|
+
if (name && this.claims.family_name) {
|
|
81
|
+
name += ` ${this.claims.family_name}`;
|
|
82
|
+
}
|
|
83
|
+
else if (this.claims.family_name) {
|
|
84
|
+
name += this.claims.family_name;
|
|
85
|
+
}
|
|
86
|
+
return name || this.claims.upn;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Authorize User.
|
|
90
|
+
*/
|
|
91
|
+
authorizeUser() {
|
|
92
|
+
if (this.authSettings) {
|
|
93
|
+
if (!this.IsLoggedIn) {
|
|
94
|
+
if (this.customAuthConfigService) {
|
|
95
|
+
this.customAuthConfigService.configureAuthSettings().then(_ => {
|
|
96
|
+
this.handleLogin();
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
if (this.authService.issuer !== this.authSettings.issuer) {
|
|
101
|
+
this.authService.issuer = this.authSettings.issuer;
|
|
102
|
+
}
|
|
103
|
+
this.handleLogin();
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
else {
|
|
107
|
+
if (this.hybridAuthService) {
|
|
108
|
+
this.hybridAuthService.expireSession(true);
|
|
109
|
+
}
|
|
110
|
+
this.authService.logOut();
|
|
111
|
+
this.authStorage.removeItem('access_token');
|
|
112
|
+
this.isLoggedInBs.next(false);
|
|
113
|
+
this.IsLoggedIn = false;
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Handle Login
|
|
120
|
+
* @param authSetOnStartup Is auth set on startup
|
|
121
|
+
*/
|
|
122
|
+
handleTryLogin(authSetOnStartup) {
|
|
123
|
+
if (!authSetOnStartup) {
|
|
124
|
+
this.authService.loadDiscoveryDocumentAndTryLogin()
|
|
125
|
+
.then(() => {
|
|
126
|
+
const token = this.authService.getAccessToken();
|
|
127
|
+
const isValid = !!token;
|
|
128
|
+
this.claims = this.authService.getIdentityClaims();
|
|
129
|
+
this.isLoggedInBs.next(isValid);
|
|
130
|
+
this.IsLoggedIn = isValid;
|
|
131
|
+
})
|
|
132
|
+
.catch(e => {
|
|
133
|
+
console.error(e);
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
this.authService.loadDiscoveryDocument()
|
|
138
|
+
.then(() => {
|
|
139
|
+
const token = this.authService.getAccessToken();
|
|
140
|
+
const isValid = !!token;
|
|
141
|
+
this.claims = this.authService.getIdentityClaims();
|
|
142
|
+
this.isLoggedInBs.next(isValid);
|
|
143
|
+
this.IsLoggedIn = isValid;
|
|
144
|
+
})
|
|
145
|
+
.catch(e => {
|
|
146
|
+
console.error(e);
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
/** Handle Login */
|
|
151
|
+
handleLogin() {
|
|
152
|
+
window.sessionStorage.setItem(preSignInRouteStorageKey, window.location.pathname.toLowerCase());
|
|
153
|
+
this.authService.loadDiscoveryDocumentAndLogin()
|
|
154
|
+
.then(logInSuccess => {
|
|
155
|
+
if (logInSuccess) {
|
|
156
|
+
this.isLoggedInBs.next(true);
|
|
157
|
+
this.IsLoggedIn = true;
|
|
158
|
+
}
|
|
159
|
+
})
|
|
160
|
+
.catch(e => {
|
|
161
|
+
console.error(e);
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
AuthorizationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AuthorizationService, deps: [{ token: i1.OAuthService }, { token: i2.HttpClient }, { token: i1.OAuthStorage }, { token: i3.HybridSamlOauthService }, { token: i4.CustomAuthConfigService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
166
|
+
AuthorizationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AuthorizationService, providedIn: 'root' });
|
|
167
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AuthorizationService, decorators: [{
|
|
168
|
+
type: Injectable,
|
|
169
|
+
args: [{
|
|
170
|
+
providedIn: 'root'
|
|
171
|
+
}]
|
|
172
|
+
}], ctorParameters: function () { return [{ type: i1.OAuthService }, { type: i2.HttpClient }, { type: i1.OAuthStorage }, { type: i3.HybridSamlOauthService }, { type: i4.CustomAuthConfigService, decorators: [{
|
|
173
|
+
type: Optional
|
|
174
|
+
}] }]; } });
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0aG9yaXphdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJtYXR1cmUvc3JjL2xpYi9jb3JlL3NlcnZpY2VzL2F1dGhvcml6YXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3RCxPQUFPLEVBQUUsVUFBVSxFQUE4QixNQUFNLHFCQUFxQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFLbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUcvRCwwQkFBMEI7QUFJMUIsTUFBTSxPQUFPLG9CQUFvQjtJQWlCL0I7Ozs7Ozs7T0FPRztJQUNILFlBQ21CLFdBQXlCLEVBQ3pCLFVBQXNCLEVBQ3RCLFdBQXlCLEVBQ3pCLGlCQUF5QyxFQUM3Qix1QkFBZ0Q7UUFKNUQsZ0JBQVcsR0FBWCxXQUFXLENBQWM7UUFDekIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixnQkFBVyxHQUFYLFdBQVcsQ0FBYztRQUN6QixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXdCO1FBQzdCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBeUI7UUF0Qi9FLG9DQUFvQztRQUNuQixpQkFBWSxHQUE2QixJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQXVCNUYsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7O09BR0c7SUFDSSxzQkFBc0IsQ0FBQyxZQUFnQyxFQUFFLGlCQUEwQixJQUFJO1FBQzVGLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxD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QUMsVUFBVSxHQUFHLElBQUksQ0FBQzthQUN4QjtRQUNILENBQUMsQ0FBQzthQUNELEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOztpSEE1S1Usb0JBQW9CO3FIQUFwQixvQkFBb0IsY0FGbkIsTUFBTTsyRkFFUCxvQkFBb0I7a0JBSGhDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkErQkksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5pbXBvcnQgeyBBdXRoQ29uZmlnLCBPQXV0aFNlcnZpY2UsIE9BdXRoU3RvcmFnZSB9IGZyb20gXCJhbmd1bGFyLW9hdXRoMi1vaWRjXCI7XHJcbmltcG9ydCB7IEp3a3NWYWxpZGF0aW9uSGFuZGxlciB9IGZyb20gJ2FuZ3VsYXItb2F1dGgyLW9pZGMtandrcyc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG5pbXBvcnQgeyBIZWFkZXJBdXRoU2V0dGluZ3MgfSBmcm9tIFwiLi4vLi4vaGVhZGVyL21vZGVscy9oZWFkZXItYXV0aC5zZXR0aW5nc1wiO1xyXG5pbXBvcnQgeyBIeWJyaWRTYW1sT2F1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL29hdXRoL29hdXRoLWFwaVwiO1xyXG5pbXBvcnQgeyBBY2Nlc3NUb2tlbkNsYWltcyB9IGZyb20gXCIuLi8uLi9yYmFjL3JiYWMtYXBpXCI7XHJcbmltcG9ydCB7IHByZVNpZ25JblJvdXRlU3RvcmFnZUtleSB9IGZyb20gXCIuLi9tb2RlbHMvY29uc3RhbnRzXCI7XHJcbmltcG9ydCB7IEN1c3RvbUF1dGhDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi9jdXN0b20tYXV0aC1jb25maWcuc2VydmljZSc7XHJcblxyXG4vKiogVGhlIHNlc3Npb24gc2VydmljZSAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRob3JpemF0aW9uU2VydmljZSB7XHJcblxyXG4gIC8qKiBUaGUgY2xhaW1zICovXHJcbiAgcHJpdmF0ZSBjbGFpbXM6IEFjY2Vzc1Rva2VuQ2xhaW1zO1xyXG5cclxuICAvKiogQXV0aG9yaXphdGlvbiBzZXR0aW5ncy4qL1xyXG4gIHB1YmxpYyBhdXRoU2V0dGluZ3M6IEhlYWRlckF1dGhTZXR0aW5ncztcclxuXHJcbiAgLyoqIElzbG9nZ2VkSW4gYmVoYXZpb3VyIHN1YmplY3QgKiovXHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc0xvZ2dlZEluQnM6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPiA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xyXG5cclxuICAvKiogSXNsb2dnZWRJbiBvYnNlcnZhYmxlICoqL1xyXG4gIHB1YmxpYyBpc0xvZ2dlZEluJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgLyoqIERldGVybWluZWQgd2hldGhlciBpcyB1c2VyIGlzIGxvZ2dlZCBpbioqL1xyXG4gIHB1YmxpYyBJc0xvZ2dlZEluOiBib29sZWFuO1xyXG5cclxuICAvKipcclxuICAgKiBDb25zdHJ1Y3RzIGF1dGhvcml6YXRpb24gc2VydmljZVxyXG4gICAqIEBwYXJhbSBhdXRoU2VydmljZSBUaGUgT0F1dGggU2VydmljZVxyXG4gICAqIEBwYXJhbSBodHRwQ2xpZW50IFRoZSBIVFRQQ2xpZW50XHJcbiAgICogQHBhcmFtIGF1dGhTdG9yYWdlIFRoZSBBdXRoU3RvcmFnZVxyXG4gICAqIEBwYXJhbSBoeWJyaWRBdXRoU2VydmljZSBUaGUgSHlicmlkIFNlcnZpY2VcclxuICAgKiBAcGFyYW0gY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UgVGhlIEN1c3RvbSBBdXRob3JpemF0aW9uIFNlcnZpY2VcclxuICAgKi9cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cENsaWVudDogSHR0cENsaWVudCxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXV0aFN0b3JhZ2U6IE9BdXRoU3RvcmFnZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHlicmlkQXV0aFNlcnZpY2U6IEh5YnJpZFNhbWxPYXV0aFNlcnZpY2UsXHJcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IGN1c3RvbUF1dGhDb25maWdTZXJ2aWNlOiBDdXN0b21BdXRoQ29uZmlnU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5pc0xvZ2dlZEluJCA9IHRoaXMuaXNMb2dnZWRJbkJzLmFzT2JzZXJ2YWJsZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZSBBdXRob3JpemF0aW9uIFNldHRpbmdzLlxyXG4gICAqICBAcGFyYW0gYXV0aFNldHRpbmdzIFRoZSBBdXRob3JpemF0aW9uIHNldHRpbmdzXHJcbiAgICovXHJcbiAgcHVibGljIGluaXRpYWxpemVBdXRoU2V0dGluZ3MoYXV0aFNldHRpbmdzOiBIZWFkZXJBdXRoU2V0dGluZ3MsIHNob3VsZFRyeUxvZ2luOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xyXG4gICAgdGhpcy5hdXRoU2V0dGluZ3MgPSBhdXRoU2V0dGluZ3M7XHJcblxyXG4gICAgaWYgKHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgdGhpcy5jdXN0b21BdXRoQ29uZmlnU2VydmljZS5jb25maWd1cmVBdXRoU2V0dGluZ3MoKS50aGVuKGF1dGhDb25maWcgPT4ge1xyXG4gICAgICAgIC8vIE92ZXJ3cml0ZSBpbml0aWFsIGhlYWRlciBhdXRoIHNldHRpbmcgd2l0aCBjdXN0b20gcmVzb2x2ZXJcclxuICAgICAgICB0aGlzLmF1dGhTZXR0aW5ncyA9IHtcclxuICAgICAgICAgIC4uLmF1dGhTZXR0aW5ncyxcclxuICAgICAgICAgIC4uLmF1dGhDb25maWdcclxuICAgICAgICB9O1xyXG4gICAgICAgIGlmIChzaG91bGRUcnlMb2dpbikge1xyXG4gICAgICAgICAgdGhpcy5oYW5kbGVUcnlMb2dpbihhdXRoU2V0dGluZ3MuYXV0aFNldE9uU3RhcnR1cCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBjb25zdCBhdXRoQ29uZmlnID0gbmV3IEF1dGhDb25maWcoe1xyXG4gICAgICAgIGNsaWVudElkOiBhdXRoU2V0dGluZ3MuY2xpZW50SWQsXHJcbiAgICAgICAgcmVkaXJlY3RVcmk6IGF1dGhTZXR0aW5ncy5yZWRpcmVjdFVyaSxcclxuICAgICAgICBpc3N1ZXI6IGF1dGhTZXR0aW5ncy5pc3N1ZXIsXHJcbiAgICAgICAgc2NvcGU6IGF1dGhTZXR0aW5ncy5zY29wZSxcclxuICAgICAgICBza2lwSXNzdWVyQ2hlY2s6IGF1dGhTZXR0aW5ncy5za2lwSXNzdWVyQ2hlY2ssXHJcbiAgICAgICAgdGltZW91dEZhY3RvcjogYXV0aFNldHRpbmdzLnRpbWVvdXRGYWN0b3IgfHwgMC43NSxcclxuICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6IGF1dGhTZXR0aW5ncy5wb3N0TG9nT3V0VXJsLFxyXG4gICAgICAgIGxvZ2luVXJsOiBhdXRoU2V0dGluZ3MubG9naW5VcmwsXHJcbiAgICAgICAgcmVzcG9uc2VUeXBlOiBhdXRoU2V0dGluZ3MucmVzcG9uc2VUeXBlIHx8ICdjb2RlJ1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5jb25maWd1cmUoYXV0aENvbmZpZyk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UuaXNzdWVyID0gYXV0aFNldHRpbmdzLmlzc3VlcjtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5zdHJpY3REaXNjb3ZlcnlEb2N1bWVudFZhbGlkYXRpb24gPSBmYWxzZTtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5za2lwSXNzdWVyQ2hlY2sgPSB0cnVlO1xyXG4gICAgICB0aGlzLmF1dGhTZXJ2aWNlLnRva2VuVmFsaWRhdGlvbkhhbmRsZXIgPSBuZXcgSndrc1ZhbGlkYXRpb25IYW5kbGVyKCk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2Uuc2V0dXBBdXRvbWF0aWNTaWxlbnRSZWZyZXNoKHt9LCAnYWNjZXNzX3Rva2VuJyk7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UudGltZW91dEZhY3RvciA9IGF1dGhTZXR0aW5ncy50aW1lb3V0RmFjdG9yIHx8IDAuNzU7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UucmVzcG9uc2VUeXBlID0gYXV0aFNldHRpbmdzLnJlc3BvbnNlVHlwZSB8fCAnY29kZSc7XHJcblxyXG4gICAgICBpZiAoc2hvdWxkVHJ5TG9naW4pIHtcclxuICAgICAgICB0aGlzLmhhbmRsZVRyeUxvZ2luKGF1dGhTZXR0aW5ncy5hdXRoU2V0T25TdGFydHVwKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIFRoZSB1c2VyIG5hbWUgKi9cclxuICBwdWJsaWMgdXNlck5hbWUoKTogc3RyaW5nIHtcclxuICAgIGxldCBuYW1lID0gJyc7XHJcbiAgICBpZiAodGhpcy5jbGFpbXMuZ2l2ZW5fbmFtZSkge1xyXG4gICAgICBuYW1lICs9IHRoaXMuY2xhaW1zLmdpdmVuX25hbWU7XHJcbiAgICB9XHJcbiAgICBpZiAobmFtZSAmJiB0aGlzLmNsYWltcy5mYW1pbHlfbmFtZSkge1xyXG4gICAgICBuYW1lICs9IGAgJHt0aGlzLmNsYWltcy5mYW1pbHlfbmFtZX1gO1xyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAodGhpcy5jbGFpbXMuZmFtaWx5X25hbWUpIHtcclxuICAgICAgbmFtZSArPSB0aGlzLmNsYWltcy5mYW1pbHlfbmFtZTtcclxuICAgIH1cclxuICAgIHJldHVybiBuYW1lIHx8IHRoaXMuY2xhaW1zLnVwbjtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEF1dGhvcml6ZSBVc2VyLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBhdXRob3JpemVVc2VyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuYXV0aFNldHRpbmdzKSB7XHJcbiAgICAgIGlmICghdGhpcy5Jc0xvZ2dlZEluKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UpIHtcclxuICAgICAgICAgIHRoaXMuY3VzdG9tQXV0aENvbmZpZ1NlcnZpY2UuY29uZmlndXJlQXV0aFNldHRpbmdzKCkudGhlbihfID0+IHtcclxuICAgICAgICAgICAgdGhpcy5oYW5kbGVMb2dpbigpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgaWYgKHRoaXMuYXV0aFNlcnZpY2UuaXNzdWVyICE9PSB0aGlzLmF1dGhTZXR0aW5ncy5pc3N1ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5hdXRoU2VydmljZS5pc3N1ZXIgPSB0aGlzLmF1dGhTZXR0aW5ncy5pc3N1ZXI7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmhhbmRsZUxvZ2luKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGlmICh0aGlzLmh5YnJpZEF1dGhTZXJ2aWNlKSB7XHJcbiAgICAgICAgICB0aGlzLmh5YnJpZEF1dGhTZXJ2aWNlLmV4cGlyZVNlc3Npb24odHJ1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9nT3V0KCk7XHJcbiAgICAgICAgdGhpcy5hdXRoU3RvcmFnZS5yZW1vdmVJdGVtKCdhY2Nlc3NfdG9rZW4nKTtcclxuICAgICAgICB0aGlzLmlzTG9nZ2VkSW5Ccy5uZXh0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLklzTG9nZ2VkSW4gPSBmYWxzZTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICogSGFuZGxlIExvZ2luXHJcbiAgKiBAcGFyYW0gYXV0aFNldE9uU3RhcnR1cCBJcyBhdXRoIHNldCBvbiBzdGFydHVwIFxyXG4gICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVUcnlMb2dpbihhdXRoU2V0T25TdGFydHVwOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoIWF1dGhTZXRPblN0YXJ0dXApIHtcclxuICAgICAgdGhpcy5hdXRoU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnRBbmRUcnlMb2dpbigpXHJcbiAgICAgICAgLnRoZW4oKCkgPT4ge1xyXG4gICAgICAgICAgY29uc3QgdG9rZW4gPSB0aGlzLmF1dGhTZXJ2aWNlLmdldEFjY2Vzc1Rva2VuKCk7XHJcbiAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gISF0b2tlbjtcclxuICAgICAgICAgIHRoaXMuY2xhaW1zID0gdGhpcy5hdXRoU2VydmljZS5nZXRJZGVudGl0eUNsYWltcygpIGFzIEFjY2Vzc1Rva2VuQ2xhaW1zO1xyXG4gICAgICAgICAgdGhpcy5pc0xvZ2dlZEluQnMubmV4dChpc1ZhbGlkKTtcclxuICAgICAgICAgIHRoaXMuSXNMb2dnZWRJbiA9IGlzVmFsaWQ7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuYXV0aFNlcnZpY2UubG9hZERpc2NvdmVyeURvY3VtZW50KClcclxuICAgICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgICBjb25zdCB0b2tlbiA9IHRoaXMuYXV0aFNlcnZpY2UuZ2V0QWNjZXNzVG9rZW4oKTtcclxuICAgICAgICAgIGNvbnN0IGlzVmFsaWQgPSAhIXRva2VuO1xyXG4gICAgICAgICAgdGhpcy5jbGFpbXMgPSB0aGlzLmF1dGhTZXJ2aWNlLmdldElkZW50aXR5Q2xhaW1zKCkgYXMgQWNjZXNzVG9rZW5DbGFpbXM7XHJcbiAgICAgICAgICB0aGlzLmlzTG9nZ2VkSW5Ccy5uZXh0KGlzVmFsaWQpO1xyXG4gICAgICAgICAgdGhpcy5Jc0xvZ2dlZEluID0gaXNWYWxpZDtcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5jYXRjaChlID0+IHtcclxuICAgICAgICAgIGNvbnNvbGUuZXJyb3IoZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogSGFuZGxlIExvZ2luICovXHJcbiAgcHJpdmF0ZSBoYW5kbGVMb2dpbigpOiB2b2lkIHtcclxuICAgIHdpbmRvdy5zZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHByZVNpZ25JblJvdXRlU3RvcmFnZUtleSwgd2luZG93LmxvY2F0aW9uLnBhdGhuYW1lLnRvTG93ZXJDYXNlKCkpO1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5sb2FkRGlzY292ZXJ5RG9jdW1lbnRBbmRMb2dpbigpXHJcbiAgICAgIC50aGVuKGxvZ0luU3VjY2VzcyA9PiB7XHJcbiAgICAgICAgaWYgKGxvZ0luU3VjY2Vzcykge1xyXG4gICAgICAgICAgdGhpcy5pc0xvZ2dlZEluQnMubmV4dCh0cnVlKTtcclxuICAgICAgICAgIHRoaXMuSXNMb2dnZWRJbiA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgICAuY2F0Y2goZSA9PiB7XHJcbiAgICAgICAgY29uc29sZS5lcnJvcihlKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|