@pega/react-sdk-components 8.8.21 → 8.23.11-debug
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/lib/components/designSystemExtension/AlertBanner/AlertBanner.d.ts +10 -7
- package/lib/components/designSystemExtension/AlertBanner/AlertBanner.d.ts.map +1 -1
- package/lib/components/designSystemExtension/AlertBanner/AlertBanner.js +7 -0
- package/lib/components/designSystemExtension/AlertBanner/AlertBanner.js.map +1 -1
- package/lib/components/designSystemExtension/Banner/Banner.d.ts +1 -15
- package/lib/components/designSystemExtension/Banner/Banner.d.ts.map +1 -1
- package/lib/components/designSystemExtension/Banner/Banner.js.map +1 -1
- package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.d.ts +9 -6
- package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.d.ts.map +1 -1
- package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js +7 -3
- package/lib/components/designSystemExtension/CaseSummaryFields/CaseSummaryFields.js.map +1 -1
- package/lib/components/designSystemExtension/DetailsFields/DetailsFields.d.ts +10 -4
- package/lib/components/designSystemExtension/DetailsFields/DetailsFields.d.ts.map +1 -1
- package/lib/components/designSystemExtension/DetailsFields/DetailsFields.js +8 -1
- package/lib/components/designSystemExtension/DetailsFields/DetailsFields.js.map +1 -1
- package/lib/components/designSystemExtension/FieldGroup/FieldGroup.d.ts +2 -6
- package/lib/components/designSystemExtension/FieldGroup/FieldGroup.d.ts.map +1 -1
- package/lib/components/designSystemExtension/FieldGroup/FieldGroup.js +3 -3
- package/lib/components/designSystemExtension/FieldGroup/FieldGroup.js.map +1 -1
- package/lib/components/designSystemExtension/FieldGroupList/FieldGroupList.d.ts +2 -7
- package/lib/components/designSystemExtension/FieldGroupList/FieldGroupList.d.ts.map +1 -1
- package/lib/components/designSystemExtension/FieldGroupList/FieldGroupList.js +3 -3
- package/lib/components/designSystemExtension/FieldGroupList/FieldGroupList.js.map +1 -1
- package/lib/components/designSystemExtension/FieldValueList/FieldValueList.d.ts +2 -7
- package/lib/components/designSystemExtension/FieldValueList/FieldValueList.d.ts.map +1 -1
- package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js +3 -3
- package/lib/components/designSystemExtension/FieldValueList/FieldValueList.js.map +1 -1
- package/lib/components/designSystemExtension/Operator/Operator.d.ts +7 -17
- package/lib/components/designSystemExtension/Operator/Operator.d.ts.map +1 -1
- package/lib/components/designSystemExtension/Operator/Operator.js +6 -1
- package/lib/components/designSystemExtension/Operator/Operator.js.map +1 -1
- package/lib/components/designSystemExtension/Pulse/Pulse.d.ts +1 -5
- package/lib/components/designSystemExtension/Pulse/Pulse.d.ts.map +1 -1
- package/lib/components/designSystemExtension/Pulse/Pulse.js +6 -3
- package/lib/components/designSystemExtension/Pulse/Pulse.js.map +1 -1
- package/lib/components/designSystemExtension/WssQuickCreate/WssQuickCreate.d.ts +1 -6
- package/lib/components/designSystemExtension/WssQuickCreate/WssQuickCreate.d.ts.map +1 -1
- package/lib/components/designSystemExtension/WssQuickCreate/WssQuickCreate.js.map +1 -1
- package/lib/components/field/AutoComplete/AutoComplete.d.ts +1 -15
- package/lib/components/field/AutoComplete/AutoComplete.d.ts.map +1 -1
- package/lib/components/field/AutoComplete/AutoComplete.js +15 -17
- package/lib/components/field/AutoComplete/AutoComplete.js.map +1 -1
- package/lib/components/field/CancelAlert/CancelAlert.d.ts +2 -7
- package/lib/components/field/CancelAlert/CancelAlert.d.ts.map +1 -1
- package/lib/components/field/CancelAlert/CancelAlert.js +3 -3
- package/lib/components/field/CancelAlert/CancelAlert.js.map +1 -1
- package/lib/components/field/Checkbox/Checkbox.d.ts +1 -19
- package/lib/components/field/Checkbox/Checkbox.d.ts.map +1 -1
- package/lib/components/field/Checkbox/Checkbox.js +8 -10
- package/lib/components/field/Checkbox/Checkbox.js.map +1 -1
- package/lib/components/field/Currency/Currency.d.ts +1 -6
- package/lib/components/field/Currency/Currency.d.ts.map +1 -1
- package/lib/components/field/Currency/Currency.js +11 -11
- package/lib/components/field/Currency/Currency.js.map +1 -1
- package/lib/components/field/Currency/currency-utils.d.ts.map +1 -1
- package/lib/components/field/Currency/currency-utils.js +1 -1
- package/lib/components/field/Currency/currency-utils.js.map +1 -1
- package/lib/components/field/Date/Date.d.ts +1 -5
- package/lib/components/field/Date/Date.d.ts.map +1 -1
- package/lib/components/field/Date/Date.js +6 -8
- package/lib/components/field/Date/Date.js.map +1 -1
- package/lib/components/field/DateTime/DateTime.d.ts +1 -5
- package/lib/components/field/DateTime/DateTime.d.ts.map +1 -1
- package/lib/components/field/DateTime/DateTime.js +8 -14
- package/lib/components/field/DateTime/DateTime.js.map +1 -1
- package/lib/components/field/Decimal/Decimal.d.ts +1 -8
- package/lib/components/field/Decimal/Decimal.d.ts.map +1 -1
- package/lib/components/field/Decimal/Decimal.js +9 -10
- package/lib/components/field/Decimal/Decimal.js.map +1 -1
- package/lib/components/field/Dropdown/Dropdown.d.ts +1 -10
- package/lib/components/field/Dropdown/Dropdown.d.ts.map +1 -1
- package/lib/components/field/Dropdown/Dropdown.js +9 -12
- package/lib/components/field/Dropdown/Dropdown.js.map +1 -1
- package/lib/components/field/Email/Email.d.ts +1 -5
- package/lib/components/field/Email/Email.d.ts.map +1 -1
- package/lib/components/field/Email/Email.js +5 -7
- package/lib/components/field/Email/Email.js.map +1 -1
- package/lib/components/field/Integer/Integer.d.ts +1 -5
- package/lib/components/field/Integer/Integer.d.ts.map +1 -1
- package/lib/components/field/Integer/Integer.js +4 -6
- package/lib/components/field/Integer/Integer.js.map +1 -1
- package/lib/components/field/Percentage/Percentage.d.ts +1 -5
- package/lib/components/field/Percentage/Percentage.d.ts.map +1 -1
- package/lib/components/field/Percentage/Percentage.js +4 -6
- package/lib/components/field/Percentage/Percentage.js.map +1 -1
- package/lib/components/field/Phone/Phone.d.ts +1 -5
- package/lib/components/field/Phone/Phone.d.ts.map +1 -1
- package/lib/components/field/Phone/Phone.js +6 -8
- package/lib/components/field/Phone/Phone.js.map +1 -1
- package/lib/components/field/RadioButtons/RadioButtons.d.ts +1 -7
- package/lib/components/field/RadioButtons/RadioButtons.d.ts.map +1 -1
- package/lib/components/field/RadioButtons/RadioButtons.js +12 -12
- package/lib/components/field/RadioButtons/RadioButtons.js.map +1 -1
- package/lib/components/field/SemanticLink/SemanticLink.d.ts +9 -5
- package/lib/components/field/SemanticLink/SemanticLink.d.ts.map +1 -1
- package/lib/components/field/SemanticLink/SemanticLink.js +14 -10
- package/lib/components/field/SemanticLink/SemanticLink.js.map +1 -1
- package/lib/components/field/TextArea/TextArea.d.ts +1 -6
- package/lib/components/field/TextArea/TextArea.d.ts.map +1 -1
- package/lib/components/field/TextArea/TextArea.js +3 -5
- package/lib/components/field/TextArea/TextArea.js.map +1 -1
- package/lib/components/field/TextContent/TextContent.d.ts +1 -7
- package/lib/components/field/TextContent/TextContent.d.ts.map +1 -1
- package/lib/components/field/TextContent/TextContent.js.map +1 -1
- package/lib/components/field/TextInput/TextInput.d.ts +1 -6
- package/lib/components/field/TextInput/TextInput.d.ts.map +1 -1
- package/lib/components/field/TextInput/TextInput.js +4 -6
- package/lib/components/field/TextInput/TextInput.js.map +1 -1
- package/lib/components/field/Time/Time.d.ts +1 -5
- package/lib/components/field/Time/Time.d.ts.map +1 -1
- package/lib/components/field/Time/Time.js +8 -10
- package/lib/components/field/Time/Time.js.map +1 -1
- package/lib/components/field/URL/URL.d.ts +1 -5
- package/lib/components/field/URL/URL.d.ts.map +1 -1
- package/lib/components/field/URL/URL.js +4 -6
- package/lib/components/field/URL/URL.js.map +1 -1
- package/lib/components/field/UserReference/UserReference.d.ts +40 -19
- package/lib/components/field/UserReference/UserReference.d.ts.map +1 -1
- package/lib/components/field/UserReference/UserReference.js +45 -16
- package/lib/components/field/UserReference/UserReference.js.map +1 -1
- package/lib/components/helpers/attachmentHelpers.d.ts +3 -3
- package/lib/components/helpers/attachmentHelpers.d.ts.map +1 -1
- package/lib/components/helpers/attachmentHelpers.js.map +1 -1
- package/lib/components/helpers/auth.d.ts +6 -8
- package/lib/components/helpers/auth.d.ts.map +1 -1
- package/lib/components/helpers/auth.js +335 -642
- package/lib/components/helpers/auth.js.map +1 -1
- package/lib/components/helpers/authManager.d.ts +17 -20
- package/lib/components/helpers/authManager.d.ts.map +1 -1
- package/lib/components/helpers/authManager.js +439 -711
- package/lib/components/helpers/authManager.js.map +1 -1
- package/lib/components/helpers/case-utils.d.ts.map +1 -1
- package/lib/components/helpers/case-utils.js +4 -5
- package/lib/components/helpers/case-utils.js.map +1 -1
- package/lib/components/helpers/common-utils.d.ts +1 -1
- package/lib/components/helpers/common-utils.js.map +1 -1
- package/lib/components/helpers/config_access.d.ts.map +1 -1
- package/lib/components/helpers/config_access.js +63 -0
- package/lib/components/helpers/config_access.js.map +1 -1
- package/lib/components/helpers/date-format-utils.d.ts +6 -1
- package/lib/components/helpers/date-format-utils.d.ts.map +1 -1
- package/lib/components/helpers/date-format-utils.js.map +1 -1
- package/lib/components/helpers/event-utils.d.ts +1 -1
- package/lib/components/helpers/event-utils.d.ts.map +1 -1
- package/lib/components/helpers/event-utils.js.map +1 -1
- package/lib/components/helpers/formatters/Currency.d.ts +6 -6
- package/lib/components/helpers/formatters/Currency.js +2 -2
- package/lib/components/helpers/formatters/Currency.js.map +1 -1
- package/lib/components/helpers/formatters/CurrencyMap.d.ts +320 -69
- package/lib/components/helpers/formatters/CurrencyMap.d.ts.map +1 -1
- package/lib/components/helpers/formatters/CurrencyMap.js.map +1 -1
- package/lib/components/helpers/formatters/Date.d.ts +4 -4
- package/lib/components/helpers/formatters/Date.js.map +1 -1
- package/lib/components/helpers/formatters/common.d.ts +1 -1
- package/lib/components/helpers/formatters/common.d.ts.map +1 -1
- package/lib/components/helpers/formatters/common.js.map +1 -1
- package/lib/components/helpers/formatters/index.d.ts +11 -11
- package/lib/components/helpers/formatters/index.d.ts.map +1 -1
- package/lib/components/helpers/formatters/index.js.map +1 -1
- package/lib/components/helpers/simpleTableHelpers.d.ts +1 -3
- package/lib/components/helpers/simpleTableHelpers.d.ts.map +1 -1
- package/lib/components/helpers/simpleTableHelpers.js +3 -5
- package/lib/components/helpers/simpleTableHelpers.js.map +1 -1
- package/lib/components/helpers/state-utils.d.ts.map +1 -1
- package/lib/components/helpers/state-utils.js.map +1 -1
- package/lib/components/helpers/template-utils.d.ts +3 -7
- package/lib/components/helpers/template-utils.d.ts.map +1 -1
- package/lib/components/helpers/template-utils.js +0 -1
- package/lib/components/helpers/template-utils.js.map +1 -1
- package/lib/components/helpers/versionHelpers.d.ts +0 -6
- package/lib/components/helpers/versionHelpers.d.ts.map +1 -1
- package/lib/components/helpers/versionHelpers.js +0 -6
- package/lib/components/helpers/versionHelpers.js.map +1 -1
- package/lib/components/infra/ActionButtons/ActionButtons.d.ts +13 -6
- package/lib/components/infra/ActionButtons/ActionButtons.d.ts.map +1 -1
- package/lib/components/infra/ActionButtons/ActionButtons.js +13 -1
- package/lib/components/infra/ActionButtons/ActionButtons.js.map +1 -1
- package/lib/components/infra/Assignment/Assignment.d.ts +15 -9
- package/lib/components/infra/Assignment/Assignment.d.ts.map +1 -1
- package/lib/components/infra/Assignment/Assignment.js +21 -8
- package/lib/components/infra/Assignment/Assignment.js.map +1 -1
- package/lib/components/infra/AssignmentCard/AssignmentCard.d.ts +14 -8
- package/lib/components/infra/AssignmentCard/AssignmentCard.d.ts.map +1 -1
- package/lib/components/infra/AssignmentCard/AssignmentCard.js +16 -3
- package/lib/components/infra/AssignmentCard/AssignmentCard.js.map +1 -1
- package/lib/components/infra/Containers/FlowContainer/FlowContainer.d.ts +21 -1
- package/lib/components/infra/Containers/FlowContainer/FlowContainer.d.ts.map +1 -1
- package/lib/components/infra/Containers/FlowContainer/FlowContainer.js +48 -41
- package/lib/components/infra/Containers/FlowContainer/FlowContainer.js.map +1 -1
- package/lib/components/infra/Containers/FlowContainer/helpers.d.ts.map +1 -1
- package/lib/components/infra/Containers/FlowContainer/helpers.js.map +1 -1
- package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.d.ts +17 -8
- package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.d.ts.map +1 -1
- package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.js +17 -6
- package/lib/components/infra/Containers/ModalViewContainer/ModalViewContainer.js.map +1 -1
- package/lib/components/infra/Containers/ViewContainer/ViewContainer.d.ts +22 -9
- package/lib/components/infra/Containers/ViewContainer/ViewContainer.d.ts.map +1 -1
- package/lib/components/infra/Containers/ViewContainer/ViewContainer.js +20 -3
- package/lib/components/infra/Containers/ViewContainer/ViewContainer.js.map +1 -1
- package/lib/components/infra/DashboardFilter/DashboardFilter.d.ts +19 -9
- package/lib/components/infra/DashboardFilter/DashboardFilter.d.ts.map +1 -1
- package/lib/components/infra/DashboardFilter/DashboardFilter.js +16 -2
- package/lib/components/infra/DashboardFilter/DashboardFilter.js.map +1 -1
- package/lib/components/infra/DashboardFilter/filterUtils.js +1 -1
- package/lib/components/infra/DashboardFilter/filterUtils.js.map +1 -1
- package/lib/components/infra/DeferLoad/DeferLoad.d.ts +14 -1
- package/lib/components/infra/DeferLoad/DeferLoad.d.ts.map +1 -1
- package/lib/components/infra/DeferLoad/DeferLoad.js +15 -13
- package/lib/components/infra/DeferLoad/DeferLoad.js.map +1 -1
- package/lib/components/infra/ErrorBoundary/ErrorBoundary.d.ts +12 -5
- package/lib/components/infra/ErrorBoundary/ErrorBoundary.d.ts.map +1 -1
- package/lib/components/infra/ErrorBoundary/ErrorBoundary.js +12 -2
- package/lib/components/infra/ErrorBoundary/ErrorBoundary.js.map +1 -1
- package/lib/components/infra/MultiStep/MultiStep.d.ts +17 -11
- package/lib/components/infra/MultiStep/MultiStep.d.ts.map +1 -1
- package/lib/components/infra/MultiStep/MultiStep.js +18 -4
- package/lib/components/infra/MultiStep/MultiStep.js.map +1 -1
- package/lib/components/infra/NavBar/NavBar.d.ts +16 -8
- package/lib/components/infra/NavBar/NavBar.d.ts.map +1 -1
- package/lib/components/infra/NavBar/NavBar.js +16 -3
- package/lib/components/infra/NavBar/NavBar.js.map +1 -1
- package/lib/components/infra/Reference/Reference.d.ts +17 -8
- package/lib/components/infra/Reference/Reference.d.ts.map +1 -1
- package/lib/components/infra/Reference/Reference.js +15 -1
- package/lib/components/infra/Reference/Reference.js.map +1 -1
- package/lib/components/infra/Region/Region.d.ts +7 -4
- package/lib/components/infra/Region/Region.d.ts.map +1 -1
- package/lib/components/infra/Region/Region.js +4 -0
- package/lib/components/infra/Region/Region.js.map +1 -1
- package/lib/components/infra/RootContainer/RootContainer.d.ts +21 -1
- package/lib/components/infra/RootContainer/RootContainer.d.ts.map +1 -1
- package/lib/components/infra/RootContainer/RootContainer.js +21 -4
- package/lib/components/infra/RootContainer/RootContainer.js.map +1 -1
- package/lib/components/infra/Stages/Stages.d.ts +8 -5
- package/lib/components/infra/Stages/Stages.d.ts.map +1 -1
- package/lib/components/infra/Stages/Stages.js +6 -1
- package/lib/components/infra/Stages/Stages.js.map +1 -1
- package/lib/components/infra/VerticalTabs/LeftAlignVerticalTabs/LeftAlignVerticalTabs.d.ts.map +1 -1
- package/lib/components/infra/VerticalTabs/LeftAlignVerticalTabs/LeftAlignVerticalTabs.js.map +1 -1
- package/lib/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.d.ts +10 -4
- package/lib/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.d.ts.map +1 -1
- package/lib/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.js +9 -4
- package/lib/components/infra/VerticalTabs/VerticalTabs/VerticalTabs.js.map +1 -1
- package/lib/components/infra/View/View.d.ts +16 -13
- package/lib/components/infra/View/View.d.ts.map +1 -1
- package/lib/components/infra/View/View.js +20 -2
- package/lib/components/infra/View/View.js.map +1 -1
- package/lib/components/template/AppShell/AppShell.d.ts +15 -20
- package/lib/components/template/AppShell/AppShell.d.ts.map +1 -1
- package/lib/components/template/AppShell/AppShell.js +22 -10
- package/lib/components/template/AppShell/AppShell.js.map +1 -1
- package/lib/components/template/BannerPage/BannerPage.d.ts +23 -11
- package/lib/components/template/BannerPage/BannerPage.d.ts.map +1 -1
- package/lib/components/template/BannerPage/BannerPage.js +22 -4
- package/lib/components/template/BannerPage/BannerPage.js.map +1 -1
- package/lib/components/template/CaseSummary/CaseSummary.d.ts +7 -5
- package/lib/components/template/CaseSummary/CaseSummary.d.ts.map +1 -1
- package/lib/components/template/CaseSummary/CaseSummary.js +6 -6
- package/lib/components/template/CaseSummary/CaseSummary.js.map +1 -1
- package/lib/components/template/CaseView/CaseView.d.ts +22 -10
- package/lib/components/template/CaseView/CaseView.d.ts.map +1 -1
- package/lib/components/template/CaseView/CaseView.js +21 -8
- package/lib/components/template/CaseView/CaseView.js.map +1 -1
- package/lib/components/template/CaseViewActionsMenu/CaseViewActionsMenu.d.ts +15 -8
- package/lib/components/template/CaseViewActionsMenu/CaseViewActionsMenu.d.ts.map +1 -1
- package/lib/components/template/CaseViewActionsMenu/CaseViewActionsMenu.js +12 -0
- package/lib/components/template/CaseViewActionsMenu/CaseViewActionsMenu.js.map +1 -1
- package/lib/components/template/Confirmation/Confirmation.d.ts +16 -10
- package/lib/components/template/Confirmation/Confirmation.d.ts.map +1 -1
- package/lib/components/template/Confirmation/Confirmation.js +23 -12
- package/lib/components/template/Confirmation/Confirmation.js.map +1 -1
- package/lib/components/template/DataReference/DataReference.d.ts +31 -1
- package/lib/components/template/DataReference/DataReference.d.ts.map +1 -1
- package/lib/components/template/DataReference/DataReference.js +48 -41
- package/lib/components/template/DataReference/DataReference.js.map +1 -1
- package/lib/components/template/DefaultForm/DefaultForm.d.ts +11 -1
- package/lib/components/template/DefaultForm/DefaultForm.d.ts.map +1 -1
- package/lib/components/template/DefaultForm/DefaultForm.js +10 -9
- package/lib/components/template/DefaultForm/DefaultForm.js.map +1 -1
- package/lib/components/template/Details/Details/Details.d.ts +16 -1
- package/lib/components/template/Details/Details/Details.d.ts.map +1 -1
- package/lib/components/template/Details/Details/Details.js +15 -10
- package/lib/components/template/Details/Details/Details.js.map +1 -1
- package/lib/components/template/Details/DetailsSubTabs/DetailsSubTabs.d.ts +15 -7
- package/lib/components/template/Details/DetailsSubTabs/DetailsSubTabs.d.ts.map +1 -1
- package/lib/components/template/Details/DetailsSubTabs/DetailsSubTabs.js +13 -1
- package/lib/components/template/Details/DetailsSubTabs/DetailsSubTabs.js.map +1 -1
- package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.d.ts +16 -1
- package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.d.ts.map +1 -1
- package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.js +16 -14
- package/lib/components/template/Details/DetailsThreeColumn/DetailsThreeColumn.js.map +1 -1
- package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.d.ts +16 -1
- package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.d.ts.map +1 -1
- package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.js +16 -14
- package/lib/components/template/Details/DetailsTwoColumn/DetailsTwoColumn.js.map +1 -1
- package/lib/components/template/FieldGroupTemplate/FieldGroupTemplate.d.ts +19 -12
- package/lib/components/template/FieldGroupTemplate/FieldGroupTemplate.d.ts.map +1 -1
- package/lib/components/template/FieldGroupTemplate/FieldGroupTemplate.js +21 -7
- package/lib/components/template/FieldGroupTemplate/FieldGroupTemplate.js.map +1 -1
- package/lib/components/template/InlineDashboard/InlineDashboard.d.ts +7 -7
- package/lib/components/template/InlineDashboard/InlineDashboard.d.ts.map +1 -1
- package/lib/components/template/InlineDashboard/InlineDashboard.js +5 -0
- package/lib/components/template/InlineDashboard/InlineDashboard.js.map +1 -1
- package/lib/components/template/InlineDashboardPage/InlineDashboardPage.d.ts +15 -8
- package/lib/components/template/InlineDashboardPage/InlineDashboardPage.d.ts.map +1 -1
- package/lib/components/template/InlineDashboardPage/InlineDashboardPage.js +14 -5
- package/lib/components/template/InlineDashboardPage/InlineDashboardPage.js.map +1 -1
- package/lib/components/template/ListPage/ListPage.d.ts +13 -5
- package/lib/components/template/ListPage/ListPage.d.ts.map +1 -1
- package/lib/components/template/ListPage/ListPage.js +10 -6
- package/lib/components/template/ListPage/ListPage.js.map +1 -1
- package/lib/components/template/ListView/ListView.d.ts +9 -1
- package/lib/components/template/ListView/ListView.d.ts.map +1 -1
- package/lib/components/template/ListView/ListView.js +123 -127
- package/lib/components/template/ListView/ListView.js.map +1 -1
- package/lib/components/template/ListView/utils.d.ts +0 -44
- package/lib/components/template/ListView/utils.d.ts.map +1 -1
- package/lib/components/template/ListView/utils.js +1 -142
- package/lib/components/template/ListView/utils.js.map +1 -1
- package/lib/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.d.ts +13 -9
- package/lib/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.d.ts.map +1 -1
- package/lib/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.js +13 -2
- package/lib/components/template/MultiReferenceReadOnly/MultiReferenceReadOnly.js.map +1 -1
- package/lib/components/template/NarrowWide/NarrowWide/NarrowWide.d.ts +1 -10
- package/lib/components/template/NarrowWide/NarrowWide/NarrowWide.d.ts.map +1 -1
- package/lib/components/template/NarrowWide/NarrowWide/NarrowWide.js.map +1 -1
- package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.d.ts +16 -1
- package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.d.ts.map +1 -1
- package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.js +16 -14
- package/lib/components/template/NarrowWide/NarrowWideDetails/NarrowWideDetails.js.map +1 -1
- package/lib/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.d.ts +1 -5
- package/lib/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.d.ts.map +1 -1
- package/lib/components/template/NarrowWide/NarrowWideForm/NarrowWideForm.js.map +1 -1
- package/lib/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.d.ts +14 -7
- package/lib/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.d.ts.map +1 -1
- package/lib/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.js +13 -4
- package/lib/components/template/NarrowWide/NarrowWidePage/NarrowWidePage.js.map +1 -1
- package/lib/components/template/OneColumn/OneColumn/OneColumn.d.ts +7 -4
- package/lib/components/template/OneColumn/OneColumn/OneColumn.d.ts.map +1 -1
- package/lib/components/template/OneColumn/OneColumn/OneColumn.js +5 -0
- package/lib/components/template/OneColumn/OneColumn/OneColumn.js.map +1 -1
- package/lib/components/template/OneColumn/OneColumnPage/OneColumnPage.d.ts +8 -4
- package/lib/components/template/OneColumn/OneColumnPage/OneColumnPage.d.ts.map +1 -1
- package/lib/components/template/OneColumn/OneColumnPage/OneColumnPage.js +6 -3
- package/lib/components/template/OneColumn/OneColumnPage/OneColumnPage.js.map +1 -1
- package/lib/components/template/OneColumn/OneColumnTab/OneColumnTab.d.ts +7 -4
- package/lib/components/template/OneColumn/OneColumnTab/OneColumnTab.d.ts.map +1 -1
- package/lib/components/template/OneColumn/OneColumnTab/OneColumnTab.js +5 -0
- package/lib/components/template/OneColumn/OneColumnTab/OneColumnTab.js.map +1 -1
- package/lib/components/template/PromotedFilters/PromotedFilters.d.ts +15 -1
- package/lib/components/template/PromotedFilters/PromotedFilters.d.ts.map +1 -1
- package/lib/components/template/PromotedFilters/PromotedFilters.js +11 -15
- package/lib/components/template/PromotedFilters/PromotedFilters.js.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTable/SimpleTable.d.ts.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTable/SimpleTable.js +5 -57
- package/lib/components/template/SimpleTable/SimpleTable/SimpleTable.js.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.d.ts +1 -18
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.d.ts.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js +2 -2
- package/lib/components/template/SimpleTable/SimpleTableManual/SimpleTableManual.js.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.d.ts +29 -1
- package/lib/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.d.ts.map +1 -1
- package/lib/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.js +28 -22
- package/lib/components/template/SimpleTable/SimpleTableSelect/SimpleTableSelect.js.map +1 -1
- package/lib/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.d.ts +26 -14
- package/lib/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.d.ts.map +1 -1
- package/lib/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.js +26 -5
- package/lib/components/template/SingleReferenceReadOnly/SingleReferenceReadOnly.js.map +1 -1
- package/lib/components/template/SubTabs/SubTabs.d.ts +10 -4
- package/lib/components/template/SubTabs/SubTabs.d.ts.map +1 -1
- package/lib/components/template/SubTabs/SubTabs.js +8 -1
- package/lib/components/template/SubTabs/SubTabs.js.map +1 -1
- package/lib/components/template/SubTabs/tabUtils.d.ts.map +1 -1
- package/lib/components/template/SubTabs/tabUtils.js.map +1 -1
- package/lib/components/template/TwoColumn/TwoColumn/TwoColumn.d.ts +11 -5
- package/lib/components/template/TwoColumn/TwoColumn/TwoColumn.d.ts.map +1 -1
- package/lib/components/template/TwoColumn/TwoColumn/TwoColumn.js +12 -1
- package/lib/components/template/TwoColumn/TwoColumn/TwoColumn.js.map +1 -1
- package/lib/components/template/TwoColumn/TwoColumnPage/TwoColumnPage.d.ts +8 -4
- package/lib/components/template/TwoColumn/TwoColumnPage/TwoColumnPage.d.ts.map +1 -1
- package/lib/components/template/TwoColumn/TwoColumnPage/TwoColumnPage.js +6 -3
- package/lib/components/template/TwoColumn/TwoColumnPage/TwoColumnPage.js.map +1 -1
- package/lib/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.d.ts +11 -5
- package/lib/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.d.ts.map +1 -1
- package/lib/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.js +9 -1
- package/lib/components/template/TwoColumn/TwoColumnTab/TwoColumnTab.js.map +1 -1
- package/lib/components/template/WideNarrow/WideNarrow/WideNarrow.d.ts +1 -10
- package/lib/components/template/WideNarrow/WideNarrow/WideNarrow.d.ts.map +1 -1
- package/lib/components/template/WideNarrow/WideNarrow/WideNarrow.js +1 -1
- package/lib/components/template/WideNarrow/WideNarrow/WideNarrow.js.map +1 -1
- package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.d.ts +16 -1
- package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.d.ts.map +1 -1
- package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.js +23 -31
- package/lib/components/template/WideNarrow/WideNarrowDetails/WideNarrowDetails.js.map +1 -1
- package/lib/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.d.ts +1 -5
- package/lib/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.d.ts.map +1 -1
- package/lib/components/template/WideNarrow/WideNarrowForm/WideNarrowForm.js.map +1 -1
- package/lib/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.d.ts +14 -7
- package/lib/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.d.ts.map +1 -1
- package/lib/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.js +14 -4
- package/lib/components/template/WideNarrow/WideNarrowPage/WideNarrowPage.js.map +1 -1
- package/lib/components/template/WssNavBar/WssNavBar.d.ts +1 -17
- package/lib/components/template/WssNavBar/WssNavBar.d.ts.map +1 -1
- package/lib/components/template/WssNavBar/WssNavBar.js.map +1 -1
- package/lib/components/widget/AppAnnouncement/AppAnnouncement.d.ts +17 -8
- package/lib/components/widget/AppAnnouncement/AppAnnouncement.d.ts.map +1 -1
- package/lib/components/widget/AppAnnouncement/AppAnnouncement.js +19 -4
- package/lib/components/widget/AppAnnouncement/AppAnnouncement.js.map +1 -1
- package/lib/components/widget/Attachment/Attachment.d.ts.map +1 -1
- package/lib/components/widget/Attachment/Attachment.js +16 -24
- package/lib/components/widget/Attachment/Attachment.js.map +1 -1
- package/lib/components/widget/CaseHistory/CaseHistory.d.ts +7 -4
- package/lib/components/widget/CaseHistory/CaseHistory.d.ts.map +1 -1
- package/lib/components/widget/CaseHistory/CaseHistory.js +8 -4
- package/lib/components/widget/CaseHistory/CaseHistory.js.map +1 -1
- package/lib/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.d.ts +1 -8
- package/lib/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.d.ts.map +1 -1
- package/lib/components/widget/FileUtility/ActionButtonsForFileUtil/ActionButtonsForFileUtil.js.map +1 -1
- package/lib/components/widget/FileUtility/FileUtility/FileUtility.d.ts +1 -5
- package/lib/components/widget/FileUtility/FileUtility/FileUtility.d.ts.map +1 -1
- package/lib/components/widget/FileUtility/FileUtility/FileUtility.js +21 -31
- package/lib/components/widget/FileUtility/FileUtility/FileUtility.js.map +1 -1
- package/lib/components/widget/Followers/Followers.d.ts +5 -4
- package/lib/components/widget/Followers/Followers.d.ts.map +1 -1
- package/lib/components/widget/Followers/Followers.js +10 -3
- package/lib/components/widget/Followers/Followers.js.map +1 -1
- package/lib/components/widget/QuickCreate/QuickCreate.d.ts.map +1 -1
- package/lib/components/widget/QuickCreate/QuickCreate.js +2 -10
- package/lib/components/widget/QuickCreate/QuickCreate.js.map +1 -1
- package/lib/components/widget/SummaryItem/SummaryItem.d.ts +1 -7
- package/lib/components/widget/SummaryItem/SummaryItem.d.ts.map +1 -1
- package/lib/components/widget/SummaryItem/SummaryItem.js.map +1 -1
- package/lib/components/widget/SummaryList/SummaryList.d.ts +1 -7
- package/lib/components/widget/SummaryList/SummaryList.d.ts.map +1 -1
- package/lib/components/widget/SummaryList/SummaryList.js +2 -5
- package/lib/components/widget/SummaryList/SummaryList.js.map +1 -1
- package/lib/components/widget/ToDo/ToDo.d.ts +27 -13
- package/lib/components/widget/ToDo/ToDo.d.ts.map +1 -1
- package/lib/components/widget/ToDo/ToDo.js +64 -28
- package/lib/components/widget/ToDo/ToDo.js.map +1 -1
- package/lib/doc/KeyReleaseUpdates.md +0 -21
- package/lib/index.d.ts +0 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -2
- package/lib/index.js.map +1 -1
- package/lib/sdk-pega-component-map.d.ts +1 -15
- package/lib/sdk-pega-component-map.js +1 -15
- package/lib/sdk-pega-component-map.js.map +1 -1
- package/package.json +1 -1
- package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.d.ts +0 -19
- package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.d.ts.map +0 -1
- package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.js +0 -77
- package/lib/components/designSystemExtension/RichTextEditor/RichTextEditor.js.map +0 -1
- package/lib/components/designSystemExtension/RichTextEditor/index.d.ts +0 -2
- package/lib/components/designSystemExtension/RichTextEditor/index.d.ts.map +0 -1
- package/lib/components/designSystemExtension/RichTextEditor/index.js +0 -2
- package/lib/components/designSystemExtension/RichTextEditor/index.js.map +0 -1
- package/lib/components/field/RichText/RichText.d.ts +0 -7
- package/lib/components/field/RichText/RichText.d.ts.map +0 -1
- package/lib/components/field/RichText/RichText.js +0 -51
- package/lib/components/field/RichText/RichText.js.map +0 -1
- package/lib/components/field/RichText/index.d.ts +0 -2
- package/lib/components/field/RichText/index.d.ts.map +0 -1
- package/lib/components/field/RichText/index.js +0 -2
- package/lib/components/field/RichText/index.js.map +0 -1
- package/lib/components/field/ScalarList/ScalarList.d.ts +0 -13
- package/lib/components/field/ScalarList/ScalarList.d.ts.map +0 -1
- package/lib/components/field/ScalarList/ScalarList.js +0 -34
- package/lib/components/field/ScalarList/ScalarList.js.map +0 -1
- package/lib/components/field/ScalarList/index.d.ts +0 -2
- package/lib/components/field/ScalarList/index.d.ts.map +0 -1
- package/lib/components/field/ScalarList/index.js +0 -2
- package/lib/components/field/ScalarList/index.js.map +0 -1
- package/lib/hooks/index.d.ts +0 -4
- package/lib/hooks/index.d.ts.map +0 -1
- package/lib/hooks/index.js +0 -4
- package/lib/hooks/index.js.map +0 -1
- package/lib/hooks/useAfterInitialEffect.d.ts +0 -9
- package/lib/hooks/useAfterInitialEffect.d.ts.map +0 -1
- package/lib/hooks/useAfterInitialEffect.js +0 -16
- package/lib/hooks/useAfterInitialEffect.js.map +0 -1
- package/lib/hooks/useConsolidatedRef.d.ts +0 -9
- package/lib/hooks/useConsolidatedRef.d.ts.map +0 -1
- package/lib/hooks/useConsolidatedRef.js +0 -30
- package/lib/hooks/useConsolidatedRef.js.map +0 -1
- package/lib/hooks/useUID.d.ts +0 -8
- package/lib/hooks/useUID.d.ts.map +0 -1
- package/lib/hooks/useUID.js +0 -14
- package/lib/hooks/useUID.js.map +0 -1
- package/lib/types/PConnProps.d.ts +0 -42
|
@@ -1,665 +1,204 @@
|
|
|
1
1
|
// This file wraps various calls related to logging in, logging out, etc.
|
|
2
2
|
// that use the auth.html/auth.js to do the work of logging in via OAuth 2.0.
|
|
3
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
4
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
5
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
6
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
7
|
-
};
|
|
8
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
9
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
10
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
11
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
12
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
13
|
-
};
|
|
14
|
-
var _AuthManager_instances, _AuthManager_ssKeyPrefix, _AuthManager_pegaAuth, _AuthManager_ssKeyConfigInfo, _AuthManager_ssKeySessionInfo, _AuthManager_ssKeyTokenInfo, _AuthManager_ssKeyState, _AuthManager_authConfig, _AuthManager_authDynState, _AuthManager_authHeader, _AuthManager_tokenInfo, _AuthManager_userInfo, _AuthManager_usePASS, _AuthManager_pageHideAdded, _AuthManager_tokenStorage, _AuthManager_transform, _AuthManager_foldSpot, _AuthManager_transformAndParse, _AuthManager_getStorage, _AuthManager_setStorage, _AuthManager_calcFoldSpot, _AuthManager_transformer, _AuthManager_doPageHide, _AuthManager_loadState, _AuthManager_doOnLoad, _AuthManager_doAuthDynStateChanged, _AuthManager_initialize, _AuthManager_constellationInit, _AuthManager_customConstellationInit, _AuthManager_fireTokenAvailable, _AuthManager_processTokenOnLogin, _AuthManager_updateLoginStatus, _AuthManager_authFullReauth, _AuthManager_authTokenUpdated;
|
|
15
|
-
// It utilizes a JS Class and private members to protect any sensitive tokens
|
|
16
|
-
// and token obfuscation routines
|
|
17
|
-
import { isEmptyObject } from './common-utils';
|
|
18
3
|
import { getSdkConfig, SdkConfigAccess } from './config_access';
|
|
19
4
|
import PegaAuth from './auth';
|
|
20
|
-
//
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
value: { usePopup: false, noInitialRedirect: false }
|
|
40
|
-
});
|
|
41
|
-
Object.defineProperty(this, "bC11NBootstrapInProgress", {
|
|
42
|
-
enumerable: true,
|
|
43
|
-
configurable: true,
|
|
44
|
-
writable: true,
|
|
45
|
-
value: false
|
|
46
|
-
});
|
|
47
|
-
Object.defineProperty(this, "bCustomAuth", {
|
|
48
|
-
enumerable: true,
|
|
49
|
-
configurable: true,
|
|
50
|
-
writable: true,
|
|
51
|
-
value: false
|
|
52
|
-
});
|
|
53
|
-
_AuthManager_tokenInfo.set(this, void 0);
|
|
54
|
-
_AuthManager_userInfo.set(this, void 0);
|
|
55
|
-
Object.defineProperty(this, "onLoadDone", {
|
|
56
|
-
enumerable: true,
|
|
57
|
-
configurable: true,
|
|
58
|
-
writable: true,
|
|
59
|
-
value: false
|
|
60
|
-
});
|
|
61
|
-
Object.defineProperty(this, "msReauthStart", {
|
|
62
|
-
enumerable: true,
|
|
63
|
-
configurable: true,
|
|
64
|
-
writable: true,
|
|
65
|
-
value: null
|
|
66
|
-
});
|
|
67
|
-
Object.defineProperty(this, "initInProgress", {
|
|
68
|
-
enumerable: true,
|
|
69
|
-
configurable: true,
|
|
70
|
-
writable: true,
|
|
71
|
-
value: false
|
|
72
|
-
});
|
|
73
|
-
Object.defineProperty(this, "isLoggedIn", {
|
|
74
|
-
enumerable: true,
|
|
75
|
-
configurable: true,
|
|
76
|
-
writable: true,
|
|
77
|
-
value: false
|
|
78
|
-
});
|
|
79
|
-
// Whether to pass a session storage key or structure to auth library
|
|
80
|
-
_AuthManager_usePASS.set(this, false);
|
|
81
|
-
_AuthManager_pageHideAdded.set(this, false);
|
|
82
|
-
_AuthManager_tokenStorage.set(this, 'temp');
|
|
83
|
-
_AuthManager_transform.set(this, true);
|
|
84
|
-
_AuthManager_foldSpot.set(this, 2);
|
|
85
|
-
// Auth Manager specific state is saved within session storage as important in redirect and popup window scenarios
|
|
86
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_loadState).call(this);
|
|
87
|
-
}
|
|
88
|
-
// Setter for authHeader (no getter)
|
|
89
|
-
set authHeader(value) {
|
|
90
|
-
__classPrivateFieldSet(this, _AuthManager_authHeader, value, "f");
|
|
91
|
-
// setAuthorizationHeader method not available til 8.8 so do safety check
|
|
92
|
-
if (window.PCore?.getAuthUtils().setAuthorizationHeader) {
|
|
93
|
-
const authHdr = value === null ? '' : value;
|
|
94
|
-
window.PCore.getAuthUtils().setAuthorizationHeader(authHdr);
|
|
95
|
-
}
|
|
96
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_updateLoginStatus).call(this);
|
|
97
|
-
}
|
|
98
|
-
// Setter/getter for usePopupForRestOfSession
|
|
99
|
-
set usePopupForRestOfSession(usePopup) {
|
|
100
|
-
this.state.usePopup = usePopup;
|
|
101
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyState, "f"), this.state);
|
|
102
|
-
}
|
|
103
|
-
get usePopupForRestOfSession() {
|
|
104
|
-
return this.state.usePopup;
|
|
105
|
-
}
|
|
106
|
-
// Setter/getter for noInitialRedirect
|
|
107
|
-
set noInitialRedirect(bNoInitialRedirect) {
|
|
108
|
-
if (bNoInitialRedirect) {
|
|
109
|
-
this.usePopupForRestOfSession = true;
|
|
110
|
-
}
|
|
111
|
-
this.state.noInitialRedirect = bNoInitialRedirect;
|
|
112
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyState, "f"), this.state);
|
|
113
|
-
}
|
|
114
|
-
get noInitialRedirect() {
|
|
115
|
-
return this.state.noInitialRedirect || false;
|
|
116
|
-
}
|
|
117
|
-
// Init/getter for loginStart
|
|
118
|
-
set loginStart(msValue) {
|
|
119
|
-
if (msValue) {
|
|
120
|
-
this.state.msLoginStart = msValue;
|
|
121
|
-
}
|
|
122
|
-
else if (this.state.msLoginStart) {
|
|
123
|
-
delete this.state.msLoginStart;
|
|
124
|
-
}
|
|
125
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyState, "f"), this.state);
|
|
126
|
-
}
|
|
127
|
-
get loginStart() {
|
|
128
|
-
return this.state.msLoginStart || 0;
|
|
5
|
+
// eslint-disable-next-line import/no-mutable-exports
|
|
6
|
+
export let gbLoggedIn = sessionStorage.getItem('rsdk_AH') !== null;
|
|
7
|
+
// eslint-disable-next-line import/no-mutable-exports
|
|
8
|
+
export let gbLoginInProgress = sessionStorage.getItem("rsdk_loggingIn") !== null;
|
|
9
|
+
// other sessionStorage items: rsdk_appName
|
|
10
|
+
// will store the PegaAuth instance
|
|
11
|
+
let authMgr = null;
|
|
12
|
+
// Since this variable is loaded in a separate instance in the popup scenario, use storage to coordinate across the two
|
|
13
|
+
let usePopupForRestOfSession = sessionStorage.getItem("rsdk_popup") === "1";
|
|
14
|
+
let gbC11NBootstrapInProgress = false;
|
|
15
|
+
// Some non Pega OAuth 2.0 Authentication in use (Basic or Custom for service package)
|
|
16
|
+
let gbCustomAuth = false;
|
|
17
|
+
/*
|
|
18
|
+
* Set to use popup experience for rest of session
|
|
19
|
+
*/
|
|
20
|
+
const forcePopupForReauths = (bForce) => {
|
|
21
|
+
if (bForce) {
|
|
22
|
+
sessionStorage.setItem("rsdk_popup", "1");
|
|
23
|
+
usePopupForRestOfSession = true;
|
|
129
24
|
}
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
this.msReauthStart = msValue;
|
|
134
|
-
}
|
|
135
|
-
else if (this.msReauthStart) {
|
|
136
|
-
delete this.msReauthStart;
|
|
137
|
-
}
|
|
138
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyState, "f"), this.state);
|
|
25
|
+
else {
|
|
26
|
+
sessionStorage.removeItem("rsdk_popup");
|
|
27
|
+
usePopupForRestOfSession = false;
|
|
139
28
|
}
|
|
140
|
-
|
|
141
|
-
|
|
29
|
+
};
|
|
30
|
+
const setNoInitialRedirect = (bNoInitialRedirect) => {
|
|
31
|
+
if (bNoInitialRedirect) {
|
|
32
|
+
forcePopupForReauths(true);
|
|
33
|
+
sessionStorage.setItem("rsdk_noRedirect", "1");
|
|
142
34
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
this.state.sfx = s || undefined;
|
|
146
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyState, "f"), this.state);
|
|
147
|
-
if (s) {
|
|
148
|
-
// To make it a bit more obtuse reverse the string and use that as the actual suffix
|
|
149
|
-
const sSfx = s.split("").reverse().join("");
|
|
150
|
-
__classPrivateFieldSet(this, _AuthManager_ssKeyConfigInfo, `${__classPrivateFieldGet(this, _AuthManager_ssKeyPrefix, "f")}CI_${sSfx}`, "f");
|
|
151
|
-
__classPrivateFieldSet(this, _AuthManager_ssKeySessionInfo, `${__classPrivateFieldGet(this, _AuthManager_ssKeyPrefix, "f")}SI_${sSfx}`, "f");
|
|
152
|
-
__classPrivateFieldSet(this, _AuthManager_ssKeyTokenInfo, `${__classPrivateFieldGet(this, _AuthManager_ssKeyPrefix, "f")}TI_${sSfx}`, "f");
|
|
153
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_calcFoldSpot).call(this, sSfx);
|
|
154
|
-
}
|
|
35
|
+
else {
|
|
36
|
+
sessionStorage.removeItem("rsdk_noRedirect");
|
|
155
37
|
}
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
38
|
+
};
|
|
39
|
+
const isLoginExpired = () => {
|
|
40
|
+
let bExpired = true;
|
|
41
|
+
const sLoginStart = sessionStorage.getItem("rsdk_loggingIn");
|
|
42
|
+
if (sLoginStart !== null) {
|
|
43
|
+
const currTime = Date.now();
|
|
44
|
+
bExpired = currTime - parseInt(sLoginStart, 10) > 60000;
|
|
163
45
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
46
|
+
return bExpired;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Clean up any web storage allocated for the user session.
|
|
50
|
+
*/
|
|
51
|
+
const clearAuthMgr = (bFullReauth = false) => {
|
|
52
|
+
// Remove any local storage for the user
|
|
53
|
+
if (!gbCustomAuth) {
|
|
54
|
+
sessionStorage.removeItem('rsdk_AH');
|
|
55
|
+
}
|
|
56
|
+
if (!bFullReauth) {
|
|
57
|
+
sessionStorage.removeItem("rsdk_CI");
|
|
58
|
+
}
|
|
59
|
+
sessionStorage.removeItem("rsdk_TI");
|
|
60
|
+
sessionStorage.removeItem("rsdk_UI");
|
|
61
|
+
sessionStorage.removeItem("rsdk_loggingIn");
|
|
62
|
+
gbLoggedIn = false;
|
|
63
|
+
gbLoginInProgress = false;
|
|
64
|
+
forcePopupForReauths(bFullReauth);
|
|
65
|
+
// Not removing the authMgr structure itself...as it can be leveraged on next login
|
|
66
|
+
};
|
|
67
|
+
export const authNoRedirect = () => {
|
|
68
|
+
return sessionStorage.getItem("rsdk_noRedirect") === "1";
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* Initialize OAuth config structure members and create authMgr instance
|
|
72
|
+
* bInit - governs whether to create new sessionStorage or load existing one
|
|
73
|
+
*/
|
|
74
|
+
const initOAuth = (bInit) => {
|
|
75
|
+
return getSdkConfig().then(sdkConfig => {
|
|
76
|
+
const sdkConfigAuth = sdkConfig.authConfig;
|
|
77
|
+
const sdkConfigServer = sdkConfig.serverConfig;
|
|
78
|
+
let pegaUrl = sdkConfigServer.infinityRestServerUrl;
|
|
79
|
+
const bNoInitialRedirect = authNoRedirect();
|
|
80
|
+
// Construct default OAuth endpoints (if not explicitly specified)
|
|
81
|
+
if (pegaUrl) {
|
|
82
|
+
// Cope with trailing slash being present
|
|
83
|
+
if (!pegaUrl.endsWith('/')) {
|
|
84
|
+
pegaUrl += '/';
|
|
174
85
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
__classPrivateFieldSet(this, _AuthManager_authDynState, {}, "f");
|
|
86
|
+
if (!sdkConfigAuth.authorize) {
|
|
87
|
+
sdkConfigAuth.authorize = `${pegaUrl}PRRestService/oauth2/v1/authorize`;
|
|
178
88
|
}
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
// Clear any established auth tokens
|
|
182
|
-
__classPrivateFieldSet(this, _AuthManager_tokenInfo, null, "f");
|
|
183
|
-
sessionStorage.removeItem(__classPrivateFieldGet(this, _AuthManager_ssKeyTokenInfo, "f"));
|
|
184
|
-
this.loginStart = 0;
|
|
185
|
-
this.isLoggedIn = false;
|
|
186
|
-
// reset the initial redirect as well by using this setter
|
|
187
|
-
this.usePopupForRestOfSession = bFullReauth;
|
|
188
|
-
this.keySuffix = '';
|
|
189
|
-
}
|
|
190
|
-
updateRedirectUri(sRedirectUri) {
|
|
191
|
-
__classPrivateFieldGet(this, _AuthManager_authConfig, "f").redirectUri = sRedirectUri;
|
|
192
|
-
}
|
|
193
|
-
/**
|
|
194
|
-
* Get available portals which supports SDK
|
|
195
|
-
* @returns list of available portals (portals other than excludingPortals list)
|
|
196
|
-
*/
|
|
197
|
-
async getAvailablePortals() {
|
|
198
|
-
return getSdkConfig().then(sdkConfig => {
|
|
199
|
-
const serverConfig = sdkConfig.serverConfig;
|
|
200
|
-
const userAccessGroup = PCore.getEnvironmentInfo().getAccessGroup();
|
|
201
|
-
const dataPageName = 'D_OperatorAccessGroups';
|
|
202
|
-
const serverUrl = serverConfig.infinityRestServerUrl;
|
|
203
|
-
const appAlias = serverConfig.appAlias;
|
|
204
|
-
const appAliasPath = appAlias ? `/app/${appAlias}` : '';
|
|
205
|
-
const arExcludedPortals = serverConfig['excludePortals'];
|
|
206
|
-
const headers = {
|
|
207
|
-
Authorization: __classPrivateFieldGet(this, _AuthManager_authHeader, "f") === null ? '' : __classPrivateFieldGet(this, _AuthManager_authHeader, "f"),
|
|
208
|
-
'Content-Type': 'application/json'
|
|
209
|
-
};
|
|
210
|
-
// Using v1 API here as v2 data_views is not able to access same data page currently. Should move to avoid having this logic to find
|
|
211
|
-
// a default portal or constellation portal and rather have Constellation JS Engine API just load the default portal
|
|
212
|
-
return fetch(`${serverUrl}${appAliasPath}/api/v1/data/${dataPageName}`, {
|
|
213
|
-
method: 'GET',
|
|
214
|
-
headers
|
|
215
|
-
})
|
|
216
|
-
.then(response => {
|
|
217
|
-
if (response.ok && response.status === 200) {
|
|
218
|
-
return response.json();
|
|
219
|
-
}
|
|
220
|
-
else {
|
|
221
|
-
if (response.status === 401) {
|
|
222
|
-
// Might be either a real token expiration or revoke, but more likely that the "api" service package is misconfigured
|
|
223
|
-
throw new Error(`Attempt to access ${dataPageName} failed. The "api" service package is likely not configured to use "OAuth 2.0"`);
|
|
224
|
-
}
|
|
225
|
-
throw new Error(`HTTP Error: ${response.status}`);
|
|
226
|
-
}
|
|
227
|
-
})
|
|
228
|
-
.then(async (agData) => {
|
|
229
|
-
const arAccessGroups = agData.pxResults;
|
|
230
|
-
const availablePortals = [];
|
|
231
|
-
for (const ag of arAccessGroups) {
|
|
232
|
-
if (ag.pyAccessGroup === userAccessGroup) {
|
|
233
|
-
// eslint-disable-next-line no-console
|
|
234
|
-
console.error(`Default portal for current operator (${ag.pyPortal}) is not compatible with SDK.\nConsider using a different operator, adjusting the default portal for this operator, or using "appPortal" setting within sdk-config.json to specify a specific portal to load.`);
|
|
235
|
-
let portal = null;
|
|
236
|
-
for (portal of ag.pyUserPortals) {
|
|
237
|
-
if (!arExcludedPortals.includes(portal.pyPortalLayout)) {
|
|
238
|
-
availablePortals.push(portal.pyPortalLayout);
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
break;
|
|
242
|
-
}
|
|
243
|
-
}
|
|
244
|
-
// Found operator's current access group. Use its portal
|
|
245
|
-
// eslint-disable-next-line no-console
|
|
246
|
-
console.log(`Available portals: ${availablePortals}`);
|
|
247
|
-
return availablePortals;
|
|
248
|
-
})
|
|
249
|
-
.catch(e => {
|
|
250
|
-
// eslint-disable-next-line no-console
|
|
251
|
-
console.error(e.message);
|
|
252
|
-
// check specific error if 401, and wiped out if so stored token is stale. Fetch new tokens.
|
|
253
|
-
});
|
|
254
|
-
});
|
|
255
|
-
}
|
|
256
|
-
;
|
|
257
|
-
// TODO: Cope with 401 and refresh token if possible (or just hope that it succeeds during login)
|
|
258
|
-
/**
|
|
259
|
-
* Retrieve UserInfo for current authentication service
|
|
260
|
-
*/
|
|
261
|
-
getUserInfo() {
|
|
262
|
-
if (__classPrivateFieldGet(this, _AuthManager_userInfo, "f")) {
|
|
263
|
-
return __classPrivateFieldGet(this, _AuthManager_userInfo, "f");
|
|
264
|
-
}
|
|
265
|
-
return __classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_initialize).call(this, false).then((aMgr) => {
|
|
266
|
-
return aMgr.getUserinfo(__classPrivateFieldGet(this, _AuthManager_tokenInfo, "f").access_token).then(data => {
|
|
267
|
-
__classPrivateFieldSet(this, _AuthManager_userInfo, data, "f");
|
|
268
|
-
return __classPrivateFieldGet(this, _AuthManager_userInfo, "f");
|
|
269
|
-
});
|
|
270
|
-
});
|
|
271
|
-
}
|
|
272
|
-
login(bFullReauth = false) {
|
|
273
|
-
if (this.bCustomAuth)
|
|
274
|
-
return;
|
|
275
|
-
// Needed so a redirect to login screen and back will know we are still in process of logging in
|
|
276
|
-
this.loginStart = Date.now();
|
|
277
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_initialize).call(this, !bFullReauth).then((aMgr) => {
|
|
278
|
-
const bMainRedirect = !this.noInitialRedirect;
|
|
279
|
-
const sdkConfigAuth = SdkConfigAccess.getSdkConfigAuth();
|
|
280
|
-
let sRedirectUri = sdkConfigAuth.redirectUri;
|
|
281
|
-
// If initial main redirect is OK, redirect to main page, otherwise will authorize in a popup window
|
|
282
|
-
if (bMainRedirect && !bFullReauth) {
|
|
283
|
-
// update redirect uri to be the root
|
|
284
|
-
this.updateRedirectUri(sRedirectUri);
|
|
285
|
-
aMgr.loginRedirect();
|
|
286
|
-
// Don't have token til after the redirect
|
|
287
|
-
return Promise.resolve(undefined);
|
|
89
|
+
if (!sdkConfigAuth.token) {
|
|
90
|
+
sdkConfigAuth.token = `${pegaUrl}PRRestService/oauth2/v1/token`;
|
|
288
91
|
}
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
// this.getUserInfo();
|
|
299
|
-
resolve(token.access_token);
|
|
300
|
-
}).catch((e) => {
|
|
301
|
-
// Use setter to update state
|
|
302
|
-
this.loginStart = 0;
|
|
303
|
-
// eslint-disable-next-line no-console
|
|
304
|
-
console.log(e);
|
|
305
|
-
reject(e);
|
|
306
|
-
});
|
|
307
|
-
});
|
|
92
|
+
if (!sdkConfigAuth.revoke) {
|
|
93
|
+
sdkConfigAuth.revoke = `${pegaUrl}PRRestService/oauth2/v1/revoke`;
|
|
94
|
+
}
|
|
95
|
+
if (!sdkConfigAuth.redirectUri) {
|
|
96
|
+
sdkConfigAuth.redirectUri = `${window.location.origin}${window.location.pathname}`;
|
|
97
|
+
}
|
|
98
|
+
if (!sdkConfigAuth.userinfo) {
|
|
99
|
+
const appAliasSeg = sdkConfigServer.appAlias ? `app/${sdkConfigServer.appAlias}/` : '';
|
|
100
|
+
sdkConfigAuth.userinfo = `${pegaUrl}${appAliasSeg}api/oauthclients/v1/userinfo/JSON`;
|
|
308
101
|
}
|
|
309
|
-
});
|
|
310
|
-
}
|
|
311
|
-
authRedirectCallback(href, fnLoggedInCB = null) {
|
|
312
|
-
// Get code from href and swap for token
|
|
313
|
-
const aHrefParts = href.split('?');
|
|
314
|
-
const urlParams = new URLSearchParams(aHrefParts.length > 1 ? `?${aHrefParts[1]}` : '');
|
|
315
|
-
const code = urlParams.get('code');
|
|
316
|
-
const state = urlParams.get('state');
|
|
317
|
-
// If state should also match before accepting code
|
|
318
|
-
if (code) {
|
|
319
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_initialize).call(this, false).then((aMgr) => {
|
|
320
|
-
if (aMgr.checkStateMatch(state)) {
|
|
321
|
-
aMgr.getToken(code).then(token => {
|
|
322
|
-
if (token && token.access_token) {
|
|
323
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_processTokenOnLogin).call(this, token, false);
|
|
324
|
-
// this.getUserInfo();
|
|
325
|
-
if (fnLoggedInCB) {
|
|
326
|
-
fnLoggedInCB(token.access_token);
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
});
|
|
332
|
-
}
|
|
333
|
-
else {
|
|
334
|
-
const error = urlParams.get('error');
|
|
335
|
-
const errorDesc = urlParams.get('errorDesc');
|
|
336
|
-
fnLoggedInCB(null, error, errorDesc);
|
|
337
102
|
}
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
const noMainRedirect = !loginProps.mainRedirect;
|
|
342
|
-
// We need to load state before making any decisions
|
|
343
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_loadState).call(this);
|
|
344
|
-
// If no initial redirect status of page changed...clear AuthMgr
|
|
345
|
-
const currNoMainRedirect = this.noInitialRedirect;
|
|
346
|
-
if (appName !== this.state.appName || noMainRedirect !== currNoMainRedirect) {
|
|
347
|
-
this.clear(false);
|
|
348
|
-
this.state.appName = appName;
|
|
349
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyState, "f"), this.state);
|
|
103
|
+
// Auth service alias
|
|
104
|
+
if (!sdkConfigAuth.authService) {
|
|
105
|
+
sdkConfigAuth.authService = "pega";
|
|
350
106
|
}
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
107
|
+
// Construct path to auth.html (used for case when not doing a main window redirect)
|
|
108
|
+
let sNoMainRedirectUri = sdkConfigAuth.redirectUri;
|
|
109
|
+
const nLastPathSep = sNoMainRedirectUri.lastIndexOf("/");
|
|
110
|
+
sNoMainRedirectUri = nLastPathSep !== -1 ? `${sNoMainRedirectUri.substring(0, nLastPathSep + 1)}auth.html` : `${sNoMainRedirectUri}/auth.html`;
|
|
111
|
+
const authConfig = {
|
|
112
|
+
clientId: bNoInitialRedirect ? sdkConfigAuth.mashupClientId : sdkConfigAuth.portalClientId,
|
|
113
|
+
authorizeUri: sdkConfigAuth.authorize,
|
|
114
|
+
tokenUri: sdkConfigAuth.token,
|
|
115
|
+
revokeUri: sdkConfigAuth.revoke,
|
|
116
|
+
userinfoUri: sdkConfigAuth.userinfo,
|
|
117
|
+
redirectUri: bNoInitialRedirect || usePopupForRestOfSession
|
|
118
|
+
? sNoMainRedirectUri
|
|
119
|
+
: sdkConfigAuth.redirectUri,
|
|
120
|
+
authService: sdkConfigAuth.authService,
|
|
121
|
+
appAlias: sdkConfigServer.appAlias || '',
|
|
122
|
+
useLocking: true
|
|
123
|
+
};
|
|
124
|
+
// If no clientId is specified assume not OAuth but custom auth
|
|
125
|
+
if (!authConfig.clientId) {
|
|
126
|
+
gbCustomAuth = true;
|
|
364
127
|
return;
|
|
365
128
|
}
|
|
366
|
-
if (
|
|
367
|
-
|
|
368
|
-
return __classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_initialize).call(this, false).then(() => {
|
|
369
|
-
const cbDefault = () => {
|
|
370
|
-
window.location.href = window.location.pathname;
|
|
371
|
-
};
|
|
372
|
-
// eslint-disable-next-line no-console
|
|
373
|
-
console.log('About to invoke PegaAuth authRedirectCallback');
|
|
374
|
-
this.authRedirectCallback(window.location.href, redirectDoneCB || cbDefault);
|
|
375
|
-
// });
|
|
376
|
-
});
|
|
129
|
+
if ('silentTimeout' in sdkConfigAuth) {
|
|
130
|
+
authConfig.silentTimeout = sdkConfigAuth.silentTimeout;
|
|
377
131
|
}
|
|
378
|
-
if (
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
if (this.isLoggedIn) {
|
|
382
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_fireTokenAvailable).call(this, __classPrivateFieldGet(this, _AuthManager_tokenInfo, "f"));
|
|
383
|
-
// this.getUserInfo();
|
|
384
|
-
}
|
|
385
|
-
else {
|
|
386
|
-
return this.login();
|
|
387
|
-
}
|
|
388
|
-
// });
|
|
389
|
-
});
|
|
132
|
+
if (bNoInitialRedirect && sdkConfigAuth.mashupUserIdentifier && sdkConfigAuth.mashupPassword) {
|
|
133
|
+
authConfig.userIdentifier = sdkConfigAuth.mashupUserIdentifier;
|
|
134
|
+
authConfig.password = sdkConfigAuth.mashupPassword;
|
|
390
135
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
fnClearAndResolve();
|
|
409
|
-
}).catch(err => {
|
|
136
|
+
if ('iframeLoginUI' in sdkConfigAuth) {
|
|
137
|
+
authConfig.iframeLoginUI = sdkConfigAuth.iframeLoginUI.toString().toLowerCase() === 'true';
|
|
138
|
+
}
|
|
139
|
+
// Check if sessionStorage exists (and if so if for same authorize endpoint). Otherwise, assume
|
|
140
|
+
// sessionStorage is out of date (user just edited endpoints). Else, logout required to clear
|
|
141
|
+
// sessionStorage and get other endpoints updates.
|
|
142
|
+
// Doing this as sessionIndex might have been added to this storage structure
|
|
143
|
+
let sSI = sessionStorage.getItem("rsdk_CI");
|
|
144
|
+
if (sSI) {
|
|
145
|
+
try {
|
|
146
|
+
const oSI = JSON.parse(sSI);
|
|
147
|
+
const aProps = ['authorizeUri', 'appAlias', 'clientId', 'authService', 'userIdentifier'];
|
|
148
|
+
for (let i = 0; i < aProps.length; i += 1) {
|
|
149
|
+
const prop = aProps[i];
|
|
150
|
+
const currValue = oSI[prop];
|
|
151
|
+
const newValue = authConfig[prop];
|
|
152
|
+
if (currValue !== newValue) {
|
|
410
153
|
// eslint-disable-next-line no-console
|
|
411
|
-
console.
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
.then(() => {
|
|
418
|
-
// Go to finally
|
|
419
|
-
})
|
|
420
|
-
.finally(() => {
|
|
421
|
-
fnClearAndResolve();
|
|
422
|
-
});
|
|
423
|
-
});
|
|
154
|
+
console.warn(`Clearing credentials due to mismatch for property: ${prop};` +
|
|
155
|
+
`currValue (${currValue}) does not match new desired value (${newValue})`);
|
|
156
|
+
clearAuthMgr();
|
|
157
|
+
sSI = null;
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
424
160
|
}
|
|
425
161
|
}
|
|
426
|
-
|
|
427
|
-
|
|
162
|
+
catch (e) {
|
|
163
|
+
// do nothing
|
|
428
164
|
}
|
|
429
|
-
});
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
_AuthManager_ssKeyPrefix = new WeakMap(), _AuthManager_pegaAuth = new WeakMap(), _AuthManager_ssKeyConfigInfo = new WeakMap(), _AuthManager_ssKeySessionInfo = new WeakMap(), _AuthManager_ssKeyTokenInfo = new WeakMap(), _AuthManager_ssKeyState = new WeakMap(), _AuthManager_authConfig = new WeakMap(), _AuthManager_authDynState = new WeakMap(), _AuthManager_authHeader = new WeakMap(), _AuthManager_tokenInfo = new WeakMap(), _AuthManager_userInfo = new WeakMap(), _AuthManager_usePASS = new WeakMap(), _AuthManager_pageHideAdded = new WeakMap(), _AuthManager_tokenStorage = new WeakMap(), _AuthManager_transform = new WeakMap(), _AuthManager_foldSpot = new WeakMap(), _AuthManager_instances = new WeakSet(), _AuthManager_transformAndParse = function _AuthManager_transformAndParse(ssKey, ssItem, bForce = false) {
|
|
433
|
-
let obj = {};
|
|
434
|
-
try {
|
|
435
|
-
obj = JSON.parse(__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_transformer).call(this, ssKey, ssItem, false, bForce));
|
|
436
|
-
}
|
|
437
|
-
catch (e) {
|
|
438
|
-
// fall thru and return empty object
|
|
439
|
-
}
|
|
440
|
-
return obj;
|
|
441
|
-
}, _AuthManager_getStorage = function _AuthManager_getStorage(ssKey, sAttrib = null) {
|
|
442
|
-
const ssItem = ssKey ? window.sessionStorage.getItem(ssKey) : null;
|
|
443
|
-
let obj = {};
|
|
444
|
-
if (ssItem) {
|
|
445
|
-
try {
|
|
446
|
-
obj = JSON.parse(ssItem);
|
|
447
165
|
}
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
}
|
|
451
|
-
}
|
|
452
|
-
return sAttrib ? obj[sAttrib] : obj;
|
|
453
|
-
}, _AuthManager_setStorage = function _AuthManager_setStorage(ssKey, obj) {
|
|
454
|
-
// Set storage only if obj is not empty, else delete the storage
|
|
455
|
-
if (!obj || isEmptyObject(obj)) {
|
|
456
|
-
window.sessionStorage.removeItem(ssKey);
|
|
457
|
-
}
|
|
458
|
-
else {
|
|
459
|
-
// const bClear = (ssKey === this.#ssKeyState || ssKey === this.#ssKeySessionInfo);
|
|
460
|
-
const bClear = false;
|
|
461
|
-
const sValue = bClear ? JSON.stringify(obj) : __classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_transformer).call(this, ssKey, JSON.stringify(obj), true);
|
|
462
|
-
window.sessionStorage.setItem(ssKey, sValue);
|
|
463
|
-
}
|
|
464
|
-
}, _AuthManager_calcFoldSpot = function _AuthManager_calcFoldSpot(s) {
|
|
465
|
-
const nOffset = 1;
|
|
466
|
-
const sChar = s.length > nOffset ? s.charAt(nOffset) : '2';
|
|
467
|
-
const nSpot = parseInt(sChar, 10);
|
|
468
|
-
__classPrivateFieldSet(this, _AuthManager_foldSpot, Number.isNaN(nSpot) ? 2 : (nSpot % 4) + 2, "f");
|
|
469
|
-
}, _AuthManager_transformer = function _AuthManager_transformer(ssKey, s, bIn, bForce = false) {
|
|
470
|
-
const bTransform = bForce || __classPrivateFieldGet(this, _AuthManager_transform, "f");
|
|
471
|
-
const fnFold = (x) => {
|
|
472
|
-
const nLen = x.length;
|
|
473
|
-
const nExtra = nLen % __classPrivateFieldGet(this, _AuthManager_foldSpot, "f");
|
|
474
|
-
const nOffset = Math.floor(nLen / __classPrivateFieldGet(this, _AuthManager_foldSpot, "f")) + nExtra;
|
|
475
|
-
const nRem = x.length - nOffset;
|
|
476
|
-
return x.substring(bIn ? nOffset : nRem) + x.substring(0, bIn ? nOffset : nRem);
|
|
477
|
-
};
|
|
478
|
-
const bTknInfo = ssKey === __classPrivateFieldGet(this, _AuthManager_ssKeyTokenInfo, "f");
|
|
479
|
-
if (bTknInfo && !bIn && bTransform) {
|
|
480
|
-
s = window.atob(fnFold(s));
|
|
481
|
-
}
|
|
482
|
-
// eslint-disable-next-line no-nested-ternary
|
|
483
|
-
let result = bTransform ? (bIn ? window.btoa(s) : window.atob(s)) : s;
|
|
484
|
-
if (bTknInfo && bIn && bTransform) {
|
|
485
|
-
result = fnFold(window.btoa(result));
|
|
486
|
-
}
|
|
487
|
-
return result;
|
|
488
|
-
}, _AuthManager_doPageHide = function _AuthManager_doPageHide() {
|
|
489
|
-
// Safari and particularly Safari on mobile devices doesn't seem to load this on first main redirect or
|
|
490
|
-
// reliably, so have moved to having PegaAuth manage writing all state props to session storage
|
|
491
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyState, "f"), this.state);
|
|
492
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeySessionInfo, "f"), __classPrivateFieldGet(this, _AuthManager_authDynState, "f"));
|
|
493
|
-
// If tokenStorage was always, token would already be there
|
|
494
|
-
if (__classPrivateFieldGet(this, _AuthManager_tokenStorage, "f") === 'temp') {
|
|
495
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyTokenInfo, "f"), __classPrivateFieldGet(this, _AuthManager_tokenInfo, "f"));
|
|
496
|
-
}
|
|
497
|
-
}, _AuthManager_loadState = function _AuthManager_loadState() {
|
|
498
|
-
// Note: State storage key doesn't have a client id associated with it
|
|
499
|
-
const oState = __classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_getStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyState, "f"));
|
|
500
|
-
if (oState) {
|
|
501
|
-
Object.assign(this.state, oState);
|
|
502
|
-
if (this.state.sfx) {
|
|
503
|
-
// Setter sets up the ssKey values as well
|
|
504
|
-
this.keySuffix = this.state.sfx;
|
|
505
|
-
}
|
|
506
|
-
}
|
|
507
|
-
}, _AuthManager_doOnLoad = function _AuthManager_doOnLoad() {
|
|
508
|
-
if (!this.onLoadDone) {
|
|
509
|
-
// This authConfig state doesn't collide with other calculated static state...so load it first
|
|
510
|
-
// Note: transform setting will have already been loaded into #authConfig at this point
|
|
511
|
-
__classPrivateFieldSet(this, _AuthManager_authDynState, __classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_getStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeySessionInfo, "f")), "f");
|
|
512
|
-
__classPrivateFieldSet(this, _AuthManager_tokenInfo, __classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_getStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyTokenInfo, "f")), "f");
|
|
513
|
-
if (__classPrivateFieldGet(this, _AuthManager_tokenStorage, "f") !== 'always') {
|
|
514
|
-
sessionStorage.removeItem(__classPrivateFieldGet(this, _AuthManager_ssKeyTokenInfo, "f"));
|
|
515
|
-
sessionStorage.removeItem(__classPrivateFieldGet(this, _AuthManager_ssKeySessionInfo, "f"));
|
|
166
|
+
if (!sSI || bInit) {
|
|
167
|
+
sessionStorage.setItem('rsdk_CI', JSON.stringify(authConfig));
|
|
516
168
|
}
|
|
517
|
-
|
|
518
|
-
}
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
if (__classPrivateFieldGet(this, _AuthManager_tokenStorage, "f") === 'always') {
|
|
522
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeySessionInfo, "f"), __classPrivateFieldGet(this, _AuthManager_authDynState, "f"));
|
|
523
|
-
}
|
|
524
|
-
}, _AuthManager_initialize =
|
|
525
|
-
/**
|
|
526
|
-
* Initialize OAuth config structure members and create authMgr instance (if necessary)
|
|
527
|
-
* bNew - governs whether to create new sessionStorage or load existing one
|
|
528
|
-
*/
|
|
529
|
-
async function _AuthManager_initialize(bNew = false) {
|
|
169
|
+
authMgr = new PegaAuth('rsdk_CI');
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
const getAuthMgr = (bInit) => {
|
|
530
173
|
return new Promise((resolve) => {
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
if (pegaUrl) {
|
|
540
|
-
// Cope with trailing slash being present
|
|
541
|
-
if (!pegaUrl.endsWith('/')) {
|
|
542
|
-
pegaUrl += '/';
|
|
543
|
-
}
|
|
544
|
-
if (!sdkConfigAuth.authorize) {
|
|
545
|
-
sdkConfigAuth.authorize = `${pegaUrl}PRRestService/oauth2/v1/authorize`;
|
|
546
|
-
}
|
|
547
|
-
if (!sdkConfigAuth.token) {
|
|
548
|
-
sdkConfigAuth.token = `${pegaUrl}PRRestService/oauth2/v1/token`;
|
|
549
|
-
}
|
|
550
|
-
if (!sdkConfigAuth.revoke) {
|
|
551
|
-
sdkConfigAuth.revoke = `${pegaUrl}PRRestService/oauth2/v1/revoke`;
|
|
552
|
-
}
|
|
553
|
-
if (!sdkConfigAuth.redirectUri) {
|
|
554
|
-
sdkConfigAuth.redirectUri = `${window.location.origin}${window.location.pathname}`;
|
|
555
|
-
}
|
|
556
|
-
if (!sdkConfigAuth.userinfo) {
|
|
557
|
-
const appAliasSeg = sdkConfigServer.appAlias ? `app/${sdkConfigServer.appAlias}/` : '';
|
|
558
|
-
sdkConfigAuth.userinfo = `${pegaUrl}${appAliasSeg}api/oauthclients/v1/userinfo/JSON`;
|
|
559
|
-
}
|
|
560
|
-
}
|
|
561
|
-
// Auth service alias
|
|
562
|
-
if (!sdkConfigAuth.authService) {
|
|
563
|
-
sdkConfigAuth.authService = "pega";
|
|
564
|
-
}
|
|
565
|
-
// mashupAuthService provides way to have a different auth service for embedded
|
|
566
|
-
if (!sdkConfigAuth.mashupAuthService) {
|
|
567
|
-
sdkConfigAuth.mashupAuthService = sdkConfigAuth.authService;
|
|
568
|
-
}
|
|
569
|
-
// Construct path to auth.html (used for case when not doing a main window redirect)
|
|
570
|
-
let sNoMainRedirectUri = sdkConfigAuth.redirectUri;
|
|
571
|
-
const nLastPathSep = sNoMainRedirectUri.lastIndexOf("/");
|
|
572
|
-
sNoMainRedirectUri = nLastPathSep !== -1 ? `${sNoMainRedirectUri.substring(0, nLastPathSep + 1)}auth.html` : `${sNoMainRedirectUri}/auth.html`;
|
|
573
|
-
const portalGrantType = sdkConfigAuth.portalGrantType || 'authCode';
|
|
574
|
-
const mashupGrantType = sdkConfigAuth.mashupGrantType || 'authCode';
|
|
575
|
-
const pegaAuthConfig = {
|
|
576
|
-
clientId: bNoInitialRedirect ? sdkConfigAuth.mashupClientId : sdkConfigAuth.portalClientId,
|
|
577
|
-
grantType: bNoInitialRedirect ? mashupGrantType : portalGrantType,
|
|
578
|
-
tokenUri: sdkConfigAuth.token,
|
|
579
|
-
revokeUri: sdkConfigAuth.revoke,
|
|
580
|
-
userinfoUri: sdkConfigAuth.userinfo,
|
|
581
|
-
authService: bNoInitialRedirect ? sdkConfigAuth.mashupAuthService : sdkConfigAuth.authService,
|
|
582
|
-
appAlias: sdkConfigServer.appAlias || '',
|
|
583
|
-
useLocking: true
|
|
584
|
-
};
|
|
585
|
-
// Invoke keySuffix setter
|
|
586
|
-
// Was using pegaAuthConfig.clientId as key but more secure to just use a random string as getting
|
|
587
|
-
// both a clientId and the refresh token could yield a new access token.
|
|
588
|
-
// Suffix is so we might in future move to an array of suffixes based on the appName, so might store
|
|
589
|
-
// both portal and embedded tokens/session info at same time
|
|
590
|
-
if (!this.state?.sfx) {
|
|
591
|
-
// Just using a random number to make the suffix unique on each session
|
|
592
|
-
this.keySuffix = `${Math.ceil(Math.random() * 100000000)}`;
|
|
593
|
-
}
|
|
594
|
-
__classPrivateFieldGet(this, _AuthManager_authConfig, "f").transform = sdkConfigAuth.transform !== undefined ? sdkConfigAuth.transform : __classPrivateFieldGet(this, _AuthManager_transform, "f");
|
|
595
|
-
// Using property in class as authConfig may be empty at times
|
|
596
|
-
__classPrivateFieldSet(this, _AuthManager_transform, __classPrivateFieldGet(this, _AuthManager_authConfig, "f").transform, "f");
|
|
597
|
-
if (sdkConfigAuth.tokenStorage !== undefined) {
|
|
598
|
-
__classPrivateFieldSet(this, _AuthManager_tokenStorage, sdkConfigAuth.tokenStorage, "f");
|
|
599
|
-
}
|
|
600
|
-
// Get latest state once client ids, transform and tokenStorage have been established
|
|
601
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_doOnLoad).call(this);
|
|
602
|
-
// If no clientId is specified assume not OAuth but custom auth
|
|
603
|
-
if (!pegaAuthConfig.clientId) {
|
|
604
|
-
this.bCustomAuth = true;
|
|
605
|
-
return;
|
|
606
|
-
}
|
|
607
|
-
if (pegaAuthConfig.grantType === 'authCode') {
|
|
608
|
-
const authCodeProps = {
|
|
609
|
-
authorizeUri: sdkConfigAuth.authorize,
|
|
610
|
-
// If we have already specified a redirect on the authorize redirect, we need to continue to use that
|
|
611
|
-
// on token endpoint
|
|
612
|
-
redirectUri: bNoInitialRedirect || this.usePopupForRestOfSession ? sNoMainRedirectUri : sdkConfigAuth.redirectUri
|
|
613
|
-
};
|
|
614
|
-
if ('silentTimeout' in sdkConfigAuth) {
|
|
615
|
-
authCodeProps.silentTimeout = sdkConfigAuth.silentTimeout;
|
|
616
|
-
}
|
|
617
|
-
if (bNoInitialRedirect && pegaAuthConfig.authService === 'pega' &&
|
|
618
|
-
sdkConfigAuth.mashupUserIdentifier && sdkConfigAuth.mashupPassword) {
|
|
619
|
-
authCodeProps.userIdentifier = sdkConfigAuth.mashupUserIdentifier;
|
|
620
|
-
authCodeProps.password = sdkConfigAuth.mashupPassword;
|
|
621
|
-
}
|
|
622
|
-
if ('iframeLoginUI' in sdkConfigAuth) {
|
|
623
|
-
authCodeProps.iframeLoginUI = sdkConfigAuth.iframeLoginUI.toString().toLowerCase() === 'true';
|
|
624
|
-
}
|
|
625
|
-
Object.assign(pegaAuthConfig, authCodeProps);
|
|
626
|
-
}
|
|
627
|
-
Object.assign(__classPrivateFieldGet(this, _AuthManager_authConfig, "f"), pegaAuthConfig);
|
|
628
|
-
// Add an on page hide handler to write out key properties that we want to survive a
|
|
629
|
-
// browser reload
|
|
630
|
-
if (!__classPrivateFieldGet(this, _AuthManager_pageHideAdded, "f") && (!__classPrivateFieldGet(this, _AuthManager_usePASS, "f") || __classPrivateFieldGet(this, _AuthManager_tokenStorage, "f") !== 'always')) {
|
|
631
|
-
window.addEventListener('pagehide', __classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_doPageHide).bind(this));
|
|
632
|
-
__classPrivateFieldSet(this, _AuthManager_pageHideAdded, true, "f");
|
|
633
|
-
}
|
|
634
|
-
// Initialise PegaAuth OAuth 2.0 client library
|
|
635
|
-
if (__classPrivateFieldGet(this, _AuthManager_usePASS, "f")) {
|
|
636
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyConfigInfo, "f"), __classPrivateFieldGet(this, _AuthManager_authConfig, "f"));
|
|
637
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeySessionInfo, "f"), __classPrivateFieldGet(this, _AuthManager_authDynState, "f"));
|
|
638
|
-
__classPrivateFieldSet(this, _AuthManager_pegaAuth, new PegaAuth(__classPrivateFieldGet(this, _AuthManager_ssKeyConfigInfo, "f"), __classPrivateFieldGet(this, _AuthManager_ssKeySessionInfo, "f")), "f");
|
|
639
|
-
}
|
|
640
|
-
else {
|
|
641
|
-
__classPrivateFieldGet(this, _AuthManager_authConfig, "f").fnDynStateChangedCB = __classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_doAuthDynStateChanged).bind(this);
|
|
642
|
-
__classPrivateFieldSet(this, _AuthManager_pegaAuth, new PegaAuth(__classPrivateFieldGet(this, _AuthManager_authConfig, "f"), __classPrivateFieldGet(this, _AuthManager_authDynState, "f")), "f");
|
|
643
|
-
}
|
|
644
|
-
this.initInProgress = false;
|
|
645
|
-
resolve(__classPrivateFieldGet(this, _AuthManager_pegaAuth, "f"));
|
|
646
|
-
});
|
|
647
|
-
}
|
|
648
|
-
else {
|
|
649
|
-
let idNextCheck;
|
|
650
|
-
const fnCheckForAuthMgr = () => {
|
|
651
|
-
if (!this.initInProgress) {
|
|
652
|
-
if (idNextCheck) {
|
|
653
|
-
clearInterval(idNextCheck);
|
|
654
|
-
}
|
|
655
|
-
resolve(__classPrivateFieldGet(this, _AuthManager_pegaAuth, "f"));
|
|
174
|
+
let idNextCheck = null;
|
|
175
|
+
const fnCheckForAuthMgr = () => {
|
|
176
|
+
if (PegaAuth && !authMgr) {
|
|
177
|
+
initOAuth(bInit);
|
|
178
|
+
}
|
|
179
|
+
if (authMgr) {
|
|
180
|
+
if (idNextCheck) {
|
|
181
|
+
clearInterval(idNextCheck);
|
|
656
182
|
}
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
183
|
+
return resolve(authMgr);
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
fnCheckForAuthMgr();
|
|
187
|
+
idNextCheck = setInterval(fnCheckForAuthMgr, 10);
|
|
661
188
|
});
|
|
662
|
-
}
|
|
189
|
+
};
|
|
190
|
+
export const sdkGetAuthHeader = () => {
|
|
191
|
+
return sessionStorage.getItem("rsdk_AH");
|
|
192
|
+
};
|
|
193
|
+
/**
|
|
194
|
+
* Initiate the process to get the Constellation bootstrap shell loaded and initialized
|
|
195
|
+
* @param {Object} authConfig
|
|
196
|
+
* @param {Object} tokenInfo
|
|
197
|
+
* @param {Function} authTokenUpdated - callback invoked when Constellation JS Engine silently updates
|
|
198
|
+
* an expired access_token
|
|
199
|
+
* @param {Function} fnReauth - callback invoked when a full or custom reauth is needed
|
|
200
|
+
*/
|
|
201
|
+
const constellationInit = (authConfig, tokenInfo, authTokenUpdated, fnReauth) => {
|
|
663
202
|
const constellationBootConfig = {};
|
|
664
203
|
const sdkConfigServer = SdkConfigAccess.getSdkConfigServer();
|
|
665
204
|
// Set up constellationConfig with data that bootstrapWithAuthHeader expects
|
|
@@ -684,7 +223,7 @@ async function _AuthManager_initialize(bNew = false) {
|
|
|
684
223
|
tokenInfo,
|
|
685
224
|
// Set whether we want constellation to try to do a full re-Auth or not ()
|
|
686
225
|
// true doesn't seem to be working in SDK scenario so always passing false for now
|
|
687
|
-
popupReauth: false /* !
|
|
226
|
+
popupReauth: false /* !authNoRedirect() */,
|
|
688
227
|
client_id: authConfig.clientId,
|
|
689
228
|
authentication_service: authConfig.authService,
|
|
690
229
|
redirect_uri: authConfig.redirectUri,
|
|
@@ -694,19 +233,19 @@ async function _AuthManager_initialize(bNew = false) {
|
|
|
694
233
|
revoke: authConfig.revokeUri
|
|
695
234
|
},
|
|
696
235
|
// TODO: setup callback so we can update own storage
|
|
697
|
-
onTokenRetrieval:
|
|
236
|
+
onTokenRetrieval: authTokenUpdated
|
|
698
237
|
};
|
|
699
238
|
}
|
|
700
239
|
else {
|
|
701
|
-
constellationBootConfig.authorizationHeader =
|
|
240
|
+
constellationBootConfig.authorizationHeader = sdkGetAuthHeader();
|
|
702
241
|
}
|
|
703
242
|
// Turn off dynamic load components (should be able to do it here instead of after load?)
|
|
704
243
|
constellationBootConfig.dynamicLoadComponents = false;
|
|
705
|
-
if (
|
|
244
|
+
if (gbC11NBootstrapInProgress) {
|
|
706
245
|
return;
|
|
707
246
|
}
|
|
708
247
|
else {
|
|
709
|
-
|
|
248
|
+
gbC11NBootstrapInProgress = true;
|
|
710
249
|
}
|
|
711
250
|
// Note that staticContentServerUrl already ends with a slash (see above), so no slash added.
|
|
712
251
|
// In order to have this import succeed and to have it done with the webpackIgnore magic comment tag.
|
|
@@ -719,8 +258,8 @@ async function _AuthManager_initialize(bNew = false) {
|
|
|
719
258
|
window.myLoadDefaultPortal = bootstrapShell.loadDefaultPortal;
|
|
720
259
|
bootstrapShell.bootstrapWithAuthHeader(constellationBootConfig, 'pega-root').then(() => {
|
|
721
260
|
// eslint-disable-next-line no-console
|
|
722
|
-
console.log('
|
|
723
|
-
|
|
261
|
+
console.log('Bootstrap successful!');
|
|
262
|
+
gbC11NBootstrapInProgress = false;
|
|
724
263
|
// Setup listener for the reauth event
|
|
725
264
|
if (tokenInfo) {
|
|
726
265
|
PCore.getPubSubUtils().subscribe(PCore.getConstants().PUB_SUB_EVENTS.EVENT_FULL_REAUTH, fnReauth, "authFullReauth");
|
|
@@ -739,94 +278,175 @@ async function _AuthManager_initialize(bNew = false) {
|
|
|
739
278
|
.catch(e => {
|
|
740
279
|
// Assume error caught is because token is not valid and attempt a full reauth
|
|
741
280
|
// eslint-disable-next-line no-console
|
|
742
|
-
console.error(`
|
|
743
|
-
|
|
281
|
+
console.error(`Constellation JS Engine bootstrap failed. ${e}`);
|
|
282
|
+
gbC11NBootstrapInProgress = false;
|
|
744
283
|
fnReauth();
|
|
745
284
|
});
|
|
746
285
|
});
|
|
747
286
|
/* Ends here */
|
|
748
|
-
}
|
|
749
|
-
|
|
750
|
-
|
|
287
|
+
};
|
|
288
|
+
export const updateLoginStatus = () => {
|
|
289
|
+
const sAuthHdr = sdkGetAuthHeader();
|
|
290
|
+
gbLoggedIn = sAuthHdr && sAuthHdr.length > 0;
|
|
291
|
+
};
|
|
292
|
+
const getCurrentTokens = () => {
|
|
293
|
+
let tokens = null;
|
|
294
|
+
const sTI = sessionStorage.getItem('rsdk_TI');
|
|
295
|
+
if (sTI) {
|
|
296
|
+
try {
|
|
297
|
+
tokens = JSON.parse(sTI);
|
|
298
|
+
}
|
|
299
|
+
catch (e) {
|
|
300
|
+
tokens = null;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return tokens;
|
|
304
|
+
};
|
|
305
|
+
const fireTokenAvailable = (token, bLoadC11N = true) => {
|
|
751
306
|
if (!token) {
|
|
752
307
|
// This is used on page reload to load the token from sessionStorage and carry on
|
|
753
|
-
token =
|
|
308
|
+
token = getCurrentTokens();
|
|
754
309
|
if (!token) {
|
|
755
310
|
return;
|
|
756
311
|
}
|
|
757
312
|
}
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
313
|
+
sessionStorage.setItem('rsdk_AH', `${token.token_type} ${token.access_token}`);
|
|
314
|
+
updateLoginStatus();
|
|
315
|
+
// gbLoggedIn is getting updated in updateLoginStatus
|
|
316
|
+
gbLoggedIn = true;
|
|
317
|
+
gbLoginInProgress = false;
|
|
318
|
+
sessionStorage.removeItem("rsdk_loggingIn");
|
|
319
|
+
forcePopupForReauths(true);
|
|
320
|
+
const sSI = sessionStorage.getItem("rsdk_CI");
|
|
321
|
+
let authConfig = null;
|
|
322
|
+
if (sSI) {
|
|
323
|
+
try {
|
|
324
|
+
authConfig = JSON.parse(sSI);
|
|
325
|
+
}
|
|
326
|
+
catch (e) {
|
|
327
|
+
// do nothing
|
|
328
|
+
}
|
|
761
329
|
}
|
|
762
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_updateLoginStatus).call(this);
|
|
763
|
-
// this.isLoggedIn is getting updated in updateLoginStatus
|
|
764
|
-
this.isLoggedIn = true;
|
|
765
|
-
this.loginStart = 0;
|
|
766
|
-
this.usePopupForRestOfSession = true;
|
|
767
330
|
if (!window.PCore && bLoadC11N) {
|
|
768
|
-
|
|
331
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
332
|
+
constellationInit(authConfig, token, authTokenUpdated, authFullReauth);
|
|
769
333
|
}
|
|
770
334
|
/*
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
}
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
__classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_setStorage).call(this, __classPrivateFieldGet(this, _AuthManager_ssKeyTokenInfo, "f"), __classPrivateFieldGet(this, _AuthManager_tokenInfo, "f"));
|
|
779
|
-
}
|
|
335
|
+
// Create and dispatch the SdkLoggedIn event to trigger constellationInit
|
|
336
|
+
const event = new CustomEvent('SdkLoggedIn', { detail: { authConfig, tokenInfo: token } });
|
|
337
|
+
document.dispatchEvent(event);
|
|
338
|
+
*/
|
|
339
|
+
};
|
|
340
|
+
const processTokenOnLogin = (token, bLoadC11N = true) => {
|
|
341
|
+
sessionStorage.setItem("rsdk_TI", JSON.stringify(token));
|
|
780
342
|
if (window.PCore) {
|
|
781
|
-
PCore.getAuthUtils().setTokens(token);
|
|
343
|
+
window.PCore.getAuthUtils().setTokens(token);
|
|
782
344
|
}
|
|
783
345
|
else {
|
|
784
|
-
|
|
785
|
-
}
|
|
786
|
-
}, _AuthManager_updateLoginStatus = function _AuthManager_updateLoginStatus() {
|
|
787
|
-
if (!__classPrivateFieldGet(this, _AuthManager_authHeader, "f") && __classPrivateFieldGet(this, _AuthManager_tokenInfo, "f")?.access_token) {
|
|
788
|
-
// Use setter to set this securely
|
|
789
|
-
this.authHeader = `${__classPrivateFieldGet(this, _AuthManager_tokenInfo, "f").token_type} ${__classPrivateFieldGet(this, _AuthManager_tokenInfo, "f").access_token}`;
|
|
346
|
+
fireTokenAvailable(token, bLoadC11N);
|
|
790
347
|
}
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
const
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
348
|
+
};
|
|
349
|
+
const updateRedirectUri = (aMgr, sRedirectUri) => {
|
|
350
|
+
const sSI = sessionStorage.getItem("rsdk_CI");
|
|
351
|
+
let authConfig = null;
|
|
352
|
+
if (sSI) {
|
|
353
|
+
try {
|
|
354
|
+
authConfig = JSON.parse(sSI);
|
|
355
|
+
}
|
|
356
|
+
catch (e) {
|
|
357
|
+
// do nothing
|
|
800
358
|
}
|
|
801
359
|
}
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
806
|
-
login(true);
|
|
807
|
-
}
|
|
808
|
-
else {
|
|
809
|
-
// Fire the SdkFullReauth event to indicate a new token is needed (PCore.getAuthUtils.setTokens method
|
|
810
|
-
// should be used to communicate the new token to Constellation JS Engine.
|
|
811
|
-
const event = new CustomEvent('SdkFullReauth', { detail: __classPrivateFieldGet(this, _AuthManager_instances, "m", _AuthManager_processTokenOnLogin).bind(this) });
|
|
812
|
-
document.dispatchEvent(event);
|
|
813
|
-
}
|
|
814
|
-
}, _AuthManager_authTokenUpdated = function _AuthManager_authTokenUpdated(tokenInfo) {
|
|
815
|
-
__classPrivateFieldSet(this, _AuthManager_tokenInfo, tokenInfo, "f");
|
|
360
|
+
authConfig.redirectUri = sRedirectUri;
|
|
361
|
+
sessionStorage.setItem("rsdk_CI", JSON.stringify(authConfig));
|
|
362
|
+
aMgr.reloadConfig();
|
|
816
363
|
};
|
|
817
|
-
const gAuthMgr = new AuthManager();
|
|
818
364
|
// TODO: Cope with 401 and refresh token if possible (or just hope that it succeeds during login)
|
|
819
365
|
/**
|
|
820
366
|
* Retrieve UserInfo for current authentication service
|
|
821
367
|
*/
|
|
822
|
-
export const getUserInfo = () => {
|
|
823
|
-
|
|
368
|
+
export const getUserInfo = (bUseSS = true) => {
|
|
369
|
+
const ssUserInfo = sessionStorage.getItem("rsdk_UI");
|
|
370
|
+
let userInfo = null;
|
|
371
|
+
if (bUseSS && ssUserInfo) {
|
|
372
|
+
try {
|
|
373
|
+
userInfo = JSON.parse(ssUserInfo);
|
|
374
|
+
return Promise.resolve(userInfo);
|
|
375
|
+
}
|
|
376
|
+
catch (e) {
|
|
377
|
+
// do nothing
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
getAuthMgr(false).then((aMgr) => {
|
|
381
|
+
const tokenInfo = getCurrentTokens();
|
|
382
|
+
return aMgr.getUserinfo(tokenInfo.access_token).then(data => {
|
|
383
|
+
userInfo = data;
|
|
384
|
+
if (userInfo) {
|
|
385
|
+
sessionStorage.setItem("rsdk_UI", JSON.stringify(userInfo));
|
|
386
|
+
}
|
|
387
|
+
else {
|
|
388
|
+
sessionStorage.removeItem("rsdk_UI");
|
|
389
|
+
}
|
|
390
|
+
return Promise.resolve(userInfo);
|
|
391
|
+
});
|
|
392
|
+
});
|
|
824
393
|
};
|
|
825
394
|
export const login = (bFullReauth = false) => {
|
|
826
|
-
|
|
395
|
+
if (gbCustomAuth)
|
|
396
|
+
return;
|
|
397
|
+
gbLoginInProgress = true;
|
|
398
|
+
// Needed so a redirect to login screen and back will know we are still in process of logging in
|
|
399
|
+
sessionStorage.setItem("rsdk_loggingIn", `${Date.now()}`);
|
|
400
|
+
getAuthMgr(!bFullReauth).then((aMgr) => {
|
|
401
|
+
const bMainRedirect = !authNoRedirect();
|
|
402
|
+
const sdkConfigAuth = SdkConfigAccess.getSdkConfigAuth();
|
|
403
|
+
let sRedirectUri = sdkConfigAuth.redirectUri;
|
|
404
|
+
// If initial main redirect is OK, redirect to main page, otherwise will authorize in a popup window
|
|
405
|
+
if (bMainRedirect && !bFullReauth) {
|
|
406
|
+
// update redirect uri to be the root
|
|
407
|
+
updateRedirectUri(aMgr, sRedirectUri);
|
|
408
|
+
aMgr.loginRedirect();
|
|
409
|
+
// Don't have token til after the redirect
|
|
410
|
+
return Promise.resolve(undefined);
|
|
411
|
+
}
|
|
412
|
+
else {
|
|
413
|
+
// Construct path to redirect uri
|
|
414
|
+
const nLastPathSep = sRedirectUri.lastIndexOf("/");
|
|
415
|
+
sRedirectUri = nLastPathSep !== -1 ? `${sRedirectUri.substring(0, nLastPathSep + 1)}auth.html` : `${sRedirectUri}/auth.html`;
|
|
416
|
+
// Set redirectUri to static auth.html
|
|
417
|
+
updateRedirectUri(aMgr, sRedirectUri);
|
|
418
|
+
return new Promise((resolve, reject) => {
|
|
419
|
+
aMgr.login().then(token => {
|
|
420
|
+
processTokenOnLogin(token);
|
|
421
|
+
// getUserInfo();
|
|
422
|
+
resolve(token.access_token);
|
|
423
|
+
}).catch((e) => {
|
|
424
|
+
gbLoginInProgress = false;
|
|
425
|
+
sessionStorage.removeItem("rsdk_loggingIn");
|
|
426
|
+
// eslint-disable-next-line no-console
|
|
427
|
+
console.log(e);
|
|
428
|
+
reject(e);
|
|
429
|
+
});
|
|
430
|
+
});
|
|
431
|
+
}
|
|
432
|
+
});
|
|
827
433
|
};
|
|
828
434
|
export const authRedirectCallback = (href, fnLoggedInCB = null) => {
|
|
829
|
-
|
|
435
|
+
// Get code from href and swap for token
|
|
436
|
+
const aHrefParts = href.split('?');
|
|
437
|
+
const urlParams = new URLSearchParams(aHrefParts.length > 1 ? `?${aHrefParts[1]}` : '');
|
|
438
|
+
const code = urlParams.get("code");
|
|
439
|
+
getAuthMgr(false).then((aMgr) => {
|
|
440
|
+
aMgr.getToken(code).then(token => {
|
|
441
|
+
if (token && token.access_token) {
|
|
442
|
+
processTokenOnLogin(token, false);
|
|
443
|
+
// getUserInfo();
|
|
444
|
+
if (fnLoggedInCB) {
|
|
445
|
+
fnLoggedInCB(token.access_token);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
});
|
|
449
|
+
});
|
|
830
450
|
};
|
|
831
451
|
/**
|
|
832
452
|
* Silent or visible login based on login status
|
|
@@ -835,30 +455,138 @@ export const authRedirectCallback = (href, fnLoggedInCB = null) => {
|
|
|
835
455
|
* away from the main page
|
|
836
456
|
* @param {boolean} deferLogin - defer logging in (if not already authenticated)
|
|
837
457
|
*/
|
|
838
|
-
export const loginIfNecessary = (
|
|
839
|
-
|
|
458
|
+
export const loginIfNecessary = (appName, noMainRedirect = false, deferLogin = false) => {
|
|
459
|
+
// If no initial redirect status of page changed...clearAuthMgr
|
|
460
|
+
const currNoMainRedirect = authNoRedirect();
|
|
461
|
+
const currAppName = sessionStorage.getItem("rsdk_appName");
|
|
462
|
+
if (appName !== currAppName || noMainRedirect !== currNoMainRedirect) {
|
|
463
|
+
clearAuthMgr();
|
|
464
|
+
sessionStorage.setItem("rsdk_appName", appName);
|
|
465
|
+
}
|
|
466
|
+
setNoInitialRedirect(noMainRedirect);
|
|
467
|
+
// If custom auth no need to do any OAuth logic
|
|
468
|
+
if (gbCustomAuth) {
|
|
469
|
+
if (!window.PCore) {
|
|
470
|
+
// eslint-disable-next-line @typescript-eslint/no-use-before-define
|
|
471
|
+
constellationInit(null, null, null, authCustomReauth);
|
|
472
|
+
}
|
|
473
|
+
return;
|
|
474
|
+
}
|
|
475
|
+
if (window.location.href.indexOf("?code") !== -1) {
|
|
476
|
+
// initialize authMgr
|
|
477
|
+
initOAuth(false);
|
|
478
|
+
return getAuthMgr(false).then(() => {
|
|
479
|
+
authRedirectCallback(window.location.href, () => {
|
|
480
|
+
window.location.href = window.location.pathname;
|
|
481
|
+
});
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
if (!deferLogin && (!gbLoginInProgress || isLoginExpired())) {
|
|
485
|
+
initOAuth(false);
|
|
486
|
+
return getAuthMgr(false).then(() => {
|
|
487
|
+
updateLoginStatus();
|
|
488
|
+
if (gbLoggedIn) {
|
|
489
|
+
fireTokenAvailable(getCurrentTokens());
|
|
490
|
+
// getUserInfo();
|
|
491
|
+
}
|
|
492
|
+
else {
|
|
493
|
+
return login();
|
|
494
|
+
}
|
|
495
|
+
});
|
|
496
|
+
}
|
|
840
497
|
};
|
|
841
498
|
export const getHomeUrl = () => {
|
|
842
499
|
return `${window.location.origin}/`;
|
|
843
500
|
};
|
|
844
501
|
export const authIsMainRedirect = () => {
|
|
845
502
|
// Even with main redirect, we want to use it only for the first login (so it doesn't wipe out any state or the reload)
|
|
846
|
-
return !
|
|
503
|
+
return !authNoRedirect() && !usePopupForRestOfSession;
|
|
847
504
|
};
|
|
848
|
-
|
|
849
|
-
|
|
505
|
+
// Passive update where just session storage is updated so can be used on a window refresh
|
|
506
|
+
export const authTokenUpdated = (tokenInfo) => {
|
|
507
|
+
sessionStorage.setItem("rsdk_TI", JSON.stringify(tokenInfo));
|
|
850
508
|
};
|
|
851
509
|
export const logout = () => {
|
|
852
|
-
|
|
510
|
+
sessionStorage.removeItem('rsdk_portalName');
|
|
511
|
+
return new Promise((resolve) => {
|
|
512
|
+
const fnClearAndResolve = () => {
|
|
513
|
+
clearAuthMgr();
|
|
514
|
+
const event = new Event('SdkLoggedOut');
|
|
515
|
+
document.dispatchEvent(event);
|
|
516
|
+
resolve();
|
|
517
|
+
};
|
|
518
|
+
if (gbCustomAuth) {
|
|
519
|
+
sessionStorage.removeItem("rsdk_AH");
|
|
520
|
+
fnClearAndResolve();
|
|
521
|
+
return;
|
|
522
|
+
}
|
|
523
|
+
const tokenInfo = getCurrentTokens();
|
|
524
|
+
if (tokenInfo && tokenInfo.access_token) {
|
|
525
|
+
if (window.PCore) {
|
|
526
|
+
window.PCore.getAuthUtils().revokeTokens().then(() => {
|
|
527
|
+
fnClearAndResolve();
|
|
528
|
+
}).catch(err => {
|
|
529
|
+
// eslint-disable-next-line no-console
|
|
530
|
+
console.log("Error:", err?.message);
|
|
531
|
+
});
|
|
532
|
+
}
|
|
533
|
+
else {
|
|
534
|
+
getAuthMgr(false).then((aMgr) => {
|
|
535
|
+
aMgr.revokeTokens(tokenInfo.access_token, tokenInfo.refresh_token)
|
|
536
|
+
.then(() => {
|
|
537
|
+
// Go to finally
|
|
538
|
+
})
|
|
539
|
+
.finally(() => {
|
|
540
|
+
fnClearAndResolve();
|
|
541
|
+
});
|
|
542
|
+
});
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
else {
|
|
546
|
+
fnClearAndResolve();
|
|
547
|
+
}
|
|
548
|
+
});
|
|
549
|
+
};
|
|
550
|
+
// Callback routine for custom event to ask for updated tokens
|
|
551
|
+
export const authUpdateTokens = (token) => {
|
|
552
|
+
processTokenOnLogin(token);
|
|
553
|
+
};
|
|
554
|
+
// Initiate a full OAuth re-authorization (any refresh token has also expired).
|
|
555
|
+
export const authFullReauth = () => {
|
|
556
|
+
const bHandleHere = true; // Other alternative is to raise an event and have someone else handle it
|
|
557
|
+
if (bHandleHere) {
|
|
558
|
+
// Don't want to do a full clear of authMgr as will loose sessionIndex. Rather just clear the tokens
|
|
559
|
+
clearAuthMgr(true);
|
|
560
|
+
login(true);
|
|
561
|
+
}
|
|
562
|
+
else {
|
|
563
|
+
// Fire the SdkFullReauth event to indicate a new token is needed (PCore.getAuthUtils.setTokens method
|
|
564
|
+
// should be used to communicate the new token to Constellation JS Engine.
|
|
565
|
+
const event = new CustomEvent('SdkFullReauth', { detail: authUpdateTokens });
|
|
566
|
+
document.dispatchEvent(event);
|
|
567
|
+
}
|
|
853
568
|
};
|
|
854
569
|
// Set the custom authorization header for the SDK (and Constellation JS Engine) to
|
|
855
570
|
// utilize for every DX API request
|
|
856
571
|
export const sdkSetAuthHeader = (authHeader) => {
|
|
857
|
-
|
|
858
|
-
|
|
859
|
-
|
|
572
|
+
// set this within session storage so it survives a browser reload
|
|
573
|
+
if (authHeader) {
|
|
574
|
+
sessionStorage.setItem("rsdk_AH", authHeader);
|
|
575
|
+
// setAuthorizationHeader method not available til 8.8 so do safety check
|
|
576
|
+
if (window.PCore?.getAuthUtils().setAuthorizationHeader) {
|
|
577
|
+
window.PCore.getAuthUtils().setAuthorizationHeader(authHeader);
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
else {
|
|
581
|
+
sessionStorage.removeItem("rsdk_AH");
|
|
582
|
+
}
|
|
583
|
+
gbCustomAuth = true;
|
|
860
584
|
};
|
|
861
|
-
|
|
862
|
-
|
|
585
|
+
// Initiate a custom re-authorization.
|
|
586
|
+
export const authCustomReauth = () => {
|
|
587
|
+
// Fire the SdkCustomReauth event to indicate a new authHeader is needed. Event listener should invoke sdkSetAuthHeader
|
|
588
|
+
// to communicate the new token to sdk (and Constellation JS Engine)
|
|
589
|
+
const event = new CustomEvent('SdkCustomReauth', { detail: sdkSetAuthHeader });
|
|
590
|
+
document.dispatchEvent(event);
|
|
863
591
|
};
|
|
864
592
|
//# sourceMappingURL=authManager.js.map
|