{"version":3,"file":"js/chunk-vendors.a9db01f9.js","mappings":"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","sources":["webpack://otsuka.store/./node_modules/vue3-popper/dist/popper.esm.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/components/PasswordHints.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/template/BlankPageTemplate.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/site/areas/developer/DeveloperPage.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/site/areas/auth/EntryPage.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/controls/RadioButton.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/controls/RadioButton.vue?5adf","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/services/global-events.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/Message.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/Messages.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/Validator.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/util.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/FormFieldValidator.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/FormValidator.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/Form.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/FormContainer.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/FormContainer.vue?2c8e","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/CheckBoxField.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/CheckBoxField.vue?cac5","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/CheckBoxListField.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/CheckBoxListField.vue?a900","webpack://otsuka.store/./node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/locale/en-US/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/toDate/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/addMilliseconds/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/subMilliseconds/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/assign/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/format/longFormatters/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/protectedTokens/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/setUTCDay/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/setUTCISODay/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/getUTCWeek/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/setUTCWeek/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/parse/_lib/parsers/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/parse/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/isDate/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/isValid/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/setHours/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/setMinutes/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/setSeconds/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/setMilliseconds/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/addMonths/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/getMonth/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/getYear/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/getDaysInMonth/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/setMonth/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/setYear/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/getHours/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/getMinutes/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/getSeconds/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/format/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/isAfter/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/isBefore/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/isEqual/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/addDays/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/add/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/set/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/subDays/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/subMonths/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/sub/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/constants/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/parseISO/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/startOfWeek/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/endOfWeek/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/getDay/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/addYears/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/subYears/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/startOfDay/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/eachDayOfInterval/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/startOfISOWeek/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/getISOWeekYear/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/startOfISOWeekYear/index.js","webpack://otsuka.store/./node_modules/date-fns/esm/getISOWeek/index.js","webpack://otsuka.store/./node_modules/@vuepic/vue-datepicker/dist/vue-datepicker.es.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/FieldLabel.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/FieldLabel.vue?98a6","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/DateField.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/DateField.vue?d52b","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/DropDownListField.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/DropDownListField.vue?68a4","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/MultiDropDownListField.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/MultiDropDownListField.vue?ff98","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/MessageItem.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/MessageItem.vue?f3e7","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/ValidatorMessages.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/ValidatorMessages.vue?eb73","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/FieldMessages.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/FieldMessages.vue?3a62","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/FormMessages.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/FormMessages.vue?8f81","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/RadioButtonListField.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/RadioButtonListField.vue?02b6","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/TextAreaField.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/TextAreaField.vue?532e","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/TextBoxField.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/forms/TextBoxField.vue?5feb","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/UrlBuilder.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/Search.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/SearchContainer.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/SearchContainer.vue?6b5d","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/AddFilterCheckBox.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/AddFilterCheckBox.vue?d9df","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/DateRangeFilter.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/DateRangeFilter.vue?ecab","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/DropDownListFilter.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/DropDownListFilter.vue?7b69","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/LetterPickFilter.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/LetterPickFilter.vue?5851","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/TextBoxFilter.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/TextBoxFilter.vue?5521","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/MultiSelectDropDownFilter.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/filters/MultiSelectDropDownFilter.vue?f2a6","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/MockSearchGrid.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/MockSearchGrid.vue?8cf8","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/PageSelector.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/PageSelector.vue?35a8","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/PageSizeList.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/PageSizeList.vue?6589","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/ResultCountRangePanel.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/ResultCountRangePanel.vue?c664","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/SearchGrid.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/SearchGrid.vue?0aef","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/SearchResults.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/SearchResults.vue?afa1","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/SearchTable.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/SearchTable.vue?ade1","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/SortOptionsList.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/SortOptionsList.vue?6357","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/ViewModeSelector.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/ViewModeSelector.vue?e738","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/ActionButton.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/ActionButton.vue?345e","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/AddressBlock.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/AddressBlock.vue?2aa0","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/ApiMessageItem.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/ApiMessageItem.vue?51dc","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/BodyPanel.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/BodyPanel.vue?ea76","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/ButtonBar.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/ButtonBar.vue?9a59","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/LinkItem.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/LinkItem.vue?ebde","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/MessageList.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/MessageList.vue?3717","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/PageButton.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/PageButton.vue?5319","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/ShowOnlyForRoles.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/ShowOnlyForRoles.vue?2a6a","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/SidePanel.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/SizeDisplay.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/SizeDisplay.vue?9964","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/StartupPanel.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/StartupPanel.vue?afe5","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/SubPageButton.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/SubPageButton.vue?62f8","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/TabBar.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/TabBar.vue?1e7a","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/TileSelectButton.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/TileSelectButton.vue?0a00","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/TileMultiSelectButton.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/TileMultiSelectButton.vue?8584","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/Pagination.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/Pagination.vue?67e9","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/GeneralTable/TableSingleCell.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/GeneralTable/TableSingleCell.vue?da40","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/GeneralTable/GeneralTableWrapper.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/GeneralTable/GeneralTableWrapper.vue?4109","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/TreePath.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/TreePath.vue?f4ce","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/TreeSelect.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/TreeSelect.vue?0591","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/services/api.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/Api.js","webpack://otsuka.store/./node_modules/mosha-vue-toastify/dist/mosha-vue-toastify.es.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/Toast.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/Account.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/Localizer.js","webpack://otsuka.store/./node_modules/@devindex/vue-mask/dist/vue-mask.esm.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/NucleusSite.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/forms/ResetPasswordForm.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/components/ResetPasswordForm.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/components/ResetPasswordForm.vue?9592","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/forms/ForgotPasswordForm.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/forms/ResetPasswordOTPForm.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/components/ForgotPassword.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/components/ForgotPassword.vue?1dd1","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/forms/VerifyEmailForm.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/components/VerifyEmail.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/components/VerifyEmail.vue?fe69","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/Authenticator.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/services/AspNetAuthenticator.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/services/JwtAuthenticator.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/_virtual/_tslib.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/telemetry/performance/PerformanceEvent.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/_virtual/_tslib.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/utils/Constants.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/utils/BrowserConstants.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/error/AuthError.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/error/ServerError.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/error/InteractionRequiredAuthError.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/error/JoseHeaderError.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/cache/CryptoKeyStore.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/crypto/JoseHeader.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/utils/MathUtils.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/crypto/GuidGenerator.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/utils/BrowserStringUtils.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/encode/Base64Encode.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/encode/Base64Decode.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/error/ClientAuthError.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/utils/StringUtils.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/error/BrowserAuthError.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/crypto/PkceGenerator.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/crypto/ModernBrowserCrypto.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/crypto/MsrBrowserCrypto.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/crypto/MsBrowserCrypto.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/error/BrowserConfigurationAuthError.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/crypto/BrowserCrypto.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/cache/DatabaseStorage.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/cache/MemoryStorage.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/cache/AsyncMemoryStorage.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/logger/Logger.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/crypto/CryptoOps.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/authority/AuthorityType.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/telemetry/performance/PerformanceClient.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/telemetry/performance/StubPerformanceClient.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/crypto/ICrypto.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/entities/CredentialEntity.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/entities/IdTokenEntity.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/error/ClientConfigurationError.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/request/ScopeSet.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/account/ClientInfo.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/entities/AccountEntity.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/account/CcsCredential.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/account/AuthToken.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/packageMetadata.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/CacheManager.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/utils/TimeUtils.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/entities/AccessTokenEntity.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/entities/RefreshTokenEntity.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/entities/AppMetadataEntity.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/entities/ServerTelemetryEntity.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/entities/AuthorityMetadataEntity.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/entities/ThrottlingEntity.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/utils/ProtocolUtils.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/cache/BrowserStorage.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/authority/ProtocolMode.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/authority/AuthorityOptions.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/url/UrlString.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/utils/BrowserProtocolUtils.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/cache/BrowserCacheManager.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/config/ClientConfiguration.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/network/INetworkModule.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/network/FetchClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/network/XhrClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/utils/BrowserUtils.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/navigation/NavigationClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/config/Configuration.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/packageMetadata.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/event/EventType.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/event/EventHandler.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/crypto/PopTokenGenerator.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/network/ThrottlingUtils.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/network/NetworkManager.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/request/RequestValidator.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/request/RequestParameterBuilder.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/client/BaseClient.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/entities/CacheRecord.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/cache/persistence/TokenCacheContext.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/response/ResponseHandler.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/client/AuthorizationCodeClient.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/authority/OpenIdConfigResponse.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/authority/AuthorityMetadata.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryResponse.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/authority/CloudInstanceDiscoveryErrorResponse.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/authority/RegionDiscovery.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/error/NativeAuthError.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/authority/Authority.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/authority/AuthorityFactory.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/telemetry/server/ServerTelemetryManager.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_client/BaseInteractionClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_client/StandardInteractionClient.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/client/RefreshTokenClient.js","webpack://otsuka.store/./node_modules/@azure/msal-common/dist/client/SilentFlowClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_client/SilentCacheClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_client/NativeInteractionClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/broker/nativeBroker/NativeMessageHandler.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_handler/InteractionHandler.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_client/PopupClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_handler/RedirectHandler.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_client/RedirectClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_handler/SilentHandler.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_client/SilentIframeClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_client/SilentRefreshClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/cache/TokenCache.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_client/HybridSpaAuthorizationCodeClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/interaction_client/SilentAuthCodeClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/telemetry/BrowserPerformanceMeasurement.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/telemetry/BrowserPerformanceClient.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/app/ClientApplication.js","webpack://otsuka.store/./node_modules/@azure/msal-browser/dist/app/PublicClientApplication.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/services/AzureAuthenticator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/types/api.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/util/console.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/util/object.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/errors/CustomError.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/util/types.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/errors/WWWAuthError.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/util/misc.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/util/url.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/errors/AuthSdkError.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/oauth.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/oauthMeta.js","webpack://otsuka.store/./node_modules/js-cookie/dist/js.cookie.mjs","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/types/Token.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/transactionMeta.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/constants.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/errors/AuthApiError.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/errors/OAuthError.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/http/request.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/interact.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/_virtual/_tslib.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/idxState/v1/actionParser.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/idxState/v1/generateIdxAction.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/idxState/v1/remediationParser.js","webpack://otsuka.store/./node_modules/jsonpath-plus/dist/index-browser-esm.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/util/jsonpath.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/idxState/v1/idxResponseParser.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/idxState/v1/makeIdxState.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/idxState/v1/parsers.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/idxState/index.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/types/idx-js.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/errors/index.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/introspect.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/util.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/authenticator/util.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/Base/Remediator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/GenericRemediator/util.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/GenericRemediator/GenericRemediator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/util.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediate.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/run.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/authenticate.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/authenticator/Authenticator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/authenticator/VerificationCodeAuthenticator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/authenticator/OktaVerifyTotp.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/authenticator/OktaPassword.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/authenticator/SecurityQuestionEnrollment.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/authenticator/SecurityQuestionVerification.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/authenticator/WebauthnEnrollment.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/authenticator/WebauthnVerification.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/authenticator/getAuthenticator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/Base/VerifyAuthenticator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/EnrollAuthenticator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/EnrollPoll.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/SelectEnrollmentChannel.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/EnrollmentChannelData.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/ChallengeAuthenticator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/ChallengePoll.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/ResetAuthenticator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/EnrollProfile.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/Identify.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/ReEnrollAuthenticator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/ReEnrollAuthenticatorWarning.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/RedirectIdp.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/Base/SelectAuthenticator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/SelectAuthenticatorAuthenticate.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/SelectAuthenticatorEnroll.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/SelectAuthenticatorUnlockAccount.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/SelectEnrollProfile.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/Base/AuthenticatorData.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/AuthenticatorVerificationData.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/AuthenticatorEnrollmentData.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/remediators/Skip.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/flow/AuthenticationFlow.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/flow/PasswordRecoveryFlow.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/flow/RegistrationFlow.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/flow/AccountUnlockFlow.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/flow/FlowSpecification.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/cancel.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/urlParams.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/emailVerify.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/proceed.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/poll.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/startTransaction.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/register.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/recoverPassword.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/handleInteractionCodeRedirect.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/unlockAccount.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/errors.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/loginRedirect.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/factory/api.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/crypto/browser.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/features.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/base/factory.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/storage/mixin.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/http/OktaUserAgent.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/http/headers.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/http/mixin.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/crypto/base64.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/crypto/oidcHash.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/crypto/verifyToken.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/util/PromiseQueue.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/pkce.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/decodeToken.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/defaultTokenParams.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/dpop.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/endpoints/token.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/endpoints/well-known.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/validateClaims.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/verifyToken.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/handleOAuthResponse.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/exchangeCodeForTokens.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/getUserInfo.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/browser.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/prepareTokenParams.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/endpoints/authorize.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/getToken.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/getWithoutPrompt.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/getWithPopup.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/getWithRedirect.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/parseFromUrl.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/refreshToken.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/renewTokensWithRefresh.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/renewToken.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/renewTokens.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/revokeToken.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/introspect.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/enrollAuthenticatorMeta.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/defaultEnrollAuthenticatorParams.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/prepareEnrollAuthenticatorParams.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/enrollAuthenticator.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/factory/api.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/validateToken.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/clock.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/types/TokenManager.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/TokenManager.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/browser/browserStorage.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/mixin/browser.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/mixin/index.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/core/AuthStateManager.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/services/AutoRenewService.js","webpack://otsuka.store/./node_modules/broadcast-channel/dist/esbrowser/util.js","webpack://otsuka.store/./node_modules/broadcast-channel/dist/esbrowser/methods/native.js","webpack://otsuka.store/./node_modules/oblivious-set/dist/es/index.js","webpack://otsuka.store/./node_modules/broadcast-channel/dist/esbrowser/options.js","webpack://otsuka.store/./node_modules/broadcast-channel/dist/esbrowser/methods/indexed-db.js","webpack://otsuka.store/./node_modules/broadcast-channel/dist/esbrowser/methods/localstorage.js","webpack://otsuka.store/./node_modules/broadcast-channel/dist/esbrowser/methods/simulate.js","webpack://otsuka.store/./node_modules/broadcast-channel/dist/esbrowser/method-chooser.js","webpack://otsuka.store/./node_modules/broadcast-channel/dist/esbrowser/broadcast-channel.js","webpack://otsuka.store/./node_modules/unload/dist/es/browser.js","webpack://otsuka.store/./node_modules/unload/dist/es/node.js","webpack://otsuka.store/./node_modules/unload/dist/es/index.js","webpack://otsuka.store/./node_modules/broadcast-channel/dist/esbrowser/leader-election-util.js","webpack://otsuka.store/./node_modules/broadcast-channel/dist/esbrowser/leader-election-web-lock.js","webpack://otsuka.store/./node_modules/broadcast-channel/dist/esbrowser/leader-election.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/services/SyncStorageService.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/services/LeaderElectionService.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/services/RenewOnTabActivationService.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/core/ServiceManager/browser.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/core/mixin.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/session/api.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/session/factory.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/session/mixin.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/core/factory.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/browser/fingerprint.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/webauthn.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/mixin.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/factory/OktaAuthIdx.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/base/options.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/storage/options/browser.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/storage/options/StorageOptionsConstructor.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/fetch/fetchRequest.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/http/options.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/options/browser.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/options/OAuthOptionsConstructor.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/core/options.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/options.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/storage/SavedObject.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/storage/BaseStorageManager.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/storage.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/core/storage.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/storage.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/types/Transaction.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/util/sharedStorage.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/oidc/TransactionManager.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/idx/IdxTransactionManager.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/transactions/Base.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/request.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/transactions/ProfileTransaction.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/transactions/ProfileSchemaTransaction.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/types.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/profileApi.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/transactions/EmailStatusTransaction.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/transactions/EmailChallengeTransaction.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/transactions/EmailTransaction.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/emailApi.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/transactions/PhoneTransaction.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/phoneApi.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/transactions/PasswordTransaction.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/passwordApi.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/myaccount/mixin.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/authn/util/stateToken.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/authn/api.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/authn/util/link2fn.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/errors/AuthPollStopError.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/authn/util/poll.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/authn/util/links2fns.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/authn/util/flattenEmbedded.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/authn/AuthnTransactionImpl.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/authn/factory.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/authn/mixin.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/esm/browser/exports/exports/default.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/auth/services/OktaAuthenticator.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/Announcement.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/MockAuthenticator.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/classes/IndividualOrder.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/OmniSearch.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/searches/OmniSearch.vue?919a","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/GeneralModal.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/GeneralModal.vue?a1bd","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/ImageLightbox.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/components/ImageLightbox.vue?fb34","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/template/components/PageFooterContainer.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/base/template/components/PageHeaderContainer.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/AddressTile.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/CartItemQty.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/CartItemQty.vue?acc8","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/EditMarketingContact.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/EditMarketingContact.vue?fdf9","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/EditShippingAddress.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/EditShippingAddress.vue?d478","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/FavoriteIcon.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/FavoriteIcon.vue?1b77","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ItemQty.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/OrderLinkItem.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/OrderLinkItem.vue?3cbb","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductAddToCartQty.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductAddToCartQty.vue?cfe0","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductFavoriteIcon.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductFavoriteIcon.vue?5367","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductImageGallery.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductImageGallery.vue?a6b6","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductLinkItem.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductLinkItem.vue?2dfc","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductTags.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductTags.vue?6a5b","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductThumbnail.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ProductThumbnail.vue?7eb8","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ShipMethod.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ShipMethod.vue?2e47","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ShipMethodSelector.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ShipMethodSelector.vue?30bf","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/UomLabel.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/UomLabel.vue?4771","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/CompanionItemTile.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/CompanionItemTile.vue?5a20","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/services/Cart.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/services/Orders.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/services/Products.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/services/Shipping.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/services/Marketing.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/services/Permission.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/services/UserInfo.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/services/NucleusStore.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/filters/CategoryFilter.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/filters/CategoryFilter.vue?5d74","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/TimeoutModal.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/TimeoutModal.vue?2b19","webpack://otsuka.store/./node_modules/lodash-es/_listCacheClear.js","webpack://otsuka.store/./node_modules/lodash-es/eq.js","webpack://otsuka.store/./node_modules/lodash-es/_assocIndexOf.js","webpack://otsuka.store/./node_modules/lodash-es/_listCacheDelete.js","webpack://otsuka.store/./node_modules/lodash-es/_listCacheGet.js","webpack://otsuka.store/./node_modules/lodash-es/_listCacheHas.js","webpack://otsuka.store/./node_modules/lodash-es/_listCacheSet.js","webpack://otsuka.store/./node_modules/lodash-es/_ListCache.js","webpack://otsuka.store/./node_modules/lodash-es/_stackClear.js","webpack://otsuka.store/./node_modules/lodash-es/_stackDelete.js","webpack://otsuka.store/./node_modules/lodash-es/_stackGet.js","webpack://otsuka.store/./node_modules/lodash-es/_stackHas.js","webpack://otsuka.store/./node_modules/lodash-es/_freeGlobal.js","webpack://otsuka.store/./node_modules/lodash-es/_root.js","webpack://otsuka.store/./node_modules/lodash-es/_Symbol.js","webpack://otsuka.store/./node_modules/lodash-es/_getRawTag.js","webpack://otsuka.store/./node_modules/lodash-es/_objectToString.js","webpack://otsuka.store/./node_modules/lodash-es/_baseGetTag.js","webpack://otsuka.store/./node_modules/lodash-es/isObject.js","webpack://otsuka.store/./node_modules/lodash-es/isFunction.js","webpack://otsuka.store/./node_modules/lodash-es/_coreJsData.js","webpack://otsuka.store/./node_modules/lodash-es/_isMasked.js","webpack://otsuka.store/./node_modules/lodash-es/_toSource.js","webpack://otsuka.store/./node_modules/lodash-es/_baseIsNative.js","webpack://otsuka.store/./node_modules/lodash-es/_getValue.js","webpack://otsuka.store/./node_modules/lodash-es/_getNative.js","webpack://otsuka.store/./node_modules/lodash-es/_Map.js","webpack://otsuka.store/./node_modules/lodash-es/_nativeCreate.js","webpack://otsuka.store/./node_modules/lodash-es/_hashClear.js","webpack://otsuka.store/./node_modules/lodash-es/_hashDelete.js","webpack://otsuka.store/./node_modules/lodash-es/_hashGet.js","webpack://otsuka.store/./node_modules/lodash-es/_hashHas.js","webpack://otsuka.store/./node_modules/lodash-es/_hashSet.js","webpack://otsuka.store/./node_modules/lodash-es/_Hash.js","webpack://otsuka.store/./node_modules/lodash-es/_mapCacheClear.js","webpack://otsuka.store/./node_modules/lodash-es/_isKeyable.js","webpack://otsuka.store/./node_modules/lodash-es/_getMapData.js","webpack://otsuka.store/./node_modules/lodash-es/_mapCacheDelete.js","webpack://otsuka.store/./node_modules/lodash-es/_mapCacheGet.js","webpack://otsuka.store/./node_modules/lodash-es/_mapCacheHas.js","webpack://otsuka.store/./node_modules/lodash-es/_mapCacheSet.js","webpack://otsuka.store/./node_modules/lodash-es/_MapCache.js","webpack://otsuka.store/./node_modules/lodash-es/_stackSet.js","webpack://otsuka.store/./node_modules/lodash-es/_Stack.js","webpack://otsuka.store/./node_modules/lodash-es/_defineProperty.js","webpack://otsuka.store/./node_modules/lodash-es/_baseAssignValue.js","webpack://otsuka.store/./node_modules/lodash-es/_assignMergeValue.js","webpack://otsuka.store/./node_modules/lodash-es/_createBaseFor.js","webpack://otsuka.store/./node_modules/lodash-es/_baseFor.js","webpack://otsuka.store/./node_modules/lodash-es/_cloneBuffer.js","webpack://otsuka.store/./node_modules/lodash-es/_Uint8Array.js","webpack://otsuka.store/./node_modules/lodash-es/_cloneArrayBuffer.js","webpack://otsuka.store/./node_modules/lodash-es/_cloneTypedArray.js","webpack://otsuka.store/./node_modules/lodash-es/_copyArray.js","webpack://otsuka.store/./node_modules/lodash-es/_baseCreate.js","webpack://otsuka.store/./node_modules/lodash-es/_overArg.js","webpack://otsuka.store/./node_modules/lodash-es/_getPrototype.js","webpack://otsuka.store/./node_modules/lodash-es/_isPrototype.js","webpack://otsuka.store/./node_modules/lodash-es/_initCloneObject.js","webpack://otsuka.store/./node_modules/lodash-es/isObjectLike.js","webpack://otsuka.store/./node_modules/lodash-es/_baseIsArguments.js","webpack://otsuka.store/./node_modules/lodash-es/isArguments.js","webpack://otsuka.store/./node_modules/lodash-es/isArray.js","webpack://otsuka.store/./node_modules/lodash-es/isLength.js","webpack://otsuka.store/./node_modules/lodash-es/isArrayLike.js","webpack://otsuka.store/./node_modules/lodash-es/isArrayLikeObject.js","webpack://otsuka.store/./node_modules/lodash-es/stubFalse.js","webpack://otsuka.store/./node_modules/lodash-es/isBuffer.js","webpack://otsuka.store/./node_modules/lodash-es/isPlainObject.js","webpack://otsuka.store/./node_modules/lodash-es/_baseIsTypedArray.js","webpack://otsuka.store/./node_modules/lodash-es/_baseUnary.js","webpack://otsuka.store/./node_modules/lodash-es/_nodeUtil.js","webpack://otsuka.store/./node_modules/lodash-es/isTypedArray.js","webpack://otsuka.store/./node_modules/lodash-es/_safeGet.js","webpack://otsuka.store/./node_modules/lodash-es/_assignValue.js","webpack://otsuka.store/./node_modules/lodash-es/_copyObject.js","webpack://otsuka.store/./node_modules/lodash-es/_baseTimes.js","webpack://otsuka.store/./node_modules/lodash-es/_isIndex.js","webpack://otsuka.store/./node_modules/lodash-es/_arrayLikeKeys.js","webpack://otsuka.store/./node_modules/lodash-es/_nativeKeysIn.js","webpack://otsuka.store/./node_modules/lodash-es/_baseKeysIn.js","webpack://otsuka.store/./node_modules/lodash-es/keysIn.js","webpack://otsuka.store/./node_modules/lodash-es/toPlainObject.js","webpack://otsuka.store/./node_modules/lodash-es/_baseMergeDeep.js","webpack://otsuka.store/./node_modules/lodash-es/_baseMerge.js","webpack://otsuka.store/./node_modules/lodash-es/identity.js","webpack://otsuka.store/./node_modules/lodash-es/_apply.js","webpack://otsuka.store/./node_modules/lodash-es/_overRest.js","webpack://otsuka.store/./node_modules/lodash-es/constant.js","webpack://otsuka.store/./node_modules/lodash-es/_baseSetToString.js","webpack://otsuka.store/./node_modules/lodash-es/_shortOut.js","webpack://otsuka.store/./node_modules/lodash-es/_setToString.js","webpack://otsuka.store/./node_modules/lodash-es/_baseRest.js","webpack://otsuka.store/./node_modules/lodash-es/_isIterateeCall.js","webpack://otsuka.store/./node_modules/lodash-es/_createAssigner.js","webpack://otsuka.store/./node_modules/lodash-es/merge.js","webpack://otsuka.store/./node_modules/parchment/dist/parchment.js","webpack://otsuka.store/./node_modules/lodash-es/_arrayEach.js","webpack://otsuka.store/./node_modules/lodash-es/_nativeKeys.js","webpack://otsuka.store/./node_modules/lodash-es/_baseKeys.js","webpack://otsuka.store/./node_modules/lodash-es/keys.js","webpack://otsuka.store/./node_modules/lodash-es/_baseAssign.js","webpack://otsuka.store/./node_modules/lodash-es/_baseAssignIn.js","webpack://otsuka.store/./node_modules/lodash-es/_arrayFilter.js","webpack://otsuka.store/./node_modules/lodash-es/stubArray.js","webpack://otsuka.store/./node_modules/lodash-es/_getSymbols.js","webpack://otsuka.store/./node_modules/lodash-es/_copySymbols.js","webpack://otsuka.store/./node_modules/lodash-es/_arrayPush.js","webpack://otsuka.store/./node_modules/lodash-es/_getSymbolsIn.js","webpack://otsuka.store/./node_modules/lodash-es/_copySymbolsIn.js","webpack://otsuka.store/./node_modules/lodash-es/_baseGetAllKeys.js","webpack://otsuka.store/./node_modules/lodash-es/_getAllKeys.js","webpack://otsuka.store/./node_modules/lodash-es/_getAllKeysIn.js","webpack://otsuka.store/./node_modules/lodash-es/_DataView.js","webpack://otsuka.store/./node_modules/lodash-es/_Promise.js","webpack://otsuka.store/./node_modules/lodash-es/_Set.js","webpack://otsuka.store/./node_modules/lodash-es/_WeakMap.js","webpack://otsuka.store/./node_modules/lodash-es/_getTag.js","webpack://otsuka.store/./node_modules/lodash-es/_initCloneArray.js","webpack://otsuka.store/./node_modules/lodash-es/_cloneDataView.js","webpack://otsuka.store/./node_modules/lodash-es/_cloneRegExp.js","webpack://otsuka.store/./node_modules/lodash-es/_cloneSymbol.js","webpack://otsuka.store/./node_modules/lodash-es/_initCloneByTag.js","webpack://otsuka.store/./node_modules/lodash-es/_baseIsMap.js","webpack://otsuka.store/./node_modules/lodash-es/isMap.js","webpack://otsuka.store/./node_modules/lodash-es/_baseIsSet.js","webpack://otsuka.store/./node_modules/lodash-es/isSet.js","webpack://otsuka.store/./node_modules/lodash-es/_baseClone.js","webpack://otsuka.store/./node_modules/lodash-es/cloneDeep.js","webpack://otsuka.store/./node_modules/lodash-es/_setCacheAdd.js","webpack://otsuka.store/./node_modules/lodash-es/_setCacheHas.js","webpack://otsuka.store/./node_modules/lodash-es/_SetCache.js","webpack://otsuka.store/./node_modules/lodash-es/_arraySome.js","webpack://otsuka.store/./node_modules/lodash-es/_cacheHas.js","webpack://otsuka.store/./node_modules/lodash-es/_equalArrays.js","webpack://otsuka.store/./node_modules/lodash-es/_mapToArray.js","webpack://otsuka.store/./node_modules/lodash-es/_setToArray.js","webpack://otsuka.store/./node_modules/lodash-es/_equalByTag.js","webpack://otsuka.store/./node_modules/lodash-es/_equalObjects.js","webpack://otsuka.store/./node_modules/lodash-es/_baseIsEqualDeep.js","webpack://otsuka.store/./node_modules/lodash-es/_baseIsEqual.js","webpack://otsuka.store/./node_modules/lodash-es/isEqual.js","webpack://otsuka.store/./node_modules/quill/blots/break.js","webpack://otsuka.store/./node_modules/quill/blots/text.js","webpack://otsuka.store/./node_modules/quill/blots/inline.js","webpack://otsuka.store/./node_modules/quill/blots/block.js","webpack://otsuka.store/./node_modules/quill/blots/cursor.js","webpack://otsuka.store/./node_modules/quill/core/instances.js","webpack://otsuka.store/./node_modules/quill/core/logger.js","webpack://otsuka.store/./node_modules/quill/core/emitter.js","webpack://otsuka.store/./node_modules/quill/core/selection.js","webpack://otsuka.store/./node_modules/quill/core/editor.js","webpack://otsuka.store/./node_modules/quill/core/module.js","webpack://otsuka.store/./node_modules/quill/blots/embed.js","webpack://otsuka.store/./node_modules/quill/core/composition.js","webpack://otsuka.store/./node_modules/quill/core/theme.js","webpack://otsuka.store/./node_modules/quill/core/utils/scrollRectIntoView.js","webpack://otsuka.store/./node_modules/quill/core/utils/createRegistryWithFormats.js","webpack://otsuka.store/./node_modules/quill/core/quill.js","webpack://otsuka.store/./node_modules/quill/blots/container.js","webpack://otsuka.store/./node_modules/quill/blots/scroll.js","webpack://otsuka.store/./node_modules/quill/formats/align.js","webpack://otsuka.store/./node_modules/quill/formats/color.js","webpack://otsuka.store/./node_modules/quill/formats/background.js","webpack://otsuka.store/./node_modules/quill/formats/code.js","webpack://otsuka.store/./node_modules/quill/formats/direction.js","webpack://otsuka.store/./node_modules/quill/formats/font.js","webpack://otsuka.store/./node_modules/quill/formats/size.js","webpack://otsuka.store/./node_modules/quill/modules/keyboard.js","webpack://otsuka.store/./node_modules/quill/modules/normalizeExternalHTML/normalizers/googleDocs.js","webpack://otsuka.store/./node_modules/quill/modules/normalizeExternalHTML/normalizers/msWord.js","webpack://otsuka.store/./node_modules/quill/modules/normalizeExternalHTML/index.js","webpack://otsuka.store/./node_modules/quill/modules/clipboard.js","webpack://otsuka.store/./node_modules/quill/modules/history.js","webpack://otsuka.store/./node_modules/quill/modules/uploader.js","webpack://otsuka.store/./node_modules/quill/modules/input.js","webpack://otsuka.store/./node_modules/quill/modules/uiNode.js","webpack://otsuka.store/./node_modules/quill/core.js","webpack://otsuka.store/./node_modules/quill/formats/indent.js","webpack://otsuka.store/./node_modules/quill/formats/blockquote.js","webpack://otsuka.store/./node_modules/quill/formats/header.js","webpack://otsuka.store/./node_modules/quill/formats/list.js","webpack://otsuka.store/./node_modules/quill/formats/bold.js","webpack://otsuka.store/./node_modules/quill/formats/italic.js","webpack://otsuka.store/./node_modules/quill/formats/link.js","webpack://otsuka.store/./node_modules/quill/formats/script.js","webpack://otsuka.store/./node_modules/quill/formats/strike.js","webpack://otsuka.store/./node_modules/quill/formats/underline.js","webpack://otsuka.store/./node_modules/quill/formats/formula.js","webpack://otsuka.store/./node_modules/quill/formats/image.js","webpack://otsuka.store/./node_modules/quill/formats/video.js","webpack://otsuka.store/./node_modules/quill/modules/syntax.js","webpack://otsuka.store/./node_modules/quill/formats/table.js","webpack://otsuka.store/./node_modules/quill/modules/table.js","webpack://otsuka.store/./node_modules/quill/modules/toolbar.js","webpack://otsuka.store/./node_modules/quill/ui/icons.js","webpack://otsuka.store/./node_modules/quill/ui/picker.js","webpack://otsuka.store/./node_modules/quill/ui/color-picker.js","webpack://otsuka.store/./node_modules/quill/ui/icon-picker.js","webpack://otsuka.store/./node_modules/quill/ui/tooltip.js","webpack://otsuka.store/./node_modules/quill/themes/base.js","webpack://otsuka.store/./node_modules/quill/themes/bubble.js","webpack://otsuka.store/./node_modules/quill/themes/snow.js","webpack://otsuka.store/./node_modules/quill/quill.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/forms/MFAForm.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/MFA.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/MFA.vue?5083","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/Carousel/CarouselContainer.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/Carousel/CarouselContainer.vue?7698","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/Carousel/Carousel.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/Carousel/Carousel.vue?d355","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/LoadingScreen.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ReportView.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ReportView.vue?bd6c","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ReportViewTitle.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ReportList.vue","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/components/ReportList.vue?7fe3","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/forms/AddToCartForm.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/forms/ShippingAddressForm.js","webpack://otsuka.store/./node_modules/@dd-nucleus/nucleus-vue/src/storefront/forms/UpdateCartItemQtyForm.js","webpack://otsuka.store/./node_modules/@okta/okta-auth-js/node_modules/tiny-emitter/index.js","webpack://otsuka.store/./node_modules/@vue/reactivity/dist/reactivity.esm-bundler.js","webpack://otsuka.store/./node_modules/@vue/runtime-core/dist/runtime-core.esm-bundler.js","webpack://otsuka.store/./node_modules/@vue/runtime-dom/dist/runtime-dom.esm-bundler.js","webpack://otsuka.store/./node_modules/@vue/shared/dist/shared.esm-bundler.js","webpack://otsuka.store/./node_modules/axios/index.js","webpack://otsuka.store/./node_modules/axios/lib/adapters/xhr.js","webpack://otsuka.store/./node_modules/axios/lib/axios.js","webpack://otsuka.store/./node_modules/axios/lib/cancel/CancelToken.js","webpack://otsuka.store/./node_modules/axios/lib/cancel/CanceledError.js","webpack://otsuka.store/./node_modules/axios/lib/cancel/isCancel.js","webpack://otsuka.store/./node_modules/axios/lib/core/Axios.js","webpack://otsuka.store/./node_modules/axios/lib/core/AxiosError.js","webpack://otsuka.store/./node_modules/axios/lib/core/InterceptorManager.js","webpack://otsuka.store/./node_modules/axios/lib/core/buildFullPath.js","webpack://otsuka.store/./node_modules/axios/lib/core/dispatchRequest.js","webpack://otsuka.store/./node_modules/axios/lib/core/mergeConfig.js","webpack://otsuka.store/./node_modules/axios/lib/core/settle.js","webpack://otsuka.store/./node_modules/axios/lib/core/transformData.js","webpack://otsuka.store/./node_modules/axios/lib/defaults/index.js","webpack://otsuka.store/./node_modules/axios/lib/defaults/transitional.js","webpack://otsuka.store/./node_modules/axios/lib/env/data.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/bind.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/buildURL.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/combineURLs.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/cookies.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/null.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/parseProtocol.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/spread.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/toFormData.js","webpack://otsuka.store/./node_modules/axios/lib/helpers/validator.js","webpack://otsuka.store/./node_modules/axios/lib/utils.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/enums.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/math.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/contains.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/within.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/modifiers/arrow.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/getVariation.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/computeOffsets.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/detectOverflow.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/modifiers/flip.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/modifiers/hide.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/modifiers/offset.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/getAltAxis.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/orderModifiers.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/debounce.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/utils/mergeByName.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/createPopper.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/popper.js","webpack://otsuka.store/./node_modules/@popperjs/core/lib/popper-lite.js","webpack://otsuka.store/./node_modules/bootstrap/dist/js/bootstrap.esm.js","webpack://otsuka.store/./node_modules/call-bind/callBound.js","webpack://otsuka.store/./node_modules/call-bind/index.js","webpack://otsuka.store/./node_modules/click-outside-vue3/dist/v-click-outside.umd.js","webpack://otsuka.store/./node_modules/core-js/internals/a-callable.js","webpack://otsuka.store/./node_modules/core-js/internals/add-to-unscopables.js","webpack://otsuka.store/./node_modules/core-js/internals/an-object.js","webpack://otsuka.store/./node_modules/core-js/internals/array-includes.js","webpack://otsuka.store/./node_modules/core-js/internals/classof-raw.js","webpack://otsuka.store/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://otsuka.store/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://otsuka.store/./node_modules/core-js/internals/create-property-descriptor.js","webpack://otsuka.store/./node_modules/core-js/internals/define-built-in.js","webpack://otsuka.store/./node_modules/core-js/internals/define-global-property.js","webpack://otsuka.store/./node_modules/core-js/internals/descriptors.js","webpack://otsuka.store/./node_modules/core-js/internals/document-create-element.js","webpack://otsuka.store/./node_modules/core-js/internals/engine-user-agent.js","webpack://otsuka.store/./node_modules/core-js/internals/engine-v8-version.js","webpack://otsuka.store/./node_modules/core-js/internals/enum-bug-keys.js","webpack://otsuka.store/./node_modules/core-js/internals/export.js","webpack://otsuka.store/./node_modules/core-js/internals/fails.js","webpack://otsuka.store/./node_modules/core-js/internals/function-bind-native.js","webpack://otsuka.store/./node_modules/core-js/internals/function-call.js","webpack://otsuka.store/./node_modules/core-js/internals/function-name.js","webpack://otsuka.store/./node_modules/core-js/internals/function-uncurry-this.js","webpack://otsuka.store/./node_modules/core-js/internals/get-built-in.js","webpack://otsuka.store/./node_modules/core-js/internals/get-method.js","webpack://otsuka.store/./node_modules/core-js/internals/global.js","webpack://otsuka.store/./node_modules/core-js/internals/has-own-property.js","webpack://otsuka.store/./node_modules/core-js/internals/hidden-keys.js","webpack://otsuka.store/./node_modules/core-js/internals/html.js","webpack://otsuka.store/./node_modules/core-js/internals/ie8-dom-define.js","webpack://otsuka.store/./node_modules/core-js/internals/indexed-object.js","webpack://otsuka.store/./node_modules/core-js/internals/inspect-source.js","webpack://otsuka.store/./node_modules/core-js/internals/internal-state.js","webpack://otsuka.store/./node_modules/core-js/internals/is-callable.js","webpack://otsuka.store/./node_modules/core-js/internals/is-forced.js","webpack://otsuka.store/./node_modules/core-js/internals/is-object.js","webpack://otsuka.store/./node_modules/core-js/internals/is-pure.js","webpack://otsuka.store/./node_modules/core-js/internals/is-symbol.js","webpack://otsuka.store/./node_modules/core-js/internals/length-of-array-like.js","webpack://otsuka.store/./node_modules/core-js/internals/make-built-in.js","webpack://otsuka.store/./node_modules/core-js/internals/math-trunc.js","webpack://otsuka.store/./node_modules/core-js/internals/native-symbol.js","webpack://otsuka.store/./node_modules/core-js/internals/native-weak-map.js","webpack://otsuka.store/./node_modules/core-js/internals/object-create.js","webpack://otsuka.store/./node_modules/core-js/internals/object-define-properties.js","webpack://otsuka.store/./node_modules/core-js/internals/object-define-property.js","webpack://otsuka.store/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://otsuka.store/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://otsuka.store/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://otsuka.store/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://otsuka.store/./node_modules/core-js/internals/object-keys-internal.js","webpack://otsuka.store/./node_modules/core-js/internals/object-keys.js","webpack://otsuka.store/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://otsuka.store/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://otsuka.store/./node_modules/core-js/internals/own-keys.js","webpack://otsuka.store/./node_modules/core-js/internals/require-object-coercible.js","webpack://otsuka.store/./node_modules/core-js/internals/shared-key.js","webpack://otsuka.store/./node_modules/core-js/internals/shared-store.js","webpack://otsuka.store/./node_modules/core-js/internals/shared.js","webpack://otsuka.store/./node_modules/core-js/internals/to-absolute-index.js","webpack://otsuka.store/./node_modules/core-js/internals/to-indexed-object.js","webpack://otsuka.store/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://otsuka.store/./node_modules/core-js/internals/to-length.js","webpack://otsuka.store/./node_modules/core-js/internals/to-object.js","webpack://otsuka.store/./node_modules/core-js/internals/to-primitive.js","webpack://otsuka.store/./node_modules/core-js/internals/to-property-key.js","webpack://otsuka.store/./node_modules/core-js/internals/try-to-string.js","webpack://otsuka.store/./node_modules/core-js/internals/uid.js","webpack://otsuka.store/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://otsuka.store/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://otsuka.store/./node_modules/core-js/internals/well-known-symbol.js","webpack://otsuka.store/./node_modules/core-js/modules/es.array.includes.js","webpack://otsuka.store/./node_modules/cross-fetch/dist/browser-ponyfill.js","webpack://otsuka.store/./node_modules/fast-diff/diff.js","webpack://otsuka.store/./node_modules/function-bind/implementation.js","webpack://otsuka.store/./node_modules/function-bind/index.js","webpack://otsuka.store/./node_modules/get-intrinsic/index.js","webpack://otsuka.store/./node_modules/has-symbols/index.js","webpack://otsuka.store/./node_modules/has-symbols/shams.js","webpack://otsuka.store/./node_modules/has/src/index.js","webpack://otsuka.store/./node_modules/lodash.clonedeep/index.js","webpack://otsuka.store/./node_modules/lodash.debounce/index.js","webpack://otsuka.store/./node_modules/lodash.isequal/index.js","webpack://otsuka.store/./node_modules/lodash/_Symbol.js","webpack://otsuka.store/./node_modules/lodash/_arrayMap.js","webpack://otsuka.store/./node_modules/lodash/_baseGetTag.js","webpack://otsuka.store/./node_modules/lodash/_basePropertyOf.js","webpack://otsuka.store/./node_modules/lodash/_baseToString.js","webpack://otsuka.store/./node_modules/lodash/_escapeHtmlChar.js","webpack://otsuka.store/./node_modules/lodash/_freeGlobal.js","webpack://otsuka.store/./node_modules/lodash/_getRawTag.js","webpack://otsuka.store/./node_modules/lodash/_objectToString.js","webpack://otsuka.store/./node_modules/lodash/_root.js","webpack://otsuka.store/./node_modules/lodash/escape.js","webpack://otsuka.store/./node_modules/lodash/isArray.js","webpack://otsuka.store/./node_modules/lodash/isObjectLike.js","webpack://otsuka.store/./node_modules/lodash/isSymbol.js","webpack://otsuka.store/./node_modules/lodash/toString.js","webpack://otsuka.store/./node_modules/object-inspect/index.js","webpack://otsuka.store/./node_modules/p-cancelable/index.js","webpack://otsuka.store/./node_modules/powerbi-client/dist/powerbi.js","webpack://otsuka.store/./node_modules/qs/lib/formats.js","webpack://otsuka.store/./node_modules/qs/lib/index.js","webpack://otsuka.store/./node_modules/qs/lib/parse.js","webpack://otsuka.store/./node_modules/qs/lib/stringify.js","webpack://otsuka.store/./node_modules/qs/lib/utils.js","webpack://otsuka.store/./node_modules/quill-delta/dist/AttributeMap.js","webpack://otsuka.store/./node_modules/quill-delta/dist/Delta.js","webpack://otsuka.store/./node_modules/quill-delta/dist/Op.js","webpack://otsuka.store/./node_modules/quill-delta/dist/OpIterator.js","webpack://otsuka.store/./node_modules/quill/node_modules/eventemitter3/index.js","webpack://otsuka.store/./node_modules/side-channel/index.js","webpack://otsuka.store/./node_modules/tiny-emitter/index.js","webpack://otsuka.store/./node_modules/tiny-emitter/instance.js","webpack://otsuka.store/./node_modules/uuid/index.js","webpack://otsuka.store/./node_modules/uuid/lib/bytesToUuid.js","webpack://otsuka.store/./node_modules/uuid/lib/rng-browser.js","webpack://otsuka.store/./node_modules/uuid/v1.js","webpack://otsuka.store/./node_modules/uuid/v4.js","webpack://otsuka.store/./node_modules/vue-cookies/vue-cookies.js","webpack://otsuka.store/./node_modules/vue-loader/dist/exportHelper.js","webpack://otsuka.store/./node_modules/vue-router/dist/vue-router.esm-bundler.js","webpack://otsuka.store/./node_modules/vue-snip/dist/main.js"],"sourcesContent":["import { isRef, watch, onMounted, onBeforeUnmount, unref, ref, reactive, nextTick, toRefs, openBlock, createElementBlock, useCssVars, useSlots, computed, watchEffect, normalizeStyle, createElementVNode, withKeys, renderSlot, createVNode, Transition, withCtx, withDirectives, createTextVNode, toDisplayString, createBlock, createCommentVNode, vShow } from 'vue';\n\n/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce$1(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n }\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n}\n// Adds compatibility for ES modules\ndebounce$1.debounce = debounce$1;\n\nvar debounce_1 = debounce$1;\n\nfunction useEventListener(target, event, handler) {\n if (isRef(target)) {\n watch(target, (value, oldValue) => {\n oldValue === null || oldValue === void 0 ? void 0 : oldValue.removeEventListener(event, handler);\n value === null || value === void 0 ? void 0 : value.addEventListener(event, handler);\n });\n } else {\n onMounted(() => {\n target.addEventListener(event, handler);\n });\n }\n\n onBeforeUnmount(() => {\n var _unref;\n\n (_unref = unref(target)) === null || _unref === void 0 ? void 0 : _unref.removeEventListener(event, handler);\n });\n}\n\nfunction useClickAway(target, handler) {\n const event = \"pointerdown\";\n\n if (typeof window === 'undefined' || !window) {\n return;\n }\n\n const listener = event => {\n const el = unref(target);\n\n if (!el) {\n return;\n }\n\n if (el === event.target || event.composedPath().includes(el)) {\n return;\n }\n\n handler(event);\n };\n\n return useEventListener(window, event, listener);\n}\n\nfunction useContent(slots, popperNode, content) {\n let observer = null;\n const hasContent = ref(false);\n onMounted(() => {\n if (slots.content !== undefined || content.value) {\n hasContent.value = true;\n }\n\n observer = new MutationObserver(checkContent);\n observer.observe(popperNode.value, {\n childList: true,\n subtree: true\n });\n });\n onBeforeUnmount(() => observer.disconnect());\n /**\n * Watch the content prop\n */\n\n watch(content, content => {\n if (content) {\n hasContent.value = true;\n } else {\n hasContent.value = false;\n }\n });\n /**\n * Check the content slot\n */\n\n const checkContent = () => {\n if (slots.content) {\n hasContent.value = true;\n } else {\n hasContent.value = false;\n }\n };\n\n return {\n hasContent\n };\n}\n\n// import { isHTMLElement } from './instanceOf';\nfunction getBoundingClientRect(element, // eslint-disable-next-line unused-imports/no-unused-vars\nincludeScale) {\n\n var rect = element.getBoundingClientRect();\n var scaleX = 1;\n var scaleY = 1; // FIXME:\n // `offsetWidth` returns an integer while `getBoundingClientRect`\n // returns a float. This results in `scaleX` or `scaleY` being\n // non-1 when it should be for elements that aren't a full pixel in\n // width or height.\n // if (isHTMLElement(element) && includeScale) {\n // const offsetHeight = element.offsetHeight;\n // const offsetWidth = element.offsetWidth;\n // // Do not attempt to divide by 0, otherwise we get `Infinity` as scale\n // // Fallback to 1 in case both values are `0`\n // if (offsetWidth > 0) {\n // scaleX = rect.width / offsetWidth || 1;\n // }\n // if (offsetHeight > 0) {\n // scaleY = rect.height / offsetHeight || 1;\n // }\n // }\n\n return {\n width: rect.width / scaleX,\n height: rect.height / scaleY,\n top: rect.top / scaleY,\n right: rect.right / scaleX,\n bottom: rect.bottom / scaleY,\n left: rect.left / scaleX,\n x: rect.left / scaleX,\n y: rect.top / scaleY\n };\n}\n\nfunction getWindow(node) {\n if (node == null) {\n return window;\n }\n\n if (node.toString() !== '[object Window]') {\n var ownerDocument = node.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView || window : window;\n }\n\n return node;\n}\n\nfunction getWindowScroll(node) {\n var win = getWindow(node);\n var scrollLeft = win.pageXOffset;\n var scrollTop = win.pageYOffset;\n return {\n scrollLeft: scrollLeft,\n scrollTop: scrollTop\n };\n}\n\nfunction isElement(node) {\n var OwnElement = getWindow(node).Element;\n return node instanceof OwnElement || node instanceof Element;\n}\n\nfunction isHTMLElement(node) {\n var OwnElement = getWindow(node).HTMLElement;\n return node instanceof OwnElement || node instanceof HTMLElement;\n}\n\nfunction isShadowRoot(node) {\n // IE 11 has no ShadowRoot\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n\n var OwnElement = getWindow(node).ShadowRoot;\n return node instanceof OwnElement || node instanceof ShadowRoot;\n}\n\nfunction getHTMLElementScroll(element) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n}\n\nfunction getNodeScroll(node) {\n if (node === getWindow(node) || !isHTMLElement(node)) {\n return getWindowScroll(node);\n } else {\n return getHTMLElementScroll(node);\n }\n}\n\nfunction getNodeName(element) {\n return element ? (element.nodeName || '').toLowerCase() : null;\n}\n\nfunction getDocumentElement(element) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return ((isElement(element) ? element.ownerDocument : // $FlowFixMe[prop-missing]\n element.document) || window.document).documentElement;\n}\n\nfunction getWindowScrollBarX(element) {\n // If has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n // Popper 1 is broken in this case and never had a bug report so let's assume\n // it's not an issue. I don't think anyone ever specifies width on \n // anyway.\n // Browsers where the left scrollbar doesn't cause an issue report `0` for\n // this (e.g. Edge 2019, IE11, Safari)\n return getBoundingClientRect(getDocumentElement(element)).left + getWindowScroll(element).scrollLeft;\n}\n\nfunction getComputedStyle(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction isScrollParent(element) {\n // Firefox wants us to check `-x` and `-y` variations as well\n var _getComputedStyle = getComputedStyle(element),\n overflow = _getComputedStyle.overflow,\n overflowX = _getComputedStyle.overflowX,\n overflowY = _getComputedStyle.overflowY;\n\n return /auto|scroll|overlay|hidden/.test(overflow + overflowY + overflowX);\n}\n\nfunction isElementScaled(element) {\n var rect = element.getBoundingClientRect();\n var scaleX = rect.width / element.offsetWidth || 1;\n var scaleY = rect.height / element.offsetHeight || 1;\n return scaleX !== 1 || scaleY !== 1;\n} // Returns the composite rect of an element relative to its offsetParent.\n// Composite means it takes into account transforms as well as layout.\n\n\nfunction getCompositeRect(elementOrVirtualElement, offsetParent, isFixed) {\n if (isFixed === void 0) {\n isFixed = false;\n }\n\n var isOffsetParentAnElement = isHTMLElement(offsetParent);\n isHTMLElement(offsetParent) && isElementScaled(offsetParent);\n var documentElement = getDocumentElement(offsetParent);\n var rect = getBoundingClientRect(elementOrVirtualElement);\n var scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n var offsets = {\n x: 0,\n y: 0\n };\n\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || // https://github.com/popperjs/popper-core/issues/1078\n isScrollParent(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n\n if (isHTMLElement(offsetParent)) {\n offsets = getBoundingClientRect(offsetParent);\n offsets.x += offsetParent.clientLeft;\n offsets.y += offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\n// means it doesn't take into account transforms.\n\nfunction getLayoutRect(element) {\n var clientRect = getBoundingClientRect(element); // Use the clientRect sizes if it's not been transformed.\n // Fixes https://github.com/popperjs/popper-core/issues/1223\n\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n if (Math.abs(clientRect.width - width) <= 1) {\n width = clientRect.width;\n }\n\n if (Math.abs(clientRect.height - height) <= 1) {\n height = clientRect.height;\n }\n\n return {\n x: element.offsetLeft,\n y: element.offsetTop,\n width: width,\n height: height\n };\n}\n\nfunction getParentNode(element) {\n if (getNodeName(element) === 'html') {\n return element;\n }\n\n return (// this is a quicker (but less type safe) way to save quite some bytes from the bundle\n // $FlowFixMe[incompatible-return]\n // $FlowFixMe[prop-missing]\n element.assignedSlot || // step into the shadow DOM of the parent of a slotted node\n element.parentNode || ( // DOM Element detected\n isShadowRoot(element) ? element.host : null) || // ShadowRoot detected\n // $FlowFixMe[incompatible-call]: HTMLElement is a Node\n getDocumentElement(element) // fallback\n\n );\n}\n\nfunction getScrollParent(node) {\n if (['html', 'body', '#document'].indexOf(getNodeName(node)) >= 0) {\n // $FlowFixMe[incompatible-return]: assume body is always available\n return node.ownerDocument.body;\n }\n\n if (isHTMLElement(node) && isScrollParent(node)) {\n return node;\n }\n\n return getScrollParent(getParentNode(node));\n}\n\n/*\ngiven a DOM element, return the list of all scroll parents, up the list of ancesors\nuntil we get to the top window object. This list is what we attach scroll listeners\nto, because if any of these parent elements scroll, we'll need to re-calculate the\nreference element's position.\n*/\n\nfunction listScrollParents(element, list) {\n var _element$ownerDocumen;\n\n if (list === void 0) {\n list = [];\n }\n\n var scrollParent = getScrollParent(element);\n var isBody = scrollParent === ((_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body);\n var win = getWindow(scrollParent);\n var target = isBody ? [win].concat(win.visualViewport || [], isScrollParent(scrollParent) ? scrollParent : []) : scrollParent;\n var updatedList = list.concat(target);\n return isBody ? updatedList : // $FlowFixMe[incompatible-call]: isBody tells us target will be an HTMLElement here\n updatedList.concat(listScrollParents(getParentNode(target)));\n}\n\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].indexOf(getNodeName(element)) >= 0;\n}\n\nfunction getTrueOffsetParent(element) {\n if (!isHTMLElement(element) || // https://github.com/popperjs/popper-core/issues/837\n getComputedStyle(element).position === 'fixed') {\n return null;\n }\n\n return element.offsetParent;\n} // `.offsetParent` reports `null` for fixed elements, while absolute elements\n// return the containing block\n\n\nfunction getContainingBlock(element) {\n var isFirefox = navigator.userAgent.toLowerCase().indexOf('firefox') !== -1;\n var isIE = navigator.userAgent.indexOf('Trident') !== -1;\n\n if (isIE && isHTMLElement(element)) {\n // In IE 9, 10 and 11 fixed elements containing block is always established by the viewport\n var elementCss = getComputedStyle(element);\n\n if (elementCss.position === 'fixed') {\n return null;\n }\n }\n\n var currentNode = getParentNode(element);\n\n while (isHTMLElement(currentNode) && ['html', 'body'].indexOf(getNodeName(currentNode)) < 0) {\n var css = getComputedStyle(currentNode); // This is non-exhaustive but covers the most common CSS properties that\n // create a containing block.\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n\n if (css.transform !== 'none' || css.perspective !== 'none' || css.contain === 'paint' || ['transform', 'perspective'].indexOf(css.willChange) !== -1 || isFirefox && css.willChange === 'filter' || isFirefox && css.filter && css.filter !== 'none') {\n return currentNode;\n } else {\n currentNode = currentNode.parentNode;\n }\n }\n\n return null;\n} // Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\n\n\nfunction getOffsetParent(element) {\n var window = getWindow(element);\n var offsetParent = getTrueOffsetParent(element);\n\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent);\n }\n\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle(offsetParent).position === 'static')) {\n return window;\n }\n\n return offsetParent || getContainingBlock(element) || window;\n}\n\nvar top = 'top';\nvar bottom = 'bottom';\nvar right = 'right';\nvar left = 'left';\nvar auto = 'auto';\nvar basePlacements = [top, bottom, right, left];\nvar start = 'start';\nvar end = 'end';\nvar clippingParents = 'clippingParents';\nvar viewport = 'viewport';\nvar popper = 'popper';\nvar reference = 'reference';\nvar variationPlacements = /*#__PURE__*/basePlacements.reduce(function (acc, placement) {\n return acc.concat([placement + \"-\" + start, placement + \"-\" + end]);\n}, []);\nvar placements = /*#__PURE__*/[].concat(basePlacements, [auto]).reduce(function (acc, placement) {\n return acc.concat([placement, placement + \"-\" + start, placement + \"-\" + end]);\n}, []); // modifiers that need to read the DOM\n\nvar beforeRead = 'beforeRead';\nvar read = 'read';\nvar afterRead = 'afterRead'; // pure-logic modifiers\n\nvar beforeMain = 'beforeMain';\nvar main = 'main';\nvar afterMain = 'afterMain'; // modifier with the purpose to write to the DOM (or write into a framework state)\n\nvar beforeWrite = 'beforeWrite';\nvar write = 'write';\nvar afterWrite = 'afterWrite';\nvar modifierPhases = [beforeRead, read, afterRead, beforeMain, main, afterMain, beforeWrite, write, afterWrite];\n\nfunction order(modifiers) {\n var map = new Map();\n var visited = new Set();\n var result = [];\n modifiers.forEach(function (modifier) {\n map.set(modifier.name, modifier);\n }); // On visiting object, check for its dependencies and visit them recursively\n\n function sort(modifier) {\n visited.add(modifier.name);\n var requires = [].concat(modifier.requires || [], modifier.requiresIfExists || []);\n requires.forEach(function (dep) {\n if (!visited.has(dep)) {\n var depModifier = map.get(dep);\n\n if (depModifier) {\n sort(depModifier);\n }\n }\n });\n result.push(modifier);\n }\n\n modifiers.forEach(function (modifier) {\n if (!visited.has(modifier.name)) {\n // check for visited object\n sort(modifier);\n }\n });\n return result;\n}\n\nfunction orderModifiers(modifiers) {\n // order based on dependencies\n var orderedModifiers = order(modifiers); // order based on phase\n\n return modifierPhases.reduce(function (acc, phase) {\n return acc.concat(orderedModifiers.filter(function (modifier) {\n return modifier.phase === phase;\n }));\n }, []);\n}\n\nfunction debounce(fn) {\n var pending;\n return function () {\n if (!pending) {\n pending = new Promise(function (resolve) {\n Promise.resolve().then(function () {\n pending = undefined;\n resolve(fn());\n });\n });\n }\n\n return pending;\n };\n}\n\nfunction getBasePlacement(placement) {\n return placement.split('-')[0];\n}\n\nfunction mergeByName(modifiers) {\n var merged = modifiers.reduce(function (merged, current) {\n var existing = merged[current.name];\n merged[current.name] = existing ? Object.assign({}, existing, current, {\n options: Object.assign({}, existing.options, current.options),\n data: Object.assign({}, existing.data, current.data)\n }) : current;\n return merged;\n }, {}); // IE11 does not support Object.values\n\n return Object.keys(merged).map(function (key) {\n return merged[key];\n });\n}\n\nfunction getViewportRect(element) {\n var win = getWindow(element);\n var html = getDocumentElement(element);\n var visualViewport = win.visualViewport;\n var width = html.clientWidth;\n var height = html.clientHeight;\n var x = 0;\n var y = 0; // NB: This isn't supported on iOS <= 12. If the keyboard is open, the popper\n // can be obscured underneath it.\n // Also, `html.clientHeight` adds the bottom bar height in Safari iOS, even\n // if it isn't open, so if this isn't available, the popper will be detected\n // to overflow the bottom of the screen too early.\n\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height; // Uses Layout Viewport (like Chrome; Safari does not currently)\n // In Chrome, it returns a value very close to 0 (+/-) but contains rounding\n // errors due to floating point numbers, so we need to check precision.\n // Safari returns a number <= 0, usually < -1 when pinch-zoomed\n // Feature detection fails in mobile emulation mode in Chrome.\n // Math.abs(win.innerWidth / visualViewport.scale - visualViewport.width) <\n // 0.001\n // Fallback here: \"Not Safari\" userAgent\n\n if (!/^((?!chrome|android).)*safari/i.test(navigator.userAgent)) {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n\n return {\n width: width,\n height: height,\n x: x + getWindowScrollBarX(element),\n y: y\n };\n}\n\nvar max = Math.max;\nvar min = Math.min;\nvar round = Math.round;\n\n// of the `` and `` rect bounds if horizontally scrollable\n\nfunction getDocumentRect(element) {\n var _element$ownerDocumen;\n\n var html = getDocumentElement(element);\n var winScroll = getWindowScroll(element);\n var body = (_element$ownerDocumen = element.ownerDocument) == null ? void 0 : _element$ownerDocumen.body;\n var width = max(html.scrollWidth, html.clientWidth, body ? body.scrollWidth : 0, body ? body.clientWidth : 0);\n var height = max(html.scrollHeight, html.clientHeight, body ? body.scrollHeight : 0, body ? body.clientHeight : 0);\n var x = -winScroll.scrollLeft + getWindowScrollBarX(element);\n var y = -winScroll.scrollTop;\n\n if (getComputedStyle(body || html).direction === 'rtl') {\n x += max(html.clientWidth, body ? body.clientWidth : 0) - width;\n }\n\n return {\n width: width,\n height: height,\n x: x,\n y: y\n };\n}\n\nfunction contains(parent, child) {\n var rootNode = child.getRootNode && child.getRootNode(); // First, attempt with faster native method\n\n if (parent.contains(child)) {\n return true;\n } // then fallback to custom implementation with Shadow DOM support\n else if (rootNode && isShadowRoot(rootNode)) {\n var next = child;\n\n do {\n if (next && parent.isSameNode(next)) {\n return true;\n } // $FlowFixMe[prop-missing]: need a better way to handle this...\n\n\n next = next.parentNode || next.host;\n } while (next);\n } // Give up, the result is false\n\n\n return false;\n}\n\nfunction rectToClientRect(rect) {\n return Object.assign({}, rect, {\n left: rect.x,\n top: rect.y,\n right: rect.x + rect.width,\n bottom: rect.y + rect.height\n });\n}\n\nfunction getInnerBoundingClientRect(element) {\n var rect = getBoundingClientRect(element);\n rect.top = rect.top + element.clientTop;\n rect.left = rect.left + element.clientLeft;\n rect.bottom = rect.top + element.clientHeight;\n rect.right = rect.left + element.clientWidth;\n rect.width = element.clientWidth;\n rect.height = element.clientHeight;\n rect.x = rect.left;\n rect.y = rect.top;\n return rect;\n}\n\nfunction getClientRectFromMixedType(element, clippingParent) {\n return clippingParent === viewport ? rectToClientRect(getViewportRect(element)) : isHTMLElement(clippingParent) ? getInnerBoundingClientRect(clippingParent) : rectToClientRect(getDocumentRect(getDocumentElement(element)));\n} // A \"clipping parent\" is an overflowable container with the characteristic of\n// clipping (or hiding) overflowing elements with a position different from\n// `initial`\n\n\nfunction getClippingParents(element) {\n var clippingParents = listScrollParents(getParentNode(element));\n var canEscapeClipping = ['absolute', 'fixed'].indexOf(getComputedStyle(element).position) >= 0;\n var clipperElement = canEscapeClipping && isHTMLElement(element) ? getOffsetParent(element) : element;\n\n if (!isElement(clipperElement)) {\n return [];\n } // $FlowFixMe[incompatible-return]: https://github.com/facebook/flow/issues/1414\n\n\n return clippingParents.filter(function (clippingParent) {\n return isElement(clippingParent) && contains(clippingParent, clipperElement) && getNodeName(clippingParent) !== 'body';\n });\n} // Gets the maximum area that the element is visible in due to any number of\n// clipping parents\n\n\nfunction getClippingRect(element, boundary, rootBoundary) {\n var mainClippingParents = boundary === 'clippingParents' ? getClippingParents(element) : [].concat(boundary);\n var clippingParents = [].concat(mainClippingParents, [rootBoundary]);\n var firstClippingParent = clippingParents[0];\n var clippingRect = clippingParents.reduce(function (accRect, clippingParent) {\n var rect = getClientRectFromMixedType(element, clippingParent);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromMixedType(element, firstClippingParent));\n clippingRect.width = clippingRect.right - clippingRect.left;\n clippingRect.height = clippingRect.bottom - clippingRect.top;\n clippingRect.x = clippingRect.left;\n clippingRect.y = clippingRect.top;\n return clippingRect;\n}\n\nfunction getVariation(placement) {\n return placement.split('-')[1];\n}\n\nfunction getMainAxisFromPlacement(placement) {\n return ['top', 'bottom'].indexOf(placement) >= 0 ? 'x' : 'y';\n}\n\nfunction computeOffsets(_ref) {\n var reference = _ref.reference,\n element = _ref.element,\n placement = _ref.placement;\n var basePlacement = placement ? getBasePlacement(placement) : null;\n var variation = placement ? getVariation(placement) : null;\n var commonX = reference.x + reference.width / 2 - element.width / 2;\n var commonY = reference.y + reference.height / 2 - element.height / 2;\n var offsets;\n\n switch (basePlacement) {\n case top:\n offsets = {\n x: commonX,\n y: reference.y - element.height\n };\n break;\n\n case bottom:\n offsets = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n\n case right:\n offsets = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n\n case left:\n offsets = {\n x: reference.x - element.width,\n y: commonY\n };\n break;\n\n default:\n offsets = {\n x: reference.x,\n y: reference.y\n };\n }\n\n var mainAxis = basePlacement ? getMainAxisFromPlacement(basePlacement) : null;\n\n if (mainAxis != null) {\n var len = mainAxis === 'y' ? 'height' : 'width';\n\n switch (variation) {\n case start:\n offsets[mainAxis] = offsets[mainAxis] - (reference[len] / 2 - element[len] / 2);\n break;\n\n case end:\n offsets[mainAxis] = offsets[mainAxis] + (reference[len] / 2 - element[len] / 2);\n break;\n }\n }\n\n return offsets;\n}\n\nfunction getFreshSideObject() {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n };\n}\n\nfunction mergePaddingObject(paddingObject) {\n return Object.assign({}, getFreshSideObject(), paddingObject);\n}\n\nfunction expandToHashMap(value, keys) {\n return keys.reduce(function (hashMap, key) {\n hashMap[key] = value;\n return hashMap;\n }, {});\n}\n\nfunction detectOverflow(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n _options$placement = _options.placement,\n placement = _options$placement === void 0 ? state.placement : _options$placement,\n _options$boundary = _options.boundary,\n boundary = _options$boundary === void 0 ? clippingParents : _options$boundary,\n _options$rootBoundary = _options.rootBoundary,\n rootBoundary = _options$rootBoundary === void 0 ? viewport : _options$rootBoundary,\n _options$elementConte = _options.elementContext,\n elementContext = _options$elementConte === void 0 ? popper : _options$elementConte,\n _options$altBoundary = _options.altBoundary,\n altBoundary = _options$altBoundary === void 0 ? false : _options$altBoundary,\n _options$padding = _options.padding,\n padding = _options$padding === void 0 ? 0 : _options$padding;\n var paddingObject = mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n var altContext = elementContext === popper ? reference : popper;\n var popperRect = state.rects.popper;\n var element = state.elements[altBoundary ? altContext : elementContext];\n var clippingClientRect = getClippingRect(isElement(element) ? element : element.contextElement || getDocumentElement(state.elements.popper), boundary, rootBoundary);\n var referenceClientRect = getBoundingClientRect(state.elements.reference);\n var popperOffsets = computeOffsets({\n reference: referenceClientRect,\n element: popperRect,\n strategy: 'absolute',\n placement: placement\n });\n var popperClientRect = rectToClientRect(Object.assign({}, popperRect, popperOffsets));\n var elementClientRect = elementContext === popper ? popperClientRect : referenceClientRect; // positive = overflowing the clipping rect\n // 0 or negative = within the clipping rect\n\n var overflowOffsets = {\n top: clippingClientRect.top - elementClientRect.top + paddingObject.top,\n bottom: elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom,\n left: clippingClientRect.left - elementClientRect.left + paddingObject.left,\n right: elementClientRect.right - clippingClientRect.right + paddingObject.right\n };\n var offsetData = state.modifiersData.offset; // Offsets can be applied only to the popper element\n\n if (elementContext === popper && offsetData) {\n var offset = offsetData[placement];\n Object.keys(overflowOffsets).forEach(function (key) {\n var multiply = [right, bottom].indexOf(key) >= 0 ? 1 : -1;\n var axis = [top, bottom].indexOf(key) >= 0 ? 'y' : 'x';\n overflowOffsets[key] += offset[axis] * multiply;\n });\n }\n\n return overflowOffsets;\n}\n\nvar DEFAULT_OPTIONS = {\n placement: 'bottom',\n modifiers: [],\n strategy: 'absolute'\n};\n\nfunction areValidElements() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return !args.some(function (element) {\n return !(element && typeof element.getBoundingClientRect === 'function');\n });\n}\n\nfunction popperGenerator(generatorOptions) {\n if (generatorOptions === void 0) {\n generatorOptions = {};\n }\n\n var _generatorOptions = generatorOptions,\n _generatorOptions$def = _generatorOptions.defaultModifiers,\n defaultModifiers = _generatorOptions$def === void 0 ? [] : _generatorOptions$def,\n _generatorOptions$def2 = _generatorOptions.defaultOptions,\n defaultOptions = _generatorOptions$def2 === void 0 ? DEFAULT_OPTIONS : _generatorOptions$def2;\n return function createPopper(reference, popper, options) {\n if (options === void 0) {\n options = defaultOptions;\n }\n\n var state = {\n placement: 'bottom',\n orderedModifiers: [],\n options: Object.assign({}, DEFAULT_OPTIONS, defaultOptions),\n modifiersData: {},\n elements: {\n reference: reference,\n popper: popper\n },\n attributes: {},\n styles: {}\n };\n var effectCleanupFns = [];\n var isDestroyed = false;\n var instance = {\n state: state,\n setOptions: function setOptions(setOptionsAction) {\n var options = typeof setOptionsAction === 'function' ? setOptionsAction(state.options) : setOptionsAction;\n cleanupModifierEffects();\n state.options = Object.assign({}, defaultOptions, state.options, options);\n state.scrollParents = {\n reference: isElement(reference) ? listScrollParents(reference) : reference.contextElement ? listScrollParents(reference.contextElement) : [],\n popper: listScrollParents(popper)\n }; // Orders the modifiers based on their dependencies and `phase`\n // properties\n\n var orderedModifiers = orderModifiers(mergeByName([].concat(defaultModifiers, state.options.modifiers))); // Strip out disabled modifiers\n\n state.orderedModifiers = orderedModifiers.filter(function (m) {\n return m.enabled;\n }); // Validate the provided modifiers so that the consumer will get warned\n\n runModifierEffects();\n return instance.update();\n },\n // Sync update – it will always be executed, even if not necessary. This\n // is useful for low frequency updates where sync behavior simplifies the\n // logic.\n // For high frequency updates (e.g. `resize` and `scroll` events), always\n // prefer the async Popper#update method\n forceUpdate: function forceUpdate() {\n if (isDestroyed) {\n return;\n }\n\n var _state$elements = state.elements,\n reference = _state$elements.reference,\n popper = _state$elements.popper; // Don't proceed if `reference` or `popper` are not valid elements\n // anymore\n\n if (!areValidElements(reference, popper)) {\n\n return;\n } // Store the reference and popper rects to be read by modifiers\n\n\n state.rects = {\n reference: getCompositeRect(reference, getOffsetParent(popper), state.options.strategy === 'fixed'),\n popper: getLayoutRect(popper)\n }; // Modifiers have the ability to reset the current update cycle. The\n // most common use case for this is the `flip` modifier changing the\n // placement, which then needs to re-run all the modifiers, because the\n // logic was previously ran for the previous placement and is therefore\n // stale/incorrect\n\n state.reset = false;\n state.placement = state.options.placement; // On each update cycle, the `modifiersData` property for each modifier\n // is filled with the initial data specified by the modifier. This means\n // it doesn't persist and is fresh on each update.\n // To ensure persistent data, use `${name}#persistent`\n\n state.orderedModifiers.forEach(function (modifier) {\n return state.modifiersData[modifier.name] = Object.assign({}, modifier.data);\n });\n\n for (var index = 0; index < state.orderedModifiers.length; index++) {\n\n if (state.reset === true) {\n state.reset = false;\n index = -1;\n continue;\n }\n\n var _state$orderedModifie = state.orderedModifiers[index],\n fn = _state$orderedModifie.fn,\n _state$orderedModifie2 = _state$orderedModifie.options,\n _options = _state$orderedModifie2 === void 0 ? {} : _state$orderedModifie2,\n name = _state$orderedModifie.name;\n\n if (typeof fn === 'function') {\n state = fn({\n state: state,\n options: _options,\n name: name,\n instance: instance\n }) || state;\n }\n }\n },\n // Async and optimistically optimized update – it will not be executed if\n // not necessary (debounced to run at most once-per-tick)\n update: debounce(function () {\n return new Promise(function (resolve) {\n instance.forceUpdate();\n resolve(state);\n });\n }),\n destroy: function destroy() {\n cleanupModifierEffects();\n isDestroyed = true;\n }\n };\n\n if (!areValidElements(reference, popper)) {\n\n return instance;\n }\n\n instance.setOptions(options).then(function (state) {\n if (!isDestroyed && options.onFirstUpdate) {\n options.onFirstUpdate(state);\n }\n }); // Modifiers have the ability to execute arbitrary code before the first\n // update cycle runs. They will be executed in the same order as the update\n // cycle. This is useful when a modifier adds some persistent data that\n // other modifiers need to use, but the modifier is run after the dependent\n // one.\n\n function runModifierEffects() {\n state.orderedModifiers.forEach(function (_ref3) {\n var name = _ref3.name,\n _ref3$options = _ref3.options,\n options = _ref3$options === void 0 ? {} : _ref3$options,\n effect = _ref3.effect;\n\n if (typeof effect === 'function') {\n var cleanupFn = effect({\n state: state,\n name: name,\n instance: instance,\n options: options\n });\n\n var noopFn = function noopFn() {};\n\n effectCleanupFns.push(cleanupFn || noopFn);\n }\n });\n }\n\n function cleanupModifierEffects() {\n effectCleanupFns.forEach(function (fn) {\n return fn();\n });\n effectCleanupFns = [];\n }\n\n return instance;\n };\n}\n\nvar passive = {\n passive: true\n};\n\nfunction effect$2(_ref) {\n var state = _ref.state,\n instance = _ref.instance,\n options = _ref.options;\n var _options$scroll = options.scroll,\n scroll = _options$scroll === void 0 ? true : _options$scroll,\n _options$resize = options.resize,\n resize = _options$resize === void 0 ? true : _options$resize;\n var window = getWindow(state.elements.popper);\n var scrollParents = [].concat(state.scrollParents.reference, state.scrollParents.popper);\n\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.addEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.addEventListener('resize', instance.update, passive);\n }\n\n return function () {\n if (scroll) {\n scrollParents.forEach(function (scrollParent) {\n scrollParent.removeEventListener('scroll', instance.update, passive);\n });\n }\n\n if (resize) {\n window.removeEventListener('resize', instance.update, passive);\n }\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar eventListeners = {\n name: 'eventListeners',\n enabled: true,\n phase: 'write',\n fn: function fn() {},\n effect: effect$2,\n data: {}\n};\n\nfunction popperOffsets(_ref) {\n var state = _ref.state,\n name = _ref.name;\n // Offsets are the actual position the popper needs to have to be\n // properly positioned near its reference element\n // This is the most basic placement, and will be adjusted by\n // the modifiers in the next step\n state.modifiersData[name] = computeOffsets({\n reference: state.rects.reference,\n element: state.rects.popper,\n strategy: 'absolute',\n placement: state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar popperOffsets$1 = {\n name: 'popperOffsets',\n enabled: true,\n phase: 'read',\n fn: popperOffsets,\n data: {}\n};\n\nvar unsetSides = {\n top: 'auto',\n right: 'auto',\n bottom: 'auto',\n left: 'auto'\n}; // Round the offsets to the nearest suitable subpixel based on the DPR.\n// Zooming can change the DPR, but it seems to report a value that will\n// cleanly divide the values into the appropriate subpixels.\n\nfunction roundOffsetsByDPR(_ref) {\n var x = _ref.x,\n y = _ref.y;\n var win = window;\n var dpr = win.devicePixelRatio || 1;\n return {\n x: round(round(x * dpr) / dpr) || 0,\n y: round(round(y * dpr) / dpr) || 0\n };\n}\n\nfunction mapToStyles(_ref2) {\n var _Object$assign2;\n\n var popper = _ref2.popper,\n popperRect = _ref2.popperRect,\n placement = _ref2.placement,\n variation = _ref2.variation,\n offsets = _ref2.offsets,\n position = _ref2.position,\n gpuAcceleration = _ref2.gpuAcceleration,\n adaptive = _ref2.adaptive,\n roundOffsets = _ref2.roundOffsets;\n\n var _ref3 = roundOffsets === true ? roundOffsetsByDPR(offsets) : typeof roundOffsets === 'function' ? roundOffsets(offsets) : offsets,\n _ref3$x = _ref3.x,\n x = _ref3$x === void 0 ? 0 : _ref3$x,\n _ref3$y = _ref3.y,\n y = _ref3$y === void 0 ? 0 : _ref3$y;\n\n var hasX = offsets.hasOwnProperty('x');\n var hasY = offsets.hasOwnProperty('y');\n var sideX = left;\n var sideY = top;\n var win = window;\n\n if (adaptive) {\n var offsetParent = getOffsetParent(popper);\n var heightProp = 'clientHeight';\n var widthProp = 'clientWidth';\n\n if (offsetParent === getWindow(popper)) {\n offsetParent = getDocumentElement(popper);\n\n if (getComputedStyle(offsetParent).position !== 'static' && position === 'absolute') {\n heightProp = 'scrollHeight';\n widthProp = 'scrollWidth';\n }\n } // $FlowFixMe[incompatible-cast]: force type refinement, we compare offsetParent with window above, but Flow doesn't detect it\n\n\n offsetParent = offsetParent;\n\n if (placement === top || (placement === left || placement === right) && variation === end) {\n sideY = bottom; // $FlowFixMe[prop-missing]\n\n y -= offsetParent[heightProp] - popperRect.height;\n y *= gpuAcceleration ? 1 : -1;\n }\n\n if (placement === left || (placement === top || placement === bottom) && variation === end) {\n sideX = right; // $FlowFixMe[prop-missing]\n\n x -= offsetParent[widthProp] - popperRect.width;\n x *= gpuAcceleration ? 1 : -1;\n }\n }\n\n var commonStyles = Object.assign({\n position: position\n }, adaptive && unsetSides);\n\n if (gpuAcceleration) {\n var _Object$assign;\n\n return Object.assign({}, commonStyles, (_Object$assign = {}, _Object$assign[sideY] = hasY ? '0' : '', _Object$assign[sideX] = hasX ? '0' : '', _Object$assign.transform = (win.devicePixelRatio || 1) <= 1 ? \"translate(\" + x + \"px, \" + y + \"px)\" : \"translate3d(\" + x + \"px, \" + y + \"px, 0)\", _Object$assign));\n }\n\n return Object.assign({}, commonStyles, (_Object$assign2 = {}, _Object$assign2[sideY] = hasY ? y + \"px\" : '', _Object$assign2[sideX] = hasX ? x + \"px\" : '', _Object$assign2.transform = '', _Object$assign2));\n}\n\nfunction computeStyles(_ref4) {\n var state = _ref4.state,\n options = _ref4.options;\n var _options$gpuAccelerat = options.gpuAcceleration,\n gpuAcceleration = _options$gpuAccelerat === void 0 ? true : _options$gpuAccelerat,\n _options$adaptive = options.adaptive,\n adaptive = _options$adaptive === void 0 ? true : _options$adaptive,\n _options$roundOffsets = options.roundOffsets,\n roundOffsets = _options$roundOffsets === void 0 ? true : _options$roundOffsets;\n\n var commonStyles = {\n placement: getBasePlacement(state.placement),\n variation: getVariation(state.placement),\n popper: state.elements.popper,\n popperRect: state.rects.popper,\n gpuAcceleration: gpuAcceleration\n };\n\n if (state.modifiersData.popperOffsets != null) {\n state.styles.popper = Object.assign({}, state.styles.popper, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.popperOffsets,\n position: state.options.strategy,\n adaptive: adaptive,\n roundOffsets: roundOffsets\n })));\n }\n\n if (state.modifiersData.arrow != null) {\n state.styles.arrow = Object.assign({}, state.styles.arrow, mapToStyles(Object.assign({}, commonStyles, {\n offsets: state.modifiersData.arrow,\n position: 'absolute',\n adaptive: false,\n roundOffsets: roundOffsets\n })));\n }\n\n state.attributes.popper = Object.assign({}, state.attributes.popper, {\n 'data-popper-placement': state.placement\n });\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar computeStyles$1 = {\n name: 'computeStyles',\n enabled: true,\n phase: 'beforeWrite',\n fn: computeStyles,\n data: {}\n};\n\n// and applies them to the HTMLElements such as popper and arrow\n\nfunction applyStyles(_ref) {\n var state = _ref.state;\n Object.keys(state.elements).forEach(function (name) {\n var style = state.styles[name] || {};\n var attributes = state.attributes[name] || {};\n var element = state.elements[name]; // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n } // Flow doesn't support to extend this property, but it's the most\n // effective way to apply styles to an HTMLElement\n // $FlowFixMe[cannot-write]\n\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (name) {\n var value = attributes[name];\n\n if (value === false) {\n element.removeAttribute(name);\n } else {\n element.setAttribute(name, value === true ? '' : value);\n }\n });\n });\n}\n\nfunction effect$1(_ref2) {\n var state = _ref2.state;\n var initialStyles = {\n popper: {\n position: state.options.strategy,\n left: '0',\n top: '0',\n margin: '0'\n },\n arrow: {\n position: 'absolute'\n },\n reference: {}\n };\n Object.assign(state.elements.popper.style, initialStyles.popper);\n state.styles = initialStyles;\n\n if (state.elements.arrow) {\n Object.assign(state.elements.arrow.style, initialStyles.arrow);\n }\n\n return function () {\n Object.keys(state.elements).forEach(function (name) {\n var element = state.elements[name];\n var attributes = state.attributes[name] || {};\n var styleProperties = Object.keys(state.styles.hasOwnProperty(name) ? state.styles[name] : initialStyles[name]); // Set all values to an empty string to unset them\n\n var style = styleProperties.reduce(function (style, property) {\n style[property] = '';\n return style;\n }, {}); // arrow is optional + virtual elements\n\n if (!isHTMLElement(element) || !getNodeName(element)) {\n return;\n }\n\n Object.assign(element.style, style);\n Object.keys(attributes).forEach(function (attribute) {\n element.removeAttribute(attribute);\n });\n });\n };\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar applyStyles$1 = {\n name: 'applyStyles',\n enabled: true,\n phase: 'write',\n fn: applyStyles,\n effect: effect$1,\n requires: ['computeStyles']\n};\n\nvar defaultModifiers = [eventListeners, popperOffsets$1, computeStyles$1, applyStyles$1];\nvar createPopper = /*#__PURE__*/popperGenerator({\n defaultModifiers: defaultModifiers\n}); // eslint-disable-next-line import/no-unused-modules\n\nfunction getAltAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\n\nfunction within(min$1, value, max$1) {\n return max(min$1, min(value, max$1));\n}\n\nfunction preventOverflow(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? false : _options$altAxis,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n padding = options.padding,\n _options$tether = options.tether,\n tether = _options$tether === void 0 ? true : _options$tether,\n _options$tetherOffset = options.tetherOffset,\n tetherOffset = _options$tetherOffset === void 0 ? 0 : _options$tetherOffset;\n var overflow = detectOverflow(state, {\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n altBoundary: altBoundary\n });\n var basePlacement = getBasePlacement(state.placement);\n var variation = getVariation(state.placement);\n var isBasePlacement = !variation;\n var mainAxis = getMainAxisFromPlacement(basePlacement);\n var altAxis = getAltAxis(mainAxis);\n var popperOffsets = state.modifiersData.popperOffsets;\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var tetherOffsetValue = typeof tetherOffset === 'function' ? tetherOffset(Object.assign({}, state.rects, {\n placement: state.placement\n })) : tetherOffset;\n var data = {\n x: 0,\n y: 0\n };\n\n if (!popperOffsets) {\n return;\n }\n\n if (checkMainAxis || checkAltAxis) {\n var mainSide = mainAxis === 'y' ? top : left;\n var altSide = mainAxis === 'y' ? bottom : right;\n var len = mainAxis === 'y' ? 'height' : 'width';\n var offset = popperOffsets[mainAxis];\n var min$1 = popperOffsets[mainAxis] + overflow[mainSide];\n var max$1 = popperOffsets[mainAxis] - overflow[altSide];\n var additive = tether ? -popperRect[len] / 2 : 0;\n var minLen = variation === start ? referenceRect[len] : popperRect[len];\n var maxLen = variation === start ? -popperRect[len] : -referenceRect[len]; // We need to include the arrow in the calculation so the arrow doesn't go\n // outside the reference bounds\n\n var arrowElement = state.elements.arrow;\n var arrowRect = tether && arrowElement ? getLayoutRect(arrowElement) : {\n width: 0,\n height: 0\n };\n var arrowPaddingObject = state.modifiersData['arrow#persistent'] ? state.modifiersData['arrow#persistent'].padding : getFreshSideObject();\n var arrowPaddingMin = arrowPaddingObject[mainSide];\n var arrowPaddingMax = arrowPaddingObject[altSide]; // If the reference length is smaller than the arrow length, we don't want\n // to include its full size in the calculation. If the reference is small\n // and near the edge of a boundary, the popper can overflow even if the\n // reference is not overflowing as well (e.g. virtual elements with no\n // width or height)\n\n var arrowLen = within(0, referenceRect[len], arrowRect[len]);\n var minOffset = isBasePlacement ? referenceRect[len] / 2 - additive - arrowLen - arrowPaddingMin - tetherOffsetValue : minLen - arrowLen - arrowPaddingMin - tetherOffsetValue;\n var maxOffset = isBasePlacement ? -referenceRect[len] / 2 + additive + arrowLen + arrowPaddingMax + tetherOffsetValue : maxLen + arrowLen + arrowPaddingMax + tetherOffsetValue;\n var arrowOffsetParent = state.elements.arrow && getOffsetParent(state.elements.arrow);\n var clientOffset = arrowOffsetParent ? mainAxis === 'y' ? arrowOffsetParent.clientTop || 0 : arrowOffsetParent.clientLeft || 0 : 0;\n var offsetModifierValue = state.modifiersData.offset ? state.modifiersData.offset[state.placement][mainAxis] : 0;\n var tetherMin = popperOffsets[mainAxis] + minOffset - offsetModifierValue - clientOffset;\n var tetherMax = popperOffsets[mainAxis] + maxOffset - offsetModifierValue;\n\n if (checkMainAxis) {\n var preventedOffset = within(tether ? min(min$1, tetherMin) : min$1, offset, tether ? max(max$1, tetherMax) : max$1);\n popperOffsets[mainAxis] = preventedOffset;\n data[mainAxis] = preventedOffset - offset;\n }\n\n if (checkAltAxis) {\n var _mainSide = mainAxis === 'x' ? top : left;\n\n var _altSide = mainAxis === 'x' ? bottom : right;\n\n var _offset = popperOffsets[altAxis];\n\n var _min = _offset + overflow[_mainSide];\n\n var _max = _offset - overflow[_altSide];\n\n var _preventedOffset = within(tether ? min(_min, tetherMin) : _min, _offset, tether ? max(_max, tetherMax) : _max);\n\n popperOffsets[altAxis] = _preventedOffset;\n data[altAxis] = _preventedOffset - _offset;\n }\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar preventOverflow$1 = {\n name: 'preventOverflow',\n enabled: true,\n phase: 'main',\n fn: preventOverflow,\n requiresIfExists: ['offset']\n};\n\nvar hash$1 = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash$1[matched];\n });\n}\n\nvar hash = {\n start: 'end',\n end: 'start'\n};\nfunction getOppositeVariationPlacement(placement) {\n return placement.replace(/start|end/g, function (matched) {\n return hash[matched];\n });\n}\n\nfunction computeAutoPlacement(state, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n placement = _options.placement,\n boundary = _options.boundary,\n rootBoundary = _options.rootBoundary,\n padding = _options.padding,\n flipVariations = _options.flipVariations,\n _options$allowedAutoP = _options.allowedAutoPlacements,\n allowedAutoPlacements = _options$allowedAutoP === void 0 ? placements : _options$allowedAutoP;\n var variation = getVariation(placement);\n var placements$1 = variation ? flipVariations ? variationPlacements : variationPlacements.filter(function (placement) {\n return getVariation(placement) === variation;\n }) : basePlacements;\n var allowedPlacements = placements$1.filter(function (placement) {\n return allowedAutoPlacements.indexOf(placement) >= 0;\n });\n\n if (allowedPlacements.length === 0) {\n allowedPlacements = placements$1;\n } // $FlowFixMe[incompatible-type]: Flow seems to have problems with two array unions...\n\n\n var overflows = allowedPlacements.reduce(function (acc, placement) {\n acc[placement] = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding\n })[getBasePlacement(placement)];\n return acc;\n }, {});\n return Object.keys(overflows).sort(function (a, b) {\n return overflows[a] - overflows[b];\n });\n}\n\nfunction getExpandedFallbackPlacements(placement) {\n if (getBasePlacement(placement) === auto) {\n return [];\n }\n\n var oppositePlacement = getOppositePlacement(placement);\n return [getOppositeVariationPlacement(placement), oppositePlacement, getOppositeVariationPlacement(oppositePlacement)];\n}\n\nfunction flip(_ref) {\n var state = _ref.state,\n options = _ref.options,\n name = _ref.name;\n\n if (state.modifiersData[name]._skip) {\n return;\n }\n\n var _options$mainAxis = options.mainAxis,\n checkMainAxis = _options$mainAxis === void 0 ? true : _options$mainAxis,\n _options$altAxis = options.altAxis,\n checkAltAxis = _options$altAxis === void 0 ? true : _options$altAxis,\n specifiedFallbackPlacements = options.fallbackPlacements,\n padding = options.padding,\n boundary = options.boundary,\n rootBoundary = options.rootBoundary,\n altBoundary = options.altBoundary,\n _options$flipVariatio = options.flipVariations,\n flipVariations = _options$flipVariatio === void 0 ? true : _options$flipVariatio,\n allowedAutoPlacements = options.allowedAutoPlacements;\n var preferredPlacement = state.options.placement;\n var basePlacement = getBasePlacement(preferredPlacement);\n var isBasePlacement = basePlacement === preferredPlacement;\n var fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipVariations ? [getOppositePlacement(preferredPlacement)] : getExpandedFallbackPlacements(preferredPlacement));\n var placements = [preferredPlacement].concat(fallbackPlacements).reduce(function (acc, placement) {\n return acc.concat(getBasePlacement(placement) === auto ? computeAutoPlacement(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n padding: padding,\n flipVariations: flipVariations,\n allowedAutoPlacements: allowedAutoPlacements\n }) : placement);\n }, []);\n var referenceRect = state.rects.reference;\n var popperRect = state.rects.popper;\n var checksMap = new Map();\n var makeFallbackChecks = true;\n var firstFittingPlacement = placements[0];\n\n for (var i = 0; i < placements.length; i++) {\n var placement = placements[i];\n\n var _basePlacement = getBasePlacement(placement);\n\n var isStartVariation = getVariation(placement) === start;\n var isVertical = [top, bottom].indexOf(_basePlacement) >= 0;\n var len = isVertical ? 'width' : 'height';\n var overflow = detectOverflow(state, {\n placement: placement,\n boundary: boundary,\n rootBoundary: rootBoundary,\n altBoundary: altBoundary,\n padding: padding\n });\n var mainVariationSide = isVertical ? isStartVariation ? right : left : isStartVariation ? bottom : top;\n\n if (referenceRect[len] > popperRect[len]) {\n mainVariationSide = getOppositePlacement(mainVariationSide);\n }\n\n var altVariationSide = getOppositePlacement(mainVariationSide);\n var checks = [];\n\n if (checkMainAxis) {\n checks.push(overflow[_basePlacement] <= 0);\n }\n\n if (checkAltAxis) {\n checks.push(overflow[mainVariationSide] <= 0, overflow[altVariationSide] <= 0);\n }\n\n if (checks.every(function (check) {\n return check;\n })) {\n firstFittingPlacement = placement;\n makeFallbackChecks = false;\n break;\n }\n\n checksMap.set(placement, checks);\n }\n\n if (makeFallbackChecks) {\n // `2` may be desired in some cases – research later\n var numberOfChecks = flipVariations ? 3 : 1;\n\n var _loop = function _loop(_i) {\n var fittingPlacement = placements.find(function (placement) {\n var checks = checksMap.get(placement);\n\n if (checks) {\n return checks.slice(0, _i).every(function (check) {\n return check;\n });\n }\n });\n\n if (fittingPlacement) {\n firstFittingPlacement = fittingPlacement;\n return \"break\";\n }\n };\n\n for (var _i = numberOfChecks; _i > 0; _i--) {\n var _ret = _loop(_i);\n\n if (_ret === \"break\") break;\n }\n }\n\n if (state.placement !== firstFittingPlacement) {\n state.modifiersData[name]._skip = true;\n state.placement = firstFittingPlacement;\n state.reset = true;\n }\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar flip$1 = {\n name: 'flip',\n enabled: true,\n phase: 'main',\n fn: flip,\n requiresIfExists: ['offset'],\n data: {\n _skip: false\n }\n};\n\nfunction distanceAndSkiddingToXY(placement, rects, offset) {\n var basePlacement = getBasePlacement(placement);\n var invertDistance = [left, top].indexOf(basePlacement) >= 0 ? -1 : 1;\n\n var _ref = typeof offset === 'function' ? offset(Object.assign({}, rects, {\n placement: placement\n })) : offset,\n skidding = _ref[0],\n distance = _ref[1];\n\n skidding = skidding || 0;\n distance = (distance || 0) * invertDistance;\n return [left, right].indexOf(basePlacement) >= 0 ? {\n x: distance,\n y: skidding\n } : {\n x: skidding,\n y: distance\n };\n}\n\nfunction offset(_ref2) {\n var state = _ref2.state,\n options = _ref2.options,\n name = _ref2.name;\n var _options$offset = options.offset,\n offset = _options$offset === void 0 ? [0, 0] : _options$offset;\n var data = placements.reduce(function (acc, placement) {\n acc[placement] = distanceAndSkiddingToXY(placement, state.rects, offset);\n return acc;\n }, {});\n var _data$state$placement = data[state.placement],\n x = _data$state$placement.x,\n y = _data$state$placement.y;\n\n if (state.modifiersData.popperOffsets != null) {\n state.modifiersData.popperOffsets.x += x;\n state.modifiersData.popperOffsets.y += y;\n }\n\n state.modifiersData[name] = data;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar offset$1 = {\n name: 'offset',\n enabled: true,\n phase: 'main',\n requires: ['popperOffsets'],\n fn: offset\n};\n\nvar toPaddingObject = function toPaddingObject(padding, state) {\n padding = typeof padding === 'function' ? padding(Object.assign({}, state.rects, {\n placement: state.placement\n })) : padding;\n return mergePaddingObject(typeof padding !== 'number' ? padding : expandToHashMap(padding, basePlacements));\n};\n\nfunction arrow(_ref) {\n var _state$modifiersData$;\n\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var arrowElement = state.elements.arrow;\n var popperOffsets = state.modifiersData.popperOffsets;\n var basePlacement = getBasePlacement(state.placement);\n var axis = getMainAxisFromPlacement(basePlacement);\n var isVertical = [left, right].indexOf(basePlacement) >= 0;\n var len = isVertical ? 'height' : 'width';\n\n if (!arrowElement || !popperOffsets) {\n return;\n }\n\n var paddingObject = toPaddingObject(options.padding, state);\n var arrowRect = getLayoutRect(arrowElement);\n var minProp = axis === 'y' ? top : left;\n var maxProp = axis === 'y' ? bottom : right;\n var endDiff = state.rects.reference[len] + state.rects.reference[axis] - popperOffsets[axis] - state.rects.popper[len];\n var startDiff = popperOffsets[axis] - state.rects.reference[axis];\n var arrowOffsetParent = getOffsetParent(arrowElement);\n var clientSize = arrowOffsetParent ? axis === 'y' ? arrowOffsetParent.clientHeight || 0 : arrowOffsetParent.clientWidth || 0 : 0;\n var centerToReference = endDiff / 2 - startDiff / 2; // Make sure the arrow doesn't overflow the popper if the center point is\n // outside of the popper bounds\n\n var min = paddingObject[minProp];\n var max = clientSize - arrowRect[len] - paddingObject[maxProp];\n var center = clientSize / 2 - arrowRect[len] / 2 + centerToReference;\n var offset = within(min, center, max); // Prevents breaking syntax highlighting...\n\n var axisProp = axis;\n state.modifiersData[name] = (_state$modifiersData$ = {}, _state$modifiersData$[axisProp] = offset, _state$modifiersData$.centerOffset = offset - center, _state$modifiersData$);\n}\n\nfunction effect(_ref2) {\n var state = _ref2.state,\n options = _ref2.options;\n var _options$element = options.element,\n arrowElement = _options$element === void 0 ? '[data-popper-arrow]' : _options$element;\n\n if (arrowElement == null) {\n return;\n } // CSS selector\n\n\n if (typeof arrowElement === 'string') {\n arrowElement = state.elements.popper.querySelector(arrowElement);\n\n if (!arrowElement) {\n return;\n }\n }\n\n if (!contains(state.elements.popper, arrowElement)) {\n\n return;\n }\n\n state.elements.arrow = arrowElement;\n} // eslint-disable-next-line import/no-unused-modules\n\n\nvar arrow$1 = {\n name: 'arrow',\n enabled: true,\n phase: 'main',\n fn: arrow,\n effect: effect,\n requires: ['popperOffsets'],\n requiresIfExists: ['preventOverflow']\n};\n\nconst toInt = x => parseInt(x, 10);\n\nfunction usePopper({\n arrowPadding,\n emit,\n locked,\n offsetDistance,\n offsetSkid,\n placement,\n popperNode,\n triggerNode\n}) {\n const state = reactive({\n isOpen: false,\n popperInstance: null\n }); // Enable or disable event listeners to optimize performance.\n\n const setPopperEventListeners = enabled => {\n var _state$popperInstance;\n\n (_state$popperInstance = state.popperInstance) === null || _state$popperInstance === void 0 ? void 0 : _state$popperInstance.setOptions(options => ({ ...options,\n modifiers: [...options.modifiers, {\n name: \"eventListeners\",\n enabled\n }]\n }));\n };\n\n const enablePopperEventListeners = () => setPopperEventListeners(true);\n\n const disablePopperEventListeners = () => setPopperEventListeners(false);\n\n const close = () => {\n if (!state.isOpen) {\n return;\n }\n\n state.isOpen = false;\n emit(\"close:popper\");\n };\n\n const open = () => {\n if (state.isOpen) {\n return;\n }\n\n state.isOpen = true;\n emit(\"open:popper\");\n }; // When isOpen or placement change\n\n\n watch([() => state.isOpen, placement], async ([isOpen]) => {\n if (isOpen) {\n await initializePopper();\n enablePopperEventListeners();\n } else {\n disablePopperEventListeners();\n }\n });\n\n const initializePopper = async () => {\n await nextTick();\n state.popperInstance = createPopper(triggerNode.value, popperNode.value, {\n placement: placement.value,\n modifiers: [preventOverflow$1, flip$1, {\n name: \"flip\",\n enabled: !locked.value\n }, arrow$1, {\n name: \"arrow\",\n options: {\n padding: toInt(arrowPadding.value)\n }\n }, offset$1, {\n name: \"offset\",\n options: {\n offset: [toInt(offsetSkid.value), toInt(offsetDistance.value)]\n }\n }]\n }); // Update its position\n\n state.popperInstance.update();\n };\n\n onBeforeUnmount(() => {\n var _state$popperInstance2;\n\n (_state$popperInstance2 = state.popperInstance) === null || _state$popperInstance2 === void 0 ? void 0 : _state$popperInstance2.destroy();\n });\n return { ...toRefs(state),\n open,\n close\n };\n}\n\nconst _hoisted_1$1 = {\n id: \"arrow\",\n \"data-popper-arrow\": \"\"\n};\nfunction render(_ctx, _cache) {\n return openBlock(), createElementBlock(\"div\", _hoisted_1$1);\n}\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z$1 = \"\\n#arrow[data-v-20b7fd4a],\\n #arrow[data-v-20b7fd4a]::before {\\n transition: background 250ms ease-in-out;\\n position: absolute;\\n width: calc(10px - var(--popper-theme-border-width, 0px));\\n height: calc(10px - var(--popper-theme-border-width, 0px));\\n box-sizing: border-box;\\n background: var(--popper-theme-background-color);\\n}\\n#arrow[data-v-20b7fd4a] {\\n visibility: hidden;\\n}\\n#arrow[data-v-20b7fd4a]::before {\\n visibility: visible;\\n content: \\\"\\\";\\n transform: rotate(45deg);\\n}\\n\\n /* Top arrow */\\n.popper[data-popper-placement^=\\\"top\\\"] > #arrow[data-v-20b7fd4a] {\\n bottom: -5px;\\n}\\n.popper[data-popper-placement^=\\\"top\\\"] > #arrow[data-v-20b7fd4a]::before {\\n border-right: var(--popper-theme-border-width)\\n var(--popper-theme-border-style) var(--popper-theme-border-color);\\n border-bottom: var(--popper-theme-border-width)\\n var(--popper-theme-border-style) var(--popper-theme-border-color);\\n}\\n\\n /* Bottom arrow */\\n.popper[data-popper-placement^=\\\"bottom\\\"] > #arrow[data-v-20b7fd4a] {\\n top: -5px;\\n}\\n.popper[data-popper-placement^=\\\"bottom\\\"] > #arrow[data-v-20b7fd4a]::before {\\n border-left: var(--popper-theme-border-width)\\n var(--popper-theme-border-style) var(--popper-theme-border-color);\\n border-top: var(--popper-theme-border-width)\\n var(--popper-theme-border-style) var(--popper-theme-border-color);\\n}\\n\\n /* Left arrow */\\n.popper[data-popper-placement^=\\\"left\\\"] > #arrow[data-v-20b7fd4a] {\\n right: -5px;\\n}\\n.popper[data-popper-placement^=\\\"left\\\"] > #arrow[data-v-20b7fd4a]::before {\\n border-right: var(--popper-theme-border-width)\\n var(--popper-theme-border-style) var(--popper-theme-border-color);\\n border-top: var(--popper-theme-border-width)\\n var(--popper-theme-border-style) var(--popper-theme-border-color);\\n}\\n\\n /* Right arrow */\\n.popper[data-popper-placement^=\\\"right\\\"] > #arrow[data-v-20b7fd4a] {\\n left: -5px;\\n}\\n\";\nstyleInject(css_248z$1);\n\nconst script$1 = {};\nscript$1.render = render;\nscript$1.__scopeId = \"data-v-20b7fd4a\";\nvar Arrow = script$1;\n\nconst _hoisted_1 = [\"onKeyup\"];\nvar script = {\n props: {\n /**\n * Preferred placement (the \"auto\" placements will choose the side with most space.)\n */\n placement: {\n type: String,\n default: \"bottom\",\n validator: function (value) {\n return [\"auto\", \"auto-start\", \"auto-end\", \"top\", \"top-start\", \"top-end\", \"bottom\", \"bottom-start\", \"bottom-end\", \"right\", \"right-start\", \"right-end\", \"left\", \"left-start\", \"left-end\"].includes(value);\n }\n },\n\n /**\n * Disables automatically closing the popover when the user clicks away from it\n */\n disableClickAway: {\n type: Boolean,\n default: false\n },\n\n /**\n * Offset in pixels along the trigger element\n */\n offsetSkid: {\n type: String,\n default: \"0\"\n },\n\n /**\n * Offset in pixels away from the trigger element\n */\n offsetDistance: {\n type: String,\n default: \"12\"\n },\n\n /**\n * Trigger the popper on hover\n */\n hover: {\n type: Boolean,\n default: false\n },\n\n /**\n * Manually open/close the Popper, other events are ignored if this prop is set\n */\n show: {\n type: Boolean,\n default: null\n },\n\n /**\n * Disables the Popper. If it was already open, it will be closed.\n */\n disabled: {\n type: Boolean,\n default: false\n },\n\n /**\n * Open the Popper after a delay (ms).\n */\n openDelay: {\n type: [Number, String],\n default: 0\n },\n\n /**\n * Close the Popper after a delay (ms).\n */\n closeDelay: {\n type: [Number, String],\n default: 0\n },\n\n /**\n * The z-index of the Popper.\n */\n zIndex: {\n type: [Number, String],\n default: 9999\n },\n\n /**\n * Display an arrow on the popper\n */\n arrow: {\n type: Boolean,\n default: false\n },\n\n /**\n * Stop arrow from reaching the edge of the popper\n */\n arrowPadding: {\n type: String,\n default: \"0\"\n },\n\n /**\n * If the Popper should be interactive, it will close when clicked/hovered if false\n */\n interactive: {\n type: Boolean,\n default: true\n },\n\n /**\n * Lock the Popper into place, it will not flip dynamically when it runs out of space if true\n */\n locked: {\n type: Boolean,\n default: false\n },\n\n /**\n * If the content is just a simple string, it can be passed in as a prop\n */\n content: {\n type: String,\n default: null\n }\n },\n emits: [\"open:popper\", \"close:popper\"],\n\n setup(__props, {\n emit\n }) {\n const props = __props;\n\n useCssVars(_ctx => ({\n \"c81fc0a4\": __props.zIndex\n }));\n\n const slots = useSlots();\n const popperContainerNode = ref(null);\n const popperNode = ref(null);\n const triggerNode = ref(null);\n const modifiedIsOpen = ref(false);\n onMounted(() => {\n const children = slots.default();\n\n if (children && children.length > 1) {\n return console.error(`[Popper]: The component expects only one child element at its root. You passed ${children.length} child nodes.`);\n }\n });\n const {\n arrowPadding,\n closeDelay,\n content,\n disableClickAway,\n disabled,\n interactive,\n locked,\n offsetDistance,\n offsetSkid,\n openDelay,\n placement,\n show\n } = toRefs(props);\n const {\n isOpen,\n open,\n close\n } = usePopper({\n arrowPadding,\n emit,\n locked,\n offsetDistance,\n offsetSkid,\n placement,\n popperNode,\n triggerNode\n });\n const {\n hasContent\n } = useContent(slots, popperNode, content);\n const manualMode = computed(() => show.value !== null);\n const invalid = computed(() => disabled.value || !hasContent.value);\n const shouldShowPopper = computed(() => isOpen.value && !invalid.value);\n const enableClickAway = computed(() => !disableClickAway.value && !manualMode.value); // Add an invisible border to keep the Popper open when hovering from the trigger into it\n\n const interactiveStyle = computed(() => interactive.value ? `border: ${offsetDistance.value}px solid transparent; margin: -${offsetDistance.value}px;` : null);\n const openPopperDebounce = debounce_1.debounce(open, openDelay.value);\n const closePopperDebounce = debounce_1.debounce(close, closeDelay.value);\n\n const openPopper = async () => {\n if (invalid.value || manualMode.value) {\n return;\n }\n\n closePopperDebounce.clear();\n openPopperDebounce();\n };\n\n const closePopper = async () => {\n if (manualMode.value) {\n return;\n }\n\n openPopperDebounce.clear();\n closePopperDebounce();\n };\n\n const togglePopper = () => {\n isOpen.value ? closePopper() : openPopper();\n };\n /**\n * If Popper is open, we automatically close it if it becomes\n * disabled or without content.\n */\n\n\n watch([hasContent, disabled], ([hasContent, disabled]) => {\n if (isOpen.value && (!hasContent || disabled)) {\n close();\n }\n });\n /**\n * In order to eliminate flickering or visibly empty Poppers due to\n * the transition when using the isOpen slot property, we need to return a\n * separate debounced value based on isOpen.\n */\n\n watch(isOpen, isOpen => {\n if (isOpen) {\n modifiedIsOpen.value = true;\n } else {\n debounce_1.debounce(() => {\n modifiedIsOpen.value = false;\n }, 200);\n }\n });\n /**\n * Watch for manual mode.\n */\n\n watchEffect(() => {\n if (manualMode.value) {\n show.value ? openPopperDebounce() : closePopperDebounce();\n }\n });\n /**\n * Use click away if it should be enabled.\n */\n\n watchEffect(() => {\n if (enableClickAway.value) {\n useClickAway(popperContainerNode, closePopper);\n }\n });\n return (_ctx, _cache) => {\n return openBlock(), createElementBlock(\"div\", {\n class: \"inline-block\",\n style: normalizeStyle(unref(interactiveStyle)),\n onMouseleave: _cache[2] || (_cache[2] = $event => __props.hover && closePopper()),\n ref: (_value, _refs) => {\n _refs['popperContainerNode'] = _value;\n popperContainerNode.value = _value;\n }\n }, [createElementVNode(\"div\", {\n ref: (_value, _refs) => {\n _refs['triggerNode'] = _value;\n triggerNode.value = _value;\n },\n onMouseover: _cache[0] || (_cache[0] = $event => __props.hover && openPopper()),\n onClick: togglePopper,\n onFocus: openPopper,\n onKeyup: withKeys(closePopper, [\"esc\"])\n }, [renderSlot(_ctx.$slots, \"default\")], 40, _hoisted_1), createVNode(Transition, {\n name: \"fade\"\n }, {\n default: withCtx(() => [withDirectives(createElementVNode(\"div\", {\n onClick: _cache[1] || (_cache[1] = $event => !unref(interactive) && closePopper()),\n class: \"popper\",\n ref: (_value, _refs) => {\n _refs['popperNode'] = _value;\n popperNode.value = _value;\n }\n }, [renderSlot(_ctx.$slots, \"content\", {\n close: unref(close),\n isOpen: modifiedIsOpen.value\n }, () => [createTextVNode(toDisplayString(unref(content)), 1)]), __props.arrow ? (openBlock(), createBlock(Arrow, {\n key: 0\n })) : createCommentVNode(\"\", true)], 512), [[vShow, unref(shouldShowPopper)]])]),\n _: 3\n })], 36);\n };\n }\n\n};\n\nvar css_248z = \"\\n.inline-block[data-v-5784ed69] {\\n display: inline-block;\\n}\\n.popper[data-v-5784ed69] {\\n transition: background 250ms ease-in-out;\\n background: var(--popper-theme-background-color);\\n padding: var(--popper-theme-padding);\\n color: var(--popper-theme-text-color);\\n border-radius: var(--popper-theme-border-radius);\\n border-width: var(--popper-theme-border-width);\\n border-style: var(--popper-theme-border-style);\\n border-color: var(--popper-theme-border-color);\\n box-shadow: var(--popper-theme-box-shadow);\\n z-index: var(--c81fc0a4);\\n}\\n.popper[data-v-5784ed69]:hover,\\n .popper:hover > #arrow[data-v-5784ed69]::before {\\n background: var(--popper-theme-background-color-hover);\\n}\\n.inline-block[data-v-5784ed69] {\\n display: inline-block;\\n}\\n.fade-enter-active[data-v-5784ed69],\\n .fade-leave-active[data-v-5784ed69] {\\n transition: opacity 0.2s ease;\\n}\\n.fade-enter-from[data-v-5784ed69],\\n .fade-leave-to[data-v-5784ed69] {\\n opacity: 0;\\n}\\n\";\nstyleInject(css_248z);\n\nscript.__scopeId = \"data-v-5784ed69\";\n\n// IIFE injects install function into component, allowing component\n// to be registered via Vue.use() as well as Vue.component(),\n\nvar entry_esm = /*#__PURE__*/(() => {\n // Get component instance\n const installable = script; // Attach install function executed by Vue.use()\n\n installable.install = app => {\n app.component(\"Popper\", installable);\n };\n\n return installable;\n})(); // It's possible to expose named exports when writing components that can\n// also be used as directives, etc. - eg. import { RollupDemoDirective } from 'rollup-demo';\n// export const RollupDemoDirective = directive;\n\nexport { entry_esm as default };\n","import script from \"./PasswordHints.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./PasswordHints.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./BlankPageTemplate.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./BlankPageTemplate.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./DeveloperPage.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DeveloperPage.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./EntryPage.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./EntryPage.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./EntryPage.vue?vue&type=style&index=0&id=0070411c&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./RadioButton.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./RadioButton.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./RadioButton.vue?vue&type=style&index=0&id=0014c9d8&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n// global-events.js\n// Common means for declaring, subscribing to, and emitting global events.\n//\n// Tracing Events ----\n// The emitting of global events will be traced to the console if the environment variable VUE_APP_TRACE_GLOBAL_EVENTS is set to \"true\"\n//\n// TODO\n// Currently, if there are multiple waits, once released they may not maintain the order in which they were originally called.\n\n// Imports ----\nimport emitter from 'tiny-emitter/instance'\n\n// State ----\nconst waiting = {};\n\nexport default function () {\n\n // *** BEGIN Public Interface ********************\n\n // Emits a global event\n function emitGlobal(eventId, ...args) {\n // Trace events if enabled\n if (doTraceEvents())\n console.log(`[GLOBAL-EVENT] EMIT: ${eventId}`, ...args);\n\n // Release any processes waiting for this event\n releaseWaits(eventId, ...args);\n\n emitter.emit(eventId, ...args);\n }\n\n // Adds a handler for a global event\n function onGlobal(eventId, ...args) {\n emitter.on(eventId, ...args);\n\n // Trace events if enabled\n if (doTraceEvents())\n console.log(`[GLOBAL-EVENT] ON: ${eventId}`, ...args);\n }\n\n // Adds a handler for a global event guaranteed to only be called once\n function onceGlobal(eventId, ...args) {\n emitter.once(eventId, ...args);\n\n // Trace events if enabled\n if (doTraceEvents())\n console.log(`[GLOBAL-EVENT] ONCE: ${eventId}`, ...args);\n }\n\n // Removes a handler for a global event\n function offGlobal(eventId, ...args) {\n emitter.off(eventId, ...args);\n\n // Trace events if enabled\n if (doTraceEvents())\n console.log(`[GLOBAL-EVENT] OFF: ${eventId}`, ...args);\n }\n\n // Blocks until the specified global event is emitted.\n async function waitForEvent(eventId) {\n // Used to poll the waiting object\n const sleep = ms => {\n return new Promise(resolve => setTimeout(resolve, ms))\n };\n\n // Generate a unique symbol for this particular wait\n addWait(eventId);\n\n // Loop and sleep until the wait is released\n let stillWaiting = true;\n while (stillWaiting) {\n await sleep(100); // TODO: Change poll time to constant\n stillWaiting = isStillWaiting(eventId);\n }\n\n // Return the object(s) passed back with the event\n return waiting[eventId];\n }\n\n // *** END Public Interface **********************\n\n\n // *** BEGIN Private Functions *******************\n\n // Adds a wait and returns the new count of waits on this event\n function addWait(eventId) {\n\n // Add this wait into the list, or increment the counter\n if (!(eventId in waiting))\n waiting[eventId] = 1;\n else\n waiting[eventId]++;\n\n return waiting[eventId];\n }\n\n // Returns whether the given wait ID is still waiting\n function isStillWaiting(eventId) {\n if (eventId in waiting && waiting[eventId] !== null && typeof waiting[eventId] === 'number')\n return true;\n else\n return false;\n }\n\n // Releases all waits for the given event ID.\n function releaseWaits(eventId, ...args) {\n if (eventId in waiting)\n waiting[eventId] = args;\n }\n\n // Returns whether global event tracing is enabled\n function doTraceEvents() {\n return (process.env.VUE_APP_TRACE_GLOBAL_EVENTS === 'true');\n }\n\n // *** END Private Functions *********************\n\n\n // Export public interface\n return {\n onGlobal,\n onceGlobal,\n offGlobal,\n emitGlobal,\n waitForEvent\n }\n\n}\n","\n// Message\n// A message, either built on the front end or passed back from an API call.\n\n// Imports ----\nimport { v4 as uuidv4 } from 'uuid';\nimport { site } from './NucleusSite';\n\n// Constants ----\n\n// Message types. Must use values from DD.Nucleus.MessageType.\nconst messageType = {\n INFO: 0,\n WARNING: 1,\n ERROR: 2,\n OK: 3\n}\n\nexport const MessageType = messageType;\n\nexport default class {\n\n // Constructor\n /**\n * If type is an object, we assume this is a DD.Nucleus.Message object from the backend, and it builds this object accordingly; otherwise, the\n * other properties are set as given.\n * @param {Number|Object} type - Either a DD.Nucleus.Message object, or a numeric value from MessageType\n * @param {String} text - Text to display\n */\n constructor(type, text) {\n this.uid = uuidv4(); // Used as key for lists\n\n // If 'type' is an object, build from backend message and potentially localize.\n if (typeof type === 'number') {\n this.type = type;\n this.text = text;\n }\n else {\n this.type = type.messageType;\n\n if (typeof type.userMessage === 'string')\n this.text = type.userMessage;\n else\n this.text = site.localizer.localizeMessage(type);\n\n if (type?.messageId?.id) {\n this.messageId = type?.messageId?.id;\n }\n }\n }\n}","\n// Messages\n// Stores a list of messages. Used in validation and other contexts.\n\n// Imports ----\nimport Message from './Message';\n\nexport default class Messages extends Array {\n\n // Constructor\n constructor(fromArray = null) {\n super();\n\n if (fromArray !== null) this.addMessages(fromArray);\n }\n\n\n // BEGIN Public Methods ----\n\n /**\n * Adds a message to the list\n * @param {Number} type - Numeric type of message, as defined by MessageType in Message.js\n * @param {string} text - Text for the message\n */\n addMessage(type, text) {\n this.push(new Message(type, text));\n }\n\n /**\n * Adds an array of messages to the list, presumed to be of type DD.Nucleus.Message; for example, from an API call.\n * @param {Array} messages\n */\n addMessages(messages) {\n for (let i = 0; i < messages?.length; i++) {\n this.push(new Message(messages[i]));\n }\n }\n\n // END Public Methods ----\n}","\n// Validator\n// Provides a simple means of storing validation results in a reactive way.\n\n// Imports ----\nimport { reactive } from 'vue';\nimport { MessageType } from './Message';\nimport Messages from './Messages';\n\nexport default class {\n\n // Constructor\n constructor(forceValid = false) {\n this.messages = reactive(new Messages());\n this.isInvalid = false;\n this.forceValid = forceValid;\n }\n\n // *** BEGIN Getters & Setters *******************\n\n // *** END Getters & Setters *******************\n\n\n // *** BEGIN Public Methods *******************\n\n // reset\n // Clears the state of validation, usually in preparation to run a new one.\n reset() {\n this.isInvalid = false;\n this.messages.splice(0, this.messages.length);\n }\n\n // update\n // Based on messages that have been added, updates this validator's status\n update() {\n // If we are (typically temporarily) forcing this validator to always be valid, we skip checking messages.\n if (!this.forceValid) {\n // Look for a message with type ERROR. As soon as we find one, we assume this is invalid.\n for (let i = 0; i < this.messages.length; i++) {\n if (this.messages[i].type == MessageType.ERROR) {\n this.isInvalid = true;\n return;\n }\n }\n }\n }\n\n /**\n * Adds an informational message.\n * @param {string} text - Text for the message\n */\n addInfo(text) {\n this.messages.addMessage(MessageType.INFO, text);\n }\n\n /**\n * Adds a warning message\n * @param {string} text - Text for the message\n */\n addWarning(text) {\n this.messages.addMessage(MessageType.WARNING, text);\n }\n\n /**\n * Adds an error message. This will also set the validator's isInvalid property to true.\n * @param {string} text - Text for the message\n */\n addError(text) {\n this.isInvalid = true;\n\n if (!this.forceValid)\n this.messages.addMessage(MessageType.ERROR, text);\n }\n\n /**\n * Adds a message indicating success of some sort.\n * @param {string} text - Text for the message\n */\n addOk(text) {\n this.messages.addMessage(MessageType.OK, text);\n }\n\n /**\n * Adds an array of messages; for example, from an API call.\n * @param {Array} messages\n */\n addMessages(messages) {\n this.messages.addMessages(messages);\n }\n\n // *** END Public Methods *******************\n}","\n// util.js\n// Provides low-level utilities.\n\n/**\n* Returns true if the supplied string value is empty. Undefined or null are both considered empty.\n* @param {any} value\n*/\nexport function isEmpty(value) {\n return isUndefined(value) || isNull(value) || asString(value).length === 0;\n}\n\n/**\n* Returns true if the supplied string value is not empty. Undefined or null are both considered empty.\n* @param {any} value\n*/\nexport function isNotEmpty(value) {\n return !isEmpty(value);\n}\n\n/**\n* Returns a normalized string, converting undefined and null to an empty one.\n* @param {any} value\n*/\nexport function asString(value) {\n // TODO: More robust checks, such as the wrong type being supplied, or potentially proxy/refs\n if (isUndefinedOrNull(value))\n return '';\n else\n return value;\n}\n\n/**\n * Returns whether the specified value is defined\n * @param {any} value\n */\nexport function isDefined(value) {\n return (typeof value !== 'undefined');\n}\n\n/**\n * Returns whether the specified value is null\n * @param {any} value\n */\nexport function isNull(value) {\n return (value === null);\n}\n\n/**\n * Returns whether the specified value is null\n * @param {any} value\n */\nexport function isNotNull(value) {\n return !isNull(value);\n}\n\n/**\n * Returns whether the specified value is undefined\n * @param {any} value\n */\nexport function isUndefined(value) {\n return !isDefined(value);\n}\n\n/**\n * Returns whether the specified value is defined and non-null\n * @param {any} value\n */\nexport function isDefinedAndNonNull(value) {\n return isDefined(value) && isNotNull(value);\n}\n\n/**\n * Returns whether the specified value is undefined or null\n * @param {any} value\n */\nexport function isUndefinedOrNull(value) {\n return !isDefinedAndNonNull(value);\n}\n\n/**\n * Uses the time zone the browser is operating in to convert UTC dates returned from the API.\n * @param {Date} date\n */\nexport function toLocalDateTime(date) {\n if (isUndefinedOrNull(date)) return date;\n\n return new Date(date.setMinutes(date.getMinutes() - date.getTimezoneOffset()));\n}\n\n/**\n * Returns a string with the supplied date object formatted with day only.\n * @param {Date} date\n */\nexport function date(value, toLocalTime = true) {\n const date = toLocalTime ? toLocalDateTime(new Date(value)) : new Date(value);\n return (date.getMonth() + 1) + '/' + date.getDate() + '/' + date.getFullYear();\n}\n\n/**\n * Provides C#-style string formatting.\n * @param {String} value\n */\nexport function format(value) {\n if (value && value.length > 0 && arguments && arguments.length > 0) {\n for (let i = 0; i <= arguments[1].length - 1; i++) {\n value = value.replace('{' + i + '}', arguments[1][i]);\n }\n }\n\n return value;\n}\n\n/**\n * Capitalize the first letter of a string.\n * @param {String} value\n */\nexport function capitalize(value) {\n if (value && value.length > 0) {\n value = value.charAt(0).toUpperCase() + value.slice(1);\n }\n\n return value;\n}\n\n/**\n * Based on the supplied model, which is assumed to implement ICustomizable on the backend, converts the\n * values of attributes into flat property values.\n * Example: model.attributes.myObject.name -> model.myObject_name\n * @param {ICustomizable} model\n */\nexport function flattenModel(model) {\n if (isDefined(model.attributes)) {\n const propNames = Object.keys(model);\n propNames.forEach((name) => {\n var subModel = model[name];\n\n const subPropNames = Object.keys(subModel);\n subPropNames.forEach((subName) => {\n model[name + '_' + subName] = subModel[subName];\n });\n });\n\n delete model.attributes;\n }\n}\n\n/**\n * Check if the variable is of type function\n * @params {any} variable\n * return true or false\n */\nexport function isFunction(variable) {\n // NOTE: this is the safest way to do it, inspired by how lodash does it\n return !!(variable && variable.constructor && variable.call && variable.apply);\n}\n\n\n/**\n * \n * @param {array} array \n * @param {string} key \n * @returns {object} with key and value\n */\nexport function groupBy(array, key) {\n return array.reduce(function (rv, x) {\n (rv[x[key]] = rv[x[key]] || []).push(x);\n return rv;\n }, {});\n}\n\n\n/**\n * Returns a string with the supplied date object formatted in YYYY-MM-DD.\n * @param {Date} date\n */\nexport function yearMonthDateFormat(date) {\n let d = new Date(date);\n let month = '' + (d.getMonth() + 1);\n let day = '' + d.getDate();\n let year = d.getFullYear();\n\n if (month.length < 2) month = '0' + month;\n if (day.length < 2) day = '0' + day;\n\n return [year, month, day].join('-');\n}\n\n/**\n * Returns whether the specified string contans PO BOX or not\n * @param {any} value\n */\nexport function containsPoBox(value) {\n let result = '';\n const keepChars = ['P', 'O', 'B', 'O', 'X'];\n if (value === null || typeof value === 'undefined') value = '';\n value = capitalize(value);\n for (let i = 0; i < value.length; i++) {\n if (keepChars.includes(value[i]))\n result += value[i];\n }\n if (result.includes('POBOX'))\n return true;\n else\n return false\n\n}\n\n/**\n * Site 24x7 Script code for monitoring\n * @param {string} key \n */\nexport function addSiteTracking(appKey) {\n (function (w, d, s, r, k, h, m) {\n if (w.performance && w.performance.timing && w.performance.navigation && !w.s247r) {\n w[r] = w[r] || function () {\n (w[r].q = w[r].q || []).push(arguments)\n };\n h = d.createElement('script');\n h.async = true; h.setAttribute('src', s + k);\n d.getElementsByTagName('head')[0].appendChild(h);\n (m = window.onerror),\n (window.onerror = function (b, c, d, f, g) {\n m && m(b, c, d, f, g), g || (g = new Error(b)), (w[r].q = w[r].q || []).push([\"captureException\", g]);\n })\n }\n }\n )(window, document, '//static.site24x7rum.com/beacon/site24x7rum-min.js?appKey=', 's247r', appKey);\n}","\n// FormFieldValidator\n// Stores results of the validation of a particular field. Used by FormValidator to track the state of individual fields.\n\n// Imports ----\nimport Validator from './Validator';\nimport { nextTick } from 'vue';\nimport { isEmpty, isNotEmpty } from '../util';\n\nexport default class FormFieldValidator extends Validator {\n // Constructor\n constructor(model, fieldName, forceValid = false) {\n super(forceValid);\n\n this.model = model;\n this.fieldName = fieldName;\n }\n\n\n // *** BEGIN Getters & Setters *******************\n\n\n // *** END Getters & Setters *******************\n\n\n\n // *** BEGIN Public Methods *******************\n\n // checkNotEmpty()\n // Adds an error to the field if it is empty. Applies to strings and arrays only.\n checkNotEmpty() {\n const value = this.model[this.fieldName];\n\n if (isEmpty(value)) {\n this.addError(this.getFieldName('This field', true) + ' cannot be empty');\n return false;\n }\n else {\n return true;\n }\n }\n\n // checkValidEmail()\n // Adds an error to the field if it is not a valid email format. Skips validation if the value is empty.\n checkValidEmail() {\n const value = this.model[this.fieldName];\n\n if (isNotEmpty(value)) {\n // TODO: JK, revisit this, simplified the regex because it caused the page\n // to become unresponsive as more characters were added.\n //if (/^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$/.test(value)) {\n if (/\\S+@\\S+\\.\\S+/.test(value)) {\n return true;\n }\n else {\n this.addError(this.getFieldName('This field', true) + ' must be a valid email address.');\n return false;\n }\n }\n else\n return true;\n }\n\n // checkNumber()\n // Checks that the value is a valid number, and within a (possibly defined) range.\n checkNumber(min, max) {\n const value = Number(this.model[this.fieldName]);\n if (isNotEmpty(value)) {\n if (isNaN(value)) {\n this.addError(this.getFieldName('This field', true) + ' must be a number');\n }\n else {\n // Check range values minNumber and maxNumber. If enforceRange is true, we'll keep the number in range.\n // Otherwise, we'll add a message.\n if (typeof min !== undefined && value < min) {\n if (this.enforceRange)\n nextTick().then(() => { this.model[this.fieldName] = min });\n else\n this.addError(this.getFieldName('This value', true) + ' must be at least ' + min);\n\n return false;\n }\n\n if (typeof max !== undefined && value > max) {\n if (this.enforceRange)\n nextTick().then(() => { this.model[this.fieldName] = max });\n else\n this.addError(this.getFieldName('This value', true) + ' must be at most ' + max);\n\n return false;\n }\n\n return true;\n }\n }\n else\n return true;\n }\n\n // checkNoPoBox()\n // Makes sure the field does not contain a reference to a PO box.\n checkNoPoBox() {\n let value = this.model[this.fieldName];\n if (value === null || typeof value === 'undefined') value = '';\n\n value = this.removeCharsExcept(value.toUpperCase(), ['P', 'O', 'B', 'O', 'X']);\n if (value.includes('POBOX'))\n this.addError(\"We cannot ship to PO boxes\");\n\n }\n\n // checkMaxLength()\n // Makes sure the field does not exceed the specified maximum length, if applicable.\n checkMaxLength(validationParameters) {\n let value = this.model[this.fieldName];\n\n if (value === null || typeof value === 'undefined') value = '';\n\n if (!validationParameters || !validationParameters.maxLength || !validationParameters.isRequired && value.length === 0) {\n return true;\n }\n else {\n if (value.length <= validationParameters.maxLength) {\n return true;\n }\n else {\n this.addError(this.getFieldName('This field', true) + ' must be less than ' + validationParameters.maxLength + ' characters.');\n return false;\n }\n }\n }\n\n // checkMinLength()\n // Makes sure the field meets the specified minimum length, if applicable.\n checkMinLength(validationParameters) {\n let value = this.model[this.fieldName];\n if (value === null || typeof value === 'undefined') value = '';\n\n if (!validationParameters || !validationParameters.minLength || !validationParameters.isRequired && value.length === 0) {\n return true;\n }\n else {\n if (value.length >= validationParameters.minLength) {\n return true;\n }\n else {\n this.addError(this.getFieldName('This field', true) + ' must be at least ' + validationParameters.minLength + ' characters.');\n return false;\n }\n }\n }\n\n // *** END Public Methods *******************\n\n\n\n // *** BEGIN Private Methods *******************\n\n getFieldName(defaultName, capitalize) {\n if (typeof this.fieldName !== undefined)\n return capitalize ? this.capitalize(this.fieldName) : this.fieldName;\n else\n return defaultName;\n }\n\n capitalize(value) {\n if (value.length) {\n // return value.charAt(0).toUpperCase() + value.slice(1);\n // Convert caps after first one to spaces\n let newValue = value.charAt(0).toUpperCase();\n\n for (let i = 1; i < value.length; i++) {\n if (value[i] === value[i].toUpperCase())\n newValue += ' ' + value[i].toLowerCase();\n else\n newValue += value[i];\n }\n\n return newValue;\n }\n else\n return value;\n }\n\n removeCharsExcept(fromValue, keepChars) {\n let result = '';\n for (let i = 0; i < fromValue.length; i++) {\n if (keepChars.includes(fromValue[i]))\n result += fromValue[i];\n }\n\n return result;\n }\n\n // *** END Private Methods *******************\n}","\n// FormValidator\n// Used by a form to perform validations and store results of the last validation.\n\n// Imports ----\nimport Validator from './Validator';\nimport FormFieldValidator from './FormFieldValidator';\nimport { isFunction } from '../util';\n\nexport default class FormValidator extends Validator {\n // Constructor\n constructor(model, forceValid = false, forceFieldsValid = true) {\n super(forceValid);\n\n this.fields = {}; // Field validators for each field\n this.forceFieldsValid = forceFieldsValid;\n\n // Enumerate properties on the model and add FormFieldValidators for each\n this.#addFields(model);\n }\n\n\n // *** BEGIN Getters & Setters *******************\n\n\n // *** END Getters & Setters *******************\n\n\n\n // *** BEGIN Public Methods *******************\n\n // reset()\n // Clears the state of validation, usually in preparation to run a new one or after a form submission.\n reset() {\n super.reset();\n\n // Reset the individual fields' validators\n const propNames = Object.keys(this.fields);\n propNames.forEach((name) => {\n this.fields[name].reset();\n });\n }\n\n // update()\n // Based on messages that have been added, updates this validator's status.\n update() {\n super.update();\n\n // Update the individual fields' validators, if we're not forcing valid status.\n if (!this.forceValid) {\n const propNames = Object.keys(this.fields);\n propNames.forEach((name) => {\n this.fields[name].update();\n\n // If the field ended up invalid, update our own invalid status.\n if (this.fields[name].isInvalid)\n this.isInvalid = true;\n });\n }\n }\n\n // autoValidateFields()\n // Performs automatic validations declared on the individual field validators, such as:\n // - isRequired\n // - maxLength\n autoValidateFields() {\n const propNames = Object.keys(this.fields);\n propNames.forEach((name) => {\n if (this.fields[name].isRequired) this.fields[name].checkNotEmpty();\n if (this.fields[name].maxLength) this.fields[name].checkMaxLength({ maxLength: this.fields[name].maxLength, isRequired: this.fields[name].isRequired || false });\n if (this.fields[name].minLength) this.fields[name].checkMinLength({ minLength: this.fields[name].minLength, isRequired: this.fields[name].isRequired || false });\n if (this.fields[name].isNumber) this.fields[name].checkNumber(this.fields[name].minNumber, this.fields[name].maxNumber);\n if (this.fields[name].isEmail) this.fields[name].checkValidEmail();\n if (this.fields[name].noPoBox) this.fields[name].checkNoPoBox();\n if (this.fields[name].custom) {\n // NOTE: custom validation are not added at form level\n // it could be possible in future but requires more changes on the nucleus level\n if (!isFunction(this.fields[name].custom)) {\n console.error(`custom validation for form field ${name} should always be a function`);\n return;\n }\n // trigger the custom function and the value that's received should be added somewhere\n const error = this.fields[name].custom();\n if (error) {\n this.addError(error);\n return false;\n } else {\n return true;\n }\n }\n });\n }\n\n\n // *** END Public Methods *******************\n\n\n\n // *** BEGIN Private Methods *******************\n\n #addFields(model) {\n const propNames = Object.keys(model);\n propNames.forEach((name) => {\n this.fields[name] = new FormFieldValidator(model, name, this.forceFieldsValid);\n });\n }\n\n // *** END Private Methods *******************\n}","\n// Form\n// Base class used by subclasses to consistently implement a form and the logic it contains.\n\n// Imports ----\nimport { v4 as uuidv4 } from 'uuid';\nimport { reactive, watch } from 'vue';\nimport useGlobalEvents from '../services/global-events';\nimport FormValidator from './FormValidator';\n\nconst { emitGlobal, onGlobal } = useGlobalEvents();\n\n// Constants ----\nconst eventIDs = {\n FORM_VALIDATED: 'FORM_VALIDATE',\n FORM_CHANGED: 'FORM_CHANGED',\n FORM_SUBMITTING: 'FORM_SUBMITTING',\n FORM_SUBMITTED: 'FORM_SUBMITTED',\n FORM_RESET: 'FORM_RESET'\n}\n\n\nexport default class {\n id = uuidv4(); // Unique ID of this form\n model;\n status;\n validator;\n isValidating = false; // Tracks when validation occurs, so we don't trigger another one. TODO: Do we need to detect an attempt and trigger another?\n\n // Constructor\n constructor(model, forceValid = false, forceFieldsValid = true) {\n\n this.model = reactive(model);\n\n // NOTE: By default, we allow the form to be initially invalid, while the fields will be forced into a valid state until\n // their forceValid property is set to false. This is so the user isn't hit with field-level error messages before they have\n // a chance to enter anything. The field controls automatically take care of this; for example, by updating a field's\n // forceValid property when the user gives focus to the control.\n\n this.validator = new FormValidator(this.model, forceValid, forceFieldsValid);\n\n this.status = reactive({\n changed: false,\n isInvalid: true,\n isSaving: false,\n messages: []\n });\n\n watch(this.model, async (oldModel, newModel) => {\n await this.onModelChanged(oldModel, newModel);\n });\n\n this.validate();\n }\n\n\n // #region Public Methods ----\n\n /**\n * Called to trigger validation. Among other things, this will call the onValidate() method to allow subclasses to perform their own validation.\n */\n async validate() {\n this.validator.reset();\n this.onValidate();\n\n this.validator.update();\n this.status.isInvalid = this.validator.isInvalid;\n\n emitGlobal(this.getEventId(eventIDs.FORM_VALIDATED));\n\n // TODO: TEMP: Trying async version here that will test a server call.\n // NOTE: Also does not work. Seems to be the async element in play. The setting of isInvalid does not trigger update.\n await this.onValidateAsync();\n this.validator.update();\n\n this.status.isInvalid = this.validator.isInvalid;\n }\n\n /**\n * Called to trigger the form to submit its content.\n * @param validate - If false, this will skip validation.\n */\n async submit(validate = true) {\n await this.validate();\n\n if (!this.status.isInvalid || !validate) {\n this.status.isSaving = true;\n this.isValidating = true; // Pause the watcher, allowing model changes to be made\n emitGlobal(this.getEventId(eventIDs.FORM_SUBMITTING));\n\n const succeeded = await this.onSubmit();\n\n emitGlobal(this.getEventId(eventIDs.FORM_SUBMITTED));\n\n if (succeeded)\n await this.onSubmitSucceeded();\n else\n await this.onSubmitFailed();\n this.status.isSaving = false;\n this.isValidating = false; // Reenable the watcher\n\n return succeeded;\n }\n else {\n this.status.isSaving = false;\n return false;\n }\n \n }\n\n /**\n * Called to reset the form\n */\n async reset() {\n emitGlobal(this.getEventId(eventIDs.FORM_RESET));\n }\n\n /**\n * Called to validate the form. This default implementation calls the FormValidator to check any automatic validations declared on\n * the individual field validators.\n */\n onValidate() {\n this.validator.autoValidateFields();\n }\n\n /**\n * Called for subclasses to perform any validations that are performed asynchronously, e.g. via API calls.\n */\n async onValidateAsync() {\n }\n\n /**\n * Called for subclasses to perform actions when the form is submitted. Subclasses should return true if submission was successful.\n */\n async onSubmit() {\n }\n\n /**\n * Called for subclasses to perform actions when the form is submitted and succeeds, after validation is reset.\n */\n async onSubmitSucceeded() {\n }\n\n /**\n * Called for subclasses to perform actions when the form is submitted and fails, after validation is reset.\n */\n async onSubmitFailed() {\n }\n\n /**\n * Subscribes to the FORM_RESET event specific to this particular form.\n * @param {function} func - Function to be called when the form model changes\n */\n onReset(func) {\n onGlobal(this.getEventId(eventIDs.FORM_RESET), func);\n }\n\n /**\n * Subscribes to the FORM_VALIDATED event specific to this particular form. This is called whenever the state of validation changes, usually\n * as the result of a change to the model.\n * @param {function} func - Function to be called when this form is validated\n */\n onValidated(func) {\n onGlobal(this.getEventId(eventIDs.FORM_VALIDATED), func);\n }\n\n /**\n * Subscribes to the FORM_CHANGED event specific to this particular form.\n * @param {function} func - Function to be called when the form model changes\n */\n onChanged(func) {\n onGlobal(this.getEventId(eventIDs.FORM_CHANGED), func);\n }\n\n /**\n * Subscribes to the FORM_SUBMITTING event specific to this particular form.\n * @param {function} func - Called prior to the form being submitted\n */\n onSubmitting(func) {\n onGlobal(this.getEventId(eventIDs.FORM_SUBMITTING), func);\n }\n\n /**\n * Subscribes to the FORM_SUBMITTED event specific to this particular form.\n * @param {function} func - Called after the form was submitted\n */\n onSubmitted(func) {\n onGlobal(this.getEventId(eventIDs.FORM_SUBMITTED), func);\n }\n\n // #endregion\n\n\n\n // #region Private Methods ----\n\n // Reacts to the model changing.\n async onModelChanged() {\n if (this.isValidating) return;\n\n this.isValidating = true;\n\n // TODO: Update validation. Debounce currently is a step behind for some reason when using validator.isInvalid. The visual\n // result is submit buttons not properly enabling when the form is in fact valid.\n // When debounce is not involved, the below works just fine.\n // NOTE: The non-debounce path also does not require that the new model be updated throughout the validators. That may have been a red herring, or a side effect of\n // using setTimeout() within #debounce. Since the whole goal of the debounce is to allow for expensive server-side validation, perhaps a different option makes\n // more sense for those validations specifically.\n //await this.#debounce(newModel);\n await this.validate();\n\n // TODO: Assume it changed, or compare to an initial copy of the model?\n this.status.changed = true;\n await emitGlobal(this.getEventId(eventIDs.FORM_CHANGED));\n\n this.isValidating = false;\n }\n\n // Calculates an event ID specific to this form\n getEventId(eventId) {\n return eventId + '-' + this.id;\n }\n\n // #endregion\n}","\n\n\n\n\n\n","import script from \"./FormContainer.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FormContainer.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./CheckBoxField.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./CheckBoxField.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./CheckBoxField.vue?vue&type=style&index=0&id=fc1c8c8c&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./CheckBoxListField.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./CheckBoxListField.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./CheckBoxListField.vue?vue&type=style&index=0&id=290e1a03&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","var formatDistanceLocale = {\n lessThanXSeconds: {\n one: 'less than a second',\n other: 'less than {{count}} seconds'\n },\n xSeconds: {\n one: '1 second',\n other: '{{count}} seconds'\n },\n halfAMinute: 'half a minute',\n lessThanXMinutes: {\n one: 'less than a minute',\n other: 'less than {{count}} minutes'\n },\n xMinutes: {\n one: '1 minute',\n other: '{{count}} minutes'\n },\n aboutXHours: {\n one: 'about 1 hour',\n other: 'about {{count}} hours'\n },\n xHours: {\n one: '1 hour',\n other: '{{count}} hours'\n },\n xDays: {\n one: '1 day',\n other: '{{count}} days'\n },\n aboutXWeeks: {\n one: 'about 1 week',\n other: 'about {{count}} weeks'\n },\n xWeeks: {\n one: '1 week',\n other: '{{count}} weeks'\n },\n aboutXMonths: {\n one: 'about 1 month',\n other: 'about {{count}} months'\n },\n xMonths: {\n one: '1 month',\n other: '{{count}} months'\n },\n aboutXYears: {\n one: 'about 1 year',\n other: 'about {{count}} years'\n },\n xYears: {\n one: '1 year',\n other: '{{count}} years'\n },\n overXYears: {\n one: 'over 1 year',\n other: 'over {{count}} years'\n },\n almostXYears: {\n one: 'almost 1 year',\n other: 'almost {{count}} years'\n }\n};\n\nvar formatDistance = function (token, count, options) {\n var result;\n var tokenValue = formatDistanceLocale[token];\n\n if (typeof tokenValue === 'string') {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace('{{count}}', count.toString());\n }\n\n if (options !== null && options !== void 0 && options.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return 'in ' + result;\n } else {\n return result + ' ago';\n }\n }\n\n return result;\n};\n\nexport default formatDistance;","export default function buildFormatLongFn(args) {\n return function () {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // TODO: Remove String()\n var width = options.width ? String(options.width) : args.defaultWidth;\n var format = args.formats[width] || args.formats[args.defaultWidth];\n return format;\n };\n}","import buildFormatLongFn from \"../../../_lib/buildFormatLongFn/index.js\";\nvar dateFormats = {\n full: 'EEEE, MMMM do, y',\n long: 'MMMM do, y',\n medium: 'MMM d, y',\n short: 'MM/dd/yyyy'\n};\nvar timeFormats = {\n full: 'h:mm:ss a zzzz',\n long: 'h:mm:ss a z',\n medium: 'h:mm:ss a',\n short: 'h:mm a'\n};\nvar dateTimeFormats = {\n full: \"{{date}} 'at' {{time}}\",\n long: \"{{date}} 'at' {{time}}\",\n medium: '{{date}}, {{time}}',\n short: '{{date}}, {{time}}'\n};\nvar formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: 'full'\n }),\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: 'full'\n }),\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: 'full'\n })\n};\nexport default formatLong;","var formatRelativeLocale = {\n lastWeek: \"'last' eeee 'at' p\",\n yesterday: \"'yesterday at' p\",\n today: \"'today at' p\",\n tomorrow: \"'tomorrow at' p\",\n nextWeek: \"eeee 'at' p\",\n other: 'P'\n};\n\nvar formatRelative = function (token, _date, _baseDate, _options) {\n return formatRelativeLocale[token];\n};\n\nexport default formatRelative;","export default function buildLocalizeFn(args) {\n return function (dirtyIndex, dirtyOptions) {\n var options = dirtyOptions || {};\n var context = options.context ? String(options.context) : 'standalone';\n var valuesArray;\n\n if (context === 'formatting' && args.formattingValues) {\n var defaultWidth = args.defaultFormattingWidth || args.defaultWidth;\n var width = options.width ? String(options.width) : defaultWidth;\n valuesArray = args.formattingValues[width] || args.formattingValues[defaultWidth];\n } else {\n var _defaultWidth = args.defaultWidth;\n\n var _width = options.width ? String(options.width) : args.defaultWidth;\n\n valuesArray = args.values[_width] || args.values[_defaultWidth];\n }\n\n var index = args.argumentCallback ? args.argumentCallback(dirtyIndex) : dirtyIndex; // @ts-ignore: For some reason TypeScript just don't want to match it, no matter how hard we try. I challenge you to try to remove it!\n\n return valuesArray[index];\n };\n}","import buildLocalizeFn from \"../../../_lib/buildLocalizeFn/index.js\";\nvar eraValues = {\n narrow: ['B', 'A'],\n abbreviated: ['BC', 'AD'],\n wide: ['Before Christ', 'Anno Domini']\n};\nvar quarterValues = {\n narrow: ['1', '2', '3', '4'],\n abbreviated: ['Q1', 'Q2', 'Q3', 'Q4'],\n wide: ['1st quarter', '2nd quarter', '3rd quarter', '4th quarter']\n}; // Note: in English, the names of days of the week and months are capitalized.\n// If you are making a new locale based on this one, check if the same is true for the language you're working on.\n// Generally, formatted dates should look like they are in the middle of a sentence,\n// e.g. in Spanish language the weekdays and months should be in the lowercase.\n\nvar monthValues = {\n narrow: ['J', 'F', 'M', 'A', 'M', 'J', 'J', 'A', 'S', 'O', 'N', 'D'],\n abbreviated: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n wide: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']\n};\nvar dayValues = {\n narrow: ['S', 'M', 'T', 'W', 'T', 'F', 'S'],\n short: ['Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'],\n abbreviated: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n wide: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\n};\nvar dayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n }\n};\nvar formattingDayPeriodValues = {\n narrow: {\n am: 'a',\n pm: 'p',\n midnight: 'mi',\n noon: 'n',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n abbreviated: {\n am: 'AM',\n pm: 'PM',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n },\n wide: {\n am: 'a.m.',\n pm: 'p.m.',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'in the morning',\n afternoon: 'in the afternoon',\n evening: 'in the evening',\n night: 'at night'\n }\n};\n\nvar ordinalNumber = function (dirtyNumber, _options) {\n var number = Number(dirtyNumber); // If ordinal numbers depend on context, for example,\n // if they are different for different grammatical genders,\n // use `options.unit`.\n //\n // `unit` can be 'year', 'quarter', 'month', 'week', 'date', 'dayOfYear',\n // 'day', 'hour', 'minute', 'second'.\n\n var rem100 = number % 100;\n\n if (rem100 > 20 || rem100 < 10) {\n switch (rem100 % 10) {\n case 1:\n return number + 'st';\n\n case 2:\n return number + 'nd';\n\n case 3:\n return number + 'rd';\n }\n }\n\n return number + 'th';\n};\n\nvar localize = {\n ordinalNumber: ordinalNumber,\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: 'wide'\n }),\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: 'wide',\n argumentCallback: function (quarter) {\n return quarter - 1;\n }\n }),\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: 'wide'\n }),\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: 'wide'\n }),\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: 'wide',\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: 'wide'\n })\n};\nexport default localize;","export default function buildMatchFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var width = options.width;\n var matchPattern = width && args.matchPatterns[width] || args.matchPatterns[args.defaultMatchWidth];\n var matchResult = string.match(matchPattern);\n\n if (!matchResult) {\n return null;\n }\n\n var matchedString = matchResult[0];\n var parsePatterns = width && args.parsePatterns[width] || args.parsePatterns[args.defaultParseWidth];\n var key = Array.isArray(parsePatterns) ? findIndex(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n }) : findKey(parsePatterns, function (pattern) {\n return pattern.test(matchedString);\n });\n var value;\n value = args.valueCallback ? args.valueCallback(key) : key;\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}\n\nfunction findKey(object, predicate) {\n for (var key in object) {\n if (object.hasOwnProperty(key) && predicate(object[key])) {\n return key;\n }\n }\n\n return undefined;\n}\n\nfunction findIndex(array, predicate) {\n for (var key = 0; key < array.length; key++) {\n if (predicate(array[key])) {\n return key;\n }\n }\n\n return undefined;\n}","export default function buildMatchPatternFn(args) {\n return function (string) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var matchResult = string.match(args.matchPattern);\n if (!matchResult) return null;\n var matchedString = matchResult[0];\n var parseResult = string.match(args.parsePattern);\n if (!parseResult) return null;\n var value = args.valueCallback ? args.valueCallback(parseResult[0]) : parseResult[0];\n value = options.valueCallback ? options.valueCallback(value) : value;\n var rest = string.slice(matchedString.length);\n return {\n value: value,\n rest: rest\n };\n };\n}","import buildMatchFn from \"../../../_lib/buildMatchFn/index.js\";\nimport buildMatchPatternFn from \"../../../_lib/buildMatchPatternFn/index.js\";\nvar matchOrdinalNumberPattern = /^(\\d+)(th|st|nd|rd)?/i;\nvar parseOrdinalNumberPattern = /\\d+/i;\nvar matchEraPatterns = {\n narrow: /^(b|a)/i,\n abbreviated: /^(b\\.?\\s?c\\.?|b\\.?\\s?c\\.?\\s?e\\.?|a\\.?\\s?d\\.?|c\\.?\\s?e\\.?)/i,\n wide: /^(before christ|before common era|anno domini|common era)/i\n};\nvar parseEraPatterns = {\n any: [/^b/i, /^(a|c)/i]\n};\nvar matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^q[1234]/i,\n wide: /^[1234](th|st|nd|rd)? quarter/i\n};\nvar parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i]\n};\nvar matchMonthPatterns = {\n narrow: /^[jfmasond]/i,\n abbreviated: /^(jan|feb|mar|apr|may|jun|jul|aug|sep|oct|nov|dec)/i,\n wide: /^(january|february|march|april|may|june|july|august|september|october|november|december)/i\n};\nvar parseMonthPatterns = {\n narrow: [/^j/i, /^f/i, /^m/i, /^a/i, /^m/i, /^j/i, /^j/i, /^a/i, /^s/i, /^o/i, /^n/i, /^d/i],\n any: [/^ja/i, /^f/i, /^mar/i, /^ap/i, /^may/i, /^jun/i, /^jul/i, /^au/i, /^s/i, /^o/i, /^n/i, /^d/i]\n};\nvar matchDayPatterns = {\n narrow: /^[smtwf]/i,\n short: /^(su|mo|tu|we|th|fr|sa)/i,\n abbreviated: /^(sun|mon|tue|wed|thu|fri|sat)/i,\n wide: /^(sunday|monday|tuesday|wednesday|thursday|friday|saturday)/i\n};\nvar parseDayPatterns = {\n narrow: [/^s/i, /^m/i, /^t/i, /^w/i, /^t/i, /^f/i, /^s/i],\n any: [/^su/i, /^m/i, /^tu/i, /^w/i, /^th/i, /^f/i, /^sa/i]\n};\nvar matchDayPeriodPatterns = {\n narrow: /^(a|p|mi|n|(in the|at) (morning|afternoon|evening|night))/i,\n any: /^([ap]\\.?\\s?m\\.?|midnight|noon|(in the|at) (morning|afternoon|evening|night))/i\n};\nvar parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mi/i,\n noon: /^no/i,\n morning: /morning/i,\n afternoon: /afternoon/i,\n evening: /evening/i,\n night: /night/i\n }\n};\nvar match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: function (value) {\n return parseInt(value, 10);\n }\n }),\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseEraPatterns,\n defaultParseWidth: 'any'\n }),\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: 'any',\n valueCallback: function (index) {\n return index + 1;\n }\n }),\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: 'any'\n }),\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: 'wide',\n parsePatterns: parseDayPatterns,\n defaultParseWidth: 'any'\n }),\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: 'any',\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: 'any'\n })\n};\nexport default match;","import formatDistance from \"./_lib/formatDistance/index.js\";\nimport formatLong from \"./_lib/formatLong/index.js\";\nimport formatRelative from \"./_lib/formatRelative/index.js\";\nimport localize from \"./_lib/localize/index.js\";\nimport match from \"./_lib/match/index.js\";\n\n/**\n * @type {Locale}\n * @category Locales\n * @summary English locale (United States).\n * @language English\n * @iso-639-2 eng\n * @author Sasha Koss [@kossnocorp]{@link https://github.com/kossnocorp}\n * @author Lesha Koss [@leshakoss]{@link https://github.com/leshakoss}\n */\nvar locale = {\n code: 'en-US',\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0\n /* Sunday */\n ,\n firstWeekContainsDate: 1\n }\n};\nexport default locale;","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMilliseconds\n * @category Millisecond Helpers\n * @summary Add the specified number of milliseconds to the given date.\n *\n * @description\n * Add the specified number of milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 750 milliseconds to 10 July 2014 12:45:30.000:\n * const result = addMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:30.750\n */\n\nexport default function addMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var timestamp = toDate(dirtyDate).getTime();\n var amount = toInteger(dirtyAmount);\n return new Date(timestamp + amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMilliseconds from \"../addMilliseconds/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMilliseconds\n * @category Millisecond Helpers\n * @summary Subtract the specified number of milliseconds from the given date.\n *\n * @description\n * Subtract the specified number of milliseconds from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of milliseconds to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the milliseconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 750 milliseconds from 10 July 2014 12:45:30.000:\n * const result = subMilliseconds(new Date(2014, 6, 10, 12, 45, 30, 0), 750)\n * //=> Thu Jul 10 2014 12:45:29.250\n */\n\nexport default function subMilliseconds(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMilliseconds(dirtyDate, -amount);\n}","export default function assign(target, dirtyObject) {\n if (target == null) {\n throw new TypeError('assign requires that input parameter not be null or undefined');\n }\n\n dirtyObject = dirtyObject || {};\n\n for (var property in dirtyObject) {\n if (Object.prototype.hasOwnProperty.call(dirtyObject, property)) {\n target[property] = dirtyObject[property];\n }\n }\n\n return target;\n}","function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n}\n\nfunction timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n}\n\nfunction dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n}\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nexport default longFormatters;","/**\n * Google Chrome as of 67.0.3396.87 introduced timezones with offset that includes seconds.\n * They usually appear for dates that denote time before the timezones were introduced\n * (e.g. for 'Europe/Prague' timezone the offset is GMT+00:57:44 before 1 October 1891\n * and GMT+01:00:00 after that date)\n *\n * Date#getTimezoneOffset returns the offset in minutes and would return 57 for the example above,\n * which would lead to incorrect calculations.\n *\n * This function returns the timezone offset in milliseconds that takes seconds in account.\n */\nexport default function getTimezoneOffsetInMilliseconds(date) {\n var utcDate = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n utcDate.setUTCFullYear(date.getFullYear());\n return date.getTime() - utcDate.getTime();\n}","var protectedDayOfYearTokens = ['D', 'DD'];\nvar protectedWeekYearTokens = ['YY', 'YYYY'];\nexport function isProtectedDayOfYearToken(token) {\n return protectedDayOfYearTokens.indexOf(token) !== -1;\n}\nexport function isProtectedWeekYearToken(token) {\n return protectedWeekYearTokens.indexOf(token) !== -1;\n}\nexport function throwProtectedError(token, format, input) {\n if (token === 'YYYY') {\n throw new RangeError(\"Use `yyyy` instead of `YYYY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'YY') {\n throw new RangeError(\"Use `yy` instead of `YY` (in `\".concat(format, \"`) for formatting years to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'D') {\n throw new RangeError(\"Use `d` instead of `D` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n } else if (token === 'DD') {\n throw new RangeError(\"Use `dd` instead of `DD` (in `\".concat(format, \"`) for formatting days of the month to the input `\").concat(input, \"`; see: https://git.io/fxCyr\"));\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var firstWeekOfNextYear = new Date(0);\n firstWeekOfNextYear.setUTCFullYear(year + 1, 0, firstWeekContainsDate);\n firstWeekOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCWeek(firstWeekOfNextYear, dirtyOptions);\n var firstWeekOfThisYear = new Date(0);\n firstWeekOfThisYear.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeekOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCWeek(firstWeekOfThisYear, dirtyOptions);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCDay(dirtyDate, dirtyDay, dirtyOptions) {\n requiredArgs(2, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = toInteger(dirtyDay);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISODay(dirtyDate, dirtyDay) {\n requiredArgs(2, arguments);\n var day = toInteger(dirtyDay);\n\n if (day % 7 === 0) {\n day = day - 7;\n }\n\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var currentDay = date.getUTCDay();\n var remainder = day % 7;\n var dayIndex = (remainder + 7) % 7;\n var diff = (dayIndex < weekStartsOn ? 7 : 0) + day - currentDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var weekStartsOn = 1;\n var date = toDate(dirtyDate);\n var day = date.getUTCDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setUTCDate(date.getUTCDate() - diff);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getUTCFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setUTCFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setUTCHours(0, 0, 0, 0);\n var startOfNextYear = startOfUTCISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setUTCFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setUTCHours(0, 0, 0, 0);\n var startOfThisYear = startOfUTCISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getUTCISOWeekYear from \"../getUTCISOWeekYear/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getUTCISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setUTCFullYear(year, 0, 4);\n fourthOfJanuary.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCISOWeek from \"../startOfUTCISOWeek/index.js\";\nimport startOfUTCISOWeekYear from \"../startOfUTCISOWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCISOWeek(date).getTime() - startOfUTCISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCISOWeek from \"../getUTCISOWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCISOWeek(dirtyDate, dirtyISOWeek) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var isoWeek = toInteger(dirtyISOWeek);\n var diff = getUTCISOWeek(date) - isoWeek;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import getUTCWeekYear from \"../getUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport toInteger from \"../toInteger/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function startOfUTCWeekYear(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeFirstWeekContainsDate = locale && locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate);\n var year = getUTCWeekYear(dirtyDate, dirtyOptions);\n var firstWeek = new Date(0);\n firstWeek.setUTCFullYear(year, 0, firstWeekContainsDate);\n firstWeek.setUTCHours(0, 0, 0, 0);\n var date = startOfUTCWeek(firstWeek, dirtyOptions);\n return date;\n}","import toDate from \"../../toDate/index.js\";\nimport startOfUTCWeek from \"../startOfUTCWeek/index.js\";\nimport startOfUTCWeekYear from \"../startOfUTCWeekYear/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCWeek(dirtyDate, options) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfUTCWeek(date, options).getTime() - startOfUTCWeekYear(date, options).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","import toInteger from \"../toInteger/index.js\";\nimport toDate from \"../../toDate/index.js\";\nimport getUTCWeek from \"../getUTCWeek/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\"; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function setUTCWeek(dirtyDate, dirtyWeek, options) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var week = toInteger(dirtyWeek);\n var diff = getUTCWeek(date, options) - week;\n date.setUTCDate(date.getUTCDate() - diff * 7);\n return date;\n}","import getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport setUTCDay from \"../../../_lib/setUTCDay/index.js\";\nimport setUTCISODay from \"../../../_lib/setUTCISODay/index.js\";\nimport setUTCISOWeek from \"../../../_lib/setUTCISOWeek/index.js\";\nimport setUTCWeek from \"../../../_lib/setUTCWeek/index.js\";\nimport startOfUTCISOWeek from \"../../../_lib/startOfUTCISOWeek/index.js\";\nimport startOfUTCWeek from \"../../../_lib/startOfUTCWeek/index.js\";\nvar MILLISECONDS_IN_HOUR = 3600000;\nvar MILLISECONDS_IN_MINUTE = 60000;\nvar MILLISECONDS_IN_SECOND = 1000;\nvar numericPatterns = {\n month: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n date: /^(3[0-1]|[0-2]?\\d)/,\n // 0 to 31\n dayOfYear: /^(36[0-6]|3[0-5]\\d|[0-2]?\\d?\\d)/,\n // 0 to 366\n week: /^(5[0-3]|[0-4]?\\d)/,\n // 0 to 53\n hour23h: /^(2[0-3]|[0-1]?\\d)/,\n // 0 to 23\n hour24h: /^(2[0-4]|[0-1]?\\d)/,\n // 0 to 24\n hour11h: /^(1[0-1]|0?\\d)/,\n // 0 to 11\n hour12h: /^(1[0-2]|0?\\d)/,\n // 0 to 12\n minute: /^[0-5]?\\d/,\n // 0 to 59\n second: /^[0-5]?\\d/,\n // 0 to 59\n singleDigit: /^\\d/,\n // 0 to 9\n twoDigits: /^\\d{1,2}/,\n // 0 to 99\n threeDigits: /^\\d{1,3}/,\n // 0 to 999\n fourDigits: /^\\d{1,4}/,\n // 0 to 9999\n anyDigitsSigned: /^-?\\d+/,\n singleDigitSigned: /^-?\\d/,\n // 0 to 9, -0 to -9\n twoDigitsSigned: /^-?\\d{1,2}/,\n // 0 to 99, -0 to -99\n threeDigitsSigned: /^-?\\d{1,3}/,\n // 0 to 999, -0 to -999\n fourDigitsSigned: /^-?\\d{1,4}/ // 0 to 9999, -0 to -9999\n\n};\nvar timezonePatterns = {\n basicOptionalMinutes: /^([+-])(\\d{2})(\\d{2})?|Z/,\n basic: /^([+-])(\\d{2})(\\d{2})|Z/,\n basicOptionalSeconds: /^([+-])(\\d{2})(\\d{2})((\\d{2}))?|Z/,\n extended: /^([+-])(\\d{2}):(\\d{2})|Z/,\n extendedOptionalSeconds: /^([+-])(\\d{2}):(\\d{2})(:(\\d{2}))?|Z/\n};\n\nfunction parseNumericPattern(pattern, string, valueCallback) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n }\n\n var value = parseInt(matchResult[0], 10);\n return {\n value: valueCallback ? valueCallback(value) : value,\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseTimezonePattern(pattern, string) {\n var matchResult = string.match(pattern);\n\n if (!matchResult) {\n return null;\n } // Input is 'Z'\n\n\n if (matchResult[0] === 'Z') {\n return {\n value: 0,\n rest: string.slice(1)\n };\n }\n\n var sign = matchResult[1] === '+' ? 1 : -1;\n var hours = matchResult[2] ? parseInt(matchResult[2], 10) : 0;\n var minutes = matchResult[3] ? parseInt(matchResult[3], 10) : 0;\n var seconds = matchResult[5] ? parseInt(matchResult[5], 10) : 0;\n return {\n value: sign * (hours * MILLISECONDS_IN_HOUR + minutes * MILLISECONDS_IN_MINUTE + seconds * MILLISECONDS_IN_SECOND),\n rest: string.slice(matchResult[0].length)\n };\n}\n\nfunction parseAnyDigitsSigned(string, valueCallback) {\n return parseNumericPattern(numericPatterns.anyDigitsSigned, string, valueCallback);\n}\n\nfunction parseNDigits(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigit, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigits, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigits, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigits, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction parseNDigitsSigned(n, string, valueCallback) {\n switch (n) {\n case 1:\n return parseNumericPattern(numericPatterns.singleDigitSigned, string, valueCallback);\n\n case 2:\n return parseNumericPattern(numericPatterns.twoDigitsSigned, string, valueCallback);\n\n case 3:\n return parseNumericPattern(numericPatterns.threeDigitsSigned, string, valueCallback);\n\n case 4:\n return parseNumericPattern(numericPatterns.fourDigitsSigned, string, valueCallback);\n\n default:\n return parseNumericPattern(new RegExp('^-?\\\\d{1,' + n + '}'), string, valueCallback);\n }\n}\n\nfunction dayPeriodEnumToHours(enumValue) {\n switch (enumValue) {\n case 'morning':\n return 4;\n\n case 'evening':\n return 17;\n\n case 'pm':\n case 'noon':\n case 'afternoon':\n return 12;\n\n case 'am':\n case 'midnight':\n case 'night':\n default:\n return 0;\n }\n}\n\nfunction normalizeTwoDigitYear(twoDigitYear, currentYear) {\n var isCommonEra = currentYear > 0; // Absolute number of the current year:\n // 1 -> 1 AC\n // 0 -> 1 BC\n // -1 -> 2 BC\n\n var absCurrentYear = isCommonEra ? currentYear : 1 - currentYear;\n var result;\n\n if (absCurrentYear <= 50) {\n result = twoDigitYear || 100;\n } else {\n var rangeEnd = absCurrentYear + 50;\n var rangeEndCentury = Math.floor(rangeEnd / 100) * 100;\n var isPreviousCentury = twoDigitYear >= rangeEnd % 100;\n result = twoDigitYear + rangeEndCentury - (isPreviousCentury ? 100 : 0);\n }\n\n return isCommonEra ? result : 1 - result;\n}\n\nvar DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nvar DAYS_IN_MONTH_LEAP_YEAR = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; // User for validation\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O* | Timezone (GMT) |\n * | p | | P | |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z* | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `parse` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n */\n\n\nvar parsers = {\n // Era\n G: {\n priority: 140,\n parse: function (string, token, match, _options) {\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n // A, B\n\n case 'GGGGG':\n return match.era(string, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return match.era(string, {\n width: 'wide'\n }) || match.era(string, {\n width: 'abbreviated'\n }) || match.era(string, {\n width: 'narrow'\n });\n }\n },\n set: function (date, flags, value, _options) {\n flags.era = value;\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['R', 'u', 't', 'T']\n },\n // Year\n y: {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_Patterns\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'yy'\n };\n };\n\n switch (token) {\n case 'y':\n return parseNDigits(4, string, valueCallback);\n\n case 'yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, _options) {\n var currentYear = date.getUTCFullYear();\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'u', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Local week-numbering year\n Y: {\n priority: 130,\n parse: function (string, token, match, _options) {\n var valueCallback = function (year) {\n return {\n year: year,\n isTwoDigitYear: token === 'YY'\n };\n };\n\n switch (token) {\n case 'Y':\n return parseNDigits(4, string, valueCallback);\n\n case 'Yo':\n return match.ordinalNumber(string, {\n unit: 'year',\n valueCallback: valueCallback\n });\n\n default:\n return parseNDigits(token.length, string, valueCallback);\n }\n },\n validate: function (_date, value, _options) {\n return value.isTwoDigitYear || value.year > 0;\n },\n set: function (date, flags, value, options) {\n var currentYear = getUTCWeekYear(date, options);\n\n if (value.isTwoDigitYear) {\n var normalizedTwoDigitYear = normalizeTwoDigitYear(value.year, currentYear);\n date.setUTCFullYear(normalizedTwoDigitYear, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n }\n\n var year = !('era' in flags) || flags.era === 1 ? value.year : 1 - value.year;\n date.setUTCFullYear(year, 0, options.firstWeekContainsDate);\n date.setUTCHours(0, 0, 0, 0);\n return startOfUTCWeek(date, options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'Q', 'q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week-numbering year\n R: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'R') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (_date, _flags, value, _options) {\n var firstWeekOfYear = new Date(0);\n firstWeekOfYear.setUTCFullYear(value, 0, 4);\n firstWeekOfYear.setUTCHours(0, 0, 0, 0);\n return startOfUTCISOWeek(firstWeekOfYear);\n },\n incompatibleTokens: ['G', 'y', 'Y', 'u', 'Q', 'q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Extended year\n u: {\n priority: 130,\n parse: function (string, token, _match, _options) {\n if (token === 'u') {\n return parseNDigitsSigned(4, string);\n }\n\n return parseNDigitsSigned(token.length, string);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCFullYear(value, 0, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['G', 'y', 'Y', 'R', 'w', 'I', 'i', 'e', 'c', 't', 'T']\n },\n // Quarter\n Q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n case 'QQ':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone quarter\n q: {\n priority: 120,\n parse: function (string, token, match, _options) {\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n case 'qq':\n // 01, 02, 03, 04\n return parseNDigits(token.length, string);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return match.ordinalNumber(string, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return match.quarter(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.quarter(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 4;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth((value - 1) * 3, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'Q', 'M', 'L', 'w', 'I', 'd', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Month\n M: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'M':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'MM':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.month(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'L', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Stand-alone month\n L: {\n priority: 110,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n return value - 1;\n };\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return parseNumericPattern(numericPatterns.month, string, valueCallback);\n // 01, 02, ..., 12\n\n case 'LL':\n return parseNDigits(2, string, valueCallback);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return match.ordinalNumber(string, {\n unit: 'month',\n valueCallback: valueCallback\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return match.month(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.month(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.month(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(value, 1);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Local week of year\n w: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'w':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'wo':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCWeek(setUTCWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'i', 't', 'T']\n },\n // ISO week of year\n I: {\n priority: 100,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'I':\n return parseNumericPattern(numericPatterns.week, string);\n\n case 'Io':\n return match.ordinalNumber(string, {\n unit: 'week'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 53;\n },\n set: function (date, _flags, value, options) {\n return startOfUTCISOWeek(setUTCISOWeek(date, value, options), options);\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'e', 'c', 't', 'T']\n },\n // Day of the month\n d: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'd':\n return parseNumericPattern(numericPatterns.date, string);\n\n case 'do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n var month = date.getUTCMonth();\n\n if (isLeapYear) {\n return value >= 1 && value <= DAYS_IN_MONTH_LEAP_YEAR[month];\n } else {\n return value >= 1 && value <= DAYS_IN_MONTH[month];\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCDate(value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'w', 'I', 'D', 'i', 'e', 'c', 't', 'T']\n },\n // Day of year\n D: {\n priority: 90,\n subPriority: 1,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'D':\n case 'DD':\n return parseNumericPattern(numericPatterns.dayOfYear, string);\n\n case 'Do':\n return match.ordinalNumber(string, {\n unit: 'date'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (date, value, _options) {\n var year = date.getUTCFullYear();\n var isLeapYear = isLeapYearIndex(year);\n\n if (isLeapYear) {\n return value >= 1 && value <= 366;\n } else {\n return value >= 1 && value <= 365;\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMonth(0, value);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['Y', 'R', 'q', 'Q', 'M', 'L', 'w', 'I', 'd', 'E', 'i', 'e', 'c', 't', 'T']\n },\n // Day of week\n E: {\n priority: 90,\n parse: function (string, token, match, _options) {\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['D', 'i', 'e', 'c', 't', 'T']\n },\n // Local day of week\n e: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'e':\n case 'ee':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'eo':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'eee':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.day(string, {\n width: 'short',\n context: 'formatting'\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'c', 't', 'T']\n },\n // Stand-alone local day of week\n c: {\n priority: 90,\n parse: function (string, token, match, options) {\n var valueCallback = function (value) {\n var wholeWeekDays = Math.floor((value - 1) / 7) * 7;\n return (value + options.weekStartsOn + 6) % 7 + wholeWeekDays;\n };\n\n switch (token) {\n // 3\n case 'c':\n case 'cc':\n // 03\n return parseNDigits(token.length, string, valueCallback);\n // 3rd\n\n case 'co':\n return match.ordinalNumber(string, {\n unit: 'day',\n valueCallback: valueCallback\n });\n // Tue\n\n case 'ccc':\n return match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'standalone'\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'standalone'\n }) || match.day(string, {\n width: 'short',\n context: 'standalone'\n }) || match.day(string, {\n width: 'narrow',\n context: 'standalone'\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 6;\n },\n set: function (date, _flags, value, options) {\n date = setUTCDay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'R', 'u', 'q', 'Q', 'M', 'L', 'I', 'd', 'D', 'E', 'i', 'e', 't', 'T']\n },\n // ISO day of week\n i: {\n priority: 90,\n parse: function (string, token, match, _options) {\n var valueCallback = function (value) {\n if (value === 0) {\n return 7;\n }\n\n return value;\n };\n\n switch (token) {\n // 2\n case 'i':\n case 'ii':\n // 02\n return parseNDigits(token.length, string);\n // 2nd\n\n case 'io':\n return match.ordinalNumber(string, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // T\n\n case 'iiiii':\n return match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tu\n\n case 'iiiiii':\n return match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n // Tuesday\n\n case 'iiii':\n default:\n return match.day(string, {\n width: 'wide',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'abbreviated',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'short',\n context: 'formatting',\n valueCallback: valueCallback\n }) || match.day(string, {\n width: 'narrow',\n context: 'formatting',\n valueCallback: valueCallback\n });\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 7;\n },\n set: function (date, _flags, value, options) {\n date = setUTCISODay(date, value, options);\n date.setUTCHours(0, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['y', 'Y', 'u', 'q', 'Q', 'M', 'L', 'w', 'd', 'D', 'E', 'e', 'c', 't', 'T']\n },\n // AM or PM\n a: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['b', 'B', 'H', 'k', 't', 'T']\n },\n // AM, PM, midnight\n b: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'B', 'H', 'k', 't', 'T']\n },\n // in the morning, in the afternoon, in the evening, at night\n B: {\n priority: 80,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return match.dayPeriod(string, {\n width: 'wide',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'abbreviated',\n context: 'formatting'\n }) || match.dayPeriod(string, {\n width: 'narrow',\n context: 'formatting'\n });\n }\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(dayPeriodEnumToHours(value), 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 't', 'T']\n },\n // Hour [1-12]\n h: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'h':\n return parseNumericPattern(numericPatterns.hour12h, string);\n\n case 'ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 12;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else if (!isPM && value === 12) {\n date.setUTCHours(0, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['H', 'K', 'k', 't', 'T']\n },\n // Hour [0-23]\n H: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'H':\n return parseNumericPattern(numericPatterns.hour23h, string);\n\n case 'Ho':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 23;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCHours(value, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'K', 'k', 't', 'T']\n },\n // Hour [0-11]\n K: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'K':\n return parseNumericPattern(numericPatterns.hour11h, string);\n\n case 'Ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 11;\n },\n set: function (date, _flags, value, _options) {\n var isPM = date.getUTCHours() >= 12;\n\n if (isPM && value < 12) {\n date.setUTCHours(value + 12, 0, 0, 0);\n } else {\n date.setUTCHours(value, 0, 0, 0);\n }\n\n return date;\n },\n incompatibleTokens: ['h', 'H', 'k', 't', 'T']\n },\n // Hour [1-24]\n k: {\n priority: 70,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'k':\n return parseNumericPattern(numericPatterns.hour24h, string);\n\n case 'ko':\n return match.ordinalNumber(string, {\n unit: 'hour'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 1 && value <= 24;\n },\n set: function (date, _flags, value, _options) {\n var hours = value <= 24 ? value % 24 : value;\n date.setUTCHours(hours, 0, 0, 0);\n return date;\n },\n incompatibleTokens: ['a', 'b', 'h', 'H', 'K', 't', 'T']\n },\n // Minute\n m: {\n priority: 60,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 'm':\n return parseNumericPattern(numericPatterns.minute, string);\n\n case 'mo':\n return match.ordinalNumber(string, {\n unit: 'minute'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMinutes(value, 0, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Second\n s: {\n priority: 50,\n parse: function (string, token, match, _options) {\n switch (token) {\n case 's':\n return parseNumericPattern(numericPatterns.second, string);\n\n case 'so':\n return match.ordinalNumber(string, {\n unit: 'second'\n });\n\n default:\n return parseNDigits(token.length, string);\n }\n },\n validate: function (_date, value, _options) {\n return value >= 0 && value <= 59;\n },\n set: function (date, _flags, value, _options) {\n date.setUTCSeconds(value, 0);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Fraction of second\n S: {\n priority: 30,\n parse: function (string, token, _match, _options) {\n var valueCallback = function (value) {\n return Math.floor(value * Math.pow(10, -token.length + 3));\n };\n\n return parseNDigits(token.length, string, valueCallback);\n },\n set: function (date, _flags, value, _options) {\n date.setUTCMilliseconds(value);\n return date;\n },\n incompatibleTokens: ['t', 'T']\n },\n // Timezone (ISO-8601. +00:00 is `'Z'`)\n X: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'X':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'XX':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'XXXX':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'XXXXX':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'XXX':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'x']\n },\n // Timezone (ISO-8601)\n x: {\n priority: 10,\n parse: function (string, token, _match, _options) {\n switch (token) {\n case 'x':\n return parseTimezonePattern(timezonePatterns.basicOptionalMinutes, string);\n\n case 'xx':\n return parseTimezonePattern(timezonePatterns.basic, string);\n\n case 'xxxx':\n return parseTimezonePattern(timezonePatterns.basicOptionalSeconds, string);\n\n case 'xxxxx':\n return parseTimezonePattern(timezonePatterns.extendedOptionalSeconds, string);\n\n case 'xxx':\n default:\n return parseTimezonePattern(timezonePatterns.extended, string);\n }\n },\n set: function (date, flags, value, _options) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n return new Date(date.getTime() - value);\n },\n incompatibleTokens: ['t', 'T', 'X']\n },\n // Seconds timestamp\n t: {\n priority: 40,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value * 1000), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n },\n // Milliseconds timestamp\n T: {\n priority: 20,\n parse: function (string, _token, _match, _options) {\n return parseAnyDigitsSigned(string);\n },\n set: function (_date, _flags, value, _options) {\n return [new Date(value), {\n timestampIsSet: true\n }];\n },\n incompatibleTokens: '*'\n }\n};\nexport default parsers;","import defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport assign from \"../_lib/assign/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport parsers from \"./_lib/parsers/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar TIMEZONE_UNIT_PRIORITY = 10; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar notWhitespaceRegExp = /\\S/;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name parse\n * @category Common Helpers\n * @summary Parse the date.\n *\n * @description\n * Return the date parsed from string using the given format string.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters in the format string wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n *\n * Format of the format string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 5 below the table).\n *\n * Not all tokens are compatible. Combinations that don't make sense or could lead to bugs are prohibited\n * and will throw `RangeError`. For example usage of 24-hour format token with AM/PM token will throw an exception:\n *\n * ```javascript\n * parse('23 AM', 'HH a', new Date())\n * //=> RangeError: The format string mustn't contain `HH` and `a` at the same time\n * ```\n *\n * See the compatibility table: https://docs.google.com/spreadsheets/d/e/2PACX-1vQOPU3xUhplll6dyoMmVUXHKl_8CRDs6_ueLmex3SoqwhuolkuN3O05l4rqx5h1dKX8eb46Ul-CCSrq/pubhtml?gid=0&single=true\n *\n * Accepted format string patterns:\n * | Unit |Prior| Pattern | Result examples | Notes |\n * |---------------------------------|-----|---------|-----------------------------------|-------|\n * | Era | 140 | G..GGG | AD, BC | |\n * | | | GGGG | Anno Domini, Before Christ | 2 |\n * | | | GGGGG | A, B | |\n * | Calendar year | 130 | y | 44, 1, 1900, 2017, 9999 | 4 |\n * | | | yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | yy | 44, 01, 00, 17 | 4 |\n * | | | yyy | 044, 001, 123, 999 | 4 |\n * | | | yyyy | 0044, 0001, 1900, 2017 | 4 |\n * | | | yyyyy | ... | 2,4 |\n * | Local week-numbering year | 130 | Y | 44, 1, 1900, 2017, 9000 | 4 |\n * | | | Yo | 44th, 1st, 1900th, 9999999th | 4,5 |\n * | | | YY | 44, 01, 00, 17 | 4,6 |\n * | | | YYY | 044, 001, 123, 999 | 4 |\n * | | | YYYY | 0044, 0001, 1900, 2017 | 4,6 |\n * | | | YYYYY | ... | 2,4 |\n * | ISO week-numbering year | 130 | R | -43, 1, 1900, 2017, 9999, -9999 | 4,5 |\n * | | | RR | -43, 01, 00, 17 | 4,5 |\n * | | | RRR | -043, 001, 123, 999, -999 | 4,5 |\n * | | | RRRR | -0043, 0001, 2017, 9999, -9999 | 4,5 |\n * | | | RRRRR | ... | 2,4,5 |\n * | Extended year | 130 | u | -43, 1, 1900, 2017, 9999, -999 | 4 |\n * | | | uu | -43, 01, 99, -99 | 4 |\n * | | | uuu | -043, 001, 123, 999, -999 | 4 |\n * | | | uuuu | -0043, 0001, 2017, 9999, -9999 | 4 |\n * | | | uuuuu | ... | 2,4 |\n * | Quarter (formatting) | 120 | Q | 1, 2, 3, 4 | |\n * | | | Qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | QQ | 01, 02, 03, 04 | |\n * | | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | 120 | q | 1, 2, 3, 4 | |\n * | | | qo | 1st, 2nd, 3rd, 4th | 5 |\n * | | | qq | 01, 02, 03, 04 | |\n * | | | qqq | Q1, Q2, Q3, Q4 | |\n * | | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | | qqqqq | 1, 2, 3, 4 | 3 |\n * | Month (formatting) | 110 | M | 1, 2, ..., 12 | |\n * | | | Mo | 1st, 2nd, ..., 12th | 5 |\n * | | | MM | 01, 02, ..., 12 | |\n * | | | MMM | Jan, Feb, ..., Dec | |\n * | | | MMMM | January, February, ..., December | 2 |\n * | | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | 110 | L | 1, 2, ..., 12 | |\n * | | | Lo | 1st, 2nd, ..., 12th | 5 |\n * | | | LL | 01, 02, ..., 12 | |\n * | | | LLL | Jan, Feb, ..., Dec | |\n * | | | LLLL | January, February, ..., December | 2 |\n * | | | LLLLL | J, F, ..., D | |\n * | Local week of year | 100 | w | 1, 2, ..., 53 | |\n * | | | wo | 1st, 2nd, ..., 53th | 5 |\n * | | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | 100 | I | 1, 2, ..., 53 | 5 |\n * | | | Io | 1st, 2nd, ..., 53th | 5 |\n * | | | II | 01, 02, ..., 53 | 5 |\n * | Day of month | 90 | d | 1, 2, ..., 31 | |\n * | | | do | 1st, 2nd, ..., 31st | 5 |\n * | | | dd | 01, 02, ..., 31 | |\n * | Day of year | 90 | D | 1, 2, ..., 365, 366 | 7 |\n * | | | Do | 1st, 2nd, ..., 365th, 366th | 5 |\n * | | | DD | 01, 02, ..., 365, 366 | 7 |\n * | | | DDD | 001, 002, ..., 365, 366 | |\n * | | | DDDD | ... | 2 |\n * | Day of week (formatting) | 90 | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | | EEEEE | M, T, W, T, F, S, S | |\n * | | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | 90 | i | 1, 2, 3, ..., 7 | 5 |\n * | | | io | 1st, 2nd, ..., 7th | 5 |\n * | | | ii | 01, 02, ..., 07 | 5 |\n * | | | iii | Mon, Tue, Wed, ..., Sun | 5 |\n * | | | iiii | Monday, Tuesday, ..., Sunday | 2,5 |\n * | | | iiiii | M, T, W, T, F, S, S | 5 |\n * | | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 5 |\n * | Local day of week (formatting) | 90 | e | 2, 3, 4, ..., 1 | |\n * | | | eo | 2nd, 3rd, ..., 1st | 5 |\n * | | | ee | 02, 03, ..., 01 | |\n * | | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | | eeeee | M, T, W, T, F, S, S | |\n * | | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | 90 | c | 2, 3, 4, ..., 1 | |\n * | | | co | 2nd, 3rd, ..., 1st | 5 |\n * | | | cc | 02, 03, ..., 01 | |\n * | | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | | ccccc | M, T, W, T, F, S, S | |\n * | | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | 80 | a..aaa | AM, PM | |\n * | | | aaaa | a.m., p.m. | 2 |\n * | | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | 80 | b..bbb | AM, PM, noon, midnight | |\n * | | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | | bbbbb | a, p, n, mi | |\n * | Flexible day period | 80 | B..BBB | at night, in the morning, ... | |\n * | | | BBBB | at night, in the morning, ... | 2 |\n * | | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | 70 | h | 1, 2, ..., 11, 12 | |\n * | | | ho | 1st, 2nd, ..., 11th, 12th | 5 |\n * | | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | 70 | H | 0, 1, 2, ..., 23 | |\n * | | | Ho | 0th, 1st, 2nd, ..., 23rd | 5 |\n * | | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | 70 | K | 1, 2, ..., 11, 0 | |\n * | | | Ko | 1st, 2nd, ..., 11th, 0th | 5 |\n * | | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | 70 | k | 24, 1, 2, ..., 23 | |\n * | | | ko | 24th, 1st, 2nd, ..., 23rd | 5 |\n * | | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | 60 | m | 0, 1, ..., 59 | |\n * | | | mo | 0th, 1st, ..., 59th | 5 |\n * | | | mm | 00, 01, ..., 59 | |\n * | Second | 50 | s | 0, 1, ..., 59 | |\n * | | | so | 0th, 1st, ..., 59th | 5 |\n * | | | ss | 00, 01, ..., 59 | |\n * | Seconds timestamp | 40 | t | 512969520 | |\n * | | | tt | ... | 2 |\n * | Fraction of second | 30 | S | 0, 1, ..., 9 | |\n * | | | SS | 00, 01, ..., 99 | |\n * | | | SSS | 000, 001, ..., 999 | |\n * | | | SSSS | ... | 2 |\n * | Milliseconds timestamp | 20 | T | 512969520900 | |\n * | | | TT | ... | 2 |\n * | Timezone (ISO-8601 w/ Z) | 10 | X | -08, +0530, Z | |\n * | | | XX | -0800, +0530, Z | |\n * | | | XXX | -08:00, +05:30, Z | |\n * | | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | 10 | x | -08, +0530, +00 | |\n * | | | xx | -0800, +0530, +0000 | |\n * | | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Long localized date | NA | P | 05/29/1453 | 5,8 |\n * | | | PP | May 29, 1453 | |\n * | | | PPP | May 29th, 1453 | |\n * | | | PPPP | Sunday, May 29th, 1453 | 2,5,8 |\n * | Long localized time | NA | p | 12:00 AM | 5,8 |\n * | | | pp | 12:00:00 AM | |\n * | Combination of date and time | NA | Pp | 05/29/1453, 12:00 AM | |\n * | | | PPpp | May 29, 1453, 12:00:00 AM | |\n * | | | PPPpp | May 29th, 1453 at ... | |\n * | | | PPPPpp | Sunday, May 29th, 1453 at ... | 2,5,8 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular.\n * In `format` function, they will produce different result:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * `parse` will try to match both formatting and stand-alone units interchangably.\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table:\n * - for numerical units (`yyyyyyyy`) `parse` will try to match a number\n * as wide as the sequence\n * - for text units (`MMMMMMMM`) `parse` will try to match the widest variation of the unit.\n * These variations are marked with \"2\" in the last column of the table.\n *\n * 3. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 4. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` will try to guess the century of two digit year by proximity with `referenceDate`:\n *\n * `parse('50', 'yy', new Date(2018, 0, 1)) //=> Sat Jan 01 2050 00:00:00`\n *\n * `parse('75', 'yy', new Date(2018, 0, 1)) //=> Wed Jan 01 1975 00:00:00`\n *\n * while `uu` will just assign the year as is:\n *\n * `parse('50', 'uu', new Date(2018, 0, 1)) //=> Sat Jan 01 0050 00:00:00`\n *\n * `parse('75', 'uu', new Date(2018, 0, 1)) //=> Tue Jan 01 0075 00:00:00`\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [setISOWeekYear]{@link https://date-fns.org/docs/setISOWeekYear}\n * and [setWeekYear]{@link https://date-fns.org/docs/setWeekYear}).\n *\n * 5. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 6. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 7. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 8. `P+` tokens do not have a defined priority since they are merely aliases to other tokens based\n * on the given locale.\n *\n * using `en-US` locale: `P` => `MM/dd/yyyy`\n * using `en-US` locale: `p` => `hh:mm a`\n * using `pt-BR` locale: `P` => `dd/MM/yyyy`\n * using `pt-BR` locale: `p` => `HH:mm`\n *\n * Values will be assigned to the date in the descending order of its unit's priority.\n * Units of an equal priority overwrite each other in the order of appearance.\n *\n * If no values of higher priority are parsed (e.g. when parsing string 'January 1st' without a year),\n * the values will be taken from 3rd argument `referenceDate` which works as a context of parsing.\n *\n * `referenceDate` must be passed for correct work of the function.\n * If you're not sure which `referenceDate` to supply, create a new instance of Date:\n * `parse('02/11/2014', 'MM/dd/yyyy', new Date())`\n * In this case parsing will be done in the context of the current date.\n * If `referenceDate` is `Invalid Date` or a value not convertible to valid `Date`,\n * then `Invalid Date` will be returned.\n *\n * The result may vary by locale.\n *\n * If `formatString` matches with `dateString` but does not provides tokens, `referenceDate` will be returned.\n *\n * If parsing failed, `Invalid Date` will be returned.\n * Invalid Date is a Date, whose time value is NaN.\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Old `parse` was renamed to `toDate`.\n * Now `parse` is a new function which parses a string using a provided format.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward (toDate no longer accepts a string)\n * toDate(1392098430000) // Unix to timestamp\n * toDate(new Date(2014, 1, 11, 11, 30, 30)) // Cloning the date\n * parse('2016-01-01', 'yyyy-MM-dd', new Date())\n * ```\n *\n * @param {String} dateString - the string to parse\n * @param {String} formatString - the string of tokens\n * @param {Date|Number} referenceDate - defines values missing from the parsed dateString\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {1|2|3|4|5|6|7} [options.firstWeekContainsDate=1] - the day of January, which is always in the first week of the year\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {Date} the parsed date\n * @throws {TypeError} 3 arguments required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} `options.locale` must contain `match` property\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Parse 11 February 2014 from middle-endian format:\n * var result = parse('02/11/2014', 'MM/dd/yyyy', new Date())\n * //=> Tue Feb 11 2014 00:00:00\n *\n * @example\n * // Parse 28th of February in Esperanto locale in the context of 2010 year:\n * import eo from 'date-fns/locale/eo'\n * var result = parse('28-a de februaro', \"do 'de' MMMM\", new Date(2010, 0, 1), {\n * locale: eo\n * })\n * //=> Sun Feb 28 2010 00:00:00\n */\n\nexport default function parse(dirtyDateString, dirtyFormatString, dirtyReferenceDate, dirtyOptions) {\n requiredArgs(3, arguments);\n var dateString = String(dirtyDateString);\n var formatString = String(dirtyFormatString);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n\n if (!locale.match) {\n throw new RangeError('locale must contain match property');\n }\n\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (formatString === '') {\n if (dateString === '') {\n return toDate(dirtyReferenceDate);\n } else {\n return new Date(NaN);\n }\n }\n\n var subFnOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale\n }; // If timezone isn't specified, it will be set to the system timezone\n\n var setters = [{\n priority: TIMEZONE_UNIT_PRIORITY,\n subPriority: -1,\n set: dateToSystemTimezone,\n index: 0\n }];\n var i;\n var tokens = formatString.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, subFnOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp);\n var usedTokens = [];\n\n for (i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(token)) {\n throwProtectedError(token, formatString, dirtyDateString);\n }\n\n var firstCharacter = token[0];\n var parser = parsers[firstCharacter];\n\n if (parser) {\n var incompatibleTokens = parser.incompatibleTokens;\n\n if (Array.isArray(incompatibleTokens)) {\n var incompatibleToken = void 0;\n\n for (var _i = 0; _i < usedTokens.length; _i++) {\n var usedToken = usedTokens[_i].token;\n\n if (incompatibleTokens.indexOf(usedToken) !== -1 || usedToken === firstCharacter) {\n incompatibleToken = usedTokens[_i];\n break;\n }\n }\n\n if (incompatibleToken) {\n throw new RangeError(\"The format string mustn't contain `\".concat(incompatibleToken.fullToken, \"` and `\").concat(token, \"` at the same time\"));\n }\n } else if (parser.incompatibleTokens === '*' && usedTokens.length) {\n throw new RangeError(\"The format string mustn't contain `\".concat(token, \"` and any other token at the same time\"));\n }\n\n usedTokens.push({\n token: firstCharacter,\n fullToken: token\n });\n var parseResult = parser.parse(dateString, token, locale.match, subFnOptions);\n\n if (!parseResult) {\n return new Date(NaN);\n }\n\n setters.push({\n priority: parser.priority,\n subPriority: parser.subPriority || 0,\n set: parser.set,\n validate: parser.validate,\n value: parseResult.value,\n index: setters.length\n });\n dateString = parseResult.rest;\n } else {\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n } // Replace two single quote characters with one single quote character\n\n\n if (token === \"''\") {\n token = \"'\";\n } else if (firstCharacter === \"'\") {\n token = cleanEscapedString(token);\n } // Cut token from string, or, if string doesn't match the token, return Invalid Date\n\n\n if (dateString.indexOf(token) === 0) {\n dateString = dateString.slice(token.length);\n } else {\n return new Date(NaN);\n }\n }\n } // Check if the remaining input contains something other than whitespace\n\n\n if (dateString.length > 0 && notWhitespaceRegExp.test(dateString)) {\n return new Date(NaN);\n }\n\n var uniquePrioritySetters = setters.map(function (setter) {\n return setter.priority;\n }).sort(function (a, b) {\n return b - a;\n }).filter(function (priority, index, array) {\n return array.indexOf(priority) === index;\n }).map(function (priority) {\n return setters.filter(function (setter) {\n return setter.priority === priority;\n }).sort(function (a, b) {\n return b.subPriority - a.subPriority;\n });\n }).map(function (setterArray) {\n return setterArray[0];\n });\n var date = toDate(dirtyReferenceDate);\n\n if (isNaN(date)) {\n return new Date(NaN);\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/37\n\n\n var utcDate = subMilliseconds(date, getTimezoneOffsetInMilliseconds(date));\n var flags = {};\n\n for (i = 0; i < uniquePrioritySetters.length; i++) {\n var setter = uniquePrioritySetters[i];\n\n if (setter.validate && !setter.validate(utcDate, setter.value, subFnOptions)) {\n return new Date(NaN);\n }\n\n var result = setter.set(utcDate, flags, setter.value, subFnOptions); // Result is tuple (date, flags)\n\n if (result[0]) {\n utcDate = result[0];\n assign(flags, result[1]); // Result is date\n } else {\n utcDate = result;\n }\n }\n\n return utcDate;\n}\n\nfunction dateToSystemTimezone(date, flags) {\n if (flags.timestampIsSet) {\n return date;\n }\n\n var convertedDate = new Date(0);\n convertedDate.setFullYear(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n convertedDate.setHours(date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds(), date.getUTCMilliseconds());\n return convertedDate;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isDate\n * @category Common Helpers\n * @summary Is the given value a date?\n *\n * @description\n * Returns true if the given value is an instance of Date. The function works for dates transferred across iframes.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {*} value - the value to check\n * @returns {boolean} true if the given value is a date\n * @throws {TypeError} 1 arguments required\n *\n * @example\n * // For a valid date:\n * const result = isDate(new Date())\n * //=> true\n *\n * @example\n * // For an invalid date:\n * const result = isDate(new Date(NaN))\n * //=> true\n *\n * @example\n * // For some value:\n * const result = isDate('2014-02-31')\n * //=> false\n *\n * @example\n * // For an object:\n * const result = isDate({})\n * //=> false\n */\n\nexport default function isDate(value) {\n requiredArgs(1, arguments);\n return value instanceof Date || typeof value === 'object' && Object.prototype.toString.call(value) === '[object Date]';\n}","import isDate from \"../isDate/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * const result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * const result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * const result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n\n if (!isDate(dirtyDate) && typeof dirtyDate !== 'number') {\n return false;\n }\n\n var date = toDate(dirtyDate);\n return !isNaN(Number(date));\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setHours\n * @category Hour Helpers\n * @summary Set the hours to the given date.\n *\n * @description\n * Set the hours to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} hours - the hours of the new date\n * @returns {Date} the new date with the hours set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 4 hours to 1 September 2014 11:30:00:\n * var result = setHours(new Date(2014, 8, 1, 11, 30), 4)\n * //=> Mon Sep 01 2014 04:30:00\n */\n\nexport default function setHours(dirtyDate, dirtyHours) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var hours = toInteger(dirtyHours);\n date.setHours(hours);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMinutes\n * @category Minute Helpers\n * @summary Set the minutes to the given date.\n *\n * @description\n * Set the minutes to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} minutes - the minutes of the new date\n * @returns {Date} the new date with the minutes set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 minutes to 1 September 2014 11:30:40:\n * const result = setMinutes(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:45:40\n */\n\nexport default function setMinutes(dirtyDate, dirtyMinutes) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var minutes = toInteger(dirtyMinutes);\n date.setMinutes(minutes);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setSeconds\n * @category Second Helpers\n * @summary Set the seconds to the given date.\n *\n * @description\n * Set the seconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} seconds - the seconds of the new date\n * @returns {Date} the new date with the seconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 45 seconds to 1 September 2014 11:30:40:\n * const result = setSeconds(new Date(2014, 8, 1, 11, 30, 40), 45)\n * //=> Mon Sep 01 2014 11:30:45\n */\n\nexport default function setSeconds(dirtyDate, dirtySeconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var seconds = toInteger(dirtySeconds);\n date.setSeconds(seconds);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMilliseconds\n * @category Millisecond Helpers\n * @summary Set the milliseconds to the given date.\n *\n * @description\n * Set the milliseconds to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} milliseconds - the milliseconds of the new date\n * @returns {Date} the new date with the milliseconds set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set 300 milliseconds to 1 September 2014 11:30:40.500:\n * const result = setMilliseconds(new Date(2014, 8, 1, 11, 30, 40, 500), 300)\n * //=> Mon Sep 01 2014 11:30:40.300\n */\n\nexport default function setMilliseconds(dirtyDate, dirtyMilliseconds) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var milliseconds = toInteger(dirtyMilliseconds);\n date.setMilliseconds(milliseconds);\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * const result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 months, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n var dayOfMonth = date.getDate(); // The JS Date object supports date math by accepting out-of-bounds values for\n // month, day, etc. For example, new Date(2020, 0, 0) returns 31 Dec 2019 and\n // new Date(2020, 13, 1) returns 1 Feb 2021. This is *almost* the behavior we\n // want except that dates will wrap around the end of a month, meaning that\n // new Date(2020, 13, 31) will return 3 Mar 2021 not 28 Feb 2021 as desired. So\n // we'll default to the end of the desired month by adding 1 to the desired\n // month and using a date of 0 to back up one day to the end of the desired\n // month.\n\n var endOfDesiredMonth = new Date(date.getTime());\n endOfDesiredMonth.setMonth(date.getMonth() + amount + 1, 0);\n var daysInMonth = endOfDesiredMonth.getDate();\n\n if (dayOfMonth >= daysInMonth) {\n // If we're already at the end of the month, then this is the correct date\n // and we're done.\n return endOfDesiredMonth;\n } else {\n // Otherwise, we now know that setting the original day-of-month value won't\n // cause an overflow, so set the desired day-of-month. Note that we can't\n // just set the date of `endOfDesiredMonth` because that object may have had\n // its time changed in the unusual case where where a DST transition was on\n // the last day of the month and its local time was in the hour skipped or\n // repeated next to a DST transition. So we use `date` instead which is\n // guaranteed to still have the original time.\n date.setFullYear(endOfDesiredMonth.getFullYear(), endOfDesiredMonth.getMonth(), dayOfMonth);\n return date;\n }\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMonth\n * @category Month Helpers\n * @summary Get the month of the given date.\n *\n * @description\n * Get the month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which month is 29 February 2012?\n * const result = getMonth(new Date(2012, 1, 29))\n * //=> 1\n */\n\nexport default function getMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n return month;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getYear\n * @category Year Helpers\n * @summary Get the year of the given date.\n *\n * @description\n * Get the year of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which year is 2 July 2014?\n * const result = getYear(new Date(2014, 6, 2))\n * //=> 2014\n */\n\nexport default function getYear(dirtyDate) {\n requiredArgs(1, arguments);\n return toDate(dirtyDate).getFullYear();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * const result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport getDaysInMonth from \"../getDaysInMonth/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setMonth\n * @category Month Helpers\n * @summary Set the month to the given date.\n *\n * @description\n * Set the month to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} month - the month of the new date\n * @returns {Date} the new date with the month set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set February to 1 September 2014:\n * const result = setMonth(new Date(2014, 8, 1), 1)\n * //=> Sat Feb 01 2014 00:00:00\n */\n\nexport default function setMonth(dirtyDate, dirtyMonth) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var month = toInteger(dirtyMonth);\n var year = date.getFullYear();\n var day = date.getDate();\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(year, month, 15);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(month, Math.min(day, daysInMonth));\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name setYear\n * @category Year Helpers\n * @summary Set the year to the given date.\n *\n * @description\n * Set the year to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} year - the year of the new date\n * @returns {Date} the new date with the year set\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Set year 2013 to 1 September 2014:\n * const result = setYear(new Date(2014, 8, 1), 2013)\n * //=> Sun Sep 01 2013 00:00:00\n */\n\nexport default function setYear(dirtyDate, dirtyYear) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var year = toInteger(dirtyYear); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n date.setFullYear(year);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getHours\n * @category Hour Helpers\n * @summary Get the hours of the given date.\n *\n * @description\n * Get the hours of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the hours\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the hours of 29 February 2012 11:45:00:\n * const result = getHours(new Date(2012, 1, 29, 11, 45))\n * //=> 11\n */\n\nexport default function getHours(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var hours = date.getHours();\n return hours;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getMinutes\n * @category Minute Helpers\n * @summary Get the minutes of the given date.\n *\n * @description\n * Get the minutes of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the minutes\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the minutes of 29 February 2012 11:45:05:\n * const result = getMinutes(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 45\n */\n\nexport default function getMinutes(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var minutes = date.getMinutes();\n return minutes;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getSeconds\n * @category Second Helpers\n * @summary Get the seconds of the given date.\n *\n * @description\n * Get the seconds of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the seconds\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the seconds of 29 February 2012 11:45:05.123:\n * const result = getSeconds(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 5\n */\n\nexport default function getSeconds(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var seconds = date.getSeconds();\n return seconds;\n}","import toDate from \"../../toDate/index.js\";\nimport requiredArgs from \"../requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from \"../../addLeadingZeros/index.js\";\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaa':\n return dayPeriodEnumValue;\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import getUTCDayOfYear from \"../../../_lib/getUTCDayOfYear/index.js\";\nimport getUTCISOWeek from \"../../../_lib/getUTCISOWeek/index.js\";\nimport getUTCISOWeekYear from \"../../../_lib/getUTCISOWeekYear/index.js\";\nimport getUTCWeek from \"../../../_lib/getUTCWeek/index.js\";\nimport getUTCWeekYear from \"../../../_lib/getUTCWeekYear/index.js\";\nimport addLeadingZeros from \"../../addLeadingZeros/index.js\";\nimport lightFormatters from \"../lightFormatters/index.js\";\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n};\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n }).toLowerCase();\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import isValid from \"../isValid/index.js\";\nimport defaultLocale from \"../locale/en-US/index.js\";\nimport subMilliseconds from \"../subMilliseconds/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport formatters from \"../_lib/format/formatters/index.js\";\nimport longFormatters from \"../_lib/format/longFormatters/index.js\";\nimport getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from \"../_lib/protectedTokens/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\"; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Sun | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Sun | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Sa, Su | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Sun | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Sun | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Sa, Su | |\n * | AM, PM | a..aa | AM, PM | |\n * | | aaa | am, pm | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bb | AM, PM, noon, midnight | |\n * | | bbb | am, pm, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 01, 02, ..., 11, 00 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 04/29/1453 | 7 |\n * | | PP | Apr 29, 1453 | 7 |\n * | | PPP | April 29th, 1453 | 7 |\n * | | PPPP | Friday, April 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 04/29/1453, 12:00 AM | 7 |\n * | | PPpp | Apr 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | April 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Friday, April 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are often confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month using [format provided] to the input [input provided]; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring, dirtyFormatStr, dirtyDate);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isAfter\n * @category Common Helpers\n * @summary Is the first date after the second one?\n *\n * @description\n * Is the first date after the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be after the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is after the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 after 11 February 1987?\n * var result = isAfter(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> true\n */\n\nexport default function isAfter(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() > dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\n\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isEqual\n * @category Common Helpers\n * @summary Are the given dates equal?\n *\n * @description\n * Are the given dates equal?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Boolean} the dates are equal\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 July 2014 06:30:45.000 and 2 July 2014 06:30:45.500 equal?\n * var result = isEqual(\n * new Date(2014, 6, 2, 6, 30, 45, 0),\n * new Date(2014, 6, 2, 6, 30, 45, 500)\n * )\n * //=> false\n */\n\nexport default function isEqual(dirtyLeftDate, dirtyRightDate) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyLeftDate);\n var dateRight = toDate(dirtyRightDate);\n return dateLeft.getTime() === dateRight.getTime();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import addDays from \"../addDays/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n\n/**\n * @name add\n * @category Common Helpers\n * @summary Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @description\n * Add the specified years, months, weeks, days, hours, minutes and seconds to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n *\n * | Key | Description |\n * |----------------|------------------------------------|\n * | years | Amount of years to be added |\n * | months | Amount of months to be added |\n * | weeks | Amount of weeks to be added |\n * | days | Amount of days to be added |\n * | hours | Amount of hours to be added |\n * | minutes | Amount of minutes to be added |\n * | seconds | Amount of seconds to be added |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add the following duration to 1 September 2014, 10:19:50\n * const result = add(new Date(2014, 8, 1, 10, 19, 50), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30,\n * })\n * //=> Thu Jun 15 2017 15:29:20\n */\nexport default function add(dirtyDate, duration) {\n requiredArgs(2, arguments);\n if (!duration || typeof duration !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0; // Add years and months\n\n var date = toDate(dirtyDate);\n var dateWithMonths = months || years ? addMonths(date, months + years * 12) : date; // Add weeks and days\n\n var dateWithDays = days || weeks ? addDays(dateWithMonths, days + weeks * 7) : dateWithMonths; // Add days, hours, minutes and seconds\n\n var minutesToAdd = minutes + hours * 60;\n var secondsToAdd = seconds + minutesToAdd * 60;\n var msToAdd = secondsToAdd * 1000;\n var finalDate = new Date(dateWithDays.getTime() + msToAdd);\n return finalDate;\n}","import toDate from \"../toDate/index.js\";\nimport setMonth from \"../setMonth/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name set\n * @category Common Helpers\n * @summary Set date values to a given date.\n *\n * @description\n * Set date values to a given date.\n *\n * Sets time values to date from object `values`.\n * A value is not set if it is undefined or null or doesn't exist in `values`.\n *\n * Note about bundle size: `set` does not internally use `setX` functions from date-fns but instead opts\n * to use native `Date#setX` methods. If you use this function, you may not want to include the\n * other `setX` functions that date-fns provides if you are concerned about the bundle size.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Object} values - an object with options\n * @param {Number} [values.year] - the number of years to be set\n * @param {Number} [values.month] - the number of months to be set\n * @param {Number} [values.date] - the number of days to be set\n * @param {Number} [values.hours] - the number of hours to be set\n * @param {Number} [values.minutes] - the number of minutes to be set\n * @param {Number} [values.seconds] - the number of seconds to be set\n * @param {Number} [values.milliseconds] - the number of milliseconds to be set\n * @returns {Date} the new date with options set\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `values` must be an object\n *\n * @example\n * // Transform 1 September 2014 into 20 October 2015 in a single line:\n * var result = set(new Date(2014, 8, 20), { year: 2015, month: 9, date: 20 })\n * //=> Tue Oct 20 2015 00:00:00\n *\n * @example\n * // Set 12 PM to 1 September 2014 01:23:45 to 1 September 2014 12:00:00:\n * var result = set(new Date(2014, 8, 1, 1, 23, 45), { hours: 12 })\n * //=> Mon Sep 01 2014 12:23:45\n */\nexport default function set(dirtyDate, values) {\n requiredArgs(2, arguments);\n\n if (typeof values !== 'object' || values === null) {\n throw new RangeError('values parameter must be an object');\n }\n\n var date = toDate(dirtyDate); // Check if date is Invalid Date because Date.prototype.setFullYear ignores the value of Invalid Date\n\n if (isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n if (values.year != null) {\n date.setFullYear(values.year);\n }\n\n if (values.month != null) {\n date = setMonth(date, values.month);\n }\n\n if (values.date != null) {\n date.setDate(toInteger(values.date));\n }\n\n if (values.hours != null) {\n date.setHours(toInteger(values.hours));\n }\n\n if (values.minutes != null) {\n date.setMinutes(toInteger(values.minutes));\n }\n\n if (values.seconds != null) {\n date.setSeconds(toInteger(values.seconds));\n }\n\n if (values.milliseconds != null) {\n date.setMilliseconds(toInteger(values.milliseconds));\n }\n\n return date;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subMonths\n * @category Month Helpers\n * @summary Subtract the specified number of months from the given date.\n *\n * @description\n * Subtract the specified number of months from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the months subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 months from 1 February 2015:\n * const result = subMonths(new Date(2015, 1, 1), 5)\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function subMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, -amount);\n}","import subDays from \"../subDays/index.js\";\nimport subMonths from \"../subMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name sub\n * @category Common Helpers\n * @summary Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @description\n * Subtract the specified years, months, weeks, days, hours, minutes and seconds from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Duration} duration - the object with years, months, weeks, days, hours, minutes and seconds to be subtracted\n *\n * | Key | Description |\n * |---------|------------------------------------|\n * | years | Amount of years to be subtracted |\n * | months | Amount of months to be subtracted |\n * | weeks | Amount of weeks to be subtracted |\n * | days | Amount of days to be subtracted |\n * | hours | Amount of hours to be subtracted |\n * | minutes | Amount of minutes to be subtracted |\n * | seconds | Amount of seconds to be subtracted |\n *\n * All values default to 0\n *\n * @returns {Date} the new date with the seconds subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract the following duration from 15 June 2017 15:29:20\n * const result = sub(new Date(2017, 5, 15, 15, 29, 20), {\n * years: 2,\n * months: 9,\n * weeks: 1,\n * days: 7,\n * hours: 5,\n * minutes: 9,\n * seconds: 30\n * })\n * //=> Mon Sep 1 2014 10:19:50\n */\n\nexport default function sub(date, duration) {\n requiredArgs(2, arguments);\n if (!duration || typeof duration !== 'object') return new Date(NaN);\n var years = duration.years ? toInteger(duration.years) : 0;\n var months = duration.months ? toInteger(duration.months) : 0;\n var weeks = duration.weeks ? toInteger(duration.weeks) : 0;\n var days = duration.days ? toInteger(duration.days) : 0;\n var hours = duration.hours ? toInteger(duration.hours) : 0;\n var minutes = duration.minutes ? toInteger(duration.minutes) : 0;\n var seconds = duration.seconds ? toInteger(duration.seconds) : 0; // Subtract years and months\n\n var dateWithoutMonths = subMonths(date, months + years * 12); // Subtract weeks and days\n\n var dateWithoutDays = subDays(dateWithoutMonths, days + weeks * 7); // Subtract hours, minutes and seconds\n\n var minutestoSub = minutes + hours * 60;\n var secondstoSub = seconds + minutestoSub * 60;\n var mstoSub = secondstoSub * 1000;\n var finalDate = new Date(dateWithoutDays.getTime() - mstoSub);\n return finalDate;\n}","/**\n * Days in 1 week.\n *\n * @name daysInWeek\n * @constant\n * @type {number}\n * @default\n */\nexport var daysInWeek = 7;\n/**\n * Maximum allowed time.\n *\n * @name maxTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var maxTime = Math.pow(10, 8) * 24 * 60 * 60 * 1000;\n/**\n * Milliseconds in 1 minute\n *\n * @name millisecondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInMinute = 60000;\n/**\n * Milliseconds in 1 hour\n *\n * @name millisecondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInHour = 3600000;\n/**\n * Milliseconds in 1 second\n *\n * @name millisecondsInSecond\n * @constant\n * @type {number}\n * @default\n */\n\nexport var millisecondsInSecond = 1000;\n/**\n * Minimum allowed time.\n *\n * @name minTime\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minTime = -maxTime;\n/**\n * Minutes in 1 hour\n *\n * @name minutesInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var minutesInHour = 60;\n/**\n * Months in 1 quarter\n *\n * @name monthsInQuarter\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInQuarter = 3;\n/**\n * Months in 1 year\n *\n * @name monthsInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var monthsInYear = 12;\n/**\n * Quarters in 1 year\n *\n * @name quartersInYear\n * @constant\n * @type {number}\n * @default\n */\n\nexport var quartersInYear = 4;\n/**\n * Seconds in 1 hour\n *\n * @name secondsInHour\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInHour = 3600;\n/**\n * Seconds in 1 minute\n *\n * @name secondsInMinute\n * @constant\n * @type {number}\n * @default\n */\n\nexport var secondsInMinute = 60;","import { millisecondsInHour, millisecondsInMinute } from \"../constants/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name parseISO\n * @category Common Helpers\n * @summary Parse ISO string\n *\n * @description\n * Parse the given string in ISO 8601 format and return an instance of Date.\n *\n * Function accepts complete ISO 8601 formats as well as partial implementations.\n * ISO 8601: http://en.wikipedia.org/wiki/ISO_8601\n *\n * If the argument isn't a string, the function cannot parse the string or\n * the values are invalid, it returns Invalid Date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The previous `parse` implementation was renamed to `parseISO`.\n *\n * ```javascript\n * // Before v2.0.0\n * parse('2016-01-01')\n *\n * // v2.0.0 onward\n * parseISO('2016-01-01')\n * ```\n *\n * - `parseISO` now validates separate date and time values in ISO-8601 strings\n * and returns `Invalid Date` if the date is invalid.\n *\n * ```javascript\n * parseISO('2018-13-32')\n * //=> Invalid Date\n * ```\n *\n * - `parseISO` now doesn't fall back to `new Date` constructor\n * if it fails to parse a string argument. Instead, it returns `Invalid Date`.\n *\n * @param {String} argument - the value to convert\n * @param {Object} [options] - an object with options.\n * @param {0|1|2} [options.additionalDigits=2] - the additional number of digits in the extended year format\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.additionalDigits` must be 0, 1 or 2\n *\n * @example\n * // Convert string '2014-02-11T11:30:30' to date:\n * const result = parseISO('2014-02-11T11:30:30')\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert string '+02014101' to date,\n * // if the additional number of digits in the extended year format is 1:\n * const result = parseISO('+02014101', { additionalDigits: 1 })\n * //=> Fri Apr 11 2014 00:00:00\n */\n\nexport default function parseISO(argument, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var additionalDigits = options.additionalDigits == null ? 2 : toInteger(options.additionalDigits);\n\n if (additionalDigits !== 2 && additionalDigits !== 1 && additionalDigits !== 0) {\n throw new RangeError('additionalDigits must be 0, 1 or 2');\n }\n\n if (!(typeof argument === 'string' || Object.prototype.toString.call(argument) === '[object String]')) {\n return new Date(NaN);\n }\n\n var dateStrings = splitDateString(argument);\n var date;\n\n if (dateStrings.date) {\n var parseYearResult = parseYear(dateStrings.date, additionalDigits);\n date = parseDate(parseYearResult.restDateString, parseYearResult.year);\n }\n\n if (!date || isNaN(date.getTime())) {\n return new Date(NaN);\n }\n\n var timestamp = date.getTime();\n var time = 0;\n var offset;\n\n if (dateStrings.time) {\n time = parseTime(dateStrings.time);\n\n if (isNaN(time)) {\n return new Date(NaN);\n }\n }\n\n if (dateStrings.timezone) {\n offset = parseTimezone(dateStrings.timezone);\n\n if (isNaN(offset)) {\n return new Date(NaN);\n }\n } else {\n var dirtyDate = new Date(timestamp + time); // js parsed string assuming it's in UTC timezone\n // but we need it to be parsed in our timezone\n // so we use utc values to build date in our timezone.\n // Year values from 0 to 99 map to the years 1900 to 1999\n // so set year explicitly with setFullYear.\n\n var result = new Date(0);\n result.setFullYear(dirtyDate.getUTCFullYear(), dirtyDate.getUTCMonth(), dirtyDate.getUTCDate());\n result.setHours(dirtyDate.getUTCHours(), dirtyDate.getUTCMinutes(), dirtyDate.getUTCSeconds(), dirtyDate.getUTCMilliseconds());\n return result;\n }\n\n return new Date(timestamp + time + offset);\n}\nvar patterns = {\n dateTimeDelimiter: /[T ]/,\n timeZoneDelimiter: /[Z ]/i,\n timezone: /([Z+-].*)$/\n};\nvar dateRegex = /^-?(?:(\\d{3})|(\\d{2})(?:-?(\\d{2}))?|W(\\d{2})(?:-?(\\d{1}))?|)$/;\nvar timeRegex = /^(\\d{2}(?:[.,]\\d*)?)(?::?(\\d{2}(?:[.,]\\d*)?))?(?::?(\\d{2}(?:[.,]\\d*)?))?$/;\nvar timezoneRegex = /^([+-])(\\d{2})(?::?(\\d{2}))?$/;\n\nfunction splitDateString(dateString) {\n var dateStrings = {};\n var array = dateString.split(patterns.dateTimeDelimiter);\n var timeString; // The regex match should only return at maximum two array elements.\n // [date], [time], or [date, time].\n\n if (array.length > 2) {\n return dateStrings;\n }\n\n if (/:/.test(array[0])) {\n timeString = array[0];\n } else {\n dateStrings.date = array[0];\n timeString = array[1];\n\n if (patterns.timeZoneDelimiter.test(dateStrings.date)) {\n dateStrings.date = dateString.split(patterns.timeZoneDelimiter)[0];\n timeString = dateString.substr(dateStrings.date.length, dateString.length);\n }\n }\n\n if (timeString) {\n var token = patterns.timezone.exec(timeString);\n\n if (token) {\n dateStrings.time = timeString.replace(token[1], '');\n dateStrings.timezone = token[1];\n } else {\n dateStrings.time = timeString;\n }\n }\n\n return dateStrings;\n}\n\nfunction parseYear(dateString, additionalDigits) {\n var regex = new RegExp('^(?:(\\\\d{4}|[+-]\\\\d{' + (4 + additionalDigits) + '})|(\\\\d{2}|[+-]\\\\d{' + (2 + additionalDigits) + '})$)');\n var captures = dateString.match(regex); // Invalid ISO-formatted year\n\n if (!captures) return {\n year: NaN,\n restDateString: ''\n };\n var year = captures[1] ? parseInt(captures[1]) : null;\n var century = captures[2] ? parseInt(captures[2]) : null; // either year or century is null, not both\n\n return {\n year: century === null ? year : century * 100,\n restDateString: dateString.slice((captures[1] || captures[2]).length)\n };\n}\n\nfunction parseDate(dateString, year) {\n // Invalid ISO-formatted year\n if (year === null) return new Date(NaN);\n var captures = dateString.match(dateRegex); // Invalid ISO-formatted string\n\n if (!captures) return new Date(NaN);\n var isWeekDate = !!captures[4];\n var dayOfYear = parseDateUnit(captures[1]);\n var month = parseDateUnit(captures[2]) - 1;\n var day = parseDateUnit(captures[3]);\n var week = parseDateUnit(captures[4]);\n var dayOfWeek = parseDateUnit(captures[5]) - 1;\n\n if (isWeekDate) {\n if (!validateWeekDate(year, week, dayOfWeek)) {\n return new Date(NaN);\n }\n\n return dayOfISOWeekYear(year, week, dayOfWeek);\n } else {\n var date = new Date(0);\n\n if (!validateDate(year, month, day) || !validateDayOfYearDate(year, dayOfYear)) {\n return new Date(NaN);\n }\n\n date.setUTCFullYear(year, month, Math.max(dayOfYear, day));\n return date;\n }\n}\n\nfunction parseDateUnit(value) {\n return value ? parseInt(value) : 1;\n}\n\nfunction parseTime(timeString) {\n var captures = timeString.match(timeRegex);\n if (!captures) return NaN; // Invalid ISO-formatted time\n\n var hours = parseTimeUnit(captures[1]);\n var minutes = parseTimeUnit(captures[2]);\n var seconds = parseTimeUnit(captures[3]);\n\n if (!validateTime(hours, minutes, seconds)) {\n return NaN;\n }\n\n return hours * millisecondsInHour + minutes * millisecondsInMinute + seconds * 1000;\n}\n\nfunction parseTimeUnit(value) {\n return value && parseFloat(value.replace(',', '.')) || 0;\n}\n\nfunction parseTimezone(timezoneString) {\n if (timezoneString === 'Z') return 0;\n var captures = timezoneString.match(timezoneRegex);\n if (!captures) return 0;\n var sign = captures[1] === '+' ? -1 : 1;\n var hours = parseInt(captures[2]);\n var minutes = captures[3] && parseInt(captures[3]) || 0;\n\n if (!validateTimezone(hours, minutes)) {\n return NaN;\n }\n\n return sign * (hours * millisecondsInHour + minutes * millisecondsInMinute);\n}\n\nfunction dayOfISOWeekYear(isoWeekYear, week, day) {\n var date = new Date(0);\n date.setUTCFullYear(isoWeekYear, 0, 4);\n var fourthOfJanuaryDay = date.getUTCDay() || 7;\n var diff = (week - 1) * 7 + day + 1 - fourthOfJanuaryDay;\n date.setUTCDate(date.getUTCDate() + diff);\n return date;\n} // Validation functions\n// February is null to handle the leap year (using ||)\n\n\nvar daysInMonths = [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\nfunction isLeapYearIndex(year) {\n return year % 400 === 0 || year % 4 === 0 && year % 100 !== 0;\n}\n\nfunction validateDate(year, month, date) {\n return month >= 0 && month <= 11 && date >= 1 && date <= (daysInMonths[month] || (isLeapYearIndex(year) ? 29 : 28));\n}\n\nfunction validateDayOfYearDate(year, dayOfYear) {\n return dayOfYear >= 1 && dayOfYear <= (isLeapYearIndex(year) ? 366 : 365);\n}\n\nfunction validateWeekDate(_year, week, day) {\n return week >= 1 && week <= 53 && day >= 0 && day <= 6;\n}\n\nfunction validateTime(hours, minutes, seconds) {\n if (hours === 24) {\n return minutes === 0 && seconds === 0;\n }\n\n return seconds >= 0 && seconds < 60 && minutes >= 0 && minutes < 60 && hours >= 0 && hours < 25;\n}\n\nfunction validateTimezone(_hours, minutes) {\n return minutes >= 0 && minutes <= 59;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * const result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * const result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\nexport default function endOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getDay\n * @category Weekday Helpers\n * @summary Get the day of the week of the given date.\n *\n * @description\n * Get the day of the week of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {0|1|2|3|4|5|6} the day of week, 0 represents Sunday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which day of the week is 29 February 2012?\n * const result = getDay(new Date(2012, 1, 29))\n * //=> 3\n */\n\nexport default function getDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var day = date.getDay();\n return day;\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addMonths from \"../addMonths/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * const result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addYears from \"../addYears/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * const result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\n\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import getTimezoneOffsetInMilliseconds from \"../_lib/getTimezoneOffsetInMilliseconds/index.js\";\nimport startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * const result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * const result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name eachDayOfInterval\n * @category Interval Helpers\n * @summary Return the array of dates within the specified time interval.\n *\n * @description\n * Return the array of dates within the specified time interval.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `eachDay` to `eachDayOfInterval`.\n * This change was made to mirror the use of the word \"interval\" in standard ISO 8601:2004 terminology:\n *\n * ```\n * 2.1.3\n * time interval\n * part of the time axis limited by two instants\n * ```\n *\n * Also, this function now accepts an object with `start` and `end` properties\n * instead of two arguments as an interval.\n * This function now throws `RangeError` if the start of the interval is after its end\n * or if any date in the interval is `Invalid Date`.\n *\n * ```javascript\n * // Before v2.0.0\n *\n * eachDay(new Date(2014, 0, 10), new Date(2014, 0, 20))\n *\n * // v2.0.0 onward\n *\n * eachDayOfInterval(\n * { start: new Date(2014, 0, 10), end: new Date(2014, 0, 20) }\n * )\n * ```\n *\n * @param {Interval} interval - the interval. See [Interval]{@link https://date-fns.org/docs/Interval}\n * @param {Object} [options] - an object with options.\n * @param {Number} [options.step=1] - the step to increment by. The value should be more than 1.\n * @returns {Date[]} the array with starts of days from the day of the interval start to the day of the interval end\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.step` must be a number greater than 1\n * @throws {RangeError} The start of an interval cannot be after its end\n * @throws {RangeError} Date in interval cannot be `Invalid Date`\n *\n * @example\n * // Each day between 6 October 2014 and 10 October 2014:\n * const result = eachDayOfInterval({\n * start: new Date(2014, 9, 6),\n * end: new Date(2014, 9, 10)\n * })\n * //=> [\n * // Mon Oct 06 2014 00:00:00,\n * // Tue Oct 07 2014 00:00:00,\n * // Wed Oct 08 2014 00:00:00,\n * // Thu Oct 09 2014 00:00:00,\n * // Fri Oct 10 2014 00:00:00\n * // ]\n */\n\nexport default function eachDayOfInterval(dirtyInterval, options) {\n requiredArgs(1, arguments);\n var interval = dirtyInterval || {};\n var startDate = toDate(interval.start);\n var endDate = toDate(interval.end);\n var endTime = endDate.getTime(); // Throw an exception if start date is after end date or if any date is `Invalid Date`\n\n if (!(startDate.getTime() <= endTime)) {\n throw new RangeError('Invalid interval');\n }\n\n var dates = [];\n var currentDate = startDate;\n currentDate.setHours(0, 0, 0, 0);\n var step = options && 'step' in options ? Number(options.step) : 1;\n if (step < 1 || isNaN(step)) throw new RangeError('`options.step` must be a number greater than 1');\n\n while (currentDate.getTime() <= endTime) {\n dates.push(toDate(currentDate));\n currentDate.setDate(currentDate.getDate() + step);\n currentDate.setHours(0, 0, 0, 0);\n }\n\n return dates;\n}","import startOfWeek from \"../startOfWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeek\n * @category ISO Week Helpers\n * @summary Return the start of an ISO week for the given date.\n *\n * @description\n * Return the start of an ISO week for the given date.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week for 2 September 2014 11:55:00:\n * var result = startOfISOWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n return startOfWeek(dirtyDate, {\n weekStartsOn: 1\n });\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name getISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Get the ISO week-numbering year of the given date.\n *\n * @description\n * Get the ISO week-numbering year of the given date,\n * which always starts 3 days before the year's first Thursday.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The function was renamed from `getISOYear` to `getISOWeekYear`.\n * \"ISO week year\" is short for [ISO week-numbering year](https://en.wikipedia.org/wiki/ISO_week_date).\n * This change makes the name consistent with\n * locale-dependent week-numbering year helpers, e.g., `getWeekYear`.\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which ISO-week numbering year is 2 January 2005?\n * const result = getISOWeekYear(new Date(2005, 0, 2))\n * //=> 2004\n */\n\nexport default function getISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var fourthOfJanuaryOfNextYear = new Date(0);\n fourthOfJanuaryOfNextYear.setFullYear(year + 1, 0, 4);\n fourthOfJanuaryOfNextYear.setHours(0, 0, 0, 0);\n var startOfNextYear = startOfISOWeek(fourthOfJanuaryOfNextYear);\n var fourthOfJanuaryOfThisYear = new Date(0);\n fourthOfJanuaryOfThisYear.setFullYear(year, 0, 4);\n fourthOfJanuaryOfThisYear.setHours(0, 0, 0, 0);\n var startOfThisYear = startOfISOWeek(fourthOfJanuaryOfThisYear);\n\n if (date.getTime() >= startOfNextYear.getTime()) {\n return year + 1;\n } else if (date.getTime() >= startOfThisYear.getTime()) {\n return year;\n } else {\n return year - 1;\n }\n}","import getISOWeekYear from \"../getISOWeekYear/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfISOWeekYear\n * @category ISO Week-Numbering Year Helpers\n * @summary Return the start of an ISO week-numbering year for the given date.\n *\n * @description\n * Return the start of an ISO week-numbering year,\n * which always starts 3 days before the year's first Thursday.\n * The result will be in the local timezone.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of an ISO week-numbering year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of an ISO week-numbering year for 2 July 2005:\n * const result = startOfISOWeekYear(new Date(2005, 6, 2))\n * //=> Mon Jan 03 2005 00:00:00\n */\n\nexport default function startOfISOWeekYear(dirtyDate) {\n requiredArgs(1, arguments);\n var year = getISOWeekYear(dirtyDate);\n var fourthOfJanuary = new Date(0);\n fourthOfJanuary.setFullYear(year, 0, 4);\n fourthOfJanuary.setHours(0, 0, 0, 0);\n var date = startOfISOWeek(fourthOfJanuary);\n return date;\n}","import toDate from \"../toDate/index.js\";\nimport startOfISOWeek from \"../startOfISOWeek/index.js\";\nimport startOfISOWeekYear from \"../startOfISOWeekYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nvar MILLISECONDS_IN_WEEK = 604800000;\n/**\n * @name getISOWeek\n * @category ISO Week Helpers\n * @summary Get the ISO week of the given date.\n *\n * @description\n * Get the ISO week of the given date.\n *\n * ISO week-numbering year: http://en.wikipedia.org/wiki/ISO_week_date\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the ISO week\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Which week of the ISO-week numbering year is 2 January 2005?\n * const result = getISOWeek(new Date(2005, 0, 2))\n * //=> 53\n */\n\nexport default function getISOWeek(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var diff = startOfISOWeek(date).getTime() - startOfISOWeekYear(date).getTime(); // Round the number of days to the nearest integer\n // because the number of milliseconds in a week is not constant\n // (e.g. it's different in the week of the daylight saving time clock shift)\n\n return Math.round(diff / MILLISECONDS_IN_WEEK) + 1;\n}","var ya=Object.defineProperty,ha=Object.defineProperties;var ga=Object.getOwnPropertyDescriptors;var kn=Object.getOwnPropertySymbols;var wa=Object.prototype.hasOwnProperty,ka=Object.prototype.propertyIsEnumerable;var bn=(e,a,n)=>a in e?ya(e,a,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[a]=n,J=(e,a)=>{for(var n in a||(a={}))wa.call(a,n)&&bn(e,n,a[n]);if(kn)for(var n of kn(a))ka.call(a,n)&&bn(e,n,a[n]);return e},De=(e,a)=>ha(e,ga(a));import{openBlock as g,createElementBlock as S,createElementVNode as U,unref as s,reactive as Rt,defineComponent as Ve,ref as R,inject as pe,useSlots as Ot,computed as O,renderSlot as K,createCommentVNode as D,normalizeClass as ce,withKeys as ue,createBlock as le,withModifiers as Ue,onMounted as Be,normalizeStyle as bt,toDisplayString as ge,Fragment as oe,renderList as ye,createTextVNode as He,createVNode as je,Transition as it,withCtx as te,nextTick as $t,onBeforeUpdate as ba,onUnmounted as Xt,createSlots as Me,withDirectives as $a,mergeProps as Se,normalizeProps as Ge,guardReactiveProps as at,vShow as Da,isRef as lt,resolveDynamicComponent as Vt,watch as Dt,getCurrentScope as Ma,onScopeDispose as Sa,toRef as qt,provide as dt,Teleport as Aa}from\"vue\";import{getMonth as ve,getYear as me,getHours as Ne,getMinutes as Ie,getSeconds as ze,parseISO as Pa,isEqual as Ca,setHours as $n,setMinutes as Dn,setSeconds as Mn,setMilliseconds as Jt,setMonth as Bt,setYear as ct,isValid as Nt,format as Sn,set as Re,isDate as Ta,isAfter as An,isBefore as Pn,parse as Zt,startOfWeek as Cn,endOfWeek as _a,getDay as Ra,addMonths as mt,add as Tn,sub as Oa,addDays as Mt,subMonths as It,addYears as Va,subYears as Ba,eachDayOfInterval as Na,getISOWeek as Ia,differenceInCalendarDays as Ya}from\"date-fns\";var rt=(e,a)=>{const n=e.__vccOpts||e;for(const[t,i]of a)n[t]=i;return n};const Fa={},Ea={version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",width:\"32\",height:\"32\",viewBox:\"0 0 32 32\",class:\"dp__icon\"},La=U(\"path\",{d:\"M29.333 8c0-2.208-1.792-4-4-4h-18.667c-2.208 0-4 1.792-4 4v18.667c0 2.208 1.792 4 4 4h18.667c2.208 0 4-1.792 4-4v-18.667zM26.667 8v18.667c0 0.736-0.597 1.333-1.333 1.333 0 0-18.667 0-18.667 0-0.736 0-1.333-0.597-1.333-1.333 0 0 0-18.667 0-18.667 0-0.736 0.597-1.333 1.333-1.333 0 0 18.667 0 18.667 0 0.736 0 1.333 0.597 1.333 1.333z\"},null,-1),Ka=U(\"path\",{d:\"M20 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"},null,-1),Ha=U(\"path\",{d:\"M9.333 2.667v5.333c0 0.736 0.597 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-5.333c0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"},null,-1),Wa=U(\"path\",{d:\"M4 14.667h24c0.736 0 1.333-0.597 1.333-1.333s-0.597-1.333-1.333-1.333h-24c-0.736 0-1.333 0.597-1.333 1.333s0.597 1.333 1.333 1.333z\"},null,-1),Ua=[La,Ka,Ha,Wa];function ja(e,a){return g(),S(\"svg\",Ea,Ua)}var Yt=rt(Fa,[[\"render\",ja]]);const Ga={},za={version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",width:\"32\",height:\"32\",viewBox:\"0 0 32 32\",class:\"dp__icon\"},Xa=U(\"path\",{d:\"M23.057 7.057l-16 16c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l16-16c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0z\"},null,-1),qa=U(\"path\",{d:\"M7.057 8.943l16 16c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885l-16-16c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"},null,-1),Ja=[Xa,qa];function Za(e,a){return g(),S(\"svg\",za,Ja)}var Qa=rt(Ga,[[\"render\",Za]]);const xa={},el={version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",width:\"32\",height:\"32\",viewBox:\"0 0 32 32\",class:\"dp__icon\"},tl=U(\"path\",{d:\"M20.943 23.057l-7.057-7.057c0 0 7.057-7.057 7.057-7.057 0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-8 8c-0.521 0.521-0.521 1.365 0 1.885l8 8c0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"},null,-1),nl=[tl];function al(e,a){return g(),S(\"svg\",el,nl)}var _n=rt(xa,[[\"render\",al]]);const ll={},rl={version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",width:\"32\",height:\"32\",viewBox:\"0 0 32 32\",class:\"dp__icon\"},ol=U(\"path\",{d:\"M12.943 24.943l8-8c0.521-0.521 0.521-1.365 0-1.885l-8-8c-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885l7.057 7.057c0 0-7.057 7.057-7.057 7.057-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0z\"},null,-1),sl=[ol];function ul(e,a){return g(),S(\"svg\",rl,sl)}var Rn=rt(ll,[[\"render\",ul]]);const il={},dl={version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",width:\"32\",height:\"32\",viewBox:\"0 0 32 32\",class:\"dp__icon\"},cl=U(\"path\",{d:\"M16 1.333c-8.095 0-14.667 6.572-14.667 14.667s6.572 14.667 14.667 14.667c8.095 0 14.667-6.572 14.667-14.667s-6.572-14.667-14.667-14.667zM16 4c6.623 0 12 5.377 12 12s-5.377 12-12 12c-6.623 0-12-5.377-12-12s5.377-12 12-12z\"},null,-1),ml=U(\"path\",{d:\"M14.667 8v8c0 0.505 0.285 0.967 0.737 1.193l5.333 2.667c0.658 0.329 1.46 0.062 1.789-0.596s0.062-1.46-0.596-1.789l-4.596-2.298c0 0 0-7.176 0-7.176 0-0.736-0.597-1.333-1.333-1.333s-1.333 0.597-1.333 1.333z\"},null,-1),pl=[cl,ml];function vl(e,a){return g(),S(\"svg\",dl,pl)}var On=rt(il,[[\"render\",vl]]);const fl={},yl={version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",width:\"32\",height:\"32\",viewBox:\"0 0 32 32\",class:\"dp__icon\"},hl=U(\"path\",{d:\"M24.943 19.057l-8-8c-0.521-0.521-1.365-0.521-1.885 0l-8 8c-0.52 0.52-0.52 1.365 0 1.885s1.365 0.52 1.885 0l7.057-7.057c0 0 7.057 7.057 7.057 7.057 0.52 0.52 1.365 0.52 1.885 0s0.52-1.365 0-1.885z\"},null,-1),gl=[hl];function wl(e,a){return g(),S(\"svg\",yl,gl)}var Vn=rt(fl,[[\"render\",wl]]);const kl={},bl={version:\"1.1\",xmlns:\"http://www.w3.org/2000/svg\",width:\"32\",height:\"32\",viewBox:\"0 0 32 32\",class:\"dp__icon\"},$l=U(\"path\",{d:\"M7.057 12.943l8 8c0.521 0.521 1.365 0.521 1.885 0l8-8c0.52-0.52 0.52-1.365 0-1.885s-1.365-0.52-1.885 0l-7.057 7.057c0 0-7.057-7.057-7.057-7.057-0.52-0.52-1.365-0.52-1.885 0s-0.52 1.365 0 1.885z\"},null,-1),Dl=[$l];function Ml(e,a){return g(),S(\"svg\",bl,Dl)}var Bn=rt(kl,[[\"render\",Ml]]);const Qt=(e,a)=>{const n=Zt(e,a.slice(0,e.length),new Date);return Nt(n)&&Ta(n)?n:null},Le=e=>{let a=new Date(JSON.parse(JSON.stringify(e)));return a=$n(a,0),a=Dn(a,0),a=Mn(a,0),a=Jt(a,0),a},xt=e=>Array.isArray(e)?Nt(e[0])&&(e[1]?Nt(e[1]):!0):e?Nt(e):!1,Ae=(e,a,n,t)=>{let i=e?new Date(e):new Date;return(a||a===0)&&(i=$n(i,+a)),(n||n===0)&&(i=Dn(i,+n)),(t||t===0)&&(i=Mn(i,+t)),Jt(i,0)},Sl=e=>{const a=mt(e,1);return{month:ve(a),year:me(a)}},ot=(e,a,n)=>{let t=e?new Date(e):new Date;return(a||a===0)&&(t=Bt(t,a)),n&&(t=ct(t,n)),t},Nn=(e,a)=>e?`HH:mm${a?\":ss\":\"\"}`:`hh:mm${a?\":ss\":\"\"} aa`,In=(e,a,n,t,i,m,v,p)=>e||(t?\"MM/yyyy\":i?Nn(a,n):m?\"MM/dd/yyyy\":v?\"yyyy\":p?`MM/dd/yyyy, ${Nn(a,n)}`:\"MM/dd/yyyy\"),en=e=>{const a=e||new Date;return{hours:Ne(a),minutes:Ie(a),seconds:ze(a)}},Ft=e=>({month:ve(e),year:me(e)}),Yn=e=>Array.isArray(e)?[Ft(e[0]),e[1]?Ft(e[1]):null]:Ft(e),tn=e=>Array.isArray(e)?[en(e[0]),en(e[1])]:en(e),nn=(e,a,n)=>n?Sn(e,a,{locale:n}):Sn(e,a),pt=(e,a,n,t,i)=>Array.isArray(e)?`${nn(e[0],a,n)} ${i&&!e[1]?\"\":t||\"-\"} ${e[1]?nn(e[1],a,n):\"\"}`:nn(e,a,n),Te=(e,a)=>!e||!a?!1:An(Le(e),Le(a)),be=(e,a)=>!e||!a?!1:Pn(Le(e),Le(a)),ie=(e,a)=>!e||!a?!1:Ca(Le(e),Le(a)),Al=(e,a)=>Tn(Re(new Date,e),a),Pl=(e,a)=>Oa(Re(new Date,e),a),an=e=>Re(new Date,{hours:Ne(e),minutes:Ie(e),seconds:ze(e)}),Fn=e=>Re(new Date,{hours:+e.hours||0,minutes:+e.minutes||0,seconds:+e.seconds||0}),ln=(e,a,n)=>{let t=!0;if(!e)return!0;const i=Array.isArray(e)?[e[0]?an(e[0]):null,e[1]?an(e[1]):null]:an(e);if(a){const m=Fn(a);Array.isArray(i)?t=(i[0]?i[0].getTime()<=m.getTime():!0)&&(i[1]?i[1].getTime()<=m.getTime():!0):t=i.getTime()<=m.getTime()}if(n){const m=Fn(n);Array.isArray(i)?t=(i[0]?i[0].getTime()>=m.getTime():!0)&&(i[1]?i[1].getTime()>=m.getTime():!0)&&t:t=i.getTime()>=m.getTime()&&t}return t},Cl=(e,a,n)=>{let t=!0;return a&&n&&(t=Te(new Date(e),new Date(a))&&be(new Date(e),new Date(n))),a&&(t=Te(new Date(e),new Date(a))),n&&(t=be(new Date(e),new Date(n))),t},_e=e=>e instanceof Date?e:Pa(e),En=(e,a,n)=>e&&e[0]&&e[1]?Te(n,e[0])&&be(n,e[1]):e&&e[0]&&a?Te(n,e[0])&&be(n,a)||be(n,e[0])&&Te(n,a):!1,Et=(e,a)=>{const n=Cn(e,{weekStartsOn:a}),t=_a(e,{weekStartsOn:a});return[n,t]},Tl=(e,a,n,t,i,m,v,p)=>{const y=n?Te(_e(e),_e(n)):!1,_=a?be(_e(e),_e(a)):!1,E=typeof t==\"function\"?t(e):t.some(z=>ie(_e(z),_e(e))),w=(m.months.length?m.months.map(z=>+z):[]).includes(ve(e)),V=v.length?v.some(z=>+z===Ra(e)):!1,Y=i.length?!i.some(z=>ie(_e(z),_e(e))):!1,F=me(e),H=F<+p[0]||F>+p[1];return!(y||_||E||w||H||V||Y)},Ln=(e,a,n,t,i,m,v)=>({validate:p=>Tl(p,e,a,n,t,i,m,v)}),_l=(e,a,n)=>{const t=new Date(JSON.parse(JSON.stringify(e))),i=[];for(let m=0;m<7;m++){const v=Mt(t,m),p=ve(v)!==a;i.push({text:n&&p?\"\":v.getDate(),value:v,current:!p})}return i},Rl=(e,a,n,t)=>{const i=[],m=new Date(a,e),v=new Date(a,e+1,0),p=Cn(m,{weekStartsOn:n}),y=_=>{const E=_l(_,e,t);if(i.push({days:E}),!i[i.length-1].days.some(w=>ie(Le(w.value),Le(v)))){const w=Mt(_,7);y(w)}};return y(p),i},Ol=(e,a=3)=>{const n=[];for(let t=0;t{const n=[1,2,3,4,5,6,7].map(m=>new Intl.DateTimeFormat(e,{weekday:\"short\",timeZone:\"UTC\"}).format(new Date(`2017-01-0${m}T00:00:00+00:00`)).slice(0,2)),t=n.slice(0,a),i=n.slice(a+1,n.length);return[n[a]].concat(...i).concat(...t)},Bl=e=>{const a=[];for(let n=+e[0];n<=+e[1];n++)a.push({value:+n,text:`${n}`});return a},Nl=(e,a)=>{const n=new Intl.DateTimeFormat(e,{month:a,timeZone:\"UTC\"});return[1,2,3,4,5,6,7,8,9,10,11,12].map(t=>{const i=t<10?`0${t}`:t;return new Date(`2017-${i}-01T00:00:00+00:00`)}).map((t,i)=>({text:n.format(t),value:i}))},Il=e=>[12,1,2,3,4,5,6,7,8,9,10,11,12,1,2,3,4,5,6,7,8,9,10,11][e],Yl=()=>({enterSubmit:!0,tabSubmit:!0,openMenu:!0,rangeSeparator:\" - \"}),Fl=e=>Object.assign({months:[],years:[],times:{hours:[],minutes:[],seconds:[]}},e),El=e=>{function a(n){let t=\"\";const i=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\",m=i.length;for(let v=0;v{var n;const a=s(e);return(n=a==null?void 0:a.$el)!=null?n:a},Ll=e=>Object.assign({type:\"dot\"},e),Kn=e=>Object.assign({menuAppear:\"dp-menu-appear\",open:\"dp-slide-down\",close:\"dp-slide-up\",next:\"calendar-next\",previous:\"calendar-prev\",vNext:\"dp-slide-up\",vPrevious:\"dp-slide-down\"},e),Kl=e=>Object.assign({toggleOverlay:\"Toggle overlay\",menu:\"Datepicker menu\",input:\"Datepicker input\",calendarWrap:\"Calendar wrapper\",calendarDays:\"Calendar days\",openTimePicker:\"Open time picker\",closeTimePicker:\"Close time Picker\",incrementValue:a=>`Increment ${a}`,decrementValue:a=>`Decrement ${a}`,openTpOverlay:a=>`Open ${a} overlay`,amPmButton:\"Switch AM/PM mode\",openYearsOverlay:\"Open years overlay\",openMonthsOverlay:\"Open months overlay\",nextMonth:\"Next month\",prevMonth:\"Previous month\"},e),Hn=e=>Array.isArray(e)?!!e[0]&&!!e[1]:!1,Xe=Symbol(),Lt=Symbol(),rn=Symbol(),Wn=Symbol(),Un=Symbol(),qe=Symbol(),on={disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},autoApply:{type:Boolean,default:!1},inline:{type:Boolean,default:!1},textInput:{type:Boolean,default:!1}},sn={range:{type:Boolean,default:!1},uid:{type:String,default:null}},jn={enableSeconds:{type:Boolean,default:!1},is24:{type:Boolean,default:!0},noHoursOverlay:{type:Boolean,default:!1},noMinutesOverlay:{type:Boolean,default:!1},noSecondsOverlay:{type:Boolean,default:!1},hoursGridIncrement:{type:[String,Number],default:1},minutesGridIncrement:{type:[String,Number],default:5},secondsGridIncrement:{type:[String,Number],default:5},hoursIncrement:{type:[Number,String],default:1},minutesIncrement:{type:[Number,String],default:1},secondsIncrement:{type:[Number,String],default:1}},Gn=De(J({},jn),{fixedStart:{type:Boolean,default:!1},fixedEnd:{type:Boolean,default:!1},timePicker:{type:Boolean,default:!1}}),zn={name:{type:String,default:null},placeholder:{type:String,default:\"\"},hideInputIcon:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},state:{type:Boolean,default:null},required:{type:Boolean,default:!1},autocomplete:{type:String,default:\"off\"},inputClassName:{type:String,default:null},inlineWithInput:{type:Boolean,default:!1},textInputOptions:{type:Object,default:()=>null},openMenuOnFocus:{type:Boolean,default:!0}},Xn={minTime:{type:Object,default:null},maxTime:{type:Object,default:null}},un={minDate:{type:[Date,String],default:null},maxDate:{type:[Date,String],default:null}},qn=J({selectText:{type:String,default:\"Select\"},cancelText:{type:String,default:\"Cancel\"},previewFormat:{type:[String,Function],default:()=>\"\"},multiDates:{type:Boolean,default:!1}},Xn),dn={monthPicker:{type:Boolean,default:!1},customProps:{type:Object,default:null},yearPicker:{type:Boolean,default:!1},modelAuto:{type:Boolean,default:!1}},Jn={locale:{type:String,default:\"en-Us\"},weekNumName:{type:String,default:\"W\"},weekStart:{type:[Number,String],default:1},weekNumbers:{type:Boolean,default:!1},calendarClassName:{type:String,default:null},noSwipe:{type:Boolean,default:!1},monthChangeOnScroll:{type:[Boolean,String],default:!0},dayNames:{type:[Function,Array],default:null}},Zn=De(J(J(J(J(J(J({},Gn),qn),dn),un),Jn),sn),{vertical:{type:Boolean,default:!1},disableMonthYearSelect:{type:Boolean,default:!1},menuClassName:{type:String,default:null},yearRange:{type:Array,default:()=>[1900,2100]},multiCalendarsSolo:{type:Boolean,default:!1},calendarCellClassName:{type:String,default:null},enableTimePicker:{type:Boolean,default:!0},autoApply:{type:Boolean,default:!1},disabledDates:{type:[Array,Function],default:()=>[]},monthNameFormat:{type:String,default:\"short\"},startDate:{type:[Date,String],default:null},startTime:{type:[Object,Array],default:null},monthYearComponent:{type:Object,default:null},timePickerComponent:{type:Object,default:null},actionRowComponent:{type:Object,default:null},hideOffsetDates:{type:Boolean,default:!1},autoRange:{type:[Number,String],default:null},noToday:{type:Boolean,default:!1},disabledWeekDays:{type:Array,default:()=>[]},allowedDates:{type:Array,default:()=>[]},showNowButton:{type:Boolean,default:!1},nowButtonLabel:{type:String,default:\"Now\"},markers:{type:Array,default:()=>[]},modeHeight:{type:[Number,String],default:255},escClose:{type:Boolean,default:!0},spaceConfirm:{type:Boolean,default:!0},monthChangeOnArrows:{type:Boolean,default:!0},presetRanges:{type:Array,default:()=>[]},flow:{type:Array,default:()=>[]},preventMinMaxNavigation:{type:Boolean,default:!1},minRange:{type:[Number,String],default:null},maxRange:{type:[Number,String],default:null},multiDatesLimit:{type:[Number,String],default:null},reverseYears:{type:Boolean,default:!1},keepActionRow:{type:Boolean,default:!1},weekPicker:{type:Boolean,default:!1},filters:{type:Object,default:()=>({})},arrowNavigation:{type:Boolean,default:!1},multiStatic:{type:Boolean,default:!0},disableTimeRangeValidation:{type:Boolean,default:!1}}),Hl=De(J(J(J({},zn),on),Zn),{multiCalendars:{type:[Boolean,Number,String],default:null},modelValue:{type:[String,Date,Array,Object,Number],default:null},modelType:{type:String,default:null},position:{type:String,default:\"center\"},dark:{type:Boolean,default:!1},format:{type:[String,Function],default:()=>null},closeOnScroll:{type:Boolean,default:!1},autoPosition:{type:Boolean,default:!0},closeOnAutoApply:{type:Boolean,default:!0},teleport:{type:[String,Object],default:\"body\"},altPosition:{type:[Boolean,Function],default:!1},partialRange:{type:Boolean,default:!0},transitions:{type:[Boolean,Object],default:!0},formatLocale:{type:Object,default:null},utc:{type:Boolean,default:!1},ariaLabels:{type:Object,default:()=>({})}}),Qn={range:{type:Boolean,default:!1},multiCalendars:{type:Number,default:0},internalModelValue:{type:[Date,Array],default:null}},xn=De(J(J({},dn),Qn),{vertical:{type:Boolean,default:!1},month:{type:Number,default:0},year:{type:Number,default:0},instance:{type:Number,default:1}}),Kt=Rt({menuFocused:!1,shiftKeyInMenu:!1}),cn=()=>({setMenuFocused:e=>{Kt.menuFocused=e},getStore:()=>Kt,setShiftKey:e=>{Kt.shiftKeyInMenu!==e&&(Kt.shiftKeyInMenu=e)}}),Wl=[\"aria-label\",\"aria-disabled\",\"aria-readonly\"],Ul={key:1,class:\"dp__input_wrap\"},jl=[\"id\",\"name\",\"placeholder\",\"disabled\",\"readonly\",\"required\",\"value\",\"autocomplete\",\"onKeydown\"],Gl={key:4,class:\"dp__clear_icon\"},zl=Ve({__name:\"DatepickerInput\",props:De(J(J(J({},zn),on),sn),{inputValue:{type:String,default:\"\"},inline:{type:Boolean,default:!1},isMenuOpen:{type:Boolean,default:!1},pattern:{type:String,default:\"\"}}),emits:[\"clear\",\"open\",\"update:inputValue\",\"setInputDate\",\"close\",\"selectDate\",\"setEmptyDate\",\"toggle\",\"focus-prev\"],setup(e,{expose:a,emit:n}){const t=e,i=R(),m=R(null),v=R(!1),p=pe(Xe),y=Ot(),{getStore:_}=cn(),E=O(()=>({dp__pointer:!t.disabled&&!t.readonly&&!t.textInput,dp__disabled:t.disabled,dp__input_readonly:!t.textInput,dp__input:!0,dp__input_icon_pad:!t.hideInputIcon,dp__input_valid:t.state,dp__input_invalid:t.state===!1,dp__input_focus:v.value||t.isMenuOpen,dp__input_reg:!t.textInput,[t.inputClassName]:!!t.inputClassName})),w=h=>{const{value:N}=h.target,{format:j,rangeSeparator:ne}=t.textInputOptions;if(N!==\"\"){if(t.range){const[Z,X]=N.split(`${ne}`);if(Z&&X){const Q=Qt(Z.trim(),j||t.pattern),M=Qt(X.trim(),j||t.pattern);i.value=Q&&M?[Q,M]:null}}else i.value=Qt(N,j||t.pattern);n(\"setInputDate\",i.value)}else n(\"setInputDate\",null),t.autoApply&&(n(\"setEmptyDate\"),i.value=null);n(\"update:inputValue\",N)},V=()=>{var h,N;((h=t.textInputOptions)==null?void 0:h.enterSubmit)&&xt(i.value)&&t.inputValue!==\"\"?(n(\"setInputDate\",i.value,!0),i.value=null):((N=t.textInputOptions)==null?void 0:N.enterSubmit)&&t.inputValue===\"\"&&(i.value=null,n(\"clear\"))},Y=()=>{var h,N;((h=t.textInputOptions)==null?void 0:h.tabSubmit)&&xt(i.value)&&t.inputValue!==\"\"?(n(\"setInputDate\",i.value,!0),i.value=null):((N=t.textInputOptions)==null?void 0:N.tabSubmit)&&t.inputValue===\"\"&&(i.value=null,n(\"clear\")),n(\"close\")},F=()=>{var h;if(_().shiftKeyInMenu&&t.openMenuOnFocus)return n(\"close\"),n(\"focus-prev\");!t.inline&&(t.textInput?t.textInput&&((h=t.textInputOptions)==null?void 0:h.openMenu):!0)&&(v.value=!0,t.openMenuOnFocus&&!t.isMenuOpen?n(\"open\"):t.isMenuOpen&&!_().menuFocused&&(P(),n(\"close\")))},H=()=>{var h;!t.openMenuOnFocus||y[\"dp-input\"]||y.trigger?t.textInput&&((h=t.textInputOptions)==null?void 0:h.openMenu)&&!t.isMenuOpen?n(\"open\"):t.textInput||n(\"toggle\"):t.textInput||v.value&&n(\"toggle\")},z=()=>{v.value=!1,t.autoApply&&t.textInput&&i.value&&(n(\"setInputDate\",i.value),n(\"selectDate\"),i.value=null)},r=()=>{n(\"clear\")},P=()=>{v.value=!1;const h=he(m);h&&h.blur()},C=h=>{t.textInput||h.preventDefault()};return a({unFocus:P}),(h,N)=>(g(),S(\"div\",{onClick:H,\"aria-label\":s(p).input,role:\"textbox\",\"aria-multiline\":\"false\",\"aria-disabled\":h.disabled,\"aria-readonly\":h.readonly},[h.$slots.trigger&&!h.$slots[\"dp-input\"]&&!e.inline?K(h.$slots,\"trigger\",{key:0}):D(\"\",!0),!h.$slots.trigger&&(!e.inline||h.inlineWithInput)?(g(),S(\"div\",Ul,[h.$slots[\"dp-input\"]&&!h.$slots.trigger&&!e.inline?K(h.$slots,\"dp-input\",{key:0,value:e.inputValue,onInput:w,onEnter:V,onTab:Y,onClear:r}):D(\"\",!0),h.$slots[\"dp-input\"]?D(\"\",!0):(g(),S(\"input\",{key:1,ref_key:\"inputRef\",ref:m,id:h.uid?`dp-input-${h.uid}`:void 0,name:h.name,class:ce(s(E)),placeholder:h.placeholder,disabled:h.disabled,readonly:h.readonly,required:h.required,value:e.inputValue,autocomplete:h.autocomplete,onInput:w,onKeydown:[ue(V,[\"enter\"]),ue(Y,[\"tab\"])],onBlur:z,onFocus:F,onKeypress:C},null,42,jl)),h.$slots[\"input-icon\"]&&!h.hideInputIcon?(g(),S(\"span\",{key:2,class:\"dp__input_icon\",onClick:N[0]||(N[0]=j=>n(\"toggle\"))},[K(h.$slots,\"input-icon\")])):D(\"\",!0),!h.$slots[\"input-icon\"]&&!h.hideInputIcon&&!h.$slots[\"dp-input\"]?(g(),le(s(Yt),{key:3,class:\"dp__input_icon dp__input_icons\",onClick:N[1]||(N[1]=j=>n(\"toggle\"))})):D(\"\",!0),h.$slots[\"clear-icon\"]&&e.inputValue&&h.clearable&&!h.disabled&&!h.readonly?(g(),S(\"span\",Gl,[K(h.$slots,\"clear-icon\",{clear:r})])):D(\"\",!0),h.clearable&&!h.$slots[\"clear-icon\"]&&e.inputValue&&!h.disabled&&!h.readonly?(g(),le(s(Qa),{key:5,class:\"dp__clear_icon dp__input_icons\",onClick:Ue(r,[\"stop\",\"prevent\"])},null,8,[\"onClick\"])):D(\"\",!0)])):D(\"\",!0)],8,Wl))}}),de=Rt({monthYear:[],calendar:[],time:[],actionRow:[],selectionGrid:[],timePicker:{\"0\":[],\"1\":[]},monthPicker:[]}),mn=R(null),Ht=R(!1),pn=R(!1),vn=R(!1),fn=R(!1),$e=R(0),we=R(0),Je=()=>{const e=O(()=>Ht.value?[...de.selectionGrid,de.actionRow].filter(w=>w.length):pn.value?[...de.timePicker[0],...de.timePicker[1],fn.value?[]:[mn.value],de.actionRow].filter(w=>w.length):vn.value?[...de.monthPicker,de.actionRow]:[de.monthYear,...de.calendar,de.time,de.actionRow].filter(w=>w.length)),a=w=>{$e.value=w?$e.value+1:$e.value-1;let V=null;e.value[we.value]&&(V=e.value[we.value][$e.value]),V||($e.value=w?$e.value-1:$e.value+1)},n=w=>{we.value===0&&!w||we.value===e.value.length&&w||(we.value=w?we.value+1:we.value-1,e.value[we.value]?e.value[we.value]&&!e.value[we.value][$e.value]&&$e.value!==0&&($e.value=e.value[we.value].length-1):we.value=w?we.value-1:we.value+1)},t=w=>{let V=null;e.value[we.value]&&(V=e.value[we.value][$e.value]),V?V.focus({preventScroll:!Ht.value}):$e.value=w?$e.value-1:$e.value+1},i=()=>{a(!0),t(!0)},m=()=>{a(!1),t(!1)},v=()=>{n(!1),t(!0)},p=()=>{n(!0),t(!0)},y=(w,V)=>{de[V]=w},_=(w,V)=>{de[V]=w},E=()=>{$e.value=0,we.value=0};return{buildMatrix:y,buildMultiLevelMatrix:_,setTimePickerBackRef:w=>{mn.value=w},setSelectionGrid:w=>{Ht.value=w,E(),w||(de.selectionGrid=[])},setTimePicker:(w,V=!1)=>{pn.value=w,fn.value=V,E(),w||(de.timePicker[0]=[],de.timePicker[1]=[])},setTimePickerElements:(w,V=0)=>{de.timePicker[V]=w},arrowRight:i,arrowLeft:m,arrowUp:v,arrowDown:p,clearArrowNav:()=>{de.monthYear=[],de.calendar=[],de.time=[],de.actionRow=[],de.selectionGrid=[],de.timePicker[0]=[],de.timePicker[1]=[],Ht.value=!1,pn.value=!1,fn.value=!1,vn.value=!1,E(),mn.value=null},setMonthPicker:w=>{vn.value=w,E()}}},Xl=[\"aria-label\"],ql={class:\"dp__calendar_header\",role:\"row\"},Jl={key:0,class:\"dp__calendar_header_item\",role:\"gridcell\"},Zl=U(\"div\",{class:\"dp__calendar_header_separator\"},null,-1),Ql=[\"aria-label\"],xl={key:0,role:\"gridcell\",class:\"dp__calendar_item dp__week_num\"},er={class:\"dp__cell_inner\"},tr=[\"aria-selected\",\"aria-disabled\",\"onClick\",\"onKeydown\",\"onMouseover\"],nr=U(\"div\",{class:\"dp__arrow_bottom_tp\"},null,-1),ar=Ve({__name:\"Calendar\",props:De(J(J({},xn),Jn),{mappedDates:{type:Array,default:()=>[]},getWeekNum:{type:Function,default:()=>\"\"},modeHeight:{type:[Number,String],default:255},specificMode:{type:Boolean,default:!1}}),emits:[\"selectDate\",\"setHoverDate\",\"handleScroll\",\"mount\",\"handleSwipe\"],setup(e,{expose:a,emit:n}){const t=e,i=R(null),m=R({bottom:\"\",left:\"\",transform:\"\"}),v=R([]),p=R(null),y=R(!0),_=pe(Lt),E=pe(Xe),w=pe(qe),V=R(\"\"),Y=R({startX:0,endX:0,startY:0,endY:0}),F=O(()=>t.dayNames?Array.isArray(t.dayNames)?t.dayNames:t.dayNames(t.locale,+t.weekStart):Vl(t.locale,+t.weekStart)),{buildMultiLevelMatrix:H}=Je();Be(()=>{n(\"mount\",{cmp:\"calendar\",refs:v}),t.noSwipe||p.value&&(p.value.addEventListener(\"touchstart\",Z,{passive:!1}),p.value.addEventListener(\"touchend\",X,{passive:!1}),p.value.addEventListener(\"touchmove\",Q,{passive:!1})),t.monthChangeOnScroll&&p.value&&p.value.addEventListener(\"wheel\",b,{passive:!1})});const z=(u,$)=>{if(_!=null&&_.value){const L=Le(ot(new Date,t.month,t.year));V.value=Te(Le(ot(new Date,u,$)),L)?_.value[t.vertical?\"vNext\":\"next\"]:_.value[t.vertical?\"vPrevious\":\"previous\"],y.value=!1,$t(()=>{y.value=!0})}},r=O(()=>({dp__calendar_wrap:!0,[t.calendarClassName]:!!t.calendarClassName})),P=O(()=>u=>{const $=Ll(u);return{dp__marker_dot:$.type===\"dot\",dp__marker_line:$.type===\"line\"}}),C=O(()=>u=>ie(u,i.value)),h=O(()=>({dp__calendar:!0,dp__calendar_next:t.multiCalendars>0&&t.instance!==0})),N=O(()=>t.specificMode?{height:`${t.modeHeight}px`}:null),j=(u,$,L)=>{var ae,I;if(n(\"setHoverDate\",u),(I=(ae=u.marker)==null?void 0:ae.tooltip)!=null&&I.length){const se=he(v.value[$][L]);if(se){const{width:f,height:T}=se.getBoundingClientRect();m.value={bottom:`${T}px`,left:`${f/2}px`,transform:\"translateX(-50%)\"},i.value=u.value}}},ne=()=>{i.value=null},Z=u=>{Y.value.startX=u.changedTouches[0].screenX,Y.value.startY=u.changedTouches[0].screenY},X=u=>{Y.value.endX=u.changedTouches[0].screenX,Y.value.endY=u.changedTouches[0].screenY,M()},Q=u=>{u.preventDefault()},M=()=>{const u=t.vertical?\"Y\":\"X\";Math.abs(Y.value[`start${u}`]-Y.value[`end${u}`])>10&&n(\"handleSwipe\",Y.value[`start${u}`]>Y.value[`end${u}`]?\"right\":\"left\")},o=(u,$,L)=>{u&&(Array.isArray(v.value[$])?v.value[$][L]=u:v.value[$]=[u]),w!=null&&w.value&&H(v.value,\"calendar\")},b=u=>{t.monthChangeOnScroll&&(u.preventDefault(),n(\"handleScroll\",u))};return a({triggerTransition:z}),(u,$)=>(g(),S(\"div\",{class:ce(s(h))},[U(\"div\",{style:bt(s(N))},[e.specificMode?D(\"\",!0):(g(),S(\"div\",{key:0,ref_key:\"calendarWrapRef\",ref:p,class:ce(s(r)),role:\"grid\",\"aria-label\":s(E).calendarWrap},[U(\"div\",ql,[u.weekNumbers?(g(),S(\"div\",Jl,ge(u.weekNumName),1)):D(\"\",!0),(g(!0),S(oe,null,ye(s(F),(L,ae)=>(g(),S(\"div\",{class:\"dp__calendar_header_item\",role:\"gridcell\",key:ae},[u.$slots[\"calendar-header\"]?K(u.$slots,\"calendar-header\",{key:0,day:L,index:ae}):D(\"\",!0),u.$slots[\"calendar-header\"]?D(\"\",!0):(g(),S(oe,{key:1},[He(ge(L),1)],64))]))),128))]),Zl,je(it,{name:V.value,css:!!s(_)},{default:te(()=>[y.value?(g(),S(\"div\",{key:0,class:\"dp__calendar\",role:\"grid\",\"aria-label\":s(E).calendarDays},[(g(!0),S(oe,null,ye(e.mappedDates,(L,ae)=>(g(),S(\"div\",{class:\"dp__calendar_row\",role:\"row\",key:ae},[u.weekNumbers?(g(),S(\"div\",xl,[U(\"div\",er,ge(e.getWeekNum(L.days)),1)])):D(\"\",!0),(g(!0),S(oe,null,ye(L.days,(I,se)=>(g(),S(\"div\",{role:\"gridcell\",class:\"dp__calendar_item\",ref_for:!0,ref:f=>o(f,ae,se),key:se+ae,\"aria-selected\":I.classData.dp__active_date||I.classData.dp__range_start||I.classData.dp__range_start,\"aria-disabled\":I.classData.dp__cell_disabled,tabindex:\"0\",onClick:Ue(f=>u.$emit(\"selectDate\",I),[\"stop\",\"prevent\"]),onKeydown:ue(f=>u.$emit(\"selectDate\",I),[\"enter\"]),onMouseover:f=>j(I,ae,se),onMouseleave:ne},[U(\"div\",{class:ce([\"dp__cell_inner\",I.classData])},[u.$slots.day?K(u.$slots,\"day\",{key:0,day:+I.text,date:I.value}):D(\"\",!0),u.$slots.day?D(\"\",!0):(g(),S(oe,{key:1},[He(ge(I.text),1)],64)),I.marker?(g(),S(\"div\",{key:2,class:ce(s(P)(I.marker)),style:bt(I.marker.color?{backgroundColor:I.marker.color}:{})},null,6)):D(\"\",!0),s(C)(I.value)?(g(),S(\"div\",{key:3,class:\"dp__marker_tooltip\",style:bt(m.value)},[U(\"div\",{class:\"dp__tooltip_content\",onClick:$[0]||($[0]=Ue(()=>{},[\"stop\"]))},[(g(!0),S(oe,null,ye(I.marker.tooltip,(f,T)=>(g(),S(\"div\",{key:T,class:\"dp__tooltip_text\"},[u.$slots[\"marker-tooltip\"]?K(u.$slots,\"marker-tooltip\",{key:0,tooltop:f,day:I.value}):D(\"\",!0),u.$slots[\"marker-tooltip\"]?D(\"\",!0):(g(),S(oe,{key:1},[U(\"div\",{class:\"dp__tooltip_mark\",style:bt(f.color?{backgroundColor:f.color}:{})},null,4),U(\"div\",null,ge(f.text),1)],64))]))),128)),nr])],4)):D(\"\",!0)],2)],40,tr))),128))]))),128))],8,Ql)):D(\"\",!0)]),_:3},8,[\"name\",\"css\"])],10,Xl))],4)],2))}}),lr=e=>typeof e==\"object\",ea=(e,a)=>a,rr=e=>Array.isArray(e)&&e.length===2,or=e=>Array.isArray(e),sr=e=>typeof e==\"object\",St=e=>Array.isArray(e),Ye=e=>Array.isArray(e),Wt=e=>Array.isArray(e)&&e.length===2,ur=(e,a)=>a?Array.isArray(e):Wt(e),ir=e=>Array.isArray(e),dr=e=>typeof e==\"string\"||typeof e==\"object\"||typeof e==\"number\",ta=e=>typeof e==\"string\",cr={class:\"dp__selection_preview\"},mr={class:\"dp__action_buttons\"},pr=[\"onKeydown\"],vr=Ve({__name:\"ActionRow\",props:De(J(J(J(J(J({},qn),un),Xn),dn),Qn),{inline:{type:Boolean,default:!1},timePicker:{type:Boolean,default:!1},calendarWidth:{type:Number,default:0},menuMount:{type:Boolean,default:!1},enableTimePicker:{type:Boolean,default:!0}}),emits:[\"closePicker\",\"selectDate\"],setup(e,{emit:a}){const n=e,{buildMatrix:t}=Je(),i=pe(Un),m=pe(qe),v=R(null),p=R(null);Be(()=>{m!=null&&m.value&&t([he(v),he(p)],\"actionRow\")});const y=O(()=>({dp__action:!0,dp__select:!0,dp__action_disabled:!_.value||!E.value})),_=O(()=>n.enableTimePicker?ln(n.internalModelValue,n.maxTime,n.minTime):!0),E=O(()=>n.monthPicker?Cl(n.internalModelValue,n.minDate,n.maxDate):!0),w=F=>pt(F,n.previewFormat,i==null?void 0:i.value),V=O(()=>!n.internalModelValue||!n.menuMount?\"\":typeof n.previewFormat==\"string\"?St(n.internalModelValue)?n.internalModelValue.length===2&&n.internalModelValue[1]?n.multiCalendars>0?`${w(n.internalModelValue[0])} - ${w(n.internalModelValue[1])}`:[w(n.internalModelValue[0]),w(n.internalModelValue[1])]:n.multiDates?n.internalModelValue.map(F=>`${w(F)}`):n.modelAuto?`${w(n.internalModelValue[0])}`:`${w(n.internalModelValue[0])} -`:pt(n.internalModelValue,n.previewFormat,i==null?void 0:i.value):n.timePicker?n.previewFormat(tn(n.internalModelValue)):n.monthPicker?n.previewFormat(Ft(n.internalModelValue)):n.previewFormat(n.internalModelValue)),Y=()=>{_.value&&E.value&&a(\"selectDate\")};return(F,H)=>(g(),S(\"div\",{class:\"dp__action_row\",style:bt(e.calendarWidth?{width:`${e.calendarWidth}px`}:{})},[U(\"div\",cr,[F.$slots[\"action-preview\"]?K(F.$slots,\"action-preview\",{key:0,value:F.internalModelValue}):D(\"\",!0),F.$slots[\"action-preview\"]?D(\"\",!0):(g(),S(oe,{key:1},[Array.isArray(s(V))?D(\"\",!0):(g(),S(oe,{key:0},[He(ge(s(V)),1)],64)),Array.isArray(s(V))?(g(!0),S(oe,{key:1},ye(s(V),(z,r)=>(g(),S(\"div\",{key:r},ge(z),1))),128)):D(\"\",!0)],64))]),U(\"div\",mr,[F.$slots[\"action-select\"]?K(F.$slots,\"action-select\",{key:0,value:F.internalModelValue}):D(\"\",!0),F.$slots[\"action-select\"]?D(\"\",!0):(g(),S(oe,{key:1},[e.inline?D(\"\",!0):(g(),S(\"span\",{key:0,class:\"dp__action dp__cancel\",ref_key:\"cancelButtonRef\",ref:v,tabindex:\"0\",onClick:H[0]||(H[0]=z=>F.$emit(\"closePicker\")),onKeydown:H[1]||(H[1]=ue(z=>F.$emit(\"closePicker\"),[\"enter\"]))},ge(F.cancelText),545)),U(\"span\",{class:ce(s(y)),tabindex:\"0\",onKeydown:ue(Y,[\"enter\"]),onClick:Y,ref_key:\"selectButtonRef\",ref:p},ge(F.selectText),43,pr)],64))])],4))}}),fr={class:\"dp__selection_grid_header\"},yr=[\"aria-selected\",\"aria-disabled\",\"onClick\",\"onKeydown\",\"onMouseover\"],hr=[\"aria-label\",\"onKeydown\"],At=Ve({__name:\"SelectionGrid\",props:{items:{type:Array,default:()=>[]},modelValue:{type:[String,Number],default:null},multiModelValue:{type:Array,default:()=>[]},disabledValues:{type:Array,default:()=>[]},minValue:{type:[Number,String],default:null},maxValue:{type:[Number,String],default:null},year:{type:Number,default:0},skipActive:{type:Boolean,default:!1},headerRefs:{type:Array,default:()=>[]},skipButtonRef:{type:Boolean,default:!1}},emits:[\"update:modelValue\",\"selected\",\"toggle\",\"reset-flow\"],setup(e,{expose:a,emit:n}){const t=e,i=R(!1),m=R(null),v=R(null),p=R([]),y=pe(rn,!1),_=pe(Wn,R(!1)),E=pe(Xe),w=pe(qe),V=R(),Y=R(),{setSelectionGrid:F,buildMultiLevelMatrix:H,setMonthPicker:z}=Je();ba(()=>{m.value=null}),Be(()=>{$t().then(()=>X()),P(),r(!0)}),Xt(()=>r(!1));const r=u=>{var $;w!=null&&w.value&&(($=t.headerRefs)!=null&&$.length?z(u):F(u))},P=()=>{const u=he(v);u&&(_.value||u.focus({preventScroll:!0}),i.value=u.clientHeight({dp__overlay:!0})),h=O(()=>({dp__overlay_col:!0})),N=O(()=>t.items.map(u=>u.filter($=>$).map($=>{var I,se,f;const L=t.disabledValues.some(T=>T===$.value)||Z($.value),ae=(I=t.multiModelValue)!=null&&I.length?(se=t.multiModelValue)==null?void 0:se.some(T=>ie(T,ct(Bt(new Date,$.value),t.year))):t.skipActive?!1:$.value===t.modelValue;return De(J({},$),{className:{dp__overlay_cell_active:ae,dp__overlay_cell:!ae,dp__overlay_cell_disabled:L,dp__overlay_cell_active_disabled:L&&ae,dp__overlay_cell_pad:!0,dp__cell_in_between:(f=t.multiModelValue)!=null&&f.length?M($.value):!1}})}))),j=O(()=>({dp__button:!0,dp__overlay_action:!0,dp__over_action_scroll:i.value,dp__button_bottom:y})),ne=O(()=>{var u,$;return{dp__overlay_container:!0,dp__container_flex:((u=t.items)==null?void 0:u.length)<=6,dp__container_block:(($=t.items)==null?void 0:$.length)>6}}),Z=u=>{const $=t.maxValue||t.maxValue===0,L=t.minValue||t.minValue===0;return!$&&!L?!1:$&&L?+u>+t.maxValue||+u<+t.minValue:$?+u>+t.maxValue:L?+u<+t.minValue:!1},X=()=>{const u=he(m);if(u){const $=he(v);$&&($.scrollTop=u.offsetTop-$.offsetTop-($.getBoundingClientRect().height/2-u.getBoundingClientRect().height))}},Q=u=>{!t.disabledValues.some($=>$===u)&&!Z(u)&&(n(\"update:modelValue\",u),n(\"selected\"))},M=u=>En(t.multiModelValue,ct(Bt(new Date,V.value||0),t.year),ct(Bt(new Date,u),t.year)),o=()=>{n(\"toggle\"),n(\"reset-flow\")},b=(u,$,L,ae)=>{var I,se;if(u&&($.value===+t.modelValue&&!t.disabledValues.includes($.value)&&(m.value=u),w!=null&&w.value)){Array.isArray(p.value[L])?p.value[L][ae]=u:p.value[L]=[u];const f=(I=t.headerRefs)!=null&&I.length?[t.headerRefs].concat(p.value):p.value.concat([t.skipButtonRef?[]:[Y.value]]);H(f,(se=t.headerRefs)!=null&&se.length?\"monthPicker\":\"selectionGrid\")}};return a({focusGrid:P}),(u,$)=>(g(),S(\"div\",{ref_key:\"gridWrapRef\",ref:v,class:ce(s(C)),role:\"dialog\",tabindex:\"0\"},[U(\"div\",{class:ce(s(ne)),role:\"grid\"},[U(\"div\",fr,[K(u.$slots,\"header\")]),(g(!0),S(oe,null,ye(s(N),(L,ae)=>(g(),S(\"div\",{class:\"dp__overlay_row\",key:s(El)(ae),role:\"row\"},[(g(!0),S(oe,null,ye(L,(I,se)=>(g(),S(\"div\",{role:\"gridcell\",class:ce(s(h)),key:I.value,\"aria-selected\":I.value===e.modelValue&&!e.disabledValues.includes(I.value),\"aria-disabled\":I.className.dp__overlay_cell_disabled,ref_for:!0,ref:f=>b(f,I,ae,se),tabindex:\"0\",onClick:f=>Q(I.value),onKeydown:ue(f=>Q(I.value),[\"enter\"]),onMouseover:f=>V.value=I.value},[U(\"div\",{class:ce(I.className)},[u.$slots.item?K(u.$slots,\"item\",{key:0,item:I}):D(\"\",!0),u.$slots.item?D(\"\",!0):(g(),S(oe,{key:1},[He(ge(I.text),1)],64))],2)],42,yr))),128))]))),128)),u.$slots[\"button-icon\"]?(g(),S(\"div\",{key:0,role:\"button\",\"aria-label\":s(E).toggleOverlay,class:ce(s(j)),tabindex:\"0\",ref_key:\"toggleButton\",ref:Y,onClick:o,onKeydown:ue(o,[\"enter\"])},[K(u.$slots,\"button-icon\")],42,hr)):D(\"\",!0)],2)],2))}}),Ut=()=>{const e=pe(Lt);return{transitionName:O(()=>a=>e!=null&&e.value?a?e.value.open:e.value.close:\"\"),showTransition:!!(e!=null&&e.value)}},gr={key:0,class:\"dp__time_input\"},wr=He(\" : \"),kr=[\"aria-label\",\"onKeydown\",\"onClick\"],br=[\"aria-label\",\"onKeydown\",\"onClick\"],$r=[\"aria-label\",\"onKeydown\",\"onClick\"],Dr={key:0},Mr=[\"aria-label\",\"onKeydown\"],Sr=Ve({__name:\"TimeInput\",props:De(J({},jn),{hours:{type:Number,default:0},minutes:{type:Number,default:0},seconds:{type:Number,default:0},filters:{type:Object,default:()=>({})},disabled:{type:Boolean,default:!1},closeTimePickerBtn:{type:Object,default:null},order:{type:Number,default:0}}),emits:[\"setHours\",\"setMinutes\",\"update:hours\",\"update:minutes\",\"update:seconds\",\"reset-flow\",\"mounted\",\"overlay-closed\"],setup(e,{expose:a,emit:n}){const t=e,i=Rt({hours:!1,minutes:!1,seconds:!1}),m=R(\"AM\"),v=R(null),p=pe(Xe),y=pe(qe),_=R([]),{transitionName:E,showTransition:w}=Ut(),{setTimePickerElements:V,setTimePickerBackRef:Y}=Je();Be(()=>{n(\"mounted\")});const F=O(()=>({dp__time_col:!0,dp__time_col_reg:!t.enableSeconds&&t.is24,dp__time_col_reg_with_button:!t.enableSeconds&&!t.is24,dp__time_col_sec:t.enableSeconds&&t.is24,dp__time_col_sec_with_button:t.enableSeconds&&!t.is24})),H=O(()=>{const M=[{type:\"hours\"},\"separator\",{type:\"minutes\"}];return t.enableSeconds?M.concat([\"separator\",{type:\"seconds\"}]):M}),z=O(()=>H.value.filter(M=>typeof M!=\"string\")),r=O(()=>M=>{if(M===\"hours\"){const o=j(t.hours);return{text:o<10?`0${o}`:`${o}`,value:o}}return{text:t[M]<10?`0${t[M]}`:`${t[M]}`,value:t[M]}}),P=M=>{const o=M===\"hours\"?t.is24?24:12:60,b=+t[`${M}GridIncrement`],u=[];for(let $=0;$t[`no${M[0].toUpperCase()+M.slice(1)}Overlay`],h=M=>{C(M)||(i[M]=!i[M],i[M]||n(\"overlay-closed\"))},N=(M,o=!0)=>{const b=M===\"hours\"?Ne:M===\"minutes\"?Ie:ze,u=o?Al:Pl;n(`update:${M}`,b(u({[M]:+t[M]},{[M]:+t[`${M}Increment`]})))},j=M=>t.is24?M:(M>=12?m.value=\"PM\":m.value=\"AM\",Il(M)),ne=()=>{m.value===\"PM\"?(m.value=\"AM\",n(\"update:hours\",t.hours-12)):(m.value=\"PM\",n(\"update:hours\",t.hours+12))},Z=M=>{i[M]=!0},X=(M,o,b)=>{if(M&&(y==null?void 0:y.value)){Array.isArray(_.value[o])?_.value[o][b]=M:_.value[o]=[M];const u=_.value.reduce(($,L)=>L.map((ae,I)=>[...$[I]||[],L[I]]),[]);Y(t.closeTimePickerBtn),v.value&&(u[1]=u[1].concat(v.value)),V(u,t.order)}},Q=(M,o)=>M===\"hours\"&&!t.is24?n(`update:${M}`,m.value===\"PM\"?o+12:o):n(`update:${M}`,o);return a({openChildCmp:Z}),(M,o)=>e.disabled?D(\"\",!0):(g(),S(\"div\",gr,[(g(!0),S(oe,null,ye(s(H),(b,u)=>(g(),S(\"div\",{key:u,class:ce(s(F))},[b===\"separator\"?(g(),S(oe,{key:0},[wr],64)):(g(),S(oe,{key:1},[U(\"div\",{class:\"dp__inc_dec_button\",role:\"button\",\"aria-label\":s(p).incrementValue(b.type),tabindex:\"0\",onKeydown:ue($=>N(b.type),[\"enter\"]),onClick:$=>N(b.type),ref_for:!0,ref:$=>X($,u,0)},[M.$slots[\"arrow-up\"]?K(M.$slots,\"arrow-up\",{key:0}):D(\"\",!0),M.$slots[\"arrow-up\"]?D(\"\",!0):(g(),le(s(Vn),{key:1}))],40,kr),U(\"div\",{role:\"button\",\"aria-label\":s(p).openTpOverlay(b.type),class:ce(C(b.type)?\"\":\"dp__time_display\"),tabindex:\"0\",onKeydown:ue($=>h(b.type),[\"enter\"]),onClick:$=>h(b.type),ref_for:!0,ref:$=>X($,u,1)},[M.$slots[b.type]?K(M.$slots,b.type,{key:0,text:s(r)(b.type).text,value:s(r)(b.type).value}):D(\"\",!0),M.$slots[b.type]?D(\"\",!0):(g(),S(oe,{key:1},[He(ge(s(r)(b.type).text),1)],64))],42,br),U(\"div\",{class:\"dp__inc_dec_button\",role:\"button\",\"aria-label\":s(p).decrementValue(b.type),tabindex:\"0\",onKeydown:ue($=>N(b.type,!1),[\"enter\"]),onClick:$=>N(b.type,!1),ref_for:!0,ref:$=>X($,u,2)},[M.$slots[\"arrow-down\"]?K(M.$slots,\"arrow-down\",{key:0}):D(\"\",!0),M.$slots[\"arrow-down\"]?D(\"\",!0):(g(),le(s(Bn),{key:1}))],40,$r)],64))],2))),128)),M.is24?D(\"\",!0):(g(),S(\"div\",Dr,[M.$slots[\"am-pm-button\"]?K(M.$slots,\"am-pm-button\",{key:0,toggle:ne,value:m.value}):D(\"\",!0),M.$slots[\"am-pm-button\"]?D(\"\",!0):(g(),S(\"button\",{key:1,ref_key:\"amPmButton\",ref:v,type:\"button\",class:\"dp__pm_am_button\",role:\"button\",\"aria-label\":s(p).amPmButton,tabindex:\"0\",onClick:ne,onKeydown:ue(Ue(ne,[\"prevent\"]),[\"enter\"])},ge(m.value),41,Mr))])),(g(!0),S(oe,null,ye(s(z),(b,u)=>(g(),le(it,{key:u,name:s(E)(i[b.type]),css:s(w)},{default:te(()=>[i[b.type]?(g(),le(At,{key:0,items:P(b.type),\"disabled-values\":e.filters.times[b.type],\"onUpdate:modelValue\":$=>Q(b.type,$),onSelected:$=>h(b.type),onToggle:$=>h(b.type),onResetFlow:o[0]||(o[0]=$=>M.$emit(\"reset-flow\"))},Me({\"button-icon\":te(()=>[M.$slots[\"clock-icon\"]?K(M.$slots,\"clock-icon\",{key:0}):D(\"\",!0),M.$slots[\"clock-icon\"]?D(\"\",!0):(g(),le(s(On),{key:1}))]),_:2},[M.$slots[`${b.type}-overlay`]?{name:\"item\",fn:te(({item:$})=>[K(M.$slots,`${b.type}-overlay`,{text:$.text,value:$.value})])}:void 0]),1032,[\"items\",\"disabled-values\",\"onUpdate:modelValue\",\"onSelected\",\"onToggle\"])):D(\"\",!0)]),_:2},1032,[\"name\",\"css\"]))),128))]))}}),Pt=[{name:\"clock-icon\",use:[\"time\",\"calendar\"]},{name:\"arrow-left\",use:[\"month-year\",\"calendar\"]},{name:\"arrow-right\",use:[\"month-year\",\"calendar\"]},{name:\"arrow-up\",use:[\"time\",\"calendar\"]},{name:\"arrow-down\",use:[\"time\",\"calendar\"]},{name:\"calendar-icon\",use:[\"month-year\",\"time\",\"calendar\"]},{name:\"day\",use:[\"calendar\"]},{name:\"month-overlay\",use:[\"calendar\",\"month-year\"]},{name:\"year-overlay\",use:[\"calendar\",\"month-year\"]},{name:\"hours-overlay\",use:[\"calendar\",\"time\"]},{name:\"minutes-overlay\",use:[\"calendar\",\"time\"]},{name:\"seconds-overlay\",use:[\"calendar\",\"time\"]},{name:\"hours\",use:[\"calendar\",\"time\"]},{name:\"minutes\",use:[\"calendar\",\"time\"]},{name:\"month\",use:[\"calendar\",\"month-year\"]},{name:\"year\",use:[\"calendar\",\"month-year\"]},{name:\"action-select\",use:[\"action\"]},{name:\"action-preview\",use:[\"action\"]},{name:\"calendar-header\",use:[\"calendar\"]},{name:\"marker-tooltip\",use:[\"calendar\"]},{name:\"now-button\",use:[]},{name:\"time-picker-overlay\",use:[\"calendar\",\"time\"]},{name:\"am-pm-button\",use:[\"calendar\",\"time\"]}],Ar=[{name:\"trigger\"},{name:\"input-icon\"},{name:\"clear-icon\"},{name:\"dp-input\"}],Pr={all:()=>Pt,monthYear:()=>Pt.filter(e=>e.use.includes(\"month-year\")),input:()=>Ar,timePicker:()=>Pt.filter(e=>e.use.includes(\"time\")),action:()=>Pt.filter(e=>e.use.includes(\"action\")),calendar:()=>Pt.filter(e=>e.use.includes(\"calendar\"))},st=(e,a)=>{const n=[];return Pr[a]().forEach(t=>{e[t.name]&&n.push(t.name)}),n},Cr=[\"aria-label\"],Tr={class:\"dp__overlay_container dp__container_flex\"},_r={key:1,class:\"dp__overlay_row\"},Rr=[\"aria-label\"],Or=Ve({__name:\"TimePicker\",props:De(J({},Gn),{range:{type:Boolean,default:!1},filters:{type:Object,default:()=>({})},hours:{type:[Number,Array],default:0},minutes:{type:[Number,Array],default:0},seconds:{type:[Number,Array],default:0},customProps:{type:Object,default:null},modelAuto:{type:Boolean,default:!1},internalModelValue:{type:[Date,Array],default:null}}),emits:[\"update:hours\",\"update:minutes\",\"update:seconds\",\"mount\",\"reset-flow\",\"overlay-closed\"],setup(e,{expose:a,emit:n}){const t=e,i=Ot(),m=R(null),v=R(null),p=pe(rn,!1),y=R([]),_=R(null),E=pe(Xe),w=pe(qe),{transitionName:V,showTransition:Y}=Ut(),{buildMatrix:F,setTimePicker:H}=Je();Be(()=>{n(\"mount\"),!t.timePicker&&(w==null?void 0:w.value)?F([he(m.value)],\"time\"):H(!0,t.timePicker)});const z=O(()=>t.range&&t.modelAuto?Hn(t.internalModelValue):!0),r=R(!1),P=o=>({hours:Array.isArray(t.hours)?t.hours[o]:t.hours,minutes:Array.isArray(t.minutes)?t.minutes[o]:t.minutes,seconds:Array.isArray(t.seconds)?t.seconds[o]:t.seconds}),C=O(()=>{const o=[];if(t.range)for(let b=0;b<2;b++)o.push(P(b));else o.push(P(0));return o}),h=(o,b=!1,u=\"\")=>{b||n(\"reset-flow\"),r.value=o,w!=null&&w.value&&(H(o),o||n(\"overlay-closed\")),$t(()=>{u!==\"\"&&y.value[0]&&y.value[0].openChildCmp(u)})},N=O(()=>({dp__button:!0,dp__button_bottom:p})),j=st(i,\"timePicker\"),ne=(o,b,u)=>t.range?b===0?[o,C.value[1][u]]:[C.value[0][u],o]:o,Z=o=>{n(\"update:hours\",o)},X=o=>{n(\"update:minutes\",o)},Q=o=>{n(\"update:seconds\",o)},M=()=>{_.value&&(w==null?void 0:w.value)&&_.value.focus({preventScroll:!0})};return a({toggleTimePicker:h}),(o,b)=>(g(),S(\"div\",null,[o.timePicker?D(\"\",!0):(g(),S(\"div\",{key:0,class:ce(s(N)),role:\"button\",\"aria-label\":s(E).openTimePicker,tabindex:\"0\",ref_key:\"openTimePickerBtn\",ref:m,onKeydown:b[0]||(b[0]=ue(u=>h(!0),[\"enter\"])),onClick:b[1]||(b[1]=u=>h(!0))},[o.$slots[\"clock-icon\"]?K(o.$slots,\"clock-icon\",{key:0}):D(\"\",!0),o.$slots[\"clock-icon\"]?D(\"\",!0):(g(),le(s(On),{key:1}))],42,Cr)),je(it,{name:s(V)(r.value),css:s(Y)},{default:te(()=>[r.value||o.timePicker?(g(),S(\"div\",{key:0,class:\"dp__overlay\",ref_key:\"overlayRef\",ref:_,tabindex:\"0\"},[U(\"div\",Tr,[o.$slots[\"time-picker-overlay\"]?K(o.$slots,\"time-picker-overlay\",{key:0,range:e.range,hours:e.hours,minutes:e.minutes,seconds:e.seconds,setHours:Z,setMinutes:X,setSeconds:Q}):D(\"\",!0),o.$slots[\"time-picker-overlay\"]?D(\"\",!0):(g(),S(\"div\",_r,[(g(!0),S(oe,null,ye(s(C),(u,$)=>$a((g(),le(Sr,Se({key:$,disabled:$===0?o.fixedStart:o.fixedEnd,hours:u.hours,minutes:u.minutes,seconds:u.seconds,filters:e.filters,ref_for:!0,ref_key:\"timeInputRefs\",ref:y},{is24:o.is24,hoursGridIncrement:o.hoursGridIncrement,minutesGridIncrement:o.minutesGridIncrement,secondsGridIncrement:o.secondsGridIncrement,hoursIncrement:o.hoursIncrement,minutesIncrement:o.minutesIncrement,secondsIncrement:o.secondsIncrement,filters:e.filters,noHoursOverlay:o.noHoursOverlay,noMinutesOverlay:o.noMinutesOverlay,noSecondsOverlay:o.noSecondsOverlay,enableSeconds:o.enableSeconds,closeTimePickerBtn:v.value,order:$},{\"onUpdate:hours\":L=>Z(ne(L,$,\"hours\")),\"onUpdate:minutes\":L=>X(ne(L,$,\"minutes\")),\"onUpdate:seconds\":L=>Q(ne(L,$,\"seconds\")),onMounted:M,onOverlayClosed:M}),Me({_:2},[ye(s(j),(L,ae)=>({name:L,fn:te(I=>[K(o.$slots,L,Ge(at(I)))])}))]),1040,[\"disabled\",\"hours\",\"minutes\",\"seconds\",\"filters\",\"onUpdate:hours\",\"onUpdate:minutes\",\"onUpdate:seconds\"])),[[Da,$===0?!0:s(z)]])),128))])),o.timePicker?D(\"\",!0):(g(),S(\"div\",{key:2,ref_key:\"closeTimePickerBtn\",ref:v,class:ce(s(N)),role:\"button\",\"aria-label\":s(E).closeTimePicker,tabindex:\"0\",onKeydown:b[2]||(b[2]=ue(u=>h(!1),[\"enter\"])),onClick:b[3]||(b[3]=u=>h(!1))},[o.$slots[\"calendar-icon\"]?K(o.$slots,\"calendar-icon\",{key:0}):D(\"\",!0),o.$slots[\"calendar-icon\"]?D(\"\",!0):(g(),le(s(Yt),{key:1}))],42,Rr))])],512)):D(\"\",!0)]),_:3},8,[\"name\",\"css\"])]))}}),Vr=[\"aria-label\"],yn=Ve({__name:\"ActionIcon\",props:{ariaLabel:{type:String,default:\"\"}},emits:[\"activate\",\"setRef\"],setup(e,{emit:a}){const n=R(null);return Be(()=>a(\"setRef\",n)),(t,i)=>(g(),S(\"div\",{class:\"dp__month_year_col_nav\",onClick:i[0]||(i[0]=m=>t.$emit(\"activate\")),onKeydown:i[1]||(i[1]=ue(m=>t.$emit(\"activate\"),[\"enter\"])),tabindex:\"0\",ref_key:\"elRef\",ref:n},[U(\"div\",{class:\"dp__inner_nav\",role:\"button\",\"aria-label\":e.ariaLabel},[K(t.$slots,\"default\")],8,Vr)],544))}}),Br=[\"aria-label\"],na=Ve({__name:\"RegularPicker\",props:{ariaLabel:{type:String,default:\"\"},showSelectionGrid:{type:Boolean,default:!1},modelValue:{type:Number,default:null},items:{type:Array,default:()=>[]},disabledValues:{type:Array,default:()=>[]},minValue:{type:Number,default:null},maxValue:{type:Number,default:null},slotName:{type:String,default:\"\"},headerRefs:{type:Array,default:()=>[]}},emits:[\"update:model-value\",\"toggle\",\"setRef\"],setup(e,{emit:a}){const{transitionName:n,showTransition:t}=Ut(),i=R(null);return Be(()=>a(\"setRef\",i)),(m,v)=>(g(),S(oe,null,[U(\"div\",{class:\"dp__month_year_select\",onClick:v[0]||(v[0]=p=>m.$emit(\"toggle\")),onKeydown:v[1]||(v[1]=ue(p=>m.$emit(\"toggle\"),[\"enter\"])),role:\"button\",\"aria-label\":e.ariaLabel,tabindex:\"0\",ref_key:\"elRef\",ref:i},[K(m.$slots,\"default\")],40,Br),je(it,{name:s(n)(e.showSelectionGrid),css:s(t)},{default:te(()=>[e.showSelectionGrid?(g(),le(At,Se({key:0},{modelValue:e.modelValue,items:e.items,disabledValues:e.disabledValues,minValue:e.minValue,maxValue:e.maxValue},{\"header-refs\":[],\"onUpdate:modelValue\":v[2]||(v[2]=p=>m.$emit(\"update:model-value\",p)),onToggle:v[3]||(v[3]=p=>m.$emit(\"toggle\"))}),Me({\"button-icon\":te(()=>[m.$slots[\"calendar-icon\"]?K(m.$slots,\"calendar-icon\",{key:0}):D(\"\",!0),m.$slots[\"calendar-icon\"]?D(\"\",!0):(g(),le(s(Yt),{key:1}))]),_:2},[m.$slots[e.slotName]?{name:\"item\",fn:te(({item:p})=>[K(m.$slots,e.slotName,{item:p})])}:void 0]),1040)):D(\"\",!0)]),_:3},8,[\"name\",\"css\"])],64))}}),jt=(e,a,n)=>[Re(new Date(e),{date:1}),Re(new Date,{month:a,year:n,date:1})],aa=(e,a,n)=>be(...jt(e,a,n))||ie(...jt(e,a,n)),la=(e,a,n)=>Te(...jt(e,a,n))||ie(...jt(e,a,n)),ra=(e,a,n,t,i,m)=>{let v=!1;return m?e&&a?(a&&i&&la(a,n,t)&&(v=!0),e&&!i&&aa(e,n,t)&&(v=!0)):(e&&aa(e,n,t)||a&&la(a,n,t))&&(v=!0):v=!0,v},Nr=(e,a)=>{const n=(v,p)=>{let y=v;return e.filters.months.includes(ve(y))?(y=p?mt(v,1):It(v,1),n(y,p)):y},t=(v,p)=>{let y=v;return e.filters.years.includes(me(y))?(y=p?Va(v,1):Ba(v,1),t(y,p)):y},i=v=>{const p=Re(new Date,{month:e.month,year:e.year});let y=v?mt(p,1):It(p,1),_=ve(y),E=me(y);e.filters.months.includes(_)&&(y=n(y,v),_=ve(y),E=me(y)),e.filters.years.includes(E)&&(y=t(y,v),E=me(y)),ra(e.minDate,e.maxDate,_,E,v,e.preventMinMaxNavigation)&&m(_,E)},m=(v,p)=>{a(\"update-month-year\",{month:v,year:p})};return{handleMonthYearChange:i}},Ir={class:\"dp__month_year_row\"},Yr={class:\"dp__month_picker_header\"},Fr=[\"aria-label\"],Er=[\"aria-label\",\"onKeydown\"],Lr=[\"aria-label\"],Kr=Ve({__name:\"MonthYearPicker\",props:De(J(J({},xn),un),{preventMinMaxNavigation:{type:Boolean,default:!1},reverseYears:{type:Boolean,default:!1},years:{type:Array,default:()=>[]},months:{type:Array,default:()=>[]},filters:{type:Object,default:()=>({})},multiCalendarsSolo:{type:Boolean,default:!1},yearPicker:{type:Boolean,default:!1}}),emits:[\"update-month-year\",\"monthYearSelect\",\"mount\",\"reset-flow\",\"overlay-closed\"],setup(e,{expose:a,emit:n}){const t=e,{transitionName:i,showTransition:m}=Ut(),{buildMatrix:v}=Je(),p=R(!1),y=R(!1),_=R([null,null,null,null]),E=R(null),w=R(null),V=R(null),Y=pe(Xe),F=pe(qe),{handleMonthYearChange:H}=Nr(t,n);Be(()=>{n(\"mount\")});const z=f=>({get:()=>t[f],set:T=>{const B=f===\"month\"?\"year\":\"month\";n(\"update-month-year\",{[f]:T,[B]:t[B]}),n(\"monthYearSelect\",f===\"year\"),f===\"month\"?$(!0):L(!0)}}),r=O(z(\"month\")),P=O(z(\"year\")),C=O(()=>f=>{const T=f===\"month\";return{showSelectionGrid:(T?p:y).value,items:(T?M:o).value,disabledValues:t.filters[T?\"months\":\"years\"],minValue:(T?j:h).value,maxValue:(T?ne:N).value,headerRefs:T&&t.monthPicker?[E.value,w.value,V.value]:[]}}),h=O(()=>t.minDate?me(new Date(t.minDate)):null),N=O(()=>t.maxDate?me(new Date(t.maxDate)):null),j=O(()=>{if(t.minDate&&h.value){if(h.value>t.year)return 12;if(h.value===t.year)return ve(new Date(t.minDate))}return null}),ne=O(()=>t.maxDate&&N.value?N.valuet.range&&t.internalModelValue&&t.monthPicker?t.internalModelValue:[]),X=(f,T=!1)=>{const B=[];for(let ke=0;ke{const f=t.months.find(T=>T.value===t.month);return f||{text:\"\",value:0}}),M=O(()=>X(t.months)),o=O(()=>X(t.years,t.reverseYears)),b=O(()=>t.multiCalendars?t.multiCalendarsSolo?!0:t.instance===0:!0),u=O(()=>t.multiCalendars?t.multiCalendarsSolo?!0:t.instance===t.multiCalendars-1:!0),$=(f=!1)=>{ae(f),p.value=!p.value,p.value||n(\"overlay-closed\")},L=(f=!1)=>{ae(f),y.value=!y.value,y.value||n(\"overlay-closed\")},ae=f=>{f||n(\"reset-flow\")},I=(f=!1)=>{n(\"update-month-year\",{year:f?t.year+1:t.year-1,month:t.month})},se=(f,T)=>{F!=null&&F.value&&(_.value[T]=he(f),v(_.value,\"monthYear\"))};return a({toggleMonthPicker:$,toggleYearPicker:L}),(f,T)=>(g(),S(\"div\",Ir,[!f.monthPicker&&!e.yearPicker?(g(),S(oe,{key:0},[s(b)&&!f.vertical?(g(),le(yn,{key:0,\"aria-label\":s(Y).prevMonth,onActivate:T[0]||(T[0]=B=>s(H)(!1)),onSetRef:T[1]||(T[1]=B=>se(B,0))},{default:te(()=>[f.$slots[\"arrow-left\"]?K(f.$slots,\"arrow-left\",{key:0}):D(\"\",!0),f.$slots[\"arrow-left\"]?D(\"\",!0):(g(),le(s(_n),{key:1}))]),_:3},8,[\"aria-label\"])):D(\"\",!0),je(na,Se({\"aria-label\":s(Y).openMonthsOverlay,\"slot-name\":\"month-overlay\",modelValue:s(r),\"onUpdate:modelValue\":T[2]||(T[2]=B=>lt(r)?r.value=B:null)},s(C)(\"month\"),{onToggle:$,onSetRef:T[3]||(T[3]=B=>se(B,1))}),Me({default:te(()=>[f.$slots.month?K(f.$slots,\"month\",Ge(Se({key:0},s(Q)))):D(\"\",!0),f.$slots.month?D(\"\",!0):(g(),S(oe,{key:1},[He(ge(s(Q).text),1)],64))]),_:2},[f.$slots[\"calendar-icon\"]?{name:\"calendar-icon\",fn:te(()=>[K(f.$slots,\"calendar-icon\")])}:void 0,f.$slots[\"month-overlay\"]?{name:\"month-overlay\",fn:te(({item:B})=>[K(f.$slots,\"month-overlay\",{text:B.text,value:B.value})])}:void 0]),1040,[\"aria-label\",\"modelValue\"]),je(na,Se({\"aria-label\":s(Y).openYearsOverlay,\"slot-name\":\"year-overlay\",modelValue:s(P),\"onUpdate:modelValue\":T[4]||(T[4]=B=>lt(P)?P.value=B:null)},s(C)(\"year\"),{onToggle:L,onSetRef:T[5]||(T[5]=B=>se(B,2))}),Me({default:te(()=>[f.$slots.year?K(f.$slots,\"year\",{key:0,year:f.year}):D(\"\",!0),f.$slots.year?D(\"\",!0):(g(),S(oe,{key:1},[He(ge(f.year),1)],64))]),_:2},[f.$slots[\"calendar-icon\"]?{name:\"calendar-icon\",fn:te(()=>[K(f.$slots,\"calendar-icon\")])}:void 0,f.$slots[\"year-overlay\"]?{name:\"year-overlay\",fn:te(({item:B})=>[K(f.$slots,\"year-overlay\",{text:B.text,value:B.value})])}:void 0]),1040,[\"aria-label\",\"modelValue\"]),s(b)&&f.vertical?(g(),le(yn,{key:1,\"aria-label\":s(Y).prevMonth,onActivate:T[6]||(T[6]=B=>s(H)(!1))},{default:te(()=>[f.$slots[\"arrow-up\"]?K(f.$slots,\"arrow-up\",{key:0}):D(\"\",!0),f.$slots[\"arrow-up\"]?D(\"\",!0):(g(),le(s(Vn),{key:1}))]),_:3},8,[\"aria-label\"])):D(\"\",!0),s(u)?(g(),le(yn,{key:2,\"arial-label\":s(Y).nextMonth,onActivate:T[7]||(T[7]=B=>s(H)(!0)),ref:\"rightIcon\",onSetRef:T[8]||(T[8]=B=>se(B,3))},{default:te(()=>[f.$slots[f.vertical?\"arrow-down\":\"arrow-right\"]?K(f.$slots,f.vertical?\"arrow-down\":\"arrow-right\",{key:0}):D(\"\",!0),f.$slots[f.vertical?\"arrow-down\":\"arrow-right\"]?D(\"\",!0):(g(),le(Vt(f.vertical?s(Bn):s(Rn)),{key:1}))]),_:3},8,[\"arial-label\"])):D(\"\",!0)],64)):D(\"\",!0),f.monthPicker?(g(),le(At,Se({key:1},s(C)(\"month\"),{\"skip-active\":t.range,year:f.year,\"multi-model-value\":s(Z),modelValue:s(r),\"onUpdate:modelValue\":T[15]||(T[15]=B=>lt(r)?r.value=B:null),onToggle:$,onSelected:T[16]||(T[16]=B=>f.$emit(\"overlay-closed\"))}),Me({header:te(()=>[U(\"div\",Yr,[U(\"div\",{class:\"dp__month_year_col_nav\",tabindex:\"0\",ref_key:\"mpPrevIconRef\",ref:E,onClick:T[9]||(T[9]=B=>I(!1)),onKeydown:T[10]||(T[10]=ue(B=>I(!1),[\"enter\"]))},[U(\"div\",{class:\"dp__inner_nav\",role:\"button\",\"aria-label\":s(Y).prevMonth},[f.$slots[\"arrow-left\"]?K(f.$slots,\"arrow-left\",{key:0}):D(\"\",!0),f.$slots[\"arrow-left\"]?D(\"\",!0):(g(),le(s(_n),{key:1}))],8,Fr)],544),U(\"div\",{class:\"dp__pointer\",role:\"button\",ref_key:\"mpYearButtonRef\",ref:w,\"aria-label\":s(Y).openYearsOverlay,tabindex:\"0\",onClick:L,onKeydown:ue(L,[\"enter\"])},[f.$slots.year?K(f.$slots,\"year\",{key:0,year:f.year}):D(\"\",!0),f.$slots.year?D(\"\",!0):(g(),S(oe,{key:1},[He(ge(f.year),1)],64))],40,Er),U(\"div\",{class:\"dp__month_year_col_nav\",tabindex:\"0\",ref_key:\"mpNextIconRef\",ref:V,onClick:T[11]||(T[11]=B=>I(!0)),onKeydown:T[12]||(T[12]=ue(B=>I(!0),[\"enter\"]))},[U(\"div\",{class:\"dp__inner_nav\",role:\"button\",\"aria-label\":s(Y).nextMonth},[f.$slots[\"arrow-right\"]?K(f.$slots,\"arrow-right\",{key:0}):D(\"\",!0),f.$slots[\"arrow-right\"]?D(\"\",!0):(g(),le(s(Rn),{key:1}))],8,Lr)],544)]),je(it,{name:s(i)(y.value),css:s(m)},{default:te(()=>[y.value?(g(),le(At,Se({key:0},s(C)(\"year\"),{modelValue:s(P),\"onUpdate:modelValue\":T[13]||(T[13]=B=>lt(P)?P.value=B:null),onToggle:L,onSelected:T[14]||(T[14]=B=>f.$emit(\"overlay-closed\"))}),Me({\"button-icon\":te(()=>[f.$slots[\"calendar-icon\"]?K(f.$slots,\"calendar-icon\",{key:0}):D(\"\",!0),f.$slots[\"calendar-icon\"]?D(\"\",!0):(g(),le(s(Yt),{key:1}))]),_:2},[f.$slots[\"year-overlay\"]?{name:\"item\",fn:te(({item:B})=>[K(f.$slots,\"year-overlay\",{text:B.text,value:B.value})])}:void 0]),1040,[\"modelValue\"])):D(\"\",!0)]),_:3},8,[\"name\",\"css\"])]),_:2},[f.$slots[\"month-overlay\"]?{name:\"item\",fn:te(({item:B})=>[K(f.$slots,\"month-overlay\",{text:B.text,value:B.value})])}:void 0]),1040,[\"skip-active\",\"year\",\"multi-model-value\",\"modelValue\"])):D(\"\",!0),e.yearPicker?(g(),le(At,Se({key:2},s(C)(\"year\"),{modelValue:s(P),\"onUpdate:modelValue\":T[17]||(T[17]=B=>lt(P)?P.value=B:null),\"skip-button-ref\":\"\",onToggle:L,onSelected:T[18]||(T[18]=B=>f.$emit(\"overlay-closed\"))}),Me({_:2},[f.$slots[\"year-overlay\"]?{name:\"item\",fn:te(({item:B})=>[K(f.$slots,\"year-overlay\",{text:B.text,value:B.value})])}:void 0]),1040,[\"modelValue\"])):D(\"\",!0)]))}}),Hr=(e,a,n,t)=>{const i=R(new Date),m=R(),v=R([{month:ve(new Date),year:me(new Date)}]),p=R(e.range?[Ne(new Date),Ne(new Date)]:Ne(new Date)),y=R(e.range?[Ie(new Date),Ie(new Date)]:Ie(new Date)),_=R(e.range?[0,0]:0);Dt(v,()=>{setTimeout(()=>{e.openOnTop&&a(\"dpOpen\")},0)},{deep:!0}),Be(()=>{X(!0),r.value||(e.startDate&&(v.value[0].month=ve(new Date(e.startDate)),v.value[0].year=me(new Date(e.startDate)),e.multiCalendars&&B(0)),e.startTime&&z())});const E=O(()=>l=>v.value[l]?v.value[l].month:0),w=O(()=>l=>v.value[l]?v.value[l].year:0),V=(l,k,A)=>{v.value[l].month=k,v.value[l].year=A},Y=(l,k)=>v.value[l].month=k,F=(l,k)=>v.value[l].year=k,H=(l=!0)=>e.enableSeconds?Array.isArray(_.value)?l?_.value[0]:_.value[1]:_.value:0,z=()=>{e.startTime&&(ir(e.startTime)?(p.value=[+e.startTime[0].hours,+e.startTime[1].hours],y.value=[+e.startTime[0].minutes,+e.startTime[1].minutes],e.enableSeconds&&(_.value=[+e.startTime[0].seconds,+e.startTime[1].seconds])):(p.value=+e.startTime.hours,y.value=+e.startTime.minutes,e.enableSeconds&&(_.value=+e.startTime.seconds)))},r=O({get:()=>e.internalModelValue,set:l=>{!e.readonly&&!e.disabled&&a(\"update:internalModelValue\",l)}});Dt(r,()=>X());const P=l=>{const{validate:k}=Ln(e.minDate,e.maxDate,e.disabledDates,e.allowedDates,e.filters,e.disabledWeekDays,e.yearRange);return!k(l)},C=l=>!r.value||e.hideOffsetDates&&!l.current?!1:e.range?e.modelAuto&&Array.isArray(r.value)?ie(l.value,r.value[0]?r.value[0]:i.value):!1:e.multiDates&&Array.isArray(r.value)?r.value.some(k=>ie(k,l.value)):ie(l.value,r.value?r.value:i.value),h=l=>En(r.value,m.value,l.value),N=(l,k=!1)=>{if((!e.multiCalendars||!e.multiStatic||k)&&(Y(0,ve(l)),F(0,me(l))),e.multiCalendars)for(let A=1;A<=e.multiCalendars;A++){const x=Re(new Date,{month:E.value(A-1),year:w.value(A-1)}),Ce=Tn(x,{months:1});v.value[A]={month:ve(Ce),year:me(Ce)}}},j=()=>{if(Array.isArray(r.value)&&r.value.length===2){const l=new Date(r.value[1]?r.value[1]:mt(r.value[0],1)),[k,A]=[ve(r.value[0]),me(r.value[0])],[x,Ce]=[ve(r.value[1]),me(r.value[1])];(k!==x||k===x&&A!==Ce)&&e.multiCalendarsSolo&&(Y(1,ve(l)),F(1,me(l)))}},ne=l=>{N(l),p.value=Ne(l),y.value=Ie(l),_.value=ze(l)},Z=()=>Array.isArray(r.value)&&r.value.length?r.value[r.value.length-1]:null,X=(l=!1)=>{if(r.value)if(St(r.value)){if(r.value.length===2&&!e.multiDates)N(r.value[0],l),p.value=[Ne(r.value[0]),r.value[1]?Ne(r.value[1]):Ne(new Date)],y.value=[Ie(r.value[0]),r.value[1]?Ie(r.value[1]):Ie(new Date)],_.value=[ze(r.value[0]),r.value[1]?ze(r.value[1]):ze(new Date)];else if(St(r.value)&&e.multiDates){const k=r.value[r.value.length-1];k&&ne(k)}e.multiCalendars&&e.multiCalendarsSolo&&j()}else ne(r.value);else e.timePicker?(z(),e.range?Ye(p.value)&&Ye(y.value)&&(r.value=[Ae(new Date,p.value[0],y.value[0],H()),Ae(new Date,p.value[1],y.value[1],H(!1))]):r.value=Ae(new Date,p.value,y.value,H())):e.monthPicker&&!e.range?r.value=ot(new Date,E.value(0),w.value(0)):e.multiCalendars?N(new Date):e.yearPicker&&(r.value=new Date)},Q=l=>{const k=ve(new Date(l)),A=me(new Date(l));if(Y(0,k),F(0,A),e.multiCalendars>0)for(let x=1;x{if(r.value&&Array.isArray(r.value))if(r.value.some(k=>ie(l,k))){const k=r.value.filter(A=>!ie(A,l));r.value=k.length?k:null}else(e.multiDatesLimit&&+e.multiDatesLimit>r.value.length||!e.multiDatesLimit)&&r.value.push(l);else r.value=[l]},o=l=>{if(Array.isArray(r.value)&&r.value[0]){const k=Ya(l,r.value[0]),A=Math.abs(k<0?k+1:k-1);if(e.minRange&&e.maxRange)return A>=+e.minRange&&A<=+e.maxRange;if(e.minRange)return A>=+e.minRange;if(e.maxRange)return A<=+e.maxRange}return!0},b=l=>Array.isArray(r.value)&&r.value.length===2?e.fixedStart&&(Te(l,r.value[0])||ie(l,r.value[0]))?[r.value[0],l]:e.fixedEnd&&(be(l,r.value[1])||ie(l,r.value[1]))?[l,r.value[1]]:r.value:[],u=()=>{e.autoApply&&a(\"autoApply\")},$=l=>!Na({start:l[0],end:l[1]}).some(k=>P(k)),L=(l,k=!1)=>{if(!P(l.value)&&!(!l.current&&e.hideOffsetDates)){if(e.weekPicker)return r.value=Et(new Date(l.value),+e.weekStart),u();if(!e.range&&!Ye(p.value)&&!Ye(y.value)){const A=Ae(new Date(l.value),p.value,y.value,H());e.multiDates?M(A):r.value=A,n(),u()}else if(Ye(p.value)&&Ye(y.value)&&!e.multiDates){let A=r.value?r.value.slice():[];if(A.length===2&&!(e.fixedStart||e.fixedEnd)&&(A=[]),e.autoRange){const x=[new Date(l.value),Mt(new Date(l.value),+e.autoRange)];$(x)&&(k&&Q(l.value),A=x)}else e.fixedStart||e.fixedEnd?A=b(new Date(l.value)):A[0]?o(new Date(l.value))&&(be(new Date(l.value),new Date(A[0]))?A.unshift(new Date(l.value)):A[1]=new Date(l.value)):A[0]=new Date(l.value);A.length&&(A[0]&&!A[1]?A[0]=Ae(A[0],p.value[0],y.value[0],H()):(A[0]=Ae(A[0],p.value[0],y.value[0],H()),A[1]=Ae(A[1],p.value[1],y.value[1],H(!1)),n()),r.value=A,A[0]&&A[1]&&e.autoApply&&a(\"autoApply\"))}}},ae=l=>{const k=l.find(A=>A.current);return k?Ia(k.value):\"\"},I=l=>{!l.current&&e.hideOffsetDates||(m.value=l.value)},se=l=>{if(e.autoRange||e.weekPicker){if(m.value){if(e.hideOffsetDates&&!l.current)return!1;const k=Mt(m.value,+e.autoRange),A=Et(new Date(m.value),+e.weekStart);return e.weekPicker?ie(A[1],new Date(l.value)):ie(k,new Date(l.value))}return!1}return!1},f=l=>{if(e.autoRange||e.weekPicker){if(m.value){const k=Mt(m.value,+e.autoRange);if(e.hideOffsetDates&&!l.current)return!1;const A=Et(new Date(m.value),+e.weekStart);return e.weekPicker?Te(l.value,A[0])&&be(l.value,A[1]):Te(l.value,m.value)&&be(l.value,k)}return!1}return!1},T=l=>{if(e.autoRange||e.weekPicker){if(m.value){if(e.hideOffsetDates&&!l.current)return!1;const k=Et(new Date(m.value),+e.weekStart);return e.weekPicker?ie(k[0],l.value):ie(m.value,l.value)}return!1}return!1},B=l=>{for(let k=l-1;k>=0;k--){const A=It(Re(new Date,{month:E.value(k+1),year:w.value(k+1)}),1);V(k,ve(A),me(A))}for(let k=l+1;k<=e.multiCalendars-1;k++){const A=mt(Re(new Date,{month:E.value(k-1),year:w.value(k-1)}),1);V(k,ve(A),me(A))}},ke=l=>ot(new Date,E.value(l),w.value(l)),Fe=(l,k)=>{const A=E.value(l)!==k.month;if(Y(l,k.month),F(l,k.year),e.multiCalendars&&!e.multiCalendarsSolo&&B(l),e.monthPicker)if(e.range){if(A){let x=r.value?r.value.slice():[];x.length===2&&x[1]!==null&&(x=[]),x.length?be(ke(l),x[0])?x.unshift(ke(l)):x[1]=ke(l):x=[ke(l)],r.value=x}}else r.value=ke(l);n(),a(\"updateMonthYear\",{instance:l,month:k.month,year:k.year}),Ct(e.multiCalendarsSolo?l:void 0)},Ze=l=>Ae(l,p.value,y.value,H()),Ke=l=>{St(l)&&St(r.value)&&Ye(p.value)&&Ye(y.value)?(l[0]&&r.value[0]&&(r.value[0]=Ae(l[0],p.value[0],y.value[0],H())),l[1]&&r.value[1]&&(r.value[1]=Ae(l[1],p.value[1],y.value[1],H(!1)))):e.multiDates&&Array.isArray(r.value)?r.value[r.value.length-1]=Ze(l):!e.range&&!Wt(l)&&(r.value=Ze(l)),a(\"timeUpdate\")},Oe=(l,k=!0,A=!1)=>{const x=k?l:p.value,Ce=!k&&!A?l:y.value,gt=A?l:_.value;if(e.range&&Wt(r.value)&&Ye(x)&&Ye(Ce)&&Ye(gt)&&!e.disableTimeRangeValidation){const nt=We=>Ae(r.value[We],x[We],Ce[We],gt[We]),Tt=We=>Jt(r.value[We],0);if(ie(r.value[0],r.value[1])&&(An(nt(0),Tt(1))||Pn(nt(1),Tt(0))))return}if(p.value=x,y.value=Ce,_.value=gt,r.value)if(e.multiDates){const nt=Z();nt&&Ke(nt)}else Ke(r.value);else e.timePicker&&Ke(e.range?[new Date,new Date]:new Date);n()},Qe=()=>{m.value=null},vt=l=>ea(r.value,e.range)&&r.value[0]&&m.value?l?Te(m.value,r.value[0]):be(m.value,r.value[0]):!0,Ee=(l,k=!0)=>(e.range||e.weekPicker)&&Wt(r.value)?e.hideOffsetDates&&!l.current?!1:ie(new Date(l.value),r.value[k?0:1]):e.range?ie(new Date(l.value),r.value&&Array.isArray(r.value)?k?r.value[0]||null:r.value[1]:null)&&(k?!be(m.value||null,Array.isArray(r.value)?r.value[0]:null):!0)||ie(l.value,Array.isArray(r.value)?r.value[0]:null)&&vt(k):!1,Pe=(l,k)=>Array.isArray(e.internalModelValue)&&e.internalModelValue.length||e.weekPicker?!1:!l&&!C(k)&&!(!k.current&&e.hideOffsetDates)&&(e.range?!Ee(k)&&!Ee(k,!1):!0),ft=(l,k,A)=>Array.isArray(e.internalModelValue)&&e.internalModelValue[0]&&e.internalModelValue.length===1?l?!1:A?Te(e.internalModelValue[0],k.value):be(e.internalModelValue[0],k.value):!1,xe=(l=!1)=>{l&&e.yearPicker&&(r.value=ct(new Date,v.value[0].year),e.autoApply&&a(\"autoApply\")),e.autoApply&&e.monthPicker&&$t().then(()=>{e.range?a(\"autoApply\",l||!r.value||r.value.length===1):a(\"autoApply\",l)})},et=(l,k)=>{const A=Re(new Date,{month:E.value(k),year:w.value(k)}),x=l<0?mt(A,1):It(A,1);ra(e.minDate,e.maxDate,ve(x),me(x),l<0,e.preventMinMaxNavigation)&&(V(k,ve(x),me(x)),e.multiCalendars&&!e.multiCalendarsSolo&&B(k),Ct())},yt=(l,k)=>{e.monthChangeOnScroll&&et(e.monthChangeOnScroll!==\"inverse\"?-l.deltaY:l.deltaY,k)},c=(l,k,A=!1)=>{e.monthChangeOnArrows&&e.vertical===A&&re(l,k)},re=(l,k)=>{et(l===\"right\"?-1:1,k)},fe=l=>e.markers.find(k=>ie(_e(l.value),_e(k.date))),ht=()=>{e.range?ea(r.value,e.range)&&(r.value&&r.value[0]?r.value=be(new Date,r.value[0])?[new Date,r.value[0]]:[r.value[0],new Date]:r.value=[new Date]):a(\"update:internalModelValue\",new Date),e.autoApply&&a(\"selectDate\")},tt=l=>{l.length&&l.length<=2&&e.range&&(r.value=l.map(k=>new Date(k)),e.autoApply&&a(\"selectDate\"))},Ct=l=>{l||l===0?t.value[l].triggerTransition(E.value(l),w.value(l)):t.value.forEach((k,A)=>k.triggerTransition(E.value(A),w.value(A)))};return{today:i,hours:p,minutes:y,seconds:_,month:E,year:w,monthYearSelect:xe,isDisabled:P,updateTime:Oe,setHoverDate:I,getWeekNum:ae,selectDate:L,rangeActive:h,isActiveDate:C,updateMonthYear:Fe,isHoverRangeEnd:se,isAutoRangeInBetween:f,isAutoRangeStart:T,clearHoverDate:Qe,rangeActiveStartEnd:Ee,handleScroll:yt,getMarker:fe,handleArrow:c,handleSwipe:re,selectCurrentDate:ht,isHoverDate:Pe,isHoverDateStartEnd:ft,presetDateRange:tt}},Wr=[\"id\",\"aria-label\",\"onKeydown\"],Ur={key:0,class:\"dp__preset_ranges\"},jr=[\"onClick\"],Gr={key:1,class:\"dp__now_wrap\"},zr=Ve({__name:\"DatepickerMenu\",props:De(J(J(J({},Zn),sn),on),{internalModelValue:{type:[Date,Array],default:null},multiCalendars:{type:Number,default:0},openOnTop:{type:Boolean,default:!1}}),emits:[\"update:internalModelValue\",\"closePicker\",\"selectDate\",\"dpOpen\",\"autoApply\",\"timeUpdate\",\"flow-step\",\"updateMonthYear\"],setup(e,{emit:a}){const n=e,t=Ot(),i=R(null),m=Rt({timePicker:!!(!n.enableTimePicker||n.timePicker||n.monthPicker),monthYearInput:!!n.timePicker,calendar:!1}),v=R([]),p=R([]),y=R(null),_=R(null),E=R(0),w=R(!1),V=R(0),Y=pe(Lt),F=pe(Xe),H=pe(qe),{setMenuFocused:z,setShiftKey:r}=cn();Be(()=>{var G;w.value=!0,(G=n.presetRanges)!=null&&G.length||A();const d=he(_);if(d&&!n.textInput&&!n.inline&&(z(!0),j()),d){const W=q=>{q.stopImmediatePropagation(),q.stopPropagation()};d.addEventListener(\"pointerdown\",W),d.addEventListener(\"mousedown\",W)}document.addEventListener(\"resize\",A)}),Xt(()=>{document.removeEventListener(\"resize\",A)});const{arrowRight:P,arrowLeft:C,arrowDown:h,arrowUp:N}=Je(),j=()=>{const d=he(_);d&&d.focus({preventScroll:!0})},ne=()=>{var d;((d=n.flow)==null?void 0:d.length)&&V.value!==-1&&(V.value+=1,a(\"flow-step\",V.value),wn())},Z=()=>{V.value=-1},{updateTime:X,updateMonthYear:Q,today:M,month:o,year:b,hours:u,minutes:$,seconds:L,isDisabled:ae,isActiveDate:I,selectDate:se,getWeekNum:f,setHoverDate:T,isHoverRangeEnd:B,isAutoRangeInBetween:ke,isAutoRangeStart:Fe,rangeActive:Ze,clearHoverDate:Ke,rangeActiveStartEnd:Oe,monthYearSelect:Qe,handleScroll:vt,handleArrow:Ee,handleSwipe:Pe,getMarker:ft,selectCurrentDate:xe,isHoverDateStartEnd:et,isHoverDate:yt,presetDateRange:c}=Hr(n,a,ne,p),re=st(t,\"calendar\"),fe=st(t,\"action\"),ht=st(t,\"timePicker\"),tt=st(t,\"monthYear\"),Ct=O(()=>n.openOnTop?\"dp__arrow_bottom\":\"dp__arrow_top\"),l=O(()=>Bl(n.yearRange)),k=O(()=>Nl(n.locale,n.monthNameFormat)),A=()=>{const d=he(i);d&&(E.value=d.getBoundingClientRect().width)},x=O(()=>d=>Rl(o.value(d),b.value(d),+n.weekStart,n.hideOffsetDates)),Ce=O(()=>n.multiCalendars>0&&n.range?[...Array(n.multiCalendars).keys()]:[0]),gt=O(()=>d=>d===1),nt=O(()=>n.monthPicker||n.timePicker||n.yearPicker),Tt=O(()=>({dp__flex_display:n.multiCalendars>0})),We=O(()=>({dp__instance_calendar:n.multiCalendars>0})),oa=O(()=>({dp__menu_disabled:n.disabled,dp__menu_readonly:n.readonly})),sa=O(()=>d=>ca(x,d)),ua=O(()=>({locale:n.locale,weekNumName:n.weekNumName,weekStart:n.weekStart,weekNumbers:n.weekNumbers,customProps:n.customProps,calendarClassName:n.calendarClassName,specificMode:nt.value,getWeekNum:f,multiCalendars:n.multiCalendars,modeHeight:n.modeHeight,internalModelValue:n.internalModelValue,noSwipe:n.noSwipe,vertical:n.vertical,dayNames:n.dayNames,monthChangeOnScroll:n.monthChangeOnScroll})),ia=O(()=>({dp__menu:!0,dp__menu_index:!n.inline,dp__relative:n.inline,[n.menuClassName]:!!n.menuClassName})),da=()=>n.modelAuto&&Array.isArray(n.internalModelValue)?!!n.internalModelValue[0]:!1,wt=()=>n.modelAuto?Hn(n.internalModelValue):!0,ca=(d,G)=>d.value(G).map(W=>De(J({},W),{days:W.days.map(q=>{const ee=ae(q.value),kt=yt(ee,q),ut=(n.range||n.weekPicker)&&(n.multiCalendars>0?q.current:!0)&&!ee&&wt()&&!(!q.current&&n.hideOffsetDates)&&!I(q)?Ze(q):!1;return q.marker=ft(q),q.classData={dp__cell_offset:!q.current,dp__pointer:!ee&&!(!q.current&&n.hideOffsetDates),dp__active_date:n.range?n.modelAuto?da()&&I(q):!1:I(q),dp__date_hover:kt,dp__date_hover_start:et(kt,q,!0),dp__date_hover_end:et(kt,q,!1),dp__range_between:ut&&!n.weekPicker,dp__range_between_week:ut&&n.weekPicker,dp__today:!n.noToday&&ie(q.value,M.value)&&q.current,dp__cell_disabled:ee,dp__cell_auto_range:ke(q),dp__cell_auto_range_start:Fe(q),dp__cell_auto_range_end:B(q),dp__range_start:n.multiCalendars>0?q.current&&Oe(q)&&wt():Oe(q)&&wt(),dp__range_end:n.multiCalendars>0?q.current&&Oe(q,!1)&&wt():Oe(q,!1)&&wt(),[n.calendarCellClassName]:!!n.calendarCellClassName},q})})),ma=d=>{d.stopPropagation(),d.preventDefault(),d.stopImmediatePropagation()},pa=()=>{n.escClose&&a(\"closePicker\")},va=d=>{d.stopImmediatePropagation(),d.preventDefault(),n.spaceConfirm&&a(\"selectDate\")},zt=d=>{var G;(G=n.flow)!=null&&G.length&&(m[d]=!0,Object.keys(m).filter(W=>!m[W]).length||wn())},wn=()=>{n.flow[V.value]===\"month\"&&v.value[0]&&v.value[0].toggleMonthPicker(!0),n.flow[V.value]===\"year\"&&v.value&&v.value[0].toggleYearPicker(!0),n.flow[V.value]===\"calendar\"&&y.value&&y.value.toggleTimePicker(!1,!0),n.flow[V.value]===\"time\"&&y.value&&y.value.toggleTimePicker(!0,!0);const d=n.flow[V.value];(d===\"hours\"||d===\"minutes\"||d===\"seconds\")&&y.value&&y.value.toggleTimePicker(!0,!0,d)},_t=d=>{if(H!=null&&H.value){if(d===\"up\")return N();if(d===\"down\")return h();if(d===\"left\")return C();if(d===\"right\")return P()}else d===\"left\"||d===\"up\"?Ee(\"left\",0,d===\"up\"):Ee(\"right\",0,d===\"down\")},fa=d=>{r(d.shiftKey)};return(d,G)=>(g(),le(it,{appear:\"\",name:s(Y).menuAppear,mode:\"out-in\",css:!!s(Y)},{default:te(()=>[U(\"div\",{id:d.uid?`dp-menu-${d.uid}`:void 0,tabindex:\"0\",ref_key:\"dpMenuRef\",ref:_,role:\"dialog\",\"aria-label\":s(F).menu,class:ce(s(ia)),onMouseleave:G[11]||(G[11]=(...W)=>s(Ke)&&s(Ke)(...W)),onClick:ma,onKeydown:[ue(pa,[\"esc\"]),ue(va,[\"space\"]),G[12]||(G[12]=ue(Ue(W=>_t(\"left\"),[\"prevent\"]),[\"left\"])),G[13]||(G[13]=ue(Ue(W=>_t(\"up\"),[\"prevent\"]),[\"up\"])),G[14]||(G[14]=ue(Ue(W=>_t(\"down\"),[\"prevent\"]),[\"down\"])),G[15]||(G[15]=ue(Ue(W=>_t(\"right\"),[\"prevent\"]),[\"right\"])),fa]},[(d.disabled||d.readonly)&&d.inline?(g(),S(\"div\",{key:0,class:ce(s(oa))},null,2)):D(\"\",!0),d.inline?D(\"\",!0):(g(),S(\"div\",{key:1,class:ce(s(Ct))},null,2)),U(\"div\",{class:ce(d.presetRanges.length?\"dp__menu_content_wrapper\":null)},[d.presetRanges.length?(g(),S(\"div\",Ur,[(g(!0),S(oe,null,ye(d.presetRanges,(W,q)=>(g(),S(\"div\",{key:q,class:\"dp__preset_range\",onClick:ee=>s(c)(W.range)},ge(W.label),9,jr))),128))])):D(\"\",!0),U(\"div\",{class:\"dp__instance_calendar\",ref_key:\"calendarWrapperRef\",ref:i,role:\"document\"},[U(\"div\",{class:ce(s(Tt))},[(g(!0),S(oe,null,ye(s(Ce),(W,q)=>(g(),S(\"div\",{key:W,class:ce(s(We))},[!d.disableMonthYearSelect&&!d.timePicker?(g(),le(Vt(d.monthYearComponent?d.monthYearComponent:Kr),Se({key:0,ref_for:!0,ref:ee=>{ee&&(v.value[q]=ee)}},{months:s(k),years:s(l),filters:d.filters,monthPicker:d.monthPicker,month:s(o)(W),year:s(b)(W),customProps:d.customProps,multiCalendars:e.multiCalendars,multiCalendarsSolo:d.multiCalendarsSolo,instance:W,minDate:d.minDate,maxDate:d.maxDate,preventMinMaxNavigation:d.preventMinMaxNavigation,internalModelValue:e.internalModelValue,range:d.range,reverseYears:d.reverseYears,vertical:d.vertical,yearPicker:d.yearPicker},{onMount:G[0]||(G[0]=ee=>zt(\"monthYearInput\")),onResetFlow:Z,onUpdateMonthYear:ee=>s(Q)(W,ee),onMonthYearSelect:s(Qe),onOverlayClosed:j}),Me({_:2},[ye(s(tt),(ee,kt)=>({name:ee,fn:te(ut=>[K(d.$slots,ee,Ge(at(ut)))])}))]),1040,[\"onUpdateMonthYear\",\"onMonthYearSelect\"])):D(\"\",!0),je(ar,Se({ref_for:!0,ref:ee=>{ee&&(p.value[q]=ee)}},s(ua),{\"flow-step\":V.value,\"onUpdate:flow-step\":G[1]||(G[1]=ee=>V.value=ee),instance:W,\"mapped-dates\":s(sa)(W),month:s(o)(W),year:s(b)(W),onSelectDate:ee=>s(se)(ee,!s(gt)(W)),onSetHoverDate:G[2]||(G[2]=ee=>s(T)(ee)),onHandleScroll:ee=>s(vt)(ee,W),onHandleSwipe:ee=>s(Pe)(ee,W),onMount:G[3]||(G[3]=ee=>zt(\"calendar\")),onResetFlow:Z}),Me({_:2},[ye(s(re),(ee,kt)=>({name:ee,fn:te(ut=>[K(d.$slots,ee,Ge(at(J({},ut))))])}))]),1040,[\"flow-step\",\"instance\",\"mapped-dates\",\"month\",\"year\",\"onSelectDate\",\"onHandleScroll\",\"onHandleSwipe\"])],2))),128))],2),U(\"div\",null,[d.enableTimePicker&&!d.monthPicker&&!d.weekPicker?(g(),le(Vt(d.timePickerComponent?d.timePickerComponent:Or),Se({key:0,ref_key:\"timePickerRef\",ref:y},{is24:d.is24,hoursIncrement:d.hoursIncrement,minutesIncrement:d.minutesIncrement,hoursGridIncrement:d.hoursGridIncrement,secondsIncrement:d.secondsIncrement,minutesGridIncrement:d.minutesGridIncrement,secondsGridIncrement:d.secondsGridIncrement,noHoursOverlay:d.noHoursOverlay,noMinutesOverlay:d.noMinutesOverlay,noSecondsOverlay:d.noSecondsOverlay,range:d.range,filters:d.filters,timePicker:d.timePicker,hours:s(u),minutes:s($),seconds:s(L),customProps:d.customProps,enableSeconds:d.enableSeconds,fixedStart:d.fixedStart,fixedEnd:d.fixedEnd,modelAuto:d.modelAuto,internalModelValue:e.internalModelValue},{onMount:G[4]||(G[4]=W=>zt(\"timePicker\")),\"onUpdate:hours\":G[5]||(G[5]=W=>s(X)(W)),\"onUpdate:minutes\":G[6]||(G[6]=W=>s(X)(W,!1)),\"onUpdate:seconds\":G[7]||(G[7]=W=>s(X)(W,!1,!0)),onResetFlow:Z,onOverlayClosed:j}),Me({_:2},[ye(s(ht),(W,q)=>({name:W,fn:te(ee=>[K(d.$slots,W,Ge(at(ee)))])}))]),1040)):D(\"\",!0)])],512),d.showNowButton?(g(),S(\"div\",Gr,[d.$slots[\"now-button\"]?K(d.$slots,\"now-button\",{key:0,selectCurrentDate:s(xe)}):D(\"\",!0),d.$slots[\"now-button\"]?D(\"\",!0):(g(),S(\"button\",{key:1,type:\"button\",role:\"button\",class:\"dp__now_button\",onClick:G[8]||(G[8]=(...W)=>s(xe)&&s(xe)(...W))},ge(d.nowButtonLabel),1))])):D(\"\",!0)],2),!d.autoApply||d.keepActionRow?(g(),le(Vt(d.actionRowComponent?d.actionRowComponent:vr),Se({key:2},{calendarWidth:E.value,selectText:d.selectText,cancelText:d.cancelText,internalModelValue:e.internalModelValue,range:d.range,previewFormat:d.previewFormat,inline:d.inline,monthPicker:d.monthPicker,timePicker:d.timePicker,customProps:d.customProps,multiCalendars:e.multiCalendars,menuMount:w.value,maxTime:d.maxTime,minTime:d.minTime,enableTimePicker:d.enableTimePicker,minDate:d.minDate,maxDate:d.maxDate,multiDates:d.multiDates,modelAuto:d.modelAuto},{onClosePicker:G[9]||(G[9]=W=>d.$emit(\"closePicker\")),onSelectDate:G[10]||(G[10]=W=>d.$emit(\"selectDate\"))}),Me({_:2},[ye(s(fe),(W,q)=>({name:W,fn:te(ee=>[K(d.$slots,W,Ge(at(J({},ee))))])}))]),1040)):D(\"\",!0)],42,Wr)]),_:3},8,[\"name\",\"css\"]))}});var Gt=(e=>(e.center=\"center\",e.left=\"left\",e.right=\"right\",e))(Gt||{});const Xr=(e,a,n,t,i,m,v)=>{const p=R({top:\"0\",left:\"0\",transform:\"none\"}),y=R(!1),_=10,E=390,w=C=>{const h=C.getBoundingClientRect();return{left:h.left+window.scrollX,top:h.top+window.scrollY}},V=C=>{const h=C.getBoundingClientRect();let N=0,j=0;for(;C&&!isNaN(C.offsetLeft)&&!isNaN(C.offsetTop);)N+=C.offsetLeft-C.scrollLeft,j=h.top+C.scrollTop,C=C.offsetParent;return{top:j,left:N}},Y=(C,h)=>{p.value.left=`${C+h}px`,p.value.transform=\"translateX(-100%)\"},F=C=>{p.value.left=`${C}px`,p.value.transform=\"translateX(0)\"},H=(C,h)=>{e===Gt.left&&F(C),e===Gt.right&&Y(C,h),e===Gt.center&&(p.value.left=`${C+h/2}px`,p.value.transform=\"translateX(-50%)\")},z=()=>{const C=he(i);if(C){const h=window.innerHeight,{top:N}=a?V(C):w(C),{left:j,width:ne,top:Z,height:X}=C.getBoundingClientRect(),Q=h-Z-X;p.value.top=Z>Q?`${N-E}px`:`${N}px`,H(j,ne)}},r=(C=!0)=>{if(!m){const h=he(i);if(a&&typeof a!=\"boolean\")p.value=a(h);else if(h){const{left:N,width:j,height:ne}=h.getBoundingClientRect(),{top:Z}=a?V(h):w(h);p.value.top=`${ne+Z+_}px`,H(N,j),C&&n&&P()}}},P=()=>{const C=he(i);if(C&&n&&!m){const{height:h,top:N,left:j,width:ne}=C.getBoundingClientRect(),{top:Z}=a?V(C):w(C),X=window.innerHeight-N-h,Q=he(t);if(Q){const{height:M,left:o,right:b}=Q.getBoundingClientRect(),u=M+h;u>N&&u>X?NX?(p.value.top=`${Z-M-_}px`,y.value=!0):(r(!1),y.value=!1),o<0?F(j):b>document.documentElement.clientWidth&&Y(j,ne)}}v(\"recalculatePosition\")};return{openOnTop:y,menuPosition:p,setMenuPosition:r,setInitialPosition:z,recalculatePosition:P}},qr=(e,a,n,t,i,m,v,p,y,_,E,w,V,Y,F,H,z)=>{const r=R(\"\"),P=R();Dt(P,()=>{z(\"internalModelChange\",P.value)});const C=o=>[Z(o[0]),o[1]?Z(o[1]):null],h=o=>{let b=null;o?a?rr(o)&&\"hours\"in o[0]&&\"minutes\"in o[0]?b=[Ae(null,+o[0].hours,+o[0].minutes,+o[0].seconds),Ae(null,+o[1].hours,+o[1].minutes,+o[1].seconds)]:lr(o)&&(b=Ae(null,+o.hours,+o.minutes,+o.seconds)):n?or(o)&&\"month\"in o[0]&&\"year\"in o[0]?(b=[ot(null,+o[0].month,+o[0].year)],o[1]?b[1]=ot(null,+o[1].month,+o[1].year):!o[1]&&i&&(b[1]=null)):sr(o)&&\"month\"in o&&\"year\"in o&&(b=ot(null,+o.month,+o.year)):V?b=ct(new Date,o):_&&Array.isArray(o)?b=o.map(u=>Z(u)):w&&Array.isArray(o)?b=[new Date(o[0]),new Date(o[1])]:t?H?Array.isArray(o)?b=C(o):b=[Z(o),null]:ur(o,i)&&(b=C(o)):dr(o)&&(b=Z(o)):b=null,xt(b)?(P.value=b,j()):(P.value=null,r.value=\"\")},N=()=>In(e,m,p,n,a,w,V,v),j=()=>{if(!P.value)r.value=\"\";else if(!e||typeof e==\"string\"){const o=N();Array.isArray(P.value)&&_?r.value=P.value.map(b=>pt(b,o,y==null?void 0:y.value)).join(\"; \"):r.value=pt(P.value,o,y==null?void 0:y.value,Y==null?void 0:Y.rangeSeparator,H)}else a?r.value=e(tn(P.value)):n?r.value=e(Yn(P.value)):r.value=e(P.value)},ne=()=>P.value?t?i?P.value.length>=1:P.value.length===2:!!P.value:!1,Z=o=>F?F===\"date\"||F===\"timestamp\"?new Date(o):F===\"format\"&&(typeof e==\"string\"||!e)?Zt(o,N(),new Date):Zt(o,F,new Date):new Date(o),X=o=>F?F===\"timestamp\"?+o:F===\"format\"&&(typeof e==\"string\"||!e)?pt(o,N(),y==null?void 0:y.value,Y==null?void 0:Y.rangeSeparator):pt(o,F,y==null?void 0:y.value,Y==null?void 0:Y.rangeSeparator):o,Q=o=>{z(\"update:modelValue\",o)},M=()=>[X(P.value[0]),P.value[1]?X(P.value[1]):null];return{parseExternalModelValue:h,formatInputValue:j,internalModelValue:P,inputValue:r,emitModelValue:()=>{if(n)Q(Yn(P.value));else if(a)Q(tn(P.value));else if(w)Q(P.value);else if(V)Q(me(P.value));else{if(P.value&&t&&i&&P.value.length===1&&P.value.push(null),E){let o;if(Array.isArray(P.value)){const b=u=>u&&_e(u);H?o=P.value[1]?P.value.map(b):_e(P.value[0]):o=P.value.map(b)}else o=_e(P.value);return Q(o)}Array.isArray(P.value)&&!_?Q(H?P.value[1]?M():X(P.value[0]):M()):Array.isArray(P.value)&&_?Q(P.value.map(o=>X(o))):Q(X(P.value))}j()},checkBeforeEmit:ne}},Jr=typeof window<\"u\"?window:void 0,hn=()=>{},Zr=e=>Ma()?(Sa(e),!0):!1,Qr=(e,a,n,t)=>{if(!e)return hn;let i=hn;const m=Dt(()=>s(e),p=>{i(),p&&(p.addEventListener(a,n,t),i=()=>{p.removeEventListener(a,n,t),i=hn})},{immediate:!0,flush:\"post\"}),v=()=>{m(),i()};return Zr(v),v},xr=(e,a,n,t={})=>{const{window:i=Jr,event:m=\"pointerdown\"}=t;return i?Qr(i,m,v=>{const p=he(e),y=he(a);!p||!y||p===v.target||v.composedPath().includes(p)||v.composedPath().includes(y)||n(v)},{passive:!0}):void 0},eo=Ve({__name:\"VueDatePicker\",props:J({},Hl),emits:[\"update:modelValue\",\"textSubmit\",\"closed\",\"cleared\",\"open\",\"focus\",\"blur\",\"internalModelChange\",\"recalculatePosition\",\"flow-step\",\"focus-prev\",\"updateMonthYear\"],setup(e,{expose:a,emit:n}){const t=e,i=Ot(),m=R(!1),v=qt(t,\"modelValue\"),p=R(null),y=R(null),_=R(null),E=R(null);dt(rn,t.autoApply);const w=O(()=>t.formatLocale);dt(Un,w),dt(Wn,qt(t,\"textInput\")),dt(qe,qt(t,\"arrowNavigation\")),Be(()=>{N(t.modelValue),t.inline||(window.addEventListener(\"scroll\",B),window.addEventListener(\"resize\",ke)),t.inline&&(m.value=!0)}),Xt(()=>{t.inline||(window.removeEventListener(\"scroll\",B),window.removeEventListener(\"resize\",ke))});const V=st(i,\"all\"),Y=st(i,\"input\");Dt(v,()=>{N(v.value)},{deep:!0});const{openOnTop:F,menuPosition:H,setMenuPosition:z,recalculatePosition:r,setInitialPosition:P}=Xr(t.position,t.altPosition,t.autoPosition,p,y,t.inline,n),{internalModelValue:C,inputValue:h,parseExternalModelValue:N,emitModelValue:j,checkBeforeEmit:ne,formatInputValue:Z}=qr(t.format,t.timePicker,t.monthPicker,t.range,t.partialRange,t.is24,t.enableTimePicker,t.enableSeconds,w,t.multiDates,t.utc,t.weekPicker,t.yearPicker,t.textInputOptions,t.modelType,t.modelAuto,n),{clearArrowNav:X}=Je(),{setMenuFocused:Q,setShiftKey:M}=cn(),o=O(()=>({dp__main:!0,dp__theme_dark:t.dark,dp__theme_light:!t.dark,dp__flex_display:t.inline,dp__flex_display_with_input:t.inlineWithInput})),b=O(()=>ta(t.format)?t.format:In(null,t.is24,t.enableSeconds,t.monthPicker,t.timePicker,t.weekPicker,t.yearPicker,t.enableTimePicker)),u=O(()=>t.previewFormat?t.previewFormat:ta(b.value)?b.value:t.format),$=O(()=>typeof t.transitions==\"boolean\"?t.transitions?Kn({}):!1:Kn(t.transitions));dt(Lt,$);const L=O(()=>t.dark?\"dp__theme_dark\":\"dp__theme_light\"),ae=O(()=>Object.assign(Yl(),t.textInputOptions)),I=O(()=>Kl(t.ariaLabels));dt(Xe,I);const se=O(()=>Fl(t.filters)),f=O(()=>{const c=re=>{const fe={hours:Ne(new Date),minutes:Ie(new Date),seconds:ze(new Date)};return Object.assign(fe,re)};return t.range?t.startTime&&Array.isArray(t.startTime)?[c(t.startTime[0]),c(t.startTime[1])]:null:t.startTime&&!Array.isArray(t.startTime)?c(t.startTime):null}),T=O(()=>t.multiCalendars===null?0:typeof t.multiCalendars==\"boolean\"?t.multiCalendars?2:0:+t.multiCalendars>=2?+t.multiCalendars:2),B=()=>{m.value&&(t.closeOnScroll?Pe():t.autoPosition?z():window.removeEventListener(\"scroll\",B))},ke=()=>{m.value&&z()},Fe=()=>{!t.disabled&&!t.readonly&&(P(),m.value=!0,$t().then(()=>{z(),m.value&&(n(\"open\"),n(\"focus\"))}),m.value||Ee(),N(t.modelValue))},Ze=()=>{h.value=\"\",Ee(),n(\"update:modelValue\",null),n(\"cleared\"),Pe()},Ke=()=>{const{validate:c}=Ln(t.minDate,t.maxDate,t.disabledDates,t.allowedDates,se.value,t.disabledWeekDays,t.yearRange),re=C.value;return!Array.isArray(re)&&c(re)?!0:Array.isArray(re)?re.length===2&&c(re[0])&&c(re[1])?!0:!!c(re[0]):!1},Oe=()=>{ne()&&Ke()&&(j(),Pe())},Qe=c=>{j(),t.closeOnAutoApply&&!c&&Pe()},vt=(c=!1)=>{t.autoApply&&(!t.enableTimePicker||t.monthPicker||t.yearPicker?!0:ln(C.value,t.maxTime,t.minTime))&&Ke()&&(t.range&&Array.isArray(C.value)?(t.partialRange||C.value.length===2)&&Qe(c):Qe(c))},Ee=()=>{C.value=null},Pe=()=>{t.inline||(m.value&&(m.value=!1,Q(!1),M(!1),X(),n(\"closed\"),n(\"blur\"),P(),h.value&&N(v.value)),Ee(),y.value&&y.value.unFocus(),et())},ft=(c,re)=>{if(!c){C.value=null;return}C.value=c,re&&(Oe(),n(\"textSubmit\"))},xe=()=>{t.autoApply&&ln(C.value,t.maxTime,t.minTime)&&j()},et=()=>{_.value&&_.value.focus({preventScroll:!0})},yt=()=>m.value?Pe():Fe();return xr(p,y,Pe),a({closeMenu:Pe,selectDate:Oe,clearValue:Ze,openMenu:Fe,onScroll:B,formatInputValue:Z}),(c,re)=>(g(),S(\"div\",{class:ce(s(o))},[U(\"span\",{tabindex:\"-1\",ref_key:\"focusRefBefore\",ref:E},null,512),je(zl,Se({ref_key:\"inputRef\",ref:y},{placeholder:c.placeholder,hideInputIcon:c.hideInputIcon,readonly:c.readonly,disabled:c.disabled,inputClassName:c.inputClassName,clearable:c.clearable,state:c.state,inline:c.inline,inlineWithInput:c.inlineWithInput,textInput:c.textInput,textInputOptions:s(ae),range:c.range,isMenuOpen:m.value,pattern:s(b),autoApply:c.autoApply,uid:c.uid,openMenuOnFocus:c.openMenuOnFocus,required:c.required,name:c.name,autocomplete:c.autocomplete},{\"input-value\":s(h),\"onUpdate:input-value\":re[0]||(re[0]=fe=>lt(h)?h.value=fe:null),onClear:Ze,onOpen:Fe,onSetInputDate:ft,onSetEmptyDate:s(j),onSelectDate:Oe,onToggle:yt,onClose:Pe,onFocusPrev:re[1]||(re[1]=fe=>c.$emit(\"focus-prev\"))}),Me({_:2},[ye(s(Y),(fe,ht)=>({name:fe,fn:te(tt=>[K(c.$slots,fe,Ge(at(tt)))])}))]),1040,[\"input-value\",\"onSetEmptyDate\"]),U(\"span\",{tabindex:\"-1\",ref_key:\"focusRef\",ref:_},null,512),m.value?(g(),le(Aa,{key:0,to:c.teleport,disabled:c.inline},[m.value?(g(),le(zr,Se({key:0,ref_key:\"dpMenuRef\",ref:p,class:s(L),style:s(H)},{weekNumbers:c.weekNumbers,weekStart:c.weekStart,disableMonthYearSelect:c.disableMonthYearSelect,menuClassName:c.menuClassName,calendarClassName:c.calendarClassName,yearRange:c.yearRange,range:c.range,multiCalendars:s(T),multiCalendarsSolo:c.multiCalendarsSolo,multiStatic:c.multiStatic,calendarCellClassName:c.calendarCellClassName,enableTimePicker:c.enableTimePicker,is24:c.is24,hoursIncrement:c.hoursIncrement,minutesIncrement:c.minutesIncrement,hoursGridIncrement:c.hoursGridIncrement,minutesGridIncrement:c.minutesGridIncrement,minDate:c.minDate,maxDate:c.maxDate,autoApply:c.autoApply,selectText:c.selectText,cancelText:c.cancelText,previewFormat:s(u),locale:c.locale,weekNumName:c.weekNumName,disabledDates:c.disabledDates,filters:s(se),minTime:c.minTime,maxTime:c.maxTime,inline:c.inline,openOnTop:s(F),monthPicker:c.monthPicker,timePicker:c.timePicker,monthNameFormat:c.monthNameFormat,startDate:c.startDate,startTime:s(f),monthYearComponent:c.monthYearComponent,timePickerComponent:c.timePickerComponent,actionRowComponent:c.actionRowComponent,customProps:c.customProps,hideOffsetDates:c.hideOffsetDates,autoRange:c.autoRange,noToday:c.noToday,noHoursOverlay:c.noHoursOverlay,noMinutesOverlay:c.noMinutesOverlay,disabledWeekDays:c.disabledWeekDays,allowedDates:c.allowedDates,showNowButton:c.showNowButton,nowButtonLabel:c.nowButtonLabel,monthChangeOnScroll:c.monthChangeOnScroll,markers:c.markers,uid:c.uid,modeHeight:c.modeHeight,enableSeconds:c.enableSeconds,secondsIncrement:c.secondsIncrement,secondsGridIncrement:c.secondsGridIncrement,noSecondsOverlay:c.noSecondsOverlay,escClose:c.escClose,spaceConfirm:c.spaceConfirm,monthChangeOnArrows:c.monthChangeOnArrows,textInput:c.textInput,disabled:c.disabled,readonly:c.readonly,multiDates:c.multiDates,presetRanges:c.presetRanges,flow:c.flow,preventMinMaxNavigation:c.preventMinMaxNavigation,minRange:c.minRange,maxRange:c.maxRange,fixedStart:c.fixedStart,fixedEnd:c.fixedEnd,multiDatesLimit:c.multiDatesLimit,reverseYears:c.reverseYears,keepActionRow:c.keepActionRow,weekPicker:c.weekPicker,noSwipe:c.noSwipe,vertical:c.vertical,arrowNavigation:c.arrowNavigation,yearPicker:c.yearPicker,disableTimeRangeValidation:c.disableTimeRangeValidation,dayNames:c.dayNames,modelAuto:c.modelAuto},{internalModelValue:s(C),\"onUpdate:internalModelValue\":re[2]||(re[2]=fe=>lt(C)?C.value=fe:null),onClosePicker:Pe,onSelectDate:Oe,onDpOpen:s(r),onAutoApply:vt,onTimeUpdate:xe,onFlowStep:re[3]||(re[3]=fe=>c.$emit(\"flow-step\",fe)),onUpdateMonthYear:re[4]||(re[4]=fe=>c.$emit(\"updateMonthYear\",fe))}),Me({_:2},[ye(s(V),(fe,ht)=>({name:fe,fn:te(tt=>[K(c.$slots,fe,Ge(at(J({},tt))))])}))]),1040,[\"class\",\"style\",\"internalModelValue\",\"onDpOpen\"])):D(\"\",!0)],8,[\"to\",\"disabled\"])):D(\"\",!0)],2))}});var gn=(()=>{const e=eo;return e.install=a=>{a.component(\"Vue3DatePicker\",e)},e})(),to=Object.freeze(Object.defineProperty({__proto__:null,default:gn},Symbol.toStringTag,{value:\"Module\"}));Object.entries(to).forEach(([e,a])=>{e!==\"default\"&&(gn[e]=a)});export{gn as default};\n","\n\n\n\n\n","import script from \"./FieldLabel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FieldLabel.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./FieldLabel.vue?vue&type=style&index=0&id=169ba40a&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./DateField.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DateField.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./DateField.vue?vue&type=style&index=0&id=8337f8ec&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./DropDownListField.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DropDownListField.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./DropDownListField.vue?vue&type=style&index=0&id=2d506dd3&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./MultiDropDownListField.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./MultiDropDownListField.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./MultiDropDownListField.vue?vue&type=style&index=0&id=ef596c00&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./MessageItem.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./MessageItem.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./MessageItem.vue?vue&type=style&index=0&id=4f0f8874&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ValidatorMessages.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ValidatorMessages.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ValidatorMessages.vue?vue&type=style&index=0&id=0d563218&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./FieldMessages.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FieldMessages.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./FieldMessages.vue?vue&type=style&index=0&id=339e4240&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./FormMessages.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FormMessages.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./FormMessages.vue?vue&type=style&index=0&id=c63fa36a&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./RadioButtonListField.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./RadioButtonListField.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./RadioButtonListField.vue?vue&type=style&index=0&id=55dd50b1&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./TextAreaField.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TextAreaField.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./TextAreaField.vue?vue&type=style&index=0&id=482c6daa&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./TextBoxField.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TextBoxField.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./TextBoxField.vue?vue&type=style&index=0&id=4690699f&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","// UrlBuilder\n// Manages URLs for search deep linking.\n\n// Exports ----\nconst queryName = {\n SEARCH_TYPE: 'type',\n PAGE_NO: 'pg',\n PER_PAGE: 'per-pg',\n FILTER_PREFIX: 'f-',\n FILTER_VALUE_DELIMITER: ';', // TODO: We will need to vet this for potentially have to escaping it in certain cases, such as a text search.\n SORT_ID: 'sid'\n};\n\nexport const QueryName = queryName;\n\n// Imports ----\nimport { isEmpty } from '../util';\n\n\nexport default class {\n pairs = {}; // Names and potentially empty values that we consider \"standard\". They may be kept out of the URL if they are their default values.\n defaults = {}; // Stores default values for the names defined in #pairs.\n extra = {}; // Extra names/values that were in the query but not relevant. Kept here so they can remain intact as part of the URL.\n\n constructor(prefix, delimiter) {\n this.prefix = prefix; // A prefix that, when a name starts with it, makes it a standard name to check\n this.delimiter = delimiter; // This determines, for values that might be comprised of individual values, what delimits those values\n }\n\n // addPair()\n // Adds a name/value pair that should be compared to the query. This represents a setting that is currently set, and we want to know if it's set to the same thing\n // in a supplied comparison query.\n addPair(name, value, defaultValue) {\n this.pairs[name] = this.#getStringValue(value);\n this.defaults[name] = this.#getStringValue(defaultValue);\n }\n\n // isSameAsQuery()\n // Returns whether the supplied Vue query object's query string differs from the pairs we've been given, which are presumed to be the important ones. We ignore any\n // name/value pairs in the supplied query that: a) don't exactly match one of the names in #pairs, and b) don't start with prefix.\n isSameAsQuery(query) {\n let isSame = true;\n\n // Go through each name in pairs added. The query MUST have these values, and they need to be the same, for it to be considered equivalent.\n const names = Object.keys(this.pairs);\n names.forEach((name) => {\n var value = this.pairs[name];\n var queryValue = this.#getStringValue(query[name]);\n\n // NOTE: At this point both value and queryValue have been normalized to an empty string if null, undefined, etc.\n\n // Do either of the values contain the delimiter? If so, compare them as arrays instead.\n if (queryValue.includes(this.delimiter) || value.includes(this.delimiter)) {\n // Compare as arrays\n if (!this.#areStringsAsArraysEqual(queryValue, value)) isSame = false;\n }\n else {\n // Compare directly as strings\n if (isEmpty(queryValue))\n queryValue = this.defaults[name];\n if (queryValue !== value) isSame = false;\n }\n });\n\n // Now go through other values in query that are either a standard name, or start with the prefix, and mark them as differences\n // For values that aren't a standard name (exact or prefix), retain their name and value\n const queryNames = Object.keys(query);\n queryNames.forEach((queryName) => {\n // If it's a name that exists in pairs, we've already done any comparison needed\n // If not, but it's a standard name (either added to #pairs or starting with prefix), it's not the same\n // If it's not an official name at all, we don't use it for comparison but will hold onto it.\n\n // Do we care about this value?\n if (this.#isStandardName(queryName)) {\n // If it exists in #pairs, we've already compared it. If it does not, set as a non-match.\n if (this.pairs[queryName] === undefined) isSame = false;\n }\n else {\n // This is an extra name/value that doesn't affect us. Hold onto it for building the URL and keeping it intact.\n this.extra[queryName] = query[queryName];\n }\n });\n return isSame;\n }\n\n // getQueryString()\n // Returns a query string based on the pairs that have been added. Typically called after a comparison, which will retain any extra, irrelevant\n // name/value pairs a query may have contained. However, that is not required.\n getQueryString() {\n let query = '';\n\n // Enumerate and add values in pairs that don't match their default value\n const names = Object.keys(this.pairs);\n names.forEach((name) => {\n const value = this.pairs[name];\n if (value !== this.defaults[name])\n query += `&${name}=${encodeURIComponent(value)}`;\n });\n\n // Add extra values that may have been picked up during a comparison\n const extraNames = Object.keys(this.extra);\n extraNames.forEach((name) => {\n query += `&${name}=${encodeURIComponent(this.extra[name])}`;\n });\n\n // Trim off leading \"&\" if any values were added\n if (query.length == 0)\n return '';\n else\n return query.substr(1);\n }\n\n // Returns a normalized string, or null if the value itself is not set.\n #getStringValue(value) {\n if (value === undefined || value === null)\n return '';\n else\n return String(value);\n }\n\n // Assumes that one or both string values contain the delimiter, and should be compared as arrays.\n // Returns true if they are considered equivalent.\n #areStringsAsArraysEqual(value1, value2) {\n const array1 = value1.split(this.delimiter);\n const array2 = value2.split(this.delimiter);\n\n if (array1.length != array2.length)\n return false;\n else {\n // The arrays are equal at least in length. Therefore we should be able to find any element in array1 in\n // array2, or they are considered non-equal.\n // NOTE: The key here is there is no restriction of the ordering of the values. The same values in different orders we still consider equivalent.\n // TODO: NOTE2: One or both arrays having duplicated values would render this method invalid. Perhaps a later error check to add.\n\n for (let i = 0; i < array1.length; i++) {\n if (array2.indexOf(array1[i]) === -1) return false;\n }\n\n return true;\n }\n }\n\n // Returns whether the specified name is a standard name; that is, either added to #pairs or starting with prefix.\n #isStandardName(name) {\n return (this.pairs[name] !== undefined || name.startsWith(queryName.FILTER_PREFIX));\n }\n}\n","\n// search.js\n// Services related to searches.\n\n// Imports ----\nimport useGlobalEvents from '../services/global-events';\nimport UrlBuilder, { QueryName } from './UrlBuilder';\nimport { reactive, unref } from 'vue';\nimport { v4 as uuidv4 } from 'uuid';\nimport { site } from './NucleusSite';\nimport { isNotEmpty, isDefined } from '../util';\n\nconst { emitGlobal, waitForEvent, onGlobal } = useGlobalEvents();\n\n// Constants ----\n\n// Base IDs of global events Note that we decorate these with the unique ID of the search, so they\n// are not intended to be used directly. Children should call on...() methods to provide handlers.\n// TODO: This export needs to be removed, as this is exported below, but keeping for now to not break anything.\nexport const eventIDs = {\n SEARCH_INITIALIZE: 'SEARCH_INITIALIZE', // Initialization prior to activation\n SEARCH_STARTING: 'SEARCH_STARTING', // The search call is starting\n SEARCH_RESULTS: 'SEARCH_RESULTS', // The search call has completed\n SEARCH_ERROR: 'SEARCH_ERROR', // An error occurred with the search call\n SEARCH_UPDATE: 'SEARCH_UPDATE', // If applicable, make your updates to the search\n SEARCH_PREP_DATA: 'SEARCH_PREP_DATA', // Allows modification of values for a filter before sending to API\n SEARCH_REFRESH_ALL: 'SEARCH_REFRESH_ALL', // Allows for refreshing of searches based on their ID\n SEARCH_FROM_URL: 'SEARCH_FROM_URL', // Called when search info is found and loaded from the URL\n SEARCH_INIT_FILTERS: 'SEARCH_INIT_FILTERS' // Called to allow filters to set initial values\n}\n\n// Exports ----\n\nexport const EventIDs = eventIDs;\n\n// Private Classes ----\n\n// Class to create new, initialized Search objects\nexport default class {\n // NOTE: Components should not attempt to change these values directly. Use the helper methods to avoid collisions.\n\n #id = uuidv4();\n #searchType = '';\n #modelType = '';\n #results = reactive({ // Represents the last result queried and associated settings.\n loaded: false, // Indicates whether results have been retrieved.\n rows: [], // The actual rows returned.\n filters: {}, // Filter values used in the last query.\n pageNumber: null, // The zero-based page number, if paging was requested.\n perPage: null, // The page size, if paging was requested.\n pageCount: 0, // Total number of pages\n count: 0, // Number of results returned. Essentially a shortcut for results.length.\n totalCount: null, // The total count of the query, irrespective of number returned, if requested.\n startIndex: null, // The one-based starting index, i.e. record number\n endIndex: null, // The one-based ending index, i.e. record number\n sortId: null, // The sort used in the last query.\n error: false, // Indicates whether an error occurred\n areaTotalCounts: [] // Array of Products and Orders total counts for each area\n });\n #filters = {}; // Map that uses filter ID as the property name, and an associated array of values.\n #paging = {\n // Zero-based page number. Null means no pagination should be applied: this represents the full data set. Default: return all results\n pageNumber: null,\n // The requested page size. Note that the actual count may be less than this on the last page. Default: no page size\n perPage: null,\n // Whether to calculate the total count, irrespective of paging. Default: false\n includeTotalCount: false,\n // Whether to include the page count. Default: false.\n includePageCount: false\n };\n #sortId = null;\n #canChange = true; // Used to prevent changes temporarily while a query is being assembled\n #debounceDelayMs = 500; // Delay, in ms, to wait to refresh as filter values are changing.\n #debounceId = null; // Non-null indicates a debounce is in progress\n #activated = false; // Indicates whether we're activated yet, and ready to make the first query.\n // Set to false until activate() is called.\n\n // Constructor\n constructor(searchType, modelType, sortId, perPage = null, debounceDelayMs = 500) {\n this.#searchType = searchType;\n this.#modelType = modelType;\n this.#sortId = sortId;\n this.#paging.perPage = perPage;\n if (perPage !== null) this.#paging.pageNumber = 0;\n this.#debounceDelayMs = debounceDelayMs;\n\n // Immediately set certain results values here to indicate initial settings\n this.#results.pageNumber = this.#paging.pageNumber;\n this.#results.perPage = this.#paging.perPage;\n this.#results.sortId = this.#sortId;\n\n this.defaultSortId = sortId;\n this.defaultPerPage = perPage;\n\n this.loadFromUrl = false;\n this.loadedFromUrl = false;\n }\n\n\n // *** BEGIN Getters & Setters *******************\n\n // id\n // Unique ID of this particular search.\n get id() {\n return this.#id;\n }\n\n // results\n // Contains information about the last results returned (i.e. the current results)\n get results() {\n return this.#results;\n }\n\n // searchType\n // Search type for this search.\n get searchType() {\n return this.#searchType;\n }\n\n // *** END Getters & Setters *******************\n\n\n // *** BEGIN Public Methods *******************\n\n\n /**\n * Subscribes to the SEARCH_INITIALIZE event specific to this particular search\n * @param {Function} func - Function to call upon initialization/activation\n */\n onInitialize(func) {\n onGlobal(this.#getEventId(eventIDs.SEARCH_INITIALIZE), func);\n }\n\n /**\n * Subscribes to the SEARCH_INIT_FILTERS event specific to this particular search. Intended to set initial filter\n * values when they are not supplied via the URL.\n * @param {Function} func - Function to call upon initialization/activation\n */\n onInitFilters(func) {\n onGlobal(this.#getEventId(eventIDs.SEARCH_INIT_FILTERS), func);\n }\n\n // onStarting()\n // Subscribes to the SEARCH_STARTING event specific to this particular search\n onStarting(func) {\n onGlobal(this.#getEventId(eventIDs.SEARCH_STARTING), func);\n }\n\n /**\n * Subscribes to the SEARCH_RESULTS event specific to this particular search\n * @param {Function} func - Function to call when results are obtained\n */\n onResults(func) {\n onGlobal(this.#getEventId(eventIDs.SEARCH_RESULTS), func);\n }\n\n /**\n * Subscribes to the SEARCH_PREP_DATA event specific to this particular search. Allows listeners\n * to modify the array of values actually sent to the API without modifying the filter values themselves.\n * @param {Function} func - Function to call (filterId, values) to prepare data\n */\n onPrepareFilterData(func) {\n onGlobal(this.#getEventId(eventIDs.SEARCH_PREP_DATA), func);\n }\n\n /**\n * Subscribes to the SEARCH_FROM_URL event specific to this particular search. Allows listeners\n * to act based on search parameters being found and loaded form the URL\n * @param {Function} func - Function to call when loaded from URL.\n */\n onLoadFromUrl(func) {\n console.log('[SEARCH] Called onLoadFromUrl');\n if (this.loadedFromUrl)\n func();\n else\n onGlobal(this.#getEventId(eventIDs.SEARCH_FROM_URL), func);\n }\n\n /**\n * Subscribes to the SEARCH_ERROR event specific to this particular search\n * @param {Function} func - Function to call when an error occurs\n */\n onError(func) {\n onGlobal(this.#getEventId(eventIDs.SEARCH_ERROR), func);\n }\n\n // getFilterValues()\n // Returns the values of the specified filter ID from the last results. Intended to be read-only.\n getFilterValues(filterId) {\n const results = this.#results;\n\n if (results.filters[filterId] !== undefined)\n return results.filters[filterId].values;\n else\n return [null];\n }\n\n // getFilterValue()\n // Returns the (presumably) single value of the specified filter.\n getFilterValue(filterId) {\n return this.getFilterValues(filterId)[0];\n }\n\n // getFilterValueByIndex()\n // Returns the (presumably) single value of the specified filter.\n getFilterValueByIndex(filterId, index) {\n var values = this.getFilterValues(filterId);\n\n if (index < values.length)\n return values[index];\n else\n return null;\n }\n\n // setFilterValue()\n // Sets the values for the provided filter ID, adding the filter ID if not already present\n async setFilterValue(filterId, value1, value2) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n await this.setFilterValueByIndex(filterId, value1, 0);\n\n if (isDefined(value2))\n await this.setFilterValueByIndex(filterId, value2, 1);\n }\n\n // setFilterValues()\n // Sets the values for the provided filter ID, adding the filter ID if not already present\n async setFilterValues(filterId, values) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n let currentValues = this.getFilterValues(filterId);\n\n //getFilterValues is returns array of null \n if (currentValues[0] === null) {\n currentValues = [];\n }\n\n let offset = currentValues.length;\n\n for (let i = 0; i < values.length; i++) {\n await this.setFilterValueByIndex(filterId, values[i], offset + i);\n }\n }\n\n // setFilterInitialValue()\n // Sets the value of the filter if it has not already been set elsewhere, such as from the URL.\n // Returns true if the initial value provided was set, false if it was ignored.\n async setFilterInitialValue(filterId, value1, value2) {\n if (this.#activated) {\n console.error('[SEARCH] Initial value cannot be set after activation');\n return;\n }\n\n if (!this.filterExists(filterId)) {\n //this.setFilterValue(filterId, value1, value2);\n this.#filters[filterId] = {\n filterId: filterId,\n values: [value1]\n };\n\n if (isNotEmpty(value2)) this.#filters[filterId].values.push(value2);\n\n return true;\n }\n else\n return false;\n }\n\n // setFilterValueByIndex()\n // For the given filter ID, sets the specific value number. If a lower-indexed value does not exist, it will\n // be set to null. If the supplied value is null, it will be set to that. If the supplied value is undefined,\n // no change will be made to the filter.\n async setFilterValueByIndex(filterId, value, index, setEmpty = false) {\n console.log(`[SEARCH] Setting Filter ${filterId}[${index}] to ${value}`);\n\n // If value is undefined, we don't make any change\n if ((value === undefined || value === null) && !setEmpty) return;\n\n filterId = unref(filterId);\n value = unref(value);\n\n // See if the filter exists, and create it if not\n if (this.filterExists(filterId)) {\n // Filter exists. If we're setting the same value as already exists, exit early.\n if (setEmpty) {\n // Empty the array\n this.#filters[filterId].values.length = 0;\n }\n else {\n if (this.getFilterValueByIndex(filterId, index) === value) return;\n }\n }\n else {\n // Filter doesn't exist yet, so create it\n this.#filters[filterId] = {\n filterId: filterId,\n values: []\n };\n }\n\n // Only modify the values array if we're not setting empty\n if (!setEmpty) {\n // If the array isn't long enough to support this index, go through any numbers less than index and set them to null\n let values = this.#filters[filterId].values;\n while (values.length < index + 1) values.push(null);\n\n values[index] = value;\n\n this.#filters[filterId].values = values;\n }\n\n // Don't immediately trigger a refresh until after a debounce period\n await this.debounceRefresh();\n }\n\n // setEmptyFilter()\n // Sets the values for the provided filter ID, accepting an array of values to use\n async setEmptyFilter(filterId) {\n await this.setFilterValueByIndex(filterId, null, null, true);\n }\n\n // Sets multiple filters in one call. Accepts an array of filter objects. Each filter object must have one of the following structures:\n // Option 1: { filterId: 'myid', value: 'value1' }\n // Option 2: { filterId: 'myid', values: [ 'value1', 'value2'... ] }\n async setFilters(filters) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n // Force array\n if (!Array.isArray(filters)) filters = [filters];\n\n // Enumerate through the array and build the new filters object\n const filterObj = {};\n for (let i = 0; i < filters.length; i++) {\n var filter = filters[i];\n\n // If option 1 was used, create array of values\n if ('value' in filter) {\n filter.values = [filter.value];\n delete filter.value;\n }\n\n filter.values = filter.values ?? [];\n\n filterObj[filter.filterId] = filter;\n }\n\n this.#filters = filterObj;\n\n // Force refresh immediately\n await this.refresh();\n }\n\n // filterExists()\n // Returns true if the specified filterId is currently defined\n filterExists(filterId) {\n return (this.#filters[filterId] !== undefined && this.#filters[filterId] !== null);\n }\n\n //filterValueExists()\n // Returns true if the specified filterId and value is currently defined\n filterValueExists(filterId, values) {\n if (this.#filters[filterId] !== undefined && this.#filters[filterId] !== null) {\n const selectedFilterValues = this.#filters[filterId].values;\n let exists = true;\n\n for (let value of values) {\n exists = exists && selectedFilterValues.includes(value);\n if (!exists) {\n return false;\n }\n }\n return exists;\n }\n return false;\n }\n\n // clearFilter()\n // Clears values for a specific filter and forces a refresh of results.\n async clearFilter(filterId) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n this.#filters[filterId] = null;\n\n // Force refresh immediately\n await this.refresh();\n }\n\n // clearFilters()\n // Clears all filters and forces a refresh of results.\n async clearFilters() {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n this.#filters = {};\n\n // Force refresh immediately\n await this.refresh();\n }\n\n // resetFilters()\n // Resets all filters to their initial values and forces a refresh of results.\n async resetFilters() {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n Object.entries(this.#filters).forEach(([key, value]) => {\n this.#filters[key] = {\n filterId: value.filterId,\n values: ['']\n };\n });\n\n // Force refresh immediately\n await this.refresh();\n\n }\n\n // removeFilter()\n // Completely removes a filter. Differs from clearFilter() for filters that do not require values.\n async removeFilter(filterId) {\n if (this.filterExists(filterId)) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n delete this.#filters[filterId];\n\n // Force refresh immediately\n await this.refresh();\n }\n }\n\n // removeFilterValues()\n // removes the values for the provided filter ID\n async removeFilterValues(filterId, values) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n let currentFilterValues = this.getFilterValues(filterId);\n \n if (currentFilterValues[0] === null) {\n return;\n }\n\n for (let i = 0; i < values.length; i++) {\n currentFilterValues = currentFilterValues.filter(value => value !== values[i]);\n }\n\n if (currentFilterValues.length > 0) {\n this.#filters[filterId] = {\n filterId: filterId,\n values: currentFilterValues\n };\n }\n\n else {\n this.removeFilter(filterId);\n }\n\n await this.debounceRefresh();\n }\n\n // setReturnAllResults()\n // If called, this will tell the search to return all results, rather than paging. Forces a refresh of results.\n async setReturnAllResults() {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n this.setPage(null);\n\n // Force refresh immediately\n await this.refresh();\n }\n\n // setPage()\n // Sets the zero-based current page (i.e. 0 is first page) and forces a refresh of results.\n async setPage(pageNumber) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n this.#paging.pageNumber = pageNumber;\n\n // Force refresh immediately\n await this.refresh();\n }\n\n // setResultsPerPage()\n // Sets the page size, also turning on paging if it is off. Forces a refresh of results.\n async setResultsPerPage(perPage) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n this.#paging.perPage = perPage;\n\n // If paging is off (pageNumber == null), turn it on set to page 0.\n if (this.#paging.pageNumber === null)\n this.#paging.pageNumber = 0;\n \n // Force refresh immediately\n await this.refresh();\n }\n\n // setIncludeTotalCount()\n // Sets whether to include the total count of records, irrespective of paging, in the results. Does NOT force a refresh automatically.\n async setIncludeTotalCount(enable) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n this.#paging.includeTotalCount = enable;\n\n // NOTE: Count will be included when the next search happens\n }\n\n // setIncludePageCount()\n // Sets whether to include the total count of pages, if paging is enabled, in the results. Does NOT force a refresh automatically.\n async setIncludePageCount(enable) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n this.#paging.includePageCount = enable;\n\n // NOTE: Count will be included when the next search happens\n }\n\n // setModelType()\n // Sets the model type to return and forces a refresh of the results.\n async setModelType(modelType) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n this.#modelType = modelType;\n\n // Force refresh immediately\n await this.refresh();\n }\n\n // setSortId()\n // Sets the sort ID to use and forces a refresh of the results.\n async setSortId(sortId) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n this.#sortId = sortId;\n\n // Force refresh immediately\n await this.refresh();\n }\n\n // sortFilter()\n // Sets the sort ID and reset the pageNumber to 0, forces a refresh of the results.\n async sortFilter(sortId) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n this.#sortId = sortId;\n this.#paging.pageNumber = 0;\n\n // Force refresh immediately\n await this.refresh();\n }\n\n // setPageSizeFilter()\n // Sets the page size and reset the pageNumber to 0. Also turning on paging if it is off. Forces a refresh of results.\n async setPageSizeFilter(perPage) {\n // If necessary, wait to make the update\n await this.#waitToChange();\n\n this.#paging.pageNumber = 0;\n this.#paging.perPage = perPage;\n \n // Force refresh immediately\n await this.refresh();\n }\n\n\n // activate()\n // Called to activate the search, performing an initial refresh and ensuring that additional changes now refresh automatically.\n async activate(route) {\n // If we're loading from the URL, attempt to do so. If the URL was found to contain relevant parameters, skip the normal\n // initialization flow.\n if (this.loadFromUrl) {\n console.log('[SEARCH] Calling load from URL');\n this.loadedFromUrl = await this.loadFromQuery(route.query);\n }\n\n // Call event to let all filters provide initial values, if we have not loaded from URL at this point\n if (!this.loadedFromUrl) {\n console.log('[SEARCH] Calling init filters');\n await emitGlobal(this.#getEventId(eventIDs.SEARCH_INIT_FILTERS), this);\n }\n\n // This event is now a general \"about to perform first search\" event, whether loaded from URL or not.\n // Filters should update the presentation, if necessary, as filter values have been set.\n await emitGlobal(this.#getEventId(eventIDs.SEARCH_INITIALIZE), this);\n\n this.#activated = true;\n await this.refresh();\n }\n\n // refresh()\n // Refreshes search based on the current setup of filters, paging, and sort.\n async refresh() {\n\n // If not activated, simply return immediately. Essentially means we're not ready to go yet.\n if (!this.#activated) return;\n\n // If a debounce is in progress, cancel it since we're refreshing now.\n this.#clearDebounce();\n\n // TODO: Need some way to turn off refreshes during initialization, so multiple things can be set without unwanted server trips.\n\n // Build the object to be sent with the API call. It is a snapshot of the filter, paging, and sort desired.\n const data = await this.#getQuery();\n\n console.log('[SEARCH] Data before SEARCH_STARTING', data);\n\n // Emit global starting event\n emitGlobal(this.#getEventId(eventIDs.SEARCH_STARTING), this);\n\n try {\n this.#results.loaded = false;\n let response;\n let url = '/api/search/' + this.#searchType + '/' + this.#modelType;\n\n console.log('[SEARCH] *** Making search API call ***');\n\n response = await site.api.post(url, data);\n\n if (response.succeeded) {\n\n // Update the results structure\n this.#results.rows = response.results;\n this.#results.filters = {};\n this.#results.pageNumber = data.paging.pageNumber === null ? null : data.paging.pageNumber;\n this.#results.perPage = data.paging.perPage;\n this.#results.count = response.results.length;\n this.#results.totalCount = response.totalCount;\n this.#results.pageCount = response.pageCount;\n this.#results.areaTotalCounts = response?.areaTotalCounts ?? null;\n\n // Calculate other numbers\n if (this.#results.pageNumber === null) {\n this.#results.startIndex = null;\n this.#results.endIndex = null;\n }\n else if (this.#results.pageCount < this.#results.pageNumber) {\n this.#paging.pageNumber = 0;\n this.#results.pageNumber = 0;\n this.#results.startIndex = this.#results.pageNumber * this.#results.perPage + 1;\n this.#results.endIndex = this.#results.startIndex + this.#results.count - 1;\n }\n else {\n this.#results.startIndex = this.#results.pageNumber * this.#results.perPage + 1;\n this.#results.endIndex = this.#results.startIndex + this.#results.count - 1;\n }\n\n this.#results.sortId = this.#sortId;\n\n // Copy filter values into results\n for (let i = 0; i < data.filterValues.length; i++) {\n const filter = data.filterValues[i];\n\n this.#results.filters[filter.filterId] = {\n filterId: filter.filterId,\n values: [...filter.values]\n };\n }\n\n this.#results.loaded = true;\n\n console.log('[SEARCH] RESULTS now', this.#results);\n emitGlobal(this.#getEventId(eventIDs.SEARCH_RESULTS), this);\n }\n else {\n site.handleApiError(response);\n throw response;\n }\n }\n catch (error) {\n // NOTE: We just indicate that the search failed. It's up to components to decide how to react.\n this.#results.error = true;\n emitGlobal(this.#getEventId(eventIDs.SEARCH_ERROR), this, error);\n }\n }\n\n // getQueryIfChanged()\n // Encodes this search as a query string that can be added to a URL, if it is different than what's in the supplied query.\n getQueryIfChanged(query) {\n const builder = this.#getUrlBuilder();\n\n // Now compare the built object to the query provided\n if (builder.isSameAsQuery(query))\n return null;\n else\n return builder.getQueryString();\n }\n\n // loadFromQuery()\n // Loads the search from a supplied object, usually a Vue Router route. Returns true if the string contained search information and was\n // successfully decoded; false otherwise.\n async loadFromQuery(query) {\n console.log('[SEARCH] loadFromQuery', query);\n\n // Cycle through properties of the query and look for standard names, and those that start with the filter name prefix.\n const names = Object.keys(query);\n let loadedFromUrl = false;\n\n names.forEach((name) => {\n switch (name.toLowerCase()) {\n // Page Number\n case QueryName.PAGE_NO:\n this.#paging.pageNumber = Number(query[QueryName.PAGE_NO]);\n //loadedFromUrl = this.#paging.pageNumber > 0;\n break;\n\n // Per page\n case QueryName.PER_PAGE:\n this.#paging.perPage = Number(query[QueryName.PER_PAGE]);\n //loadedFromUrl = true;\n break;\n\n // Sort ID\n case QueryName.SORT_ID:\n this.#sortId = query[QueryName.SORT_ID];\n //loadedFromUrl = true;\n break;\n\n default:\n if (name.startsWith(QueryName.FILTER_PREFIX)) {\n // Parse the value into an array\n const values = query[name].split(QueryName.FILTER_VALUE_DELIMITER);\n\n name = name.substr(QueryName.FILTER_PREFIX.length);\n\n const filter = {\n filterId: name,\n values: values\n };\n\n this.#filters[name] = filter;\n loadedFromUrl = true;\n }\n break;\n }\n });\n\n // Allow listeners, if any, to act based on this search being loaded from a query.\n if (loadedFromUrl) {\n console.log('[SEARCH] Determined query has info needed to load');\n console.log('[SEARCH] Triggering calls registered via onLoadFromUrl()');\n\n // Accessing filters is normally based on the last queried results. In this case, we want\n // to provide the filter values we got from the URL, so any listeners can update their own state.\n // Since filters is private, we need to make a copy.\n const filters = Object.assign({}, this.#filters);\n await emitGlobal(this.#getEventId(eventIDs.SEARCH_FROM_URL), this, filters);\n }\n\n return loadedFromUrl;\n }\n\n // *** END Public Methods *******************\n\n\n // *** BEGIN Private Methods *******************\n\n // Allows an update to the search to pause until a snapshot is grabbed for a query\n async #waitToChange() {\n if (!this.#canChange) {\n await waitForEvent(this.#getEventId(eventIDs.SEARCH_STARTING));\n }\n }\n\n // Calculates an event ID specific to this search\n #getEventId(eventId) {\n return eventId + '-' + this.#id;\n }\n\n // Pauses changes and takes a snapshot of the current filter, paging, and sort values to send with a query.\n async #getQuery() {\n this.#canChange = false;\n\n const query = {\n filterValues: [],\n paging: {},\n sortId: this.#sortId\n };\n\n // Enumerate properties of this.#filters and add object copies to query\n const filterIds = Object.keys(this.#filters);\n filterIds.forEach(async (id) => {\n var values = [...this.#filters[id].values];\n\n // Allow listeners, if any, to modify the list of values before adding to API call\n await emitGlobal(this.#getEventId(eventIDs.SEARCH_PREP_DATA), id, values);\n\n query.filterValues.push({ filterId: id, values: values });\n });\n\n // Create object copy of paging\n Object.assign(query.paging, this.#paging);\n\n // If the filter changed, request new counts\n const filterJson = JSON.stringify(this.#filters); // TODO: Hash this?\n\n let filterChanged = (filterJson !== this.lastFilters);\n if (filterChanged) {\n query.paging.includeTotalCount = true;\n }\n\n // TODO: Right now, setting include page count because it needs to be retained. It might be getting\n // reset upon a new search\n query.paging.includePageCount = true;\n\n\n this.#canChange = true;\n\n return query;\n }\n\n // Called to debounce a search refresh. This is a rolling delay that will finally trigger after #debounceDelayMs has passed without a change.\n // NOTE: Changes to the filters are immediate...this simply waits to refresh. An explicit call to refresh() will safely override this.\n async debounceRefresh() {\n // If we're not yet activated, abandon the debounce completely\n if (!this.#activated) {\n console.log('[SEARCH] Abandoning debounce');\n return;\n }\n\n console.log('[SEARCH] Activated and awaiting debounce');\n\n // Reset debounce if present\n this.#clearDebounce();\n\n // Start new timeout with full delay set\n this.#debounceId = setTimeout(async () => {\n console.log('[SEARCH] Debounced. Refreshing results now.');\n this.#debounceId = null;\n await this.refresh();\n }, this.#debounceDelayMs);\n }\n\n // Clears the current debounce, if any.\n #clearDebounce() {\n if (this.#debounceId !== null) {\n clearTimeout(this.#debounceId);\n this.#debounceId = null;\n }\n }\n\n // Builds a URL building object that is also capable of comparing from a Vue query object.\n #getUrlBuilder() {\n const results = this.#results;\n\n const builder = new UrlBuilder(QueryName.FILTER_PREFIX, QueryName.FILTER_VALUE_DELIMITER);\n\n // Add standard query names to compare\n builder.addPair(QueryName.PAGE_NO, results.pageNumber, '0');\n builder.addPair(QueryName.PER_PAGE, results.perPage, this.defaultPerPage);\n builder.addPair(QueryName.SORT_ID, results.sortId, this.defaultSortId);\n\n // Add each filter, being sure to add the filter ID prefix for comparison\n const names = Object.keys(results.filters);\n names.forEach((name) => {\n //builder.addPair(QueryName.FILTER_PREFIX + name, results.filters[name].values.join(QueryName.FILTER_VALUE_DELIMITER), null);\n\n // If all values in a given filter are empty, the value should be an empty string.\n let value;\n if (this.#allValuesEmpty(results.filters[name]))\n value = '';\n else\n value = results.filters[name].values.join(QueryName.FILTER_VALUE_DELIMITER);\n // END UPDATE\n\n builder.addPair(QueryName.FILTER_PREFIX + name, value, null);\n });\n\n return builder;\n }\n\n // Returns whether all values in the given filter are empty, null, etc.\n #allValuesEmpty(filter) {\n for (let i = 0; i < filter.values.length; i++) {\n if (isNotEmpty(filter.values[i])) return false;\n }\n return true;\n }\n\n // *** END Private Methods *******************\n}\n","\n\n\n\n\n\n","import script from \"./SearchContainer.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./SearchContainer.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./AddFilterCheckBox.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./AddFilterCheckBox.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./AddFilterCheckBox.vue?vue&type=style&index=0&id=f72209dc&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./DateRangeFilter.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DateRangeFilter.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./DateRangeFilter.vue?vue&type=style&index=0&id=4e6c3f1b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./DropDownListFilter.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./DropDownListFilter.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./DropDownListFilter.vue?vue&type=style&index=0&id=5a111d6e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./LetterPickFilter.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./LetterPickFilter.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./LetterPickFilter.vue?vue&type=style&index=0&id=3f968383&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./TextBoxFilter.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TextBoxFilter.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./MultiSelectDropDownFilter.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./MultiSelectDropDownFilter.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./MultiSelectDropDownFilter.vue?vue&type=style&index=0&id=8742f1e8&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./MockSearchGrid.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./MockSearchGrid.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./MockSearchGrid.vue?vue&type=style&index=0&id=0183016c&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./PageSelector.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./PageSelector.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./PageSelector.vue?vue&type=style&index=0&id=441bb81f&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./PageSizeList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./PageSizeList.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./PageSizeList.vue?vue&type=style&index=0&id=ceea4614&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ResultCountRangePanel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ResultCountRangePanel.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ResultCountRangePanel.vue?vue&type=style&index=0&id=6a3a4c55&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./SearchGrid.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./SearchGrid.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./SearchGrid.vue?vue&type=style&index=0&id=6a8a0968&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./SearchResults.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./SearchResults.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./SearchResults.vue?vue&type=style&index=0&id=68ad8dc7&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n\n","import script from \"./SearchTable.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./SearchTable.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./SearchTable.vue?vue&type=style&index=0&id=147c3943&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./SortOptionsList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./SortOptionsList.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./SortOptionsList.vue?vue&type=style&index=0&id=7e20d219&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ViewModeSelector.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ViewModeSelector.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ViewModeSelector.vue?vue&type=style&index=0&id=00d68ddc&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ActionButton.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ActionButton.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ActionButton.vue?vue&type=style&index=0&id=5c89026b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./AddressBlock.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./AddressBlock.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./AddressBlock.vue?vue&type=style&index=0&id=689951ba&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ApiMessageItem.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ApiMessageItem.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ApiMessageItem.vue?vue&type=style&index=0&id=1608650e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./BodyPanel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./BodyPanel.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./BodyPanel.vue?vue&type=style&index=0&id=165ba6ab&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ButtonBar.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ButtonBar.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ButtonBar.vue?vue&type=style&index=0&id=536fe220&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./LinkItem.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./LinkItem.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./LinkItem.vue?vue&type=style&index=0&id=14603bba&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./MessageList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./MessageList.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./MessageList.vue?vue&type=style&index=0&id=2178d90e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./PageButton.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./PageButton.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./PageButton.vue?vue&type=style&index=0&id=5ca4b00d&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import script from \"./ShowOnlyForRoles.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ShowOnlyForRoles.vue?vue&type=script&setup=true&lang=js\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./SidePanel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./SidePanel.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./SidePanel.vue?vue&type=style&index=0&id=59e23d93&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./SizeDisplay.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./SizeDisplay.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./SizeDisplay.vue?vue&type=style&index=0&id=fd8305b6&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./StartupPanel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./StartupPanel.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./StartupPanel.vue?vue&type=style&index=0&id=a79d3074&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./SubPageButton.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./SubPageButton.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./SubPageButton.vue?vue&type=style&index=0&id=0989d7cf&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./TabBar.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TabBar.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./TabBar.vue?vue&type=style&index=0&id=015ed380&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./TileSelectButton.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TileSelectButton.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./TileSelectButton.vue?vue&type=style&index=0&id=164ea401&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./TileMultiSelectButton.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TileMultiSelectButton.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./TileMultiSelectButton.vue?vue&type=style&index=0&id=a2f10554&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./Pagination.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Pagination.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=546face4&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./TableSingleCell.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TableSingleCell.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./TableSingleCell.vue?vue&type=style&index=0&id=1459f87f&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./GeneralTableWrapper.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./GeneralTableWrapper.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./GeneralTableWrapper.vue?vue&type=style&index=0&id=8b81299c&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./TreePath.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TreePath.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./TreePath.vue?vue&type=style&index=0&id=46448215&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./TreeSelect.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TreeSelect.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./TreeSelect.vue?vue&type=style&index=0&id=3a9b9942&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n// api-core.js\n// Common layer for making calls to API endpoints on the site with universal error handling.\n//\n// Options Object ----\n// When making calls, an options object with the following properties can be supplied:\n// raw (Default: false) If true, the full response object will be returned upon success, not just the data.\n// quiet (Default: false) If true, global events will be not be emitted while the call is made.\n// trace (Default: false) If true, tracing will be emitted for this call\n// rawError (Default: false) If true, the raw Axios error object will be thrown directly, rather than the simplified error.\n// successEventId (Default: null) If set, this global event ID will be emitted with successArg as the argument.\n// NOTE: If supplied, this event is raised regardless of the 'quiet' option\n// successEventArg (Default: null) If successEventId is set, this will be sent with the global event.\n// NOTE: A 'response' property will be added to this object. The type of object depends on the 'raw' setting.\n// isExternalUrl (Default: false) If true, the supplied URL is not relative to the API and should not be modified.\n// authenticate (Default: false) If true, the API call needs a user. If called prior to the app initializing, it may be held briefly while the current user is determined.\n// Note that calling functions like GETforUser instead of the generic GET will set this option for you.\n// overrideWait (Default: false) A special case option that will immediately make a call that would otherwise wait for the app to initialize.\n// waitForAppInit (Default: true) Indicates whether the call should wait for the app to initialize. This only affects calls not requiring authentication.\n//\n// Error Object ----\n// Simplified error object returned by default (options.rawError == false) when a non-200 HTTP response is returned.\n// verb Verb of the request, e.g. \"GET\"\n// url Url of the request\n// status HTTP status code, e.g. 404\n// statusText HTTP status text, e.g. \"File Not Found\"\n// message Message text, e.g. \"The request failed with status code 404\"\n//\n// Tracing API Calls ----\n// All API calls will be traced if the environment variable VUE_APP_TRACE_API is set to \"true\"\n// Otherwise, only API calls that have the options.trace setting is set to \"true\" will be traced\n//\n// FUTURE TODO\n// - Add caching functionality, potentially with a refresh option\n// - Support canceling requests via AbortController (see Axios docs)\n// - Implement retry functionality (number of retries, ms to wait)\n\n\n// Imports\nimport axios from 'axios';\nimport qs from 'qs';\nimport useGlobalEvents from './global-events';\nimport { site } from '../classes/NucleusSite';\nimport { isNotEmpty } from '../util';\n\nconst { emitGlobal, waitForEvent } = useGlobalEvents();\n\n// Constants\n\n// (EventIDs) IDs of global events emitted at specific points\nconst eventIDs = {\n API_CALL_START: 'API_CALL_START', // API call is being made\n API_CALL_ERROR: 'API_CALL_ERROR', // A non-200 response was received, no response was received, call failed completely\n API_CALL_SUCCESS: 'API_CALL_SUCCESS', // API call succeeded with 200 HTTP status code\n API_CALL_COMPLETE: 'API_CALL_COMPLETE' // API call ended, either successful or not\n}\n\n// (ErrorIDs) Replaces \"status\" in the simplified error object in special cases\nconst errorIDs = {\n ERROR_NO_RESPONSE: -1, // No response was given\n ERROR_REQUEST_FAILED: -2 // The request failed\n}\n\n// Exports\nexport const EventIDs = eventIDs;\nexport const ErrorIDs = errorIDs;\n\n// Default Export\nexport default function () {\n\n // Constants for tracing\n const traceActions = {\n START: 'START',\n ERROR: 'ERROR',\n SUCCESS: 'SUCCESS',\n COMPLETE: 'COMPLETE'\n };\n\n // Get the base API URL from environment variable\n const BASE_API_URL = process.env.VUE_APP_BASE_API_URL;\n\n // Create the axios instance\n const http = axios.create({ baseURL: BASE_API_URL });\n\n // Default options for API calls\n const defaultOptions = {\n raw: false,\n quiet: false,\n rawError: false,\n trace: false,\n successEventId: null,\n successEventArg: null,\n isExternalUrl: false,\n authenticate: false,\n overrideWait: false,\n waitForAppInit: true\n };\n\n // *** BEGIN Public Interface ********************\n // NOTE: HTTP verbs are capitalized to get around reserved word \"delete\"\n\n // Performs a GET and returns the promise\n async function GET(url, options) {\n // Supply defaults for options object\n options = Object.assign(defaultOptions, options, { verb: 'GET', url: url, data: null });\n\n const apiOptions = {};\n if (!await prepareCall(apiOptions, options)) return getPrepareError(options)\n\n // Execute call and return the promise\n return executeApiCall(\n async () => await http.get(`${getFullUrl(url, options)}`, apiOptions), options);\n }\n\n // Variant of GET that indicates a current user is needed\n async function GETforUser(url, options) {\n // Add authenticate = true to incoming options object, if supplied.\n options = Object.assign({}, options, { authenticate: true });\n return GET(url, options);\n }\n\n // Performs a POST and returns the promise\n async function POST(url, data, options) {\n // Supply defaults for options object\n options = Object.assign(defaultOptions, options, { verb: 'POST', url: url, data: data }); \n\n const apiOptions = {};\n if (!await prepareCall(apiOptions, options)) return getPrepareError(options)\n\n // Execute call and return the promise\n return executeApiCall(\n async () => await http.post(`${getFullUrl(url, options)}`, data, apiOptions), options);\n }\n\n async function POSTFormUrlEncoded(url, data, options, token) {\n\n const headers = {\n headers: {\n 'content-type': 'application/x-www-form-urlencoded'\n }\n }\n\n // Add a Bearer Token if it is passed \n if (isNotEmpty(token))\n headers.headers.Authorization = `Bearer ${token}`;\n\n const requestData = qs.stringify(data);\n\n options = Object.assign(defaultOptions, options, { verb: 'POST', url: url, data: requestData });\n\n // TODO: this doesnt appear to work bypassing apiOptions for headers variable in post\n const apiOptions = { headers };\n if (!await prepareCall(apiOptions, options)) return getPrepareError(options);\n\n return executeApiCall(\n async () => await http.post(`${getFullUrl(url, options)}`, requestData, headers), options);\n }\n\n // Variant of POST that indicates a current user is needed\n async function POSTforUser(url, data, options) {\n // Add authenticate = true to incoming options object, if supplied.\n options = Object.assign({}, options, { authenticate: true });\n return POST(url, data, options);\n }\n\n // Performs a PUT and returns the promise\n async function PUT(url, data, options) {\n // Supply defaults for options object\n options = Object.assign(defaultOptions, options, { verb: 'PUT', url: url, data: data });\n\n const apiOptions = {};\n if (!await prepareCall(apiOptions, options)) return getPrepareError(options)\n\n // Execute call and return the promise\n return executeApiCall(\n async () => await http.put(`${getFullUrl(url, options)}`, data, apiOptions), options);\n }\n\n // Variant of PUT that indicates a current user is needed\n async function PUTforUser(url, data, options) {\n // Add authenticate = true to incoming options object, if supplied.\n options = Object.assign({}, options, { authenticate: true });\n return PUT(url, data, options);\n }\n\n // Performs a DELETE and returns the promise\n async function DELETE(url, options) {\n // Supply defaults for options object\n options = Object.assign(defaultOptions, options, { verb: 'DELETE', url: url, data: null });\n\n const apiOptions = {};\n if (!await prepareCall(apiOptions, options)) return getPrepareError(options)\n\n // Execute call and return the promise\n return executeApiCall(\n async () => await http.delete(`${getFullUrl(url, options)}`, apiOptions), options);\n }\n\n // Variant of DELETE that indicates a current user is needed\n async function DELETEforUser(url, options) {\n // Add authenticate = true to incoming options object, if supplied.\n options = Object.assign({}, options, { authenticate: true });\n return DELETE(url, options);\n }\n\n // *** END Public Interface **********************\n\n\n // *** BEGIN Private Functions *******************\n\n // Gets the full URL from the provided relative URL for making calls to the site backend API\n function getFullUrl(url, options) {\n // If an external URL, simply return the url as-is\n if (options.isExternalUrl)\n return url;\n else\n // Build a full URL based on the base URL\n return getBaseUrl() + getRelativeUrl(url);\n }\n\n // Gets the base URL for making calls to the site backend API. Normalized to not end with a slash.\n function getBaseUrl() {\n\n let url = process.env.VUE_APP_BASE_API_URL;\n\n if (url.endsWith('/'))\n url = url.substr(0, url.length - 1);\n\n return url;\n }\n\n // Normalizes a relative URL to start with a slash.\n function getRelativeUrl(url) {\n // Ensure that the URL starts with a slash\n if (url.startsWith('/'))\n return url;\n else\n return '/' + url;\n }\n\n // Prepares an API call prior to executing\n async function prepareCall(apiOptions, options) {\n // Look for calls that require a current user, but the app hasn't initialized yet. In that case, wait first for initialization.\n if (!await readyToRun(options)) return false;\n\n // Allow the authentication layer to update the call if needed\n var headers = await site.authenticator.getApiHeaders();\n\n if (headers !== null) apiOptions.headers = headers;\n \n return true;\n }\n\n // Returns an error object when preparing the API call fails\n function getPrepareError(options) {\n return {\n verb: options.verb,\n url: options.url,\n status: 500,\n statusText: 'Preparation Error',\n message: 'Preparing the API call failed'\n };\n }\n\n // Makes the supplied call (get, post, put, delete) and provides common error handling options.\n async function executeApiCall(apiCall, options) {\n let response;\n\n // Global event for starting the call\n emitStatus(traceActions.START, eventIDs.API_CALL_START, options.data, options);\n\n try {\n // Make the call\n response = await apiCall();\n\n // Handle a successful API call\n handleApiCallSuccess(response, options);\n\n return getResponse(response, options);\n }\n catch (e) {\n throw handleApiCallError(e, options);\n }\n finally {\n emitStatus(traceActions.COMPLETE, eventIDs.API_CALL_COMPLETE, options.data, options);\n }\n\n }\n\n // Looks for calls that need to wait for the app to initialize, particularly to have a current user. Returns false if the call cannot be run at all.\n async function readyToRun(options) {\n if ((options.authenticate || options.waitForAppInit) && !site.isInitialized) {\n // Wait until app is initialized UNLESS the overrideWait option is set\n if (options.overrideWait)\n return true;\n else {\n await waitForEvent(site.EventIDs.APP_INITIALIZED);\n\n console.log('[API] Wait is over for APP_INITIALIZED');\n\n // If we still don't have a current user, log error and return false\n if (site.user.isAuthenticated === false && options.authenticate) {\n console.error('[API] Waited for initialization to make API call, but still no current user.')\n return false;\n }\n else\n return true;\n }\n }\n else\n return true;\n }\n\n // Handles a successful API call, e.g. 200 returned\n function handleApiCallSuccess(response, options) {\n const emitResponse = getResponse(response, options);\n\n // Emit global event for successfully completed call\n emitStatus(traceActions.SUCCESS, eventIDs.API_CALL_SUCCESS, emitResponse, options);\n\n // If a custom event ID was supplied, emit it as well\n if (options.successEventId) {\n // Set up args to emit with event\n const arg = options.successEventArg ?? {};\n\n arg.response = emitResponse;\n\n // Emit the custom event\n emitGlobal(options.successEventId, arg, options);\n }\n }\n\n // Standard handling of an error/exception. Can be turned off by setting options.handleError to false.\n function handleApiCallError(e, options) {\n // Build a simplified, common error object. Returned if options.rawError = false\n // status HTTP status code\n // statusText HTTP status text\n // message Message indicating the error\n\n let error = {\n verb: options.verb,\n url: options.url,\n status: e.response.status,\n statusText: e.response.statusText,\n message: e.message,\n data: e.response.data,\n };\n\n // Figure out what we'll be emitting based on options\n const emitError = (options.rawError ? e : error);\n\n // If enabled, emit a global event indicating an error occurred.\n if (doEmitEvent(options)) {\n // Emit global API_CALL_ERROR event\n emitGlobal(eventIDs.API_CALL_ERROR, emitError, options);\n }\n\n // Trace the error\n trace(traceActions.ERROR, emitError, options);\n\n return emitError;\n }\n\n // Emits status via a global event and/or trace depending on options\n function emitStatus(action, eventId, args, options) {\n\n // Trace if enabled\n trace(action, args, options);\n\n // Emit the event if enabled\n if (doEmitEvent(options)) {\n // Emit the event\n emitGlobal(eventId, args, options);\n }\n }\n\n // Returns either the full response or just its data based on options\n function getResponse(response, options) {\n if (options.raw)\n return response;\n else\n return response.data;\n }\n\n // Called to trace API activity, if tracing is turned on\n function trace(action, args, options) {\n if (doTraceApi(options)) {\n console.log(`[API-${options.verb}-${action}] ${options.url}`, args, options);\n }\n }\n\n // Returns whether global events should be emitted\n function doEmitEvent(options) {\n return !options.quiet;\n }\n\n // Returns whether API tracing is enabled\n function doTraceApi(options) {\n return (process.env.VUE_APP_TRACE_API === 'true' || options.trace == true);\n }\n\n\n // *** END Private Functions *******************\n\n\n // Export public interface\n return {\n BASE_API_URL,\n GET,\n GETforUser,\n POST,\n POSTFormUrlEncoded,\n POSTforUser,\n PUT,\n PUTforUser,\n DELETE,\n DELETEforUser\n }\n}","\n// Api\n// Allows a unified means of calling the API.\n\n// Imports ----\nimport useApi from '../services/api';\n\nconst { GET, GETforUser, POST, POSTforUser, PUT, PUTforUser, DELETE, DELETEforUser } = useApi();\n\nexport default class {\n\n // Constructor\n constructor(site) {\n this.site = site;\n }\n\n /**\n * Performs a GET\n */\n async get(url, options) {\n if (this.site.user.isAuthenticated)\n return await this.#call(GETforUser, url, options);\n else\n return await this.#call(GET, url, options);\n }\n\n /**\n * Performs a POST\n */\n async post(url, data, options) {\n if (this.site.user.isAuthenticated)\n return await this.#call(POSTforUser, url, data, options);\n else\n return await this.#call(POST, url, data, options);\n }\n\n /**\n * Performs a PUT\n */\n async put(url, data, options) {\n if (this.site.user.isAuthenticated)\n return await this.#call(PUTforUser, url, data, options);\n else\n return await this.#call(PUT, url, data, options);\n }\n\n /**\n * Performs a DELETE\n */\n async delete(url, options) {\n if (this.site.user.isAuthenticated)\n return await this.#call(DELETEforUser, url, options);\n else\n return await this.#call(DELETE, url, options);\n }\n\n /**\n * Handles an error making an API call that is add the tranpsort level, such as a connection issue\n * or HTTP status other than 200.\n */\n handleError(response) {\n console.log('ERROR', response);\n const message = response?.data?.messages?.[0];\n const userMessage = message?.userMessage;\n const debugMessage = message?.debugMessage;\n console.debug('DEBUG', debugMessage);\n \n // handle backend error report for xss injection here\n const isScriptInjectionError = message?.messageId?.id === \"DD.Nucleus.Base.Validation.ScriptTagDetected\";\n if (isScriptInjectionError) {\n this.site.toast.error(userMessage || \"402: unwanted html tags detected in the request, please check your submission and try again\");\n }\n }\n\n\n async #call(func, ...params) {\n try {\n const response = await func(...params);\n\n return response;\n }\n catch (e) {\n this.handleError(e);\n return e;\n }\n }\n}","var e=Object.defineProperty,t=Object.defineProperties,o=Object.getOwnPropertyDescriptors,n=Object.getOwnPropertySymbols,s=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,r=(t,o,n)=>o in t?e(t,o,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[o]=n,l=(e,t)=>{for(var o in t||(t={}))s.call(t,o)&&r(e,o,t[o]);if(n)for(var o of n(t))i.call(t,o)&&r(e,o,t[o]);return e},a=(e,n)=>t(e,o(n));import{ref as u,onMounted as p,onUnmounted as c,computed as h,createVNode as d,defineComponent as v,openBlock as m,createBlock as f,watchEffect as g,resolveComponent as _,Transition as w,withCtx as y,createCommentVNode as b,toDisplayString as I,renderSlot as T,render as x}from\"vue\";const C={type:\"default\",timeout:5e3,showCloseButton:!0,position:\"top-right\",transition:\"bounce\",hideProgressBar:!1,swipeClose:!0};var M,E;(E=M||(M={}))[E.TITLE_ONLY=0]=\"TITLE_ONLY\",E[E.TITLE_DESCRIPTION=1]=\"TITLE_DESCRIPTION\",E[E.COMPONENT=2]=\"COMPONENT\",E[E.VNODE=3]=\"VNODE\";const z={\"top-left\":{bounce:\"mosha__bounceInLeft\",zoom:\"mosha__zoomIn\",slide:\"mosha__slideInLeft\"},\"top-right\":{bounce:\"mosha__bounceInRight\",zoom:\"mosha__zoomIn\",slide:\"mosha__slideInRight\"},\"top-center\":{bounce:\"mosha__bounceInDown\",zoom:\"mosha__zoomIn\",slide:\"mosha__slideInDown\"},\"bottom-center\":{bounce:\"mosha__bounceInUp\",zoom:\"mosha__zoomIn\",slide:\"mosha__slideInUp\"},\"bottom-right\":{bounce:\"mosha__bounceInRight\",zoom:\"mosha__zoomIn\",slide:\"mosha__slideInRight\"},\"bottom-left\":{bounce:\"mosha__bounceInLeft\",zoom:\"mosha__zoomIn\",slide:\"mosha__slideInLeft\"}},S=(e,t)=>d(e,t),L=(e,t=300)=>{let o;return(...n)=>{o&&(clearTimeout(o),o=void 0),o=setTimeout((()=>e(...n)),t)}},O=(e,t,o)=>{const n=u(),s=u(void 0),i=u(),r=e=>e instanceof MouseEvent,p=u=>{!1!==o&&n.value&&(r(u)?s.value=n.value.clientX-u.clientX:s.value=n.value.touches[0].clientX-u.touches[0].clientX,i.value=a(l({},i.value),{transition:\"none\"}),e.endsWith(\"left\")?i.value.left=-s.value+\"px !important\":e.endsWith(\"right\")?i.value.right=`${s.value}px !important`:s.value>0?i.value.left=-s.value+\"px !important\":i.value.right=`${s.value}px !important`,Math.abs(s.value)>200&&t())},h=e=>{!1!==o&&(n.value&&(n.value=void 0),s.value&&(s.value=void 0),removeEventListener(e,p))};return c((()=>{!1!==o&&(h(\"mousemove\"),h(\"touchmove\"))})),{swipedDiff:s,swipeStart:n,swipeStyle:i,swipeHandler:p,startSwipeHandler:t=>{if(!1===o)return;n.value=t;const a=r(t)?\"mousemove\":\"touchmove\",u=r(t)?\"mouseup\":\"touchend\";addEventListener(a,p),addEventListener(u,(()=>(t=>{const o={transition:\"left .3s ease-out\",left:0},r={transition:\"right .3s ease-out\",right:0},a={transition:\"all .3s ease-out\",left:0,right:0};e.endsWith(\"left\")?i.value=l(l({},i.value),o):e.endsWith(\"right\")?i.value=l(l({},i.value),r):i.value=l(l({},i.value),a),n.value=void 0,s.value=void 0,removeEventListener(t,p)})(a)))},cleanUpMove:h}};var N=v({props:{type:{type:String,default:\"default\"}}});const B={class:\"mosha__icon\"},P={key:0,xmlns:\"http://www.w3.org/2000/svg\",height:\"32px\",viewBox:\"0 0 24 24\",width:\"32px\",fill:\"#ffffff\"},D=d(\"path\",{d:\"M4.47 21h15.06c1.54 0 2.5-1.67 1.73-3L13.73 4.99c-.77-1.33-2.69-1.33-3.46 0L2.74 18c-.77 1.33.19 3 1.73 3zM12 14c-.55 0-1-.45-1-1v-2c0-.55.45-1 1-1s1 .45 1 1v2c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z\"},null,-1),H={key:1,xmlns:\"http://www.w3.org/2000/svg\",height:\"32px\",viewBox:\"0 0 24 24\",width:\"32px\",fill:\"#ffffff\"},k=d(\"path\",{d:\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 11c-.55 0-1-.45-1-1V8c0-.55.45-1 1-1s1 .45 1 1v4c0 .55-.45 1-1 1zm1 4h-2v-2h2v2z\"},null,-1),V={key:2,xmlns:\"http://www.w3.org/2000/svg\",height:\"32px\",viewBox:\"0 0 24 24\",width:\"32px\",fill:\"#ffffff\"},R=d(\"path\",{d:\"M0 0h24v24H0V0z\",fill:\"none\"},null,-1),$=d(\"path\",{d:\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zM9.29 16.29L5.7 12.7c-.39-.39-.39-1.02 0-1.41.39-.39 1.02-.39 1.41 0L10 14.17l6.88-6.88c.39-.39 1.02-.39 1.41 0 .39.39.39 1.02 0 1.41l-7.59 7.59c-.38.39-1.02.39-1.41 0z\"},null,-1),j={key:3,xmlns:\"http://www.w3.org/2000/svg\",height:\"32px\",viewBox:\"0 0 24 24\",width:\"32px\",fill:\"#616161\"},W=d(\"path\",{d:\"M0 0h24v24H0z\",fill:\"none\"},null,-1),q=d(\"path\",{d:\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"},null,-1),U={key:4,xmlns:\"http://www.w3.org/2000/svg\",height:\"32px\",viewBox:\"0 0 24 24\",width:\"32px\",fill:\"#ffffff\"},X=d(\"path\",{d:\"M0 0h24v24H0z\",fill:\"none\"},null,-1),F=d(\"path\",{d:\"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"},null,-1);N.render=function(e,t,o,n,s,i){return m(),f(\"span\",B,[\"warning\"===e.type?(m(),f(\"svg\",P,[D])):\"danger\"===e.type?(m(),f(\"svg\",H,[k])):\"success\"===e.type?(m(),f(\"svg\",V,[R,$])):\"default\"===e.type?(m(),f(\"svg\",j,[W,q])):(m(),f(\"svg\",U,[X,F]))])};var Y=v({name:\"MToast\",components:{MIcon:N},props:{visible:Boolean,text:{type:String,default:\"\"},description:{type:String,default:\"\"},toastBackgroundColor:{type:String,default:\"\"},type:{type:String,default:\"default\"},onClose:{type:Function,default:()=>null},onCloseHandler:{type:Function,required:!0},offset:{type:Number,required:!0},id:{type:Number,required:!0},timeout:{type:Number,default:5e3},position:{type:String,required:!0},showCloseButton:{type:Boolean,default:!0},swipeClose:{type:Boolean,default:!0},hideProgressBar:{type:Boolean,default:!1},showIcon:{type:Boolean,default:!1},transition:{type:String,default:\"bounce\"}},setup(e,t){const o=u(),{width:n}=(()=>{const e=u(-1),t=u(-1),o=o=>{null!==o&&null!==o.currentTarget&&(e.value=o.currentTarget.innerWidth,t.value=o.currentTarget.innerHeight)};return p((()=>{window.innerWidth>0&&(e.value=window.innerWidth,t.value=window.innerHeight),window.addEventListener(\"resize\",L(o))})),c((()=>{window.removeEventListener(\"resize\",L(o))})),{width:e,height:t}})(),{swipedDiff:s,startSwipeHandler:i,swipeStyle:r,cleanUpMove:l}=O(e.position,e.onCloseHandler,e.swipeClose),{transitionType:a}=(d=e.position,v=e.transition,m=s,{transitionType:h((()=>m.value>200?\"mosha__fadeOutLeft\":m.value<-200?\"mosha__fadeOutRight\":z[d][v]))});var d,v,m;const{start:f,stop:_,progress:w}=((e,t)=>{const o=u(),n=u(0),s=u(t),i=u(),r=u(100),l=()=>{clearInterval(i.value),clearTimeout(o.value)};return p((()=>{})),c((()=>{l()})),{start:()=>{n.value=Date.now(),clearTimeout(o.value),i.value=setInterval((()=>{r.value--}),t/100-5),o.value=setTimeout(e,s.value)},stop:()=>{clearInterval(i.value),clearTimeout(o.value),s.value-=Date.now()-n.value},clear:l,progress:r}})((()=>{e.onCloseHandler()}),e.timeout),y=h((()=>t.slots.default)),b=h((()=>/<\\/?[a-z][\\s\\S]*>/i.test(e.description))),I=()=>{e.timeout>0&&f()};return g((()=>{const{customStyle:t}=((e,t,o)=>{const n=h((()=>{switch(e){case\"top-left\":return{left:\"0\",top:`${t}px`};case\"bottom-left\":return{left:\"0\",bottom:`${t}px`};case\"bottom-right\":return{right:\"0\",bottom:`${t}px`};case\"top-center\":return{top:`${t}px`,left:\"0\",right:\"0\",marginRight:\"auto\",marginLeft:\"auto\"};case\"bottom-center\":return{bottom:`${t}px`,left:\"0\",right:\"0\",marginRight:\"auto\",marginLeft:\"auto\"};default:return{right:\"0\",top:`${t}px`}}}));return o.length>0&&(n.value.backgroundColor=o),{customStyle:n}})(e.position,e.offset,e.toastBackgroundColor);o.value=t.value})),p((()=>{I()})),{style:o,transitionType:a,startTimer:I,progress:w,onTouchStart:e=>{i(e)},onMouseLeave:()=>{l(\"mousemove\"),I()},onMouseDown:e=>{i(e)},swipeStyle:r,isSlotPassed:y,isDescriptionHtml:b,onMouseEnter:()=>{e.timeout>0&&n.value>425&&_()}}}});const A={class:\"mosha__toast__content-wrapper\"},G={class:\"mosha__toast__content\"},J={class:\"mosha__toast__content__text\"},K={key:1,class:\"mosha__toast__content__description\"},Q={key:0,class:\"mosha__toast__slot-wrapper\"};Y.render=function(e,t,o,n,s,i){const r=_(\"MIcon\");return m(),f(w,{name:e.transitionType,type:\"animation\"},{default:y((()=>[e.visible?(m(),f(\"div\",{key:0,class:[\"mosha__toast\",e.toastBackgroundColor?null:e.type],style:[e.style,e.swipeStyle],onMouseenter:t[2]||(t[2]=(...t)=>e.onMouseEnter&&e.onMouseEnter(...t)),onMouseleave:t[3]||(t[3]=(...t)=>e.onMouseLeave&&e.onMouseLeave(...t)),onTouchstartPassive:t[4]||(t[4]=(...t)=>e.onTouchStart&&e.onTouchStart(...t)),onMousedown:t[5]||(t[5]=(...t)=>e.onMouseDown&&e.onMouseDown(...t))},[d(\"div\",A,[e.showIcon?(m(),f(r,{key:0,type:e.type},null,8,[\"type\"])):b(\"\",!0),d(\"div\",G,[d(\"div\",J,I(e.text),1),e.description.length>0&&e.isDescriptionHtml?(m(),f(\"div\",{key:0,class:\"mosha__toast__content__description\",innerHTML:e.description},null,8,[\"innerHTML\"])):b(\"\",!0),e.description.length>0&&!e.isDescriptionHtml?(m(),f(\"div\",K,I(e.description),1)):b(\"\",!0)])]),e.isSlotPassed?(m(),f(\"div\",Q,[T(e.$slots,\"default\")])):b(\"\",!0),e.showCloseButton?(m(),f(\"div\",{key:1,class:\"mosha__toast__close-icon\",onClick:t[1]||(t[1]=(...t)=>e.onCloseHandler&&e.onCloseHandler(...t))})):b(\"\",!0),e.hideProgressBar?b(\"\",!0):(m(),f(\"div\",{key:2,class:\"mosha__toast__progress\",style:{width:`${e.progress}%`}},null,4))],38)):b(\"\",!0)])),_:3},8,[\"name\"])};const Z={\"top-left\":[],\"top-right\":[],\"bottom-left\":[],\"bottom-right\":[],\"top-center\":[],\"bottom-center\":[]};let ee=0;const te=(e,t)=>{const o=ee++,n=t?se(t):C;if(e.__v_isVNode)return oe(o,M.VNODE,n,e),{close:()=>le(o,n.position)};if(e.hasOwnProperty(\"render\"))return oe(o,M.COMPONENT,n,e),{close:()=>le(o,n.position)};const s=ie(e);return oe(o,M.TITLE_DESCRIPTION,n,s),{close:()=>le(o,n.position)}},oe=(e,t,o,n)=>{setTimeout((()=>{const s=re(o,Z,12),i=document.createElement(\"div\");let r;document.body.appendChild(i),r=t===M.VNODE?d(Y,ne(o,e,s,le),(()=>[n])):t===M.TITLE_DESCRIPTION?d(Y,ne(o,e,s,le,n)):d(Y,ne(o,e,s,le),(()=>[d(n)])),x(r,i),Z[o.position].push({toastVNode:r,container:i}),r.component&&(r.component.props.visible=!0)}),1)},ne=(e,t,o,n,s)=>a(l(l({},e),s),{id:t,offset:o,visible:!1,onCloseHandler:()=>{n(t,e.position?e.position:\"top-right\")}}),se=e=>{const t=a(l({},e),{type:e.type||C.type,timeout:e.timeout||C.timeout,showCloseButton:e.showCloseButton,position:e.position||C.position,showIcon:e.showIcon,swipeClose:e.swipeClose,transition:e.transition||C.transition});return t.hideProgressBar=void 0!==t.timeout&&t.timeout<=0,void 0!==e.hideProgressBar&&(t.hideProgressBar=e.hideProgressBar),t},ie=e=>({text:\"string\"==typeof e?e:e.title,description:\"string\"==typeof e?void 0:e.description}),re=(e,t,o)=>{let n=o;if(!e.position)throw new Error(\"no position\");return t[e.position].forEach((({toastVNode:e})=>{const t=e.el.offsetHeight+o;n+=t||0})),n},le=(e,t)=>{const o=Z[t],n=o.findIndex((({toastVNode:t})=>t.props&&e===t.props.id));if(-1===n)return;const{container:s,toastVNode:i}=o[n];if(!i.el)return;const r=i.el.offsetHeight;Z[t].splice(n,1),((e,t,o,n)=>{for(let s=e;s{x(null,s),document.body.removeChild(s)}),1e3))},ae=()=>{Object.entries(Z).forEach((([e,t])=>{if(t.length>0){t.map((e=>e.toastVNode.props.id)).forEach((t=>{le(t,e)}))}}))};var ue={install:e=>{e.config.globalProperties.$moshaToast=te,e.provide(\"moshaToast\",te)}};export default ue;export{M as ToastContentType,ae as clearToasts,te as createToast,S as withProps};\n","\n// Toast\n// Allows showing toast messages.\n\n// Imports ----\nimport escape from 'lodash/escape';\nimport { createToast } from 'mosha-vue-toastify';\n\nexport default class {\n\n // Constructor\n constructor(site) {\n this.site = site;\n }\n\n /**\n * Shows an info toast message.\n */\n info(msg, title = '') {\n this.#toast(msg, title, 'info', false);\n }\n\n /**\n * Shows a success toast message.\n */\n success(msg, title = '', showIcon = true) {\n this.#toast(msg, title, 'success', showIcon);\n }\n\n /**\n * Shows a warning toast message.\n */\n warning(msg, title = '', showIcon = true) {\n this.#toast(msg, title, 'warning', showIcon);\n }\n\n /**\n * Shows an error toast message.\n */\n error(msg, title = '', showIcon = true) {\n this.#toast(msg, title, 'error', showIcon);\n }\n\n\n #toast(msg, title, type, showIcon) {\n createToast({\n title: escape(title),\n description: escape(msg)\n },\n {\n type: type,\n showIcon: showIcon,\n transition: 'slide',\n hideProgressBar: true\n });\n }\n}","\n// Account\n// Works with account info.\n\n// Imports ----\nimport { reactive } from 'vue';\n\nexport default class {\n\n // Constructor\n constructor(site) {\n this.site = site;\n\n this.address = reactive({});\n\n site.onSignedIn(() => {\n this.#loadAddress();\n });\n }\n\n async #loadAddress() {\n var response = await this.site.api.get('api/store/user/current/account/address');\n\n if (response.succeeded) {\n Object.assign(this.address, response.model);\n }\n else {\n this.store.handleApiError(response);\n }\n }\n}","\n// Localizer\n// Default implementation to localize text and API messages\n\n// Imports ----\nimport { capitalize, format } from '../util';\n\nexport default class {\n\n // Constructor\n constructor(site) {\n this.site = site;\n }\n\n /**\n * Localizes the specified API message and returns the resulting text.\n * @param {DD.Nucleus.Message} message\n */\n localizeMessage(message) {\n // TODO: In cases where we need a different language, the line below would be modified to\n // not use the default language text; rather, we'd look up the message based on messageId.\n const text = message.messageId.defaultLanguageText;\n\n const formatArgs = [];\n\n for (let i = 0; i <= message.parameters.length - 1; i++) {\n if (message.parameters[i].defaultLanguageText) {\n formatArgs.push(message.parameters[i].defaultLanguageText);\n }\n else {\n formatArgs.push(message.parameters[i]);\n }\n }\n\n return capitalize(format(text, formatArgs));\n }\n}","var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn) {\n var module = { exports: {} };\n\treturn fn(module, module.exports), module.exports;\n}\n\nvar stringMask = createCommonjsModule(function (module, exports) {\n(function(root, factory) {\n /* istanbul ignore next */\n {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory();\n }\n}(commonjsGlobal, function() {\n var tokens = {\n '0': {pattern: /\\d/, _default: '0'},\n '9': {pattern: /\\d/, optional: true},\n '#': {pattern: /\\d/, optional: true, recursive: true},\n 'A': {pattern: /[a-zA-Z0-9]/},\n 'S': {pattern: /[a-zA-Z]/},\n 'U': {pattern: /[a-zA-Z]/, transform: function(c) { return c.toLocaleUpperCase(); }},\n 'L': {pattern: /[a-zA-Z]/, transform: function(c) { return c.toLocaleLowerCase(); }},\n '$': {escape: true}\n };\n\n function isEscaped(pattern, pos) {\n var count = 0;\n var i = pos - 1;\n var token = {escape: true};\n while (i >= 0 && token && token.escape) {\n token = tokens[pattern.charAt(i)];\n count += token && token.escape ? 1 : 0;\n i--;\n }\n return count > 0 && count % 2 === 1;\n }\n\n function calcOptionalNumbersToUse(pattern, value) {\n var numbersInP = pattern.replace(/[^0]/g,'').length;\n var numbersInV = value.replace(/[^\\d]/g,'').length;\n return numbersInV - numbersInP;\n }\n\n function concatChar(text, character, options, token) {\n if (token && typeof token.transform === 'function') {\n character = token.transform(character);\n }\n if (options.reverse) {\n return character + text;\n }\n return text + character;\n }\n\n function hasMoreTokens(pattern, pos, inc) {\n var pc = pattern.charAt(pos);\n var token = tokens[pc];\n if (pc === '') {\n return false;\n }\n return token && !token.escape ? true : hasMoreTokens(pattern, pos + inc, inc);\n }\n\n function hasMoreRecursiveTokens(pattern, pos, inc) {\n var pc = pattern.charAt(pos);\n var token = tokens[pc];\n if (pc === '') {\n return false;\n }\n return token && token.recursive ? true : hasMoreRecursiveTokens(pattern, pos + inc, inc);\n }\n\n function insertChar(text, char, position) {\n var t = text.split('');\n t.splice(position, 0, char);\n return t.join('');\n }\n\n function StringMask(pattern, opt) {\n this.options = opt || {};\n this.options = {\n reverse: this.options.reverse || false,\n usedefaults: this.options.usedefaults || this.options.reverse\n };\n this.pattern = pattern;\n }\n\n StringMask.prototype.process = function proccess(value) {\n if (!value) {\n return {result: '', valid: false};\n }\n value = value + '';\n var pattern2 = this.pattern;\n var valid = true;\n var formatted = '';\n var valuePos = this.options.reverse ? value.length - 1 : 0;\n var patternPos = 0;\n var optionalNumbersToUse = calcOptionalNumbersToUse(pattern2, value);\n var escapeNext = false;\n var recursive = [];\n var inRecursiveMode = false;\n\n var steps = {\n start: this.options.reverse ? pattern2.length - 1 : 0,\n end: this.options.reverse ? -1 : pattern2.length,\n inc: this.options.reverse ? -1 : 1\n };\n\n function continueCondition(options) {\n if (!inRecursiveMode && !recursive.length && hasMoreTokens(pattern2, patternPos, steps.inc)) {\n // continue in the normal iteration\n return true;\n } else if (!inRecursiveMode && recursive.length &&\n hasMoreRecursiveTokens(pattern2, patternPos, steps.inc)) {\n // continue looking for the recursive tokens\n // Note: all chars in the patterns after the recursive portion will be handled as static string\n return true;\n } else if (!inRecursiveMode) {\n // start to handle the recursive portion of the pattern\n inRecursiveMode = recursive.length > 0;\n }\n\n if (inRecursiveMode) {\n var pc = recursive.shift();\n recursive.push(pc);\n if (options.reverse && valuePos >= 0) {\n patternPos++;\n pattern2 = insertChar(pattern2, pc, patternPos);\n return true;\n } else if (!options.reverse && valuePos < value.length) {\n pattern2 = insertChar(pattern2, pc, patternPos);\n return true;\n }\n }\n return patternPos < pattern2.length && patternPos >= 0;\n }\n\n /**\n * Iterate over the pattern's chars parsing/matching the input value chars\n * until the end of the pattern. If the pattern ends with recursive chars\n * the iteration will continue until the end of the input value.\n *\n * Note: The iteration must stop if an invalid char is found.\n */\n for (patternPos = steps.start; continueCondition(this.options); patternPos = patternPos + steps.inc) {\n // Value char\n var vc = value.charAt(valuePos);\n // Pattern char to match with the value char\n var pc = pattern2.charAt(patternPos);\n\n var token = tokens[pc];\n if (recursive.length && token && !token.recursive) {\n // In the recursive portion of the pattern: tokens not recursive must be seen as static chars\n token = null;\n }\n\n // 1. Handle escape tokens in pattern\n // go to next iteration: if the pattern char is a escape char or was escaped\n if (!inRecursiveMode || vc) {\n if (this.options.reverse && isEscaped(pattern2, patternPos)) {\n // pattern char is escaped, just add it and move on\n formatted = concatChar(formatted, pc, this.options, token);\n // skip escape token\n patternPos = patternPos + steps.inc;\n continue;\n } else if (!this.options.reverse && escapeNext) {\n // pattern char is escaped, just add it and move on\n formatted = concatChar(formatted, pc, this.options, token);\n escapeNext = false;\n continue;\n } else if (!this.options.reverse && token && token.escape) {\n // mark to escape the next pattern char\n escapeNext = true;\n continue;\n }\n }\n\n // 2. Handle recursive tokens in pattern\n // go to next iteration: if the value str is finished or\n // if there is a normal token in the recursive portion of the pattern\n if (!inRecursiveMode && token && token.recursive) {\n // save it to repeat in the end of the pattern and handle the value char now\n recursive.push(pc);\n } else if (inRecursiveMode && !vc) {\n // in recursive mode but value is finished. Add the pattern char if it is not a recursive token\n formatted = concatChar(formatted, pc, this.options, token);\n continue;\n } else if (!inRecursiveMode && recursive.length > 0 && !vc) {\n // recursiveMode not started but already in the recursive portion of the pattern\n continue;\n }\n\n // 3. Handle the value\n // break iterations: if value is invalid for the given pattern\n if (!token) {\n // add char of the pattern\n formatted = concatChar(formatted, pc, this.options, token);\n if (!inRecursiveMode && recursive.length) {\n // save it to repeat in the end of the pattern\n recursive.push(pc);\n }\n } else if (token.optional) {\n // if token is optional, only add the value char if it matchs the token pattern\n // if not, move on to the next pattern char\n if (token.pattern.test(vc) && optionalNumbersToUse) {\n formatted = concatChar(formatted, vc, this.options, token);\n valuePos = valuePos + steps.inc;\n optionalNumbersToUse--;\n } else if (recursive.length > 0 && vc) {\n valid = false;\n break;\n }\n } else if (token.pattern.test(vc)) {\n // if token isn't optional the value char must match the token pattern\n formatted = concatChar(formatted, vc, this.options, token);\n valuePos = valuePos + steps.inc;\n } else if (!vc && token._default && this.options.usedefaults) {\n // if the token isn't optional and has a default value, use it if the value is finished\n formatted = concatChar(formatted, token._default, this.options, token);\n } else {\n // the string value don't match the given pattern\n valid = false;\n break;\n }\n }\n\n return {result: formatted, valid: valid};\n };\n\n StringMask.prototype.apply = function(value) {\n return this.process(value).result;\n };\n\n StringMask.prototype.validate = function(value) {\n return this.process(value).valid;\n };\n\n StringMask.process = function(value, pattern, options) {\n return new StringMask(pattern, options).process(value);\n };\n\n StringMask.apply = function(value, pattern, options) {\n return new StringMask(pattern, options).apply(value);\n };\n\n StringMask.validate = function(value, pattern, options) {\n return new StringMask(pattern, options).validate(value);\n };\n\n return StringMask;\n}));\n});\n\nconst getInputElement = el => {\n const inputEl = el.tagName.toLowerCase() !== 'input' ? el.querySelector('input:not([readonly])') : el;\n\n if (!inputEl) {\n throw new Error('Mask directive requires at least one input');\n }\n\n return inputEl;\n};\nfunction createEvent(name) {\n const event = document.createEvent('HTMLEvents');\n event.initEvent(name, true, true);\n return event;\n}\nconst filterNumbers = v => v.replace(/\\D/g, '');\nconst filterLetters = v => v.replace(/[^a-zA-Z]/g, '');\nconst filterAlphanumeric = v => v.replace(/[^a-zA-Z0-9]/g, '');\nconst parsePreFn = arg => {\n if (typeof arg === 'function') {\n return arg;\n }\n\n switch (arg) {\n case 'filter-number':\n return filterNumbers;\n\n case 'filter-letter':\n return filterLetters;\n\n default:\n return filterAlphanumeric;\n }\n};\nconst parsePostFn = arg => {\n if (typeof arg === 'function') {\n return arg;\n }\n\n return value => value.trim().replace(/[^0-9]$/, '');\n};\n\nconst delimiter = '\\u00a7';\nfunction masker(fn) {\n return args => {\n const data = fn(args);\n const pre = parsePreFn('pre' in data ? data.pre : null);\n const post = parsePostFn('post' in data ? data.post : null);\n const formatter = 'pattern' in data && data.pattern ? new stringMask(data.pattern, data.options || {}) : null;\n const handler = 'handler' in data && typeof data.handler === 'function' ? data.handler : value => formatter ? formatter.apply(value) : value;\n return (str, args = {}) => {\n args = { ...args,\n delimiter\n };\n str = pre(str, args);\n let [prefix, value] = (!str.includes(delimiter) ? `${delimiter}${str}` : str).split(delimiter);\n value = handler(value, args);\n return post(`${prefix}${value}`, args);\n };\n };\n}\n\nvar mask = masker(({\n value: pattern\n}) => ({\n pattern,\n pre: filterAlphanumeric,\n post: value => value.trim().replace(/[^a-zA-Z0-9]$/, '')\n}));\n\nconst patterns = {\n us: '0000-00-00',\n br: '00/00/0000'\n};\nvar date = masker(({\n locale = null\n} = {}) => ({\n pattern: patterns[locale || 'us'],\n pre: filterNumbers\n}));\n\nconst handlers = {\n get us() {\n const phone = new stringMask('(000) 000-0000');\n return value => phone.apply(value);\n },\n\n get br() {\n const phone = new stringMask('(00) 0000-0000');\n const phone9 = new stringMask('(00) 9 0000-0000');\n const phone0800 = new stringMask('0000-000-0000');\n return value => {\n if (value.startsWith('0800'.slice(0, value.length))) {\n return phone0800.apply(value);\n } else if (value.length <= 10) {\n return phone.apply(value);\n }\n\n return phone9.apply(value);\n };\n }\n\n};\nvar phone = masker(({\n locale\n}) => {\n const handler = handlers[locale || 'us'];\n return {\n pre: filterNumbers,\n handler\n };\n});\n\nconst config = {\n us: {\n thousand: ',',\n decimal: '.'\n },\n br: {\n thousand: '.',\n decimal: ','\n }\n};\nvar decimal = masker(({\n locale,\n value\n}) => {\n const conf = config[locale || 'us'];\n const patternParts = [`#${conf.thousand}##0`];\n const precision = value || 0;\n\n if (precision) {\n patternParts.push(conf.decimal, new Array(precision).fill('0').join(''));\n }\n\n return {\n pattern: patternParts.join(''),\n options: {\n reverse: true\n },\n\n pre(value, {\n delimiter\n }) {\n if (!value) {\n return '';\n }\n\n const sign = value.startsWith('-') ? '-' : '';\n let [number, fraction = ''] = value.split(conf.decimal).map(filterNumbers);\n\n if (fraction && fraction.length > precision) {\n number = `${number}${fraction.slice(0, -precision)}`;\n fraction = fraction.slice(-precision);\n }\n\n return [sign, delimiter, Number(number), fraction].join('');\n },\n\n post(value) {\n return value;\n }\n\n };\n});\n\nvar number = masker(() => {\n return {\n pattern: '#0',\n options: {\n reverse: true\n },\n pre: filterNumbers\n };\n});\n\nvar cpf = masker(() => ({\n pattern: '000.000.000-00',\n pre: filterNumbers\n}));\n\nvar cnpj = masker(() => ({\n pattern: '00.000.000/0000-00',\n pre: filterNumbers\n}));\n\nvar cep = masker(() => ({\n pattern: '00.000-000',\n pre: filterNumbers\n}));\n\nvar creditCard = masker(() => ({\n pattern: '0000 0000 0000 0000',\n pre: filterNumbers\n}));\n\nvar masks = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\tmask: mask,\n\tmaskDate: date,\n\tmaskPhone: phone,\n\tmaskDecimal: decimal,\n\tmaskNumber: number,\n\tmaskCpf: cpf,\n\tmaskCnpj: cnpj,\n\tmaskCep: cep,\n\tmaskCc: creditCard\n});\n\nfunction updater(el, masker) {\n const currentValue = el.value;\n const oldValue = el.dataset.value;\n\n if (oldValue === currentValue) {\n return;\n }\n\n const newValue = masker(currentValue, {\n el\n });\n\n if (newValue === currentValue) {\n el.dataset.value = currentValue;\n return;\n } // Get current cursor position\n\n\n let position = el.selectionEnd; // Find next cursor position\n\n if (position === currentValue.length) {\n position = newValue.length;\n } else if (position > 0 && position <= newValue.length) {\n const digit = currentValue.charAt(position - 1);\n\n if (digit !== newValue.charAt(position - 1)) {\n if (digit === newValue.charAt(position)) {\n position += 1;\n } else if (digit === newValue.charAt(position - 2)) {\n position -= 1;\n }\n }\n }\n\n el.value = newValue;\n el.dataset.value = newValue;\n\n if (el === document.activeElement) {\n // Restore cursor position\n el.setSelectionRange(position, position);\n }\n\n el.dispatchEvent(createEvent('input'));\n}\n\nfunction make(maskerFn) {\n const maskerMap = new WeakMap();\n const inputMap = new WeakMap(); // const eventMap = new WeakMap();\n\n return {\n beforeMount(el, binding) {\n const masker = maskerFn({\n value: binding.value,\n locale: binding.arg || Object.keys(binding.modifiers)[0] || null\n });\n const inputEl = getInputElement(el); // const eventHandler = ({ isTrusted }) => {\n // if (isTrusted) {\n // updater(inputEl, masker);\n // }\n // };\n\n maskerMap.set(el, masker);\n inputMap.set(el, inputEl); // eventMap.set(el, eventHandler);\n // inputEl.addEventListener('input', eventHandler);\n },\n\n mounted(el) {\n updater(inputMap.get(el), maskerMap.get(el));\n },\n\n updated(el) {\n updater(inputMap.get(el), maskerMap.get(el));\n },\n\n unmounted(el) {\n // el.removeEventListener('input', inputMap.get(el));\n maskerMap.delete(el);\n inputMap.delete(el); // eventMap.delete(el);\n }\n\n };\n}\n\nconst install = function installPlugin(app) {\n // Register directives\n for (const name in masks) {\n app.directive(name, make(masks[name]));\n }\n};\n\nexport { install as default, filterAlphanumeric, filterLetters, filterNumbers, make as makeDirective, masker };\n","\n// NucleusSite\n// A base class providing services for Nucleus sites. This provides the base services provided by the Nucleus Storefront NPM package.\n// This class is intended to:\n// - Be overridden by a class for a given site, which can then provide its own services and/or react to certain events occurring.\n// - Allow other modules to plug in other objects that provide services for a given functional area.\n\n// Constants ----\nconst DEFAULT_CONFIG_RETRY_MS = 500; // Default amount of time to wait before retrying config, if the backend indicates it's not ready yet (i.e. still starting up)\nconst UNAUTHORIZED_RESPONSE_CODE = 401;\n\n// Global Components ----\n\n// Pages for Router\nimport DeveloperPage from '../site/areas/developer/DeveloperPage';\nimport EntryPage from '../site/areas/auth/EntryPage';\n\n// Controls\nimport RadioButton from '../components/controls/RadioButton';\n\n// Forms\nimport CheckBoxField from '../components/forms/CheckBoxField';\nimport CheckBoxListField from '../components/forms/CheckBoxListField';\nimport DateField from '../components/forms/DateField';\nimport DropDownListField from '../components/forms/DropDownListField';\nimport MultiDropDownListField from '../components/forms/MultiDropDownListField';\nimport FieldLabel from '../components/forms/FieldLabel';\nimport FieldMessages from '../components/forms/FieldMessages';\nimport FormContainer from '../components/forms/FormContainer';\nimport FormMessages from '../components/forms/FormMessages';\nimport RadioButtonListField from '../components/forms/RadioButtonListField';\nimport TextAreaField from '../components/forms/TextAreaField';\nimport TextBoxField from '../components/forms/TextBoxField';\nimport ValidatorMessages from '../components/forms/ValidatorMessages';\n\n// Search Filters\nimport AddFilterCheckBox from '../components/searches/filters/AddFilterCheckBox';\nimport DateRangeFilter from '../components/searches/filters/DateRangeFilter';\nimport DropDownListFilter from '../components/searches/filters/DropDownListFilter';\nimport LetterPickFilter from '../components/searches/filters/LetterPickFilter';\nimport TextBoxFilter from '../components/searches/filters/TextBoxFilter';\nimport MultiSelectDropDownFilter from '../components/searches/filters/MultiSelectDropDownFilter';\n\n\n// Searches\nimport MockSearchGrid from '../components/searches/MockSearchGrid';\nimport PageSelector from '../components/searches/PageSelector';\nimport PageSizeList from '../components/searches/PageSizeList';\nimport ResultCountRangePanel from '../components/searches/ResultCountRangePanel';\nimport SearchContainer from '../components/searches/SearchContainer';\nimport SearchGrid from '../components/searches/SearchGrid';\nimport SearchResults from '../components/searches/SearchResults';\nimport SearchTable from '../components/searches/SearchTable';\nimport SortOptionsList from '../components/searches/SortOptionsList';\nimport ViewModeSelector from '../components/searches/ViewModeSelector';\n\n// General\nimport ActionButton from '../components/ActionButton';\nimport AddressBlock from '../components/AddressBlock';\nimport ApiMessageItem from '../components/ApiMessageItem';\nimport BodyPanel from '../components/BodyPanel';\nimport ButtonBar from '../components/ButtonBar';\nimport FileUpload from '../components/FileUpload';\nimport LinkItem from '../components/LinkItem';\nimport MessageItem from '../components/MessageItem';\nimport MessageList from '../components/MessageList';\nimport PageButton from '../components/PageButton';\nimport ShowOnlyForRoles from '../components/ShowOnlyForRoles';\nimport SidePanel from '../components/SidePanel';\nimport SizeDisplay from '../components/SizeDisplay';\nimport StartupPanel from '../components/StartupPanel';\nimport SubPageButton from '../components/SubPageButton';\nimport TabBar from '../components/TabBar';\nimport TileSelectButton from '../components/TileSelectButton';\nimport TileMultiSelectButton from '../components/TileMultiSelectButton';\nimport Pagination from '../components/Pagination';\nimport GeneralTableWrapper from '../components/GeneralTable/GeneralTableWrapper';\n\nimport TreePath from '../components/TreePath';\nimport TreeSelect from '../components/TreeSelect';\n\n\n// Imports ----\nimport { reactive } from 'vue';\nimport Api from './Api';\nimport Toast from './Toast';\nimport Account from './Account';\nimport Localizer from './Localizer';\nimport { EventIDs } from './Search';\nimport { createRouter, createWebHistory } from 'vue-router';\nimport useGlobalEvents from '../services/global-events';\n\nimport VueMask from '@devindex/vue-mask';\nimport vClickOutside from 'click-outside-vue3';\n\nconst { emitGlobal, onGlobal } = useGlobalEvents();\n\nexport default class {\n // Stores information about current operations\n #current = reactive({\n config: {},\n user: {\n isAuthenticated: false,\n contactId: '',\n userId: '',\n actualUserId: '',\n actualContactId: '',\n primaryRoleId: '',\n userName: '',\n email: '',\n firstName: '',\n lastName: '',\n roles: [],\n isImpersonating: false,\n isActive: true,\n countryCode: '',\n languageCode: ''\n },\n status: { code: 0, process: 'Starting up', isComplete: false }\n });\n\n #routes = []; // Stores routes to be used when building the Vue router\n #initialized = false; // Whether initialize() has completed\n #preInitList = []; // Array of async functions to call before app is considered initialized.\n\n EventIDs = {\n APP_INITIALIZED: 'APP_INITIALIZED', // The app has been initialized\n CONFIG_LOADED: 'CONFIG_LOADED', // Configuration has been loaded\n AUTH_SIGNED_IN: 'AUTH_SIGNED_IN', // The user has successfully signed in, or was already signed in\n AUTH_SIGNED_OUT: 'AUTH_SIGNED_OUT', // The user has signed out\n FORBIDDEN: 'FORBIDDEN' // The user has no permission\n };\n\n navigatingTo = null; // Used to track redirection after a local sign-in\n\n // Constructor\n constructor() {\n this.api = new Api(this);\n this.toast = new Toast(this);\n this.account = new Account(this);\n this.localizer = new Localizer(this);\n\n this.requireAuthentication = true;\n\n this.baseUrl = '/'; // Used for routing and URL modifications in sub-folder SPAs\n\n site = this; // Store singleton so components in this module can access.\n\n }\n\n /**\n * Initializes the site. Called once when first loading the SPA.\n * @param {any} options\n */\n async initialize(options) {\n // Initialize the configuration\n await this.#initConfig(options);\n\n // Determine if the user is currently signed in. The router navigation guard will take care of routing.\n const isSignedIn = await this.authenticator.isSignedIn();\n if (isSignedIn) await this.refreshCurrentUser(true);\n\n // Call any functions that have registered for pre-initialization\n for (let i = 0; i < this.#preInitList.length; i++) {\n await this.#preInitList[i]();\n }\n\n emitGlobal(this.EventIDs.APP_INITIALIZED);\n\n this.#initialized = true; \n }\n\n\n // #region Getters & Setters ----\n\n /**\n * Returns the site configuration\n */\n get config() {\n return this.#current.config;\n }\n\n /**\n * Returns the current user (DD.Nucleus.Security.CurrentUserModel)\n * @returns {DD.Nucleus.Security.CurrentUserModel}\n */\n get user() {\n return this.#current.user;\n }\n\n /**\n * Returns the initialization status\n * @returns {DD.Nucleus.Security.CurrentUserModel}\n */\n get status() {\n return this.#current.status;\n }\n\n /**\n * Returns whether the initialize() function has completed.\n */\n get isInitialized() {\n return this.#initialized;\n }\n\n // #endregion\n\n\n // #region Public Methods ----\n\n /* Set the authenticator\n */\n initAuthenticator(authenticator) {\n this.authenticator = authenticator;\n }\n\n /**\n * Signs the user in with the supplied username and password, for authenticators that provide a local sign-in option. \n * according to the response this method decided wether to directly login user if its a normal authentication or\n * redirect to MFA page if user has been enabled for MFA\n * @param {any} username\n * @param {any} password\n */\n async signIn(username, password, router) {\n const response = await this.authenticator.signIn(username, password)\n if (response.isSignedIn) {\n if(response.isMFAEnabled) {\n this.postMFAFirstStep(router, username);\n }else {\n await this.postSignedIn(router);\n }\n return {success: true, errorMessage: ''};\n }\n else\n return {success: false, errorMessage: response.errorMessage};\n }\n\n /**\n * This method will be for authenticating the user via supplied token/otp\n * @param {string} username\n * @param {string} token\n */\n async signInWithOTP(username, token, router) {\n const response = await this.authenticator.loginWithOTP(username, token)\n if (response.isSignedIn) {\n await this.postSignedIn(router);\n }\n return response;\n }\n\n /**\n * method to generate a new OTP/token for the user\n * @param {string} username\n */\n async generateOTP(username) {\n const response = await this.authenticator.generateOTP(username)\n return response;\n }\n\n async generateOTPForResetPassword(username) {\n const response = await this.authenticator.generateOTPForResetPassword(username)\n return response;\n }\n\n /**\n * method to verify rest passord otp\n * @param {string} username\n * @param {string} token\n */\n async verifyResetPasswordOTP(username, token) {\n const response = await this.authenticator.verifyResetPasswordOTP(username, token)\n return response;\n }\n\n\n\n postMFAFirstStep(router, username) {\n router.push('/mfa?username=' + username);\n }\n\n async postSignedIn(router) {\n\n // Set this to allow any API headers to go with the user refresh call\n this.user.isAuthenticated = true;\n\n // Refresh the current user\n await this.refreshCurrentUser(true);\n\n // Broadcast that a successful sign in completed.\n emitGlobal(this.EventIDs.AUTH_SIGNED_IN);\n\n // If navigatingTo is set, redirect there.\n if (this.navigatingTo !== null) {\n router.push(this.navigatingTo);\n this.navigatingTo = null;\n }\n else\n router.push('/');\n }\n\n /**\n * Signs the user out and redirects to the sign-out route.\n */\n async signOut(router) {\n await this.authenticator.signOut();\n\n const route = await this.authenticator.getSignOutRoute();\n\n this.user.isAuthenticated = false;\n emitGlobal(this.EventIDs.AUTH_SIGNED_OUT);\n\n router.push(route);\n }\n\n /**\n * Signs the user out and redirects to the root site.\n */\n async signOutFromAdmin(router) {\n await this.authenticator.signOut();\n\n this.user.isAuthenticated = false;\n emitGlobal(this.EventIDs.AUTH_SIGNED_OUT);\n\n //TODO: Revisit this after testing \n router.resolve({ path: \"/\" });\n }\n\n /**\n * Calls the provided async function when the app is initializing, and will be awaited before the app indicates it is\n * fully initialized.\n */\n onPreInitialize(func) {\n if (this.#initialized)\n console.error('Function added to pre-initialize after initialization occurred.');\n else\n this.#preInitList.push(func);\n }\n\n /**\n * Calls the provided function when the app has initialized. This also indicates that the current user (i.e. site.user) has\n * been retrieved if the user has signed in.\n */\n onInitialized(func) {\n if (this.#initialized)\n func();\n else\n onGlobal(this.EventIDs.APP_INITIALIZED, func);\n }\n\n /**\n * Calls the provided function when the configuration has loaded, or immediately if configuration has already loaded.\n */\n onConfigLoaded(func) {\n if (this.#current.config.isLoaded)\n func();\n else\n onGlobal(this.EventIDs.CONFIG_LOADED, func);\n }\n\n /**\n * Calls the provided function when the user is signed in. If the user is already signed in, this executes immediately.\n */\n onSignedIn(func) {\n // Call immediately if already signed in\n if (this.user.isAuthenticated)\n func();\n\n onGlobal(this.EventIDs.AUTH_SIGNED_IN, func);\n }\n\n /**\n * Calls the provided function when the user is signed out.\n */\n onSignedOut(func) {\n onGlobal(this.EventIDs.AUTH_SIGNED_OUT, func);\n }\n\n /**\n * Calls the provided function when the user has no permission.\n */\n onForbidden(func) {\n onGlobal(this.EventIDs.FORBIDDEN, func);\n }\n\n /**\n * Handles an error returned from an API call.\n * @param {Object} response\n */\n\n handleApiError(response) {\n console.error('[NUCLEUS-SITE] API error');\n if (response.status == UNAUTHORIZED_RESPONSE_CODE) {\n emitGlobal(this.EventIDs.FORBIDDEN);\n }\n }\n\n /**\n * Refreshes all searches with the specified ID(s).\n * @param {...String} searchIds\n */\n refreshSearches(...searchIds) {\n emitGlobal(EventIDs.SEARCH_REFRESH_ALL, searchIds);\n }\n\n /**\n * Adds a basic route to be included in the Vue router. Must be called from createVueRouter().\n * @param {String} path - Path to be used, starting with a forward slash; e.g. \"/mypage\"\n * @param {String} name - Name of the route\n * @param {Component} component - Page component\n */\n addRoute(path, name, component) {\n this.#routes.push({ path: path, name: name, component: component });\n }\n\n /**\n * Adds a basic route to be included in the Vue router that does not require a signed-in user, even if\n * the site is set to require authentication. Must be called from createVueRouter().\n * @param {String} path - Path to be used, starting with a forward slash; e.g. \"/mypage\"\n * @param {String} name - Name of the route\n * @param {Component} component - Page component\n */\n addPublicRoute(path, name, component) {\n this.#routes.push({ path: path, name: name, component: component, meta: { public: true } });\n }\n\n /**\n * Adds a Vue route object to be included in the Vue router. Must be called from createVueRouter().\n * @param {Object} route - Route object as defined by the vue-router library.\n */\n addVueRoute(route) {\n this.#routes.push(route);\n }\n\n /**\n * Adds a basic redirect with no query parameters \n * @param {String} path - Path from the old site \n * @param {String} redirect - Path to the new site \n */\n addRedirectRoute(path, redirect,) {\n this.#routes.push({ path: path, redirect: redirect });\n }\n\n /**\n * For sites that operate in a sub-folder, this adjusts a relative URL to operate correctly both on the\n * development machine and when deployed. Relative URLs should be server-relative, i.e. start with a slash.\n * @param {any} relativeUrl - Relative URL, e.g. \"/images/logo.png\"\n */\n localUrl(relativeUrl) {\n if (process.env.NODE_ENV === 'development' || this.baseUrl === '/')\n return relativeUrl;\n else\n return this.baseUrl + relativeUrl;\n }\n\n /**\n * Called to allow this object to modify the Vue app if necessary.\n * @param {VueApp} vueApp\n */\n // eslint-disable-next-line\n setupVue(vueApp) {\n // Add directives\n vueApp.use(VueMask); // Masking text inputs\n vueApp.use(vClickOutside); // Click outside\n\n // Controls\n vueApp.component('RadioButton', RadioButton);\n\n // Forms\n vueApp.component('CheckBoxField', CheckBoxField);\n vueApp.component('CheckBoxListField', CheckBoxListField);\n vueApp.component('DateField', DateField);\n vueApp.component('DropDownListField', DropDownListField);\n vueApp.component('MultiDropDownListField', MultiDropDownListField);\n vueApp.component('FieldLabel', FieldLabel);\n vueApp.component('FieldMessages', FieldMessages);\n vueApp.component('FormContainer', FormContainer);\n vueApp.component('FormMessages', FormMessages);\n vueApp.component('RadioButtonListField', RadioButtonListField);\n vueApp.component('TextAreaField', TextAreaField);\n vueApp.component('TextBoxField', TextBoxField);\n vueApp.component('ValidatorMessages', ValidatorMessages);\n\n // Search Filters\n vueApp.component('AddFilterCheckBox', AddFilterCheckBox);\n vueApp.component('DateRangeFilter', DateRangeFilter);\n vueApp.component('DropDownListFilter', DropDownListFilter);\n vueApp.component('LetterPickFilter', LetterPickFilter);\n vueApp.component('TextBoxFilter', TextBoxFilter);\n vueApp.component('MultiSelectDropDownFilter', MultiSelectDropDownFilter)\n\n // Searches\n vueApp.component('MockSearchGrid', MockSearchGrid);\n vueApp.component('PageSelector', PageSelector);\n vueApp.component('PageSizeList', PageSizeList);\n vueApp.component('ResultCountRangePanel', ResultCountRangePanel);\n vueApp.component('SearchContainer', SearchContainer);\n vueApp.component('SearchGrid', SearchGrid);\n vueApp.component('SearchResults', SearchResults);\n vueApp.component('SearchTable', SearchTable);\n vueApp.component('SortOptionsList', SortOptionsList);\n vueApp.component('ViewModeSelector', ViewModeSelector);\n \n // General\n vueApp.component('ActionButton', ActionButton);\n vueApp.component('AddressBlock', AddressBlock);\n vueApp.component('ApiMessageItem', ApiMessageItem);\n vueApp.component('BodyPanel', BodyPanel);\n vueApp.component('ButtonBar', ButtonBar);\n vueApp.component('LinkItem', LinkItem);\n vueApp.component('MessageItem', MessageItem);\n vueApp.component('MessageList', MessageList);\n vueApp.component('PageButton', PageButton);\n vueApp.component('ShowOnlyForRoles', ShowOnlyForRoles);\n vueApp.component('SidePanel', SidePanel);\n vueApp.component('SizeDisplay', SizeDisplay);\n vueApp.component('StartupPanel', StartupPanel);\n vueApp.component('SubPageButton', SubPageButton);\n vueApp.component('TabBar', TabBar);\n vueApp.component('TileSelectButton', TileSelectButton);\n vueApp.component('TileMultiSelectButton', TileMultiSelectButton);\n vueApp.component('TreePath', TreePath);\n vueApp.component('TreeSelect', TreeSelect);\n vueApp.component('Pagination', Pagination);\n vueApp.component('GeneralTableWrapper', GeneralTableWrapper);\n }\n\n /**\n * Called to create and configure the router using routes added via addRoute(), addPublicRoute(), and addVueRoute().\n */\n createVueRouter() {\n // Append core routes to the routes array\n this.addRoute(\"/\", \"EntryPage\", EntryPage);\n this.addRoute(\"/nucleus/developer\", \"Developer\", DeveloperPage);\n\n // Create the router\n const router = createRouter({\n history: createWebHistory(this.baseUrl),\n routes: this.#routes\n });\n\n router.beforeEach(async to => {\n // Determine if the user is currently signed in. Detected if they went from not authenticated to authenticated,\n // so we can raise the correct event.\n const wasAuthenticated = this.user.isAuthenticated;\n this.user.isAuthenticated = await this.authenticator.isSignedIn();\n\n if (!wasAuthenticated && this.user.isAuthenticated) {\n emitGlobal(this.EventIDs.AUTH_SIGNED_IN);\n }\n\n // If we require authentication, user is not signed in, and not a public page...\n if (!this.user.isAuthenticated && this.requireAuthentication && to.meta.public !== true) {\n // ...call the authenticator to redirect to sign in. It may redirect outside of the site.\n this.authenticator.storeNavigatingTo(to);\n this.navigatingTo = to;\n return this.authenticator.getSignInRoute(to);\n }\n else {\n // If we are headed to the entry page, go to home instead.\n if (to.path === '/') {\n return { name: 'Home', replace: true };\n }\n \n return true;\n }\n });\n\n // TODO: Add any other needed configuration\n\n return router;\n }\n\n // Calls the API to get current user information\n async refreshCurrentUser(overrideWait) {\n // TODO: Error handling here\n var response = await this.api.get('api/user/current', { overrideWait: overrideWait });\n\n // Assign isAuthenticated here if appropriate\n if (response.currentUser) {\n response.currentUser.isAuthenticated = response.currentUser.isActive; \n Object.assign(this.#current.user, response.currentUser);\n }\n\n // TODO: Replace with trace\n console.log('[NUCLEUS-APP] current.user', this.user);\n }\n\n async verifyEmail(token, email) {\n return await this.api.get(`/api/site/email-confirmation?token=${encodeURIComponent(token)}&email=${email}`);\n }\n \n async resendConfirmEmail(email) {\n return await this.api.get(`/api/site/send-confirm-email-notification?email=${email}`);\n }\n\n // #endregion\n\n\n // #region Private Methods\n\n // Initialize the config object based on options passed into initialize()\n async #initConfig(options) {\n\n var keepTrying = true;\n while (keepTrying) {\n let response = {};\n\n try {\n response = await this.api.get(options.configUrl, { waitForAppInit: false });\n }\n catch (e) {\n response = {\n code: 0,\n attributes: {\n status: {\n operation: 'Backend starting up'\n }\n }\n };\n }\n\n if (response === null || typeof response === 'undefined') {\n response = {\n code: 0,\n attributes: {\n status: {\n operation: 'Starting up...'\n }\n }\n };\n }\n\n if (response.code === 0) {\n // Backend is still starting up. Wait a bit and try again\n Object.assign(this.#current.status, response.attributes.status);\n await new Promise(r => setTimeout(r, options.configRetryMs ? options.configRetryMs : DEFAULT_CONFIG_RETRY_MS));\n }\n else {\n if (response.succeeded) {\n Object.assign(this.#current.config, response.data);\n this.#current.config.isLoaded = true;\n\n console.log('[NUCLEUS-APP] Config', this.config);\n\n this.#current.status.operation = 'Running';\n this.#current.status.itemNumber = null;\n this.#current.status.itemCount = null;\n this.#current.status.isComplete = true;\n\n if (this.#current.config.site.useMockAuthentication) {\n await this.refreshCurrentUser(true);\n }\n\n await emitGlobal(this.EventIDs.CONFIG_LOADED, this.#current.config);\n }\n else {\n // TODO: Expand upon this to show error message(s)\n this.#current.status.operation = 'An error occurred while getting configuration';\n this.#current.status.itemNumber = null;\n this.#current.status.itemCount = null;\n }\n\n keepTrying = false;\n }\n }\n }\n\n // #endregion\n}\n\nexport let site = null;\n","// ResetPasswordForm\n// Implements the form that allows a user to reset their password.\n\n// Imports ----\nimport Form from '../../base/classes/Form';\nimport { MessageType } from '../../base/classes/Message';\nimport { site } from '../../base/classes/NucleusSite';\n\nexport default class ResetPasswordForm extends Form {\n\n // Constructor\n constructor() {\n // Pass our model to the base class.\n super({\n linkId: '',\n userName: '',\n email: '',\n password: '',\n confirmPassword: ''\n });\n }\n\n onValidate() {\n super.onValidate();\n\n this.validator.fields.password.checkNotEmpty();\n this.validator.fields.confirmPassword.checkNotEmpty();\n }\n\n async onValidateAsync() {\n if (this.model.password && this.model.password.length > 3) {\n const response = await site.authenticator.validatePassword(this.model.userName, this.model.email, this.model.password, this.model.confirmPassword);\n\n this.validator.fields.password.reset();\n\n response.messages.forEach(m => {\n if (m.messageType === MessageType.OK) {\n this.validator.fields.password.addOk(m.userMessage);\n }\n else {\n this.validator.fields.password.addError(m.userMessage);\n }\n });\n }\n }\n\n async onSubmit() {\n return await site.authenticator.resetPasswordFromLink(this.model.linkId, this.model.password)\n }\n}\n","\n\n\n\n\n","import script from \"./ResetPasswordForm.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ResetPasswordForm.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ResetPasswordForm.vue?vue&type=style&index=0&id=246988e0&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n// SignInForm\n// Implements the form that signs a user in.\n\n// Imports ----\nimport Form from '../../base/classes/Form';\nimport { site } from '../../base/classes/NucleusSite';\n\n\nexport default class ForgotPasswordForm extends Form {\n\n // Constructor\n constructor() {\n // Pass our model to the base class.\n super(\n {\n username: ''\n });\n }\n\n onValidate() {\n super.onValidate();\n\n // TODO\n this.validator.fields.username.checkNotEmpty();\n }\n\n async onSubmit() {\n // Send the forgot password request to the API\n const response = await site.authenticator.sendForgotPassword(this.model.username);\n\n // If success, return true, otherwise return false and add any messages returned to the validator\n if (response.succeeded) {\n return true;\n }\n else {\n this.validator.reset();\n this.validator.addMessages(response.messages);\n\n return false;\n }\n }\n}\n","// Imports ----\nimport Form from '../../base/classes/Form';\nimport { site } from '../../base/classes/NucleusSite';\n\nexport default class ResetPasswordOTPForm extends Form {\n\n // Constructor\n constructor(router) {\n // Pass our model to the base class\n super(\n {\n token: '', // OTP Received from the mail\n username: ''\n });\n\n this.router = router;\n\n this.validator.fields.token.isRequired = true;\n this.validator.fields.username.isRequired = true;\n\n this.validate();\n }\n\n onValidate() {\n super.onValidate();\n }\n\n async onValidateAsync() {\n super.onValidateAsync();\n }\n\n async onSubmit() {\n const response = await site.authenticator.verifyResetPasswordOTP(this.model.username, this.model.token)\n if (response.errorMessage != '') {\n this.validator.addError(response.errorMessage);\n }\n return response.success\n\n }\n\n async onResend() {\n const response = await site.authenticator.generateOTPForResetPassword(this.model.username)\n \n if(response.success) {\n this.validator.addOk(response.message)\n } else {\n this.validator.addError(response.errorMessage);\n }\n }\n}","\n\n\n\n","import script from \"./ForgotPassword.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ForgotPassword.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ForgotPassword.vue?vue&type=style&index=0&id=e0793256&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","// ResetPasswordForm\n// Implements the form that allows a user to reset their password.\n\n// Imports ----\nimport Form from '../../base/classes/Form';\nimport { site } from '../../base/classes/NucleusSite';\n\n\nexport default class VerifyForm extends Form {\n\n // Constructor\n constructor() {\n // Pass our model to the base class.\n super({\n token: '',\n email: ''\n });\n }\n\n onValidate() {\n super.onValidate();\n\n this.validator.fields.email.checkNotEmpty();\n this.validator.fields.token.checkNotEmpty();\n }\n\n async onValidateAsync() {\n \n }\n\n async onSubmit() {\n const response = await site.verifyEmail(this.model.token, this.model.email)\n if (response.succeeded) {\n this.validator.addOk('Your Email has been verified, please login to continue');\n return true\n } else {\n const messages = response.messages\n if (messages && messages.length > 0) {\n const message = messages[0]\n if (message.messageId.id == 'AlreadyVerified') {\n this.validator.addOk('Email is already verified, please try logging in');\n return true\n } else if (message.messageId.id == 'InvalidEmail') {\n this.validator.addError('Your verification link is not valid.');\n return true\n } else {\n this.validator.addError(\"Your link might be expired, please verify your email again.\");\n return false\n }\n }else {\n this.validator.addError(\"Your link might be expired, please verify your email again.\");\n return false\n }\n }\n }\n\n async onResend() {\n const response = await site.resendConfirmEmail(this.model.email)\n if (response.succeeded) {\n this.validator.addOk('Your verification email has been sent');\n return true\n } else {\n this.validator.addError(\"Something went wrong, please try again.\");\n return false\n }\n }\n}\n","\n\n\n\n\n","import script from \"./VerifyEmail.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./VerifyEmail.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./VerifyEmail.vue?vue&type=style&index=0&id=f394d5f6&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n// Authenticator\n// Base class for authenticators.\n\nexport default class {\n\n // Constructor\n constructor(site) {\n this.site = site;\n\n this.EventIDs = {\n AUTH_SIGNED_IN: 'AUTH_SIGNED_IN', // User signed in\n AUTH_SIGNED_OUT: 'AUTH_SIGNED_OUT', // User signed out\n AUTH_FAILED: 'AUTH_FAILED' // User auth failed\n };\n }\n\n /**\n * Called to allow the authenticator to determine whether the user is currently logged in.\n * \n */\n async isSignedIn() {\n console.warn('Default Authenticator.isSignedIn() called');\n return false;\n }\n\n /**\n * Method to be overridden by authenticators that provide a local sign-in option. Those that redirect outside of the site,\n * e.g. SSO, normally do not need this function and will override getSignInRoute() instead.\n */\n // eslint-disable-next-line\n async signIn(username, password) {\n console.warn('Default Authenticator.signIn() called');\n }\n\n /**\n * Called to allow the authenticator to redirect to sign in if needed. Local authenticators should return a route, where\n * authenticators that use SSO should perform any redirect needed, preferably retaining the supplied route as an eventual\n * return destination.\n */\n // eslint-disable-next-line\n async getSignInRoute(route) {\n console.warn('Default Authenticator.getSignInRoute() called');\n }\n\n /**\n * Called to sign the user out.\n */\n async signOut() {\n\n }\n\n /**\n * Called to allow the authenticator to return the route to redirect to after signing out.\n */\n async getSignOutRoute() {\n console.warn('Default Authenticator.getSignOutRoute() called');\n }\n\n /**\n * Called for authenticated API calls to apply the appropriate header(s).\n */\n async getApiHeaders() {\n console.warn('Default Authenticator.getApiHeaders() called');\n return null;\n }\n}","\n// AspNetAuthenticator\n// Provides functionality for local authentication via DD.Nucleus.Base.Security.AspNetCoreAuthentication.\n\n// Constants ----\nconst JWT_TOKEN_KEY = 'access_token';\nconst I_TOKEN = 'i-token';\nconst AUTHENTICATOR_KEY = 'Authenticator';\n\n// Imports ----\nimport Authenticator from '../../base/classes/Authenticator';\nimport useApi from '../../base/services/api';\nimport VueCookies from 'vue-cookies';\n\nconst { POST, POSTFormUrlEncoded } = useApi();\n\n\nexport default class AspNetAuthenticator extends Authenticator {\n\n // Constructor\n constructor(site) {\n super(site);\n }\n\n // #region Authenticator Overrides\n\n /**\n * Called to determine whether the user is currently logged in.\n * \n */\n async isSignedIn() {\n const token = this.#getAccessToken();\n\n if (token) {\n const parsed = this.#parseToken(token);\n\n if (parsed.exp < Date.now() / 1000) {\n this.#trace('JWT expired, removing token from localStorage');\n this.#removeToken();\n this.#removeAuthenticator();\n\n return false;\n }\n else\n return true;\n }\n else {\n return false;\n }\n }\n\n /**\n * Called to allow the authenticator to redirect to sign in if needed. Local authenticators should return a route, where\n * authenticators that use SSO should perform any redirect needed, preferably retaining the supplied route as an eventual\n * return destination.\n */\n async getSignInRoute(/* route */) {\n return { name: 'SignIn' };\n }\n\n /**\n * Signs the user out by removing the stored token.\n * Updated code to signout user the server if enabled\n */\n async signOut() {\n\n const url = '/api/asp-net-auth/logout';\n try {\n this.#trace('Attempting to sign out the user');\n\n const response = await POST(url);\n if (response.succeeded) {\n this.#trace('Successfully logged out the user');\n VueCookies.remove('current_activity')\n return;\n }\n }\n catch (error) {\n return;\n }\n finally {\n this.#removeToken();\n this.#removeAuthenticator();\n }\n }\n\n /**\n * Called to allow the authenticator to redirect to sign out.\n */\n async getSignOutRoute() {\n return { name: 'SignIn', query: { signout: 'true' } };\n }\n\n /**\n * Called for authenticated API calls to apply the appropriate header(s).\n */\n async getApiHeaders() {\n // If User is authenticated, add header with access token\n if (this.site.user.isAuthenticated) {\n const headers = {};\n\n const impersonatedUserToken = sessionStorage.getItem(I_TOKEN);\n if (impersonatedUserToken) {\n headers[I_TOKEN] = impersonatedUserToken;\n }\n\n // Get access token from localStorage\n const token = await this.#getAccessToken();\n\n headers['Authorization'] = `Bearer ${token}`;\n headers['Authenticator'] = localStorage.getItem(\"Authenticator\");\n\n return headers;\n }\n else\n return null;\n }\n\n /**\n * delete impersonate session storage.\n */\n deleteImpersonateSession() {\n sessionStorage.removeItem(I_TOKEN);\n }\n\n\n // #endregion\n\n\n /**\n * Called from a sign-in form to actually sign the user in.\n * @param {string} username\n * @param {string} password\n */\n async signIn(username, password) {\n const url = '/api/asp-net-auth/login';\n const httpOptions = this.getHTTPOptions();\n\n const result = {\n isMFAEnabled: false,\n isSignedIn: false,\n errorMessage: ''\n }\n\n try {\n this.#trace('Attempting to sign in the user');\n\n // TODO: rather than emitting success/failure, is it better to add\n // a list of messages to asp-net-auth and the authorization interface\n // to allow the consumer(s) to retrieve success/failure messages?\n const response = await POSTFormUrlEncoded(url, {\n grant_type: 'password',\n username: username,\n password: password\n }, httpOptions);\n\n if (response.isOTPSent) {\n this.#trace('Successfully sent an OTP');\n result.isSignedIn = true\n result.isMFAEnabled = true\n return result;\n }\n else if (response.access_token) {\n this.#trace('Successfully logged in the user');\n\n // Store the token in localStorage and make it available to HTTP request headers\n this.#storeToken(response.access_token);\n this.#storeAuthenticator(\"AspNetAuthenticator\");\n\n VueCookies.set('current_activity', 'timer')\n result.isSignedIn = true;\n result.isMFAEnabled = false;\n\n return result;\n }\n else {\n return result;\n }\n }\n catch (error) {\n result.errorMessage = error.data.error_description || '';\n return result;\n }\n }\n\n\n /**\n * Called for authenticating via user supplied OTP/token\n * @param {string} username\n * @param {string} token\n */\n async loginWithOTP(username, token) {\n const url = '/api/asp-net-auth/login-mfa';\n const httpOptions = this.getHTTPOptions();\n\n const result = {\n isMFAEnabled: true,\n isSignedIn: false,\n message: \"Login attempt failed.\"\n }\n\n try {\n this.#trace('Attempting to sign in the user with OTP');\n const response = await POSTFormUrlEncoded(url, {\n grant_type: 'mfa-otp',\n username: username,\n token: token\n }, httpOptions);\n\n if (response.access_token) {\n this.#trace('Successfully logged in the user');\n\n // Store the token in localStorage and make it available to HTTP request headers\n this.#storeToken(response.access_token);\n this.#storeAuthenticator(\"AspNetAuthenticator\");\n VueCookies.set('current_activity', 'timer')\n result.isSignedIn = true;\n return result;\n } else {\n return result;\n }\n }\n catch (error) {\n result.isSignedIn = false;\n result.message = error.data.error_description || '';\n return result;\n }\n }\n\n\n /**\n * Called to generate a new OTP/token for a user\n * @param {string} username\n */\n async generateOTP(username) {\n const url = '/api/asp-net-auth/login-mfa-token';\n const httpOptions = this.getHTTPOptions();\n\n const result = {\n isMFAEnabled: true,\n isSignedIn: false,\n message: \"OTP generation failed, please try again\"\n }\n\n try {\n this.#trace('Attempting to generate new OTP');\n const response = await POSTFormUrlEncoded(url, {\n grant_type: 'mfa-otp',\n username: username\n }, httpOptions);\n\n if (response.isOTPSent) {\n this.#trace('Successfully sent an OTP');\n result.isSignedIn = true;\n result.message = \"OTP has been sent to your email.\"\n VueCookies.set('current_activity', 'timer')\n return result;\n } else {\n return result;\n }\n }\n catch (error) {\n return result;\n }\n }\n\n \n /**\n * Called to generate a new OTP/token for a user\n * @param {string} username\n */\n async generateOTPForResetPassword(username) {\n const url = '/api/site/send-reset-password-mfa-token';\n const httpOptions = this.getHTTPOptions();\n\n const result = {\n success: false,\n message: '',\n errorMessage: \"\"\n }\n\n try {\n this.#trace('Attempting to generate new OTP for reset password');\n const response = await POSTFormUrlEncoded(url, {\n grant_type: 'mfa-otp',\n username: username\n }, httpOptions);\n\n if (response.succeeded) {\n this.#trace('Successfully sent an OTP for reset password');\n result.success = true;\n result.message = \"OTP has been sent to your email.\"\n return result;\n } else {\n return result;\n }\n }\n catch (error) {\n result.errorMessage = error.data.error_description || '';\n return result;\n }\n }\n\n /**\n * Called to verify otp for reset passeord\n * @param {string} username\n * @param {string} token\n */\n async verifyResetPasswordOTP(username, token) {\n const url = '/api/site/send-reset-password-mfa';\n const httpOptions = this.getHTTPOptions();\n const result = {\n success: false,\n errorMessage: ''\n }\n \n try {\n this.#trace('Attempting to verify password reset OTP');\n const response = await POSTFormUrlEncoded(url, {\n grant_type: 'mfa-otp',\n email: username,\n token: token\n }, httpOptions);\n\n if(response.succeeded) {\n result.success = true\n return result\n }\n return result\n }\n catch (error) {\n result.errorMessage = error.data.error_description || '';\n return result;\n }\n }\n\n /**\n * Called from various areas to determine the validity of user's requested password.\n * @param {string} username\n * @param {string} email\n * @param {string} password\n * @param {string} confirmPassword\n */\n async validatePassword(username, email, password, confirmPassword) {\n const url = '/api/asp-net-auth/account/validate-password';\n\n try {\n this.#trace('Validating password');\n\n // Pass the user/password details to the API to determine validity and report back messages\n const response = await POST(url, {\n username: username,\n email: email,\n password: password,\n confirmPassword: confirmPassword\n });\n\n return response;\n }\n catch (error) {\n throw error;\n }\n }\n\n /**\n * Sends a forgot password request.\n */\n async sendForgotPassword(username) {\n // TODO: This URL may change, as well as the use of email here versus username\n const url = 'api/site/send-reset-password';\n\n try {\n this.#trace('Sending reset password request');\n\n const response = await this.site.api.post(url, { email: username });\n\n return response;\n }\n catch (error) {\n throw error;\n }\n }\n\n /**\n * Changes the account password\n */\n async changePassword(oldPassword, newPassword) {\n const url = 'api/site/update-password';\n\n try {\n this.#trace('Sending update password request');\n\n const response = await this.site.api.post(url, { currentPassword: oldPassword, newPassword: newPassword });\n\n return response;\n }\n catch (error) {\n throw error;\n }\n }\n\n /**\n * Validates a reset password link\n * @param {string} linkId\n */\n async validateResetPasswordLink(linkId) {\n const url = '/api/asp-net-auth/account/validate-reset-password-link';\n\n try {\n this.#trace('Sending validate reset password link request');\n const response = await this.site.api.post(url, { linkId: linkId });\n\n return response;\n }\n catch (error) {\n throw error;\n }\n }\n\n /**\n * \n * @param {string} linkId\n * @param {string} newPassword\n */\n async resetPasswordFromLink(linkId, newPassword) {\n const url = '/api/site/reset-password-from-link';\n\n try {\n const response = await this.site.api.post(url, { linkId: linkId, newPassword: newPassword });\n\n return response;\n }\n catch (error) {\n throw error;\n }\n }\n\n /**\n * \n * @param {string} linkId\n * @param {string} newPassword\n */\n async setPasswordFromLink(linkId, newPassword) {\n const url = '/api/site/set-password-from-link';\n\n try {\n const response = await this.site.api.post(url, { linkId: linkId, newPassword: newPassword });\n\n return response;\n }\n catch (error) {\n throw error;\n }\n }\n\n /**\n * Updates user name and email\n * TODO: Keep this?\n */\n async updateInfo(username, email) {\n var response = await this.site.api.post('api/user/current', { username: username, email: email });\n\n return response.succeeded;\n }\n\n getHTTPOptions() {\n return {\n headers: { 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' }\n }\n }\n\n\n // #region Private Functions\n\n // Gets an API JWT access token for the active account.\n #getAccessToken() {\n const token = localStorage.getItem(JWT_TOKEN_KEY) || false;\n\n if (token) {\n this.#trace(`Access token retrieved from localStorage - ${token.substring(0, 8)}...`);\n }\n\n return token;\n }\n\n\n // Adds navigatingTo path to localStorage\n storeNavigatingTo(path) {\n }\n\n // Decode the provided token.\n #parseToken(token) {\n if (token.indexOf('.')) {\n const payload = token.split('.')[1];\n\n // TODO: atob() is deprecated\n return JSON.parse(atob(payload));\n }\n\n return false;\n }\n\n // Removes the JWT stored in localStorage.\n #removeToken() {\n localStorage.removeItem(JWT_TOKEN_KEY);\n }\n\n // Removes authenticator stored in localStorage.\n #removeAuthenticator() {\n localStorage.removeItem(AUTHENTICATOR_KEY);\n }\n\n // Adds the provided token to localStorage.\n #storeToken(token) {\n localStorage.setItem(JWT_TOKEN_KEY, token);\n }\n\n // Adds authenticator token to localStorage.\n #storeAuthenticator(authenticatorName) {\n localStorage.setItem(AUTHENTICATOR_KEY, authenticatorName);\n }\n\n // Returns whether tracing is enabled\n #doTrace() {\n return (process.env.VUE_APP_TRACE_ASP_NET_AUTH === 'true');\n }\n\n // Traces a message, if enabled.\n #trace(message, ...args) {\n if (this.#doTrace())\n console.log('[ASP.NET AUTH] ' + message, ...args);\n }\n\n // #endregion\n}","// JwtAuthenticator\n// Provides functionality for jwt authentication\n\n// Constants ----\nconst JWT_TOKEN_KEY = 'access_token';\nconst AUTHENTICATOR_KEY = 'Authenticator';\n\nimport Authenticator from '../../base/classes/Authenticator';\nimport useApi from '../../base/services/api';\nimport VueCookies from 'vue-cookies';\n\nconst { POST } = useApi();\n\nexport default class JwtAuthenticator extends Authenticator {\n constructor(site, signInUrl, router) {\n super(site);\n\n this.signInUrl = signInUrl; //sign-in url responsible for jwt token generation\n this.router = router;\n }\n\n\n async signInWithHttpPost(data, httpOptions) {\n let response;\n try {\n this.#trace('Attempting to sign in the user');\n\n response = await POST(this.signInUrl, data, httpOptions);\n\n if (response.accessToken) {\n this.#trace('Successfully logged in the user');\n\n this.#storeToken(response.accessToken);\n this.#storeAuthenticator(\"JwtAuthenticator\");\n VueCookies.set('current_activity', 'timer')\n\n this.site.user.isAuthenticated = true;\n this.site.refreshCurrentUser(true).then(() => {\n this.router.push({ name: 'Home' });\n }).catch(error => {\n this.#trace(error);\n this.#removeToken();\n this.#removeAuthenticator();\n // TODO: redirect user to dedicated fallback frontend component \n //this.router.push({ name: 'SignIn' });\n return error;\n });\n }\n else {\n this.#trace('Can not obtain access token');\n return response;\n //this.router.push({ name: 'SignIn' });\n }\n }\n catch (error) {\n this.#trace(error);\n return error;\n //this.router.push({ name: 'SignIn' });\n }\n }\n\n async signIn(data, httpOptions) {\n try {\n this.#trace('Attempting to sign in the user');\n\n const response = await POST(this.signInUrl, data, httpOptions);\n\n if (response.accessToken) {\n this.#trace('Successfully logged in the user');\n\n this.#storeToken(response.accessToken);\n this.#storeAuthenticator(\"JwtAuthenticator\");\n VueCookies.set('current_activity', 'timer')\n\n this.site.user.isAuthenticated = true;\n this.site.refreshCurrentUser(true).then(() => {\n this.router.push({ name: 'Home' });\n }).catch(error => {\n this.#trace(error);\n this.#removeToken();\n this.#removeAuthenticator();\n // TODO: redirect user to dedicated fallback frontend component \n this.router.push({ name: 'SignIn' });\n });\n }\n else {\n this.#trace('Can not obtain access token');\n this.router.push({ name: 'SignIn' });\n }\n }\n catch (error) {\n this.#trace(error);\n this.router.push({ name: 'SignIn' });\n }\n }\n\n // Removes the JWT stored in localStorage.\n #removeToken() {\n localStorage.removeItem(JWT_TOKEN_KEY);\n }\n\n // Removes authenticator stored in localStorage.\n #removeAuthenticator() {\n localStorage.removeItem(AUTHENTICATOR_KEY);\n }\n\n // Adds the provided token to localStorage.\n #storeToken(token) {\n localStorage.setItem(JWT_TOKEN_KEY, token);\n }\n\n // Adds authenticator token to localStorage.\n #storeAuthenticator(authenticatorName) {\n localStorage.setItem(AUTHENTICATOR_KEY, authenticatorName);\n }\n\n // Returns whether tracing is enabled\n #doTrace() {\n return (process.env.VUE_APP_TRACE_JWT === 'true');\n }\n\n // Traces a message, if enabled.\n #trace(message, ...args) {\n if (this.#doTrace())\n console.log('[JWT AUTH] ' + message, ...args);\n }\n\n // Adds navigatingTo path to localStorage if needed\n storeNavigatingTo(path) {\n }\n}","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\n\nexport { __assign, __awaiter, __extends, __generator, __read, __rest, __spread };\n//# sourceMappingURL=_tslib.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Enumeration of operations that are instrumented by have their performance measured by the PerformanceClient.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nvar PerformanceEvents;\r\n(function (PerformanceEvents) {\r\n /**\r\n * acquireTokenByCode API (msal-browser and msal-node).\r\n * Used to acquire tokens by trading an authorization code against the token endpoint.\r\n */\r\n PerformanceEvents[\"AcquireTokenByCode\"] = \"acquireTokenByCode\";\r\n /**\r\n * acquireTokenByRefreshToken API (msal-browser and msal-node).\r\n * Used to renew an access token using a refresh token against the token endpoint.\r\n */\r\n PerformanceEvents[\"AcquireTokenByRefreshToken\"] = \"acquireTokenByRefreshToken\";\r\n /**\r\n * acquireTokenSilent API (msal-browser and msal-node).\r\n * Used to silently acquire a new access token (from the cache or the network).\r\n */\r\n PerformanceEvents[\"AcquireTokenSilent\"] = \"acquireTokenSilent\";\r\n /**\r\n * acquireTokenSilentAsync (msal-browser).\r\n * Internal API for acquireTokenSilent.\r\n */\r\n PerformanceEvents[\"AcquireTokenSilentAsync\"] = \"acquireTokenSilentAsync\";\r\n /**\r\n * acquireTokenPopup (msal-browser).\r\n * Used to acquire a new access token interactively through pop ups\r\n */\r\n PerformanceEvents[\"AcquireTokenPopup\"] = \"acquireTokenPopup\";\r\n /**\r\n * getPublicKeyThumbprint API in CryptoOpts class (msal-browser).\r\n * Used to generate a public/private keypair and generate a public key thumbprint for pop requests.\r\n */\r\n PerformanceEvents[\"CryptoOptsGetPublicKeyThumbprint\"] = \"cryptoOptsGetPublicKeyThumbprint\";\r\n /**\r\n * signJwt API in CryptoOpts class (msal-browser).\r\n * Used to signed a pop token.\r\n */\r\n PerformanceEvents[\"CryptoOptsSignJwt\"] = \"cryptoOptsSignJwt\";\r\n /**\r\n * acquireToken API in the SilentCacheClient class (msal-browser).\r\n * Used to read access tokens from the cache.\r\n */\r\n PerformanceEvents[\"SilentCacheClientAcquireToken\"] = \"silentCacheClientAcquireToken\";\r\n /**\r\n * acquireToken API in the SilentIframeClient class (msal-browser).\r\n * Used to acquire a new set of tokens from the authorize endpoint in a hidden iframe.\r\n */\r\n PerformanceEvents[\"SilentIframeClientAcquireToken\"] = \"silentIframeClientAcquireToken\";\r\n /**\r\n * acquireToken API in SilentRereshClient (msal-browser).\r\n * Used to acquire a new set of tokens from the token endpoint using a refresh token.\r\n */\r\n PerformanceEvents[\"SilentRefreshClientAcquireToken\"] = \"silentRefreshClientAcquireToken\";\r\n /**\r\n * ssoSilent API (msal-browser).\r\n * Used to silently acquire an authorization code and set of tokens using a hidden iframe.\r\n */\r\n PerformanceEvents[\"SsoSilent\"] = \"ssoSilent\";\r\n /**\r\n * getDiscoveredAuthority API in StandardInteractionClient class (msal-browser).\r\n * Used to load authority metadata for a request.\r\n */\r\n PerformanceEvents[\"StandardInteractionClientGetDiscoveredAuthority\"] = \"standardInteractionClientGetDiscoveredAuthority\";\r\n /**\r\n * acquireToken APIs in msal-browser.\r\n * Used to make an /authorize endpoint call with native brokering enabled.\r\n */\r\n PerformanceEvents[\"FetchAccountIdWithNativeBroker\"] = \"fetchAccountIdWithNativeBroker\";\r\n /**\r\n * acquireToken API in NativeInteractionClient class (msal-browser).\r\n * Used to acquire a token from Native component when native brokering is enabled.\r\n */\r\n PerformanceEvents[\"NativeInteractionClientAcquireToken\"] = \"nativeInteractionClientAcquireToken\";\r\n /**\r\n * Time spent creating default headers for requests to token endpoint\r\n */\r\n PerformanceEvents[\"BaseClientCreateTokenRequestHeaders\"] = \"baseClientCreateTokenRequestHeaders\";\r\n /**\r\n * Used to measure the time taken for completing embedded-broker handshake (PW-Broker).\r\n */\r\n PerformanceEvents[\"BrokerHandhshake\"] = \"brokerHandshake\";\r\n /**\r\n * acquireTokenByRefreshToken API in BrokerClientApplication (PW-Broker) .\r\n */\r\n PerformanceEvents[\"AcquireTokenByRefreshTokenInBroker\"] = \"acquireTokenByRefreshTokenInBroker\";\r\n /**\r\n * Time taken for token acquisition by broker\r\n */\r\n PerformanceEvents[\"AcquireTokenByBroker\"] = \"acquireTokenByBroker\";\r\n /**\r\n * Time spent on the network for refresh token acquisition\r\n */\r\n PerformanceEvents[\"RefreshTokenClientExecuteTokenRequest\"] = \"refreshTokenClientExecuteTokenRequest\";\r\n /**\r\n * Time taken for acquiring refresh token , records RT size\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireToken\"] = \"refreshTokenClientAcquireToken\";\r\n /**\r\n * Time taken for acquiring cached refresh token\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireTokenWithCachedRefreshToken\"] = \"refreshTokenClientAcquireTokenWithCachedRefreshToken\";\r\n /**\r\n * acquireTokenByRefreshToken API in RefreshTokenClient (msal-common).\r\n */\r\n PerformanceEvents[\"RefreshTokenClientAcquireTokenByRefreshToken\"] = \"refreshTokenClientAcquireTokenByRefreshToken\";\r\n /**\r\n * Helper function to create token request body in RefreshTokenClient (msal-common).\r\n */\r\n PerformanceEvents[\"RefreshTokenClientCreateTokenRequestBody\"] = \"refreshTokenClientCreateTokenRequestBody\";\r\n /**\r\n * acquireTokenFromCache (msal-browser).\r\n * Internal API for acquiring token from cache\r\n */\r\n PerformanceEvents[\"AcquireTokenFromCache\"] = \"acquireTokenFromCache\";\r\n /**\r\n * acquireTokenBySilentIframe (msal-browser).\r\n * Internal API for acquiring token by silent Iframe\r\n */\r\n PerformanceEvents[\"AcquireTokenBySilentIframe\"] = \"acquireTokenBySilentIframe\";\r\n /**\r\n * Internal API for initializing base request in BaseInteractionClient (msal-browser)\r\n */\r\n PerformanceEvents[\"InitializeBaseRequest\"] = \"initializeBaseRequest\";\r\n /**\r\n * Internal API for initializing silent request in SilentCacheClient (msal-browser)\r\n */\r\n PerformanceEvents[\"InitializeSilentRequest\"] = \"initializeSilentRequest\";\r\n PerformanceEvents[\"InitializeClientApplication\"] = \"initializeClientApplication\";\r\n /**\r\n * Helper function in SilentIframeClient class (msal-browser).\r\n */\r\n PerformanceEvents[\"SilentIframeClientTokenHelper\"] = \"silentIframeClientTokenHelper\";\r\n /**\r\n * SilentHandler\r\n */\r\n PerformanceEvents[\"SilentHandlerInitiateAuthRequest\"] = \"silentHandlerInitiateAuthRequest\";\r\n PerformanceEvents[\"SilentHandlerMonitorIframeForHash\"] = \"silentHandlerMonitorIframeForHash\";\r\n PerformanceEvents[\"SilentHandlerLoadFrame\"] = \"silentHandlerLoadFrame\";\r\n /**\r\n * Helper functions in StandardInteractionClient class (msal-browser)\r\n */\r\n PerformanceEvents[\"StandardInteractionClientCreateAuthCodeClient\"] = \"standardInteractionClientCreateAuthCodeClient\";\r\n PerformanceEvents[\"StandardInteractionClientGetClientConfiguration\"] = \"standardInteractionClientGetClientConfiguration\";\r\n PerformanceEvents[\"StandardInteractionClientInitializeAuthorizationRequest\"] = \"standardInteractionClientInitializeAuthorizationRequest\";\r\n PerformanceEvents[\"StandardInteractionClientInitializeAuthorizationCodeRequest\"] = \"standardInteractionClientInitializeAuthorizationCodeRequest\";\r\n /**\r\n * getAuthCodeUrl API (msal-browser and msal-node).\r\n */\r\n PerformanceEvents[\"GetAuthCodeUrl\"] = \"getAuthCodeUrl\";\r\n /**\r\n * Functions from InteractionHandler (msal-browser)\r\n */\r\n PerformanceEvents[\"HandleCodeResponseFromServer\"] = \"handleCodeResponseFromServer\";\r\n PerformanceEvents[\"HandleCodeResponseFromHash\"] = \"handleCodeResponseFromHash\";\r\n PerformanceEvents[\"UpdateTokenEndpointAuthority\"] = \"updateTokenEndpointAuthority\";\r\n /**\r\n * APIs in Authorization Code Client (msal-common)\r\n */\r\n PerformanceEvents[\"AuthClientAcquireToken\"] = \"authClientAcquireToken\";\r\n PerformanceEvents[\"AuthClientExecuteTokenRequest\"] = \"authClientExecuteTokenRequest\";\r\n PerformanceEvents[\"AuthClientCreateTokenRequestBody\"] = \"authClientCreateTokenRequestBody\";\r\n PerformanceEvents[\"AuthClientCreateQueryString\"] = \"authClientCreateQueryString\";\r\n /**\r\n * Generate functions in PopTokenGenerator (msal-common)\r\n */\r\n PerformanceEvents[\"PopTokenGenerateCnf\"] = \"popTokenGenerateCnf\";\r\n PerformanceEvents[\"PopTokenGenerateKid\"] = \"popTokenGenerateKid\";\r\n /**\r\n * handleServerTokenResponse API in ResponseHandler (msal-common)\r\n */\r\n PerformanceEvents[\"HandleServerTokenResponse\"] = \"handleServerTokenResponse\";\r\n /**\r\n * Authority functions\r\n */\r\n PerformanceEvents[\"AuthorityFactoryCreateDiscoveredInstance\"] = \"authorityFactoryCreateDiscoveredInstance\";\r\n PerformanceEvents[\"AuthorityResolveEndpointsAsync\"] = \"authorityResolveEndpointsAsync\";\r\n PerformanceEvents[\"AuthorityGetCloudDiscoveryMetadataFromNetwork\"] = \"authorityGetCloudDiscoveryMetadataFromNetwork\";\r\n PerformanceEvents[\"AuthorityUpdateCloudDiscoveryMetadata\"] = \"authorityUpdateCloudDiscoveryMetadata\";\r\n PerformanceEvents[\"AuthorityGetEndpointMetadataFromNetwork\"] = \"authorityGetEndpointMetadataFromNetwork\";\r\n PerformanceEvents[\"AuthorityUpdateEndpointMetadata\"] = \"authorityUpdateEndpointMetadata\";\r\n PerformanceEvents[\"AuthorityUpdateMetadataWithRegionalInformation\"] = \"authorityUpdateMetadataWithRegionalInformation\";\r\n /**\r\n * Region Discovery functions\r\n */\r\n PerformanceEvents[\"RegionDiscoveryDetectRegion\"] = \"regionDiscoveryDetectRegion\";\r\n PerformanceEvents[\"RegionDiscoveryGetRegionFromIMDS\"] = \"regionDiscoveryGetRegionFromIMDS\";\r\n PerformanceEvents[\"RegionDiscoveryGetCurrentVersion\"] = \"regionDiscoveryGetCurrentVersion\";\r\n PerformanceEvents[\"AcquireTokenByCodeAsync\"] = \"acquireTokenByCodeAsync\";\r\n PerformanceEvents[\"GetEndpointMetadataFromNetwork\"] = \"getEndpointMetadataFromNetwork\";\r\n PerformanceEvents[\"GetCloudDiscoveryMetadataFromNetworkMeasurement\"] = \"getCloudDiscoveryMetadataFromNetworkMeasurement\";\r\n PerformanceEvents[\"HandleRedirectPromiseMeasurement\"] = \"handleRedirectPromiseMeasurement\";\r\n PerformanceEvents[\"UpdateCloudDiscoveryMetadataMeasurement\"] = \"updateCloudDiscoveryMetadataMeasurement\";\r\n PerformanceEvents[\"UsernamePasswordClientAcquireToken\"] = \"usernamePasswordClientAcquireToken\";\r\n PerformanceEvents[\"NativeMessageHandlerHandshake\"] = \"nativeMessageHandlerHandshake\";\r\n /**\r\n * Cache operations\r\n */\r\n PerformanceEvents[\"ClearTokensAndKeysWithClaims\"] = \"clearTokensAndKeysWithClaims\";\r\n})(PerformanceEvents || (PerformanceEvents = {}));\r\n/**\r\n * State of the performance event.\r\n *\r\n * @export\r\n * @enum {number}\r\n */\r\nvar PerformanceEventStatus;\r\n(function (PerformanceEventStatus) {\r\n PerformanceEventStatus[PerformanceEventStatus[\"NotStarted\"] = 0] = \"NotStarted\";\r\n PerformanceEventStatus[PerformanceEventStatus[\"InProgress\"] = 1] = \"InProgress\";\r\n PerformanceEventStatus[PerformanceEventStatus[\"Completed\"] = 2] = \"Completed\";\r\n})(PerformanceEventStatus || (PerformanceEventStatus = {}));\r\nvar IntFields = new Set([\r\n \"accessTokenSize\",\r\n \"durationMs\",\r\n \"idTokenSize\",\r\n \"matsSilentStatus\",\r\n \"matsHttpStatus\",\r\n \"refreshTokenSize\",\r\n \"queuedTimeMs\",\r\n \"startTimeMs\",\r\n \"status\",\r\n]);\n\nexport { IntFields, PerformanceEventStatus, PerformanceEvents };\n//# sourceMappingURL=PerformanceEvent.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n};\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\n\nexport { __assign, __awaiter, __extends, __generator, __spreadArrays };\n//# sourceMappingURL=_tslib.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar Constants = {\r\n LIBRARY_NAME: \"MSAL.JS\",\r\n SKU: \"msal.js.common\",\r\n // Prefix for all library cache entries\r\n CACHE_PREFIX: \"msal\",\r\n // default authority\r\n DEFAULT_AUTHORITY: \"https://login.microsoftonline.com/common/\",\r\n DEFAULT_AUTHORITY_HOST: \"login.microsoftonline.com\",\r\n DEFAULT_COMMON_TENANT: \"common\",\r\n // ADFS String\r\n ADFS: \"adfs\",\r\n DSTS: \"dstsv2\",\r\n // Default AAD Instance Discovery Endpoint\r\n AAD_INSTANCE_DISCOVERY_ENDPT: \"https://login.microsoftonline.com/common/discovery/instance?api-version=1.1&authorization_endpoint=\",\r\n // CIAM URL\r\n CIAM_AUTH_URL: \".ciamlogin.com\",\r\n AAD_TENANT_DOMAIN_SUFFIX: \".onmicrosoft.com\",\r\n // Resource delimiter - used for certain cache entries\r\n RESOURCE_DELIM: \"|\",\r\n // Placeholder for non-existent account ids/objects\r\n NO_ACCOUNT: \"NO_ACCOUNT\",\r\n // Claims\r\n CLAIMS: \"claims\",\r\n // Consumer UTID\r\n CONSUMER_UTID: \"9188040d-6c67-4c5b-b112-36a304b66dad\",\r\n // Default scopes\r\n OPENID_SCOPE: \"openid\",\r\n PROFILE_SCOPE: \"profile\",\r\n OFFLINE_ACCESS_SCOPE: \"offline_access\",\r\n EMAIL_SCOPE: \"email\",\r\n // Default response type for authorization code flow\r\n CODE_RESPONSE_TYPE: \"code\",\r\n CODE_GRANT_TYPE: \"authorization_code\",\r\n RT_GRANT_TYPE: \"refresh_token\",\r\n FRAGMENT_RESPONSE_MODE: \"fragment\",\r\n S256_CODE_CHALLENGE_METHOD: \"S256\",\r\n URL_FORM_CONTENT_TYPE: \"application/x-www-form-urlencoded;charset=utf-8\",\r\n AUTHORIZATION_PENDING: \"authorization_pending\",\r\n NOT_DEFINED: \"not_defined\",\r\n EMPTY_STRING: \"\",\r\n NOT_APPLICABLE: \"N/A\",\r\n FORWARD_SLASH: \"/\",\r\n IMDS_ENDPOINT: \"http://169.254.169.254/metadata/instance/compute/location\",\r\n IMDS_VERSION: \"2020-06-01\",\r\n IMDS_TIMEOUT: 2000,\r\n AZURE_REGION_AUTO_DISCOVER_FLAG: \"TryAutoDetect\",\r\n REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX: \"login.microsoft.com\",\r\n REGIONAL_AUTH_NON_MSI_QUERY_STRING: \"allowestsrnonmsi=true\",\r\n KNOWN_PUBLIC_CLOUDS: [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"],\r\n TOKEN_RESPONSE_TYPE: \"token\",\r\n ID_TOKEN_RESPONSE_TYPE: \"id_token\",\r\n SHR_NONCE_VALIDITY: 240,\r\n INVALID_INSTANCE: \"invalid_instance\",\r\n};\r\nvar OIDC_DEFAULT_SCOPES = [\r\n Constants.OPENID_SCOPE,\r\n Constants.PROFILE_SCOPE,\r\n Constants.OFFLINE_ACCESS_SCOPE\r\n];\r\nvar OIDC_SCOPES = __spreadArrays(OIDC_DEFAULT_SCOPES, [\r\n Constants.EMAIL_SCOPE\r\n]);\r\n/**\r\n * Request header names\r\n */\r\nvar HeaderNames;\r\n(function (HeaderNames) {\r\n HeaderNames[\"CONTENT_TYPE\"] = \"Content-Type\";\r\n HeaderNames[\"RETRY_AFTER\"] = \"Retry-After\";\r\n HeaderNames[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n HeaderNames[\"WWWAuthenticate\"] = \"WWW-Authenticate\";\r\n HeaderNames[\"AuthenticationInfo\"] = \"Authentication-Info\";\r\n HeaderNames[\"X_MS_REQUEST_ID\"] = \"x-ms-request-id\";\r\n HeaderNames[\"X_MS_HTTP_VERSION\"] = \"x-ms-httpver\";\r\n})(HeaderNames || (HeaderNames = {}));\r\n/**\r\n * Persistent cache keys MSAL which stay while user is logged in.\r\n */\r\nvar PersistentCacheKeys;\r\n(function (PersistentCacheKeys) {\r\n PersistentCacheKeys[\"ID_TOKEN\"] = \"idtoken\";\r\n PersistentCacheKeys[\"CLIENT_INFO\"] = \"client.info\";\r\n PersistentCacheKeys[\"ADAL_ID_TOKEN\"] = \"adal.idtoken\";\r\n PersistentCacheKeys[\"ERROR\"] = \"error\";\r\n PersistentCacheKeys[\"ERROR_DESC\"] = \"error.description\";\r\n PersistentCacheKeys[\"ACTIVE_ACCOUNT\"] = \"active-account\";\r\n PersistentCacheKeys[\"ACTIVE_ACCOUNT_FILTERS\"] = \"active-account-filters\"; // new cache entry for active_account for a more robust version for browser\r\n})(PersistentCacheKeys || (PersistentCacheKeys = {}));\r\n/**\r\n * String constants related to AAD Authority\r\n */\r\nvar AADAuthorityConstants;\r\n(function (AADAuthorityConstants) {\r\n AADAuthorityConstants[\"COMMON\"] = \"common\";\r\n AADAuthorityConstants[\"ORGANIZATIONS\"] = \"organizations\";\r\n AADAuthorityConstants[\"CONSUMERS\"] = \"consumers\";\r\n})(AADAuthorityConstants || (AADAuthorityConstants = {}));\r\n/**\r\n * Keys in the hashParams sent by AAD Server\r\n */\r\nvar AADServerParamKeys;\r\n(function (AADServerParamKeys) {\r\n AADServerParamKeys[\"CLIENT_ID\"] = \"client_id\";\r\n AADServerParamKeys[\"REDIRECT_URI\"] = \"redirect_uri\";\r\n AADServerParamKeys[\"RESPONSE_TYPE\"] = \"response_type\";\r\n AADServerParamKeys[\"RESPONSE_MODE\"] = \"response_mode\";\r\n AADServerParamKeys[\"GRANT_TYPE\"] = \"grant_type\";\r\n AADServerParamKeys[\"CLAIMS\"] = \"claims\";\r\n AADServerParamKeys[\"SCOPE\"] = \"scope\";\r\n AADServerParamKeys[\"ERROR\"] = \"error\";\r\n AADServerParamKeys[\"ERROR_DESCRIPTION\"] = \"error_description\";\r\n AADServerParamKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n AADServerParamKeys[\"ID_TOKEN\"] = \"id_token\";\r\n AADServerParamKeys[\"REFRESH_TOKEN\"] = \"refresh_token\";\r\n AADServerParamKeys[\"EXPIRES_IN\"] = \"expires_in\";\r\n AADServerParamKeys[\"STATE\"] = \"state\";\r\n AADServerParamKeys[\"NONCE\"] = \"nonce\";\r\n AADServerParamKeys[\"PROMPT\"] = \"prompt\";\r\n AADServerParamKeys[\"SESSION_STATE\"] = \"session_state\";\r\n AADServerParamKeys[\"CLIENT_INFO\"] = \"client_info\";\r\n AADServerParamKeys[\"CODE\"] = \"code\";\r\n AADServerParamKeys[\"CODE_CHALLENGE\"] = \"code_challenge\";\r\n AADServerParamKeys[\"CODE_CHALLENGE_METHOD\"] = \"code_challenge_method\";\r\n AADServerParamKeys[\"CODE_VERIFIER\"] = \"code_verifier\";\r\n AADServerParamKeys[\"CLIENT_REQUEST_ID\"] = \"client-request-id\";\r\n AADServerParamKeys[\"X_CLIENT_SKU\"] = \"x-client-SKU\";\r\n AADServerParamKeys[\"X_CLIENT_VER\"] = \"x-client-VER\";\r\n AADServerParamKeys[\"X_CLIENT_OS\"] = \"x-client-OS\";\r\n AADServerParamKeys[\"X_CLIENT_CPU\"] = \"x-client-CPU\";\r\n AADServerParamKeys[\"X_CLIENT_CURR_TELEM\"] = \"x-client-current-telemetry\";\r\n AADServerParamKeys[\"X_CLIENT_LAST_TELEM\"] = \"x-client-last-telemetry\";\r\n AADServerParamKeys[\"X_MS_LIB_CAPABILITY\"] = \"x-ms-lib-capability\";\r\n AADServerParamKeys[\"X_APP_NAME\"] = \"x-app-name\";\r\n AADServerParamKeys[\"X_APP_VER\"] = \"x-app-ver\";\r\n AADServerParamKeys[\"POST_LOGOUT_URI\"] = \"post_logout_redirect_uri\";\r\n AADServerParamKeys[\"ID_TOKEN_HINT\"] = \"id_token_hint\";\r\n AADServerParamKeys[\"DEVICE_CODE\"] = \"device_code\";\r\n AADServerParamKeys[\"CLIENT_SECRET\"] = \"client_secret\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION\"] = \"client_assertion\";\r\n AADServerParamKeys[\"CLIENT_ASSERTION_TYPE\"] = \"client_assertion_type\";\r\n AADServerParamKeys[\"TOKEN_TYPE\"] = \"token_type\";\r\n AADServerParamKeys[\"REQ_CNF\"] = \"req_cnf\";\r\n AADServerParamKeys[\"OBO_ASSERTION\"] = \"assertion\";\r\n AADServerParamKeys[\"REQUESTED_TOKEN_USE\"] = \"requested_token_use\";\r\n AADServerParamKeys[\"ON_BEHALF_OF\"] = \"on_behalf_of\";\r\n AADServerParamKeys[\"FOCI\"] = \"foci\";\r\n AADServerParamKeys[\"CCS_HEADER\"] = \"X-AnchorMailbox\";\r\n AADServerParamKeys[\"RETURN_SPA_CODE\"] = \"return_spa_code\";\r\n AADServerParamKeys[\"NATIVE_BROKER\"] = \"nativebroker\";\r\n AADServerParamKeys[\"LOGOUT_HINT\"] = \"logout_hint\";\r\n})(AADServerParamKeys || (AADServerParamKeys = {}));\r\n/**\r\n * Claims request keys\r\n */\r\nvar ClaimsRequestKeys;\r\n(function (ClaimsRequestKeys) {\r\n ClaimsRequestKeys[\"ACCESS_TOKEN\"] = \"access_token\";\r\n ClaimsRequestKeys[\"XMS_CC\"] = \"xms_cc\";\r\n})(ClaimsRequestKeys || (ClaimsRequestKeys = {}));\r\n/**\r\n * we considered making this \"enum\" in the request instead of string, however it looks like the allowed list of\r\n * prompt values kept changing over past couple of years. There are some undocumented prompt values for some\r\n * internal partners too, hence the choice of generic \"string\" type instead of the \"enum\"\r\n */\r\nvar PromptValue = {\r\n LOGIN: \"login\",\r\n SELECT_ACCOUNT: \"select_account\",\r\n CONSENT: \"consent\",\r\n NONE: \"none\",\r\n CREATE: \"create\",\r\n NO_SESSION: \"no_session\"\r\n};\r\n/**\r\n * SSO Types - generated to populate hints\r\n */\r\nvar SSOTypes;\r\n(function (SSOTypes) {\r\n SSOTypes[\"ACCOUNT\"] = \"account\";\r\n SSOTypes[\"SID\"] = \"sid\";\r\n SSOTypes[\"LOGIN_HINT\"] = \"login_hint\";\r\n SSOTypes[\"ID_TOKEN\"] = \"id_token\";\r\n SSOTypes[\"DOMAIN_HINT\"] = \"domain_hint\";\r\n SSOTypes[\"ORGANIZATIONS\"] = \"organizations\";\r\n SSOTypes[\"CONSUMERS\"] = \"consumers\";\r\n SSOTypes[\"ACCOUNT_ID\"] = \"accountIdentifier\";\r\n SSOTypes[\"HOMEACCOUNT_ID\"] = \"homeAccountIdentifier\";\r\n})(SSOTypes || (SSOTypes = {}));\r\n/**\r\n * allowed values for codeVerifier\r\n */\r\nvar CodeChallengeMethodValues = {\r\n PLAIN: \"plain\",\r\n S256: \"S256\"\r\n};\r\n/**\r\n * allowed values for response_mode\r\n */\r\nvar ResponseMode;\r\n(function (ResponseMode) {\r\n ResponseMode[\"QUERY\"] = \"query\";\r\n ResponseMode[\"FRAGMENT\"] = \"fragment\";\r\n ResponseMode[\"FORM_POST\"] = \"form_post\";\r\n})(ResponseMode || (ResponseMode = {}));\r\n/**\r\n * allowed grant_type\r\n */\r\nvar GrantType;\r\n(function (GrantType) {\r\n GrantType[\"IMPLICIT_GRANT\"] = \"implicit\";\r\n GrantType[\"AUTHORIZATION_CODE_GRANT\"] = \"authorization_code\";\r\n GrantType[\"CLIENT_CREDENTIALS_GRANT\"] = \"client_credentials\";\r\n GrantType[\"RESOURCE_OWNER_PASSWORD_GRANT\"] = \"password\";\r\n GrantType[\"REFRESH_TOKEN_GRANT\"] = \"refresh_token\";\r\n GrantType[\"DEVICE_CODE_GRANT\"] = \"device_code\";\r\n GrantType[\"JWT_BEARER\"] = \"urn:ietf:params:oauth:grant-type:jwt-bearer\";\r\n})(GrantType || (GrantType = {}));\r\n/**\r\n * Account types in Cache\r\n */\r\nvar CacheAccountType;\r\n(function (CacheAccountType) {\r\n CacheAccountType[\"MSSTS_ACCOUNT_TYPE\"] = \"MSSTS\";\r\n CacheAccountType[\"ADFS_ACCOUNT_TYPE\"] = \"ADFS\";\r\n CacheAccountType[\"MSAV1_ACCOUNT_TYPE\"] = \"MSA\";\r\n CacheAccountType[\"GENERIC_ACCOUNT_TYPE\"] = \"Generic\"; // NTLM, Kerberos, FBA, Basic etc\r\n})(CacheAccountType || (CacheAccountType = {}));\r\n/**\r\n * Separators used in cache\r\n */\r\nvar Separators;\r\n(function (Separators) {\r\n Separators[\"CACHE_KEY_SEPARATOR\"] = \"-\";\r\n Separators[\"CLIENT_INFO_SEPARATOR\"] = \".\";\r\n})(Separators || (Separators = {}));\r\n/**\r\n * Credential Type stored in the cache\r\n */\r\nvar CredentialType;\r\n(function (CredentialType) {\r\n CredentialType[\"ID_TOKEN\"] = \"IdToken\";\r\n CredentialType[\"ACCESS_TOKEN\"] = \"AccessToken\";\r\n CredentialType[\"ACCESS_TOKEN_WITH_AUTH_SCHEME\"] = \"AccessToken_With_AuthScheme\";\r\n CredentialType[\"REFRESH_TOKEN\"] = \"RefreshToken\";\r\n})(CredentialType || (CredentialType = {}));\r\n/**\r\n * Combine all cache types\r\n */\r\nvar CacheType;\r\n(function (CacheType) {\r\n CacheType[CacheType[\"ADFS\"] = 1001] = \"ADFS\";\r\n CacheType[CacheType[\"MSA\"] = 1002] = \"MSA\";\r\n CacheType[CacheType[\"MSSTS\"] = 1003] = \"MSSTS\";\r\n CacheType[CacheType[\"GENERIC\"] = 1004] = \"GENERIC\";\r\n CacheType[CacheType[\"ACCESS_TOKEN\"] = 2001] = \"ACCESS_TOKEN\";\r\n CacheType[CacheType[\"REFRESH_TOKEN\"] = 2002] = \"REFRESH_TOKEN\";\r\n CacheType[CacheType[\"ID_TOKEN\"] = 2003] = \"ID_TOKEN\";\r\n CacheType[CacheType[\"APP_METADATA\"] = 3001] = \"APP_METADATA\";\r\n CacheType[CacheType[\"UNDEFINED\"] = 9999] = \"UNDEFINED\";\r\n})(CacheType || (CacheType = {}));\r\n/**\r\n * More Cache related constants\r\n */\r\nvar APP_METADATA = \"appmetadata\";\r\nvar CLIENT_INFO = \"client_info\";\r\nvar THE_FAMILY_ID = \"1\";\r\nvar AUTHORITY_METADATA_CONSTANTS = {\r\n CACHE_KEY: \"authority-metadata\",\r\n REFRESH_TIME_SECONDS: 3600 * 24 // 24 Hours\r\n};\r\nvar AuthorityMetadataSource;\r\n(function (AuthorityMetadataSource) {\r\n AuthorityMetadataSource[\"CONFIG\"] = \"config\";\r\n AuthorityMetadataSource[\"CACHE\"] = \"cache\";\r\n AuthorityMetadataSource[\"NETWORK\"] = \"network\";\r\n AuthorityMetadataSource[\"HARDCODED_VALUES\"] = \"hardcoded_values\";\r\n})(AuthorityMetadataSource || (AuthorityMetadataSource = {}));\r\nvar SERVER_TELEM_CONSTANTS = {\r\n SCHEMA_VERSION: 5,\r\n MAX_CUR_HEADER_BYTES: 80,\r\n MAX_LAST_HEADER_BYTES: 330,\r\n MAX_CACHED_ERRORS: 50,\r\n CACHE_KEY: \"server-telemetry\",\r\n CATEGORY_SEPARATOR: \"|\",\r\n VALUE_SEPARATOR: \",\",\r\n OVERFLOW_TRUE: \"1\",\r\n OVERFLOW_FALSE: \"0\",\r\n UNKNOWN_ERROR: \"unknown_error\"\r\n};\r\n/**\r\n * Type of the authentication request\r\n */\r\nvar AuthenticationScheme;\r\n(function (AuthenticationScheme) {\r\n AuthenticationScheme[\"BEARER\"] = \"Bearer\";\r\n AuthenticationScheme[\"POP\"] = \"pop\";\r\n AuthenticationScheme[\"SSH\"] = \"ssh-cert\";\r\n})(AuthenticationScheme || (AuthenticationScheme = {}));\r\n/**\r\n * Constants related to throttling\r\n */\r\nvar ThrottlingConstants = {\r\n // Default time to throttle RequestThumbprint in seconds\r\n DEFAULT_THROTTLE_TIME_SECONDS: 60,\r\n // Default maximum time to throttle in seconds, overrides what the server sends back\r\n DEFAULT_MAX_THROTTLE_TIME_SECONDS: 3600,\r\n // Prefix for storing throttling entries\r\n THROTTLING_PREFIX: \"throttling\",\r\n // Value assigned to the x-ms-lib-capability header to indicate to the server the library supports throttling\r\n X_MS_LIB_CAPABILITY_VALUE: \"retry-after, h429\"\r\n};\r\nvar Errors = {\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n CLIENT_MISMATCH_ERROR: \"client_mismatch\",\r\n};\r\n/**\r\n * Password grant parameters\r\n */\r\nvar PasswordGrantConstants;\r\n(function (PasswordGrantConstants) {\r\n PasswordGrantConstants[\"username\"] = \"username\";\r\n PasswordGrantConstants[\"password\"] = \"password\";\r\n})(PasswordGrantConstants || (PasswordGrantConstants = {}));\r\n/**\r\n * Response codes\r\n */\r\nvar ResponseCodes;\r\n(function (ResponseCodes) {\r\n ResponseCodes[ResponseCodes[\"httpSuccess\"] = 200] = \"httpSuccess\";\r\n ResponseCodes[ResponseCodes[\"httpBadRequest\"] = 400] = \"httpBadRequest\";\r\n})(ResponseCodes || (ResponseCodes = {}));\r\n/**\r\n * Region Discovery Sources\r\n */\r\nvar RegionDiscoverySources;\r\n(function (RegionDiscoverySources) {\r\n RegionDiscoverySources[\"FAILED_AUTO_DETECTION\"] = \"1\";\r\n RegionDiscoverySources[\"INTERNAL_CACHE\"] = \"2\";\r\n RegionDiscoverySources[\"ENVIRONMENT_VARIABLE\"] = \"3\";\r\n RegionDiscoverySources[\"IMDS\"] = \"4\";\r\n})(RegionDiscoverySources || (RegionDiscoverySources = {}));\r\n/**\r\n * Region Discovery Outcomes\r\n */\r\nvar RegionDiscoveryOutcomes;\r\n(function (RegionDiscoveryOutcomes) {\r\n RegionDiscoveryOutcomes[\"CONFIGURED_MATCHES_DETECTED\"] = \"1\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NO_AUTO_DETECTION\"] = \"2\";\r\n RegionDiscoveryOutcomes[\"CONFIGURED_NOT_DETECTED\"] = \"3\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_SUCCESSFUL\"] = \"4\";\r\n RegionDiscoveryOutcomes[\"AUTO_DETECTION_REQUESTED_FAILED\"] = \"5\";\r\n})(RegionDiscoveryOutcomes || (RegionDiscoveryOutcomes = {}));\r\nvar CacheOutcome;\r\n(function (CacheOutcome) {\r\n CacheOutcome[\"NO_CACHE_HIT\"] = \"0\";\r\n CacheOutcome[\"FORCE_REFRESH\"] = \"1\";\r\n CacheOutcome[\"NO_CACHED_ACCESS_TOKEN\"] = \"2\";\r\n CacheOutcome[\"CACHED_ACCESS_TOKEN_EXPIRED\"] = \"3\";\r\n CacheOutcome[\"REFRESH_CACHED_ACCESS_TOKEN\"] = \"4\";\r\n CacheOutcome[\"CLAIMS_REQUESTED_CACHE_SKIPPED\"] = \"5\";\r\n})(CacheOutcome || (CacheOutcome = {}));\r\nvar JsonTypes;\r\n(function (JsonTypes) {\r\n JsonTypes[\"Jwt\"] = \"JWT\";\r\n JsonTypes[\"Jwk\"] = \"JWK\";\r\n JsonTypes[\"Pop\"] = \"pop\";\r\n})(JsonTypes || (JsonTypes = {}));\r\nvar ONE_DAY_IN_MS = 86400000;\n\nexport { AADAuthorityConstants, AADServerParamKeys, APP_METADATA, AUTHORITY_METADATA_CONSTANTS, AuthenticationScheme, AuthorityMetadataSource, CLIENT_INFO, CacheAccountType, CacheOutcome, CacheType, ClaimsRequestKeys, CodeChallengeMethodValues, Constants, CredentialType, Errors, GrantType, HeaderNames, JsonTypes, OIDC_DEFAULT_SCOPES, OIDC_SCOPES, ONE_DAY_IN_MS, PasswordGrantConstants, PersistentCacheKeys, PromptValue, RegionDiscoveryOutcomes, RegionDiscoverySources, ResponseCodes, ResponseMode, SERVER_TELEM_CONSTANTS, SSOTypes, Separators, THE_FAMILY_ID, ThrottlingConstants };\n//# sourceMappingURL=Constants.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { OIDC_DEFAULT_SCOPES } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Constants\r\n */\r\nvar BrowserConstants = {\r\n /**\r\n * Interaction in progress cache value\r\n */\r\n INTERACTION_IN_PROGRESS_VALUE: \"interaction_in_progress\",\r\n /**\r\n * Invalid grant error code\r\n */\r\n INVALID_GRANT_ERROR: \"invalid_grant\",\r\n /**\r\n * Default popup window width\r\n */\r\n POPUP_WIDTH: 483,\r\n /**\r\n * Default popup window height\r\n */\r\n POPUP_HEIGHT: 600,\r\n /**\r\n * Name of the popup window starts with\r\n */\r\n POPUP_NAME_PREFIX: \"msal\",\r\n /**\r\n * Default popup monitor poll interval in milliseconds\r\n */\r\n DEFAULT_POLL_INTERVAL_MS: 30,\r\n /**\r\n * Msal-browser SKU\r\n */\r\n MSAL_SKU: \"msal.js.browser\",\r\n};\r\nvar NativeConstants = {\r\n CHANNEL_ID: \"53ee284d-920a-4b59-9d30-a60315b26836\",\r\n PREFERRED_EXTENSION_ID: \"ppnbnpeolgkicgegkbkbjmhlideopiji\",\r\n MATS_TELEMETRY: \"MATS\"\r\n};\r\nvar NativeExtensionMethod;\r\n(function (NativeExtensionMethod) {\r\n NativeExtensionMethod[\"HandshakeRequest\"] = \"Handshake\";\r\n NativeExtensionMethod[\"HandshakeResponse\"] = \"HandshakeResponse\";\r\n NativeExtensionMethod[\"GetToken\"] = \"GetToken\";\r\n NativeExtensionMethod[\"Response\"] = \"Response\";\r\n})(NativeExtensionMethod || (NativeExtensionMethod = {}));\r\nvar BrowserCacheLocation;\r\n(function (BrowserCacheLocation) {\r\n BrowserCacheLocation[\"LocalStorage\"] = \"localStorage\";\r\n BrowserCacheLocation[\"SessionStorage\"] = \"sessionStorage\";\r\n BrowserCacheLocation[\"MemoryStorage\"] = \"memoryStorage\";\r\n})(BrowserCacheLocation || (BrowserCacheLocation = {}));\r\n/**\r\n * HTTP Request types supported by MSAL.\r\n */\r\nvar HTTP_REQUEST_TYPE;\r\n(function (HTTP_REQUEST_TYPE) {\r\n HTTP_REQUEST_TYPE[\"GET\"] = \"GET\";\r\n HTTP_REQUEST_TYPE[\"POST\"] = \"POST\";\r\n})(HTTP_REQUEST_TYPE || (HTTP_REQUEST_TYPE = {}));\r\n/**\r\n * Temporary cache keys for MSAL, deleted after any request.\r\n */\r\nvar TemporaryCacheKeys;\r\n(function (TemporaryCacheKeys) {\r\n TemporaryCacheKeys[\"AUTHORITY\"] = \"authority\";\r\n TemporaryCacheKeys[\"ACQUIRE_TOKEN_ACCOUNT\"] = \"acquireToken.account\";\r\n TemporaryCacheKeys[\"SESSION_STATE\"] = \"session.state\";\r\n TemporaryCacheKeys[\"REQUEST_STATE\"] = \"request.state\";\r\n TemporaryCacheKeys[\"NONCE_IDTOKEN\"] = \"nonce.id_token\";\r\n TemporaryCacheKeys[\"ORIGIN_URI\"] = \"request.origin\";\r\n TemporaryCacheKeys[\"RENEW_STATUS\"] = \"token.renew.status\";\r\n TemporaryCacheKeys[\"URL_HASH\"] = \"urlHash\";\r\n TemporaryCacheKeys[\"REQUEST_PARAMS\"] = \"request.params\";\r\n TemporaryCacheKeys[\"SCOPES\"] = \"scopes\";\r\n TemporaryCacheKeys[\"INTERACTION_STATUS_KEY\"] = \"interaction.status\";\r\n TemporaryCacheKeys[\"CCS_CREDENTIAL\"] = \"ccs.credential\";\r\n TemporaryCacheKeys[\"CORRELATION_ID\"] = \"request.correlationId\";\r\n TemporaryCacheKeys[\"NATIVE_REQUEST\"] = \"request.native\";\r\n TemporaryCacheKeys[\"REDIRECT_CONTEXT\"] = \"request.redirect.context\";\r\n})(TemporaryCacheKeys || (TemporaryCacheKeys = {}));\r\nvar StaticCacheKeys;\r\n(function (StaticCacheKeys) {\r\n StaticCacheKeys[\"ACCOUNT_KEYS\"] = \"msal.account.keys\";\r\n StaticCacheKeys[\"TOKEN_KEYS\"] = \"msal.token.keys\";\r\n})(StaticCacheKeys || (StaticCacheKeys = {}));\r\n/**\r\n * Cache keys stored in-memory\r\n */\r\nvar InMemoryCacheKeys;\r\n(function (InMemoryCacheKeys) {\r\n InMemoryCacheKeys[\"WRAPPER_SKU\"] = \"wrapper.sku\";\r\n InMemoryCacheKeys[\"WRAPPER_VER\"] = \"wrapper.version\";\r\n})(InMemoryCacheKeys || (InMemoryCacheKeys = {}));\r\n/**\r\n * API Codes for Telemetry purposes.\r\n * Before adding a new code you must claim it in the MSAL Telemetry tracker as these number spaces are shared across all MSALs\r\n * 0-99 Silent Flow\r\n * 800-899 Auth Code Flow\r\n */\r\nvar ApiId;\r\n(function (ApiId) {\r\n ApiId[ApiId[\"acquireTokenRedirect\"] = 861] = \"acquireTokenRedirect\";\r\n ApiId[ApiId[\"acquireTokenPopup\"] = 862] = \"acquireTokenPopup\";\r\n ApiId[ApiId[\"ssoSilent\"] = 863] = \"ssoSilent\";\r\n ApiId[ApiId[\"acquireTokenSilent_authCode\"] = 864] = \"acquireTokenSilent_authCode\";\r\n ApiId[ApiId[\"handleRedirectPromise\"] = 865] = \"handleRedirectPromise\";\r\n ApiId[ApiId[\"acquireTokenByCode\"] = 866] = \"acquireTokenByCode\";\r\n ApiId[ApiId[\"acquireTokenSilent_silentFlow\"] = 61] = \"acquireTokenSilent_silentFlow\";\r\n ApiId[ApiId[\"logout\"] = 961] = \"logout\";\r\n ApiId[ApiId[\"logoutPopup\"] = 962] = \"logoutPopup\";\r\n})(ApiId || (ApiId = {}));\r\n/*\r\n * Interaction type of the API - used for state and telemetry\r\n */\r\nvar InteractionType;\r\n(function (InteractionType) {\r\n InteractionType[\"Redirect\"] = \"redirect\";\r\n InteractionType[\"Popup\"] = \"popup\";\r\n InteractionType[\"Silent\"] = \"silent\";\r\n InteractionType[\"None\"] = \"none\";\r\n})(InteractionType || (InteractionType = {}));\r\n/**\r\n * Types of interaction currently in progress.\r\n * Used in events in wrapper libraries to invoke functions when certain interaction is in progress or all interactions are complete.\r\n */\r\nvar InteractionStatus;\r\n(function (InteractionStatus) {\r\n /**\r\n * Initial status before interaction occurs\r\n */\r\n InteractionStatus[\"Startup\"] = \"startup\";\r\n /**\r\n * Status set when all login calls occuring\r\n */\r\n InteractionStatus[\"Login\"] = \"login\";\r\n /**\r\n * Status set when logout call occuring\r\n */\r\n InteractionStatus[\"Logout\"] = \"logout\";\r\n /**\r\n * Status set for acquireToken calls\r\n */\r\n InteractionStatus[\"AcquireToken\"] = \"acquireToken\";\r\n /**\r\n * Status set for ssoSilent calls\r\n */\r\n InteractionStatus[\"SsoSilent\"] = \"ssoSilent\";\r\n /**\r\n * Status set when handleRedirect in progress\r\n */\r\n InteractionStatus[\"HandleRedirect\"] = \"handleRedirect\";\r\n /**\r\n * Status set when interaction is complete\r\n */\r\n InteractionStatus[\"None\"] = \"none\";\r\n})(InteractionStatus || (InteractionStatus = {}));\r\nvar DEFAULT_REQUEST = {\r\n scopes: OIDC_DEFAULT_SCOPES\r\n};\r\n/**\r\n * JWK Key Format string (Type MUST be defined for window crypto APIs)\r\n */\r\nvar KEY_FORMAT_JWK = \"jwk\";\r\n// Supported wrapper SKUs\r\nvar WrapperSKU;\r\n(function (WrapperSKU) {\r\n WrapperSKU[\"React\"] = \"@azure/msal-react\";\r\n WrapperSKU[\"Angular\"] = \"@azure/msal-angular\";\r\n})(WrapperSKU || (WrapperSKU = {}));\r\n// DatabaseStorage Constants\r\nvar DB_NAME = \"msal.db\";\r\nvar DB_VERSION = 1;\r\nvar DB_TABLE_NAME = DB_NAME + \".keys\";\r\nvar CacheLookupPolicy;\r\n(function (CacheLookupPolicy) {\r\n /*\r\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired\r\n * or cannot be found the refresh token will be used to acquire a new one. Finally, if the refresh token\r\n * is expired acquireTokenSilent will attempt to acquire new access and refresh tokens.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"Default\"] = 0] = \"Default\";\r\n /*\r\n * acquireTokenSilent will only look for access tokens in the cache. It will not attempt to renew access or\r\n * refresh tokens.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"AccessToken\"] = 1] = \"AccessToken\";\r\n /*\r\n * acquireTokenSilent will attempt to retrieve an access token from the cache. If the access token is expired or\r\n * cannot be found, the refresh token will be used to acquire a new one. If the refresh token is expired, it\r\n * will not be renewed and acquireTokenSilent will fail.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"AccessTokenAndRefreshToken\"] = 2] = \"AccessTokenAndRefreshToken\";\r\n /*\r\n * acquireTokenSilent will not attempt to retrieve access tokens from the cache and will instead attempt to\r\n * exchange the cached refresh token for a new access token. If the refresh token is expired, it will not be\r\n * renewed and acquireTokenSilent will fail.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"RefreshToken\"] = 3] = \"RefreshToken\";\r\n /*\r\n * acquireTokenSilent will not look in the cache for the access token. It will go directly to network with the\r\n * cached refresh token. If the refresh token is expired an attempt will be made to renew it. This is equivalent to\r\n * setting \"forceRefresh: true\".\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"RefreshTokenAndNetwork\"] = 4] = \"RefreshTokenAndNetwork\";\r\n /*\r\n * acquireTokenSilent will attempt to renew both access and refresh tokens. It will not look in the cache. This will\r\n * always fail if 3rd party cookies are blocked by the browser.\r\n */\r\n CacheLookupPolicy[CacheLookupPolicy[\"Skip\"] = 5] = \"Skip\";\r\n})(CacheLookupPolicy || (CacheLookupPolicy = {}));\n\nexport { ApiId, BrowserCacheLocation, BrowserConstants, CacheLookupPolicy, DB_NAME, DB_TABLE_NAME, DB_VERSION, DEFAULT_REQUEST, HTTP_REQUEST_TYPE, InMemoryCacheKeys, InteractionStatus, InteractionType, KEY_FORMAT_JWK, NativeConstants, NativeExtensionMethod, StaticCacheKeys, TemporaryCacheKeys, WrapperSKU };\n//# sourceMappingURL=BrowserConstants.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * AuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar AuthErrorMessage = {\r\n unexpectedError: {\r\n code: \"unexpected_error\",\r\n desc: \"Unexpected error in authentication.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Post request failed from the network, could be a 4xx/5xx or a network unavailability. Please check the exact error code for details.\"\r\n }\r\n};\r\n/**\r\n * General error class thrown by the MSAL.js library.\r\n */\r\nvar AuthError = /** @class */ (function (_super) {\r\n __extends(AuthError, _super);\r\n function AuthError(errorCode, errorMessage, suberror) {\r\n var _this = this;\r\n var errorString = errorMessage ? errorCode + \": \" + errorMessage : errorCode;\r\n _this = _super.call(this, errorString) || this;\r\n Object.setPrototypeOf(_this, AuthError.prototype);\r\n _this.errorCode = errorCode || Constants.EMPTY_STRING;\r\n _this.errorMessage = errorMessage || Constants.EMPTY_STRING;\r\n _this.subError = suberror || Constants.EMPTY_STRING;\r\n _this.name = \"AuthError\";\r\n return _this;\r\n }\r\n AuthError.prototype.setCorrelationId = function (correlationId) {\r\n this.correlationId = correlationId;\r\n };\r\n /**\r\n * Creates an error that is thrown when something unexpected happens in the library.\r\n * @param errDesc\r\n */\r\n AuthError.createUnexpectedError = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.unexpectedError.code, AuthErrorMessage.unexpectedError.desc + \": \" + errDesc);\r\n };\r\n /**\r\n * Creates an error for post request failures.\r\n * @param errDesc\r\n * @returns\r\n */\r\n AuthError.createPostRequestFailed = function (errDesc) {\r\n return new AuthError(AuthErrorMessage.postRequestFailed.code, AuthErrorMessage.postRequestFailed.desc + \": \" + errDesc);\r\n };\r\n return AuthError;\r\n}(Error));\n\nexport { AuthError, AuthErrorMessage };\n//# sourceMappingURL=AuthError.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Error thrown when there is an error with the server code, for example, unavailability.\r\n */\r\nvar ServerError = /** @class */ (function (_super) {\r\n __extends(ServerError, _super);\r\n function ServerError(errorCode, errorMessage, subError) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n _this.name = \"ServerError\";\r\n Object.setPrototypeOf(_this, ServerError.prototype);\r\n return _this;\r\n }\r\n return ServerError;\r\n}(AuthError));\n\nexport { ServerError };\n//# sourceMappingURL=ServerError.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { Constants } from '../utils/Constants.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * InteractionRequiredServerErrorMessage contains string constants used by error codes and messages returned by the server indicating interaction is required\r\n */\r\nvar InteractionRequiredServerErrorMessage = [\r\n \"interaction_required\",\r\n \"consent_required\",\r\n \"login_required\"\r\n];\r\nvar InteractionRequiredAuthSubErrorMessage = [\r\n \"message_only\",\r\n \"additional_action\",\r\n \"basic_action\",\r\n \"user_password_expired\",\r\n \"consent_required\"\r\n];\r\n/**\r\n * Interaction required errors defined by the SDK\r\n */\r\nvar InteractionRequiredAuthErrorMessage = {\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No refresh token found in the cache. Please sign-in.\"\r\n },\r\n native_account_unavailable: {\r\n code: \"native_account_unavailable\",\r\n desc: \"The requested account is not available in the native broker. It may have been deleted or logged out. Please sign-in again using an interactive API.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when user interaction is required.\r\n */\r\nvar InteractionRequiredAuthError = /** @class */ (function (_super) {\r\n __extends(InteractionRequiredAuthError, _super);\r\n function InteractionRequiredAuthError(errorCode, errorMessage, subError, timestamp, traceId, correlationId, claims) {\r\n var _this = _super.call(this, errorCode, errorMessage, subError) || this;\r\n Object.setPrototypeOf(_this, InteractionRequiredAuthError.prototype);\r\n _this.timestamp = timestamp || Constants.EMPTY_STRING;\r\n _this.traceId = traceId || Constants.EMPTY_STRING;\r\n _this.correlationId = correlationId || Constants.EMPTY_STRING;\r\n _this.claims = claims || Constants.EMPTY_STRING;\r\n _this.name = \"InteractionRequiredAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Helper function used to determine if an error thrown by the server requires interaction to resolve\r\n * @param errorCode\r\n * @param errorString\r\n * @param subError\r\n */\r\n InteractionRequiredAuthError.isInteractionRequiredError = function (errorCode, errorString, subError) {\r\n var isInteractionRequiredErrorCode = !!errorCode && InteractionRequiredServerErrorMessage.indexOf(errorCode) > -1;\r\n var isInteractionRequiredSubError = !!subError && InteractionRequiredAuthSubErrorMessage.indexOf(subError) > -1;\r\n var isInteractionRequiredErrorDesc = !!errorString && InteractionRequiredServerErrorMessage.some(function (irErrorCode) {\r\n return errorString.indexOf(irErrorCode) > -1;\r\n });\r\n return isInteractionRequiredErrorCode || isInteractionRequiredErrorDesc || isInteractionRequiredSubError;\r\n };\r\n /**\r\n * Creates an error thrown when the authorization code required for a token request is null or empty.\r\n */\r\n InteractionRequiredAuthError.createNoTokensFoundError = function () {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.noTokensFoundError.code, InteractionRequiredAuthErrorMessage.noTokensFoundError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the native broker returns ACCOUNT_UNAVAILABLE status, indicating that the account was removed and interactive sign-in is required\r\n * @returns\r\n */\r\n InteractionRequiredAuthError.createNativeAccountUnavailableError = function () {\r\n return new InteractionRequiredAuthError(InteractionRequiredAuthErrorMessage.native_account_unavailable.code, InteractionRequiredAuthErrorMessage.native_account_unavailable.desc);\r\n };\r\n return InteractionRequiredAuthError;\r\n}(AuthError));\n\nexport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage, InteractionRequiredAuthSubErrorMessage, InteractionRequiredServerErrorMessage };\n//# sourceMappingURL=InteractionRequiredAuthError.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar JoseHeaderErrorMessage = {\r\n missingKidError: {\r\n code: \"missing_kid_error\",\r\n desc: \"The JOSE Header for the requested JWT, JWS or JWK object requires a keyId to be configured as the 'kid' header claim. No 'kid' value was provided.\"\r\n },\r\n missingAlgError: {\r\n code: \"missing_alg_error\",\r\n desc: \"The JOSE Header for the requested JWT, JWS or JWK object requires an algorithm to be specified as the 'alg' header claim. No 'alg' value was provided.\"\r\n },\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar JoseHeaderError = /** @class */ (function (_super) {\r\n __extends(JoseHeaderError, _super);\r\n function JoseHeaderError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"JoseHeaderError\";\r\n Object.setPrototypeOf(_this, JoseHeaderError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when keyId isn't set on JOSE header.\r\n */\r\n JoseHeaderError.createMissingKidError = function () {\r\n return new JoseHeaderError(JoseHeaderErrorMessage.missingKidError.code, JoseHeaderErrorMessage.missingKidError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when algorithm isn't set on JOSE header.\r\n */\r\n JoseHeaderError.createMissingAlgError = function () {\r\n return new JoseHeaderError(JoseHeaderErrorMessage.missingAlgError.code, JoseHeaderErrorMessage.missingAlgError.desc);\r\n };\r\n return JoseHeaderError;\r\n}(AuthError));\n\nexport { JoseHeaderError, JoseHeaderErrorMessage };\n//# sourceMappingURL=JoseHeaderError.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AsyncMemoryStorage } from './AsyncMemoryStorage.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CryptoKeyStoreNames;\r\n(function (CryptoKeyStoreNames) {\r\n CryptoKeyStoreNames[\"asymmetricKeys\"] = \"asymmetricKeys\";\r\n CryptoKeyStoreNames[\"symmetricKeys\"] = \"symmetricKeys\";\r\n})(CryptoKeyStoreNames || (CryptoKeyStoreNames = {}));\r\n/**\r\n * MSAL CryptoKeyStore DB Version 2\r\n */\r\nvar CryptoKeyStore = /** @class */ (function () {\r\n function CryptoKeyStore(logger) {\r\n this.logger = logger;\r\n this.asymmetricKeys = new AsyncMemoryStorage(this.logger, CryptoKeyStoreNames.asymmetricKeys);\r\n this.symmetricKeys = new AsyncMemoryStorage(this.logger, CryptoKeyStoreNames.symmetricKeys);\r\n }\r\n CryptoKeyStore.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Delete in-memory keystores\r\n this.asymmetricKeys.clearInMemory();\r\n this.symmetricKeys.clearInMemory();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.asymmetricKeys.clearPersistent()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, true];\r\n case 3:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof Error) {\r\n this.logger.error(\"Clearing keystore failed with error: \" + e_1.message);\r\n }\r\n else {\r\n this.logger.error(\"Clearing keystore failed with unknown error\");\r\n }\r\n return [2 /*return*/, false];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return CryptoKeyStore;\r\n}());\n\nexport { CryptoKeyStore, CryptoKeyStoreNames };\n//# sourceMappingURL=CryptoKeyStore.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { JoseHeaderError } from '../error/JoseHeaderError.js';\nimport { JsonTypes } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar JoseHeader = /** @class */ (function () {\r\n function JoseHeader(options) {\r\n this.typ = options.typ;\r\n this.alg = options.alg;\r\n this.kid = options.kid;\r\n }\r\n /**\r\n * Builds SignedHttpRequest formatted JOSE Header from the\r\n * JOSE Header options provided or previously set on the object and returns\r\n * the stringified header object.\r\n * Throws if keyId or algorithm aren't provided since they are required for Access Token Binding.\r\n * @param shrHeaderOptions\r\n * @returns\r\n */\r\n JoseHeader.getShrHeaderString = function (shrHeaderOptions) {\r\n // KeyID is required on the SHR header\r\n if (!shrHeaderOptions.kid) {\r\n throw JoseHeaderError.createMissingKidError();\r\n }\r\n // Alg is required on the SHR header\r\n if (!shrHeaderOptions.alg) {\r\n throw JoseHeaderError.createMissingAlgError();\r\n }\r\n var shrHeader = new JoseHeader({\r\n // Access Token PoP headers must have type pop, but the type header can be overriden for special cases\r\n typ: shrHeaderOptions.typ || JsonTypes.Pop,\r\n kid: shrHeaderOptions.kid,\r\n alg: shrHeaderOptions.alg\r\n });\r\n return JSON.stringify(shrHeader);\r\n };\r\n return JoseHeader;\r\n}());\n\nexport { JoseHeader };\n//# sourceMappingURL=JoseHeader.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for math specific functions in browser.\r\n */\r\nvar MathUtils = /** @class */ (function () {\r\n function MathUtils() {\r\n }\r\n /**\r\n * Decimal to Hex\r\n *\r\n * @param num\r\n */\r\n MathUtils.decimalToHex = function (num) {\r\n var hex = num.toString(16);\r\n while (hex.length < 2) {\r\n hex = \"0\" + hex;\r\n }\r\n return hex;\r\n };\r\n return MathUtils;\r\n}());\n\nexport { MathUtils };\n//# sourceMappingURL=MathUtils.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { MathUtils } from '../utils/MathUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar GuidGenerator = /** @class */ (function () {\r\n function GuidGenerator(cryptoObj) {\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /*\r\n * RFC4122: The version 4 UUID is meant for generating UUIDs from truly-random or\r\n * pseudo-random numbers.\r\n * The algorithm is as follows:\r\n * Set the two most significant bits (bits 6 and 7) of the\r\n * clock_seq_hi_and_reserved to zero and one, respectively.\r\n * Set the four most significant bits (bits 12 through 15) of the\r\n * time_hi_and_version field to the 4-bit version number from\r\n * Section 4.1.3. Version4\r\n * Set all the other bits to randomly (or pseudo-randomly) chosen\r\n * values.\r\n * UUID = time-low \"-\" time-mid \"-\"time-high-and-version \"-\"clock-seq-reserved and low(2hexOctet)\"-\" node\r\n * time-low = 4hexOctet\r\n * time-mid = 2hexOctet\r\n * time-high-and-version = 2hexOctet\r\n * clock-seq-and-reserved = hexOctet:\r\n * clock-seq-low = hexOctet\r\n * node = 6hexOctet\r\n * Format: xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\r\n * y could be 1000, 1001, 1010, 1011 since most significant two bits needs to be 10\r\n * y values are 8, 9, A, B\r\n */\r\n GuidGenerator.prototype.generateGuid = function () {\r\n try {\r\n var buffer = new Uint8Array(16);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // buffer[6] and buffer[7] represents the time_hi_and_version field. We will set the four most significant bits (4 through 7) of buffer[6] to represent decimal number 4 (UUID version number).\r\n buffer[6] |= 0x40; // buffer[6] | 01000000 will set the 6 bit to 1.\r\n buffer[6] &= 0x4f; // buffer[6] & 01001111 will set the 4, 5, and 7 bit to 0 such that bits 4-7 == 0100 = \"4\".\r\n // buffer[8] represents the clock_seq_hi_and_reserved field. We will set the two most significant bits (6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively.\r\n buffer[8] |= 0x80; // buffer[8] | 10000000 will set the 7 bit to 1.\r\n buffer[8] &= 0xbf; // buffer[8] & 10111111 will set the 6 bit to 0.\r\n return MathUtils.decimalToHex(buffer[0]) + MathUtils.decimalToHex(buffer[1])\r\n + MathUtils.decimalToHex(buffer[2]) + MathUtils.decimalToHex(buffer[3])\r\n + \"-\" + MathUtils.decimalToHex(buffer[4]) + MathUtils.decimalToHex(buffer[5])\r\n + \"-\" + MathUtils.decimalToHex(buffer[6]) + MathUtils.decimalToHex(buffer[7])\r\n + \"-\" + MathUtils.decimalToHex(buffer[8]) + MathUtils.decimalToHex(buffer[9])\r\n + \"-\" + MathUtils.decimalToHex(buffer[10]) + MathUtils.decimalToHex(buffer[11])\r\n + MathUtils.decimalToHex(buffer[12]) + MathUtils.decimalToHex(buffer[13])\r\n + MathUtils.decimalToHex(buffer[14]) + MathUtils.decimalToHex(buffer[15]);\r\n }\r\n catch (err) {\r\n var guidHolder = \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\";\r\n var hex = \"0123456789abcdef\";\r\n var r = 0;\r\n var guidResponse = Constants.EMPTY_STRING;\r\n for (var i = 0; i < 36; i++) {\r\n if (guidHolder[i] !== \"-\" && guidHolder[i] !== \"4\") {\r\n // each x and y needs to be random\r\n r = Math.random() * 16 | 0;\r\n }\r\n if (guidHolder[i] === \"x\") {\r\n guidResponse += hex[r];\r\n }\r\n else if (guidHolder[i] === \"y\") {\r\n // clock-seq-and-reserved first hex is filtered and remaining hex values are random\r\n r &= 0x3; // bit and with 0011 to set pos 2 to zero ?0??\r\n r |= 0x8; // set pos 3 to 1 as 1???\r\n guidResponse += hex[r];\r\n }\r\n else {\r\n guidResponse += guidHolder[i];\r\n }\r\n }\r\n return guidResponse;\r\n }\r\n };\r\n /**\r\n * verifies if a string is GUID\r\n * @param guid\r\n */\r\n GuidGenerator.prototype.isGuid = function (guid) {\r\n var regexGuid = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;\r\n return regexGuid.test(guid);\r\n };\r\n return GuidGenerator;\r\n}());\n\nexport { GuidGenerator };\n//# sourceMappingURL=GuidGenerator.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility functions for strings in a browser. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar BrowserStringUtils = /** @class */ (function () {\r\n function BrowserStringUtils() {\r\n }\r\n /**\r\n * Converts string to Uint8Array\r\n * @param sDOMStr\r\n */\r\n BrowserStringUtils.stringToUtf8Arr = function (sDOMStr) {\r\n var nChr;\r\n var nArrLen = 0;\r\n var nStrLen = sDOMStr.length;\r\n /* mapping... */\r\n for (var nMapIdx = 0; nMapIdx < nStrLen; nMapIdx++) {\r\n nChr = sDOMStr.charCodeAt(nMapIdx);\r\n nArrLen += nChr < 0x80 ? 1 : nChr < 0x800 ? 2 : nChr < 0x10000 ? 3 : nChr < 0x200000 ? 4 : nChr < 0x4000000 ? 5 : 6;\r\n }\r\n var aBytes = new Uint8Array(nArrLen);\r\n /* transcription... */\r\n for (var nIdx = 0, nChrIdx = 0; nIdx < nArrLen; nChrIdx++) {\r\n nChr = sDOMStr.charCodeAt(nChrIdx);\r\n if (nChr < 128) {\r\n /* one byte */\r\n aBytes[nIdx++] = nChr;\r\n }\r\n else if (nChr < 0x800) {\r\n /* two bytes */\r\n aBytes[nIdx++] = 192 + (nChr >>> 6);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x10000) {\r\n /* three bytes */\r\n aBytes[nIdx++] = 224 + (nChr >>> 12);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x200000) {\r\n /* four bytes */\r\n aBytes[nIdx++] = 240 + (nChr >>> 18);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else if (nChr < 0x4000000) {\r\n /* five bytes */\r\n aBytes[nIdx++] = 248 + (nChr >>> 24);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n else /* if (nChr <= 0x7fffffff) */ {\r\n /* six bytes */\r\n aBytes[nIdx++] = 252 + (nChr >>> 30);\r\n aBytes[nIdx++] = 128 + (nChr >>> 24 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 18 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 12 & 63);\r\n aBytes[nIdx++] = 128 + (nChr >>> 6 & 63);\r\n aBytes[nIdx++] = 128 + (nChr & 63);\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Converst string to ArrayBuffer\r\n * @param dataString\r\n */\r\n BrowserStringUtils.stringToArrayBuffer = function (dataString) {\r\n var data = new ArrayBuffer(dataString.length);\r\n var dataView = new Uint8Array(data);\r\n for (var i = 0; i < dataString.length; i++) {\r\n dataView[i] = dataString.charCodeAt(i);\r\n }\r\n return data;\r\n };\r\n /**\r\n * Converts Uint8Array to a string\r\n * @param aBytes\r\n */\r\n BrowserStringUtils.utf8ArrToString = function (aBytes) {\r\n var sView = Constants.EMPTY_STRING;\r\n for (var nPart = void 0, nLen = aBytes.length, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nPart = aBytes[nIdx];\r\n sView += String.fromCharCode(nPart > 251 && nPart < 254 && nIdx + 5 < nLen ? /* six bytes */\r\n /* (nPart - 252 << 30) may be not so safe in ECMAScript! So...: */\r\n (nPart - 252) * 1073741824 + (aBytes[++nIdx] - 128 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 247 && nPart < 252 && nIdx + 4 < nLen ? /* five bytes */\r\n (nPart - 248 << 24) + (aBytes[++nIdx] - 128 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 239 && nPart < 248 && nIdx + 3 < nLen ? /* four bytes */\r\n (nPart - 240 << 18) + (aBytes[++nIdx] - 128 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 223 && nPart < 240 && nIdx + 2 < nLen ? /* three bytes */\r\n (nPart - 224 << 12) + (aBytes[++nIdx] - 128 << 6) + aBytes[++nIdx] - 128\r\n : nPart > 191 && nPart < 224 && nIdx + 1 < nLen ? /* two bytes */\r\n (nPart - 192 << 6) + aBytes[++nIdx] - 128\r\n : /* nPart < 127 ? */ /* one byte */\r\n nPart);\r\n }\r\n return sView;\r\n };\r\n /**\r\n * Returns stringified jwk.\r\n * @param jwk\r\n */\r\n BrowserStringUtils.getSortedObjectString = function (obj) {\r\n return JSON.stringify(obj, Object.keys(obj).sort());\r\n };\r\n return BrowserStringUtils;\r\n}());\n\nexport { BrowserStringUtils };\n//# sourceMappingURL=BrowserStringUtils.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to encode plaintext to base64 encoded string. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Encode = /** @class */ (function () {\r\n function Base64Encode() {\r\n }\r\n /**\r\n * Returns URL Safe b64 encoded string from a plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.urlEncode = function (input) {\r\n return encodeURIComponent(this.encode(input)\r\n .replace(/=/g, Constants.EMPTY_STRING)\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\"));\r\n };\r\n /**\r\n * Returns URL Safe b64 encoded string from an int8Array.\r\n * @param inputArr\r\n */\r\n Base64Encode.prototype.urlEncodeArr = function (inputArr) {\r\n return this.base64EncArr(inputArr)\r\n .replace(/=/g, Constants.EMPTY_STRING)\r\n .replace(/\\+/g, \"-\")\r\n .replace(/\\//g, \"_\");\r\n };\r\n /**\r\n * Returns b64 encoded string from plaintext string.\r\n * @param input\r\n */\r\n Base64Encode.prototype.encode = function (input) {\r\n var inputUtf8Arr = BrowserStringUtils.stringToUtf8Arr(input);\r\n return this.base64EncArr(inputUtf8Arr);\r\n };\r\n /**\r\n * Base64 encode byte array\r\n * @param aBytes\r\n */\r\n Base64Encode.prototype.base64EncArr = function (aBytes) {\r\n var eqLen = (3 - (aBytes.length % 3)) % 3;\r\n var sB64Enc = Constants.EMPTY_STRING;\r\n for (var nMod3 = void 0, nLen = aBytes.length, nUint24 = 0, nIdx = 0; nIdx < nLen; nIdx++) {\r\n nMod3 = nIdx % 3;\r\n /* Uncomment the following line in order to split the output in lines 76-character long: */\r\n /*\r\n *if (nIdx > 0 && (nIdx * 4 / 3) % 76 === 0) { sB64Enc += \"\\r\\n\"; }\r\n */\r\n nUint24 |= aBytes[nIdx] << (16 >>> nMod3 & 24);\r\n if (nMod3 === 2 || aBytes.length - nIdx === 1) {\r\n sB64Enc += String.fromCharCode(this.uint6ToB64(nUint24 >>> 18 & 63), this.uint6ToB64(nUint24 >>> 12 & 63), this.uint6ToB64(nUint24 >>> 6 & 63), this.uint6ToB64(nUint24 & 63));\r\n nUint24 = 0;\r\n }\r\n }\r\n return eqLen === 0 ? sB64Enc : sB64Enc.substring(0, sB64Enc.length - eqLen) + (eqLen === 1 ? \"=\" : \"==\");\r\n };\r\n /**\r\n * Base64 string to array encoding helper\r\n * @param nUint6\r\n */\r\n Base64Encode.prototype.uint6ToB64 = function (nUint6) {\r\n return nUint6 < 26 ?\r\n nUint6 + 65\r\n : nUint6 < 52 ?\r\n nUint6 + 71\r\n : nUint6 < 62 ?\r\n nUint6 - 4\r\n : nUint6 === 62 ?\r\n 43\r\n : nUint6 === 63 ?\r\n 47\r\n :\r\n 65;\r\n };\r\n return Base64Encode;\r\n}());\n\nexport { Base64Encode };\n//# sourceMappingURL=Base64Encode.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which exposes APIs to decode base64 strings to plaintext. See here for implementation details:\r\n * https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/Base64_encoding_and_decoding#Solution_2_%E2%80%93_JavaScript's_UTF-16_%3E_UTF-8_%3E_base64\r\n */\r\nvar Base64Decode = /** @class */ (function () {\r\n function Base64Decode() {\r\n }\r\n /**\r\n * Returns a URL-safe plaintext decoded string from b64 encoded input.\r\n * @param input\r\n */\r\n Base64Decode.prototype.decode = function (input) {\r\n var encodedString = input.replace(/-/g, \"+\").replace(/_/g, \"/\");\r\n switch (encodedString.length % 4) {\r\n case 0:\r\n break;\r\n case 2:\r\n encodedString += \"==\";\r\n break;\r\n case 3:\r\n encodedString += \"=\";\r\n break;\r\n default:\r\n throw new Error(\"Invalid base64 string\");\r\n }\r\n var inputUtf8Arr = this.base64DecToArr(encodedString);\r\n return BrowserStringUtils.utf8ArrToString(inputUtf8Arr);\r\n };\r\n /**\r\n * Decodes base64 into Uint8Array\r\n * @param base64String\r\n * @param nBlockSize\r\n */\r\n Base64Decode.prototype.base64DecToArr = function (base64String, nBlockSize) {\r\n var sB64Enc = base64String.replace(/[^A-Za-z0-9\\+\\/]/g, Constants.EMPTY_STRING);\r\n var nInLen = sB64Enc.length;\r\n var nOutLen = nBlockSize ? Math.ceil((nInLen * 3 + 1 >>> 2) / nBlockSize) * nBlockSize : nInLen * 3 + 1 >>> 2;\r\n var aBytes = new Uint8Array(nOutLen);\r\n for (var nMod3 = void 0, nMod4 = void 0, nUint24 = 0, nOutIdx = 0, nInIdx = 0; nInIdx < nInLen; nInIdx++) {\r\n nMod4 = nInIdx & 3;\r\n nUint24 |= this.b64ToUint6(sB64Enc.charCodeAt(nInIdx)) << 18 - 6 * nMod4;\r\n if (nMod4 === 3 || nInLen - nInIdx === 1) {\r\n for (nMod3 = 0; nMod3 < 3 && nOutIdx < nOutLen; nMod3++, nOutIdx++) {\r\n aBytes[nOutIdx] = nUint24 >>> (16 >>> nMod3 & 24) & 255;\r\n }\r\n nUint24 = 0;\r\n }\r\n }\r\n return aBytes;\r\n };\r\n /**\r\n * Base64 string to array decoding helper\r\n * @param charNum\r\n */\r\n Base64Decode.prototype.b64ToUint6 = function (charNum) {\r\n return charNum > 64 && charNum < 91 ?\r\n charNum - 65\r\n : charNum > 96 && charNum < 123 ?\r\n charNum - 71\r\n : charNum > 47 && charNum < 58 ?\r\n charNum + 4\r\n : charNum === 43 ?\r\n 62\r\n : charNum === 47 ?\r\n 63\r\n :\r\n 0;\r\n };\r\n return Base64Decode;\r\n}());\n\nexport { Base64Decode };\n//# sourceMappingURL=Base64Decode.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from './AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientAuthErrorMessage = {\r\n clientInfoDecodingError: {\r\n code: \"client_info_decoding_error\",\r\n desc: \"The client info could not be parsed/decoded correctly. Please review the trace to determine the root cause.\"\r\n },\r\n clientInfoEmptyError: {\r\n code: \"client_info_empty_error\",\r\n desc: \"The client info was empty. Please review the trace to determine the root cause.\"\r\n },\r\n tokenParsingError: {\r\n code: \"token_parsing_error\",\r\n desc: \"Token cannot be parsed. Please review stack trace to determine root cause.\"\r\n },\r\n nullOrEmptyToken: {\r\n code: \"null_or_empty_token\",\r\n desc: \"The token is null or empty. Please review the trace to determine the root cause.\"\r\n },\r\n endpointResolutionError: {\r\n code: \"endpoints_resolution_error\",\r\n desc: \"Error: could not resolve endpoints. Please check network and try again.\"\r\n },\r\n networkError: {\r\n code: \"network_error\",\r\n desc: \"Network request failed. Please check network trace to determine root cause.\"\r\n },\r\n unableToGetOpenidConfigError: {\r\n code: \"openid_config_error\",\r\n desc: \"Could not retrieve endpoints. Check your authority and verify the .well-known/openid-configuration endpoint returns the required endpoints.\"\r\n },\r\n hashNotDeserialized: {\r\n code: \"hash_not_deserialized\",\r\n desc: \"The hash parameters could not be deserialized. Please review the trace to determine the root cause.\"\r\n },\r\n blankGuidGenerated: {\r\n code: \"blank_guid_generated\",\r\n desc: \"The guid generated was blank. Please review the trace to determine the root cause.\"\r\n },\r\n invalidStateError: {\r\n code: \"invalid_state\",\r\n desc: \"State was not the expected format. Please check the logs to determine whether the request was sent using ProtocolUtils.setRequestState().\"\r\n },\r\n stateMismatchError: {\r\n code: \"state_mismatch\",\r\n desc: \"State mismatch error. Please check your network. Continued requests may cause cache overflow.\"\r\n },\r\n stateNotFoundError: {\r\n code: \"state_not_found\",\r\n desc: \"State not found\"\r\n },\r\n nonceMismatchError: {\r\n code: \"nonce_mismatch\",\r\n desc: \"Nonce mismatch error. This may be caused by a race condition in concurrent requests.\"\r\n },\r\n nonceNotFoundError: {\r\n code: \"nonce_not_found\",\r\n desc: \"nonce not found\"\r\n },\r\n authTimeNotFoundError: {\r\n code: \"auth_time_not_found\",\r\n desc: \"Max Age was requested and the ID token is missing the auth_time variable.\" +\r\n \" auth_time is an optional claim and is not enabled by default - it must be enabled.\" +\r\n \" See https://aka.ms/msaljs/optional-claims for more information.\"\r\n },\r\n maxAgeTranspiredError: {\r\n code: \"max_age_transpired\",\r\n desc: \"Max Age is set to 0, or too much time has elapsed since the last end-user authentication.\"\r\n },\r\n noTokensFoundError: {\r\n code: \"no_tokens_found\",\r\n desc: \"No tokens were found for the given scopes, and no authorization code was passed to acquireToken. You must retrieve an authorization code before making a call to acquireToken().\"\r\n },\r\n multipleMatchingTokens: {\r\n code: \"multiple_matching_tokens\",\r\n desc: \"The cache contains multiple tokens satisfying the requirements. \" +\r\n \"Call AcquireToken again providing more requirements such as authority or account.\"\r\n },\r\n multipleMatchingAccounts: {\r\n code: \"multiple_matching_accounts\",\r\n desc: \"The cache contains multiple accounts satisfying the given parameters. Please pass more info to obtain the correct account\"\r\n },\r\n multipleMatchingAppMetadata: {\r\n code: \"multiple_matching_appMetadata\",\r\n desc: \"The cache contains multiple appMetadata satisfying the given parameters. Please pass more info to obtain the correct appMetadata\"\r\n },\r\n tokenRequestCannotBeMade: {\r\n code: \"request_cannot_be_made\",\r\n desc: \"Token request cannot be made without authorization code or refresh token.\"\r\n },\r\n appendEmptyScopeError: {\r\n code: \"cannot_append_empty_scope\",\r\n desc: \"Cannot append null or empty scope to ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n removeEmptyScopeError: {\r\n code: \"cannot_remove_empty_scope\",\r\n desc: \"Cannot remove null or empty scope from ScopeSet. Please check the stack trace for more info.\"\r\n },\r\n appendScopeSetError: {\r\n code: \"cannot_append_scopeset\",\r\n desc: \"Cannot append ScopeSet due to error.\"\r\n },\r\n emptyInputScopeSetError: {\r\n code: \"empty_input_scopeset\",\r\n desc: \"Empty input ScopeSet cannot be processed.\"\r\n },\r\n DeviceCodePollingCancelled: {\r\n code: \"device_code_polling_cancelled\",\r\n desc: \"Caller has cancelled token endpoint polling during device code flow by setting DeviceCodeRequest.cancel = true.\"\r\n },\r\n DeviceCodeExpired: {\r\n code: \"device_code_expired\",\r\n desc: \"Device code is expired.\"\r\n },\r\n DeviceCodeUnknownError: {\r\n code: \"device_code_unknown_error\",\r\n desc: \"Device code stopped polling for unknown reasons.\"\r\n },\r\n NoAccountInSilentRequest: {\r\n code: \"no_account_in_silent_request\",\r\n desc: \"Please pass an account object, silent flow is not supported without account information\"\r\n },\r\n invalidCacheRecord: {\r\n code: \"invalid_cache_record\",\r\n desc: \"Cache record object was null or undefined.\"\r\n },\r\n invalidCacheEnvironment: {\r\n code: \"invalid_cache_environment\",\r\n desc: \"Invalid environment when attempting to create cache entry\"\r\n },\r\n noAccountFound: {\r\n code: \"no_account_found\",\r\n desc: \"No account found in cache for given key.\"\r\n },\r\n CachePluginError: {\r\n code: \"no cache plugin set on CacheManager\",\r\n desc: \"ICachePlugin needs to be set before using readFromStorage or writeFromStorage\"\r\n },\r\n noCryptoObj: {\r\n code: \"no_crypto_object\",\r\n desc: \"No crypto object detected. This is required for the following operation: \"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n unexpectedAccountType: {\r\n code: \"unexpected_account_type\",\r\n desc: \"Unexpected account type.\"\r\n },\r\n unexpectedCredentialType: {\r\n code: \"unexpected_credential_type\",\r\n desc: \"Unexpected credential type.\"\r\n },\r\n invalidAssertion: {\r\n code: \"invalid_assertion\",\r\n desc: \"Client assertion must meet requirements described in https://tools.ietf.org/html/rfc7515\"\r\n },\r\n invalidClientCredential: {\r\n code: \"invalid_client_credential\",\r\n desc: \"Client credential (secret, certificate, or assertion) must not be empty when creating a confidential client. An application should at most have one credential\"\r\n },\r\n tokenRefreshRequired: {\r\n code: \"token_refresh_required\",\r\n desc: \"Cannot return token from cache because it must be refreshed. This may be due to one of the following reasons: forceRefresh parameter is set to true, claims have been requested, there is no cached access token or it is expired.\"\r\n },\r\n userTimeoutReached: {\r\n code: \"user_timeout_reached\",\r\n desc: \"User defined timeout for device code polling reached\",\r\n },\r\n tokenClaimsRequired: {\r\n code: \"token_claims_cnf_required_for_signedjwt\",\r\n desc: \"Cannot generate a POP jwt if the token_claims are not populated\"\r\n },\r\n noAuthorizationCodeFromServer: {\r\n code: \"authorization_code_missing_from_server_response\",\r\n desc: \"Server response does not contain an authorization code to proceed\"\r\n },\r\n noAzureRegionDetected: {\r\n code: \"no_azure_region_detected\",\r\n desc: \"No azure region was detected and no fallback was made available\"\r\n },\r\n accessTokenEntityNullError: {\r\n code: \"access_token_entity_null\",\r\n desc: \"Access token entity is null, please check logs and cache to ensure a valid access token is present.\"\r\n },\r\n bindingKeyNotRemovedError: {\r\n code: \"binding_key_not_removed\",\r\n desc: \"Could not remove the credential's binding key from storage.\"\r\n },\r\n logoutNotSupported: {\r\n code: \"end_session_endpoint_not_supported\",\r\n desc: \"Provided authority does not support logout.\"\r\n },\r\n keyIdMissing: {\r\n code: \"key_id_missing\",\r\n desc: \"A keyId value is missing from the requested bound token's cache record and is required to match the token to it's stored binding key.\"\r\n },\r\n noNetworkConnectivity: {\r\n code: \"no_network_connectivity\",\r\n desc: \"No network connectivity. Check your internet connection.\"\r\n },\r\n userCanceledError: {\r\n code: \"user_canceled\",\r\n desc: \"User canceled the flow.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in the client code running on the browser.\r\n */\r\nvar ClientAuthError = /** @class */ (function (_super) {\r\n __extends(ClientAuthError, _super);\r\n function ClientAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientAuthError\";\r\n Object.setPrototypeOf(_this, ClientAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when client info object doesn't decode correctly.\r\n * @param caughtError\r\n */\r\n ClientAuthError.createClientInfoDecodingError = function (caughtError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoDecodingError.code, ClientAuthErrorMessage.clientInfoDecodingError.desc + \" Failed with error: \" + caughtError);\r\n };\r\n /**\r\n * Creates an error thrown if the client info is empty.\r\n * @param rawClientInfo\r\n */\r\n ClientAuthError.createClientInfoEmptyError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.clientInfoEmptyError.code, \"\" + ClientAuthErrorMessage.clientInfoEmptyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the id token extraction errors out.\r\n * @param err\r\n */\r\n ClientAuthError.createTokenParsingError = function (caughtExtractionError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenParsingError.code, ClientAuthErrorMessage.tokenParsingError.desc + \" Failed with error: \" + caughtExtractionError);\r\n };\r\n /**\r\n * Creates an error thrown when the id token string is null or empty.\r\n * @param invalidRawTokenString\r\n */\r\n ClientAuthError.createTokenNullOrEmptyError = function (invalidRawTokenString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nullOrEmptyToken.code, ClientAuthErrorMessage.nullOrEmptyToken.desc + \" Raw Token Value: \" + invalidRawTokenString);\r\n };\r\n /**\r\n * Creates an error thrown when the endpoint discovery doesn't complete correctly.\r\n */\r\n ClientAuthError.createEndpointDiscoveryIncompleteError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.endpointResolutionError.code, ClientAuthErrorMessage.endpointResolutionError.desc + \" Detail: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the fetch client throws\r\n */\r\n ClientAuthError.createNetworkError = function (endpoint, errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.networkError.code, ClientAuthErrorMessage.networkError.desc + \" | Fetch client threw: \" + errDetail + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Creates an error thrown when the openid-configuration endpoint cannot be reached or does not contain the required data\r\n */\r\n ClientAuthError.createUnableToGetOpenidConfigError = function (errDetail) {\r\n return new ClientAuthError(ClientAuthErrorMessage.unableToGetOpenidConfigError.code, ClientAuthErrorMessage.unableToGetOpenidConfigError.desc + \" Attempted to retrieve endpoints from: \" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the hash cannot be deserialized.\r\n * @param hashParamObj\r\n */\r\n ClientAuthError.createHashNotDeserializedError = function (hashParamObj) {\r\n return new ClientAuthError(ClientAuthErrorMessage.hashNotDeserialized.code, ClientAuthErrorMessage.hashNotDeserialized.desc + \" Given Object: \" + hashParamObj);\r\n };\r\n /**\r\n * Creates an error thrown when the state cannot be parsed.\r\n * @param invalidState\r\n */\r\n ClientAuthError.createInvalidStateError = function (invalidState, errorString) {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidStateError.code, ClientAuthErrorMessage.invalidStateError.desc + \" Invalid State: \" + invalidState + \", Root Err: \" + errorString);\r\n };\r\n /**\r\n * Creates an error thrown when two states do not match.\r\n */\r\n ClientAuthError.createStateMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateMismatchError.code, ClientAuthErrorMessage.stateMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state is not present\r\n * @param missingState\r\n */\r\n ClientAuthError.createStateNotFoundError = function (missingState) {\r\n return new ClientAuthError(ClientAuthErrorMessage.stateNotFoundError.code, ClientAuthErrorMessage.stateNotFoundError.desc + \": \" + missingState);\r\n };\r\n /**\r\n * Creates an error thrown when the nonce does not match.\r\n */\r\n ClientAuthError.createNonceMismatchError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceMismatchError.code, ClientAuthErrorMessage.nonceMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when max_age was provided in the request, but auth_time is not in the token claims\r\n * @param missingNonce\r\n */\r\n ClientAuthError.createAuthTimeNotFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.authTimeNotFoundError.code, ClientAuthErrorMessage.authTimeNotFoundError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when too much time has elapsed since the last end-user authentication\r\n */\r\n ClientAuthError.createMaxAgeTranspiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.maxAgeTranspiredError.code, ClientAuthErrorMessage.maxAgeTranspiredError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the mnonce is not present\r\n * @param missingNonce\r\n */\r\n ClientAuthError.createNonceNotFoundError = function (missingNonce) {\r\n return new ClientAuthError(ClientAuthErrorMessage.nonceNotFoundError.code, ClientAuthErrorMessage.nonceNotFoundError.desc + \": \" + missingNonce);\r\n };\r\n /**\r\n * Throws error when multiple tokens are in cache.\r\n */\r\n ClientAuthError.createMultipleMatchingTokensInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingTokens.code, ClientAuthErrorMessage.multipleMatchingTokens.desc + \".\");\r\n };\r\n /**\r\n * Throws error when multiple accounts are in cache for the given params\r\n */\r\n ClientAuthError.createMultipleMatchingAccountsInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAccounts.code, ClientAuthErrorMessage.multipleMatchingAccounts.desc);\r\n };\r\n /**\r\n * Throws error when multiple appMetada are in cache for the given clientId.\r\n */\r\n ClientAuthError.createMultipleMatchingAppMetadataInCacheError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.multipleMatchingAppMetadata.code, ClientAuthErrorMessage.multipleMatchingAppMetadata.desc);\r\n };\r\n /**\r\n * Throws error when no auth code or refresh token is given to ServerTokenRequestParameters.\r\n */\r\n ClientAuthError.createTokenRequestCannotBeMadeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRequestCannotBeMade.code, ClientAuthErrorMessage.tokenRequestCannotBeMade.desc);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createAppendEmptyScopeToSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendEmptyScopeError.code, ClientAuthErrorMessage.appendEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append a null, undefined or empty scope to a set\r\n * @param givenScope\r\n */\r\n ClientAuthError.createRemoveEmptyScopeFromSetError = function (givenScope) {\r\n return new ClientAuthError(ClientAuthErrorMessage.removeEmptyScopeError.code, ClientAuthErrorMessage.removeEmptyScopeError.desc + \" Given Scope: \" + givenScope);\r\n };\r\n /**\r\n * Throws error when attempting to append null or empty ScopeSet.\r\n * @param appendError\r\n */\r\n ClientAuthError.createAppendScopeSetError = function (appendError) {\r\n return new ClientAuthError(ClientAuthErrorMessage.appendScopeSetError.code, ClientAuthErrorMessage.appendScopeSetError.desc + \" Detail Error: \" + appendError);\r\n };\r\n /**\r\n * Throws error if ScopeSet is null or undefined.\r\n * @param givenScopeSet\r\n */\r\n ClientAuthError.createEmptyInputScopeSetError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.emptyInputScopeSetError.code, \"\" + ClientAuthErrorMessage.emptyInputScopeSetError.desc);\r\n };\r\n /**\r\n * Throws error if user sets CancellationToken.cancel = true during polling of token endpoint during device code flow\r\n */\r\n ClientAuthError.createDeviceCodeCancelledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodePollingCancelled.code, \"\" + ClientAuthErrorMessage.DeviceCodePollingCancelled.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeExpiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeExpired.code, \"\" + ClientAuthErrorMessage.DeviceCodeExpired.desc);\r\n };\r\n /**\r\n * Throws error if device code is expired\r\n */\r\n ClientAuthError.createDeviceCodeUnknownError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.DeviceCodeUnknownError.code, \"\" + ClientAuthErrorMessage.DeviceCodeUnknownError.desc);\r\n };\r\n /**\r\n * Throws error when silent requests are made without an account object\r\n */\r\n ClientAuthError.createNoAccountInSilentRequestError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.NoAccountInSilentRequest.code, \"\" + ClientAuthErrorMessage.NoAccountInSilentRequest.desc);\r\n };\r\n /**\r\n * Throws error when cache record is null or undefined.\r\n */\r\n ClientAuthError.createNullOrUndefinedCacheRecord = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheRecord.code, ClientAuthErrorMessage.invalidCacheRecord.desc);\r\n };\r\n /**\r\n * Throws error when provided environment is not part of the CloudDiscoveryMetadata object\r\n */\r\n ClientAuthError.createInvalidCacheEnvironmentError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheEnvironment.code, ClientAuthErrorMessage.invalidCacheEnvironment.desc);\r\n };\r\n /**\r\n * Throws error when account is not found in cache.\r\n */\r\n ClientAuthError.createNoAccountFoundError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAccountFound.code, ClientAuthErrorMessage.noAccountFound.desc);\r\n };\r\n /**\r\n * Throws error if ICachePlugin not set on CacheManager.\r\n */\r\n ClientAuthError.createCachePluginError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.CachePluginError.code, \"\" + ClientAuthErrorMessage.CachePluginError.desc);\r\n };\r\n /**\r\n * Throws error if crypto object not found.\r\n * @param operationName\r\n */\r\n ClientAuthError.createNoCryptoObjectError = function (operationName) {\r\n return new ClientAuthError(ClientAuthErrorMessage.noCryptoObj.code, \"\" + ClientAuthErrorMessage.noCryptoObj.desc + operationName);\r\n };\r\n /**\r\n * Throws error if cache type is invalid.\r\n */\r\n ClientAuthError.createInvalidCacheTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidCacheType.code, \"\" + ClientAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected account type.\r\n */\r\n ClientAuthError.createUnexpectedAccountTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedAccountType.code, \"\" + ClientAuthErrorMessage.unexpectedAccountType.desc);\r\n };\r\n /**\r\n * Throws error if unexpected credential type.\r\n */\r\n ClientAuthError.createUnexpectedCredentialTypeError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.unexpectedCredentialType.code, \"\" + ClientAuthErrorMessage.unexpectedCredentialType.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidAssertionError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidAssertion.code, \"\" + ClientAuthErrorMessage.invalidAssertion.desc);\r\n };\r\n /**\r\n * Throws error if client assertion is not valid.\r\n */\r\n ClientAuthError.createInvalidCredentialError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.invalidClientCredential.code, \"\" + ClientAuthErrorMessage.invalidClientCredential.desc);\r\n };\r\n /**\r\n * Throws error if token cannot be retrieved from cache due to refresh being required.\r\n */\r\n ClientAuthError.createRefreshRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenRefreshRequired.code, ClientAuthErrorMessage.tokenRefreshRequired.desc);\r\n };\r\n /**\r\n * Throws error if the user defined timeout is reached.\r\n */\r\n ClientAuthError.createUserTimeoutReachedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userTimeoutReached.code, ClientAuthErrorMessage.userTimeoutReached.desc);\r\n };\r\n /*\r\n * Throws error if token claims are not populated for a signed jwt generation\r\n */\r\n ClientAuthError.createTokenClaimsRequiredError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.tokenClaimsRequired.code, ClientAuthErrorMessage.tokenClaimsRequired.desc);\r\n };\r\n /**\r\n * Throws error when the authorization code is missing from the server response\r\n */\r\n ClientAuthError.createNoAuthCodeInServerResponseError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noAuthorizationCodeFromServer.code, ClientAuthErrorMessage.noAuthorizationCodeFromServer.desc);\r\n };\r\n ClientAuthError.createBindingKeyNotRemovedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.bindingKeyNotRemovedError.code, ClientAuthErrorMessage.bindingKeyNotRemovedError.desc);\r\n };\r\n /**\r\n * Thrown when logout is attempted for an authority that doesnt have an end_session_endpoint\r\n */\r\n ClientAuthError.createLogoutNotSupportedError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.logoutNotSupported.code, ClientAuthErrorMessage.logoutNotSupported.desc);\r\n };\r\n /**\r\n * Create an error when kid attribute is missing from a PoP token's cache record\r\n */\r\n ClientAuthError.createKeyIdMissingError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.keyIdMissing.code, ClientAuthErrorMessage.keyIdMissing.desc);\r\n };\r\n /**\r\n * Create an error when the client does not have network connectivity\r\n */\r\n ClientAuthError.createNoNetworkConnectivityError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.noNetworkConnectivity.code, ClientAuthErrorMessage.noNetworkConnectivity.desc);\r\n };\r\n /**\r\n * Create an error when the user cancels the flow\r\n */\r\n ClientAuthError.createUserCanceledError = function () {\r\n return new ClientAuthError(ClientAuthErrorMessage.userCanceledError.code, ClientAuthErrorMessage.userCanceledError.desc);\r\n };\r\n return ClientAuthError;\r\n}(AuthError));\n\nexport { ClientAuthError, ClientAuthErrorMessage };\n//# sourceMappingURL=ClientAuthError.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * @hidden\r\n */\r\nvar StringUtils = /** @class */ (function () {\r\n function StringUtils() {\r\n }\r\n /**\r\n * decode a JWT\r\n *\r\n * @param authToken\r\n */\r\n StringUtils.decodeAuthToken = function (authToken) {\r\n if (StringUtils.isEmpty(authToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(authToken);\r\n }\r\n var tokenPartsRegex = /^([^\\.\\s]*)\\.([^\\.\\s]+)\\.([^\\.\\s]*)$/;\r\n var matches = tokenPartsRegex.exec(authToken);\r\n if (!matches || matches.length < 4) {\r\n throw ClientAuthError.createTokenParsingError(\"Given token is malformed: \" + JSON.stringify(authToken));\r\n }\r\n var crackedToken = {\r\n header: matches[1],\r\n JWSPayload: matches[2],\r\n JWSSig: matches[3]\r\n };\r\n return crackedToken;\r\n };\r\n /**\r\n * Check if a string is empty.\r\n *\r\n * @param str\r\n */\r\n StringUtils.isEmpty = function (str) {\r\n return (typeof str === \"undefined\" || !str || 0 === str.length);\r\n };\r\n /**\r\n * Check if stringified object is empty\r\n * @param strObj\r\n */\r\n StringUtils.isEmptyObj = function (strObj) {\r\n if (strObj && !StringUtils.isEmpty(strObj)) {\r\n try {\r\n var obj = JSON.parse(strObj);\r\n return Object.keys(obj).length === 0;\r\n }\r\n catch (e) { }\r\n }\r\n return true;\r\n };\r\n StringUtils.startsWith = function (str, search) {\r\n return str.indexOf(search) === 0;\r\n };\r\n StringUtils.endsWith = function (str, search) {\r\n return (str.length >= search.length) && (str.lastIndexOf(search) === (str.length - search.length));\r\n };\r\n /**\r\n * Parses string into an object.\r\n *\r\n * @param query\r\n */\r\n StringUtils.queryStringToObject = function (query) {\r\n var obj = {};\r\n var params = query.split(\"&\");\r\n var decode = function (s) { return decodeURIComponent(s.replace(/\\+/g, \" \")); };\r\n params.forEach(function (pair) {\r\n if (pair.trim()) {\r\n var _a = pair.split(/=(.+)/g, 2), key = _a[0], value = _a[1]; // Split on the first occurence of the '=' character\r\n if (key && value) {\r\n obj[decode(key)] = decode(value);\r\n }\r\n }\r\n });\r\n return obj;\r\n };\r\n /**\r\n * Trims entries in an array.\r\n *\r\n * @param arr\r\n */\r\n StringUtils.trimArrayEntries = function (arr) {\r\n return arr.map(function (entry) { return entry.trim(); });\r\n };\r\n /**\r\n * Removes empty strings from array\r\n * @param arr\r\n */\r\n StringUtils.removeEmptyStringsFromArray = function (arr) {\r\n return arr.filter(function (entry) {\r\n return !StringUtils.isEmpty(entry);\r\n });\r\n };\r\n /**\r\n * Attempts to parse a string into JSON\r\n * @param str\r\n */\r\n StringUtils.jsonParseHelper = function (str) {\r\n try {\r\n return JSON.parse(str);\r\n }\r\n catch (e) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * Tests if a given string matches a given pattern, with support for wildcards and queries.\r\n * @param pattern Wildcard pattern to string match. Supports \"*\" for wildcards and \"?\" for queries\r\n * @param input String to match against\r\n */\r\n StringUtils.matchPattern = function (pattern, input) {\r\n /**\r\n * Wildcard support: https://stackoverflow.com/a/3117248/4888559\r\n * Queries: replaces \"?\" in string with escaped \"\\?\" for regex test\r\n */\r\n var regex = new RegExp(pattern.replace(/\\\\/g, \"\\\\\\\\\").replace(/\\*/g, \"[^ ]*\").replace(/\\?/g, \"\\\\\\?\")); // eslint-disable-line security/detect-non-literal-regexp\r\n return regex.test(input);\r\n };\r\n return StringUtils;\r\n}());\n\nexport { StringUtils };\n//# sourceMappingURL=StringUtils.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { StringUtils, AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserAuthErrorMessage = {\r\n pkceNotGenerated: {\r\n code: \"pkce_not_created\",\r\n desc: \"The PKCE code challenge and verifier could not be generated.\"\r\n },\r\n cryptoDoesNotExist: {\r\n code: \"crypto_nonexistent\",\r\n desc: \"The crypto object or function is not available.\"\r\n },\r\n httpMethodNotImplementedError: {\r\n code: \"http_method_not_implemented\",\r\n desc: \"The HTTP method given has not been implemented in this library.\"\r\n },\r\n emptyNavigateUriError: {\r\n code: \"empty_navigate_uri\",\r\n desc: \"Navigation URI is empty. Please check stack trace for more info.\"\r\n },\r\n hashEmptyError: {\r\n code: \"hash_empty_error\",\r\n desc: \"Hash value cannot be processed because it is empty. Please verify that your redirectUri is not clearing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n hashDoesNotContainStateError: {\r\n code: \"no_state_in_hash\",\r\n desc: \"Hash does not contain state. Please verify that the request originated from msal.\"\r\n },\r\n hashDoesNotContainKnownPropertiesError: {\r\n code: \"hash_does_not_contain_known_properties\",\r\n desc: \"Hash does not contain known properites. Please verify that your redirectUri is not changing the hash. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n unableToParseStateError: {\r\n code: \"unable_to_parse_state\",\r\n desc: \"Unable to parse state. Please verify that the request originated from msal.\"\r\n },\r\n stateInteractionTypeMismatchError: {\r\n code: \"state_interaction_type_mismatch\",\r\n desc: \"Hash contains state but the interaction type does not match the caller.\"\r\n },\r\n interactionInProgress: {\r\n code: \"interaction_in_progress\",\r\n desc: \"Interaction is currently in progress. Please ensure that this interaction has been completed before calling an interactive API. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n popupWindowError: {\r\n code: \"popup_window_error\",\r\n desc: \"Error opening popup window. This can happen if you are using IE or if popups are blocked in the browser.\"\r\n },\r\n emptyWindowError: {\r\n code: \"empty_window_error\",\r\n desc: \"window.open returned null or undefined window object.\"\r\n },\r\n userCancelledError: {\r\n code: \"user_cancelled\",\r\n desc: \"User cancelled the flow.\"\r\n },\r\n monitorPopupTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in popup failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n monitorIframeTimeoutError: {\r\n code: \"monitor_window_timeout\",\r\n desc: \"Token acquisition in iframe failed due to timeout. For more visit: aka.ms/msaljs/browser-errors.\"\r\n },\r\n redirectInIframeError: {\r\n code: \"redirect_in_iframe\",\r\n desc: \"Redirects are not supported for iframed or brokered applications. Please ensure you are using MSAL.js in a top frame of the window if using the redirect APIs, or use the popup APIs.\"\r\n },\r\n blockTokenRequestsInHiddenIframeError: {\r\n code: \"block_iframe_reload\",\r\n desc: \"Request was blocked inside an iframe because MSAL detected an authentication response. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n blockAcquireTokenInPopupsError: {\r\n code: \"block_nested_popups\",\r\n desc: \"Request was blocked inside a popup because MSAL detected it was running in a popup.\"\r\n },\r\n iframeClosedPrematurelyError: {\r\n code: \"iframe_closed_prematurely\",\r\n desc: \"The iframe being monitored was closed prematurely.\"\r\n },\r\n silentLogoutUnsupportedError: {\r\n code: \"silent_logout_unsupported\",\r\n desc: \"Silent logout not supported. Please call logoutRedirect or logoutPopup instead.\"\r\n },\r\n noAccountError: {\r\n code: \"no_account_error\",\r\n desc: \"No account object provided to acquireTokenSilent and no active account has been set. Please call setActiveAccount or provide an account on the request.\"\r\n },\r\n silentPromptValueError: {\r\n code: \"silent_prompt_value_error\",\r\n desc: \"The value given for the prompt value is not valid for silent requests - must be set to 'none' or 'no_session'.\"\r\n },\r\n noTokenRequestCacheError: {\r\n code: \"no_token_request_cache_error\",\r\n desc: \"No token request found in cache.\"\r\n },\r\n unableToParseTokenRequestCacheError: {\r\n code: \"unable_to_parse_token_request_cache_error\",\r\n desc: \"The cached token request could not be parsed.\"\r\n },\r\n noCachedAuthorityError: {\r\n code: \"no_cached_authority_error\",\r\n desc: \"No cached authority found.\"\r\n },\r\n authRequestNotSet: {\r\n code: \"auth_request_not_set_error\",\r\n desc: \"Auth Request not set. Please ensure initiateAuthRequest was called from the InteractionHandler\"\r\n },\r\n invalidCacheType: {\r\n code: \"invalid_cache_type\",\r\n desc: \"Invalid cache type\"\r\n },\r\n notInBrowserEnvironment: {\r\n code: \"non_browser_environment\",\r\n desc: \"Login and token requests are not supported in non-browser environments.\"\r\n },\r\n databaseNotOpen: {\r\n code: \"database_not_open\",\r\n desc: \"Database is not open!\"\r\n },\r\n noNetworkConnectivity: {\r\n code: \"no_network_connectivity\",\r\n desc: \"No network connectivity. Check your internet connection.\"\r\n },\r\n postRequestFailed: {\r\n code: \"post_request_failed\",\r\n desc: \"Network request failed: If the browser threw a CORS error, check that the redirectUri is registered in the Azure App Portal as type 'SPA'\"\r\n },\r\n getRequestFailed: {\r\n code: \"get_request_failed\",\r\n desc: \"Network request failed. Please check the network trace to determine root cause.\"\r\n },\r\n failedToParseNetworkResponse: {\r\n code: \"failed_to_parse_response\",\r\n desc: \"Failed to parse network response. Check network trace.\"\r\n },\r\n unableToLoadTokenError: {\r\n code: \"unable_to_load_token\",\r\n desc: \"Error loading token to cache.\"\r\n },\r\n signingKeyNotFoundInStorage: {\r\n code: \"crypto_key_not_found\",\r\n desc: \"Cryptographic Key or Keypair not found in browser storage.\"\r\n },\r\n authCodeRequired: {\r\n code: \"auth_code_required\",\r\n desc: \"An authorization code must be provided (as the `code` property on the request) to this flow.\"\r\n },\r\n authCodeOrNativeAccountRequired: {\r\n code: \"auth_code_or_nativeAccountId_required\",\r\n desc: \"An authorization code or nativeAccountId must be provided to this flow.\"\r\n },\r\n spaCodeAndNativeAccountPresent: {\r\n code: \"spa_code_and_nativeAccountId_present\",\r\n desc: \"Request cannot contain both spa code and native account id.\"\r\n },\r\n databaseUnavailable: {\r\n code: \"database_unavailable\",\r\n desc: \"IndexedDB, which is required for persistent cryptographic key storage, is unavailable. This may be caused by browser privacy features which block persistent storage in third-party contexts.\"\r\n },\r\n unableToAcquireTokenFromNativePlatform: {\r\n code: \"unable_to_acquire_token_from_native_platform\",\r\n desc: \"Unable to acquire token from native platform. For a list of possible reasons visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativeHandshakeTimeout: {\r\n code: \"native_handshake_timeout\",\r\n desc: \"Timed out while attempting to establish connection to browser extension\"\r\n },\r\n nativeExtensionNotInstalled: {\r\n code: \"native_extension_not_installed\",\r\n desc: \"Native extension is not installed. If you think this is a mistake call the initialize function.\"\r\n },\r\n nativeConnectionNotEstablished: {\r\n code: \"native_connection_not_established\",\r\n desc: \"Connection to native platform has not been established. Please install a compatible browser extension and run initialize(). For more please visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativeBrokerCalledBeforeInitialize: {\r\n code: \"native_broker_called_before_initialize\",\r\n desc: \"You must call and await the initialize function before attempting to call any other MSAL API when native brokering is enabled. For more please visit aka.ms/msaljs/browser-errors.\"\r\n },\r\n nativePromptNotSupported: {\r\n code: \"native_prompt_not_supported\",\r\n desc: \"The provided prompt is not supported by the native platform. This request should be routed to the web based flow.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserAuthError, _super);\r\n function BrowserAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n Object.setPrototypeOf(_this, BrowserAuthError.prototype);\r\n _this.name = \"BrowserAuthError\";\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when PKCE is not implemented.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPkceNotGeneratedError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.pkceNotGenerated.code, BrowserAuthErrorMessage.pkceNotGenerated.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when the crypto object is unavailable.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createCryptoNotAvailableError = function (errDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.cryptoDoesNotExist.code, BrowserAuthErrorMessage.cryptoDoesNotExist.desc + \" Detail:\" + errDetail);\r\n };\r\n /**\r\n * Creates an error thrown when an HTTP method hasn't been implemented by the browser class.\r\n * @param method\r\n */\r\n BrowserAuthError.createHttpMethodNotImplementedError = function (method) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.httpMethodNotImplementedError.code, BrowserAuthErrorMessage.httpMethodNotImplementedError.desc + \" Given Method: \" + method);\r\n };\r\n /**\r\n * Creates an error thrown when the navigation URI is empty.\r\n */\r\n BrowserAuthError.createEmptyNavigationUriError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyNavigateUriError.code, BrowserAuthErrorMessage.emptyNavigateUriError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n * @param hashValue\r\n */\r\n BrowserAuthError.createEmptyHashError = function (hashValue) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashEmptyError.code, BrowserAuthErrorMessage.hashEmptyError.desc + \" Given Url: \" + hashValue);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createHashDoesNotContainStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainStateError.code, BrowserAuthErrorMessage.hashDoesNotContainStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value does not contain known properties\r\n */\r\n BrowserAuthError.createHashDoesNotContainKnownPropertiesError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.code, BrowserAuthErrorMessage.hashDoesNotContainKnownPropertiesError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the hash string value is unexpectedly empty.\r\n */\r\n BrowserAuthError.createUnableToParseStateError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseStateError.code, BrowserAuthErrorMessage.unableToParseStateError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the state value in the hash does not match the interaction type of the API attempting to consume it.\r\n */\r\n BrowserAuthError.createStateInteractionTypeMismatchError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.stateInteractionTypeMismatchError.code, BrowserAuthErrorMessage.stateInteractionTypeMismatchError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a browser interaction (redirect or popup) is in progress.\r\n */\r\n BrowserAuthError.createInteractionInProgressError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.interactionInProgress.code, BrowserAuthErrorMessage.interactionInProgress.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the popup window could not be opened.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createPopupWindowError = function (errDetail) {\r\n var errorMessage = BrowserAuthErrorMessage.popupWindowError.desc;\r\n errorMessage = !StringUtils.isEmpty(errDetail) ? errorMessage + \" Details: \" + errDetail : errorMessage;\r\n return new BrowserAuthError(BrowserAuthErrorMessage.popupWindowError.code, errorMessage);\r\n };\r\n /**\r\n * Creates an error thrown when window.open returns an empty window object.\r\n * @param errDetail\r\n */\r\n BrowserAuthError.createEmptyWindowCreatedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.emptyWindowError.code, BrowserAuthErrorMessage.emptyWindowError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the user closes a popup.\r\n */\r\n BrowserAuthError.createUserCancelledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.userCancelledError.code, BrowserAuthErrorMessage.userCancelledError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorPopupFromHash times out for a given popup.\r\n */\r\n BrowserAuthError.createMonitorPopupTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorPopupTimeoutError.code, BrowserAuthErrorMessage.monitorPopupTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when monitorIframeFromHash times out for a given iframe.\r\n */\r\n BrowserAuthError.createMonitorIframeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.monitorIframeTimeoutError.code, BrowserAuthErrorMessage.monitorIframeTimeoutError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when navigateWindow is called inside an iframe or brokered applications.\r\n * @param windowParentCheck\r\n */\r\n BrowserAuthError.createRedirectInIframeError = function (windowParentCheck) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.redirectInIframeError.code, BrowserAuthErrorMessage.redirectInIframeError.desc + \" (window.parent !== window) => \" + windowParentCheck);\r\n };\r\n /**\r\n * Creates an error thrown when an auth reload is done inside an iframe.\r\n */\r\n BrowserAuthError.createBlockReloadInHiddenIframeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.code, BrowserAuthErrorMessage.blockTokenRequestsInHiddenIframeError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a popup attempts to call an acquireToken API\r\n * @returns\r\n */\r\n BrowserAuthError.createBlockAcquireTokenInPopupsError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.code, BrowserAuthErrorMessage.blockAcquireTokenInPopupsError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when an iframe is found to be closed before the timeout is reached.\r\n */\r\n BrowserAuthError.createIframeClosedPrematurelyError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.iframeClosedPrematurelyError.code, BrowserAuthErrorMessage.iframeClosedPrematurelyError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the logout API is called on any of the silent interaction clients\r\n */\r\n BrowserAuthError.createSilentLogoutUnsupportedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentLogoutUnsupportedError.code, BrowserAuthErrorMessage.silentLogoutUnsupportedError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the account object is not provided in the acquireTokenSilent API.\r\n */\r\n BrowserAuthError.createNoAccountError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noAccountError.code, BrowserAuthErrorMessage.noAccountError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a given prompt value is invalid for silent requests.\r\n */\r\n BrowserAuthError.createSilentPromptValueError = function (givenPrompt) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.silentPromptValueError.code, BrowserAuthErrorMessage.silentPromptValueError.desc + \" Given value: \" + givenPrompt);\r\n };\r\n /**\r\n * Creates an error thrown when the cached token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createUnableToParseTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.code, BrowserAuthErrorMessage.unableToParseTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the token request could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoTokenRequestCacheError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noTokenRequestCacheError.code, BrowserAuthErrorMessage.noTokenRequestCacheError.desc);\r\n };\r\n /**\r\n * Creates an error thrown when handleCodeResponse is called before initiateAuthRequest (InteractionHandler)\r\n */\r\n BrowserAuthError.createAuthRequestNotSetError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authRequestNotSet.code, BrowserAuthErrorMessage.authRequestNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the authority could not be retrieved from the cache\r\n */\r\n BrowserAuthError.createNoCachedAuthorityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noCachedAuthorityError.code, BrowserAuthErrorMessage.noCachedAuthorityError.desc);\r\n };\r\n /**\r\n * Creates an error thrown if cache type is invalid.\r\n */\r\n BrowserAuthError.createInvalidCacheTypeError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.invalidCacheType.code, \"\" + BrowserAuthErrorMessage.invalidCacheType.desc);\r\n };\r\n /**\r\n * Create an error thrown when login and token requests are made from a non-browser environment\r\n */\r\n BrowserAuthError.createNonBrowserEnvironmentError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.notInBrowserEnvironment.code, BrowserAuthErrorMessage.notInBrowserEnvironment.desc);\r\n };\r\n /**\r\n * Create an error thrown when indexDB database is not open\r\n */\r\n BrowserAuthError.createDatabaseNotOpenError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseNotOpen.code, BrowserAuthErrorMessage.databaseNotOpen.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to no internet\r\n */\r\n BrowserAuthError.createNoNetworkConnectivityError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.noNetworkConnectivity.code, BrowserAuthErrorMessage.noNetworkConnectivity.desc);\r\n };\r\n /**\r\n * Create an error thrown when token fetch fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createPostRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.postRequestFailed.code, BrowserAuthErrorMessage.postRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when get request fails due to reasons other than internet connectivity\r\n */\r\n BrowserAuthError.createGetRequestFailedError = function (errorDesc, endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.getRequestFailed.code, BrowserAuthErrorMessage.getRequestFailed.desc + \" | Network client threw: \" + errorDesc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when network client fails to parse network response\r\n */\r\n BrowserAuthError.createFailedToParseNetworkResponseError = function (endpoint) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.failedToParseNetworkResponse.code, BrowserAuthErrorMessage.failedToParseNetworkResponse.desc + \" | Attempted to reach: \" + endpoint.split(\"?\")[0]);\r\n };\r\n /**\r\n * Create an error thrown when the necessary information is not available to sideload tokens\r\n */\r\n BrowserAuthError.createUnableToLoadTokenError = function (errorDetail) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToLoadTokenError.code, BrowserAuthErrorMessage.unableToLoadTokenError.desc + \" | \" + errorDetail);\r\n };\r\n /**\r\n * Create an error thrown when the queried cryptographic key is not found in IndexedDB\r\n */\r\n BrowserAuthError.createSigningKeyNotFoundInStorageError = function (keyId) {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code, BrowserAuthErrorMessage.signingKeyNotFoundInStorage.desc + \" | No match found for KeyId: \" + keyId);\r\n };\r\n /**\r\n * Create an error when an authorization code is required but not provided\r\n */\r\n BrowserAuthError.createAuthCodeRequiredError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeRequired.code, BrowserAuthErrorMessage.authCodeRequired.desc);\r\n };\r\n /**\r\n * Create an error when an authorization code or native account ID is required but not provided\r\n */\r\n BrowserAuthError.createAuthCodeOrNativeAccountIdRequiredError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.code, BrowserAuthErrorMessage.authCodeOrNativeAccountRequired.desc);\r\n };\r\n /**\r\n * Create an error when both authorization code and native account ID are provided\r\n */\r\n BrowserAuthError.createSpaCodeAndNativeAccountIdPresentError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.spaCodeAndNativeAccountPresent.code, BrowserAuthErrorMessage.spaCodeAndNativeAccountPresent.desc);\r\n };\r\n /**\r\n * Create an error when IndexedDB is unavailable\r\n */\r\n BrowserAuthError.createDatabaseUnavailableError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.databaseUnavailable.code, BrowserAuthErrorMessage.databaseUnavailable.desc);\r\n };\r\n /**\r\n * Create an error when native token acquisition is not possible\r\n */\r\n BrowserAuthError.createUnableToAcquireTokenFromNativePlatformError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.code, BrowserAuthErrorMessage.unableToAcquireTokenFromNativePlatform.desc);\r\n };\r\n /**\r\n * Create an error thrown when Handshake with browser extension times out\r\n */\r\n BrowserAuthError.createNativeHandshakeTimeoutError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeHandshakeTimeout.code, BrowserAuthErrorMessage.nativeHandshakeTimeout.desc);\r\n };\r\n /**\r\n * Create an error thrown when browser extension is not installed\r\n */\r\n BrowserAuthError.createNativeExtensionNotInstalledError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeExtensionNotInstalled.code, BrowserAuthErrorMessage.nativeExtensionNotInstalled.desc);\r\n };\r\n /**\r\n * Create an error when native connection has not been established\r\n * @returns\r\n */\r\n BrowserAuthError.createNativeConnectionNotEstablishedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeConnectionNotEstablished.code, BrowserAuthErrorMessage.nativeConnectionNotEstablished.desc);\r\n };\r\n /**\r\n * Create an error thrown when the initialize function hasn't been called\r\n */\r\n BrowserAuthError.createNativeBrokerCalledBeforeInitialize = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.code, BrowserAuthErrorMessage.nativeBrokerCalledBeforeInitialize.desc);\r\n };\r\n /**\r\n * Create an error thrown when requesting a token directly from the native platform with an unsupported prompt parameter e.g. select_account, login or create\r\n * These requests must go through eSTS to ensure eSTS is aware of the new account\r\n */\r\n BrowserAuthError.createNativePromptParameterNotSupportedError = function () {\r\n return new BrowserAuthError(BrowserAuthErrorMessage.nativePromptNotSupported.code, BrowserAuthErrorMessage.nativePromptNotSupported.desc);\r\n };\r\n return BrowserAuthError;\r\n}(AuthError));\n\nexport { BrowserAuthError, BrowserAuthErrorMessage };\n//# sourceMappingURL=BrowserAuthError.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Constant byte array length\r\nvar RANDOM_BYTE_ARR_LENGTH = 32;\r\n/**\r\n * Class which exposes APIs to generate PKCE codes and code verifiers.\r\n */\r\nvar PkceGenerator = /** @class */ (function () {\r\n function PkceGenerator(cryptoObj) {\r\n this.base64Encode = new Base64Encode();\r\n this.cryptoObj = cryptoObj;\r\n }\r\n /**\r\n * Generates PKCE Codes. See the RFC for more information: https://tools.ietf.org/html/rfc7636\r\n */\r\n PkceGenerator.prototype.generateCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var codeVerifier, codeChallenge;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n codeVerifier = this.generateCodeVerifier();\r\n return [4 /*yield*/, this.generateCodeChallengeFromVerifier(codeVerifier)];\r\n case 1:\r\n codeChallenge = _a.sent();\r\n return [2 /*return*/, {\r\n verifier: codeVerifier,\r\n challenge: codeChallenge\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a random 32 byte buffer and returns the base64\r\n * encoded string to be used as a PKCE Code Verifier\r\n */\r\n PkceGenerator.prototype.generateCodeVerifier = function () {\r\n try {\r\n // Generate random values as utf-8\r\n var buffer = new Uint8Array(RANDOM_BYTE_ARR_LENGTH);\r\n this.cryptoObj.getRandomValues(buffer);\r\n // encode verifier as base64\r\n var pkceCodeVerifierB64 = this.base64Encode.urlEncodeArr(buffer);\r\n return pkceCodeVerifierB64;\r\n }\r\n catch (e) {\r\n throw BrowserAuthError.createPkceNotGeneratedError(e);\r\n }\r\n };\r\n /**\r\n * Creates a base64 encoded PKCE Code Challenge string from the\r\n * hash created from the PKCE Code Verifier supplied\r\n */\r\n PkceGenerator.prototype.generateCodeChallengeFromVerifier = function (pkceCodeVerifier) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var pkceHashedCodeVerifier, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.cryptoObj.sha256Digest(pkceCodeVerifier)];\r\n case 1:\r\n pkceHashedCodeVerifier = _a.sent();\r\n // encode hash as base64\r\n return [2 /*return*/, this.base64Encode.urlEncodeArr(new Uint8Array(pkceHashedCodeVerifier))];\r\n case 2:\r\n e_1 = _a.sent();\r\n throw BrowserAuthError.createPkceNotGeneratedError(e_1);\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return PkceGenerator;\r\n}());\n\nexport { PkceGenerator };\n//# sourceMappingURL=PkceGenerator.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ModernBrowserCrypto = /** @class */ (function () {\r\n function ModernBrowserCrypto() {\r\n }\r\n ModernBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window.crypto.getRandomValues(dataBuffer);\r\n };\r\n ModernBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.generateKey(algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.importKey(KEY_FORMAT_JWK, keyData, algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.sign(algorithm, key, data)];\r\n });\r\n });\r\n };\r\n ModernBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.crypto.subtle.digest(algorithm, data)];\r\n });\r\n });\r\n };\r\n return ModernBrowserCrypto;\r\n}());\n\nexport { ModernBrowserCrypto };\n//# sourceMappingURL=ModernBrowserCrypto.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __spread, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MsrBrowserCrypto = /** @class */ (function () {\r\n function MsrBrowserCrypto() {\r\n }\r\n MsrBrowserCrypto.prototype.initPrng = function (entropy) {\r\n // Turn into array, as initPrng seems to not always like Uint8Array (even though it should support both)\r\n return window.msrCrypto.initPrng(__spread(entropy));\r\n };\r\n MsrBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window.msrCrypto.getRandomValues(dataBuffer);\r\n };\r\n MsrBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.generateKey(algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.exportKey(KEY_FORMAT_JWK, key)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.importKey(KEY_FORMAT_JWK, keyData, algorithm, extractable, keyUsages)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.sign(algorithm, key, data)];\r\n });\r\n });\r\n };\r\n MsrBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, window.msrCrypto.subtle.digest(algorithm, data)];\r\n });\r\n });\r\n };\r\n return MsrBrowserCrypto;\r\n}());\n\nexport { MsrBrowserCrypto };\n//# sourceMappingURL=MsrBrowserCrypto.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Constants } from '@azure/msal-common';\nimport { KEY_FORMAT_JWK } from '../utils/BrowserConstants.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MsBrowserCrypto = /** @class */ (function () {\r\n function MsBrowserCrypto() {\r\n }\r\n MsBrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return window[\"msCrypto\"].getRandomValues(dataBuffer);\r\n };\r\n MsBrowserCrypto.prototype.generateKey = function (algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msGenerateKey = window[\"msCrypto\"].subtle.generateKey(algorithm, extractable, keyUsages);\r\n msGenerateKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msGenerateKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.exportKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msExportKey = window[\"msCrypto\"].subtle.exportKey(KEY_FORMAT_JWK, key);\r\n msExportKey.addEventListener(\"complete\", function (e) {\r\n var resultBuffer = e.target.result;\r\n var resultString = BrowserStringUtils.utf8ArrToString(new Uint8Array(resultBuffer))\r\n .replace(/\\r/g, Constants.EMPTY_STRING)\r\n .replace(/\\n/g, Constants.EMPTY_STRING)\r\n .replace(/\\t/g, Constants.EMPTY_STRING)\r\n .split(\" \").join(Constants.EMPTY_STRING)\r\n .replace(\"\\u0000\", Constants.EMPTY_STRING);\r\n try {\r\n resolve(JSON.parse(resultString));\r\n }\r\n catch (e) {\r\n reject(e);\r\n }\r\n });\r\n msExportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.importKey = function (keyData, algorithm, extractable, keyUsages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyString, keyBuffer;\r\n return __generator(this, function (_a) {\r\n keyString = BrowserStringUtils.getSortedObjectString(keyData);\r\n keyBuffer = BrowserStringUtils.stringToArrayBuffer(keyString);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msImportKey = window[\"msCrypto\"].subtle.importKey(KEY_FORMAT_JWK, keyBuffer, algorithm, extractable, keyUsages);\r\n msImportKey.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msImportKey.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.sign = function (algorithm, key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var msSign = window[\"msCrypto\"].subtle.sign(algorithm, key, data);\r\n msSign.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n msSign.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n MsBrowserCrypto.prototype.digest = function (algorithm, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var digestOperation = window[\"msCrypto\"].subtle.digest(algorithm, data.buffer);\r\n digestOperation.addEventListener(\"complete\", function (e) {\r\n resolve(e.target.result);\r\n });\r\n digestOperation.addEventListener(\"error\", function (error) {\r\n reject(error);\r\n });\r\n })];\r\n });\r\n });\r\n };\r\n return MsBrowserCrypto;\r\n}());\n\nexport { MsBrowserCrypto };\n//# sourceMappingURL=MsBrowserCrypto.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthError } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * BrowserAuthErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar BrowserConfigurationAuthErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n storageNotSupportedError: {\r\n code: \"storage_not_supported\",\r\n desc: \"Given storage configuration option was not supported.\"\r\n },\r\n noRedirectCallbacksSet: {\r\n code: \"no_redirect_callbacks\",\r\n desc: \"No redirect callbacks have been set. Please call setRedirectCallbacks() with the appropriate function arguments before continuing. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n invalidCallbackObject: {\r\n code: \"invalid_callback_object\",\r\n desc: \"The object passed for the callback was invalid. \" +\r\n \"More information is available here: https://github.com/AzureAD/microsoft-authentication-library-for-js/wiki/MSAL-basics.\"\r\n },\r\n stubPcaInstanceCalled: {\r\n code: \"stubbed_public_client_application_called\",\r\n desc: \"Stub instance of Public Client Application was called. If using msal-react, please ensure context is not used without a provider. For more visit: aka.ms/msaljs/browser-errors\"\r\n },\r\n inMemRedirectUnavailable: {\r\n code: \"in_mem_redirect_unavailable\",\r\n desc: \"Redirect cannot be supported. In-memory storage was selected and storeAuthStateInCookie=false, which would cause the library to be unable to handle the incoming hash. If you would like to use the redirect API, please use session/localStorage or set storeAuthStateInCookie=true.\"\r\n },\r\n entropyNotProvided: {\r\n code: \"entropy_not_provided\",\r\n desc: \"The available browser crypto interface requires entropy set via system.cryptoOptions.entropy configuration option.\"\r\n }\r\n};\r\n/**\r\n * Browser library error class thrown by the MSAL.js library for SPAs\r\n */\r\nvar BrowserConfigurationAuthError = /** @class */ (function (_super) {\r\n __extends(BrowserConfigurationAuthError, _super);\r\n function BrowserConfigurationAuthError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"BrowserConfigurationAuthError\";\r\n Object.setPrototypeOf(_this, BrowserConfigurationAuthError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.redirectUriNotSet.code, BrowserConfigurationAuthErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n BrowserConfigurationAuthError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.code, BrowserConfigurationAuthErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when given storage location is not supported.\r\n * @param givenStorageLocation\r\n */\r\n BrowserConfigurationAuthError.createStorageNotSupportedError = function (givenStorageLocation) {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.storageNotSupportedError.code, BrowserConfigurationAuthErrorMessage.storageNotSupportedError.desc + \" Given Location: \" + givenStorageLocation);\r\n };\r\n /**\r\n * Creates error thrown when redirect callbacks are not set before calling loginRedirect() or acquireTokenRedirect().\r\n */\r\n BrowserConfigurationAuthError.createRedirectCallbacksNotSetError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.code, BrowserConfigurationAuthErrorMessage.noRedirectCallbacksSet.desc);\r\n };\r\n /**\r\n * Creates error thrown when the stub instance of PublicClientApplication is called.\r\n */\r\n BrowserConfigurationAuthError.createStubPcaInstanceCalledError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.code, BrowserConfigurationAuthErrorMessage.stubPcaInstanceCalled.desc);\r\n };\r\n /*\r\n * Create an error thrown when in-memory storage is used and storeAuthStateInCookie=false.\r\n */\r\n BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.code, BrowserConfigurationAuthErrorMessage.inMemRedirectUnavailable.desc);\r\n };\r\n /**\r\n * Creates an error thrown when a crypto interface that requires entropy is initialized without entropy\r\n */\r\n BrowserConfigurationAuthError.createEntropyNotProvided = function () {\r\n return new BrowserConfigurationAuthError(BrowserConfigurationAuthErrorMessage.entropyNotProvided.code, BrowserConfigurationAuthErrorMessage.entropyNotProvided.desc);\r\n };\r\n return BrowserConfigurationAuthError;\r\n}(AuthError));\n\nexport { BrowserConfigurationAuthError, BrowserConfigurationAuthErrorMessage };\n//# sourceMappingURL=BrowserConfigurationAuthError.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { ModernBrowserCrypto } from './ModernBrowserCrypto.js';\nimport { MsrBrowserCrypto } from './MsrBrowserCrypto.js';\nimport { MsBrowserCrypto } from './MsBrowserCrypto.js';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * See here for more info on RsaHashedKeyGenParams: https://developer.mozilla.org/en-US/docs/Web/API/RsaHashedKeyGenParams\r\n */\r\n// RSA KeyGen Algorithm\r\nvar PKCS1_V15_KEYGEN_ALG = \"RSASSA-PKCS1-v1_5\";\r\n// SHA-256 hashing algorithm\r\nvar S256_HASH_ALG = \"SHA-256\";\r\n// MOD length for PoP tokens\r\nvar MODULUS_LENGTH = 2048;\r\n// Public Exponent\r\nvar PUBLIC_EXPONENT = new Uint8Array([0x01, 0x00, 0x01]);\r\n/**\r\n * This class implements functions used by the browser library to perform cryptography operations such as\r\n * hashing and encoding. It also has helper functions to validate the availability of specific APIs.\r\n */\r\nvar BrowserCrypto = /** @class */ (function () {\r\n function BrowserCrypto(logger, cryptoOptions) {\r\n var _a, _b;\r\n this.logger = logger;\r\n this.cryptoOptions = cryptoOptions;\r\n if (this.hasBrowserCrypto()) {\r\n // Use standard modern web crypto if available\r\n this.logger.verbose(\"BrowserCrypto: modern crypto interface available\");\r\n this.subtleCrypto = new ModernBrowserCrypto();\r\n }\r\n else if (this.hasIECrypto()) {\r\n // For IE11, use msCrypto interface\r\n this.logger.verbose(\"BrowserCrypto: MS crypto interface available\");\r\n this.subtleCrypto = new MsBrowserCrypto();\r\n }\r\n else if (this.hasMsrCrypto() && ((_a = this.cryptoOptions) === null || _a === void 0 ? void 0 : _a.useMsrCrypto)) {\r\n // For other browsers, use MSR Crypto if found\r\n this.logger.verbose(\"BrowserCrypto: MSR crypto interface available\");\r\n this.subtleCrypto = new MsrBrowserCrypto();\r\n }\r\n else {\r\n if (this.hasMsrCrypto()) {\r\n this.logger.info(\"BrowserCrypto: MSR Crypto interface available but system.cryptoOptions.useMsrCrypto not enabled\");\r\n }\r\n this.logger.error(\"BrowserCrypto: No crypto interfaces available.\");\r\n throw BrowserAuthError.createCryptoNotAvailableError(\"Browser crypto, msCrypto, or msrCrypto interfaces not available.\");\r\n }\r\n // Mainly needed for MSR Crypto: https://github.com/microsoft/MSR-JavaScript-Crypto#random-number-generator-prng\r\n if (this.subtleCrypto.initPrng) {\r\n this.logger.verbose(\"BrowserCrypto: Interface requires entropy\");\r\n if (!((_b = this.cryptoOptions) === null || _b === void 0 ? void 0 : _b.entropy)) {\r\n this.logger.error(\"BrowserCrypto: Interface requires entropy but none provided.\");\r\n throw BrowserConfigurationAuthError.createEntropyNotProvided();\r\n }\r\n this.logger.verbose(\"BrowserCrypto: Entropy provided\");\r\n this.subtleCrypto.initPrng(this.cryptoOptions.entropy);\r\n }\r\n this.keygenAlgorithmOptions = {\r\n name: PKCS1_V15_KEYGEN_ALG,\r\n hash: S256_HASH_ALG,\r\n modulusLength: MODULUS_LENGTH,\r\n publicExponent: PUBLIC_EXPONENT\r\n };\r\n }\r\n /**\r\n * Check whether IE crypto or other browser cryptography is available.\r\n */\r\n BrowserCrypto.prototype.hasIECrypto = function () {\r\n return \"msCrypto\" in window;\r\n };\r\n /**\r\n * Check whether browser crypto is available.\r\n */\r\n BrowserCrypto.prototype.hasBrowserCrypto = function () {\r\n return \"crypto\" in window;\r\n };\r\n /**\r\n * Check whether MSR crypto polyfill is available\r\n */\r\n BrowserCrypto.prototype.hasMsrCrypto = function () {\r\n return \"msrCrypto\" in window;\r\n };\r\n /**\r\n * Returns a sha-256 hash of the given dataString as an ArrayBuffer.\r\n * @param dataString\r\n */\r\n BrowserCrypto.prototype.sha256Digest = function (dataString) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var data;\r\n return __generator(this, function (_a) {\r\n data = BrowserStringUtils.stringToUtf8Arr(dataString);\r\n // MSR Crypto wants object with name property, instead of string\r\n return [2 /*return*/, this.subtleCrypto.digest({ name: S256_HASH_ALG }, data)];\r\n });\r\n });\r\n };\r\n /**\r\n * Populates buffer with cryptographically random values.\r\n * @param dataBuffer\r\n */\r\n BrowserCrypto.prototype.getRandomValues = function (dataBuffer) {\r\n return this.subtleCrypto.getRandomValues(dataBuffer);\r\n };\r\n /**\r\n * Generates a keypair based on current keygen algorithm config.\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.generateKeyPair = function (extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.generateKey(this.keygenAlgorithmOptions, extractable, usages)];\r\n });\r\n });\r\n };\r\n /**\r\n * Export key as Json Web Key (JWK)\r\n * @param key\r\n * @param format\r\n */\r\n BrowserCrypto.prototype.exportJwk = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.exportKey(key)];\r\n });\r\n });\r\n };\r\n /**\r\n * Imports key as Json Web Key (JWK), can set extractable and usages.\r\n * @param key\r\n * @param format\r\n * @param extractable\r\n * @param usages\r\n */\r\n BrowserCrypto.prototype.importJwk = function (key, extractable, usages) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.importKey(key, this.keygenAlgorithmOptions, extractable, usages)];\r\n });\r\n });\r\n };\r\n /**\r\n * Signs given data with given key\r\n * @param key\r\n * @param data\r\n */\r\n BrowserCrypto.prototype.sign = function (key, data) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.subtleCrypto.sign(this.keygenAlgorithmOptions, key, data)];\r\n });\r\n });\r\n };\r\n return BrowserCrypto;\r\n}());\n\nexport { BrowserCrypto };\n//# sourceMappingURL=BrowserCrypto.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DB_NAME, DB_VERSION, DB_TABLE_NAME } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Storage wrapper for IndexedDB storage in browsers: https://developer.mozilla.org/en-US/docs/Web/API/IndexedDB_API\r\n */\r\nvar DatabaseStorage = /** @class */ (function () {\r\n function DatabaseStorage() {\r\n this.dbName = DB_NAME;\r\n this.version = DB_VERSION;\r\n this.tableName = DB_TABLE_NAME;\r\n this.dbOpen = false;\r\n }\r\n /**\r\n * Opens IndexedDB instance.\r\n */\r\n DatabaseStorage.prototype.open = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var openDB = window.indexedDB.open(_this.dbName, _this.version);\r\n openDB.addEventListener(\"upgradeneeded\", function (e) {\r\n var event = e;\r\n event.target.result.createObjectStore(_this.tableName);\r\n });\r\n openDB.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.db = event.target.result;\r\n _this.dbOpen = true;\r\n resolve();\r\n });\r\n openDB.addEventListener(\"error\", function () { return reject(BrowserAuthError.createDatabaseUnavailableError()); });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Closes the connection to IndexedDB database when all pending transactions\r\n * complete.\r\n */\r\n DatabaseStorage.prototype.closeConnection = function () {\r\n var db = this.db;\r\n if (db && this.dbOpen) {\r\n db.close();\r\n this.dbOpen = false;\r\n }\r\n };\r\n /**\r\n * Opens database if it's not already open\r\n */\r\n DatabaseStorage.prototype.validateDbIsOpen = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!!this.dbOpen) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.open()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves item from IndexedDB instance.\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.getItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGet = objectStore.get(key);\r\n dbGet.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result);\r\n });\r\n dbGet.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Adds item to IndexedDB under given key\r\n * @param key\r\n * @param payload\r\n */\r\n DatabaseStorage.prototype.setItem = function (key, payload) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n // TODO: Add timeouts?\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbPut = objectStore.put(payload, key);\r\n dbPut.addEventListener(\"success\", function () {\r\n _this.closeConnection();\r\n resolve();\r\n });\r\n dbPut.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes item from IndexedDB under given key\r\n * @param key\r\n */\r\n DatabaseStorage.prototype.removeItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readwrite\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbDelete = objectStore.delete(key);\r\n dbDelete.addEventListener(\"success\", function () {\r\n _this.closeConnection();\r\n resolve();\r\n });\r\n dbDelete.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get all the keys from the storage object as an iterable array of strings.\r\n */\r\n DatabaseStorage.prototype.getKeys = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbGetKeys = objectStore.getAllKeys();\r\n dbGetKeys.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result);\r\n });\r\n dbGetKeys.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * Checks whether there is an object under the search key in the object store\r\n */\r\n DatabaseStorage.prototype.containsKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.validateDbIsOpen()];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n if (!_this.db) {\r\n return reject(BrowserAuthError.createDatabaseNotOpenError());\r\n }\r\n var transaction = _this.db.transaction([_this.tableName], \"readonly\");\r\n var objectStore = transaction.objectStore(_this.tableName);\r\n var dbContainsKey = objectStore.count(key);\r\n dbContainsKey.addEventListener(\"success\", function (e) {\r\n var event = e;\r\n _this.closeConnection();\r\n resolve(event.target.result === 1);\r\n });\r\n dbContainsKey.addEventListener(\"error\", function (e) {\r\n _this.closeConnection();\r\n reject(e);\r\n });\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Deletes the MSAL database. The database is deleted rather than cleared to make it possible\r\n * for client applications to downgrade to a previous MSAL version without worrying about forward compatibility issues\r\n * with IndexedDB database versions.\r\n */\r\n DatabaseStorage.prototype.deleteDatabase = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n // Check if database being deleted exists\r\n if (this.db && this.dbOpen) {\r\n this.closeConnection();\r\n }\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n var deleteDbRequest = window.indexedDB.deleteDatabase(DB_NAME);\r\n deleteDbRequest.addEventListener(\"success\", function () { return resolve(true); });\r\n deleteDbRequest.addEventListener(\"blocked\", function () { return resolve(true); });\r\n deleteDbRequest.addEventListener(\"error\", function () { return reject(false); });\r\n })];\r\n });\r\n });\r\n };\r\n return DatabaseStorage;\r\n}());\n\nexport { DatabaseStorage };\n//# sourceMappingURL=DatabaseStorage.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar MemoryStorage = /** @class */ (function () {\r\n function MemoryStorage() {\r\n this.cache = new Map();\r\n }\r\n MemoryStorage.prototype.getItem = function (key) {\r\n return this.cache.get(key) || null;\r\n };\r\n MemoryStorage.prototype.setItem = function (key, value) {\r\n this.cache.set(key, value);\r\n };\r\n MemoryStorage.prototype.removeItem = function (key) {\r\n this.cache.delete(key);\r\n };\r\n MemoryStorage.prototype.getKeys = function () {\r\n var cacheKeys = [];\r\n this.cache.forEach(function (value, key) {\r\n cacheKeys.push(key);\r\n });\r\n return cacheKeys;\r\n };\r\n MemoryStorage.prototype.containsKey = function (key) {\r\n return this.cache.has(key);\r\n };\r\n MemoryStorage.prototype.clear = function () {\r\n this.cache.clear();\r\n };\r\n return MemoryStorage;\r\n}());\n\nexport { MemoryStorage };\n//# sourceMappingURL=MemoryStorage.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { DatabaseStorage } from './DatabaseStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class allows MSAL to store artifacts asynchronously using the DatabaseStorage IndexedDB wrapper,\r\n * backed up with the more volatile MemoryStorage object for cases in which IndexedDB may be unavailable.\r\n */\r\nvar AsyncMemoryStorage = /** @class */ (function () {\r\n function AsyncMemoryStorage(logger, storeName) {\r\n this.inMemoryCache = new MemoryStorage();\r\n this.indexedDBCache = new DatabaseStorage();\r\n this.logger = logger;\r\n this.storeName = storeName;\r\n }\r\n AsyncMemoryStorage.prototype.handleDatabaseAccessError = function (error) {\r\n if (error instanceof BrowserAuthError && error.errorCode === BrowserAuthErrorMessage.databaseUnavailable.code) {\r\n this.logger.error(\"Could not access persistent storage. This may be caused by browser privacy features which block persistent storage in third-party contexts.\");\r\n }\r\n else {\r\n throw error;\r\n }\r\n };\r\n /**\r\n * Get the item matching the given key. Tries in-memory cache first, then in the asynchronous\r\n * storage object if item isn't found in-memory.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.getItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var item, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n item = this.inMemoryCache.getItem(key);\r\n if (!!item) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"Queried item not found in in-memory cache, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.getItem(key)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_1 = _a.sent();\r\n this.handleDatabaseAccessError(e_1);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, item];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Sets the item in the in-memory cache and then tries to set it in the asynchronous\r\n * storage object with the given key.\r\n * @param key\r\n * @param value\r\n */\r\n AsyncMemoryStorage.prototype.setItem = function (key, value) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.inMemoryCache.setItem(key, value);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.indexedDBCache.setItem(key, value)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_2 = _a.sent();\r\n this.handleDatabaseAccessError(e_2);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes the item matching the key from the in-memory cache, then tries to remove it from the asynchronous storage object.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.removeItem = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.inMemoryCache.removeItem(key);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.indexedDBCache.removeItem(key)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _a.sent();\r\n this.handleDatabaseAccessError(e_3);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get all the keys from the in-memory cache as an iterable array of strings. If no keys are found, query the keys in the\r\n * asynchronous storage object.\r\n */\r\n AsyncMemoryStorage.prototype.getKeys = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cacheKeys, e_4;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cacheKeys = this.inMemoryCache.getKeys();\r\n if (!(cacheKeys.length === 0)) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"In-memory cache is empty, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.getKeys()];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_4 = _a.sent();\r\n this.handleDatabaseAccessError(e_4);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, cacheKeys];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns true or false if the given key is present in the cache.\r\n * @param key\r\n */\r\n AsyncMemoryStorage.prototype.containsKey = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var containsKey, e_5;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n containsKey = this.inMemoryCache.containsKey(key);\r\n if (!!containsKey) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"Key not found in in-memory cache, now querying persistent storage.\");\r\n return [4 /*yield*/, this.indexedDBCache.containsKey(key)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n case 3:\r\n e_5 = _a.sent();\r\n this.handleDatabaseAccessError(e_5);\r\n return [3 /*break*/, 4];\r\n case 4: return [2 /*return*/, containsKey];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Clears in-memory Map\r\n */\r\n AsyncMemoryStorage.prototype.clearInMemory = function () {\r\n // InMemory cache is a Map instance, clear is straightforward\r\n this.logger.verbose(\"Deleting in-memory keystore \" + this.storeName);\r\n this.inMemoryCache.clear();\r\n this.logger.verbose(\"In-memory keystore \" + this.storeName + \" deleted\");\r\n };\r\n /**\r\n * Tries to delete the IndexedDB database\r\n * @returns\r\n */\r\n AsyncMemoryStorage.prototype.clearPersistent = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var dbDeleted, e_6;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n this.logger.verbose(\"Deleting persistent keystore\");\r\n return [4 /*yield*/, this.indexedDBCache.deleteDatabase()];\r\n case 1:\r\n dbDeleted = _a.sent();\r\n if (dbDeleted) {\r\n this.logger.verbose(\"Persistent keystore deleted\");\r\n }\r\n return [2 /*return*/, dbDeleted];\r\n case 2:\r\n e_6 = _a.sent();\r\n this.handleDatabaseAccessError(e_6);\r\n return [2 /*return*/, false];\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n return AsyncMemoryStorage;\r\n}());\n\nexport { AsyncMemoryStorage };\n//# sourceMappingURL=AsyncMemoryStorage.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Log message level.\r\n */\r\nvar LogLevel;\r\n(function (LogLevel) {\r\n LogLevel[LogLevel[\"Error\"] = 0] = \"Error\";\r\n LogLevel[LogLevel[\"Warning\"] = 1] = \"Warning\";\r\n LogLevel[LogLevel[\"Info\"] = 2] = \"Info\";\r\n LogLevel[LogLevel[\"Verbose\"] = 3] = \"Verbose\";\r\n LogLevel[LogLevel[\"Trace\"] = 4] = \"Trace\";\r\n})(LogLevel || (LogLevel = {}));\r\n/**\r\n * Class which facilitates logging of messages to a specific place.\r\n */\r\nvar Logger = /** @class */ (function () {\r\n function Logger(loggerOptions, packageName, packageVersion) {\r\n // Current log level, defaults to info.\r\n this.level = LogLevel.Info;\r\n var defaultLoggerCallback = function () {\r\n return;\r\n };\r\n var setLoggerOptions = loggerOptions || Logger.createDefaultLoggerOptions();\r\n this.localCallback = setLoggerOptions.loggerCallback || defaultLoggerCallback;\r\n this.piiLoggingEnabled = setLoggerOptions.piiLoggingEnabled || false;\r\n this.level = typeof (setLoggerOptions.logLevel) === \"number\" ? setLoggerOptions.logLevel : LogLevel.Info;\r\n this.correlationId = setLoggerOptions.correlationId || Constants.EMPTY_STRING;\r\n this.packageName = packageName || Constants.EMPTY_STRING;\r\n this.packageVersion = packageVersion || Constants.EMPTY_STRING;\r\n }\r\n Logger.createDefaultLoggerOptions = function () {\r\n return {\r\n loggerCallback: function () {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info\r\n };\r\n };\r\n /**\r\n * Create new Logger with existing configurations.\r\n */\r\n Logger.prototype.clone = function (packageName, packageVersion, correlationId) {\r\n return new Logger({ loggerCallback: this.localCallback, piiLoggingEnabled: this.piiLoggingEnabled, logLevel: this.level, correlationId: correlationId || this.correlationId }, packageName, packageVersion);\r\n };\r\n /**\r\n * Log message with required options.\r\n */\r\n Logger.prototype.logMessage = function (logMessage, options) {\r\n if ((options.logLevel > this.level) || (!this.piiLoggingEnabled && options.containsPii)) {\r\n return;\r\n }\r\n var timestamp = new Date().toUTCString();\r\n // Add correlationId to logs if set, correlationId provided on log messages take precedence\r\n var logHeader;\r\n if (!StringUtils.isEmpty(options.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + options.correlationId + \"]\";\r\n }\r\n else if (!StringUtils.isEmpty(this.correlationId)) {\r\n logHeader = \"[\" + timestamp + \"] : [\" + this.correlationId + \"]\";\r\n }\r\n else {\r\n logHeader = \"[\" + timestamp + \"]\";\r\n }\r\n var log = logHeader + \" : \" + this.packageName + \"@\" + this.packageVersion + \" : \" + LogLevel[options.logLevel] + \" - \" + logMessage;\r\n // debug(`msal:${LogLevel[options.logLevel]}${options.containsPii ? \"-Pii\": Constants.EMPTY_STRING}${options.context ? `:${options.context}` : Constants.EMPTY_STRING}`)(logMessage);\r\n this.executeCallback(options.logLevel, log, options.containsPii || false);\r\n };\r\n /**\r\n * Execute callback with message.\r\n */\r\n Logger.prototype.executeCallback = function (level, message, containsPii) {\r\n if (this.localCallback) {\r\n this.localCallback(level, message, containsPii);\r\n }\r\n };\r\n /**\r\n * Logs error messages.\r\n */\r\n Logger.prototype.error = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs error messages with PII.\r\n */\r\n Logger.prototype.errorPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Error,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs warning messages.\r\n */\r\n Logger.prototype.warning = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs warning messages with PII.\r\n */\r\n Logger.prototype.warningPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Warning,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs info messages.\r\n */\r\n Logger.prototype.info = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs info messages with PII.\r\n */\r\n Logger.prototype.infoPii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Info,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs verbose messages.\r\n */\r\n Logger.prototype.verbose = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs verbose messages with PII.\r\n */\r\n Logger.prototype.verbosePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Verbose,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs trace messages.\r\n */\r\n Logger.prototype.trace = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: false,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Logs trace messages with PII.\r\n */\r\n Logger.prototype.tracePii = function (message, correlationId) {\r\n this.logMessage(message, {\r\n logLevel: LogLevel.Trace,\r\n containsPii: true,\r\n correlationId: correlationId || Constants.EMPTY_STRING\r\n });\r\n };\r\n /**\r\n * Returns whether PII Logging is enabled or not.\r\n */\r\n Logger.prototype.isPiiLoggingEnabled = function () {\r\n return this.piiLoggingEnabled || false;\r\n };\r\n return Logger;\r\n}());\n\nexport { LogLevel, Logger };\n//# sourceMappingURL=Logger.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, JoseHeader } from '@azure/msal-common';\nimport { GuidGenerator } from './GuidGenerator.js';\nimport { Base64Encode } from '../encode/Base64Encode.js';\nimport { Base64Decode } from '../encode/Base64Decode.js';\nimport { PkceGenerator } from './PkceGenerator.js';\nimport { BrowserCrypto } from './BrowserCrypto.js';\nimport { BrowserStringUtils } from '../utils/BrowserStringUtils.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { CryptoKeyStore } from '../cache/CryptoKeyStore.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements MSAL's crypto interface, which allows it to perform base64 encoding and decoding, generating cryptographically random GUIDs and\r\n * implementing Proof Key for Code Exchange specs for the OAuth Authorization Code Flow using PKCE (rfc here: https://tools.ietf.org/html/rfc7636).\r\n */\r\nvar CryptoOps = /** @class */ (function () {\r\n function CryptoOps(logger, performanceClient, cryptoConfig) {\r\n this.logger = logger;\r\n // Browser crypto needs to be validated first before any other classes can be set.\r\n this.browserCrypto = new BrowserCrypto(this.logger, cryptoConfig);\r\n this.b64Encode = new Base64Encode();\r\n this.b64Decode = new Base64Decode();\r\n this.guidGenerator = new GuidGenerator(this.browserCrypto);\r\n this.pkceGenerator = new PkceGenerator(this.browserCrypto);\r\n this.cache = new CryptoKeyStore(this.logger);\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Creates a new random GUID - used to populate state and nonce.\r\n * @returns string (GUID)\r\n */\r\n CryptoOps.prototype.createNewGuid = function () {\r\n return this.guidGenerator.generateGuid();\r\n };\r\n /**\r\n * Encodes input string to base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Encode = function (input) {\r\n return this.b64Encode.encode(input);\r\n };\r\n /**\r\n * Decodes input string from base64.\r\n * @param input\r\n */\r\n CryptoOps.prototype.base64Decode = function (input) {\r\n return this.b64Decode.decode(input);\r\n };\r\n /**\r\n * Generates PKCE codes used in Authorization Code Flow.\r\n */\r\n CryptoOps.prototype.generatePkceCodes = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.pkceGenerator.generateCodes()];\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a keypair, stores it and returns a thumbprint\r\n * @param request\r\n */\r\n CryptoOps.prototype.getPublicKeyThumbprint = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var publicKeyThumbMeasurement, keyPair, publicKeyJwk, pubKeyThumprintObj, publicJwkString, publicJwkHash, privateKeyJwk, unextractablePrivateKey;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n publicKeyThumbMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.CryptoOptsGetPublicKeyThumbprint, request.correlationId);\r\n return [4 /*yield*/, this.browserCrypto.generateKeyPair(CryptoOps.EXTRACTABLE, CryptoOps.POP_KEY_USAGES)];\r\n case 1:\r\n keyPair = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _b.sent();\r\n pubKeyThumprintObj = {\r\n e: publicKeyJwk.e,\r\n kty: publicKeyJwk.kty,\r\n n: publicKeyJwk.n\r\n };\r\n publicJwkString = BrowserStringUtils.getSortedObjectString(pubKeyThumprintObj);\r\n return [4 /*yield*/, this.hashString(publicJwkString)];\r\n case 3:\r\n publicJwkHash = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(keyPair.privateKey)];\r\n case 4:\r\n privateKeyJwk = _b.sent();\r\n return [4 /*yield*/, this.browserCrypto.importJwk(privateKeyJwk, false, [\"sign\"])];\r\n case 5:\r\n unextractablePrivateKey = _b.sent();\r\n // Store Keypair data in keystore\r\n return [4 /*yield*/, this.cache.asymmetricKeys.setItem(publicJwkHash, {\r\n privateKey: unextractablePrivateKey,\r\n publicKey: keyPair.publicKey,\r\n requestMethod: request.resourceRequestMethod,\r\n requestUri: request.resourceRequestUri\r\n })];\r\n case 6:\r\n // Store Keypair data in keystore\r\n _b.sent();\r\n if (publicKeyThumbMeasurement) {\r\n publicKeyThumbMeasurement.endMeasurement({\r\n success: true\r\n });\r\n }\r\n return [2 /*return*/, publicJwkHash];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes cryptographic keypair from key store matching the keyId passed in\r\n * @param kid\r\n */\r\n CryptoOps.prototype.removeTokenBindingKey = function (kid) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var keyFound;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.asymmetricKeys.removeItem(kid)];\r\n case 1:\r\n _a.sent();\r\n return [4 /*yield*/, this.cache.asymmetricKeys.containsKey(kid)];\r\n case 2:\r\n keyFound = _a.sent();\r\n return [2 /*return*/, !keyFound];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes all cryptographic keys from IndexedDB storage\r\n */\r\n CryptoOps.prototype.clearKeystore = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.cache.clear()];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Signs the given object as a jwt payload with private key retrieved by given kid.\r\n * @param payload\r\n * @param kid\r\n */\r\n CryptoOps.prototype.signJwt = function (payload, kid, correlationId) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var signJwtMeasurement, cachedKeyPair, publicKeyJwk, publicKeyJwkString, encodedKeyIdThumbprint, shrHeader, encodedShrHeader, encodedPayload, tokenString, tokenBuffer, signatureBuffer, encodedSignature, signedJwt;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n signJwtMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.CryptoOptsSignJwt, correlationId);\r\n return [4 /*yield*/, this.cache.asymmetricKeys.getItem(kid)];\r\n case 1:\r\n cachedKeyPair = _b.sent();\r\n if (!cachedKeyPair) {\r\n throw BrowserAuthError.createSigningKeyNotFoundInStorageError(kid);\r\n }\r\n return [4 /*yield*/, this.browserCrypto.exportJwk(cachedKeyPair.publicKey)];\r\n case 2:\r\n publicKeyJwk = _b.sent();\r\n publicKeyJwkString = BrowserStringUtils.getSortedObjectString(publicKeyJwk);\r\n encodedKeyIdThumbprint = this.b64Encode.urlEncode(JSON.stringify({ kid: kid }));\r\n shrHeader = JoseHeader.getShrHeaderString({ kid: encodedKeyIdThumbprint, alg: publicKeyJwk.alg });\r\n encodedShrHeader = this.b64Encode.urlEncode(shrHeader);\r\n // Generate payload\r\n payload.cnf = {\r\n jwk: JSON.parse(publicKeyJwkString)\r\n };\r\n encodedPayload = this.b64Encode.urlEncode(JSON.stringify(payload));\r\n tokenString = encodedShrHeader + \".\" + encodedPayload;\r\n tokenBuffer = BrowserStringUtils.stringToArrayBuffer(tokenString);\r\n return [4 /*yield*/, this.browserCrypto.sign(cachedKeyPair.privateKey, tokenBuffer)];\r\n case 3:\r\n signatureBuffer = _b.sent();\r\n encodedSignature = this.b64Encode.urlEncodeArr(new Uint8Array(signatureBuffer));\r\n signedJwt = tokenString + \".\" + encodedSignature;\r\n if (signJwtMeasurement) {\r\n signJwtMeasurement.endMeasurement({\r\n success: true\r\n });\r\n }\r\n return [2 /*return*/, signedJwt];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Returns the SHA-256 hash of an input string\r\n * @param plainText\r\n */\r\n CryptoOps.prototype.hashString = function (plainText) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var hashBuffer, hashBytes;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.browserCrypto.sha256Digest(plainText)];\r\n case 1:\r\n hashBuffer = _a.sent();\r\n hashBytes = new Uint8Array(hashBuffer);\r\n return [2 /*return*/, this.b64Encode.urlEncodeArr(hashBytes)];\r\n }\r\n });\r\n });\r\n };\r\n CryptoOps.POP_KEY_USAGES = [\"sign\", \"verify\"];\r\n CryptoOps.EXTRACTABLE = true;\r\n return CryptoOps;\r\n}());\n\nexport { CryptoOps };\n//# sourceMappingURL=CryptoOps.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Authority types supported by MSAL.\r\n */\r\nvar AuthorityType;\r\n(function (AuthorityType) {\r\n AuthorityType[AuthorityType[\"Default\"] = 0] = \"Default\";\r\n AuthorityType[AuthorityType[\"Adfs\"] = 1] = \"Adfs\";\r\n AuthorityType[AuthorityType[\"Dsts\"] = 2] = \"Dsts\";\r\n AuthorityType[AuthorityType[\"Ciam\"] = 3] = \"Ciam\";\r\n})(AuthorityType || (AuthorityType = {}));\n\nexport { AuthorityType };\n//# sourceMappingURL=AuthorityType.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __assign } from '../../_virtual/_tslib.js';\nimport { IntFields, PerformanceEventStatus } from './PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PerformanceClient = /** @class */ (function () {\r\n /**\r\n * Creates an instance of PerformanceClient,\r\n * an abstract class containing core performance telemetry logic.\r\n *\r\n * @constructor\r\n * @param {string} clientId Client ID of the application\r\n * @param {string} authority Authority used by the application\r\n * @param {Logger} logger Logger used by the application\r\n * @param {string} libraryName Name of the library\r\n * @param {string} libraryVersion Version of the library\r\n */\r\n function PerformanceClient(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry) {\r\n this.authority = authority;\r\n this.libraryName = libraryName;\r\n this.libraryVersion = libraryVersion;\r\n this.applicationTelemetry = applicationTelemetry;\r\n this.clientId = clientId;\r\n this.logger = logger;\r\n this.callbacks = new Map();\r\n this.eventsByCorrelationId = new Map();\r\n this.queueMeasurements = new Map();\r\n this.preQueueTimeByCorrelationId = new Map();\r\n }\r\n /**\r\n * Starts and returns an platform-specific implementation of IPerformanceMeasurement.\r\n * Note: this function can be changed to abstract at the next major version bump.\r\n *\r\n * @param {string} measureName\r\n * @param {string} correlationId\r\n * @returns {IPerformanceMeasurement}\r\n */\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n PerformanceClient.prototype.startPerformanceMeasurement = function (measureName, correlationId) {\r\n return {};\r\n };\r\n /**\r\n * Starts and returns an platform-specific implementation of IPerformanceMeasurement.\r\n * Note: this incorrectly-named function will be removed at the next major version bump.\r\n *\r\n * @param {string} measureName\r\n * @param {string} correlationId\r\n * @returns {IPerformanceMeasurement}\r\n */\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n PerformanceClient.prototype.startPerformanceMeasuremeant = function (measureName, correlationId) {\r\n return {};\r\n };\r\n /**\r\n * Get integral fields.\r\n * Override to change the set.\r\n */\r\n PerformanceClient.prototype.getIntFields = function () {\r\n return IntFields;\r\n };\r\n /**\r\n * Gets map of pre-queue times by correlation Id\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {string} correlationId\r\n * @returns {number}\r\n */\r\n PerformanceClient.prototype.getPreQueueTime = function (eventName, correlationId) {\r\n var preQueueEvent = this.preQueueTimeByCorrelationId.get(correlationId);\r\n if (!preQueueEvent) {\r\n this.logger.trace(\"PerformanceClient.getPreQueueTime: no pre-queue times found for correlationId: \" + correlationId + \", unable to add queue measurement\");\r\n return;\r\n }\r\n else if (preQueueEvent.name !== eventName) {\r\n this.logger.trace(\"PerformanceClient.getPreQueueTime: no pre-queue time found for \" + eventName + \", unable to add queue measurement\");\r\n return;\r\n }\r\n return preQueueEvent.time;\r\n };\r\n /**\r\n * Calculates the difference between current time and time when function was queued.\r\n * Note: It is possible to have 0 as the queue time if the current time and the queued time was the same.\r\n *\r\n * @param {number} preQueueTime\r\n * @param {number} currentTime\r\n * @returns {number}\r\n */\r\n PerformanceClient.prototype.calculateQueuedTime = function (preQueueTime, currentTime) {\r\n if (preQueueTime < 1) {\r\n this.logger.trace(\"PerformanceClient: preQueueTime should be a positive integer and not \" + preQueueTime);\r\n return 0;\r\n }\r\n if (currentTime < 1) {\r\n this.logger.trace(\"PerformanceClient: currentTime should be a positive integer and not \" + currentTime);\r\n return 0;\r\n }\r\n if (currentTime < preQueueTime) {\r\n this.logger.trace(\"PerformanceClient: currentTime is less than preQueueTime, check how time is being retrieved\");\r\n return 0;\r\n }\r\n return currentTime - preQueueTime;\r\n };\r\n /**\r\n * Adds queue measurement time to QueueMeasurements array for given correlation ID.\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @param {?number} queueTime\r\n * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements\r\n * @returns\r\n */\r\n PerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId, queueTime, manuallyCompleted) {\r\n if (!correlationId) {\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: correlationId not provided for \" + eventName + \", cannot add queue measurement\");\r\n return;\r\n }\r\n if (queueTime === 0) {\r\n // Possible for there to be no queue time after calculation\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: queue time provided for \" + eventName + \" is \" + queueTime);\r\n }\r\n else if (!queueTime) {\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: no queue time provided for \" + eventName);\r\n return;\r\n }\r\n var queueMeasurement = { eventName: eventName, queueTime: queueTime, manuallyCompleted: manuallyCompleted };\r\n // Adds to existing correlation Id if present in queueMeasurements\r\n var existingMeasurements = this.queueMeasurements.get(correlationId);\r\n if (existingMeasurements) {\r\n existingMeasurements.push(queueMeasurement);\r\n this.queueMeasurements.set(correlationId, existingMeasurements);\r\n }\r\n else {\r\n // Sets new correlation Id if not present in queueMeasurements\r\n this.logger.trace(\"PerformanceClient.addQueueMeasurement: adding correlationId \" + correlationId + \" to queue measurements\");\r\n var measurementArray = [queueMeasurement];\r\n this.queueMeasurements.set(correlationId, measurementArray);\r\n }\r\n // Delete processed pre-queue event.\r\n this.preQueueTimeByCorrelationId.delete(correlationId);\r\n };\r\n /**\r\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {?string} [correlationId]\r\n * @returns {InProgressPerformanceEvent}\r\n */\r\n PerformanceClient.prototype.startMeasurement = function (measureName, correlationId) {\r\n var _this = this;\r\n var _a, _b;\r\n // Generate a placeholder correlation if the request does not provide one\r\n var eventCorrelationId = correlationId || this.generateId();\r\n if (!correlationId) {\r\n this.logger.info(\"PerformanceClient: No correlation id provided for \" + measureName + \", generating\", eventCorrelationId);\r\n }\r\n // Duplicate code to address spelling error will be removed at the next major version bump.\r\n this.logger.trace(\"PerformanceClient: Performance measurement started for \" + measureName, eventCorrelationId);\r\n var performanceMeasurement = this.startPerformanceMeasuremeant(measureName, eventCorrelationId);\r\n performanceMeasurement.startMeasurement();\r\n var inProgressEvent = {\r\n eventId: this.generateId(),\r\n status: PerformanceEventStatus.InProgress,\r\n authority: this.authority,\r\n libraryName: this.libraryName,\r\n libraryVersion: this.libraryVersion,\r\n clientId: this.clientId,\r\n name: measureName,\r\n startTimeMs: Date.now(),\r\n correlationId: eventCorrelationId,\r\n appName: (_a = this.applicationTelemetry) === null || _a === void 0 ? void 0 : _a.appName,\r\n appVersion: (_b = this.applicationTelemetry) === null || _b === void 0 ? void 0 : _b.appVersion,\r\n };\r\n // Store in progress events so they can be discarded if not ended properly\r\n this.cacheEventByCorrelationId(inProgressEvent);\r\n // Return the event and functions the caller can use to properly end/flush the measurement\r\n return {\r\n endMeasurement: function (event) {\r\n return _this.endMeasurement(__assign(__assign({}, inProgressEvent), event), performanceMeasurement);\r\n },\r\n discardMeasurement: function () {\r\n return _this.discardMeasurements(inProgressEvent.correlationId);\r\n },\r\n addStaticFields: function (fields) {\r\n return _this.addStaticFields(fields, inProgressEvent.correlationId);\r\n },\r\n increment: function (counters) {\r\n return _this.increment(counters, inProgressEvent.correlationId);\r\n },\r\n measurement: performanceMeasurement,\r\n event: inProgressEvent\r\n };\r\n };\r\n /**\r\n * Stops measuring the performance for an operation. Should only be called directly by PerformanceClient classes,\r\n * as consumers should instead use the function returned by startMeasurement.\r\n * Adds a new field named as \"[event name]DurationMs\" for sub-measurements, completes and emits an event\r\n * otherwise.\r\n *\r\n * @param {PerformanceEvent} event\r\n * @param {IPerformanceMeasurement} measurement\r\n * @returns {(PerformanceEvent | null)}\r\n */\r\n PerformanceClient.prototype.endMeasurement = function (event, measurement) {\r\n var _this = this;\r\n var _a, _b;\r\n var rootEvent = this.eventsByCorrelationId.get(event.correlationId);\r\n if (!rootEvent) {\r\n this.logger.trace(\"PerformanceClient: Measurement not found for \" + event.eventId, event.correlationId);\r\n return null;\r\n }\r\n var isRoot = event.eventId === rootEvent.eventId;\r\n var queueInfo = {\r\n totalQueueTime: 0,\r\n totalQueueCount: 0,\r\n manuallyCompletedCount: 0\r\n };\r\n if (isRoot) {\r\n queueInfo = this.getQueueInfo(event.correlationId);\r\n this.discardCache(rootEvent.correlationId);\r\n }\r\n else {\r\n (_a = rootEvent.incompleteSubMeasurements) === null || _a === void 0 ? void 0 : _a.delete(event.eventId);\r\n }\r\n measurement === null || measurement === void 0 ? void 0 : measurement.endMeasurement();\r\n var durationMs = measurement === null || measurement === void 0 ? void 0 : measurement.flushMeasurement();\r\n // null indicates no measurement was taken (e.g. needed performance APIs not present)\r\n if (!durationMs) {\r\n this.logger.trace(\"PerformanceClient: Performance measurement not taken\", rootEvent.correlationId);\r\n return null;\r\n }\r\n this.logger.trace(\"PerformanceClient: Performance measurement ended for \" + event.name + \": \" + durationMs + \" ms\", event.correlationId);\r\n // Add sub-measurement attribute to root event.\r\n if (!isRoot) {\r\n rootEvent[event.name + \"DurationMs\"] = Math.floor(durationMs);\r\n return __assign({}, rootEvent);\r\n }\r\n var finalEvent = __assign(__assign({}, rootEvent), event);\r\n var incompleteSubsCount = 0;\r\n // Incomplete sub-measurements are discarded. They are likely an instrumentation bug that should be fixed.\r\n (_b = finalEvent.incompleteSubMeasurements) === null || _b === void 0 ? void 0 : _b.forEach(function (subMeasurement) {\r\n _this.logger.trace(\"PerformanceClient: Incomplete submeasurement \" + subMeasurement.name + \" found for \" + event.name, finalEvent.correlationId);\r\n incompleteSubsCount++;\r\n });\r\n finalEvent.incompleteSubMeasurements = undefined;\r\n finalEvent = __assign(__assign({}, finalEvent), { durationMs: Math.round(durationMs), queuedTimeMs: queueInfo.totalQueueTime, queuedCount: queueInfo.totalQueueCount, queuedManuallyCompletedCount: queueInfo.manuallyCompletedCount, status: PerformanceEventStatus.Completed, incompleteSubsCount: incompleteSubsCount });\r\n this.truncateIntegralFields(finalEvent, this.getIntFields());\r\n this.emitEvents([finalEvent], event.correlationId);\r\n return finalEvent;\r\n };\r\n /**\r\n * Saves extra information to be emitted when the measurements are flushed\r\n * @param fields\r\n * @param correlationId\r\n */\r\n PerformanceClient.prototype.addStaticFields = function (fields, correlationId) {\r\n this.logger.trace(\"PerformanceClient: Updating static fields\");\r\n var event = this.eventsByCorrelationId.get(correlationId);\r\n if (event) {\r\n this.eventsByCorrelationId.set(correlationId, __assign(__assign({}, event), fields));\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Event not found for\", correlationId);\r\n }\r\n };\r\n /**\r\n * Increment counters to be emitted when the measurements are flushed\r\n * @param counters {Counters}\r\n * @param correlationId {string} correlation identifier\r\n */\r\n PerformanceClient.prototype.increment = function (counters, correlationId) {\r\n this.logger.trace(\"PerformanceClient: Updating counters\");\r\n var event = this.eventsByCorrelationId.get(correlationId);\r\n if (event) {\r\n for (var counter in counters) {\r\n if (!event.hasOwnProperty(counter)) {\r\n event[counter] = 0;\r\n }\r\n event[counter] += counters[counter];\r\n }\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Event not found for\", correlationId);\r\n }\r\n };\r\n /**\r\n * Upserts event into event cache.\r\n * First key is the correlation id, second key is the event id.\r\n * Allows for events to be grouped by correlation id,\r\n * and to easily allow for properties on them to be updated.\r\n *\r\n * @private\r\n * @param {PerformanceEvent} event\r\n */\r\n PerformanceClient.prototype.cacheEventByCorrelationId = function (event) {\r\n var rootEvent = this.eventsByCorrelationId.get(event.correlationId);\r\n if (rootEvent) {\r\n this.logger.trace(\"PerformanceClient: Performance measurement for \" + event.name + \" added/updated\", event.correlationId);\r\n rootEvent.incompleteSubMeasurements = rootEvent.incompleteSubMeasurements || new Map();\r\n rootEvent.incompleteSubMeasurements.set(event.eventId, { name: event.name, startTimeMs: event.startTimeMs });\r\n }\r\n else {\r\n this.logger.trace(\"PerformanceClient: Performance measurement for \" + event.name + \" started\", event.correlationId);\r\n this.eventsByCorrelationId.set(event.correlationId, __assign({}, event));\r\n }\r\n };\r\n PerformanceClient.prototype.getQueueInfo = function (correlationId) {\r\n var queueMeasurementForCorrelationId = this.queueMeasurements.get(correlationId);\r\n if (!queueMeasurementForCorrelationId) {\r\n this.logger.trace(\"PerformanceClient: no queue measurements found for for correlationId: \" + correlationId);\r\n }\r\n var totalQueueTime = 0;\r\n var totalQueueCount = 0;\r\n var manuallyCompletedCount = 0;\r\n queueMeasurementForCorrelationId === null || queueMeasurementForCorrelationId === void 0 ? void 0 : queueMeasurementForCorrelationId.forEach(function (measurement) {\r\n totalQueueTime += measurement.queueTime;\r\n totalQueueCount++;\r\n manuallyCompletedCount += measurement.manuallyCompleted ? 1 : 0;\r\n });\r\n return {\r\n totalQueueTime: totalQueueTime,\r\n totalQueueCount: totalQueueCount,\r\n manuallyCompletedCount: manuallyCompletedCount\r\n };\r\n };\r\n /**\r\n * Removes measurements for a given correlation id.\r\n *\r\n * @param {string} correlationId\r\n */\r\n PerformanceClient.prototype.discardMeasurements = function (correlationId) {\r\n this.logger.trace(\"PerformanceClient: Performance measurements discarded\", correlationId);\r\n this.eventsByCorrelationId.delete(correlationId);\r\n };\r\n /**\r\n * Removes cache for a given correlation id.\r\n *\r\n * @param {string} correlationId correlation identifier\r\n */\r\n PerformanceClient.prototype.discardCache = function (correlationId) {\r\n this.discardMeasurements(correlationId);\r\n this.logger.trace(\"PerformanceClient: QueueMeasurements discarded\", correlationId);\r\n this.queueMeasurements.delete(correlationId);\r\n this.logger.trace(\"PerformanceClient: Pre-queue times discarded\", correlationId);\r\n this.preQueueTimeByCorrelationId.delete(correlationId);\r\n };\r\n /**\r\n * Registers a callback function to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n PerformanceClient.prototype.addPerformanceCallback = function (callback) {\r\n var callbackId = this.generateId();\r\n this.callbacks.set(callbackId, callback);\r\n this.logger.verbose(\"PerformanceClient: Performance callback registered with id: \" + callbackId);\r\n return callbackId;\r\n };\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n PerformanceClient.prototype.removePerformanceCallback = function (callbackId) {\r\n var result = this.callbacks.delete(callbackId);\r\n if (result) {\r\n this.logger.verbose(\"PerformanceClient: Performance callback \" + callbackId + \" removed.\");\r\n }\r\n else {\r\n this.logger.verbose(\"PerformanceClient: Performance callback \" + callbackId + \" not removed.\");\r\n }\r\n return result;\r\n };\r\n /**\r\n * Emits events to all registered callbacks.\r\n *\r\n * @param {PerformanceEvent[]} events\r\n * @param {?string} [correlationId]\r\n */\r\n PerformanceClient.prototype.emitEvents = function (events, correlationId) {\r\n var _this = this;\r\n this.logger.verbose(\"PerformanceClient: Emitting performance events\", correlationId);\r\n this.callbacks.forEach(function (callback, callbackId) {\r\n _this.logger.trace(\"PerformanceClient: Emitting event to callback \" + callbackId, correlationId);\r\n callback.apply(null, [events]);\r\n });\r\n };\r\n /**\r\n * Enforce truncation of integral fields in performance event.\r\n * @param {PerformanceEvent} event performance event to update.\r\n * @param {Set} intFields integral fields.\r\n */\r\n PerformanceClient.prototype.truncateIntegralFields = function (event, intFields) {\r\n intFields.forEach(function (key) {\r\n if (key in event && typeof event[key] === \"number\") {\r\n event[key] = Math.floor(event[key]);\r\n }\r\n });\r\n };\r\n return PerformanceClient;\r\n}());\n\nexport { PerformanceClient };\n//# sourceMappingURL=PerformanceClient.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { PerformanceClient } from './PerformanceClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubPerformanceMeasurement = /** @class */ (function () {\r\n function StubPerformanceMeasurement() {\r\n }\r\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\r\n StubPerformanceMeasurement.prototype.startMeasurement = function () { };\r\n /* eslint-disable-next-line @typescript-eslint/no-empty-function */\r\n StubPerformanceMeasurement.prototype.endMeasurement = function () { };\r\n StubPerformanceMeasurement.prototype.flushMeasurement = function () {\r\n return null;\r\n };\r\n return StubPerformanceMeasurement;\r\n}());\r\nvar StubPerformanceClient = /** @class */ (function (_super) {\r\n __extends(StubPerformanceClient, _super);\r\n function StubPerformanceClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n StubPerformanceClient.prototype.generateId = function () {\r\n return \"callback-id\";\r\n };\r\n StubPerformanceClient.prototype.startPerformanceMeasuremeant = function () {\r\n return new StubPerformanceMeasurement();\r\n };\r\n StubPerformanceClient.prototype.startPerformanceMeasurement = function () {\r\n return new StubPerformanceMeasurement();\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.calculateQueuedTime = function (preQueueTime, currentTime) {\r\n return 0;\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId, queueTime) {\r\n return;\r\n };\r\n /* eslint-disable-next-line @typescript-eslint/no-unused-vars */\r\n StubPerformanceClient.prototype.setPreQueueTime = function (eventName, correlationId) {\r\n return;\r\n };\r\n return StubPerformanceClient;\r\n}(PerformanceClient));\n\nexport { StubPerformanceClient, StubPerformanceMeasurement };\n//# sourceMappingURL=StubPerformanceClient.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar DEFAULT_CRYPTO_IMPLEMENTATION = {\r\n createNewGuid: function () {\r\n var notImplErr = \"Crypto interface - createNewGuid() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Decode: function () {\r\n var notImplErr = \"Crypto interface - base64Decode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n base64Encode: function () {\r\n var notImplErr = \"Crypto interface - base64Encode() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n },\r\n generatePkceCodes: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - generatePkceCodes() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n getPublicKeyThumbprint: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - getPublicKeyThumbprint() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n removeTokenBindingKey: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - removeTokenBindingKey() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n clearKeystore: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - clearKeystore() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n signJwt: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - signJwt() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n hashString: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Crypto interface - hashString() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\n\nexport { DEFAULT_CRYPTO_IMPLEMENTATION };\n//# sourceMappingURL=ICrypto.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { CredentialType, CacheType, Separators, Constants, AuthenticationScheme } from '../../utils/Constants.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base type for credentials to be stored in the cache: eg: ACCESS_TOKEN, ID_TOKEN etc\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: -------\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * tokenType: Matches the authentication scheme for which the token was issued (i.e. Bearer or pop)\r\n * requestedClaimsHash: Matches the SHA 256 hash of the claims object included in the token request\r\n * userAssertionHash: Matches the SHA 256 hash of the obo_assertion for the OBO flow\r\n * }\r\n */\r\nvar CredentialEntity = /** @class */ (function () {\r\n function CredentialEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n CredentialEntity.prototype.generateAccountId = function () {\r\n return CredentialEntity.generateAccountIdForCacheKey(this.homeAccountId, this.environment);\r\n };\r\n /**\r\n * Generate Credential Id key component as per the schema: --\r\n */\r\n CredentialEntity.prototype.generateCredentialId = function () {\r\n return CredentialEntity.generateCredentialIdForCacheKey(this.credentialType, this.clientId, this.realm, this.familyId);\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.prototype.generateTarget = function () {\r\n return CredentialEntity.generateTargetForCacheKey(this.target);\r\n };\r\n /**\r\n * generates credential key\r\n */\r\n CredentialEntity.prototype.generateCredentialKey = function () {\r\n return CredentialEntity.generateCredentialCacheKey(this.homeAccountId, this.environment, this.credentialType, this.clientId, this.realm, this.target, this.familyId, this.tokenType, this.requestedClaimsHash);\r\n };\r\n /**\r\n * returns the type of the cache (in this case credential)\r\n */\r\n CredentialEntity.prototype.generateType = function () {\r\n switch (this.credentialType) {\r\n case CredentialType.ID_TOKEN:\r\n return CacheType.ID_TOKEN;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n return CacheType.ACCESS_TOKEN;\r\n case CredentialType.REFRESH_TOKEN:\r\n return CacheType.REFRESH_TOKEN;\r\n default: {\r\n throw ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * generates credential key\r\n * -\\-----\r\n */\r\n CredentialEntity.generateCredentialCacheKey = function (homeAccountId, environment, credentialType, clientId, realm, target, familyId, tokenType, requestedClaimsHash) {\r\n var credentialKey = [\r\n this.generateAccountIdForCacheKey(homeAccountId, environment),\r\n this.generateCredentialIdForCacheKey(credentialType, clientId, realm, familyId),\r\n this.generateTargetForCacheKey(target),\r\n this.generateClaimsHashForCacheKey(requestedClaimsHash),\r\n this.generateSchemeForCacheKey(tokenType)\r\n ];\r\n return credentialKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * generates Account Id for keys\r\n * @param homeAccountId\r\n * @param environment\r\n */\r\n CredentialEntity.generateAccountIdForCacheKey = function (homeAccountId, environment) {\r\n var accountId = [homeAccountId, environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generates Credential Id for keys\r\n * @param credentialType\r\n * @param realm\r\n * @param clientId\r\n * @param familyId\r\n */\r\n CredentialEntity.generateCredentialIdForCacheKey = function (credentialType, clientId, realm, familyId) {\r\n var clientOrFamilyId = credentialType === CredentialType.REFRESH_TOKEN\r\n ? familyId || clientId\r\n : clientId;\r\n var credentialId = [\r\n credentialType,\r\n clientOrFamilyId,\r\n realm || Constants.EMPTY_STRING,\r\n ];\r\n return credentialId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate target key component as per schema: \r\n */\r\n CredentialEntity.generateTargetForCacheKey = function (scopes) {\r\n return (scopes || Constants.EMPTY_STRING).toLowerCase();\r\n };\r\n /**\r\n * Generate requested claims key component as per schema: \r\n */\r\n CredentialEntity.generateClaimsHashForCacheKey = function (requestedClaimsHash) {\r\n return (requestedClaimsHash || Constants.EMPTY_STRING).toLowerCase();\r\n };\r\n /**\r\n * Generate scheme key componenet as per schema: \r\n */\r\n CredentialEntity.generateSchemeForCacheKey = function (tokenType) {\r\n /*\r\n * PoP Tokens and SSH certs include scheme in cache key\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n return (tokenType && tokenType.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? tokenType.toLowerCase() : Constants.EMPTY_STRING;\r\n };\r\n return CredentialEntity;\r\n}());\n\nexport { CredentialEntity };\n//# sourceMappingURL=CredentialEntity.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ID_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-idtoken-clientId-contoso.com-\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * }\r\n */\r\nvar IdTokenEntity = /** @class */ (function (_super) {\r\n __extends(IdTokenEntity, _super);\r\n function IdTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create IdTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n IdTokenEntity.createIdTokenEntity = function (homeAccountId, environment, idToken, clientId, tenantId) {\r\n var idTokenEntity = new IdTokenEntity();\r\n idTokenEntity.credentialType = CredentialType.ID_TOKEN;\r\n idTokenEntity.homeAccountId = homeAccountId;\r\n idTokenEntity.environment = environment;\r\n idTokenEntity.clientId = clientId;\r\n idTokenEntity.secret = idToken;\r\n idTokenEntity.realm = tenantId;\r\n return idTokenEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n IdTokenEntity.isIdTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.ID_TOKEN);\r\n };\r\n return IdTokenEntity;\r\n}(CredentialEntity));\n\nexport { IdTokenEntity };\n//# sourceMappingURL=IdTokenEntity.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { ClientAuthError } from './ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ClientConfigurationErrorMessage class containing string constants used by error codes and messages.\r\n */\r\nvar ClientConfigurationErrorMessage = {\r\n redirectUriNotSet: {\r\n code: \"redirect_uri_empty\",\r\n desc: \"A redirect URI is required for all calls, and none has been set.\"\r\n },\r\n postLogoutUriNotSet: {\r\n code: \"post_logout_uri_empty\",\r\n desc: \"A post logout redirect has not been set.\"\r\n },\r\n claimsRequestParsingError: {\r\n code: \"claims_request_parsing_error\",\r\n desc: \"Could not parse the given claims request object.\"\r\n },\r\n authorityUriInsecure: {\r\n code: \"authority_uri_insecure\",\r\n desc: \"Authority URIs must use https. Please see here for valid authority configuration options: https://docs.microsoft.com/en-us/azure/active-directory/develop/msal-js-initializing-client-applications#configuration-options\"\r\n },\r\n urlParseError: {\r\n code: \"url_parse_error\",\r\n desc: \"URL could not be parsed into appropriate segments.\"\r\n },\r\n urlEmptyError: {\r\n code: \"empty_url_error\",\r\n desc: \"URL was empty or null.\"\r\n },\r\n emptyScopesError: {\r\n code: \"empty_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as null, undefined or empty array because they are required to obtain an access token.\"\r\n },\r\n nonArrayScopesError: {\r\n code: \"nonarray_input_scopes_error\",\r\n desc: \"Scopes cannot be passed as non-array.\"\r\n },\r\n clientIdSingleScopeError: {\r\n code: \"clientid_input_scopes_error\",\r\n desc: \"Client ID can only be provided as a single scope.\"\r\n },\r\n invalidPrompt: {\r\n code: \"invalid_prompt_value\",\r\n desc: \"Supported prompt values are 'login', 'select_account', 'consent', 'create', 'none' and 'no_session'. Please see here for valid configuration options: https://azuread.github.io/microsoft-authentication-library-for-js/ref/modules/_azure_msal_common.html#commonauthorizationurlrequest\",\r\n },\r\n invalidClaimsRequest: {\r\n code: \"invalid_claims\",\r\n desc: \"Given claims parameter must be a stringified JSON object.\"\r\n },\r\n tokenRequestEmptyError: {\r\n code: \"token_request_empty\",\r\n desc: \"Token request was empty and not found in cache.\"\r\n },\r\n logoutRequestEmptyError: {\r\n code: \"logout_request_empty\",\r\n desc: \"The logout request was null or undefined.\"\r\n },\r\n invalidCodeChallengeMethod: {\r\n code: \"invalid_code_challenge_method\",\r\n desc: \"code_challenge_method passed is invalid. Valid values are \\\"plain\\\" and \\\"S256\\\".\"\r\n },\r\n invalidCodeChallengeParams: {\r\n code: \"pkce_params_missing\",\r\n desc: \"Both params: code_challenge and code_challenge_method are to be passed if to be sent in the request\"\r\n },\r\n invalidCloudDiscoveryMetadata: {\r\n code: \"invalid_cloud_discovery_metadata\",\r\n desc: \"Invalid cloudDiscoveryMetadata provided. Must be a stringified JSON object containing tenant_discovery_endpoint and metadata fields\"\r\n },\r\n invalidAuthorityMetadata: {\r\n code: \"invalid_authority_metadata\",\r\n desc: \"Invalid authorityMetadata provided. Must by a stringified JSON object containing authorization_endpoint, token_endpoint, issuer fields.\"\r\n },\r\n untrustedAuthority: {\r\n code: \"untrusted_authority\",\r\n desc: \"The provided authority is not a trusted authority. Please include this authority in the knownAuthorities config parameter.\"\r\n },\r\n invalidAzureCloudInstance: {\r\n code: \"invalid_azure_cloud_instance\",\r\n desc: \"Invalid AzureCloudInstance provided. Please refer MSAL JS docs: aks.ms/msaljs/azure_cloud_instance for valid values\"\r\n },\r\n missingSshJwk: {\r\n code: \"missing_ssh_jwk\",\r\n desc: \"Missing sshJwk in SSH certificate request. A stringified JSON Web Key is required when using the SSH authentication scheme.\"\r\n },\r\n missingSshKid: {\r\n code: \"missing_ssh_kid\",\r\n desc: \"Missing sshKid in SSH certificate request. A string that uniquely identifies the public SSH key is required when using the SSH authentication scheme.\"\r\n },\r\n missingNonceAuthenticationHeader: {\r\n code: \"missing_nonce_authentication_header\",\r\n desc: \"Unable to find an authentication header containing server nonce. Either the Authentication-Info or WWW-Authenticate headers must be present in order to obtain a server nonce.\"\r\n },\r\n invalidAuthenticationHeader: {\r\n code: \"invalid_authentication_header\",\r\n desc: \"Invalid authentication header provided\"\r\n },\r\n authorityMismatch: {\r\n code: \"authority_mismatch\",\r\n desc: \"Authority mismatch error. Authority provided in login request or PublicClientApplication config does not match the environment of the provided account. Please use a matching account or make an interactive request to login to this authority.\"\r\n }\r\n};\r\n/**\r\n * Error thrown when there is an error in configuration of the MSAL.js library.\r\n */\r\nvar ClientConfigurationError = /** @class */ (function (_super) {\r\n __extends(ClientConfigurationError, _super);\r\n function ClientConfigurationError(errorCode, errorMessage) {\r\n var _this = _super.call(this, errorCode, errorMessage) || this;\r\n _this.name = \"ClientConfigurationError\";\r\n Object.setPrototypeOf(_this, ClientConfigurationError.prototype);\r\n return _this;\r\n }\r\n /**\r\n * Creates an error thrown when the redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.redirectUriNotSet.code, ClientConfigurationErrorMessage.redirectUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the post-logout redirect uri is empty (not set by caller)\r\n */\r\n ClientConfigurationError.createPostLogoutRedirectUriEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.postLogoutUriNotSet.code, ClientConfigurationErrorMessage.postLogoutUriNotSet.desc);\r\n };\r\n /**\r\n * Creates an error thrown when the claims request could not be successfully parsed\r\n */\r\n ClientConfigurationError.createClaimsRequestParsingError = function (claimsRequestParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.claimsRequestParsingError.code, ClientConfigurationErrorMessage.claimsRequestParsingError.desc + \" Given value: \" + claimsRequestParseError);\r\n };\r\n /**\r\n * Creates an error thrown if authority uri is given an insecure protocol.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createInsecureAuthorityUriError = function (urlString) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.authorityUriInsecure.code, ClientConfigurationErrorMessage.authorityUriInsecure.desc + \" Given URI: \" + urlString);\r\n };\r\n /**\r\n * Creates an error thrown if URL string does not parse into separate segments.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlParseError = function (urlParseError) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlParseError.code, ClientConfigurationErrorMessage.urlParseError.desc + \" Given Error: \" + urlParseError);\r\n };\r\n /**\r\n * Creates an error thrown if URL string is empty or null.\r\n * @param urlString\r\n */\r\n ClientConfigurationError.createUrlEmptyError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.urlEmptyError.code, ClientConfigurationErrorMessage.urlEmptyError.desc);\r\n };\r\n /**\r\n * Error thrown when scopes are empty.\r\n * @param scopesValue\r\n */\r\n ClientConfigurationError.createEmptyScopesArrayError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.emptyScopesError.code, \"\" + ClientConfigurationErrorMessage.emptyScopesError.desc);\r\n };\r\n /**\r\n * Error thrown when client id scope is not provided as single scope.\r\n * @param inputScopes\r\n */\r\n ClientConfigurationError.createClientIdSingleScopeError = function (inputScopes) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.clientIdSingleScopeError.code, ClientConfigurationErrorMessage.clientIdSingleScopeError.desc + \" Given Scopes: \" + inputScopes);\r\n };\r\n /**\r\n * Error thrown when prompt is not an allowed type.\r\n * @param promptValue\r\n */\r\n ClientConfigurationError.createInvalidPromptError = function (promptValue) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidPrompt.code, ClientConfigurationErrorMessage.invalidPrompt.desc + \" Given value: \" + promptValue);\r\n };\r\n /**\r\n * Creates error thrown when claims parameter is not a stringified JSON object\r\n */\r\n ClientConfigurationError.createInvalidClaimsRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidClaimsRequest.code, ClientConfigurationErrorMessage.invalidClaimsRequest.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyLogoutRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.logoutRequestEmptyError.code, ClientConfigurationErrorMessage.logoutRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when token request is empty and nothing cached in storage.\r\n */\r\n ClientConfigurationError.createEmptyTokenRequestError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.tokenRequestEmptyError.code, ClientConfigurationErrorMessage.tokenRequestEmptyError.desc);\r\n };\r\n /**\r\n * Throws error when an invalid code_challenge_method is passed by the user\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeMethodError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeMethod.code, ClientConfigurationErrorMessage.invalidCodeChallengeMethod.desc);\r\n };\r\n /**\r\n * Throws error when both params: code_challenge and code_challenge_method are not passed together\r\n */\r\n ClientConfigurationError.createInvalidCodeChallengeParamsError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCodeChallengeParams.code, ClientConfigurationErrorMessage.invalidCodeChallengeParams.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidCloudDiscoveryMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.code, ClientConfigurationErrorMessage.invalidCloudDiscoveryMetadata.desc);\r\n };\r\n /**\r\n * Throws an error when the user passes invalid cloudDiscoveryMetadata\r\n */\r\n ClientConfigurationError.createInvalidAuthorityMetadataError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthorityMetadata.code, ClientConfigurationErrorMessage.invalidAuthorityMetadata.desc);\r\n };\r\n /**\r\n * Throws error when provided authority is not a member of the trusted host list\r\n */\r\n ClientConfigurationError.createUntrustedAuthorityError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.untrustedAuthority.code, ClientConfigurationErrorMessage.untrustedAuthority.desc);\r\n };\r\n /**\r\n * Throws error when the AzureCloudInstance is set to an invalid value\r\n */\r\n ClientConfigurationError.createInvalidAzureCloudInstanceError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAzureCloudInstance.code, ClientConfigurationErrorMessage.invalidAzureCloudInstance.desc);\r\n };\r\n /**\r\n * Throws an error when the authentication scheme is set to SSH but the SSH public key is omitted from the request\r\n */\r\n ClientConfigurationError.createMissingSshJwkError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingSshJwk.code, ClientConfigurationErrorMessage.missingSshJwk.desc);\r\n };\r\n /**\r\n * Throws an error when the authentication scheme is set to SSH but the SSH public key ID is omitted from the request\r\n */\r\n ClientConfigurationError.createMissingSshKidError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingSshKid.code, ClientConfigurationErrorMessage.missingSshKid.desc);\r\n };\r\n /**\r\n * Throws error when provided headers don't contain a header that a server nonce can be extracted from\r\n */\r\n ClientConfigurationError.createMissingNonceAuthenticationHeadersError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.missingNonceAuthenticationHeader.code, ClientConfigurationErrorMessage.missingNonceAuthenticationHeader.desc);\r\n };\r\n /**\r\n * Throws error when a provided header is invalid in any way\r\n */\r\n ClientConfigurationError.createInvalidAuthenticationHeaderError = function (invalidHeaderName, details) {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.invalidAuthenticationHeader.code, ClientConfigurationErrorMessage.invalidAuthenticationHeader.desc + \". Invalid header: \" + invalidHeaderName + \". Details: \" + details);\r\n };\r\n /**\r\n * Create an error when the authority provided in request does not match authority provided in account or MSAL.js configuration.\r\n */\r\n ClientConfigurationError.createAuthorityMismatchError = function () {\r\n return new ClientConfigurationError(ClientConfigurationErrorMessage.authorityMismatch.code, ClientConfigurationErrorMessage.authorityMismatch.desc);\r\n };\r\n return ClientConfigurationError;\r\n}(ClientAuthError));\n\nexport { ClientConfigurationError, ClientConfigurationErrorMessage };\n//# sourceMappingURL=ClientConfigurationError.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { Constants, OIDC_SCOPES } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The ScopeSet class creates a set of scopes. Scopes are case-insensitive, unique values, so the Set object in JS makes\r\n * the most sense to implement for this class. All scopes are trimmed and converted to lower case strings in intersection and union functions\r\n * to ensure uniqueness of strings.\r\n */\r\nvar ScopeSet = /** @class */ (function () {\r\n function ScopeSet(inputScopes) {\r\n var _this = this;\r\n // Filter empty string and null/undefined array items\r\n var scopeArr = inputScopes ? StringUtils.trimArrayEntries(__spreadArrays(inputScopes)) : [];\r\n var filteredInput = scopeArr ? StringUtils.removeEmptyStringsFromArray(scopeArr) : [];\r\n // Validate and filter scopes (validate function throws if validation fails)\r\n this.validateInputScopes(filteredInput);\r\n this.scopes = new Set(); // Iterator in constructor not supported by IE11\r\n filteredInput.forEach(function (scope) { return _this.scopes.add(scope); });\r\n }\r\n /**\r\n * Factory method to create ScopeSet from space-delimited string\r\n * @param inputScopeString\r\n * @param appClientId\r\n * @param scopesRequired\r\n */\r\n ScopeSet.fromString = function (inputScopeString) {\r\n var scopeString = inputScopeString || Constants.EMPTY_STRING;\r\n var inputScopes = scopeString.split(\" \");\r\n return new ScopeSet(inputScopes);\r\n };\r\n /**\r\n * Creates the set of scopes to search for in cache lookups\r\n * @param inputScopeString\r\n * @returns\r\n */\r\n ScopeSet.createSearchScopes = function (inputScopeString) {\r\n var scopeSet = new ScopeSet(inputScopeString);\r\n if (!scopeSet.containsOnlyOIDCScopes()) {\r\n scopeSet.removeOIDCScopes();\r\n }\r\n else {\r\n scopeSet.removeScope(Constants.OFFLINE_ACCESS_SCOPE);\r\n }\r\n return scopeSet;\r\n };\r\n /**\r\n * Used to validate the scopes input parameter requested by the developer.\r\n * @param {Array} inputScopes - Developer requested permissions. Not all scopes are guaranteed to be included in the access token returned.\r\n * @param {boolean} scopesRequired - Boolean indicating whether the scopes array is required or not\r\n */\r\n ScopeSet.prototype.validateInputScopes = function (inputScopes) {\r\n // Check if scopes are required but not given or is an empty array\r\n if (!inputScopes || inputScopes.length < 1) {\r\n throw ClientConfigurationError.createEmptyScopesArrayError();\r\n }\r\n };\r\n /**\r\n * Check if a given scope is present in this set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.containsScope = function (scope) {\r\n var lowerCaseScopes = this.printScopesLowerCase().split(\" \");\r\n var lowerCaseScopesSet = new ScopeSet(lowerCaseScopes);\r\n // compare lowercase scopes\r\n return !StringUtils.isEmpty(scope) ? lowerCaseScopesSet.scopes.has(scope.toLowerCase()) : false;\r\n };\r\n /**\r\n * Check if a set of scopes is present in this set of scopes.\r\n * @param scopeSet\r\n */\r\n ScopeSet.prototype.containsScopeSet = function (scopeSet) {\r\n var _this = this;\r\n if (!scopeSet || scopeSet.scopes.size <= 0) {\r\n return false;\r\n }\r\n return (this.scopes.size >= scopeSet.scopes.size && scopeSet.asArray().every(function (scope) { return _this.containsScope(scope); }));\r\n };\r\n /**\r\n * Check if set of scopes contains only the defaults\r\n */\r\n ScopeSet.prototype.containsOnlyOIDCScopes = function () {\r\n var _this = this;\r\n var defaultScopeCount = 0;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n if (_this.containsScope(defaultScope)) {\r\n defaultScopeCount += 1;\r\n }\r\n });\r\n return this.scopes.size === defaultScopeCount;\r\n };\r\n /**\r\n * Appends single scope if passed\r\n * @param newScope\r\n */\r\n ScopeSet.prototype.appendScope = function (newScope) {\r\n if (!StringUtils.isEmpty(newScope)) {\r\n this.scopes.add(newScope.trim());\r\n }\r\n };\r\n /**\r\n * Appends multiple scopes if passed\r\n * @param newScopes\r\n */\r\n ScopeSet.prototype.appendScopes = function (newScopes) {\r\n var _this = this;\r\n try {\r\n newScopes.forEach(function (newScope) { return _this.appendScope(newScope); });\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createAppendScopeSetError(e);\r\n }\r\n };\r\n /**\r\n * Removes element from set of scopes.\r\n * @param scope\r\n */\r\n ScopeSet.prototype.removeScope = function (scope) {\r\n if (StringUtils.isEmpty(scope)) {\r\n throw ClientAuthError.createRemoveEmptyScopeFromSetError(scope);\r\n }\r\n this.scopes.delete(scope.trim());\r\n };\r\n /**\r\n * Removes default scopes from set of scopes\r\n * Primarily used to prevent cache misses if the default scopes are not returned from the server\r\n */\r\n ScopeSet.prototype.removeOIDCScopes = function () {\r\n var _this = this;\r\n OIDC_SCOPES.forEach(function (defaultScope) {\r\n _this.scopes.delete(defaultScope);\r\n });\r\n };\r\n /**\r\n * Combines an array of scopes with the current set of scopes.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.unionScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n var unionScopes = new Set(); // Iterator in constructor not supported in IE11\r\n otherScopes.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n this.scopes.forEach(function (scope) { return unionScopes.add(scope.toLowerCase()); });\r\n return unionScopes;\r\n };\r\n /**\r\n * Check if scopes intersect between this set and another.\r\n * @param otherScopes\r\n */\r\n ScopeSet.prototype.intersectingScopeSets = function (otherScopes) {\r\n if (!otherScopes) {\r\n throw ClientAuthError.createEmptyInputScopeSetError();\r\n }\r\n // Do not allow OIDC scopes to be the only intersecting scopes\r\n if (!otherScopes.containsOnlyOIDCScopes()) {\r\n otherScopes.removeOIDCScopes();\r\n }\r\n var unionScopes = this.unionScopeSets(otherScopes);\r\n var sizeOtherScopes = otherScopes.getScopeCount();\r\n var sizeThisScopes = this.getScopeCount();\r\n var sizeUnionScopes = unionScopes.size;\r\n return sizeUnionScopes < (sizeThisScopes + sizeOtherScopes);\r\n };\r\n /**\r\n * Returns size of set of scopes.\r\n */\r\n ScopeSet.prototype.getScopeCount = function () {\r\n return this.scopes.size;\r\n };\r\n /**\r\n * Returns the scopes as an array of string values\r\n */\r\n ScopeSet.prototype.asArray = function () {\r\n var array = [];\r\n this.scopes.forEach(function (val) { return array.push(val); });\r\n return array;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited string\r\n */\r\n ScopeSet.prototype.printScopes = function () {\r\n if (this.scopes) {\r\n var scopeArr = this.asArray();\r\n return scopeArr.join(\" \");\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Prints scopes into a space-delimited lower-case string (used for caching)\r\n */\r\n ScopeSet.prototype.printScopesLowerCase = function () {\r\n return this.printScopes().toLowerCase();\r\n };\r\n return ScopeSet;\r\n}());\n\nexport { ScopeSet };\n//# sourceMappingURL=ScopeSet.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { Separators, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Function to build a client info object from server clientInfo string\r\n * @param rawClientInfo\r\n * @param crypto\r\n */\r\nfunction buildClientInfo(rawClientInfo, crypto) {\r\n if (StringUtils.isEmpty(rawClientInfo)) {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n try {\r\n var decodedClientInfo = crypto.base64Decode(rawClientInfo);\r\n return JSON.parse(decodedClientInfo);\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createClientInfoDecodingError(e.message);\r\n }\r\n}\r\n/**\r\n * Function to build a client info object from cached homeAccountId string\r\n * @param homeAccountId\r\n */\r\nfunction buildClientInfoFromHomeAccountId(homeAccountId) {\r\n if (StringUtils.isEmpty(homeAccountId)) {\r\n throw ClientAuthError.createClientInfoDecodingError(\"Home account ID was empty.\");\r\n }\r\n var clientInfoParts = homeAccountId.split(Separators.CLIENT_INFO_SEPARATOR, 2);\r\n return {\r\n uid: clientInfoParts[0],\r\n utid: clientInfoParts.length < 2 ? Constants.EMPTY_STRING : clientInfoParts[1]\r\n };\r\n}\n\nexport { buildClientInfo, buildClientInfoFromHomeAccountId };\n//# sourceMappingURL=ClientInfo.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { Separators, CacheAccountType, CacheType, Constants } from '../../utils/Constants.js';\nimport { buildClientInfo } from '../../account/ClientInfo.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\nimport { AuthorityType } from '../../authority/AuthorityType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Type that defines required and optional parameters for an Account field (based on universal cache schema implemented by all MSALs).\r\n *\r\n * Key : Value Schema\r\n *\r\n * Key: --\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * localAccountId: Original tenant-specific accountID, usually used for legacy cases\r\n * username: primary username that represents the user, usually corresponds to preferred_username in the v2 endpt\r\n * authorityType: Accounts authority type as a string\r\n * name: Full name for the account, including given name and family name,\r\n * clientInfo: Full base64 encoded client info received from ESTS\r\n * lastModificationTime: last time this entity was modified in the cache\r\n * lastModificationApp:\r\n * idTokenClaims: Object containing claims parsed from ID token\r\n * nativeAccountId: Account identifier on the native device\r\n * }\r\n */\r\nvar AccountEntity = /** @class */ (function () {\r\n function AccountEntity() {\r\n }\r\n /**\r\n * Generate Account Id key component as per the schema: -\r\n */\r\n AccountEntity.prototype.generateAccountId = function () {\r\n var accountId = [this.homeAccountId, this.environment];\r\n return accountId.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Generate Account Cache Key as per the schema: --\r\n */\r\n AccountEntity.prototype.generateAccountKey = function () {\r\n return AccountEntity.generateAccountCacheKey({\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId\r\n });\r\n };\r\n /**\r\n * returns the type of the cache (in this case account)\r\n */\r\n AccountEntity.prototype.generateType = function () {\r\n switch (this.authorityType) {\r\n case CacheAccountType.ADFS_ACCOUNT_TYPE:\r\n return CacheType.ADFS;\r\n case CacheAccountType.MSAV1_ACCOUNT_TYPE:\r\n return CacheType.MSA;\r\n case CacheAccountType.MSSTS_ACCOUNT_TYPE:\r\n return CacheType.MSSTS;\r\n case CacheAccountType.GENERIC_ACCOUNT_TYPE:\r\n return CacheType.GENERIC;\r\n default: {\r\n throw ClientAuthError.createUnexpectedAccountTypeError();\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the AccountInfo interface for this account.\r\n */\r\n AccountEntity.prototype.getAccountInfo = function () {\r\n return {\r\n homeAccountId: this.homeAccountId,\r\n environment: this.environment,\r\n tenantId: this.realm,\r\n username: this.username,\r\n localAccountId: this.localAccountId,\r\n name: this.name,\r\n idTokenClaims: this.idTokenClaims,\r\n nativeAccountId: this.nativeAccountId\r\n };\r\n };\r\n /**\r\n * Generates account key from interface\r\n * @param accountInterface\r\n */\r\n AccountEntity.generateAccountCacheKey = function (accountInterface) {\r\n var accountKey = [\r\n accountInterface.homeAccountId,\r\n accountInterface.environment || Constants.EMPTY_STRING,\r\n accountInterface.tenantId || Constants.EMPTY_STRING,\r\n ];\r\n return accountKey.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Build Account cache from IdToken, clientInfo and authority/policy. Associated with AAD.\r\n * @param clientInfo\r\n * @param authority\r\n * @param idToken\r\n * @param policy\r\n */\r\n AccountEntity.createAccount = function (clientInfo, homeAccountId, idToken, authority, cloudGraphHostName, msGraphHost, environment, nativeAccountId) {\r\n var _a, _b, _c, _d, _e, _f;\r\n var account = new AccountEntity();\r\n account.authorityType = CacheAccountType.MSSTS_ACCOUNT_TYPE;\r\n account.clientInfo = clientInfo;\r\n account.homeAccountId = homeAccountId;\r\n account.nativeAccountId = nativeAccountId;\r\n var env = environment || (authority && authority.getPreferredCache());\r\n if (!env) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n account.environment = env;\r\n // non AAD scenarios can have empty realm\r\n account.realm = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.tid) || Constants.EMPTY_STRING;\r\n if (idToken) {\r\n account.idTokenClaims = idToken.claims;\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.oid) || ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.sub) || Constants.EMPTY_STRING;\r\n /*\r\n * In B2C scenarios the emails claim is used instead of preferred_username and it is an array.\r\n * In most cases it will contain a single email. This field should not be relied upon if a custom\r\n * policy is configured to return more than 1 email.\r\n */\r\n var preferredUsername = (_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.preferred_username;\r\n var email = ((_e = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _e === void 0 ? void 0 : _e.emails) ? idToken.claims.emails[0] : null;\r\n account.username = preferredUsername || email || Constants.EMPTY_STRING;\r\n account.name = (_f = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _f === void 0 ? void 0 : _f.name;\r\n }\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n return account;\r\n };\r\n /**\r\n * Builds non-AAD/ADFS account.\r\n * @param authority\r\n * @param idToken\r\n */\r\n AccountEntity.createGenericAccount = function (homeAccountId, idToken, authority, cloudGraphHostName, msGraphHost, environment) {\r\n var _a, _b, _c, _d;\r\n var account = new AccountEntity();\r\n account.authorityType = (authority &&\r\n authority.authorityType === AuthorityType.Adfs) ? CacheAccountType.ADFS_ACCOUNT_TYPE : CacheAccountType.GENERIC_ACCOUNT_TYPE;\r\n account.homeAccountId = homeAccountId;\r\n // non AAD scenarios can have empty realm\r\n account.realm = Constants.EMPTY_STRING;\r\n var env = environment || authority && authority.getPreferredCache();\r\n if (!env) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n if (idToken) {\r\n // How do you account for MSA CID here?\r\n account.localAccountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.oid) || ((_b = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _b === void 0 ? void 0 : _b.sub) || Constants.EMPTY_STRING;\r\n // upn claim for most ADFS scenarios\r\n account.username = ((_c = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _c === void 0 ? void 0 : _c.upn) || Constants.EMPTY_STRING;\r\n account.name = ((_d = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _d === void 0 ? void 0 : _d.name) || Constants.EMPTY_STRING;\r\n account.idTokenClaims = idToken === null || idToken === void 0 ? void 0 : idToken.claims;\r\n }\r\n account.environment = env;\r\n account.cloudGraphHostName = cloudGraphHostName;\r\n account.msGraphHost = msGraphHost;\r\n /*\r\n * add uniqueName to claims\r\n * account.name = idToken.claims.uniqueName;\r\n */\r\n return account;\r\n };\r\n /**\r\n * Generate HomeAccountId from server response\r\n * @param serverClientInfo\r\n * @param authType\r\n */\r\n AccountEntity.generateHomeAccountId = function (serverClientInfo, authType, logger, cryptoObj, idToken) {\r\n var _a;\r\n var accountId = ((_a = idToken === null || idToken === void 0 ? void 0 : idToken.claims) === null || _a === void 0 ? void 0 : _a.sub) ? idToken.claims.sub : Constants.EMPTY_STRING;\r\n // since ADFS does not have tid and does not set client_info\r\n if (authType === AuthorityType.Adfs || authType === AuthorityType.Dsts) {\r\n return accountId;\r\n }\r\n // for cases where there is clientInfo\r\n if (serverClientInfo) {\r\n try {\r\n var clientInfo = buildClientInfo(serverClientInfo, cryptoObj);\r\n if (!StringUtils.isEmpty(clientInfo.uid) && !StringUtils.isEmpty(clientInfo.utid)) {\r\n return \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid;\r\n }\r\n }\r\n catch (e) { }\r\n }\r\n // default to \"sub\" claim\r\n logger.verbose(\"No client info in response\");\r\n return accountId;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccountEntity.isAccountEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"localAccountId\") &&\r\n entity.hasOwnProperty(\"username\") &&\r\n entity.hasOwnProperty(\"authorityType\"));\r\n };\r\n /**\r\n * Helper function to determine whether 2 accountInfo objects represent the same account\r\n * @param accountA\r\n * @param accountB\r\n * @param compareClaims - If set to true idTokenClaims will also be compared to determine account equality\r\n */\r\n AccountEntity.accountInfoIsEqual = function (accountA, accountB, compareClaims) {\r\n if (!accountA || !accountB) {\r\n return false;\r\n }\r\n var claimsMatch = true; // default to true so as to not fail comparison below if compareClaims: false\r\n if (compareClaims) {\r\n var accountAClaims = (accountA.idTokenClaims || {});\r\n var accountBClaims = (accountB.idTokenClaims || {});\r\n // issued at timestamp and nonce are expected to change each time a new id token is acquired\r\n claimsMatch = (accountAClaims.iat === accountBClaims.iat) &&\r\n (accountAClaims.nonce === accountBClaims.nonce);\r\n }\r\n return (accountA.homeAccountId === accountB.homeAccountId) &&\r\n (accountA.localAccountId === accountB.localAccountId) &&\r\n (accountA.username === accountB.username) &&\r\n (accountA.tenantId === accountB.tenantId) &&\r\n (accountA.environment === accountB.environment) &&\r\n (accountA.nativeAccountId === accountB.nativeAccountId) &&\r\n claimsMatch;\r\n };\r\n return AccountEntity;\r\n}());\n\nexport { AccountEntity };\n//# sourceMappingURL=AccountEntity.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CcsCredentialType;\r\n(function (CcsCredentialType) {\r\n CcsCredentialType[\"HOME_ACCOUNT_ID\"] = \"home_account_id\";\r\n CcsCredentialType[\"UPN\"] = \"UPN\";\r\n})(CcsCredentialType || (CcsCredentialType = {}));\n\nexport { CcsCredentialType };\n//# sourceMappingURL=CcsCredential.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * JWT Token representation class. Parses token string and generates claims object.\r\n */\r\nvar AuthToken = /** @class */ (function () {\r\n function AuthToken(rawToken, crypto) {\r\n if (StringUtils.isEmpty(rawToken)) {\r\n throw ClientAuthError.createTokenNullOrEmptyError(rawToken);\r\n }\r\n this.rawToken = rawToken;\r\n this.claims = AuthToken.extractTokenClaims(rawToken, crypto);\r\n }\r\n /**\r\n * Extract token by decoding the rawToken\r\n *\r\n * @param encodedToken\r\n */\r\n AuthToken.extractTokenClaims = function (encodedToken, crypto) {\r\n var decodedToken = StringUtils.decodeAuthToken(encodedToken);\r\n // token will be decoded to get the username\r\n try {\r\n var base64TokenPayload = decodedToken.JWSPayload;\r\n // base64Decode() should throw an error if there is an issue\r\n var base64Decoded = crypto.base64Decode(base64TokenPayload);\r\n return JSON.parse(base64Decoded);\r\n }\r\n catch (err) {\r\n throw ClientAuthError.createTokenParsingError(err);\r\n }\r\n };\r\n /**\r\n * Determine if the token's max_age has transpired\r\n */\r\n AuthToken.checkMaxAge = function (authTime, maxAge) {\r\n /*\r\n * per https://openid.net/specs/openid-connect-core-1_0.html#AuthRequest\r\n * To force an immediate re-authentication: If an app requires that a user re-authenticate prior to access,\r\n * provide a value of 0 for the max_age parameter and the AS will force a fresh login.\r\n */\r\n var fiveMinuteSkew = 300000; // five minutes in milliseconds\r\n if ((maxAge === 0) || ((Date.now() - fiveMinuteSkew) > (authTime + maxAge))) {\r\n throw ClientAuthError.createMaxAgeTranspiredError();\r\n }\r\n };\r\n return AuthToken;\r\n}());\n\nexport { AuthToken };\n//# sourceMappingURL=AuthToken.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-common\";\r\nvar version = \"13.3.1\";\n\nexport { name, version };\n//# sourceMappingURL=packageMetadata.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __awaiter, __generator, __assign, __extends } from '../_virtual/_tslib.js';\nimport { Separators, CredentialType, AuthenticationScheme, THE_FAMILY_ID, APP_METADATA, AUTHORITY_METADATA_CONSTANTS } from '../utils/Constants.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from './entities/AccountEntity.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { name, version } from '../packageMetadata.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Interface class which implement cache storage functions used by MSAL to perform validity checks, and store tokens.\r\n */\r\nvar CacheManager = /** @class */ (function () {\r\n function CacheManager(clientId, cryptoImpl, logger) {\r\n this.clientId = clientId;\r\n this.cryptoImpl = cryptoImpl;\r\n this.commonLogger = logger.clone(name, version);\r\n }\r\n /**\r\n * Returns all accounts in cache\r\n */\r\n CacheManager.prototype.getAllAccounts = function () {\r\n var _this = this;\r\n var allAccountKeys = this.getAccountKeys();\r\n if (allAccountKeys.length < 1) {\r\n return [];\r\n }\r\n var accountEntities = allAccountKeys.reduce(function (accounts, key) {\r\n var entity = _this.getAccount(key);\r\n if (!entity) {\r\n return accounts;\r\n }\r\n accounts.push(entity);\r\n return accounts;\r\n }, []);\r\n if (accountEntities.length < 1) {\r\n return [];\r\n }\r\n else {\r\n var allAccounts = accountEntities.map(function (accountEntity) {\r\n return _this.getAccountInfoFromEntity(accountEntity);\r\n });\r\n return allAccounts;\r\n }\r\n };\r\n /**\r\n * Gets accountInfo object based on provided filters\r\n */\r\n CacheManager.prototype.getAccountInfoFilteredBy = function (accountFilter) {\r\n var allAccounts = this.getAccountsFilteredBy(accountFilter);\r\n if (allAccounts.length > 0) {\r\n return this.getAccountInfoFromEntity(allAccounts[0]);\r\n }\r\n else {\r\n return null;\r\n }\r\n };\r\n CacheManager.prototype.getAccountInfoFromEntity = function (accountEntity) {\r\n var accountInfo = accountEntity.getAccountInfo();\r\n var idToken = this.getIdToken(accountInfo);\r\n if (idToken) {\r\n accountInfo.idToken = idToken.secret;\r\n accountInfo.idTokenClaims = new AuthToken(idToken.secret, this.cryptoImpl).claims;\r\n }\r\n return accountInfo;\r\n };\r\n /**\r\n * saves a cache record\r\n * @param cacheRecord\r\n */\r\n CacheManager.prototype.saveCacheRecord = function (cacheRecord) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!cacheRecord) {\r\n throw ClientAuthError.createNullOrUndefinedCacheRecord();\r\n }\r\n if (!!cacheRecord.account) {\r\n this.setAccount(cacheRecord.account);\r\n }\r\n if (!!cacheRecord.idToken) {\r\n this.setIdTokenCredential(cacheRecord.idToken);\r\n }\r\n if (!!!cacheRecord.accessToken) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.saveAccessToken(cacheRecord.accessToken)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n if (!!cacheRecord.refreshToken) {\r\n this.setRefreshTokenCredential(cacheRecord.refreshToken);\r\n }\r\n if (!!cacheRecord.appMetadata) {\r\n this.setAppMetadata(cacheRecord.appMetadata);\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * saves access token credential\r\n * @param credential\r\n */\r\n CacheManager.prototype.saveAccessToken = function (credential) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var accessTokenFilter, tokenKeys, currentScopes, removedAccessTokens;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n accessTokenFilter = {\r\n clientId: credential.clientId,\r\n credentialType: credential.credentialType,\r\n environment: credential.environment,\r\n homeAccountId: credential.homeAccountId,\r\n realm: credential.realm,\r\n tokenType: credential.tokenType,\r\n requestedClaimsHash: credential.requestedClaimsHash\r\n };\r\n tokenKeys = this.getTokenKeys();\r\n currentScopes = ScopeSet.fromString(credential.target);\r\n removedAccessTokens = [];\r\n tokenKeys.accessToken.forEach(function (key) {\r\n if (!_this.accessTokenKeyMatchesFilter(key, accessTokenFilter, false)) {\r\n return;\r\n }\r\n var tokenEntity = _this.getAccessTokenCredential(key);\r\n if (tokenEntity && _this.credentialMatchesFilter(tokenEntity, accessTokenFilter)) {\r\n var tokenScopeSet = ScopeSet.fromString(tokenEntity.target);\r\n if (tokenScopeSet.intersectingScopeSets(currentScopes)) {\r\n removedAccessTokens.push(_this.removeAccessToken(key));\r\n }\r\n }\r\n });\r\n return [4 /*yield*/, Promise.all(removedAccessTokens)];\r\n case 1:\r\n _a.sent();\r\n this.setAccessTokenCredential(credential);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * retrieve accounts matching all provided filters; if no filter is set, get all accounts\r\n * not checking for casing as keys are all generated in lower case, remember to convert to lower case if object properties are compared\r\n * @param homeAccountId\r\n * @param environment\r\n * @param realm\r\n */\r\n CacheManager.prototype.getAccountsFilteredBy = function (accountFilter) {\r\n var _this = this;\r\n var allAccountKeys = this.getAccountKeys();\r\n var matchingAccounts = [];\r\n allAccountKeys.forEach(function (cacheKey) {\r\n if (!_this.isAccountKey(cacheKey, accountFilter.homeAccountId, accountFilter.realm)) {\r\n // Don't parse value if the key doesn't match the account filters\r\n return;\r\n }\r\n var entity = _this.getAccount(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!accountFilter.homeAccountId && !_this.matchHomeAccountId(entity, accountFilter.homeAccountId)) {\r\n return;\r\n }\r\n if (!!accountFilter.localAccountId && !_this.matchLocalAccountId(entity, accountFilter.localAccountId)) {\r\n return;\r\n }\r\n if (!!accountFilter.username && !_this.matchUsername(entity, accountFilter.username)) {\r\n return;\r\n }\r\n if (!!accountFilter.environment && !_this.matchEnvironment(entity, accountFilter.environment)) {\r\n return;\r\n }\r\n if (!!accountFilter.realm && !_this.matchRealm(entity, accountFilter.realm)) {\r\n return;\r\n }\r\n if (!!accountFilter.nativeAccountId && !_this.matchNativeAccountId(entity, accountFilter.nativeAccountId)) {\r\n return;\r\n }\r\n matchingAccounts.push(entity);\r\n });\r\n return matchingAccounts;\r\n };\r\n /**\r\n * Returns true if the given key matches our account key schema. Also matches homeAccountId and/or tenantId if provided\r\n * @param key\r\n * @param homeAccountId\r\n * @param tenantId\r\n * @returns\r\n */\r\n CacheManager.prototype.isAccountKey = function (key, homeAccountId, tenantId) {\r\n if (key.split(Separators.CACHE_KEY_SEPARATOR).length < 3) {\r\n // Account cache keys contain 3 items separated by '-' (each item may also contain '-')\r\n return false;\r\n }\r\n if (homeAccountId && !key.toLowerCase().includes(homeAccountId.toLowerCase())) {\r\n return false;\r\n }\r\n if (tenantId && !key.toLowerCase().includes(tenantId.toLowerCase())) {\r\n return false;\r\n }\r\n // Do not check environment as aliasing can cause false negatives\r\n return true;\r\n };\r\n /**\r\n * Returns true if the given key matches our credential key schema.\r\n * @param key\r\n */\r\n CacheManager.prototype.isCredentialKey = function (key) {\r\n if (key.split(Separators.CACHE_KEY_SEPARATOR).length < 6) {\r\n // Credential cache keys contain 6 items separated by '-' (each item may also contain '-')\r\n return false;\r\n }\r\n var lowerCaseKey = key.toLowerCase();\r\n // Credential keys must indicate what credential type they represent\r\n if (lowerCaseKey.indexOf(CredentialType.ID_TOKEN.toLowerCase()) === -1 &&\r\n lowerCaseKey.indexOf(CredentialType.ACCESS_TOKEN.toLowerCase()) === -1 &&\r\n lowerCaseKey.indexOf(CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase()) === -1 &&\r\n lowerCaseKey.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (lowerCaseKey.indexOf(CredentialType.REFRESH_TOKEN.toLowerCase()) > -1) {\r\n // Refresh tokens must contain the client id or family id\r\n var clientIdValidation = \"\" + CredentialType.REFRESH_TOKEN + Separators.CACHE_KEY_SEPARATOR + this.clientId + Separators.CACHE_KEY_SEPARATOR;\r\n var familyIdValidation = \"\" + CredentialType.REFRESH_TOKEN + Separators.CACHE_KEY_SEPARATOR + THE_FAMILY_ID + Separators.CACHE_KEY_SEPARATOR;\r\n if (lowerCaseKey.indexOf(clientIdValidation.toLowerCase()) === -1 && lowerCaseKey.indexOf(familyIdValidation.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n }\r\n else if (lowerCaseKey.indexOf(this.clientId.toLowerCase()) === -1) {\r\n // Tokens must contain the clientId\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Returns whether or not the given credential entity matches the filter\r\n * @param entity\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.credentialMatchesFilter = function (entity, filter) {\r\n if (!!filter.clientId && !this.matchClientId(entity, filter.clientId)) {\r\n return false;\r\n }\r\n if (!!filter.userAssertionHash && !this.matchUserAssertionHash(entity, filter.userAssertionHash)) {\r\n return false;\r\n }\r\n /*\r\n * homeAccountId can be undefined, and we want to filter out cached items that have a homeAccountId of \"\"\r\n * because we don't want a client_credential request to return a cached token that has a homeAccountId\r\n */\r\n if ((typeof filter.homeAccountId === \"string\") && !this.matchHomeAccountId(entity, filter.homeAccountId)) {\r\n return false;\r\n }\r\n if (!!filter.environment && !this.matchEnvironment(entity, filter.environment)) {\r\n return false;\r\n }\r\n if (!!filter.realm && !this.matchRealm(entity, filter.realm)) {\r\n return false;\r\n }\r\n if (!!filter.credentialType && !this.matchCredentialType(entity, filter.credentialType)) {\r\n return false;\r\n }\r\n if (!!filter.familyId && !this.matchFamilyId(entity, filter.familyId)) {\r\n return false;\r\n }\r\n /*\r\n * idTokens do not have \"target\", target specific refreshTokens do exist for some types of authentication\r\n * Resource specific refresh tokens case will be added when the support is deemed necessary\r\n */\r\n if (!!filter.target && !this.matchTarget(entity, filter.target)) {\r\n return false;\r\n }\r\n // If request OR cached entity has requested Claims Hash, check if they match\r\n if (filter.requestedClaimsHash || entity.requestedClaimsHash) {\r\n // Don't match if either is undefined or they are different\r\n if (entity.requestedClaimsHash !== filter.requestedClaimsHash) {\r\n return false;\r\n }\r\n }\r\n // Access Token with Auth Scheme specific matching\r\n if (entity.credentialType === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME) {\r\n if (!!filter.tokenType && !this.matchTokenType(entity, filter.tokenType)) {\r\n return false;\r\n }\r\n // KeyId (sshKid) in request must match cached SSH certificate keyId because SSH cert is bound to a specific key\r\n if (filter.tokenType === AuthenticationScheme.SSH) {\r\n if (filter.keyId && !this.matchKeyId(entity, filter.keyId)) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * retrieve appMetadata matching all provided filters; if no filter is set, get all appMetadata\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredBy = function (filter) {\r\n return this.getAppMetadataFilteredByInternal(filter.environment, filter.clientId);\r\n };\r\n /**\r\n * Support function to help match appMetadata\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.getAppMetadataFilteredByInternal = function (environment, clientId) {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n var matchingAppMetadata = {};\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-appMetadata type cache entities\r\n if (!_this.isAppMetadata(cacheKey)) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAppMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (!!environment && !_this.matchEnvironment(entity, environment)) {\r\n return;\r\n }\r\n if (!!clientId && !_this.matchClientId(entity, clientId)) {\r\n return;\r\n }\r\n matchingAppMetadata[cacheKey] = entity;\r\n });\r\n return matchingAppMetadata;\r\n };\r\n /**\r\n * retrieve authorityMetadata that contains a matching alias\r\n * @param filter\r\n */\r\n CacheManager.prototype.getAuthorityMetadataByAlias = function (host) {\r\n var _this = this;\r\n var allCacheKeys = this.getAuthorityMetadataKeys();\r\n var matchedEntity = null;\r\n allCacheKeys.forEach(function (cacheKey) {\r\n // don't parse any non-authorityMetadata type cache entities\r\n if (!_this.isAuthorityMetadata(cacheKey) || cacheKey.indexOf(_this.clientId) === -1) {\r\n return;\r\n }\r\n // Attempt retrieval\r\n var entity = _this.getAuthorityMetadata(cacheKey);\r\n if (!entity) {\r\n return;\r\n }\r\n if (entity.aliases.indexOf(host) === -1) {\r\n return;\r\n }\r\n matchedEntity = entity;\r\n });\r\n return matchedEntity;\r\n };\r\n /**\r\n * Removes all accounts and related tokens from cache.\r\n */\r\n CacheManager.prototype.removeAllAccounts = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allAccountKeys, removedAccounts;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n allAccountKeys = this.getAccountKeys();\r\n removedAccounts = [];\r\n allAccountKeys.forEach(function (cacheKey) {\r\n removedAccounts.push(_this.removeAccount(cacheKey));\r\n });\r\n return [4 /*yield*/, Promise.all(removedAccounts)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes the account and related tokens for a given account key\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccount = function (accountKey) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var account;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n account = this.getAccount(accountKey);\r\n if (!account) {\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n return [4 /*yield*/, this.removeAccountContext(account)];\r\n case 1:\r\n _a.sent();\r\n this.removeItem(accountKey);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes credentials associated with the provided account\r\n * @param account\r\n */\r\n CacheManager.prototype.removeAccountContext = function (account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allTokenKeys, accountId, removedCredentials;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n allTokenKeys = this.getTokenKeys();\r\n accountId = account.generateAccountId();\r\n removedCredentials = [];\r\n allTokenKeys.idToken.forEach(function (key) {\r\n if (key.indexOf(accountId) === 0) {\r\n _this.removeIdToken(key);\r\n }\r\n });\r\n allTokenKeys.accessToken.forEach(function (key) {\r\n if (key.indexOf(accountId) === 0) {\r\n removedCredentials.push(_this.removeAccessToken(key));\r\n }\r\n });\r\n allTokenKeys.refreshToken.forEach(function (key) {\r\n if (key.indexOf(accountId) === 0) {\r\n _this.removeRefreshToken(key);\r\n }\r\n });\r\n return [4 /*yield*/, Promise.all(removedCredentials)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * returns a boolean if the given credential is removed\r\n * @param credential\r\n */\r\n CacheManager.prototype.removeAccessToken = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var credential, accessTokenWithAuthSchemeEntity, kid;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n credential = this.getAccessTokenCredential(key);\r\n if (!credential) {\r\n return [2 /*return*/];\r\n }\r\n if (!(credential.credentialType.toLowerCase() === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME.toLowerCase())) return [3 /*break*/, 4];\r\n if (!(credential.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 4];\r\n accessTokenWithAuthSchemeEntity = credential;\r\n kid = accessTokenWithAuthSchemeEntity.keyId;\r\n if (!kid) return [3 /*break*/, 4];\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.cryptoImpl.removeTokenBindingKey(kid)];\r\n case 2:\r\n _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n throw ClientAuthError.createBindingKeyNotRemovedError();\r\n case 4: return [2 /*return*/, this.removeItem(key)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Removes all app metadata objects from cache.\r\n */\r\n CacheManager.prototype.removeAppMetadata = function () {\r\n var _this = this;\r\n var allCacheKeys = this.getKeys();\r\n allCacheKeys.forEach(function (cacheKey) {\r\n if (_this.isAppMetadata(cacheKey)) {\r\n _this.removeItem(cacheKey);\r\n }\r\n });\r\n return true;\r\n };\r\n /**\r\n * Retrieve the cached credentials into a cacherecord\r\n * @param account\r\n * @param clientId\r\n * @param scopes\r\n * @param environment\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.readCacheRecord = function (account, request, environment) {\r\n var tokenKeys = this.getTokenKeys();\r\n var cachedAccount = this.readAccountFromCache(account);\r\n var cachedIdToken = this.getIdToken(account, tokenKeys);\r\n var cachedAccessToken = this.getAccessToken(account, request, tokenKeys);\r\n var cachedRefreshToken = this.getRefreshToken(account, false, tokenKeys);\r\n var cachedAppMetadata = this.readAppMetadataFromCache(environment);\r\n if (cachedAccount && cachedIdToken) {\r\n cachedAccount.idTokenClaims = new AuthToken(cachedIdToken.secret, this.cryptoImpl).claims;\r\n }\r\n return {\r\n account: cachedAccount,\r\n idToken: cachedIdToken,\r\n accessToken: cachedAccessToken,\r\n refreshToken: cachedRefreshToken,\r\n appMetadata: cachedAppMetadata,\r\n };\r\n };\r\n /**\r\n * Retrieve AccountEntity from cache\r\n * @param account\r\n */\r\n CacheManager.prototype.readAccountFromCache = function (account) {\r\n var accountKey = AccountEntity.generateAccountCacheKey(account);\r\n return this.getAccount(accountKey);\r\n };\r\n /**\r\n * Retrieve IdTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param inputRealm\r\n */\r\n CacheManager.prototype.getIdToken = function (account, tokenKeys) {\r\n var _this = this;\r\n this.commonLogger.trace(\"CacheManager - getIdToken called\");\r\n var idTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.ID_TOKEN,\r\n clientId: this.clientId,\r\n realm: account.tenantId,\r\n };\r\n var idTokens = this.getIdTokensByFilter(idTokenFilter, tokenKeys);\r\n var numIdTokens = idTokens.length;\r\n if (numIdTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getIdToken - No token found\");\r\n return null;\r\n }\r\n else if (numIdTokens > 1) {\r\n this.commonLogger.info(\"CacheManager:getIdToken - Multiple id tokens found, clearing them\");\r\n idTokens.forEach(function (idToken) {\r\n _this.removeIdToken(idToken.generateCredentialKey());\r\n });\r\n return null;\r\n }\r\n this.commonLogger.info(\"CacheManager:getIdToken - Returning id token\");\r\n return idTokens[0];\r\n };\r\n /**\r\n * Gets all idTokens matching the given filter\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.getIdTokensByFilter = function (filter, tokenKeys) {\r\n var _this = this;\r\n var idTokenKeys = tokenKeys && tokenKeys.idToken || this.getTokenKeys().idToken;\r\n var idTokens = [];\r\n idTokenKeys.forEach(function (key) {\r\n if (!_this.idTokenKeyMatchesFilter(key, __assign({ clientId: _this.clientId }, filter))) {\r\n return;\r\n }\r\n var idToken = _this.getIdTokenCredential(key);\r\n if (idToken && _this.credentialMatchesFilter(idToken, filter)) {\r\n idTokens.push(idToken);\r\n }\r\n });\r\n return idTokens;\r\n };\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.idTokenKeyMatchesFilter = function (inputKey, filter) {\r\n var key = inputKey.toLowerCase();\r\n if (filter.clientId && key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId && key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Removes idToken from the cache\r\n * @param key\r\n */\r\n CacheManager.prototype.removeIdToken = function (key) {\r\n this.removeItem(key);\r\n };\r\n /**\r\n * Removes refresh token from the cache\r\n * @param key\r\n */\r\n CacheManager.prototype.removeRefreshToken = function (key) {\r\n this.removeItem(key);\r\n };\r\n /**\r\n * Retrieve AccessTokenEntity from cache\r\n * @param clientId\r\n * @param account\r\n * @param scopes\r\n * @param authScheme\r\n */\r\n CacheManager.prototype.getAccessToken = function (account, request, tokenKeys) {\r\n var _this = this;\r\n this.commonLogger.trace(\"CacheManager - getAccessToken called\");\r\n var scopes = ScopeSet.createSearchScopes(request.scopes);\r\n var authScheme = request.authenticationScheme || AuthenticationScheme.BEARER;\r\n /*\r\n * Distinguish between Bearer and PoP/SSH token cache types\r\n * Cast to lowercase to handle \"bearer\" from ADFS\r\n */\r\n var credentialType = (authScheme && authScheme.toLowerCase() !== AuthenticationScheme.BEARER.toLowerCase()) ? CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME : CredentialType.ACCESS_TOKEN;\r\n var accessTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: credentialType,\r\n clientId: this.clientId,\r\n realm: account.tenantId,\r\n target: scopes,\r\n tokenType: authScheme,\r\n keyId: request.sshKid,\r\n requestedClaimsHash: request.requestedClaimsHash,\r\n };\r\n var accessTokenKeys = tokenKeys && tokenKeys.accessToken || this.getTokenKeys().accessToken;\r\n var accessTokens = [];\r\n accessTokenKeys.forEach(function (key) {\r\n // Validate key\r\n if (_this.accessTokenKeyMatchesFilter(key, accessTokenFilter, true)) {\r\n var accessToken = _this.getAccessTokenCredential(key);\r\n // Validate value\r\n if (accessToken && _this.credentialMatchesFilter(accessToken, accessTokenFilter)) {\r\n accessTokens.push(accessToken);\r\n }\r\n }\r\n });\r\n var numAccessTokens = accessTokens.length;\r\n if (numAccessTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getAccessToken - No token found\");\r\n return null;\r\n }\r\n else if (numAccessTokens > 1) {\r\n this.commonLogger.info(\"CacheManager:getAccessToken - Multiple access tokens found, clearing them\");\r\n accessTokens.forEach(function (accessToken) {\r\n _this.removeAccessToken(accessToken.generateCredentialKey());\r\n });\r\n return null;\r\n }\r\n this.commonLogger.info(\"CacheManager:getAccessToken - Returning access token\");\r\n return accessTokens[0];\r\n };\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n * @param keyMustContainAllScopes\r\n * @returns\r\n */\r\n CacheManager.prototype.accessTokenKeyMatchesFilter = function (inputKey, filter, keyMustContainAllScopes) {\r\n var key = inputKey.toLowerCase();\r\n if (filter.clientId && key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId && key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.realm && key.indexOf(filter.realm.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.requestedClaimsHash && key.indexOf(filter.requestedClaimsHash.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.target) {\r\n var scopes = filter.target.asArray();\r\n for (var i = 0; i < scopes.length; i++) {\r\n if (keyMustContainAllScopes && !key.includes(scopes[i].toLowerCase())) {\r\n // When performing a cache lookup a missing scope would be a cache miss\r\n return false;\r\n }\r\n else if (!keyMustContainAllScopes && key.includes(scopes[i].toLowerCase())) {\r\n // When performing a cache write, any token with a subset of requested scopes should be replaced\r\n return true;\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n /**\r\n * Gets all access tokens matching the filter\r\n * @param filter\r\n * @returns\r\n */\r\n CacheManager.prototype.getAccessTokensByFilter = function (filter) {\r\n var _this = this;\r\n var tokenKeys = this.getTokenKeys();\r\n var accessTokens = [];\r\n tokenKeys.accessToken.forEach(function (key) {\r\n if (!_this.accessTokenKeyMatchesFilter(key, filter, true)) {\r\n return;\r\n }\r\n var accessToken = _this.getAccessTokenCredential(key);\r\n if (accessToken && _this.credentialMatchesFilter(accessToken, filter)) {\r\n accessTokens.push(accessToken);\r\n }\r\n });\r\n return accessTokens;\r\n };\r\n /**\r\n * Helper to retrieve the appropriate refresh token from cache\r\n * @param clientId\r\n * @param account\r\n * @param familyRT\r\n */\r\n CacheManager.prototype.getRefreshToken = function (account, familyRT, tokenKeys) {\r\n var _this = this;\r\n this.commonLogger.trace(\"CacheManager - getRefreshToken called\");\r\n var id = familyRT ? THE_FAMILY_ID : undefined;\r\n var refreshTokenFilter = {\r\n homeAccountId: account.homeAccountId,\r\n environment: account.environment,\r\n credentialType: CredentialType.REFRESH_TOKEN,\r\n clientId: this.clientId,\r\n familyId: id,\r\n };\r\n var refreshTokenKeys = tokenKeys && tokenKeys.refreshToken || this.getTokenKeys().refreshToken;\r\n var refreshTokens = [];\r\n refreshTokenKeys.forEach(function (key) {\r\n // Validate key\r\n if (_this.refreshTokenKeyMatchesFilter(key, refreshTokenFilter)) {\r\n var refreshToken = _this.getRefreshTokenCredential(key);\r\n // Validate value\r\n if (refreshToken && _this.credentialMatchesFilter(refreshToken, refreshTokenFilter)) {\r\n refreshTokens.push(refreshToken);\r\n }\r\n }\r\n });\r\n var numRefreshTokens = refreshTokens.length;\r\n if (numRefreshTokens < 1) {\r\n this.commonLogger.info(\"CacheManager:getRefreshToken - No refresh token found.\");\r\n return null;\r\n }\r\n // address the else case after remove functions address environment aliases\r\n this.commonLogger.info(\"CacheManager:getRefreshToken - returning refresh token\");\r\n return refreshTokens[0];\r\n };\r\n /**\r\n * Validate the cache key against filter before retrieving and parsing cache value\r\n * @param key\r\n * @param filter\r\n */\r\n CacheManager.prototype.refreshTokenKeyMatchesFilter = function (inputKey, filter) {\r\n var key = inputKey.toLowerCase();\r\n if (filter.familyId && key.indexOf(filter.familyId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n // If familyId is used, clientId is not in the key\r\n if (!filter.familyId && filter.clientId && key.indexOf(filter.clientId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n if (filter.homeAccountId && key.indexOf(filter.homeAccountId.toLowerCase()) === -1) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Retrieve AppMetadataEntity from cache\r\n */\r\n CacheManager.prototype.readAppMetadataFromCache = function (environment) {\r\n var appMetadataFilter = {\r\n environment: environment,\r\n clientId: this.clientId,\r\n };\r\n var appMetadata = this.getAppMetadataFilteredBy(appMetadataFilter);\r\n var appMetadataEntries = Object.keys(appMetadata).map(function (key) { return appMetadata[key]; });\r\n var numAppMetadata = appMetadataEntries.length;\r\n if (numAppMetadata < 1) {\r\n return null;\r\n }\r\n else if (numAppMetadata > 1) {\r\n throw ClientAuthError.createMultipleMatchingAppMetadataInCacheError();\r\n }\r\n return appMetadataEntries[0];\r\n };\r\n /**\r\n * Return the family_id value associated with FOCI\r\n * @param environment\r\n * @param clientId\r\n */\r\n CacheManager.prototype.isAppMetadataFOCI = function (environment) {\r\n var appMetadata = this.readAppMetadataFromCache(environment);\r\n return !!(appMetadata && appMetadata.familyId === THE_FAMILY_ID);\r\n };\r\n /**\r\n * helper to match account ids\r\n * @param value\r\n * @param homeAccountId\r\n */\r\n CacheManager.prototype.matchHomeAccountId = function (entity, homeAccountId) {\r\n return !!((typeof entity.homeAccountId === \"string\") && (homeAccountId === entity.homeAccountId));\r\n };\r\n /**\r\n * helper to match account ids\r\n * @param entity\r\n * @param localAccountId\r\n * @returns\r\n */\r\n CacheManager.prototype.matchLocalAccountId = function (entity, localAccountId) {\r\n return !!((typeof entity.localAccountId === \"string\") && (localAccountId === entity.localAccountId));\r\n };\r\n /**\r\n * helper to match usernames\r\n * @param entity\r\n * @param username\r\n * @returns\r\n */\r\n CacheManager.prototype.matchUsername = function (entity, username) {\r\n return !!((typeof entity.username === \"string\") && (username.toLowerCase() === entity.username.toLowerCase()));\r\n };\r\n /**\r\n * helper to match assertion\r\n * @param value\r\n * @param oboAssertion\r\n */\r\n CacheManager.prototype.matchUserAssertionHash = function (entity, userAssertionHash) {\r\n return !!(entity.userAssertionHash && userAssertionHash === entity.userAssertionHash);\r\n };\r\n /**\r\n * helper to match environment\r\n * @param value\r\n * @param environment\r\n */\r\n CacheManager.prototype.matchEnvironment = function (entity, environment) {\r\n var cloudMetadata = this.getAuthorityMetadataByAlias(environment);\r\n if (cloudMetadata && cloudMetadata.aliases.indexOf(entity.environment) > -1) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n /**\r\n * helper to match credential type\r\n * @param entity\r\n * @param credentialType\r\n */\r\n CacheManager.prototype.matchCredentialType = function (entity, credentialType) {\r\n return (entity.credentialType && credentialType.toLowerCase() === entity.credentialType.toLowerCase());\r\n };\r\n /**\r\n * helper to match client ids\r\n * @param entity\r\n * @param clientId\r\n */\r\n CacheManager.prototype.matchClientId = function (entity, clientId) {\r\n return !!(entity.clientId && clientId === entity.clientId);\r\n };\r\n /**\r\n * helper to match family ids\r\n * @param entity\r\n * @param familyId\r\n */\r\n CacheManager.prototype.matchFamilyId = function (entity, familyId) {\r\n return !!(entity.familyId && familyId === entity.familyId);\r\n };\r\n /**\r\n * helper to match realm\r\n * @param entity\r\n * @param realm\r\n */\r\n CacheManager.prototype.matchRealm = function (entity, realm) {\r\n return !!(entity.realm && realm === entity.realm);\r\n };\r\n /**\r\n * helper to match nativeAccountId\r\n * @param entity\r\n * @param nativeAccountId\r\n * @returns boolean indicating the match result\r\n */\r\n CacheManager.prototype.matchNativeAccountId = function (entity, nativeAccountId) {\r\n return !!(entity.nativeAccountId && nativeAccountId === entity.nativeAccountId);\r\n };\r\n /**\r\n * Returns true if the target scopes are a subset of the current entity's scopes, false otherwise.\r\n * @param entity\r\n * @param target\r\n */\r\n CacheManager.prototype.matchTarget = function (entity, target) {\r\n var isNotAccessTokenCredential = (entity.credentialType !== CredentialType.ACCESS_TOKEN && entity.credentialType !== CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME);\r\n if (isNotAccessTokenCredential || !entity.target) {\r\n return false;\r\n }\r\n var entityScopeSet = ScopeSet.fromString(entity.target);\r\n return entityScopeSet.containsScopeSet(target);\r\n };\r\n /**\r\n * Returns true if the credential's tokenType or Authentication Scheme matches the one in the request, false otherwise\r\n * @param entity\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.matchTokenType = function (entity, tokenType) {\r\n return !!(entity.tokenType && entity.tokenType === tokenType);\r\n };\r\n /**\r\n * Returns true if the credential's keyId matches the one in the request, false otherwise\r\n * @param entity\r\n * @param tokenType\r\n */\r\n CacheManager.prototype.matchKeyId = function (entity, keyId) {\r\n return !!(entity.keyId && entity.keyId === keyId);\r\n };\r\n /**\r\n * returns if a given cache entity is of the type appmetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAppMetadata = function (key) {\r\n return key.indexOf(APP_METADATA) !== -1;\r\n };\r\n /**\r\n * returns if a given cache entity is of the type authoritymetadata\r\n * @param key\r\n */\r\n CacheManager.prototype.isAuthorityMetadata = function (key) {\r\n return key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) !== -1;\r\n };\r\n /**\r\n * returns cache key used for cloud instance metadata\r\n */\r\n CacheManager.prototype.generateAuthorityMetadataCacheKey = function (authority) {\r\n return AUTHORITY_METADATA_CONSTANTS.CACHE_KEY + \"-\" + this.clientId + \"-\" + authority;\r\n };\r\n /**\r\n * Helper to convert serialized data to object\r\n * @param obj\r\n * @param json\r\n */\r\n CacheManager.toObject = function (obj, json) {\r\n for (var propertyName in json) {\r\n obj[propertyName] = json[propertyName];\r\n }\r\n return obj;\r\n };\r\n return CacheManager;\r\n}());\r\nvar DefaultStorageClass = /** @class */ (function (_super) {\r\n __extends(DefaultStorageClass, _super);\r\n function DefaultStorageClass() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n DefaultStorageClass.prototype.setAccount = function () {\r\n var notImplErr = \"Storage interface - setAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccount = function () {\r\n var notImplErr = \"Storage interface - getAccount() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getIdTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getIdTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccessTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getAccessTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - setRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getRefreshTokenCredential = function () {\r\n var notImplErr = \"Storage interface - getRefreshTokenCredential() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAppMetadata = function () {\r\n var notImplErr = \"Storage interface - setAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAppMetadata = function () {\r\n var notImplErr = \"Storage interface - getAppMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - setServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getServerTelemetry = function () {\r\n var notImplErr = \"Storage interface - getServerTelemetry() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - setAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadata = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadata() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAuthorityMetadataKeys = function () {\r\n var notImplErr = \"Storage interface - getAuthorityMetadataKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.setThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - setThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getThrottlingCache = function () {\r\n var notImplErr = \"Storage interface - getThrottlingCache() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.removeItem = function () {\r\n var notImplErr = \"Storage interface - removeItem() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.containsKey = function () {\r\n var notImplErr = \"Storage interface - containsKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getKeys = function () {\r\n var notImplErr = \"Storage interface - getKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getAccountKeys = function () {\r\n var notImplErr = \"Storage interface - getAccountKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.getTokenKeys = function () {\r\n var notImplErr = \"Storage interface - getTokenKeys() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n DefaultStorageClass.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Storage interface - clear() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n };\r\n DefaultStorageClass.prototype.updateCredentialCacheKey = function () {\r\n var notImplErr = \"Storage interface - updateCredentialCacheKey() has not been implemented for the cacheStorage interface.\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n };\r\n return DefaultStorageClass;\r\n}(CacheManager));\n\nexport { CacheManager, DefaultStorageClass };\n//# sourceMappingURL=CacheManager.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class which exposes functions for managing date and time operations.\r\n */\r\nvar TimeUtils = /** @class */ (function () {\r\n function TimeUtils() {\r\n }\r\n /**\r\n * return the current time in Unix time (seconds).\r\n */\r\n TimeUtils.nowSeconds = function () {\r\n // Date.getTime() returns in milliseconds.\r\n return Math.round(new Date().getTime() / 1000.0);\r\n };\r\n /**\r\n * check if a token is expired based on given UTC time in seconds.\r\n * @param expiresOn\r\n */\r\n TimeUtils.isTokenExpired = function (expiresOn, offset) {\r\n // check for access token expiry\r\n var expirationSec = Number(expiresOn) || 0;\r\n var offsetCurrentTimeSec = TimeUtils.nowSeconds() + offset;\r\n // If current time + offset is greater than token expiration time, then token is expired.\r\n return (offsetCurrentTimeSec > expirationSec);\r\n };\r\n /**\r\n * If the current time is earlier than the time that a token was cached at, we must discard the token\r\n * i.e. The system clock was turned back after acquiring the cached token\r\n * @param cachedAt\r\n * @param offset\r\n */\r\n TimeUtils.wasClockTurnedBack = function (cachedAt) {\r\n var cachedAtSec = Number(cachedAt);\r\n return cachedAtSec > TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Waits for t number of milliseconds\r\n * @param t number\r\n * @param value T\r\n */\r\n TimeUtils.delay = function (t, value) {\r\n return new Promise(function (resolve) { return setTimeout(function () { return resolve(value); }, t); });\r\n };\r\n return TimeUtils;\r\n}());\n\nexport { TimeUtils };\n//# sourceMappingURL=TimeUtils.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType, AuthenticationScheme } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\nimport { AuthToken } from '../../account/AuthToken.js';\nimport { ClientAuthError } from '../../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * ACCESS_TOKEN Credential Type\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-accesstoken-clientId-contoso.com-user.read\r\n *\r\n * Value Schema:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, usually only used for refresh tokens\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * cachedAt: Absolute device time when entry was created in the cache.\r\n * expiresOn: Token expiry time, calculated based on current UTC time in seconds. Represented as a string.\r\n * extendedExpiresOn: Additional extended expiry time until when token is valid in case of server-side outage. Represented as string in UTC seconds.\r\n * keyId: used for POP and SSH tokenTypes\r\n * tokenType: Type of the token issued. Usually \"Bearer\"\r\n * }\r\n */\r\nvar AccessTokenEntity = /** @class */ (function (_super) {\r\n __extends(AccessTokenEntity, _super);\r\n function AccessTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create AccessTokenEntity\r\n * @param homeAccountId\r\n * @param environment\r\n * @param accessToken\r\n * @param clientId\r\n * @param tenantId\r\n * @param scopes\r\n * @param expiresOn\r\n * @param extExpiresOn\r\n */\r\n AccessTokenEntity.createAccessTokenEntity = function (homeAccountId, environment, accessToken, clientId, tenantId, scopes, expiresOn, extExpiresOn, cryptoUtils, refreshOn, tokenType, userAssertionHash, keyId, requestedClaims, requestedClaimsHash) {\r\n var _a, _b;\r\n var atEntity = new AccessTokenEntity();\r\n atEntity.homeAccountId = homeAccountId;\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN;\r\n atEntity.secret = accessToken;\r\n var currentTime = TimeUtils.nowSeconds();\r\n atEntity.cachedAt = currentTime.toString();\r\n /*\r\n * Token expiry time.\r\n * This value should be  calculated based on the current UTC time measured locally and the value  expires_in Represented as a string in JSON.\r\n */\r\n atEntity.expiresOn = expiresOn.toString();\r\n atEntity.extendedExpiresOn = extExpiresOn.toString();\r\n if (refreshOn) {\r\n atEntity.refreshOn = refreshOn.toString();\r\n }\r\n atEntity.environment = environment;\r\n atEntity.clientId = clientId;\r\n atEntity.realm = tenantId;\r\n atEntity.target = scopes;\r\n atEntity.userAssertionHash = userAssertionHash;\r\n atEntity.tokenType = StringUtils.isEmpty(tokenType) ? AuthenticationScheme.BEARER : tokenType;\r\n if (requestedClaims) {\r\n atEntity.requestedClaims = requestedClaims;\r\n atEntity.requestedClaimsHash = requestedClaimsHash;\r\n }\r\n /*\r\n * Create Access Token With Auth Scheme instead of regular access token\r\n * Cast to lower to handle \"bearer\" from ADFS\r\n */\r\n if (((_a = atEntity.tokenType) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== AuthenticationScheme.BEARER.toLowerCase()) {\r\n atEntity.credentialType = CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME;\r\n switch (atEntity.tokenType) {\r\n case AuthenticationScheme.POP:\r\n // Make sure keyId is present and add it to credential\r\n var tokenClaims = AuthToken.extractTokenClaims(accessToken, cryptoUtils);\r\n if (!((_b = tokenClaims === null || tokenClaims === void 0 ? void 0 : tokenClaims.cnf) === null || _b === void 0 ? void 0 : _b.kid)) {\r\n throw ClientAuthError.createTokenClaimsRequiredError();\r\n }\r\n atEntity.keyId = tokenClaims.cnf.kid;\r\n break;\r\n case AuthenticationScheme.SSH:\r\n atEntity.keyId = keyId;\r\n }\r\n }\r\n return atEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AccessTokenEntity.isAccessTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"realm\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity.hasOwnProperty(\"target\") &&\r\n (entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN || entity[\"credentialType\"] === CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME));\r\n };\r\n return AccessTokenEntity;\r\n}(CredentialEntity));\n\nexport { AccessTokenEntity };\n//# sourceMappingURL=AccessTokenEntity.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends } from '../../_virtual/_tslib.js';\nimport { CredentialEntity } from './CredentialEntity.js';\nimport { CredentialType } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * REFRESH_TOKEN Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key Example: uid.utid-login.microsoftonline.com-refreshtoken-clientId--\r\n *\r\n * Value:\r\n * {\r\n * homeAccountId: home account identifier for the auth scheme,\r\n * environment: entity that issued the token, represented as a full host\r\n * credentialType: Type of credential as a string, can be one of the following: RefreshToken, AccessToken, IdToken, Password, Cookie, Certificate, Other\r\n * clientId: client ID of the application\r\n * secret: Actual credential as a string\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * realm: Full tenant or organizational identifier that the account belongs to\r\n * target: Permissions that are included in the token, or for refresh tokens, the resource identifier.\r\n * }\r\n */\r\nvar RefreshTokenEntity = /** @class */ (function (_super) {\r\n __extends(RefreshTokenEntity, _super);\r\n function RefreshTokenEntity() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Create RefreshTokenEntity\r\n * @param homeAccountId\r\n * @param authenticationResult\r\n * @param clientId\r\n * @param authority\r\n */\r\n RefreshTokenEntity.createRefreshTokenEntity = function (homeAccountId, environment, refreshToken, clientId, familyId, userAssertionHash) {\r\n var rtEntity = new RefreshTokenEntity();\r\n rtEntity.clientId = clientId;\r\n rtEntity.credentialType = CredentialType.REFRESH_TOKEN;\r\n rtEntity.environment = environment;\r\n rtEntity.homeAccountId = homeAccountId;\r\n rtEntity.secret = refreshToken;\r\n rtEntity.userAssertionHash = userAssertionHash;\r\n if (familyId)\r\n rtEntity.familyId = familyId;\r\n return rtEntity;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n RefreshTokenEntity.isRefreshTokenEntity = function (entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (entity.hasOwnProperty(\"homeAccountId\") &&\r\n entity.hasOwnProperty(\"environment\") &&\r\n entity.hasOwnProperty(\"credentialType\") &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"secret\") &&\r\n entity[\"credentialType\"] === CredentialType.REFRESH_TOKEN);\r\n };\r\n return RefreshTokenEntity;\r\n}(CredentialEntity));\n\nexport { RefreshTokenEntity };\n//# sourceMappingURL=RefreshTokenEntity.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { Separators, APP_METADATA } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * APP_METADATA Cache\r\n *\r\n * Key:Value Schema:\r\n *\r\n * Key: appmetadata--\r\n *\r\n * Value:\r\n * {\r\n * clientId: client ID of the application\r\n * environment: entity that issued the token, represented as a full host\r\n * familyId: Family ID identifier, '1' represents Microsoft Family\r\n * }\r\n */\r\nvar AppMetadataEntity = /** @class */ (function () {\r\n function AppMetadataEntity() {\r\n }\r\n /**\r\n * Generate AppMetadata Cache Key as per the schema: appmetadata--\r\n */\r\n AppMetadataEntity.prototype.generateAppMetadataKey = function () {\r\n return AppMetadataEntity.generateAppMetadataCacheKey(this.environment, this.clientId);\r\n };\r\n /**\r\n * Generate AppMetadata Cache Key\r\n */\r\n AppMetadataEntity.generateAppMetadataCacheKey = function (environment, clientId) {\r\n var appMetaDataKeyArray = [\r\n APP_METADATA,\r\n environment,\r\n clientId,\r\n ];\r\n return appMetaDataKeyArray.join(Separators.CACHE_KEY_SEPARATOR).toLowerCase();\r\n };\r\n /**\r\n * Creates AppMetadataEntity\r\n * @param clientId\r\n * @param environment\r\n * @param familyId\r\n */\r\n AppMetadataEntity.createAppMetadataEntity = function (clientId, environment, familyId) {\r\n var appMetadata = new AppMetadataEntity();\r\n appMetadata.clientId = clientId;\r\n appMetadata.environment = environment;\r\n if (familyId) {\r\n appMetadata.familyId = familyId;\r\n }\r\n return appMetadata;\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AppMetadataEntity.isAppMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(APP_METADATA) === 0 &&\r\n entity.hasOwnProperty(\"clientId\") &&\r\n entity.hasOwnProperty(\"environment\"));\r\n };\r\n return AppMetadataEntity;\r\n}());\n\nexport { AppMetadataEntity };\n//# sourceMappingURL=AppMetadataEntity.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryEntity = /** @class */ (function () {\r\n function ServerTelemetryEntity() {\r\n this.failedRequests = [];\r\n this.errors = [];\r\n this.cacheHits = 0;\r\n }\r\n /**\r\n * validates if a given cache entry is \"Telemetry\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ServerTelemetryEntity.isServerTelemetryEntity = function (key, entity) {\r\n var validateKey = key.indexOf(SERVER_TELEM_CONSTANTS.CACHE_KEY) === 0;\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity =\r\n entity.hasOwnProperty(\"failedRequests\") &&\r\n entity.hasOwnProperty(\"errors\") &&\r\n entity.hasOwnProperty(\"cacheHits\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ServerTelemetryEntity;\r\n}());\n\nexport { ServerTelemetryEntity };\n//# sourceMappingURL=ServerTelemetryEntity.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { AUTHORITY_METADATA_CONSTANTS } from '../../utils/Constants.js';\nimport { TimeUtils } from '../../utils/TimeUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityMetadataEntity = /** @class */ (function () {\r\n function AuthorityMetadataEntity() {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n }\r\n /**\r\n * Update the entity with new aliases, preferred_cache and preferred_network values\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateCloudDiscoveryMetadata = function (metadata, fromNetwork) {\r\n this.aliases = metadata.aliases;\r\n this.preferred_cache = metadata.preferred_cache;\r\n this.preferred_network = metadata.preferred_network;\r\n this.aliasesFromNetwork = fromNetwork;\r\n };\r\n /**\r\n * Update the entity with new endpoints\r\n * @param metadata\r\n * @param fromNetwork\r\n */\r\n AuthorityMetadataEntity.prototype.updateEndpointMetadata = function (metadata, fromNetwork) {\r\n this.authorization_endpoint = metadata.authorization_endpoint;\r\n this.token_endpoint = metadata.token_endpoint;\r\n this.end_session_endpoint = metadata.end_session_endpoint;\r\n this.issuer = metadata.issuer;\r\n this.endpointsFromNetwork = fromNetwork;\r\n this.jwks_uri = metadata.jwks_uri;\r\n };\r\n /**\r\n * Save the authority that was used to create this cache entry\r\n * @param authority\r\n */\r\n AuthorityMetadataEntity.prototype.updateCanonicalAuthority = function (authority) {\r\n this.canonical_authority = authority;\r\n };\r\n /**\r\n * Reset the exiresAt value\r\n */\r\n AuthorityMetadataEntity.prototype.resetExpiresAt = function () {\r\n this.expiresAt = TimeUtils.nowSeconds() + AUTHORITY_METADATA_CONSTANTS.REFRESH_TIME_SECONDS;\r\n };\r\n /**\r\n * Returns whether or not the data needs to be refreshed\r\n */\r\n AuthorityMetadataEntity.prototype.isExpired = function () {\r\n return this.expiresAt <= TimeUtils.nowSeconds();\r\n };\r\n /**\r\n * Validates an entity: checks for all expected params\r\n * @param entity\r\n */\r\n AuthorityMetadataEntity.isAuthorityMetadataEntity = function (key, entity) {\r\n if (!entity) {\r\n return false;\r\n }\r\n return (key.indexOf(AUTHORITY_METADATA_CONSTANTS.CACHE_KEY) === 0 &&\r\n entity.hasOwnProperty(\"aliases\") &&\r\n entity.hasOwnProperty(\"preferred_cache\") &&\r\n entity.hasOwnProperty(\"preferred_network\") &&\r\n entity.hasOwnProperty(\"canonical_authority\") &&\r\n entity.hasOwnProperty(\"authorization_endpoint\") &&\r\n entity.hasOwnProperty(\"token_endpoint\") &&\r\n entity.hasOwnProperty(\"issuer\") &&\r\n entity.hasOwnProperty(\"aliasesFromNetwork\") &&\r\n entity.hasOwnProperty(\"endpointsFromNetwork\") &&\r\n entity.hasOwnProperty(\"expiresAt\") &&\r\n entity.hasOwnProperty(\"jwks_uri\"));\r\n };\r\n return AuthorityMetadataEntity;\r\n}());\n\nexport { AuthorityMetadataEntity };\n//# sourceMappingURL=AuthorityMetadataEntity.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { ThrottlingConstants } from '../../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingEntity = /** @class */ (function () {\r\n function ThrottlingEntity() {\r\n }\r\n /**\r\n * validates if a given cache entry is \"Throttling\", parses \r\n * @param key\r\n * @param entity\r\n */\r\n ThrottlingEntity.isThrottlingEntity = function (key, entity) {\r\n var validateKey = false;\r\n if (key) {\r\n validateKey = key.indexOf(ThrottlingConstants.THROTTLING_PREFIX) === 0;\r\n }\r\n var validateEntity = true;\r\n if (entity) {\r\n validateEntity = entity.hasOwnProperty(\"throttleTime\");\r\n }\r\n return validateKey && validateEntity;\r\n };\r\n return ThrottlingEntity;\r\n}());\n\nexport { ThrottlingEntity };\n//# sourceMappingURL=ThrottlingEntity.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { StringUtils } from './StringUtils.js';\nimport { Constants } from './Constants.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class which provides helpers for OAuth 2.0 protocol specific values\r\n */\r\nvar ProtocolUtils = /** @class */ (function () {\r\n function ProtocolUtils() {\r\n }\r\n /**\r\n * Appends user state with random guid, or returns random guid.\r\n * @param userState\r\n * @param randomGuid\r\n */\r\n ProtocolUtils.setRequestState = function (cryptoObj, userState, meta) {\r\n var libraryState = ProtocolUtils.generateLibraryState(cryptoObj, meta);\r\n return !StringUtils.isEmpty(userState) ? \"\" + libraryState + Constants.RESOURCE_DELIM + userState : libraryState;\r\n };\r\n /**\r\n * Generates the state value used by the common library.\r\n * @param randomGuid\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.generateLibraryState = function (cryptoObj, meta) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"generateLibraryState\");\r\n }\r\n // Create a state object containing a unique id and the timestamp of the request creation\r\n var stateObj = {\r\n id: cryptoObj.createNewGuid()\r\n };\r\n if (meta) {\r\n stateObj.meta = meta;\r\n }\r\n var stateString = JSON.stringify(stateObj);\r\n return cryptoObj.base64Encode(stateString);\r\n };\r\n /**\r\n * Parses the state into the RequestStateObject, which contains the LibraryState info and the state passed by the user.\r\n * @param state\r\n * @param cryptoObj\r\n */\r\n ProtocolUtils.parseRequestState = function (cryptoObj, state) {\r\n if (!cryptoObj) {\r\n throw ClientAuthError.createNoCryptoObjectError(\"parseRequestState\");\r\n }\r\n if (StringUtils.isEmpty(state)) {\r\n throw ClientAuthError.createInvalidStateError(state, \"Null, undefined or empty state\");\r\n }\r\n try {\r\n // Split the state between library state and user passed state and decode them separately\r\n var splitState = state.split(Constants.RESOURCE_DELIM);\r\n var libraryState = splitState[0];\r\n var userState = splitState.length > 1 ? splitState.slice(1).join(Constants.RESOURCE_DELIM) : Constants.EMPTY_STRING;\r\n var libraryStateString = cryptoObj.base64Decode(libraryState);\r\n var libraryStateObj = JSON.parse(libraryStateString);\r\n return {\r\n userRequestState: !StringUtils.isEmpty(userState) ? userState : Constants.EMPTY_STRING,\r\n libraryState: libraryStateObj\r\n };\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n return ProtocolUtils;\r\n}());\n\nexport { ProtocolUtils };\n//# sourceMappingURL=ProtocolUtils.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { BrowserCacheLocation } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserStorage = /** @class */ (function () {\r\n function BrowserStorage(cacheLocation) {\r\n this.validateWindowStorage(cacheLocation);\r\n this.windowStorage = window[cacheLocation];\r\n }\r\n BrowserStorage.prototype.validateWindowStorage = function (cacheLocation) {\r\n if (cacheLocation !== BrowserCacheLocation.LocalStorage && cacheLocation !== BrowserCacheLocation.SessionStorage) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n var storageSupported = !!window[cacheLocation];\r\n if (!storageSupported) {\r\n throw BrowserConfigurationAuthError.createStorageNotSupportedError(cacheLocation);\r\n }\r\n };\r\n BrowserStorage.prototype.getItem = function (key) {\r\n return this.windowStorage.getItem(key);\r\n };\r\n BrowserStorage.prototype.setItem = function (key, value) {\r\n this.windowStorage.setItem(key, value);\r\n };\r\n BrowserStorage.prototype.removeItem = function (key) {\r\n this.windowStorage.removeItem(key);\r\n };\r\n BrowserStorage.prototype.getKeys = function () {\r\n return Object.keys(this.windowStorage);\r\n };\r\n BrowserStorage.prototype.containsKey = function (key) {\r\n return this.windowStorage.hasOwnProperty(key);\r\n };\r\n return BrowserStorage;\r\n}());\n\nexport { BrowserStorage };\n//# sourceMappingURL=BrowserStorage.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Protocol modes supported by MSAL.\r\n */\r\nvar ProtocolMode;\r\n(function (ProtocolMode) {\r\n ProtocolMode[\"AAD\"] = \"AAD\";\r\n ProtocolMode[\"OIDC\"] = \"OIDC\";\r\n})(ProtocolMode || (ProtocolMode = {}));\n\nexport { ProtocolMode };\n//# sourceMappingURL=ProtocolMode.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AzureCloudInstance;\r\n(function (AzureCloudInstance) {\r\n // AzureCloudInstance is not specified.\r\n AzureCloudInstance[AzureCloudInstance[\"None\"] = 0] = \"None\";\r\n // Microsoft Azure public cloud\r\n AzureCloudInstance[\"AzurePublic\"] = \"https://login.microsoftonline.com\";\r\n // Microsoft PPE\r\n AzureCloudInstance[\"AzurePpe\"] = \"https://login.windows-ppe.net\";\r\n // Microsoft Chinese national cloud\r\n AzureCloudInstance[\"AzureChina\"] = \"https://login.chinacloudapi.cn\";\r\n // Microsoft German national cloud (\"Black Forest\")\r\n AzureCloudInstance[\"AzureGermany\"] = \"https://login.microsoftonline.de\";\r\n // US Government cloud\r\n AzureCloudInstance[\"AzureUsGovernment\"] = \"https://login.microsoftonline.us\";\r\n})(AzureCloudInstance || (AzureCloudInstance = {}));\n\nexport { AzureCloudInstance };\n//# sourceMappingURL=AuthorityOptions.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { AADAuthorityConstants, Constants } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Url object class which can perform various transformations on url strings.\r\n */\r\nvar UrlString = /** @class */ (function () {\r\n function UrlString(url) {\r\n this._urlString = url;\r\n if (StringUtils.isEmpty(this._urlString)) {\r\n // Throws error if url is empty\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n if (StringUtils.isEmpty(this.getHash())) {\r\n this._urlString = UrlString.canonicalizeUri(url);\r\n }\r\n }\r\n Object.defineProperty(UrlString.prototype, \"urlString\", {\r\n get: function () {\r\n return this._urlString;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Ensure urls are lower case and end with a / character.\r\n * @param url\r\n */\r\n UrlString.canonicalizeUri = function (url) {\r\n if (url) {\r\n var lowerCaseUrl = url.toLowerCase();\r\n if (StringUtils.endsWith(lowerCaseUrl, \"?\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -1);\r\n }\r\n else if (StringUtils.endsWith(lowerCaseUrl, \"?/\")) {\r\n lowerCaseUrl = lowerCaseUrl.slice(0, -2);\r\n }\r\n if (!StringUtils.endsWith(lowerCaseUrl, \"/\")) {\r\n lowerCaseUrl += \"/\";\r\n }\r\n return lowerCaseUrl;\r\n }\r\n return url;\r\n };\r\n /**\r\n * Throws if urlString passed is not a valid authority URI string.\r\n */\r\n UrlString.prototype.validateAsUri = function () {\r\n // Attempts to parse url for uri components\r\n var components;\r\n try {\r\n components = this.getUrlComponents();\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createUrlParseError(e);\r\n }\r\n // Throw error if URI or path segments are not parseable.\r\n if (!components.HostNameAndPort || !components.PathSegments) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Throw error if uri is insecure.\r\n if (!components.Protocol || components.Protocol.toLowerCase() !== \"https:\") {\r\n throw ClientConfigurationError.createInsecureAuthorityUriError(this.urlString);\r\n }\r\n };\r\n /**\r\n * Given a url and a query string return the url with provided query string appended\r\n * @param url\r\n * @param queryString\r\n */\r\n UrlString.appendQueryString = function (url, queryString) {\r\n if (StringUtils.isEmpty(queryString)) {\r\n return url;\r\n }\r\n return url.indexOf(\"?\") < 0 ? url + \"?\" + queryString : url + \"&\" + queryString;\r\n };\r\n /**\r\n * Returns a url with the hash removed\r\n * @param url\r\n */\r\n UrlString.removeHashFromUrl = function (url) {\r\n return UrlString.canonicalizeUri(url.split(\"#\")[0]);\r\n };\r\n /**\r\n * Given a url like https://a:b/common/d?e=f#g, and a tenantId, returns https://a:b/tenantId/d\r\n * @param href The url\r\n * @param tenantId The tenant id to replace\r\n */\r\n UrlString.prototype.replaceTenantPath = function (tenantId) {\r\n var urlObject = this.getUrlComponents();\r\n var pathArray = urlObject.PathSegments;\r\n if (tenantId && (pathArray.length !== 0 && (pathArray[0] === AADAuthorityConstants.COMMON || pathArray[0] === AADAuthorityConstants.ORGANIZATIONS))) {\r\n pathArray[0] = tenantId;\r\n }\r\n return UrlString.constructAuthorityUriFromObject(urlObject);\r\n };\r\n /**\r\n * Returns the anchor part(#) of the URL\r\n */\r\n UrlString.prototype.getHash = function () {\r\n return UrlString.parseHash(this.urlString);\r\n };\r\n /**\r\n * Parses out the components from a url string.\r\n * @returns An object with the various components. Please cache this value insted of calling this multiple times on the same url.\r\n */\r\n UrlString.prototype.getUrlComponents = function () {\r\n // https://gist.github.com/curtisz/11139b2cfcaef4a261e0\r\n var regEx = RegExp(\"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\\\?([^#]*))?(#(.*))?\");\r\n // If url string does not match regEx, we throw an error\r\n var match = this.urlString.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + this.urlString);\r\n }\r\n // Url component object\r\n var urlComponents = {\r\n Protocol: match[1],\r\n HostNameAndPort: match[4],\r\n AbsolutePath: match[5],\r\n QueryString: match[7]\r\n };\r\n var pathSegments = urlComponents.AbsolutePath.split(\"/\");\r\n pathSegments = pathSegments.filter(function (val) { return val && val.length > 0; }); // remove empty elements\r\n urlComponents.PathSegments = pathSegments;\r\n if (!StringUtils.isEmpty(urlComponents.QueryString) && urlComponents.QueryString.endsWith(\"/\")) {\r\n urlComponents.QueryString = urlComponents.QueryString.substring(0, urlComponents.QueryString.length - 1);\r\n }\r\n return urlComponents;\r\n };\r\n UrlString.getDomainFromUrl = function (url) {\r\n var regEx = RegExp(\"^([^:/?#]+://)?([^/?#]*)\");\r\n var match = url.match(regEx);\r\n if (!match) {\r\n throw ClientConfigurationError.createUrlParseError(\"Given url string: \" + url);\r\n }\r\n return match[2];\r\n };\r\n UrlString.getAbsoluteUrl = function (relativeUrl, baseUrl) {\r\n if (relativeUrl[0] === Constants.FORWARD_SLASH) {\r\n var url = new UrlString(baseUrl);\r\n var baseComponents = url.getUrlComponents();\r\n return baseComponents.Protocol + \"//\" + baseComponents.HostNameAndPort + relativeUrl;\r\n }\r\n return relativeUrl;\r\n };\r\n /**\r\n * Parses hash string from given string. Returns empty string if no hash symbol is found.\r\n * @param hashString\r\n */\r\n UrlString.parseHash = function (hashString) {\r\n var hashIndex1 = hashString.indexOf(\"#\");\r\n var hashIndex2 = hashString.indexOf(\"#/\");\r\n if (hashIndex2 > -1) {\r\n return hashString.substring(hashIndex2 + 2);\r\n }\r\n else if (hashIndex1 > -1) {\r\n return hashString.substring(hashIndex1 + 1);\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Parses query string from given string. Returns empty string if no query symbol is found.\r\n * @param queryString\r\n */\r\n UrlString.parseQueryString = function (queryString) {\r\n var queryIndex1 = queryString.indexOf(\"?\");\r\n var queryIndex2 = queryString.indexOf(\"/?\");\r\n if (queryIndex2 > -1) {\r\n return queryString.substring(queryIndex2 + 2);\r\n }\r\n else if (queryIndex1 > -1) {\r\n return queryString.substring(queryIndex1 + 1);\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n UrlString.constructAuthorityUriFromObject = function (urlObject) {\r\n return new UrlString(urlObject.Protocol + \"//\" + urlObject.HostNameAndPort + \"/\" + urlObject.PathSegments.join(\"/\"));\r\n };\r\n /**\r\n * Returns URL hash as server auth code response object.\r\n */\r\n UrlString.getDeserializedHash = function (hash) {\r\n // Check if given hash is empty\r\n if (StringUtils.isEmpty(hash)) {\r\n return {};\r\n }\r\n // Strip the # symbol if present\r\n var parsedHash = UrlString.parseHash(hash);\r\n // If # symbol was not present, above will return empty string, so give original hash value\r\n var deserializedHash = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedHash) ? hash : parsedHash);\r\n // Check if deserialization didn't work\r\n if (!deserializedHash) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedHash));\r\n }\r\n return deserializedHash;\r\n };\r\n /**\r\n * Returns URL query string as server auth code response object.\r\n */\r\n UrlString.getDeserializedQueryString = function (query) {\r\n // Check if given query is empty\r\n if (StringUtils.isEmpty(query)) {\r\n return {};\r\n }\r\n // Strip the ? symbol if present\r\n var parsedQueryString = UrlString.parseQueryString(query);\r\n // If ? symbol was not present, above will return empty string, so give original query value\r\n var deserializedQueryString = StringUtils.queryStringToObject(StringUtils.isEmpty(parsedQueryString) ? query : parsedQueryString);\r\n // Check if deserialization didn't work\r\n if (!deserializedQueryString) {\r\n throw ClientAuthError.createHashNotDeserializedError(JSON.stringify(deserializedQueryString));\r\n }\r\n return deserializedQueryString;\r\n };\r\n /**\r\n * Check if the hash of the URL string contains known properties\r\n */\r\n UrlString.hashContainsKnownProperties = function (hash) {\r\n if (StringUtils.isEmpty(hash) || hash.indexOf(\"=\") < 0) {\r\n // Hash doesn't contain key/value pairs\r\n return false;\r\n }\r\n var parameters = UrlString.getDeserializedHash(hash);\r\n return !!(parameters.code ||\r\n parameters.error_description ||\r\n parameters.error ||\r\n parameters.state);\r\n };\r\n return UrlString;\r\n}());\n\nexport { UrlString };\n//# sourceMappingURL=UrlString.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { StringUtils, ProtocolUtils, ClientAuthError, UrlString } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserProtocolUtils = /** @class */ (function () {\r\n function BrowserProtocolUtils() {\r\n }\r\n /**\r\n * Extracts the BrowserStateObject from the state string.\r\n * @param browserCrypto\r\n * @param state\r\n */\r\n BrowserProtocolUtils.extractBrowserRequestState = function (browserCrypto, state) {\r\n if (StringUtils.isEmpty(state)) {\r\n return null;\r\n }\r\n try {\r\n var requestStateObj = ProtocolUtils.parseRequestState(browserCrypto, state);\r\n return requestStateObj.libraryState.meta;\r\n }\r\n catch (e) {\r\n throw ClientAuthError.createInvalidStateError(state, e);\r\n }\r\n };\r\n /**\r\n * Parses properties of server response from url hash\r\n * @param locationHash Hash from url\r\n */\r\n BrowserProtocolUtils.parseServerResponseFromHash = function (locationHash) {\r\n if (!locationHash) {\r\n return {};\r\n }\r\n var hashUrlString = new UrlString(locationHash);\r\n return UrlString.getDeserializedHash(hashUrlString.getHash());\r\n };\r\n return BrowserProtocolUtils;\r\n}());\n\nexport { BrowserProtocolUtils };\n//# sourceMappingURL=BrowserProtocolUtils.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator, __spread } from '../_virtual/_tslib.js';\nimport { CredentialType, RefreshTokenEntity, CacheManager, AccessTokenEntity, IdTokenEntity, AccountEntity, ClientAuthError, AppMetadataEntity, ServerTelemetryEntity, AuthorityMetadataEntity, Constants, PersistentCacheKeys, ThrottlingEntity, StringUtils, ProtocolUtils, CcsCredentialType, IdToken, DEFAULT_CRYPTO_IMPLEMENTATION } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserCacheLocation, StaticCacheKeys, InMemoryCacheKeys, TemporaryCacheKeys } from '../utils/BrowserConstants.js';\nimport { BrowserStorage } from './BrowserStorage.js';\nimport { MemoryStorage } from './MemoryStorage.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the cache storage interface for MSAL through browser local or session storage.\r\n * Cookies are only used if storeAuthStateInCookie is true, and are only used for\r\n * parameters such as state and nonce, generally.\r\n */\r\nvar BrowserCacheManager = /** @class */ (function (_super) {\r\n __extends(BrowserCacheManager, _super);\r\n function BrowserCacheManager(clientId, cacheConfig, cryptoImpl, logger) {\r\n var _this = _super.call(this, clientId, cryptoImpl, logger) || this;\r\n // Cookie life calculation (hours * minutes * seconds * ms)\r\n _this.COOKIE_LIFE_MULTIPLIER = 24 * 60 * 60 * 1000;\r\n _this.cacheConfig = cacheConfig;\r\n _this.logger = logger;\r\n _this.internalStorage = new MemoryStorage();\r\n _this.browserStorage = _this.setupBrowserStorage(_this.cacheConfig.cacheLocation);\r\n _this.temporaryCacheStorage = _this.setupTemporaryCacheStorage(_this.cacheConfig.temporaryCacheLocation, _this.cacheConfig.cacheLocation);\r\n // Migrate cache entries from older versions of MSAL.\r\n if (cacheConfig.cacheMigrationEnabled) {\r\n _this.migrateCacheEntries();\r\n _this.createKeyMaps();\r\n }\r\n return _this;\r\n }\r\n /**\r\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured cacheLocation.\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupBrowserStorage = function (cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n return new BrowserStorage(cacheLocation);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n break;\r\n }\r\n }\r\n this.cacheConfig.cacheLocation = BrowserCacheLocation.MemoryStorage;\r\n return new MemoryStorage();\r\n };\r\n /**\r\n * Returns a window storage class implementing the IWindowStorage interface that corresponds to the configured temporaryCacheLocation.\r\n * @param temporaryCacheLocation\r\n * @param cacheLocation\r\n */\r\n BrowserCacheManager.prototype.setupTemporaryCacheStorage = function (temporaryCacheLocation, cacheLocation) {\r\n switch (cacheLocation) {\r\n case BrowserCacheLocation.LocalStorage:\r\n case BrowserCacheLocation.SessionStorage:\r\n try {\r\n /*\r\n * When users do not explicitly choose their own temporaryCacheLocation,\r\n * temporary cache items will always be stored in session storage to mitigate problems caused by multiple tabs\r\n */\r\n return new BrowserStorage(temporaryCacheLocation || BrowserCacheLocation.SessionStorage);\r\n }\r\n catch (e) {\r\n this.logger.verbose(e);\r\n return this.internalStorage;\r\n }\r\n case BrowserCacheLocation.MemoryStorage:\r\n default:\r\n return this.internalStorage;\r\n }\r\n };\r\n /**\r\n * Migrate all old cache entries to new schema. No rollback supported.\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntries = function () {\r\n var _this = this;\r\n var idTokenKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ID_TOKEN;\r\n var clientInfoKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.CLIENT_INFO;\r\n var errorKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR;\r\n var errorDescKey = Constants.CACHE_PREFIX + \".\" + PersistentCacheKeys.ERROR_DESC;\r\n var idTokenValue = this.browserStorage.getItem(idTokenKey);\r\n var clientInfoValue = this.browserStorage.getItem(clientInfoKey);\r\n var errorValue = this.browserStorage.getItem(errorKey);\r\n var errorDescValue = this.browserStorage.getItem(errorDescKey);\r\n var values = [idTokenValue, clientInfoValue, errorValue, errorDescValue];\r\n var keysToMigrate = [PersistentCacheKeys.ID_TOKEN, PersistentCacheKeys.CLIENT_INFO, PersistentCacheKeys.ERROR, PersistentCacheKeys.ERROR_DESC];\r\n keysToMigrate.forEach(function (cacheKey, index) { return _this.migrateCacheEntry(cacheKey, values[index]); });\r\n };\r\n /**\r\n * Utility function to help with migration.\r\n * @param newKey\r\n * @param value\r\n * @param storeAuthStateInCookie\r\n */\r\n BrowserCacheManager.prototype.migrateCacheEntry = function (newKey, value) {\r\n if (value) {\r\n this.setTemporaryCache(newKey, value, true);\r\n }\r\n };\r\n /**\r\n * Searches all cache entries for MSAL accounts and creates the account key map\r\n * This is used to migrate users from older versions of MSAL which did not create the map.\r\n * @returns\r\n */\r\n BrowserCacheManager.prototype.createKeyMaps = function () {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager - createKeyMaps called.\");\r\n var accountKeys = this.getItem(StaticCacheKeys.ACCOUNT_KEYS);\r\n var tokenKeys = this.getItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId);\r\n if (accountKeys && tokenKeys) {\r\n this.logger.verbose(\"BrowserCacheManager:createKeyMaps - account and token key maps already exist, skipping migration.\");\r\n // Key maps already exist, no need to iterate through cache\r\n return;\r\n }\r\n var allKeys = this.browserStorage.getKeys();\r\n allKeys.forEach(function (key) {\r\n if (_this.isCredentialKey(key)) {\r\n // Get item, parse, validate and write key to map\r\n var value = _this.getItem(key);\r\n if (value) {\r\n var credObj = _this.validateAndParseJson(value);\r\n if (credObj && credObj.hasOwnProperty(\"credentialType\")) {\r\n switch (credObj[\"credentialType\"]) {\r\n case CredentialType.ID_TOKEN:\r\n if (IdTokenEntity.isIdTokenEntity(credObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - idToken found, saving key to token key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - idToken with key: \" + key + \" found, saving key to token key map\");\r\n var idTokenEntity = CacheManager.toObject(new IdTokenEntity(), credObj);\r\n var newKey = _this.updateCredentialCacheKey(key, idTokenEntity);\r\n _this.addTokenKey(newKey, CredentialType.ID_TOKEN);\r\n return;\r\n }\r\n else {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - key found matching idToken schema with value containing idToken credentialType field but value failed IdTokenEntity validation, skipping.\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - failed idToken validation on key: \" + key);\r\n }\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n case CredentialType.ACCESS_TOKEN_WITH_AUTH_SCHEME:\r\n if (AccessTokenEntity.isAccessTokenEntity(credObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - accessToken found, saving key to token key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - accessToken with key: \" + key + \" found, saving key to token key map\");\r\n var accessTokenEntity = CacheManager.toObject(new AccessTokenEntity(), credObj);\r\n var newKey = _this.updateCredentialCacheKey(key, accessTokenEntity);\r\n _this.addTokenKey(newKey, CredentialType.ACCESS_TOKEN);\r\n return;\r\n }\r\n else {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - key found matching accessToken schema with value containing accessToken credentialType field but value failed AccessTokenEntity validation, skipping.\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - failed accessToken validation on key: \" + key);\r\n }\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n if (RefreshTokenEntity.isRefreshTokenEntity(credObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - refreshToken found, saving key to token key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - refreshToken with key: \" + key + \" found, saving key to token key map\");\r\n var refreshTokenEntity = CacheManager.toObject(new RefreshTokenEntity(), credObj);\r\n var newKey = _this.updateCredentialCacheKey(key, refreshTokenEntity);\r\n _this.addTokenKey(newKey, CredentialType.REFRESH_TOKEN);\r\n return;\r\n }\r\n else {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - key found matching refreshToken schema with value containing refreshToken credentialType field but value failed RefreshTokenEntity validation, skipping.\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - failed refreshToken validation on key: \" + key);\r\n }\r\n break;\r\n // If credentialType isn't one of our predefined ones, it may not be an MSAL cache value. Ignore.\r\n }\r\n }\r\n }\r\n }\r\n if (_this.isAccountKey(key)) {\r\n var value = _this.getItem(key);\r\n if (value) {\r\n var accountObj = _this.validateAndParseJson(value);\r\n if (accountObj && AccountEntity.isAccountEntity(accountObj)) {\r\n _this.logger.trace(\"BrowserCacheManager:createKeyMaps - account found, saving key to account key map\");\r\n _this.logger.tracePii(\"BrowserCacheManager:createKeyMaps - account with key: \" + key + \" found, saving key to account key map\");\r\n _this.addAccountKeyToMap(key);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n /**\r\n * Parses passed value as JSON object, JSON.parse() will throw an error.\r\n * @param input\r\n */\r\n BrowserCacheManager.prototype.validateAndParseJson = function (jsonValue) {\r\n try {\r\n var parsedJson = JSON.parse(jsonValue);\r\n /**\r\n * There are edge cases in which JSON.parse will successfully parse a non-valid JSON object\r\n * (e.g. JSON.parse will parse an escaped string into an unescaped string), so adding a type check\r\n * of the parsed value is necessary in order to be certain that the string represents a valid JSON object.\r\n *\r\n */\r\n return (parsedJson && typeof parsedJson === \"object\") ? parsedJson : null;\r\n }\r\n catch (error) {\r\n return null;\r\n }\r\n };\r\n /**\r\n * fetches the entry from the browser storage based off the key\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getItem = function (key) {\r\n return this.browserStorage.getItem(key);\r\n };\r\n /**\r\n * sets the entry in the browser storage\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setItem = function (key, value) {\r\n this.browserStorage.setItem(key, value);\r\n };\r\n /**\r\n * fetch the account entity from the platform cache\r\n * @param accountKey\r\n */\r\n BrowserCacheManager.prototype.getAccount = function (accountKey) {\r\n this.logger.trace(\"BrowserCacheManager.getAccount called\");\r\n var account = this.getItem(accountKey);\r\n if (!account) {\r\n this.removeAccountKeyFromMap(accountKey);\r\n return null;\r\n }\r\n var parsedAccount = this.validateAndParseJson(account);\r\n if (!parsedAccount || !AccountEntity.isAccountEntity(parsedAccount)) {\r\n this.removeAccountKeyFromMap(accountKey);\r\n return null;\r\n }\r\n return CacheManager.toObject(new AccountEntity(), parsedAccount);\r\n };\r\n /**\r\n * set account entity in the platform cache\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setAccount = function (account) {\r\n this.logger.trace(\"BrowserCacheManager.setAccount called\");\r\n var key = account.generateAccountKey();\r\n this.setItem(key, JSON.stringify(account));\r\n this.addAccountKeyToMap(key);\r\n };\r\n /**\r\n * Returns the array of account keys currently cached\r\n * @returns\r\n */\r\n BrowserCacheManager.prototype.getAccountKeys = function () {\r\n this.logger.trace(\"BrowserCacheManager.getAccountKeys called\");\r\n var accountKeys = this.getItem(StaticCacheKeys.ACCOUNT_KEYS);\r\n if (accountKeys) {\r\n return JSON.parse(accountKeys);\r\n }\r\n this.logger.verbose(\"BrowserCacheManager.getAccountKeys - No account keys found\");\r\n return [];\r\n };\r\n /**\r\n * Add a new account to the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.addAccountKeyToMap = function (key) {\r\n this.logger.trace(\"BrowserCacheManager.addAccountKeyToMap called\");\r\n this.logger.tracePii(\"BrowserCacheManager.addAccountKeyToMap called with key: \" + key);\r\n var accountKeys = this.getAccountKeys();\r\n if (accountKeys.indexOf(key) === -1) {\r\n // Only add key if it does not already exist in the map\r\n accountKeys.push(key);\r\n this.setItem(StaticCacheKeys.ACCOUNT_KEYS, JSON.stringify(accountKeys));\r\n this.logger.verbose(\"BrowserCacheManager.addAccountKeyToMap account key added\");\r\n }\r\n else {\r\n this.logger.verbose(\"BrowserCacheManager.addAccountKeyToMap account key already exists in map\");\r\n }\r\n };\r\n /**\r\n * Remove an account from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeAccountKeyFromMap = function (key) {\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap called\");\r\n this.logger.tracePii(\"BrowserCacheManager.removeAccountKeyFromMap called with key: \" + key);\r\n var accountKeys = this.getAccountKeys();\r\n var removalIndex = accountKeys.indexOf(key);\r\n if (removalIndex > -1) {\r\n accountKeys.splice(removalIndex, 1);\r\n this.setItem(StaticCacheKeys.ACCOUNT_KEYS, JSON.stringify(accountKeys));\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap account key removed\");\r\n }\r\n else {\r\n this.logger.trace(\"BrowserCacheManager.removeAccountKeyFromMap key not found in existing map\");\r\n }\r\n };\r\n /**\r\n * Extends inherited removeAccount function to include removal of the account key from the map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeAccount = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n _super.prototype.removeAccount.call(this, key);\r\n this.removeAccountKeyFromMap(key);\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Removes given idToken from the cache and from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeIdToken = function (key) {\r\n _super.prototype.removeIdToken.call(this, key);\r\n this.removeTokenKey(key, CredentialType.ID_TOKEN);\r\n };\r\n /**\r\n * Removes given accessToken from the cache and from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeAccessToken = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n _super.prototype.removeAccessToken.call(this, key);\r\n this.removeTokenKey(key, CredentialType.ACCESS_TOKEN);\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Removes given refreshToken from the cache and from the key map\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeRefreshToken = function (key) {\r\n _super.prototype.removeRefreshToken.call(this, key);\r\n this.removeTokenKey(key, CredentialType.REFRESH_TOKEN);\r\n };\r\n /**\r\n * Gets the keys for the cached tokens associated with this clientId\r\n * @returns\r\n */\r\n BrowserCacheManager.prototype.getTokenKeys = function () {\r\n this.logger.trace(\"BrowserCacheManager.getTokenKeys called\");\r\n var item = this.getItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId);\r\n if (item) {\r\n var tokenKeys = this.validateAndParseJson(item);\r\n if (tokenKeys &&\r\n tokenKeys.hasOwnProperty(\"idToken\") &&\r\n tokenKeys.hasOwnProperty(\"accessToken\") &&\r\n tokenKeys.hasOwnProperty(\"refreshToken\")) {\r\n return tokenKeys;\r\n }\r\n else {\r\n this.logger.error(\"BrowserCacheManager.getTokenKeys - Token keys found but in an unknown format. Returning empty key map.\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"BrowserCacheManager.getTokenKeys - No token keys found\");\r\n }\r\n return {\r\n idToken: [],\r\n accessToken: [],\r\n refreshToken: []\r\n };\r\n };\r\n /**\r\n * Adds the given key to the token key map\r\n * @param key\r\n * @param type\r\n */\r\n BrowserCacheManager.prototype.addTokenKey = function (key, type) {\r\n this.logger.trace(\"BrowserCacheManager addTokenKey called\");\r\n var tokenKeys = this.getTokenKeys();\r\n switch (type) {\r\n case CredentialType.ID_TOKEN:\r\n if (tokenKeys.idToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - idToken added to map\");\r\n tokenKeys.idToken.push(key);\r\n }\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n if (tokenKeys.accessToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - accessToken added to map\");\r\n tokenKeys.accessToken.push(key);\r\n }\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n if (tokenKeys.refreshToken.indexOf(key) === -1) {\r\n this.logger.info(\"BrowserCacheManager: addTokenKey - refreshToken added to map\");\r\n tokenKeys.refreshToken.push(key);\r\n }\r\n break;\r\n default:\r\n this.logger.error(\"BrowserCacheManager:addTokenKey - CredentialType provided invalid. CredentialType: \" + type);\r\n ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n this.setItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId, JSON.stringify(tokenKeys));\r\n };\r\n /**\r\n * Removes the given key from the token key map\r\n * @param key\r\n * @param type\r\n */\r\n BrowserCacheManager.prototype.removeTokenKey = function (key, type) {\r\n this.logger.trace(\"BrowserCacheManager removeTokenKey called\");\r\n var tokenKeys = this.getTokenKeys();\r\n switch (type) {\r\n case CredentialType.ID_TOKEN:\r\n this.logger.infoPii(\"BrowserCacheManager: removeTokenKey - attempting to remove idToken with key: \" + key + \" from map\");\r\n var idRemoval = tokenKeys.idToken.indexOf(key);\r\n if (idRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - idToken removed from map\");\r\n tokenKeys.idToken.splice(idRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - idToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n case CredentialType.ACCESS_TOKEN:\r\n this.logger.infoPii(\"BrowserCacheManager: removeTokenKey - attempting to remove accessToken with key: \" + key + \" from map\");\r\n var accessRemoval = tokenKeys.accessToken.indexOf(key);\r\n if (accessRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - accessToken removed from map\");\r\n tokenKeys.accessToken.splice(accessRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - accessToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n case CredentialType.REFRESH_TOKEN:\r\n this.logger.infoPii(\"BrowserCacheManager: removeTokenKey - attempting to remove refreshToken with key: \" + key + \" from map\");\r\n var refreshRemoval = tokenKeys.refreshToken.indexOf(key);\r\n if (refreshRemoval > -1) {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - refreshToken removed from map\");\r\n tokenKeys.refreshToken.splice(refreshRemoval, 1);\r\n }\r\n else {\r\n this.logger.info(\"BrowserCacheManager: removeTokenKey - refreshToken does not exist in map. Either it was previously removed or it was never added.\");\r\n }\r\n break;\r\n default:\r\n this.logger.error(\"BrowserCacheManager:removeTokenKey - CredentialType provided invalid. CredentialType: \" + type);\r\n ClientAuthError.createUnexpectedCredentialTypeError();\r\n }\r\n this.setItem(StaticCacheKeys.TOKEN_KEYS + \".\" + this.clientId, JSON.stringify(tokenKeys));\r\n };\r\n /**\r\n * generates idToken entity from a string\r\n * @param idTokenKey\r\n */\r\n BrowserCacheManager.prototype.getIdTokenCredential = function (idTokenKey) {\r\n var value = this.getItem(idTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n return null;\r\n }\r\n var parsedIdToken = this.validateAndParseJson(value);\r\n if (!parsedIdToken || !IdTokenEntity.isIdTokenEntity(parsedIdToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getIdTokenCredential: cache hit\");\r\n return CacheManager.toObject(new IdTokenEntity(), parsedIdToken);\r\n };\r\n /**\r\n * set IdToken credential to the platform cache\r\n * @param idToken\r\n */\r\n BrowserCacheManager.prototype.setIdTokenCredential = function (idToken) {\r\n this.logger.trace(\"BrowserCacheManager.setIdTokenCredential called\");\r\n var idTokenKey = idToken.generateCredentialKey();\r\n this.setItem(idTokenKey, JSON.stringify(idToken));\r\n this.addTokenKey(idTokenKey, CredentialType.ID_TOKEN);\r\n };\r\n /**\r\n * generates accessToken entity from a string\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getAccessTokenCredential = function (accessTokenKey) {\r\n var value = this.getItem(accessTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n return null;\r\n }\r\n var parsedAccessToken = this.validateAndParseJson(value);\r\n if (!parsedAccessToken || !AccessTokenEntity.isAccessTokenEntity(parsedAccessToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAccessTokenCredential: cache hit\");\r\n return CacheManager.toObject(new AccessTokenEntity(), parsedAccessToken);\r\n };\r\n /**\r\n * set accessToken credential to the platform cache\r\n * @param accessToken\r\n */\r\n BrowserCacheManager.prototype.setAccessTokenCredential = function (accessToken) {\r\n this.logger.trace(\"BrowserCacheManager.setAccessTokenCredential called\");\r\n var accessTokenKey = accessToken.generateCredentialKey();\r\n this.setItem(accessTokenKey, JSON.stringify(accessToken));\r\n this.addTokenKey(accessTokenKey, CredentialType.ACCESS_TOKEN);\r\n };\r\n /**\r\n * generates refreshToken entity from a string\r\n * @param refreshTokenKey\r\n */\r\n BrowserCacheManager.prototype.getRefreshTokenCredential = function (refreshTokenKey) {\r\n var value = this.getItem(refreshTokenKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n return null;\r\n }\r\n var parsedRefreshToken = this.validateAndParseJson(value);\r\n if (!parsedRefreshToken || !RefreshTokenEntity.isRefreshTokenEntity(parsedRefreshToken)) {\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: called, no cache hit\");\r\n this.removeTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getRefreshTokenCredential: cache hit\");\r\n return CacheManager.toObject(new RefreshTokenEntity(), parsedRefreshToken);\r\n };\r\n /**\r\n * set refreshToken credential to the platform cache\r\n * @param refreshToken\r\n */\r\n BrowserCacheManager.prototype.setRefreshTokenCredential = function (refreshToken) {\r\n this.logger.trace(\"BrowserCacheManager.setRefreshTokenCredential called\");\r\n var refreshTokenKey = refreshToken.generateCredentialKey();\r\n this.setItem(refreshTokenKey, JSON.stringify(refreshToken));\r\n this.addTokenKey(refreshTokenKey, CredentialType.REFRESH_TOKEN);\r\n };\r\n /**\r\n * fetch appMetadata entity from the platform cache\r\n * @param appMetadataKey\r\n */\r\n BrowserCacheManager.prototype.getAppMetadata = function (appMetadataKey) {\r\n var value = this.getItem(appMetadataKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !AppMetadataEntity.isAppMetadataEntity(appMetadataKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getAppMetadata: cache hit\");\r\n return CacheManager.toObject(new AppMetadataEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set appMetadata entity to the platform cache\r\n * @param appMetadata\r\n */\r\n BrowserCacheManager.prototype.setAppMetadata = function (appMetadata) {\r\n this.logger.trace(\"BrowserCacheManager.setAppMetadata called\");\r\n var appMetadataKey = appMetadata.generateAppMetadataKey();\r\n this.setItem(appMetadataKey, JSON.stringify(appMetadata));\r\n };\r\n /**\r\n * fetch server telemetry entity from the platform cache\r\n * @param serverTelemetryKey\r\n */\r\n BrowserCacheManager.prototype.getServerTelemetry = function (serverTelemetryKey) {\r\n var value = this.getItem(serverTelemetryKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (!parsedMetadata || !ServerTelemetryEntity.isServerTelemetryEntity(serverTelemetryKey, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getServerTelemetry: cache hit\");\r\n return CacheManager.toObject(new ServerTelemetryEntity(), parsedMetadata);\r\n };\r\n /**\r\n * set server telemetry entity to the platform cache\r\n * @param serverTelemetryKey\r\n * @param serverTelemetry\r\n */\r\n BrowserCacheManager.prototype.setServerTelemetry = function (serverTelemetryKey, serverTelemetry) {\r\n this.logger.trace(\"BrowserCacheManager.setServerTelemetry called\");\r\n this.setItem(serverTelemetryKey, JSON.stringify(serverTelemetry));\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadata = function (key) {\r\n var value = this.internalStorage.getItem(key);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedMetadata = this.validateAndParseJson(value);\r\n if (parsedMetadata && AuthorityMetadataEntity.isAuthorityMetadataEntity(key, parsedMetadata)) {\r\n this.logger.trace(\"BrowserCacheManager.getAuthorityMetadata: cache hit\");\r\n return CacheManager.toObject(new AuthorityMetadataEntity(), parsedMetadata);\r\n }\r\n return null;\r\n };\r\n /**\r\n *\r\n */\r\n BrowserCacheManager.prototype.getAuthorityMetadataKeys = function () {\r\n var _this = this;\r\n var allKeys = this.internalStorage.getKeys();\r\n return allKeys.filter(function (key) {\r\n return _this.isAuthorityMetadata(key);\r\n });\r\n };\r\n /**\r\n * Sets wrapper metadata in memory\r\n * @param wrapperSKU\r\n * @param wrapperVersion\r\n */\r\n BrowserCacheManager.prototype.setWrapperMetadata = function (wrapperSKU, wrapperVersion) {\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_SKU, wrapperSKU);\r\n this.internalStorage.setItem(InMemoryCacheKeys.WRAPPER_VER, wrapperVersion);\r\n };\r\n /**\r\n * Returns wrapper metadata from in-memory storage\r\n */\r\n BrowserCacheManager.prototype.getWrapperMetadata = function () {\r\n var sku = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_SKU) || Constants.EMPTY_STRING;\r\n var version = this.internalStorage.getItem(InMemoryCacheKeys.WRAPPER_VER) || Constants.EMPTY_STRING;\r\n return [sku, version];\r\n };\r\n /**\r\n *\r\n * @param entity\r\n */\r\n BrowserCacheManager.prototype.setAuthorityMetadata = function (key, entity) {\r\n this.logger.trace(\"BrowserCacheManager.setAuthorityMetadata called\");\r\n this.internalStorage.setItem(key, JSON.stringify(entity));\r\n };\r\n /**\r\n * Gets the active account\r\n */\r\n BrowserCacheManager.prototype.getActiveAccount = function () {\r\n var activeAccountKeyFilters = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS);\r\n var activeAccountValueFilters = this.getItem(activeAccountKeyFilters);\r\n if (!activeAccountValueFilters) {\r\n // if new active account cache type isn't found, it's an old version, so look for that instead\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account filters cache schema found, looking for legacy schema\");\r\n var activeAccountKeyLocal = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\r\n var activeAccountValueLocal = this.getItem(activeAccountKeyLocal);\r\n if (!activeAccountValueLocal) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account found\");\r\n return null;\r\n }\r\n var activeAccount = this.getAccountInfoByFilter({ localAccountId: activeAccountValueLocal })[0] || null;\r\n if (activeAccount) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Legacy active account cache schema found\");\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Adding active account filters cache schema\");\r\n this.setActiveAccount(activeAccount);\r\n return activeAccount;\r\n }\r\n return null;\r\n }\r\n var activeAccountValueObj = this.validateAndParseJson(activeAccountValueFilters);\r\n if (activeAccountValueObj) {\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: Active account filters schema found\");\r\n return this.getAccountInfoByFilter({\r\n homeAccountId: activeAccountValueObj.homeAccountId,\r\n localAccountId: activeAccountValueObj.localAccountId\r\n })[0] || null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getActiveAccount: No active account found\");\r\n return null;\r\n };\r\n /**\r\n * Sets the active account's localAccountId in cache\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.setActiveAccount = function (account) {\r\n var activeAccountKey = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT_FILTERS);\r\n var activeAccountKeyLocal = this.generateCacheKey(PersistentCacheKeys.ACTIVE_ACCOUNT);\r\n if (account) {\r\n this.logger.verbose(\"setActiveAccount: Active account set\");\r\n var activeAccountValue = {\r\n homeAccountId: account.homeAccountId,\r\n localAccountId: account.localAccountId\r\n };\r\n this.browserStorage.setItem(activeAccountKey, JSON.stringify(activeAccountValue));\r\n this.browserStorage.setItem(activeAccountKeyLocal, account.localAccountId);\r\n }\r\n else {\r\n this.logger.verbose(\"setActiveAccount: No account passed, active account not set\");\r\n this.browserStorage.removeItem(activeAccountKey);\r\n this.browserStorage.removeItem(activeAccountKeyLocal);\r\n }\r\n };\r\n /**\r\n * Gets a list of accounts that match all of the filters provided\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.getAccountInfoByFilter = function (accountFilter) {\r\n var allAccounts = this.getAllAccounts();\r\n this.logger.trace(\"BrowserCacheManager.getAccountInfoByFilter: total \" + allAccounts.length + \" accounts found\");\r\n return allAccounts.filter(function (accountObj) {\r\n if (accountFilter.username && accountFilter.username.toLowerCase() !== accountObj.username.toLowerCase()) {\r\n return false;\r\n }\r\n if (accountFilter.homeAccountId && accountFilter.homeAccountId !== accountObj.homeAccountId) {\r\n return false;\r\n }\r\n if (accountFilter.localAccountId && accountFilter.localAccountId !== accountObj.localAccountId) {\r\n return false;\r\n }\r\n if (accountFilter.tenantId && accountFilter.tenantId !== accountObj.tenantId) {\r\n return false;\r\n }\r\n if (accountFilter.environment && accountFilter.environment !== accountObj.environment) {\r\n return false;\r\n }\r\n return true;\r\n });\r\n };\r\n /**\r\n * Checks the cache for accounts matching loginHint or SID\r\n * @param loginHint\r\n * @param sid\r\n */\r\n BrowserCacheManager.prototype.getAccountInfoByHints = function (loginHint, sid) {\r\n var matchingAccounts = this.getAllAccounts().filter(function (accountInfo) {\r\n if (sid) {\r\n var accountSid = accountInfo.idTokenClaims && accountInfo.idTokenClaims[\"sid\"];\r\n return sid === accountSid;\r\n }\r\n if (loginHint) {\r\n return loginHint === accountInfo.username;\r\n }\r\n return false;\r\n });\r\n if (matchingAccounts.length === 1) {\r\n return matchingAccounts[0];\r\n }\r\n else if (matchingAccounts.length > 1) {\r\n throw ClientAuthError.createMultipleMatchingAccountsInCacheError();\r\n }\r\n return null;\r\n };\r\n /**\r\n * fetch throttling entity from the platform cache\r\n * @param throttlingCacheKey\r\n */\r\n BrowserCacheManager.prototype.getThrottlingCache = function (throttlingCacheKey) {\r\n var value = this.getItem(throttlingCacheKey);\r\n if (!value) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n var parsedThrottlingCache = this.validateAndParseJson(value);\r\n if (!parsedThrottlingCache || !ThrottlingEntity.isThrottlingEntity(throttlingCacheKey, parsedThrottlingCache)) {\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: called, no cache hit\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getThrottlingCache: cache hit\");\r\n return CacheManager.toObject(new ThrottlingEntity(), parsedThrottlingCache);\r\n };\r\n /**\r\n * set throttling entity to the platform cache\r\n * @param throttlingCacheKey\r\n * @param throttlingCache\r\n */\r\n BrowserCacheManager.prototype.setThrottlingCache = function (throttlingCacheKey, throttlingCache) {\r\n this.logger.trace(\"BrowserCacheManager.setThrottlingCache called\");\r\n this.setItem(throttlingCacheKey, JSON.stringify(throttlingCache));\r\n };\r\n /**\r\n * Gets cache item with given key.\r\n * Will retrieve from cookies if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.getTemporaryCache = function (cacheKey, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n var itemCookie = this.getItemCookie(key);\r\n if (itemCookie) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: storeAuthStateInCookies set to true, retrieving from cookies\");\r\n return itemCookie;\r\n }\r\n }\r\n var value = this.temporaryCacheStorage.getItem(key);\r\n if (!value) {\r\n // If temp cache item not found in session/memory, check local storage for items set by old versions\r\n if (this.cacheConfig.cacheLocation === BrowserCacheLocation.LocalStorage) {\r\n var item = this.browserStorage.getItem(key);\r\n if (item) {\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item found in local storage\");\r\n return item;\r\n }\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: No cache item found in local storage\");\r\n return null;\r\n }\r\n this.logger.trace(\"BrowserCacheManager.getTemporaryCache: Temporary cache item returned\");\r\n return value;\r\n };\r\n /**\r\n * Sets the cache item with the key and value given.\r\n * Stores in cookie if storeAuthStateInCookie is set to true.\r\n * This can cause cookie overflow if used incorrectly.\r\n * @param key\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setTemporaryCache = function (cacheKey, value, generateKey) {\r\n var key = generateKey ? this.generateCacheKey(cacheKey) : cacheKey;\r\n this.temporaryCacheStorage.setItem(key, value);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.setTemporaryCache: storeAuthStateInCookie set to true, setting item cookie\");\r\n this.setItemCookie(key, value);\r\n }\r\n };\r\n /**\r\n * Removes the cache item with the given key.\r\n * Will also clear the cookie item if storeAuthStateInCookie is set to true.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.removeItem = function (key) {\r\n this.browserStorage.removeItem(key);\r\n this.temporaryCacheStorage.removeItem(key);\r\n if (this.cacheConfig.storeAuthStateInCookie) {\r\n this.logger.trace(\"BrowserCacheManager.removeItem: storeAuthStateInCookie is true, clearing item cookie\");\r\n this.clearItemCookie(key);\r\n }\r\n };\r\n /**\r\n * Checks whether key is in cache.\r\n * @param key\r\n */\r\n BrowserCacheManager.prototype.containsKey = function (key) {\r\n return this.browserStorage.containsKey(key) || this.temporaryCacheStorage.containsKey(key);\r\n };\r\n /**\r\n * Gets all keys in window.\r\n */\r\n BrowserCacheManager.prototype.getKeys = function () {\r\n return __spread(this.browserStorage.getKeys(), this.temporaryCacheStorage.getKeys());\r\n };\r\n /**\r\n * Clears all cache entries created by MSAL.\r\n */\r\n BrowserCacheManager.prototype.clear = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: \r\n // Removes all accounts and their credentials\r\n return [4 /*yield*/, this.removeAllAccounts()];\r\n case 1:\r\n // Removes all accounts and their credentials\r\n _a.sent();\r\n this.removeAppMetadata();\r\n // Removes all remaining MSAL cache items\r\n this.getKeys().forEach(function (cacheKey) {\r\n // Check if key contains msal prefix; For now, we are clearing all the cache items created by MSAL.js\r\n if ((_this.browserStorage.containsKey(cacheKey) || _this.temporaryCacheStorage.containsKey(cacheKey)) && ((cacheKey.indexOf(Constants.CACHE_PREFIX) !== -1) || (cacheKey.indexOf(_this.clientId) !== -1))) {\r\n _this.removeItem(cacheKey);\r\n }\r\n });\r\n this.internalStorage.clear();\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Clears all access tokes that have claims prior to saving the current one\r\n * @param credential\r\n * @returns\r\n */\r\n BrowserCacheManager.prototype.clearTokensAndKeysWithClaims = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var tokenKeys, removedAccessTokens;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"BrowserCacheManager.clearTokensAndKeysWithClaims called\");\r\n tokenKeys = this.getTokenKeys();\r\n removedAccessTokens = [];\r\n tokenKeys.accessToken.forEach(function (key) {\r\n // if the access token has claims in its key, remove the token key and the token\r\n var credential = _this.getAccessTokenCredential(key);\r\n if ((credential === null || credential === void 0 ? void 0 : credential.requestedClaimsHash) && key.includes(credential.requestedClaimsHash.toLowerCase())) {\r\n removedAccessTokens.push(_this.removeAccessToken(key));\r\n }\r\n });\r\n return [4 /*yield*/, Promise.all(removedAccessTokens)];\r\n case 1:\r\n _a.sent();\r\n // warn if any access tokens are removed\r\n if (removedAccessTokens.length > 0) {\r\n this.logger.warning(removedAccessTokens.length + \" access tokens with claims in the cache keys have been removed from the cache.\");\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Add value to cookies\r\n * @param cookieName\r\n * @param cookieValue\r\n * @param expires\r\n */\r\n BrowserCacheManager.prototype.setItemCookie = function (cookieName, cookieValue, expires) {\r\n var cookieStr = encodeURIComponent(cookieName) + \"=\" + encodeURIComponent(cookieValue) + \";path=/;SameSite=Lax;\";\r\n if (expires) {\r\n var expireTime = this.getCookieExpirationTime(expires);\r\n cookieStr += \"expires=\" + expireTime + \";\";\r\n }\r\n if (this.cacheConfig.secureCookies) {\r\n cookieStr += \"Secure;\";\r\n }\r\n document.cookie = cookieStr;\r\n };\r\n /**\r\n * Get one item by key from cookies\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.getItemCookie = function (cookieName) {\r\n var name = encodeURIComponent(cookieName) + \"=\";\r\n var cookieList = document.cookie.split(\";\");\r\n for (var i = 0; i < cookieList.length; i++) {\r\n var cookie = cookieList[i];\r\n while (cookie.charAt(0) === \" \") {\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(name) === 0) {\r\n return decodeURIComponent(cookie.substring(name.length, cookie.length));\r\n }\r\n }\r\n return Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Clear all msal-related cookies currently set in the browser. Should only be used to clear temporary cache items.\r\n */\r\n BrowserCacheManager.prototype.clearMsalCookies = function () {\r\n var _this = this;\r\n var cookiePrefix = Constants.CACHE_PREFIX + \".\" + this.clientId;\r\n var cookieList = document.cookie.split(\";\");\r\n cookieList.forEach(function (cookie) {\r\n while (cookie.charAt(0) === \" \") {\r\n // eslint-disable-next-line no-param-reassign\r\n cookie = cookie.substring(1);\r\n }\r\n if (cookie.indexOf(cookiePrefix) === 0) {\r\n var cookieKey = cookie.split(\"=\")[0];\r\n _this.clearItemCookie(cookieKey);\r\n }\r\n });\r\n };\r\n /**\r\n * Clear an item in the cookies by key\r\n * @param cookieName\r\n */\r\n BrowserCacheManager.prototype.clearItemCookie = function (cookieName) {\r\n this.setItemCookie(cookieName, Constants.EMPTY_STRING, -1);\r\n };\r\n /**\r\n * Get cookie expiration time\r\n * @param cookieLifeDays\r\n */\r\n BrowserCacheManager.prototype.getCookieExpirationTime = function (cookieLifeDays) {\r\n var today = new Date();\r\n var expr = new Date(today.getTime() + cookieLifeDays * this.COOKIE_LIFE_MULTIPLIER);\r\n return expr.toUTCString();\r\n };\r\n /**\r\n * Gets the cache object referenced by the browser\r\n */\r\n BrowserCacheManager.prototype.getCache = function () {\r\n return this.browserStorage;\r\n };\r\n /**\r\n * interface compat, we cannot overwrite browser cache; Functionality is supported by individual entities in browser\r\n */\r\n BrowserCacheManager.prototype.setCache = function () {\r\n // sets nothing\r\n };\r\n /**\r\n * Prepend msal. to each key; Skip for any JSON object as Key (defined schemas do not need the key appended: AccessToken Keys or the upcoming schema)\r\n * @param key\r\n * @param addInstanceId\r\n */\r\n BrowserCacheManager.prototype.generateCacheKey = function (key) {\r\n var generatedKey = this.validateAndParseJson(key);\r\n if (!generatedKey) {\r\n if (StringUtils.startsWith(key, Constants.CACHE_PREFIX) || StringUtils.startsWith(key, PersistentCacheKeys.ADAL_ID_TOKEN)) {\r\n return key;\r\n }\r\n return Constants.CACHE_PREFIX + \".\" + this.clientId + \".\" + key;\r\n }\r\n return JSON.stringify(key);\r\n };\r\n /**\r\n * Create authorityKey to cache authority\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateAuthorityKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.AUTHORITY + \".\" + stateId);\r\n };\r\n /**\r\n * Create Nonce key to cache nonce\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.generateNonceKey = function (stateString) {\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.NONCE_IDTOKEN + \".\" + stateId);\r\n };\r\n /**\r\n * Creates full cache key for the request state\r\n * @param stateString State string for the request\r\n */\r\n BrowserCacheManager.prototype.generateStateKey = function (stateString) {\r\n // Use the library state id to key temp storage for uniqueness for multiple concurrent requests\r\n var stateId = ProtocolUtils.parseRequestState(this.cryptoImpl, stateString).libraryState.id;\r\n return this.generateCacheKey(TemporaryCacheKeys.REQUEST_STATE + \".\" + stateId);\r\n };\r\n /**\r\n * Gets the cached authority based on the cached state. Returns empty if no cached state found.\r\n */\r\n BrowserCacheManager.prototype.getCachedAuthority = function (cachedState) {\r\n var stateCacheKey = this.generateStateKey(cachedState);\r\n var state = this.getTemporaryCache(stateCacheKey);\r\n if (!state) {\r\n return null;\r\n }\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n return this.getTemporaryCache(authorityCacheKey);\r\n };\r\n /**\r\n * Updates account, authority, and state in cache\r\n * @param serverAuthenticationRequest\r\n * @param account\r\n */\r\n BrowserCacheManager.prototype.updateCacheEntries = function (state, nonce, authorityInstance, loginHint, account) {\r\n this.logger.trace(\"BrowserCacheManager.updateCacheEntries called\");\r\n // Cache the request state\r\n var stateCacheKey = this.generateStateKey(state);\r\n this.setTemporaryCache(stateCacheKey, state, false);\r\n // Cache the nonce\r\n var nonceCacheKey = this.generateNonceKey(state);\r\n this.setTemporaryCache(nonceCacheKey, nonce, false);\r\n // Cache authorityKey\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n this.setTemporaryCache(authorityCacheKey, authorityInstance, false);\r\n if (account) {\r\n var ccsCredential = {\r\n credential: account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n else if (!StringUtils.isEmpty(loginHint)) {\r\n var ccsCredential = {\r\n credential: loginHint,\r\n type: CcsCredentialType.UPN\r\n };\r\n this.setTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, JSON.stringify(ccsCredential), true);\r\n }\r\n };\r\n /**\r\n * Reset all temporary cache items\r\n * @param state\r\n */\r\n BrowserCacheManager.prototype.resetRequestCache = function (state) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.resetRequestCache called\");\r\n // check state and remove associated cache items\r\n if (!StringUtils.isEmpty(state)) {\r\n this.getKeys().forEach(function (key) {\r\n if (key.indexOf(state) !== -1) {\r\n _this.removeItem(key);\r\n }\r\n });\r\n }\r\n // delete generic interactive request parameters\r\n if (state) {\r\n this.removeItem(this.generateStateKey(state));\r\n this.removeItem(this.generateNonceKey(state));\r\n this.removeItem(this.generateAuthorityKey(state));\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.ORIGIN_URI));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CORRELATION_ID));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.CCS_CREDENTIAL));\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.NATIVE_REQUEST));\r\n this.setInteractionInProgress(false);\r\n };\r\n /**\r\n * Removes temporary cache for the provided state\r\n * @param stateString\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByState = function (stateString) {\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByState called\");\r\n // Interaction is completed - remove interaction status.\r\n if (stateString) {\r\n var stateKey = this.generateStateKey(stateString);\r\n var cachedState = this.temporaryCacheStorage.getItem(stateKey);\r\n this.logger.infoPii(\"BrowserCacheManager.cleanRequestByState: Removing temporary cache items for state: \" + cachedState);\r\n this.resetRequestCache(cachedState || Constants.EMPTY_STRING);\r\n }\r\n this.clearMsalCookies();\r\n };\r\n /**\r\n * Looks in temporary cache for any state values with the provided interactionType and removes all temporary cache items for that state\r\n * Used in scenarios where temp cache needs to be cleaned but state is not known, such as clicking browser back button.\r\n * @param interactionType\r\n */\r\n BrowserCacheManager.prototype.cleanRequestByInteractionType = function (interactionType) {\r\n var _this = this;\r\n this.logger.trace(\"BrowserCacheManager.cleanRequestByInteractionType called\");\r\n // Loop through all keys to find state key\r\n this.getKeys().forEach(function (key) {\r\n // If this key is not the state key, move on\r\n if (key.indexOf(TemporaryCacheKeys.REQUEST_STATE) === -1) {\r\n return;\r\n }\r\n // Retrieve state value, return if not a valid value\r\n var stateValue = _this.temporaryCacheStorage.getItem(key);\r\n if (!stateValue) {\r\n return;\r\n }\r\n // Extract state and ensure it matches given InteractionType, then clean request cache\r\n var parsedState = BrowserProtocolUtils.extractBrowserRequestState(_this.cryptoImpl, stateValue);\r\n if (parsedState && parsedState.interactionType === interactionType) {\r\n _this.logger.infoPii(\"BrowserCacheManager.cleanRequestByInteractionType: Removing temporary cache items for state: \" + stateValue);\r\n _this.resetRequestCache(stateValue);\r\n }\r\n });\r\n this.clearMsalCookies();\r\n this.setInteractionInProgress(false);\r\n };\r\n BrowserCacheManager.prototype.cacheCodeRequest = function (authCodeRequest, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.cacheCodeRequest called\");\r\n var encodedValue = browserCrypto.base64Encode(JSON.stringify(authCodeRequest));\r\n this.setTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, encodedValue, true);\r\n };\r\n /**\r\n * Gets the token exchange parameters from the cache. Throws an error if nothing is found.\r\n */\r\n BrowserCacheManager.prototype.getCachedRequest = function (state, browserCrypto) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedRequest called\");\r\n // Get token request from cache and parse as TokenExchangeParameters.\r\n var encodedTokenRequest = this.getTemporaryCache(TemporaryCacheKeys.REQUEST_PARAMS, true);\r\n if (!encodedTokenRequest) {\r\n throw BrowserAuthError.createNoTokenRequestCacheError();\r\n }\r\n var parsedRequest = this.validateAndParseJson(browserCrypto.base64Decode(encodedTokenRequest));\r\n if (!parsedRequest) {\r\n throw BrowserAuthError.createUnableToParseTokenRequestCacheError();\r\n }\r\n this.removeItem(this.generateCacheKey(TemporaryCacheKeys.REQUEST_PARAMS));\r\n // Get cached authority and use if no authority is cached with request.\r\n if (StringUtils.isEmpty(parsedRequest.authority)) {\r\n var authorityCacheKey = this.generateAuthorityKey(state);\r\n var cachedAuthority = this.getTemporaryCache(authorityCacheKey);\r\n if (!cachedAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n parsedRequest.authority = cachedAuthority;\r\n }\r\n return parsedRequest;\r\n };\r\n /**\r\n * Gets cached native request for redirect flows\r\n */\r\n BrowserCacheManager.prototype.getCachedNativeRequest = function () {\r\n this.logger.trace(\"BrowserCacheManager.getCachedNativeRequest called\");\r\n var cachedRequest = this.getTemporaryCache(TemporaryCacheKeys.NATIVE_REQUEST, true);\r\n if (!cachedRequest) {\r\n this.logger.trace(\"BrowserCacheManager.getCachedNativeRequest: No cached native request found\");\r\n return null;\r\n }\r\n var parsedRequest = this.validateAndParseJson(cachedRequest);\r\n if (!parsedRequest) {\r\n this.logger.error(\"BrowserCacheManager.getCachedNativeRequest: Unable to parse native request\");\r\n return null;\r\n }\r\n return parsedRequest;\r\n };\r\n BrowserCacheManager.prototype.isInteractionInProgress = function (matchClientId) {\r\n var clientId = this.getInteractionInProgress();\r\n if (matchClientId) {\r\n return clientId === this.clientId;\r\n }\r\n else {\r\n return !!clientId;\r\n }\r\n };\r\n BrowserCacheManager.prototype.getInteractionInProgress = function () {\r\n var key = Constants.CACHE_PREFIX + \".\" + TemporaryCacheKeys.INTERACTION_STATUS_KEY;\r\n return this.getTemporaryCache(key, false);\r\n };\r\n BrowserCacheManager.prototype.setInteractionInProgress = function (inProgress) {\r\n // Ensure we don't overwrite interaction in progress for a different clientId\r\n var key = Constants.CACHE_PREFIX + \".\" + TemporaryCacheKeys.INTERACTION_STATUS_KEY;\r\n if (inProgress) {\r\n if (this.getInteractionInProgress()) {\r\n throw BrowserAuthError.createInteractionInProgressError();\r\n }\r\n else {\r\n // No interaction is in progress\r\n this.setTemporaryCache(key, this.clientId, false);\r\n }\r\n }\r\n else if (!inProgress && this.getInteractionInProgress() === this.clientId) {\r\n this.removeItem(key);\r\n }\r\n };\r\n /**\r\n * Returns username retrieved from ADAL or MSAL v1 idToken\r\n */\r\n BrowserCacheManager.prototype.getLegacyLoginHint = function () {\r\n // Only check for adal/msal token if no SSO params are being used\r\n var adalIdTokenString = this.getTemporaryCache(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n if (adalIdTokenString) {\r\n this.browserStorage.removeItem(PersistentCacheKeys.ADAL_ID_TOKEN);\r\n this.logger.verbose(\"Cached ADAL id token retrieved.\");\r\n }\r\n // Check for cached MSAL v1 id token\r\n var msalIdTokenString = this.getTemporaryCache(PersistentCacheKeys.ID_TOKEN, true);\r\n if (msalIdTokenString) {\r\n this.removeItem(this.generateCacheKey(PersistentCacheKeys.ID_TOKEN));\r\n this.logger.verbose(\"Cached MSAL.js v1 id token retrieved\");\r\n }\r\n var cachedIdTokenString = msalIdTokenString || adalIdTokenString;\r\n if (cachedIdTokenString) {\r\n var cachedIdToken = new IdToken(cachedIdTokenString, this.cryptoImpl);\r\n if (cachedIdToken.claims && cachedIdToken.claims.preferred_username) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 preferred_username as loginHint\");\r\n return cachedIdToken.claims.preferred_username;\r\n }\r\n else if (cachedIdToken.claims && cachedIdToken.claims.upn) {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, setting ADAL/MSAL v1 upn as loginHint\");\r\n return cachedIdToken.claims.upn;\r\n }\r\n else {\r\n this.logger.verbose(\"No SSO params used and ADAL/MSAL v1 token retrieved, however, no account hint claim found. Enable preferred_username or upn id token claim to get SSO.\");\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Updates a credential's cache key if the current cache key is outdated\r\n */\r\n BrowserCacheManager.prototype.updateCredentialCacheKey = function (currentCacheKey, credential) {\r\n var updatedCacheKey = credential.generateCredentialKey();\r\n if (currentCacheKey !== updatedCacheKey) {\r\n var cacheItem = this.getItem(currentCacheKey);\r\n if (cacheItem) {\r\n this.removeItem(currentCacheKey);\r\n this.setItem(updatedCacheKey, cacheItem);\r\n this.logger.verbose(\"Updated an outdated \" + credential.credentialType + \" cache key\");\r\n return updatedCacheKey;\r\n }\r\n else {\r\n this.logger.error(\"Attempted to update an outdated \" + credential.credentialType + \" cache key but no item matching the outdated key was found in storage\");\r\n }\r\n }\r\n return currentCacheKey;\r\n };\r\n /**\r\n * Returns application id as redirect context during AcquireTokenRedirect flow.\r\n */\r\n BrowserCacheManager.prototype.getRedirectRequestContext = function () {\r\n return this.getTemporaryCache(TemporaryCacheKeys.REDIRECT_CONTEXT, true);\r\n };\r\n /**\r\n * Sets application id as the redirect context during AcquireTokenRedirect flow.\r\n * @param value\r\n */\r\n BrowserCacheManager.prototype.setRedirectRequestContext = function (value) {\r\n this.setTemporaryCache(TemporaryCacheKeys.REDIRECT_CONTEXT, value, true);\r\n };\r\n return BrowserCacheManager;\r\n}(CacheManager));\r\nvar DEFAULT_BROWSER_CACHE_MANAGER = function (clientId, logger) {\r\n var cacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n cacheMigrationEnabled: false,\r\n claimsBasedCachingEnabled: true\r\n };\r\n return new BrowserCacheManager(clientId, cacheOptions, DEFAULT_CRYPTO_IMPLEMENTATION, logger);\r\n};\n\nexport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER };\n//# sourceMappingURL=BrowserCacheManager.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __assign, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { DEFAULT_CRYPTO_IMPLEMENTATION } from '../crypto/ICrypto.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { Logger, LogLevel } from '../logger/Logger.js';\nimport { Constants } from '../utils/Constants.js';\nimport { version } from '../packageMetadata.js';\nimport { AzureCloudInstance } from '../authority/AuthorityOptions.js';\nimport { DefaultStorageClass } from '../cache/CacheManager.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Token renewal offset default in seconds\r\nvar DEFAULT_TOKEN_RENEWAL_OFFSET_SEC = 300;\r\nvar DEFAULT_SYSTEM_OPTIONS = {\r\n tokenRenewalOffsetSeconds: DEFAULT_TOKEN_RENEWAL_OFFSET_SEC,\r\n preventCorsPreflight: false\r\n};\r\nvar DEFAULT_LOGGER_IMPLEMENTATION = {\r\n loggerCallback: function () {\r\n // allow users to not set loggerCallback\r\n },\r\n piiLoggingEnabled: false,\r\n logLevel: LogLevel.Info,\r\n correlationId: Constants.EMPTY_STRING\r\n};\r\nvar DEFAULT_CACHE_OPTIONS = {\r\n claimsBasedCachingEnabled: true\r\n};\r\nvar DEFAULT_NETWORK_IMPLEMENTATION = {\r\n sendGetRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n },\r\n sendPostRequestAsync: function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var notImplErr;\r\n return __generator(this, function (_a) {\r\n notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented\";\r\n throw AuthError.createUnexpectedError(notImplErr);\r\n });\r\n });\r\n }\r\n};\r\nvar DEFAULT_LIBRARY_INFO = {\r\n sku: Constants.SKU,\r\n version: version,\r\n cpu: Constants.EMPTY_STRING,\r\n os: Constants.EMPTY_STRING\r\n};\r\nvar DEFAULT_CLIENT_CREDENTIALS = {\r\n clientSecret: Constants.EMPTY_STRING,\r\n clientAssertion: undefined\r\n};\r\nvar DEFAULT_AZURE_CLOUD_OPTIONS = {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: \"\" + Constants.DEFAULT_COMMON_TENANT\r\n};\r\nvar DEFAULT_TELEMETRY_OPTIONS = {\r\n application: {\r\n appName: \"\",\r\n appVersion: \"\"\r\n }\r\n};\r\n/**\r\n * Function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param Configuration\r\n *\r\n * @returns Configuration\r\n */\r\nfunction buildClientConfiguration(_a) {\r\n var userAuthOptions = _a.authOptions, userSystemOptions = _a.systemOptions, userLoggerOption = _a.loggerOptions, userCacheOptions = _a.cacheOptions, storageImplementation = _a.storageInterface, networkImplementation = _a.networkInterface, cryptoImplementation = _a.cryptoInterface, clientCredentials = _a.clientCredentials, libraryInfo = _a.libraryInfo, telemetry = _a.telemetry, serverTelemetryManager = _a.serverTelemetryManager, persistencePlugin = _a.persistencePlugin, serializableCache = _a.serializableCache;\r\n var loggerOptions = __assign(__assign({}, DEFAULT_LOGGER_IMPLEMENTATION), userLoggerOption);\r\n return {\r\n authOptions: buildAuthOptions(userAuthOptions),\r\n systemOptions: __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), userSystemOptions),\r\n loggerOptions: loggerOptions,\r\n cacheOptions: __assign(__assign({}, DEFAULT_CACHE_OPTIONS), userCacheOptions),\r\n storageInterface: storageImplementation || new DefaultStorageClass(userAuthOptions.clientId, DEFAULT_CRYPTO_IMPLEMENTATION, new Logger(loggerOptions)),\r\n networkInterface: networkImplementation || DEFAULT_NETWORK_IMPLEMENTATION,\r\n cryptoInterface: cryptoImplementation || DEFAULT_CRYPTO_IMPLEMENTATION,\r\n clientCredentials: clientCredentials || DEFAULT_CLIENT_CREDENTIALS,\r\n libraryInfo: __assign(__assign({}, DEFAULT_LIBRARY_INFO), libraryInfo),\r\n telemetry: __assign(__assign({}, DEFAULT_TELEMETRY_OPTIONS), telemetry),\r\n serverTelemetryManager: serverTelemetryManager || null,\r\n persistencePlugin: persistencePlugin || null,\r\n serializableCache: serializableCache || null,\r\n };\r\n}\r\n/**\r\n * Construct authoptions from the client and platform passed values\r\n * @param authOptions\r\n */\r\nfunction buildAuthOptions(authOptions) {\r\n return __assign({ clientCapabilities: [], azureCloudOptions: DEFAULT_AZURE_CLOUD_OPTIONS, skipAuthorityMetadataCache: false }, authOptions);\r\n}\n\nexport { DEFAULT_SYSTEM_OPTIONS, buildClientConfiguration };\n//# sourceMappingURL=ClientConfiguration.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { AuthError } from '../error/AuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar StubbedNetworkModule = {\r\n sendGetRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendGetRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n },\r\n sendPostRequestAsync: function () {\r\n var notImplErr = \"Network interface - sendPostRequestAsync() has not been implemented for the Network interface.\";\r\n return Promise.reject(AuthError.createUnexpectedError(notImplErr));\r\n }\r\n};\n\nexport { StubbedNetworkModule };\n//# sourceMappingURL=INetworkModule.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Constants } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class implements the Fetch API for GET and POST requests. See more here: https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API\r\n */\r\nvar FetchClient = /** @class */ (function () {\r\n function FetchClient() {\r\n }\r\n /**\r\n * Fetch Client for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n _b.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.GET,\r\n headers: this.getFetchHeaders(options)\r\n })];\r\n case 1:\r\n response = _b.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n e_1 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createGetRequestFailedError(e_1, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 3:\r\n _b.trys.push([3, 5, , 6]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 4: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 5:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Fetch Client for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n FetchClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqBody, response, e_3, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n reqBody = (options && options.body) || Constants.EMPTY_STRING;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, fetch(url, {\r\n method: HTTP_REQUEST_TYPE.POST,\r\n headers: this.getFetchHeaders(options),\r\n body: reqBody\r\n })];\r\n case 2:\r\n response = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_3 = _b.sent();\r\n if (window.navigator.onLine) {\r\n throw BrowserAuthError.createPostRequestFailedError(e_3, url);\r\n }\r\n else {\r\n throw BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n case 4:\r\n _b.trys.push([4, 6, , 7]);\r\n _a = {\r\n headers: this.getHeaderDict(response.headers)\r\n };\r\n return [4 /*yield*/, response.json()];\r\n case 5: return [2 /*return*/, (_a.body = (_b.sent()),\r\n _a.status = response.status,\r\n _a)];\r\n case 6:\r\n _b.sent();\r\n throw BrowserAuthError.createFailedToParseNetworkResponseError(url);\r\n case 7: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get Fetch API Headers object from string map\r\n * @param inputHeaders\r\n */\r\n FetchClient.prototype.getFetchHeaders = function (options) {\r\n var headers = new Headers();\r\n if (!(options && options.headers)) {\r\n return headers;\r\n }\r\n var optionsHeaders = options.headers;\r\n Object.keys(optionsHeaders).forEach(function (key) {\r\n headers.append(key, optionsHeaders[key]);\r\n });\r\n return headers;\r\n };\r\n FetchClient.prototype.getHeaderDict = function (headers) {\r\n var headerDict = {};\r\n headers.forEach(function (value, key) {\r\n headerDict[key] = value;\r\n });\r\n return headerDict;\r\n };\r\n return FetchClient;\r\n}());\n\nexport { FetchClient };\n//# sourceMappingURL=FetchClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { HTTP_REQUEST_TYPE } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This client implements the XMLHttpRequest class to send GET and POST requests.\r\n */\r\nvar XhrClient = /** @class */ (function () {\r\n function XhrClient() {\r\n }\r\n /**\r\n * XhrClient for REST endpoints - Get request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendGetRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.GET, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * XhrClient for REST endpoints - Post request\r\n * @param url\r\n * @param headers\r\n * @param body\r\n */\r\n XhrClient.prototype.sendPostRequestAsync = function (url, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.sendRequestAsync(url, HTTP_REQUEST_TYPE.POST, options)];\r\n });\r\n });\r\n };\r\n /**\r\n * Helper for XhrClient requests.\r\n * @param url\r\n * @param method\r\n * @param options\r\n */\r\n XhrClient.prototype.sendRequestAsync = function (url, method, options) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n var xhr = new XMLHttpRequest();\r\n xhr.open(method, url, /* async: */ true);\r\n _this.setXhrHeaders(xhr, options);\r\n xhr.onload = function () {\r\n if (xhr.status < 200 || xhr.status >= 300) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n try {\r\n var jsonResponse = JSON.parse(xhr.responseText);\r\n var networkResponse = {\r\n headers: _this.getHeaderDict(xhr),\r\n body: jsonResponse,\r\n status: xhr.status\r\n };\r\n resolve(networkResponse);\r\n }\r\n catch (e) {\r\n reject(BrowserAuthError.createFailedToParseNetworkResponseError(url));\r\n }\r\n };\r\n xhr.onerror = function () {\r\n if (window.navigator.onLine) {\r\n if (method === HTTP_REQUEST_TYPE.POST) {\r\n reject(BrowserAuthError.createPostRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n else {\r\n reject(BrowserAuthError.createGetRequestFailedError(\"Failed with status \" + xhr.status, url));\r\n }\r\n }\r\n else {\r\n reject(BrowserAuthError.createNoNetworkConnectivityError());\r\n }\r\n };\r\n if (method === HTTP_REQUEST_TYPE.POST && options && options.body) {\r\n xhr.send(options.body);\r\n }\r\n else if (method === HTTP_REQUEST_TYPE.GET) {\r\n xhr.send();\r\n }\r\n else {\r\n throw BrowserAuthError.createHttpMethodNotImplementedError(method);\r\n }\r\n });\r\n };\r\n /**\r\n * Helper to set XHR headers for request.\r\n * @param xhr\r\n * @param options\r\n */\r\n XhrClient.prototype.setXhrHeaders = function (xhr, options) {\r\n if (options && options.headers) {\r\n var headers_1 = options.headers;\r\n Object.keys(headers_1).forEach(function (key) {\r\n xhr.setRequestHeader(key, headers_1[key]);\r\n });\r\n }\r\n };\r\n /**\r\n * Gets a string map of the headers received in the response.\r\n *\r\n * Algorithm comes from https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/getAllResponseHeaders\r\n * @param xhr\r\n */\r\n XhrClient.prototype.getHeaderDict = function (xhr) {\r\n var headerString = xhr.getAllResponseHeaders();\r\n var headerArr = headerString.trim().split(/[\\r\\n]+/);\r\n var headerDict = {};\r\n headerArr.forEach(function (value) {\r\n var parts = value.split(\": \");\r\n var headerName = parts.shift();\r\n var headerVal = parts.join(\": \");\r\n if (headerName && headerVal) {\r\n headerDict[headerName] = headerVal;\r\n }\r\n });\r\n return headerDict;\r\n };\r\n return XhrClient;\r\n}());\n\nexport { XhrClient };\n//# sourceMappingURL=XhrClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { Constants, UrlString } from '@azure/msal-common';\nimport { FetchClient } from '../network/FetchClient.js';\nimport { XhrClient } from '../network/XhrClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserConstants, InteractionType } from './BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Utility class for browser specific functions\r\n */\r\nvar BrowserUtils = /** @class */ (function () {\r\n function BrowserUtils() {\r\n }\r\n // #region Window Navigation and URL management\r\n /**\r\n * Clears hash from window url.\r\n */\r\n BrowserUtils.clearHash = function (contentWindow) {\r\n // Office.js sets history.replaceState to null\r\n contentWindow.location.hash = Constants.EMPTY_STRING;\r\n if (typeof contentWindow.history.replaceState === \"function\") {\r\n // Full removes \"#\" from url\r\n contentWindow.history.replaceState(null, Constants.EMPTY_STRING, \"\" + contentWindow.location.origin + contentWindow.location.pathname + contentWindow.location.search);\r\n }\r\n };\r\n /**\r\n * Replaces current hash with hash from provided url\r\n */\r\n BrowserUtils.replaceHash = function (url) {\r\n var urlParts = url.split(\"#\");\r\n urlParts.shift(); // Remove part before the hash\r\n window.location.hash = urlParts.length > 0 ? urlParts.join(\"#\") : Constants.EMPTY_STRING;\r\n };\r\n /**\r\n * Returns boolean of whether the current window is in an iframe or not.\r\n */\r\n BrowserUtils.isInIframe = function () {\r\n return window.parent !== window;\r\n };\r\n /**\r\n * Returns boolean of whether or not the current window is a popup opened by msal\r\n */\r\n BrowserUtils.isInPopup = function () {\r\n return typeof window !== \"undefined\" && !!window.opener &&\r\n window.opener !== window &&\r\n typeof window.name === \"string\" &&\r\n window.name.indexOf(BrowserConstants.POPUP_NAME_PREFIX + \".\") === 0;\r\n };\r\n // #endregion\r\n /**\r\n * Returns current window URL as redirect uri\r\n */\r\n BrowserUtils.getCurrentUri = function () {\r\n return window.location.href.split(\"?\")[0].split(\"#\")[0];\r\n };\r\n /**\r\n * Gets the homepage url for the current window location.\r\n */\r\n BrowserUtils.getHomepage = function () {\r\n var currentUrl = new UrlString(window.location.href);\r\n var urlComponents = currentUrl.getUrlComponents();\r\n return urlComponents.Protocol + \"//\" + urlComponents.HostNameAndPort + \"/\";\r\n };\r\n /**\r\n * Returns best compatible network client object.\r\n */\r\n BrowserUtils.getBrowserNetworkClient = function () {\r\n if (window.fetch && window.Headers) {\r\n return new FetchClient();\r\n }\r\n else {\r\n return new XhrClient();\r\n }\r\n };\r\n /**\r\n * Throws error if we have completed an auth and are\r\n * attempting another auth request inside an iframe.\r\n */\r\n BrowserUtils.blockReloadInHiddenIframes = function () {\r\n var isResponseHash = UrlString.hashContainsKnownProperties(window.location.hash);\r\n // return an error if called from the hidden iframe created by the msal js silent calls\r\n if (isResponseHash && BrowserUtils.isInIframe()) {\r\n throw BrowserAuthError.createBlockReloadInHiddenIframeError();\r\n }\r\n };\r\n /**\r\n * Block redirect operations in iframes unless explicitly allowed\r\n * @param interactionType Interaction type for the request\r\n * @param allowRedirectInIframe Config value to allow redirects when app is inside an iframe\r\n */\r\n BrowserUtils.blockRedirectInIframe = function (interactionType, allowRedirectInIframe) {\r\n var isIframedApp = BrowserUtils.isInIframe();\r\n if (interactionType === InteractionType.Redirect && isIframedApp && !allowRedirectInIframe) {\r\n // If we are not in top frame, we shouldn't redirect. This is also handled by the service.\r\n throw BrowserAuthError.createRedirectInIframeError(isIframedApp);\r\n }\r\n };\r\n /**\r\n * Block redirectUri loaded in popup from calling AcquireToken APIs\r\n */\r\n BrowserUtils.blockAcquireTokenInPopups = function () {\r\n // Popups opened by msal popup APIs are given a name that starts with \"msal.\"\r\n if (BrowserUtils.isInPopup()) {\r\n throw BrowserAuthError.createBlockAcquireTokenInPopupsError();\r\n }\r\n };\r\n /**\r\n * Throws error if token requests are made in non-browser environment\r\n * @param isBrowserEnvironment Flag indicating if environment is a browser.\r\n */\r\n BrowserUtils.blockNonBrowserEnvironment = function (isBrowserEnvironment) {\r\n if (!isBrowserEnvironment) {\r\n throw BrowserAuthError.createNonBrowserEnvironmentError();\r\n }\r\n };\r\n /**\r\n * Throws error if native brokering is enabled but initialize hasn't been called\r\n * @param allowNativeBroker\r\n * @param initialized\r\n */\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized = function (allowNativeBroker, initialized) {\r\n if (allowNativeBroker && !initialized) {\r\n throw BrowserAuthError.createNativeBrokerCalledBeforeInitialize();\r\n }\r\n };\r\n /**\r\n * Returns boolean of whether current browser is an Internet Explorer or Edge browser.\r\n */\r\n BrowserUtils.detectIEOrEdge = function () {\r\n var ua = window.navigator.userAgent;\r\n var msie = ua.indexOf(\"MSIE \");\r\n var msie11 = ua.indexOf(\"Trident/\");\r\n var msedge = ua.indexOf(\"Edge/\");\r\n var isIE = msie > 0 || msie11 > 0;\r\n var isEdge = msedge > 0;\r\n return isIE || isEdge;\r\n };\r\n return BrowserUtils;\r\n}());\n\nexport { BrowserUtils };\n//# sourceMappingURL=BrowserUtils.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NavigationClient = /** @class */ (function () {\r\n function NavigationClient() {\r\n }\r\n /**\r\n * Navigates to other pages within the same web application\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateInternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Navigates to other pages outside the web application i.e. the Identity Provider\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.prototype.navigateExternal = function (url, options) {\r\n return NavigationClient.defaultNavigateWindow(url, options);\r\n };\r\n /**\r\n * Default navigation implementation invoked by the internal and external functions\r\n * @param url\r\n * @param options\r\n */\r\n NavigationClient.defaultNavigateWindow = function (url, options) {\r\n if (options.noHistory) {\r\n window.location.replace(url);\r\n }\r\n else {\r\n window.location.assign(url);\r\n }\r\n return new Promise(function (resolve) {\r\n setTimeout(function () {\r\n resolve(true);\r\n }, options.timeout);\r\n });\r\n };\r\n return NavigationClient;\r\n}());\n\nexport { NavigationClient };\n//# sourceMappingURL=NavigationClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __assign } from '../_virtual/_tslib.js';\nimport { DEFAULT_SYSTEM_OPTIONS, StubbedNetworkModule, Constants, ProtocolMode, AzureCloudInstance, LogLevel } from '@azure/msal-common';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { BrowserConstants, BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { NavigationClient } from '../navigation/NavigationClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n// Default timeout for popup windows and iframes in milliseconds\r\nvar DEFAULT_POPUP_TIMEOUT_MS = 60000;\r\nvar DEFAULT_IFRAME_TIMEOUT_MS = 6000;\r\nvar DEFAULT_REDIRECT_TIMEOUT_MS = 30000;\r\nvar DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS = 2000;\r\n/**\r\n * MSAL function that sets the default options when not explicitly configured from app developer\r\n *\r\n * @param auth\r\n * @param cache\r\n * @param system\r\n *\r\n * @returns Configuration object\r\n */\r\nfunction buildConfiguration(_a, isBrowserEnvironment) {\r\n var userInputAuth = _a.auth, userInputCache = _a.cache, userInputSystem = _a.system, userInputTelemetry = _a.telemetry;\r\n // Default auth options for browser\r\n var DEFAULT_AUTH_OPTIONS = {\r\n clientId: Constants.EMPTY_STRING,\r\n authority: \"\" + Constants.DEFAULT_AUTHORITY,\r\n knownAuthorities: [],\r\n cloudDiscoveryMetadata: Constants.EMPTY_STRING,\r\n authorityMetadata: Constants.EMPTY_STRING,\r\n redirectUri: Constants.EMPTY_STRING,\r\n postLogoutRedirectUri: Constants.EMPTY_STRING,\r\n navigateToLoginRequestUrl: true,\r\n clientCapabilities: [],\r\n protocolMode: ProtocolMode.AAD,\r\n azureCloudOptions: {\r\n azureCloudInstance: AzureCloudInstance.None,\r\n tenant: Constants.EMPTY_STRING\r\n },\r\n skipAuthorityMetadataCache: false,\r\n };\r\n // Default cache options for browser\r\n var DEFAULT_CACHE_OPTIONS = {\r\n cacheLocation: BrowserCacheLocation.SessionStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.SessionStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n // Default cache migration to true if cache location is localStorage since entries are preserved across tabs/windows. Migration has little to no benefit in sessionStorage and memoryStorage\r\n cacheMigrationEnabled: userInputCache && userInputCache.cacheLocation === BrowserCacheLocation.LocalStorage ? true : false,\r\n claimsBasedCachingEnabled: true\r\n };\r\n // Default logger options for browser\r\n var DEFAULT_LOGGER_OPTIONS = {\r\n // eslint-disable-next-line @typescript-eslint/no-empty-function\r\n loggerCallback: function () {\r\n // allow users to not set logger call back \r\n },\r\n logLevel: LogLevel.Info,\r\n piiLoggingEnabled: false\r\n };\r\n // Default system options for browser\r\n var DEFAULT_BROWSER_SYSTEM_OPTIONS = __assign(__assign({}, DEFAULT_SYSTEM_OPTIONS), { loggerOptions: DEFAULT_LOGGER_OPTIONS, networkClient: isBrowserEnvironment ? BrowserUtils.getBrowserNetworkClient() : StubbedNetworkModule, navigationClient: new NavigationClient(), loadFrameTimeout: 0, \r\n // If loadFrameTimeout is provided, use that as default.\r\n windowHashTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loadFrameTimeout) || DEFAULT_POPUP_TIMEOUT_MS, iframeHashTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loadFrameTimeout) || DEFAULT_IFRAME_TIMEOUT_MS, navigateFrameWait: isBrowserEnvironment && BrowserUtils.detectIEOrEdge() ? 500 : 0, redirectNavigationTimeout: DEFAULT_REDIRECT_TIMEOUT_MS, asyncPopups: false, allowRedirectInIframe: false, allowNativeBroker: false, nativeBrokerHandshakeTimeout: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.nativeBrokerHandshakeTimeout) || DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS, pollIntervalMilliseconds: BrowserConstants.DEFAULT_POLL_INTERVAL_MS, cryptoOptions: {\r\n useMsrCrypto: false,\r\n entropy: undefined\r\n } });\r\n var providedSystemOptions = __assign(__assign({}, userInputSystem), { loggerOptions: (userInputSystem === null || userInputSystem === void 0 ? void 0 : userInputSystem.loggerOptions) || DEFAULT_LOGGER_OPTIONS });\r\n var DEFAULT_TELEMETRY_OPTIONS = {\r\n application: {\r\n appName: Constants.EMPTY_STRING,\r\n appVersion: Constants.EMPTY_STRING\r\n }\r\n };\r\n var overlayedConfig = {\r\n auth: __assign(__assign({}, DEFAULT_AUTH_OPTIONS), userInputAuth),\r\n cache: __assign(__assign({}, DEFAULT_CACHE_OPTIONS), userInputCache),\r\n system: __assign(__assign({}, DEFAULT_BROWSER_SYSTEM_OPTIONS), providedSystemOptions),\r\n telemetry: __assign(__assign({}, DEFAULT_TELEMETRY_OPTIONS), userInputTelemetry)\r\n };\r\n return overlayedConfig;\r\n}\n\nexport { DEFAULT_IFRAME_TIMEOUT_MS, DEFAULT_NATIVE_BROKER_HANDSHAKE_TIMEOUT_MS, DEFAULT_POPUP_TIMEOUT_MS, DEFAULT_REDIRECT_TIMEOUT_MS, buildConfiguration };\n//# sourceMappingURL=Configuration.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\n/* eslint-disable header/header */\r\nvar name = \"@azure/msal-browser\";\r\nvar version = \"2.38.4\";\n\nexport { name, version };\n//# sourceMappingURL=packageMetadata.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventType;\r\n(function (EventType) {\r\n EventType[\"INITIALIZE_START\"] = \"msal:initializeStart\";\r\n EventType[\"INITIALIZE_END\"] = \"msal:initializeEnd\";\r\n EventType[\"ACCOUNT_ADDED\"] = \"msal:accountAdded\";\r\n EventType[\"ACCOUNT_REMOVED\"] = \"msal:accountRemoved\";\r\n EventType[\"LOGIN_START\"] = \"msal:loginStart\";\r\n EventType[\"LOGIN_SUCCESS\"] = \"msal:loginSuccess\";\r\n EventType[\"LOGIN_FAILURE\"] = \"msal:loginFailure\";\r\n EventType[\"ACQUIRE_TOKEN_START\"] = \"msal:acquireTokenStart\";\r\n EventType[\"ACQUIRE_TOKEN_SUCCESS\"] = \"msal:acquireTokenSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_FAILURE\"] = \"msal:acquireTokenFailure\";\r\n EventType[\"ACQUIRE_TOKEN_NETWORK_START\"] = \"msal:acquireTokenFromNetworkStart\";\r\n EventType[\"SSO_SILENT_START\"] = \"msal:ssoSilentStart\";\r\n EventType[\"SSO_SILENT_SUCCESS\"] = \"msal:ssoSilentSuccess\";\r\n EventType[\"SSO_SILENT_FAILURE\"] = \"msal:ssoSilentFailure\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_START\"] = \"msal:acquireTokenByCodeStart\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_SUCCESS\"] = \"msal:acquireTokenByCodeSuccess\";\r\n EventType[\"ACQUIRE_TOKEN_BY_CODE_FAILURE\"] = \"msal:acquireTokenByCodeFailure\";\r\n EventType[\"HANDLE_REDIRECT_START\"] = \"msal:handleRedirectStart\";\r\n EventType[\"HANDLE_REDIRECT_END\"] = \"msal:handleRedirectEnd\";\r\n EventType[\"POPUP_OPENED\"] = \"msal:popupOpened\";\r\n EventType[\"LOGOUT_START\"] = \"msal:logoutStart\";\r\n EventType[\"LOGOUT_SUCCESS\"] = \"msal:logoutSuccess\";\r\n EventType[\"LOGOUT_FAILURE\"] = \"msal:logoutFailure\";\r\n EventType[\"LOGOUT_END\"] = \"msal:logoutEnd\";\r\n EventType[\"RESTORE_FROM_BFCACHE\"] = \"msal:restoreFromBFCache\";\r\n})(EventType || (EventType = {}));\n\nexport { EventType };\n//# sourceMappingURL=EventType.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { AccountEntity, CacheManager } from '@azure/msal-common';\nimport { EventType } from './EventType.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar EventHandler = /** @class */ (function () {\r\n function EventHandler(logger, browserCrypto) {\r\n this.eventCallbacks = new Map();\r\n this.logger = logger;\r\n this.browserCrypto = browserCrypto;\r\n this.listeningToStorageEvents = false;\r\n this.handleAccountCacheChange = this.handleAccountCacheChange.bind(this);\r\n }\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n EventHandler.prototype.addEventCallback = function (callback) {\r\n if (typeof window !== \"undefined\") {\r\n var callbackId = this.browserCrypto.createNewGuid();\r\n this.eventCallbacks.set(callbackId, callback);\r\n this.logger.verbose(\"Event callback registered with id: \" + callbackId);\r\n return callbackId;\r\n }\r\n return null;\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n EventHandler.prototype.removeEventCallback = function (callbackId) {\r\n this.eventCallbacks.delete(callbackId);\r\n this.logger.verbose(\"Event callback \" + callbackId + \" removed.\");\r\n };\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n EventHandler.prototype.enableAccountStorageEvents = function () {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (!this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Adding account storage listener.\");\r\n this.listeningToStorageEvents = true;\r\n window.addEventListener(\"storage\", this.handleAccountCacheChange);\r\n }\r\n else {\r\n this.logger.verbose(\"Account storage listener already registered.\");\r\n }\r\n };\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n EventHandler.prototype.disableAccountStorageEvents = function () {\r\n if (typeof window === \"undefined\") {\r\n return;\r\n }\r\n if (this.listeningToStorageEvents) {\r\n this.logger.verbose(\"Removing account storage listener.\");\r\n window.removeEventListener(\"storage\", this.handleAccountCacheChange);\r\n this.listeningToStorageEvents = false;\r\n }\r\n else {\r\n this.logger.verbose(\"No account storage listener registered.\");\r\n }\r\n };\r\n /**\r\n * Emits events by calling callback with event message\r\n * @param eventType\r\n * @param interactionType\r\n * @param payload\r\n * @param error\r\n */\r\n EventHandler.prototype.emitEvent = function (eventType, interactionType, payload, error) {\r\n var _this = this;\r\n if (typeof window !== \"undefined\") {\r\n var message_1 = {\r\n eventType: eventType,\r\n interactionType: interactionType || null,\r\n payload: payload || null,\r\n error: error || null,\r\n timestamp: Date.now()\r\n };\r\n this.logger.info(\"Emitting event: \" + eventType);\r\n this.eventCallbacks.forEach(function (callback, callbackId) {\r\n _this.logger.verbose(\"Emitting event to callback \" + callbackId + \": \" + eventType);\r\n callback.apply(null, [message_1]);\r\n });\r\n }\r\n };\r\n /**\r\n * Emit account added/removed events when cached accounts are changed in a different tab or frame\r\n */\r\n EventHandler.prototype.handleAccountCacheChange = function (e) {\r\n try {\r\n var cacheValue = e.newValue || e.oldValue;\r\n if (!cacheValue) {\r\n return;\r\n }\r\n var parsedValue = JSON.parse(cacheValue);\r\n if (typeof parsedValue !== \"object\" || !AccountEntity.isAccountEntity(parsedValue)) {\r\n return;\r\n }\r\n var accountEntity = CacheManager.toObject(new AccountEntity(), parsedValue);\r\n var accountInfo = accountEntity.getAccountInfo();\r\n if (!e.oldValue && e.newValue) {\r\n this.logger.info(\"Account was added to cache in a different window\");\r\n this.emitEvent(EventType.ACCOUNT_ADDED, undefined, accountInfo);\r\n }\r\n else if (!e.newValue && e.oldValue) {\r\n this.logger.info(\"Account was removed from cache in a different window\");\r\n this.emitEvent(EventType.ACCOUNT_REMOVED, undefined, accountInfo);\r\n }\r\n }\r\n catch (e) {\r\n return;\r\n }\r\n };\r\n return EventHandler;\r\n}());\n\nexport { EventHandler };\n//# sourceMappingURL=EventHandler.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar KeyLocation;\r\n(function (KeyLocation) {\r\n KeyLocation[\"SW\"] = \"sw\";\r\n KeyLocation[\"UHW\"] = \"uhw\";\r\n})(KeyLocation || (KeyLocation = {}));\r\nvar PopTokenGenerator = /** @class */ (function () {\r\n function PopTokenGenerator(cryptoUtils, performanceClient) {\r\n this.cryptoUtils = cryptoUtils;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Generates the req_cnf validated at the RP in the POP protocol for SHR parameters\r\n * and returns an object containing the keyid, the full req_cnf string and the req_cnf string hash\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.generateCnf = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var reqCnf, reqCnfString, _c;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.PopTokenGenerateKid, request.correlationId);\r\n return [4 /*yield*/, this.generateKid(request)];\r\n case 1:\r\n reqCnf = _d.sent();\r\n reqCnfString = this.cryptoUtils.base64Encode(JSON.stringify(reqCnf));\r\n _c = {\r\n kid: reqCnf.kid,\r\n reqCnfString: reqCnfString\r\n };\r\n return [4 /*yield*/, this.cryptoUtils.hashString(reqCnfString)];\r\n case 2: return [2 /*return*/, (_c.reqCnfHash = _d.sent(),\r\n _c)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates key_id for a SHR token request\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.generateKid = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var kidThumbprint;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.PopTokenGenerateKid, request.correlationId);\r\n return [4 /*yield*/, this.cryptoUtils.getPublicKeyThumbprint(request)];\r\n case 1:\r\n kidThumbprint = _b.sent();\r\n return [2 /*return*/, {\r\n kid: kidThumbprint,\r\n xms_ksl: KeyLocation.SW\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Signs the POP access_token with the local generated key-pair\r\n * @param accessToken\r\n * @param request\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.signPopToken = function (accessToken, keyId, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n return [2 /*return*/, this.signPayload(accessToken, keyId, request)];\r\n });\r\n });\r\n };\r\n /**\r\n * Utility function to generate the signed JWT for an access_token\r\n * @param payload\r\n * @param kid\r\n * @param request\r\n * @param claims\r\n * @returns\r\n */\r\n PopTokenGenerator.prototype.signPayload = function (payload, keyId, request, claims) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var resourceRequestMethod, resourceRequestUri, shrClaims, shrNonce, resourceUrlString, resourceUrlComponents;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n resourceRequestMethod = request.resourceRequestMethod, resourceRequestUri = request.resourceRequestUri, shrClaims = request.shrClaims, shrNonce = request.shrNonce;\r\n resourceUrlString = (resourceRequestUri) ? new UrlString(resourceRequestUri) : undefined;\r\n resourceUrlComponents = resourceUrlString === null || resourceUrlString === void 0 ? void 0 : resourceUrlString.getUrlComponents();\r\n return [4 /*yield*/, this.cryptoUtils.signJwt(__assign({ at: payload, ts: TimeUtils.nowSeconds(), m: resourceRequestMethod === null || resourceRequestMethod === void 0 ? void 0 : resourceRequestMethod.toUpperCase(), u: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.HostNameAndPort, nonce: shrNonce || this.cryptoUtils.createNewGuid(), p: resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.AbsolutePath, q: (resourceUrlComponents === null || resourceUrlComponents === void 0 ? void 0 : resourceUrlComponents.QueryString) ? [[], resourceUrlComponents.QueryString] : undefined, client_claims: shrClaims || undefined }, claims), keyId, request.correlationId)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return PopTokenGenerator;\r\n}());\n\nexport { PopTokenGenerator };\n//# sourceMappingURL=PopTokenGenerator.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { ThrottlingConstants, Constants, HeaderNames } from '../utils/Constants.js';\nimport { ServerError } from '../error/ServerError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ThrottlingUtils = /** @class */ (function () {\r\n function ThrottlingUtils() {\r\n }\r\n /**\r\n * Prepares a RequestThumbprint to be stored as a key.\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.generateThrottlingStorageKey = function (thumbprint) {\r\n return ThrottlingConstants.THROTTLING_PREFIX + \".\" + JSON.stringify(thumbprint);\r\n };\r\n /**\r\n * Performs necessary throttling checks before a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n */\r\n ThrottlingUtils.preProcess = function (cacheManager, thumbprint) {\r\n var _a;\r\n var key = ThrottlingUtils.generateThrottlingStorageKey(thumbprint);\r\n var value = cacheManager.getThrottlingCache(key);\r\n if (value) {\r\n if (value.throttleTime < Date.now()) {\r\n cacheManager.removeItem(key);\r\n return;\r\n }\r\n throw new ServerError(((_a = value.errorCodes) === null || _a === void 0 ? void 0 : _a.join(\" \")) || Constants.EMPTY_STRING, value.errorMessage, value.subError);\r\n }\r\n };\r\n /**\r\n * Performs necessary throttling checks after a network request.\r\n * @param cacheManager\r\n * @param thumbprint\r\n * @param response\r\n */\r\n ThrottlingUtils.postProcess = function (cacheManager, thumbprint, response) {\r\n if (ThrottlingUtils.checkResponseStatus(response) || ThrottlingUtils.checkResponseForRetryAfter(response)) {\r\n var thumbprintValue = {\r\n throttleTime: ThrottlingUtils.calculateThrottleTime(parseInt(response.headers[HeaderNames.RETRY_AFTER])),\r\n error: response.body.error,\r\n errorCodes: response.body.error_codes,\r\n errorMessage: response.body.error_description,\r\n subError: response.body.suberror\r\n };\r\n cacheManager.setThrottlingCache(ThrottlingUtils.generateThrottlingStorageKey(thumbprint), thumbprintValue);\r\n }\r\n };\r\n /**\r\n * Checks a NetworkResponse object's status codes against 429 or 5xx\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseStatus = function (response) {\r\n return response.status === 429 || response.status >= 500 && response.status < 600;\r\n };\r\n /**\r\n * Checks a NetworkResponse object's RetryAfter header\r\n * @param response\r\n */\r\n ThrottlingUtils.checkResponseForRetryAfter = function (response) {\r\n if (response.headers) {\r\n return response.headers.hasOwnProperty(HeaderNames.RETRY_AFTER) && (response.status < 200 || response.status >= 300);\r\n }\r\n return false;\r\n };\r\n /**\r\n * Calculates the Unix-time value for a throttle to expire given throttleTime in seconds.\r\n * @param throttleTime\r\n */\r\n ThrottlingUtils.calculateThrottleTime = function (throttleTime) {\r\n var time = throttleTime <= 0 ? 0 : throttleTime;\r\n var currentSeconds = Date.now() / 1000;\r\n return Math.floor(Math.min(currentSeconds + (time || ThrottlingConstants.DEFAULT_THROTTLE_TIME_SECONDS), currentSeconds + ThrottlingConstants.DEFAULT_MAX_THROTTLE_TIME_SECONDS) * 1000);\r\n };\r\n ThrottlingUtils.removeThrottle = function (cacheManager, clientId, request, homeAccountIdentifier) {\r\n var thumbprint = {\r\n clientId: clientId,\r\n authority: request.authority,\r\n scopes: request.scopes,\r\n homeAccountIdentifier: homeAccountIdentifier,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n var key = this.generateThrottlingStorageKey(thumbprint);\r\n cacheManager.removeItem(key);\r\n };\r\n return ThrottlingUtils;\r\n}());\n\nexport { ThrottlingUtils };\n//# sourceMappingURL=ThrottlingUtils.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { ThrottlingUtils } from './ThrottlingUtils.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NetworkManager = /** @class */ (function () {\r\n function NetworkManager(networkClient, cacheManager) {\r\n this.networkClient = networkClient;\r\n this.cacheManager = cacheManager;\r\n }\r\n /**\r\n * Wraps sendPostRequestAsync with necessary preflight and postflight logic\r\n * @param thumbprint\r\n * @param tokenEndpoint\r\n * @param options\r\n */\r\n NetworkManager.prototype.sendPostRequest = function (thumbprint, tokenEndpoint, options) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n ThrottlingUtils.preProcess(this.cacheManager, thumbprint);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkClient.sendPostRequestAsync(tokenEndpoint, options)];\r\n case 2:\r\n response = _a.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n throw e_1;\r\n }\r\n else {\r\n throw ClientAuthError.createNetworkError(tokenEndpoint, e_1);\r\n }\r\n case 4:\r\n ThrottlingUtils.postProcess(this.cacheManager, thumbprint, response);\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n return NetworkManager;\r\n}());\n\nexport { NetworkManager };\n//# sourceMappingURL=NetworkManager.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { CodeChallengeMethodValues, PromptValue } from '../utils/Constants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Validates server consumable params from the \"request\" objects\r\n */\r\nvar RequestValidator = /** @class */ (function () {\r\n function RequestValidator() {\r\n }\r\n /**\r\n * Utility to check if the `redirectUri` in the request is a non-null value\r\n * @param redirectUri\r\n */\r\n RequestValidator.validateRedirectUri = function (redirectUri) {\r\n if (StringUtils.isEmpty(redirectUri)) {\r\n throw ClientConfigurationError.createRedirectUriEmptyError();\r\n }\r\n };\r\n /**\r\n * Utility to validate prompt sent by the user in the request\r\n * @param prompt\r\n */\r\n RequestValidator.validatePrompt = function (prompt) {\r\n var promptValues = [];\r\n for (var value in PromptValue) {\r\n promptValues.push(PromptValue[value]);\r\n }\r\n if (promptValues.indexOf(prompt) < 0) {\r\n throw ClientConfigurationError.createInvalidPromptError(prompt);\r\n }\r\n };\r\n RequestValidator.validateClaims = function (claims) {\r\n try {\r\n JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge and code_challenge_method\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n if (StringUtils.isEmpty(codeChallenge) || StringUtils.isEmpty(codeChallengeMethod)) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n else {\r\n this.validateCodeChallengeMethod(codeChallengeMethod);\r\n }\r\n };\r\n /**\r\n * Utility to validate code_challenge_method\r\n * @param codeChallengeMethod\r\n */\r\n RequestValidator.validateCodeChallengeMethod = function (codeChallengeMethod) {\r\n if ([\r\n CodeChallengeMethodValues.PLAIN,\r\n CodeChallengeMethodValues.S256\r\n ].indexOf(codeChallengeMethod) < 0) {\r\n throw ClientConfigurationError.createInvalidCodeChallengeMethodError();\r\n }\r\n };\r\n /**\r\n * Removes unnecessary, duplicate, and empty string query parameters from extraQueryParameters\r\n * @param request\r\n */\r\n RequestValidator.sanitizeEQParams = function (eQParams, queryParams) {\r\n if (!eQParams) {\r\n return {};\r\n }\r\n // Remove any query parameters already included in SSO params\r\n queryParams.forEach(function (value, key) {\r\n if (eQParams[key]) {\r\n delete eQParams[key];\r\n }\r\n });\r\n // remove empty string parameters\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n return Object.fromEntries(Object.entries(eQParams).filter(function (_a) {\r\n var value = _a[1];\r\n return value !== \"\";\r\n }));\r\n };\r\n return RequestValidator;\r\n}());\n\nexport { RequestValidator };\n//# sourceMappingURL=RequestValidator.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __spreadArrays } from '../_virtual/_tslib.js';\nimport { AADServerParamKeys, Constants, ResponseMode, OIDC_DEFAULT_SCOPES, SSOTypes, HeaderNames, CLIENT_INFO, ClaimsRequestKeys, PasswordGrantConstants, AuthenticationScheme, ThrottlingConstants } from '../utils/Constants.js';\nimport { ScopeSet } from './ScopeSet.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from './RequestValidator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RequestParameterBuilder = /** @class */ (function () {\r\n function RequestParameterBuilder() {\r\n this.parameters = new Map();\r\n }\r\n /**\r\n * add response_type = code\r\n */\r\n RequestParameterBuilder.prototype.addResponseTypeCode = function () {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.CODE_RESPONSE_TYPE));\r\n };\r\n /**\r\n * add response_type = token id_token\r\n */\r\n RequestParameterBuilder.prototype.addResponseTypeForTokenAndIdToken = function () {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_TYPE, encodeURIComponent(Constants.TOKEN_RESPONSE_TYPE + \" \" + Constants.ID_TOKEN_RESPONSE_TYPE));\r\n };\r\n /**\r\n * add response_mode. defaults to query.\r\n * @param responseMode\r\n */\r\n RequestParameterBuilder.prototype.addResponseMode = function (responseMode) {\r\n this.parameters.set(AADServerParamKeys.RESPONSE_MODE, encodeURIComponent((responseMode) ? responseMode : ResponseMode.QUERY));\r\n };\r\n /**\r\n * Add flag to indicate STS should attempt to use WAM if available\r\n */\r\n RequestParameterBuilder.prototype.addNativeBroker = function () {\r\n this.parameters.set(AADServerParamKeys.NATIVE_BROKER, encodeURIComponent(\"1\"));\r\n };\r\n /**\r\n * add scopes. set addOidcScopes to false to prevent default scopes in non-user scenarios\r\n * @param scopeSet\r\n * @param addOidcScopes\r\n */\r\n RequestParameterBuilder.prototype.addScopes = function (scopes, addOidcScopes) {\r\n if (addOidcScopes === void 0) { addOidcScopes = true; }\r\n var requestScopes = addOidcScopes ? __spreadArrays(scopes || [], OIDC_DEFAULT_SCOPES) : scopes || [];\r\n var scopeSet = new ScopeSet(requestScopes);\r\n this.parameters.set(AADServerParamKeys.SCOPE, encodeURIComponent(scopeSet.printScopes()));\r\n };\r\n /**\r\n * add clientId\r\n * @param clientId\r\n */\r\n RequestParameterBuilder.prototype.addClientId = function (clientId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ID, encodeURIComponent(clientId));\r\n };\r\n /**\r\n * add redirect_uri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.REDIRECT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add post logout redirectUri\r\n * @param redirectUri\r\n */\r\n RequestParameterBuilder.prototype.addPostLogoutRedirectUri = function (redirectUri) {\r\n RequestValidator.validateRedirectUri(redirectUri);\r\n this.parameters.set(AADServerParamKeys.POST_LOGOUT_URI, encodeURIComponent(redirectUri));\r\n };\r\n /**\r\n * add id_token_hint to logout request\r\n * @param idTokenHint\r\n */\r\n RequestParameterBuilder.prototype.addIdTokenHint = function (idTokenHint) {\r\n this.parameters.set(AADServerParamKeys.ID_TOKEN_HINT, encodeURIComponent(idTokenHint));\r\n };\r\n /**\r\n * add domain_hint\r\n * @param domainHint\r\n */\r\n RequestParameterBuilder.prototype.addDomainHint = function (domainHint) {\r\n this.parameters.set(SSOTypes.DOMAIN_HINT, encodeURIComponent(domainHint));\r\n };\r\n /**\r\n * add login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addLoginHint = function (loginHint) {\r\n this.parameters.set(SSOTypes.LOGIN_HINT, encodeURIComponent(loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for login_hint\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsUpn = function (loginHint) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"UPN:\" + loginHint));\r\n };\r\n /**\r\n * Adds the CCS (Cache Credential Service) query parameter for account object\r\n * @param loginHint\r\n */\r\n RequestParameterBuilder.prototype.addCcsOid = function (clientInfo) {\r\n this.parameters.set(HeaderNames.CCS_HEADER, encodeURIComponent(\"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid));\r\n };\r\n /**\r\n * add sid\r\n * @param sid\r\n */\r\n RequestParameterBuilder.prototype.addSid = function (sid) {\r\n this.parameters.set(SSOTypes.SID, encodeURIComponent(sid));\r\n };\r\n /**\r\n * add claims\r\n * @param claims\r\n */\r\n RequestParameterBuilder.prototype.addClaims = function (claims, clientCapabilities) {\r\n var mergedClaims = this.addClientCapabilitiesToClaims(claims, clientCapabilities);\r\n RequestValidator.validateClaims(mergedClaims);\r\n this.parameters.set(AADServerParamKeys.CLAIMS, encodeURIComponent(mergedClaims));\r\n };\r\n /**\r\n * add correlationId\r\n * @param correlationId\r\n */\r\n RequestParameterBuilder.prototype.addCorrelationId = function (correlationId) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_REQUEST_ID, encodeURIComponent(correlationId));\r\n };\r\n /**\r\n * add library info query params\r\n * @param libraryInfo\r\n */\r\n RequestParameterBuilder.prototype.addLibraryInfo = function (libraryInfo) {\r\n // Telemetry Info\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_SKU, libraryInfo.sku);\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_VER, libraryInfo.version);\r\n if (libraryInfo.os) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_OS, libraryInfo.os);\r\n }\r\n if (libraryInfo.cpu) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CPU, libraryInfo.cpu);\r\n }\r\n };\r\n /**\r\n * Add client telemetry parameters\r\n * @param appTelemetry\r\n */\r\n RequestParameterBuilder.prototype.addApplicationTelemetry = function (appTelemetry) {\r\n if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appName) {\r\n this.parameters.set(AADServerParamKeys.X_APP_NAME, appTelemetry.appName);\r\n }\r\n if (appTelemetry === null || appTelemetry === void 0 ? void 0 : appTelemetry.appVersion) {\r\n this.parameters.set(AADServerParamKeys.X_APP_VER, appTelemetry.appVersion);\r\n }\r\n };\r\n /**\r\n * add prompt\r\n * @param prompt\r\n */\r\n RequestParameterBuilder.prototype.addPrompt = function (prompt) {\r\n RequestValidator.validatePrompt(prompt);\r\n this.parameters.set(\"\" + AADServerParamKeys.PROMPT, encodeURIComponent(prompt));\r\n };\r\n /**\r\n * add state\r\n * @param state\r\n */\r\n RequestParameterBuilder.prototype.addState = function (state) {\r\n if (!StringUtils.isEmpty(state)) {\r\n this.parameters.set(AADServerParamKeys.STATE, encodeURIComponent(state));\r\n }\r\n };\r\n /**\r\n * add nonce\r\n * @param nonce\r\n */\r\n RequestParameterBuilder.prototype.addNonce = function (nonce) {\r\n this.parameters.set(AADServerParamKeys.NONCE, encodeURIComponent(nonce));\r\n };\r\n /**\r\n * add code_challenge and code_challenge_method\r\n * - throw if either of them are not passed\r\n * @param codeChallenge\r\n * @param codeChallengeMethod\r\n */\r\n RequestParameterBuilder.prototype.addCodeChallengeParams = function (codeChallenge, codeChallengeMethod) {\r\n RequestValidator.validateCodeChallengeParams(codeChallenge, codeChallengeMethod);\r\n if (codeChallenge && codeChallengeMethod) {\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE, encodeURIComponent(codeChallenge));\r\n this.parameters.set(AADServerParamKeys.CODE_CHALLENGE_METHOD, encodeURIComponent(codeChallengeMethod));\r\n }\r\n else {\r\n throw ClientConfigurationError.createInvalidCodeChallengeParamsError();\r\n }\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addAuthorizationCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `authorization_code` passed by the user to exchange for a token\r\n * @param code\r\n */\r\n RequestParameterBuilder.prototype.addDeviceCode = function (code) {\r\n this.parameters.set(AADServerParamKeys.DEVICE_CODE, encodeURIComponent(code));\r\n };\r\n /**\r\n * add the `refreshToken` passed by the user\r\n * @param refreshToken\r\n */\r\n RequestParameterBuilder.prototype.addRefreshToken = function (refreshToken) {\r\n this.parameters.set(AADServerParamKeys.REFRESH_TOKEN, encodeURIComponent(refreshToken));\r\n };\r\n /**\r\n * add the `code_verifier` passed by the user to exchange for a token\r\n * @param codeVerifier\r\n */\r\n RequestParameterBuilder.prototype.addCodeVerifier = function (codeVerifier) {\r\n this.parameters.set(AADServerParamKeys.CODE_VERIFIER, encodeURIComponent(codeVerifier));\r\n };\r\n /**\r\n * add client_secret\r\n * @param clientSecret\r\n */\r\n RequestParameterBuilder.prototype.addClientSecret = function (clientSecret) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_SECRET, encodeURIComponent(clientSecret));\r\n };\r\n /**\r\n * add clientAssertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertion = function (clientAssertion) {\r\n if (!StringUtils.isEmpty(clientAssertion)) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION, encodeURIComponent(clientAssertion));\r\n }\r\n };\r\n /**\r\n * add clientAssertionType for confidential client flows\r\n * @param clientAssertionType\r\n */\r\n RequestParameterBuilder.prototype.addClientAssertionType = function (clientAssertionType) {\r\n if (!StringUtils.isEmpty(clientAssertionType)) {\r\n this.parameters.set(AADServerParamKeys.CLIENT_ASSERTION_TYPE, encodeURIComponent(clientAssertionType));\r\n }\r\n };\r\n /**\r\n * add OBO assertion for confidential client flows\r\n * @param clientAssertion\r\n */\r\n RequestParameterBuilder.prototype.addOboAssertion = function (oboAssertion) {\r\n this.parameters.set(AADServerParamKeys.OBO_ASSERTION, encodeURIComponent(oboAssertion));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addRequestTokenUse = function (tokenUse) {\r\n this.parameters.set(AADServerParamKeys.REQUESTED_TOKEN_USE, encodeURIComponent(tokenUse));\r\n };\r\n /**\r\n * add grant type\r\n * @param grantType\r\n */\r\n RequestParameterBuilder.prototype.addGrantType = function (grantType) {\r\n this.parameters.set(AADServerParamKeys.GRANT_TYPE, encodeURIComponent(grantType));\r\n };\r\n /**\r\n * add client info\r\n *\r\n */\r\n RequestParameterBuilder.prototype.addClientInfo = function () {\r\n this.parameters.set(CLIENT_INFO, \"1\");\r\n };\r\n /**\r\n * add extraQueryParams\r\n * @param eQParams\r\n */\r\n RequestParameterBuilder.prototype.addExtraQueryParameters = function (eQParams) {\r\n var _this = this;\r\n var sanitizedEQParams = RequestValidator.sanitizeEQParams(eQParams, this.parameters);\r\n Object.keys(sanitizedEQParams).forEach(function (key) {\r\n _this.parameters.set(key, eQParams[key]);\r\n });\r\n };\r\n RequestParameterBuilder.prototype.addClientCapabilitiesToClaims = function (claims, clientCapabilities) {\r\n var mergedClaims;\r\n // Parse provided claims into JSON object or initialize empty object\r\n if (!claims) {\r\n mergedClaims = {};\r\n }\r\n else {\r\n try {\r\n mergedClaims = JSON.parse(claims);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidClaimsRequestError();\r\n }\r\n }\r\n if (clientCapabilities && clientCapabilities.length > 0) {\r\n if (!mergedClaims.hasOwnProperty(ClaimsRequestKeys.ACCESS_TOKEN)) {\r\n // Add access_token key to claims object\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN] = {};\r\n }\r\n // Add xms_cc claim with provided clientCapabilities to access_token key\r\n mergedClaims[ClaimsRequestKeys.ACCESS_TOKEN][ClaimsRequestKeys.XMS_CC] = {\r\n values: clientCapabilities\r\n };\r\n }\r\n return JSON.stringify(mergedClaims);\r\n };\r\n /**\r\n * adds `username` for Password Grant flow\r\n * @param username\r\n */\r\n RequestParameterBuilder.prototype.addUsername = function (username) {\r\n this.parameters.set(PasswordGrantConstants.username, encodeURIComponent(username));\r\n };\r\n /**\r\n * adds `password` for Password Grant flow\r\n * @param password\r\n */\r\n RequestParameterBuilder.prototype.addPassword = function (password) {\r\n this.parameters.set(PasswordGrantConstants.password, encodeURIComponent(password));\r\n };\r\n /**\r\n * add pop_jwk to query params\r\n * @param cnfString\r\n */\r\n RequestParameterBuilder.prototype.addPopToken = function (cnfString) {\r\n if (!StringUtils.isEmpty(cnfString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.POP);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(cnfString));\r\n }\r\n };\r\n /**\r\n * add SSH JWK and key ID to query params\r\n */\r\n RequestParameterBuilder.prototype.addSshJwk = function (sshJwkString) {\r\n if (!StringUtils.isEmpty(sshJwkString)) {\r\n this.parameters.set(AADServerParamKeys.TOKEN_TYPE, AuthenticationScheme.SSH);\r\n this.parameters.set(AADServerParamKeys.REQ_CNF, encodeURIComponent(sshJwkString));\r\n }\r\n };\r\n /**\r\n * add server telemetry fields\r\n * @param serverTelemetryManager\r\n */\r\n RequestParameterBuilder.prototype.addServerTelemetry = function (serverTelemetryManager) {\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_CURR_TELEM, serverTelemetryManager.generateCurrentRequestHeaderValue());\r\n this.parameters.set(AADServerParamKeys.X_CLIENT_LAST_TELEM, serverTelemetryManager.generateLastRequestHeaderValue());\r\n };\r\n /**\r\n * Adds parameter that indicates to the server that throttling is supported\r\n */\r\n RequestParameterBuilder.prototype.addThrottling = function () {\r\n this.parameters.set(AADServerParamKeys.X_MS_LIB_CAPABILITY, ThrottlingConstants.X_MS_LIB_CAPABILITY_VALUE);\r\n };\r\n /**\r\n * Adds logout_hint parameter for \"silent\" logout which prevent server account picker\r\n */\r\n RequestParameterBuilder.prototype.addLogoutHint = function (logoutHint) {\r\n this.parameters.set(AADServerParamKeys.LOGOUT_HINT, encodeURIComponent(logoutHint));\r\n };\r\n /**\r\n * Utility to create a URL from the params map\r\n */\r\n RequestParameterBuilder.prototype.createQueryString = function () {\r\n var queryParameterArray = new Array();\r\n this.parameters.forEach(function (value, key) {\r\n queryParameterArray.push(key + \"=\" + value);\r\n });\r\n return queryParameterArray.join(\"&\");\r\n };\r\n return RequestParameterBuilder;\r\n}());\n\nexport { RequestParameterBuilder };\n//# sourceMappingURL=RequestParameterBuilder.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientConfiguration } from '../config/ClientConfiguration.js';\nimport { NetworkManager } from '../network/NetworkManager.js';\nimport { Logger } from '../logger/Logger.js';\nimport { HeaderNames, Constants } from '../utils/Constants.js';\nimport { name, version } from '../packageMetadata.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Base application class which will construct requests to send to and handle responses from the Microsoft STS using the authorization code flow.\r\n */\r\nvar BaseClient = /** @class */ (function () {\r\n function BaseClient(configuration, performanceClient) {\r\n // Set the configuration\r\n this.config = buildClientConfiguration(configuration);\r\n // Initialize the logger\r\n this.logger = new Logger(this.config.loggerOptions, name, version);\r\n // Initialize crypto\r\n this.cryptoUtils = this.config.cryptoInterface;\r\n // Initialize storage interface\r\n this.cacheManager = this.config.storageInterface;\r\n // Set the network interface\r\n this.networkClient = this.config.networkInterface;\r\n // Set the NetworkManager\r\n this.networkManager = new NetworkManager(this.networkClient, this.cacheManager);\r\n // Set TelemetryManager\r\n this.serverTelemetryManager = this.config.serverTelemetryManager;\r\n // set Authority\r\n this.authority = this.config.authOptions.authority;\r\n // set performance telemetry client\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Creates default headers for requests to token endpoint\r\n */\r\n BaseClient.prototype.createTokenRequestHeaders = function (ccsCred) {\r\n var headers = {};\r\n headers[HeaderNames.CONTENT_TYPE] = Constants.URL_FORM_CONTENT_TYPE;\r\n if (!this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n var clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n headers[HeaderNames.CCS_HEADER] = \"Oid:\" + clientInfo.uid + \"@\" + clientInfo.utid;\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n headers[HeaderNames.CCS_HEADER] = \"UPN: \" + ccsCred.credential;\r\n break;\r\n }\r\n }\r\n return headers;\r\n };\r\n /**\r\n * Http post to token endpoint\r\n * @param tokenEndpoint\r\n * @param queryString\r\n * @param headers\r\n * @param thumbprint\r\n */\r\n BaseClient.prototype.executePostToTokenEndpoint = function (tokenEndpoint, queryString, headers, thumbprint) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.networkManager.sendPostRequest(thumbprint, tokenEndpoint, { body: queryString, headers: headers })];\r\n case 1:\r\n response = _a.sent();\r\n if (this.config.serverTelemetryManager && response.status < 500 && response.status !== 429) {\r\n // Telemetry data successfully logged by server, clear Telemetry cache\r\n this.config.serverTelemetryManager.clearTelemetryCache();\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the authority object of the client. Endpoint discovery must be completed.\r\n * @param updatedAuthority\r\n */\r\n BaseClient.prototype.updateAuthority = function (updatedAuthority) {\r\n if (!updatedAuthority.discoveryComplete()) {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Updated authority has not completed endpoint discovery.\");\r\n }\r\n this.authority = updatedAuthority;\r\n };\r\n /**\r\n * Creates query string for the /token request\r\n * @param request\r\n */\r\n BaseClient.prototype.createTokenQueryParameters = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.tokenQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n return BaseClient;\r\n}());\n\nexport { BaseClient };\n//# sourceMappingURL=BaseClient.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar CacheRecord = /** @class */ (function () {\r\n function CacheRecord(accountEntity, idTokenEntity, accessTokenEntity, refreshTokenEntity, appMetadataEntity) {\r\n this.account = accountEntity || null;\r\n this.idToken = idTokenEntity || null;\r\n this.accessToken = accessTokenEntity || null;\r\n this.refreshToken = refreshTokenEntity || null;\r\n this.appMetadata = appMetadataEntity || null;\r\n }\r\n return CacheRecord;\r\n}());\n\nexport { CacheRecord };\n//# sourceMappingURL=CacheRecord.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * This class instance helps track the memory changes facilitating\r\n * decisions to read from and write to the persistent cache\r\n */ var TokenCacheContext = /** @class */ (function () {\r\n function TokenCacheContext(tokenCache, hasChanged) {\r\n this.cache = tokenCache;\r\n this.hasChanged = hasChanged;\r\n }\r\n Object.defineProperty(TokenCacheContext.prototype, \"cacheHasChanged\", {\r\n /**\r\n * boolean which indicates the changes in cache\r\n */\r\n get: function () {\r\n return this.hasChanged;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(TokenCacheContext.prototype, \"tokenCache\", {\r\n /**\r\n * function to retrieve the token cache\r\n */\r\n get: function () {\r\n return this.cache;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return TokenCacheContext;\r\n}());\n\nexport { TokenCacheContext };\n//# sourceMappingURL=TokenCacheContext.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { buildClientInfo } from '../account/ClientInfo.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { ScopeSet } from '../request/ScopeSet.js';\nimport { AccountEntity } from '../cache/entities/AccountEntity.js';\nimport { AuthorityType } from '../authority/AuthorityType.js';\nimport { IdTokenEntity } from '../cache/entities/IdTokenEntity.js';\nimport { AccessTokenEntity } from '../cache/entities/AccessTokenEntity.js';\nimport { RefreshTokenEntity } from '../cache/entities/RefreshTokenEntity.js';\nimport { InteractionRequiredAuthError } from '../error/InteractionRequiredAuthError.js';\nimport { CacheRecord } from '../cache/entities/CacheRecord.js';\nimport { ProtocolUtils } from '../utils/ProtocolUtils.js';\nimport { Constants, AuthenticationScheme, THE_FAMILY_ID } from '../utils/Constants.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { AppMetadataEntity } from '../cache/entities/AppMetadataEntity.js';\nimport { TokenCacheContext } from '../cache/persistence/TokenCacheContext.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Class that handles response parsing.\r\n */\r\nvar ResponseHandler = /** @class */ (function () {\r\n function ResponseHandler(clientId, cacheStorage, cryptoObj, logger, serializableCache, persistencePlugin, performanceClient) {\r\n this.clientId = clientId;\r\n this.cacheStorage = cacheStorage;\r\n this.cryptoObj = cryptoObj;\r\n this.logger = logger;\r\n this.serializableCache = serializableCache;\r\n this.persistencePlugin = persistencePlugin;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Function which validates server authorization code response.\r\n * @param serverResponseHash\r\n * @param cachedState\r\n * @param cryptoObj\r\n */\r\n ResponseHandler.prototype.validateServerAuthorizationCodeResponse = function (serverResponseHash, cachedState, cryptoObj) {\r\n if (!serverResponseHash.state || !cachedState) {\r\n throw !serverResponseHash.state ? ClientAuthError.createStateNotFoundError(\"Server State\") : ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n if (decodeURIComponent(serverResponseHash.state) !== decodeURIComponent(cachedState)) {\r\n throw ClientAuthError.createStateMismatchError();\r\n }\r\n // Check for error\r\n if (serverResponseHash.error || serverResponseHash.error_description || serverResponseHash.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponseHash.error, serverResponseHash.error_description, serverResponseHash.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror, serverResponseHash.timestamp || Constants.EMPTY_STRING, serverResponseHash.trace_id || Constants.EMPTY_STRING, serverResponseHash.correlation_id || Constants.EMPTY_STRING, serverResponseHash.claims || Constants.EMPTY_STRING);\r\n }\r\n throw new ServerError(serverResponseHash.error || Constants.EMPTY_STRING, serverResponseHash.error_description, serverResponseHash.suberror);\r\n }\r\n if (serverResponseHash.client_info) {\r\n buildClientInfo(serverResponseHash.client_info, cryptoObj);\r\n }\r\n };\r\n /**\r\n * Function which validates server authorization token response.\r\n * @param serverResponse\r\n */\r\n ResponseHandler.prototype.validateTokenResponse = function (serverResponse) {\r\n // Check for error\r\n if (serverResponse.error || serverResponse.error_description || serverResponse.suberror) {\r\n if (InteractionRequiredAuthError.isInteractionRequiredError(serverResponse.error, serverResponse.error_description, serverResponse.suberror)) {\r\n throw new InteractionRequiredAuthError(serverResponse.error, serverResponse.error_description, serverResponse.suberror, serverResponse.timestamp || Constants.EMPTY_STRING, serverResponse.trace_id || Constants.EMPTY_STRING, serverResponse.correlation_id || Constants.EMPTY_STRING, serverResponse.claims || Constants.EMPTY_STRING);\r\n }\r\n var errString = serverResponse.error_codes + \" - [\" + serverResponse.timestamp + \"]: \" + serverResponse.error_description + \" - Correlation ID: \" + serverResponse.correlation_id + \" - Trace ID: \" + serverResponse.trace_id;\r\n throw new ServerError(serverResponse.error, errString, serverResponse.suberror);\r\n }\r\n };\r\n /**\r\n * Returns a constructed token response based on given string. Also manages the cache updates and cleanups.\r\n * @param serverTokenResponse\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.handleServerTokenResponse = function (serverTokenResponse, authority, reqTimestamp, request, authCodePayload, userAssertionHash, handlingRefreshTokenResponse, forceCacheRefreshTokenResponse, serverRequestId) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj, authTime, requestStateObj, cacheRecord, cacheContext, key, account;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.HandleServerTokenResponse, serverTokenResponse.correlation_id);\r\n if (serverTokenResponse.id_token) {\r\n idTokenObj = new AuthToken(serverTokenResponse.id_token || Constants.EMPTY_STRING, this.cryptoObj);\r\n // token nonce check (TODO: Add a warning if no nonce is given?)\r\n if (authCodePayload && !StringUtils.isEmpty(authCodePayload.nonce)) {\r\n if (idTokenObj.claims.nonce !== authCodePayload.nonce) {\r\n throw ClientAuthError.createNonceMismatchError();\r\n }\r\n }\r\n // token max_age check\r\n if (request.maxAge || (request.maxAge === 0)) {\r\n authTime = idTokenObj.claims.auth_time;\r\n if (!authTime) {\r\n throw ClientAuthError.createAuthTimeNotFoundError();\r\n }\r\n AuthToken.checkMaxAge(authTime, request.maxAge);\r\n }\r\n }\r\n // generate homeAccountId\r\n this.homeAccountIdentifier = AccountEntity.generateHomeAccountId(serverTokenResponse.client_info || Constants.EMPTY_STRING, authority.authorityType, this.logger, this.cryptoObj, idTokenObj);\r\n if (!!authCodePayload && !!authCodePayload.state) {\r\n requestStateObj = ProtocolUtils.parseRequestState(this.cryptoObj, authCodePayload.state);\r\n }\r\n // Add keyId from request to serverTokenResponse if defined\r\n serverTokenResponse.key_id = serverTokenResponse.key_id || request.sshKid || undefined;\r\n cacheRecord = this.generateCacheRecord(serverTokenResponse, authority, reqTimestamp, request, idTokenObj, userAssertionHash, authCodePayload);\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, , 5, 8]);\r\n if (!(this.persistencePlugin && this.serializableCache)) return [3 /*break*/, 3];\r\n this.logger.verbose(\"Persistence enabled, calling beforeCacheAccess\");\r\n cacheContext = new TokenCacheContext(this.serializableCache, true);\r\n return [4 /*yield*/, this.persistencePlugin.beforeCacheAccess(cacheContext)];\r\n case 2:\r\n _b.sent();\r\n _b.label = 3;\r\n case 3:\r\n /*\r\n * When saving a refreshed tokens to the cache, it is expected that the account that was used is present in the cache.\r\n * If not present, we should return null, as it's the case that another application called removeAccount in between\r\n * the calls to getAllAccounts and acquireTokenSilent. We should not overwrite that removal, unless explicitly flagged by\r\n * the developer, as in the case of refresh token flow used in ADAL Node to MSAL Node migration.\r\n */\r\n if (handlingRefreshTokenResponse && !forceCacheRefreshTokenResponse && cacheRecord.account) {\r\n key = cacheRecord.account.generateAccountKey();\r\n account = this.cacheStorage.getAccount(key);\r\n if (!account) {\r\n this.logger.warning(\"Account used to refresh tokens not in persistence, refreshed tokens will not be stored in the cache\");\r\n return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj, undefined, serverRequestId)];\r\n }\r\n }\r\n return [4 /*yield*/, this.cacheStorage.saveCacheRecord(cacheRecord)];\r\n case 4:\r\n _b.sent();\r\n return [3 /*break*/, 8];\r\n case 5:\r\n if (!(this.persistencePlugin && this.serializableCache && cacheContext)) return [3 /*break*/, 7];\r\n this.logger.verbose(\"Persistence enabled, calling afterCacheAccess\");\r\n return [4 /*yield*/, this.persistencePlugin.afterCacheAccess(cacheContext)];\r\n case 6:\r\n _b.sent();\r\n _b.label = 7;\r\n case 7: return [7 /*endfinally*/];\r\n case 8: return [2 /*return*/, ResponseHandler.generateAuthenticationResult(this.cryptoObj, authority, cacheRecord, false, request, idTokenObj, requestStateObj, serverTokenResponse, serverRequestId)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates CacheRecord\r\n * @param serverTokenResponse\r\n * @param idTokenObj\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateCacheRecord = function (serverTokenResponse, authority, reqTimestamp, request, idTokenObj, userAssertionHash, authCodePayload) {\r\n var env = authority.getPreferredCache();\r\n if (StringUtils.isEmpty(env)) {\r\n throw ClientAuthError.createInvalidCacheEnvironmentError();\r\n }\r\n // IdToken: non AAD scenarios can have empty realm\r\n var cachedIdToken;\r\n var cachedAccount;\r\n if (!StringUtils.isEmpty(serverTokenResponse.id_token) && !!idTokenObj) {\r\n cachedIdToken = IdTokenEntity.createIdTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.id_token || Constants.EMPTY_STRING, this.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING);\r\n cachedAccount = this.generateAccountEntity(serverTokenResponse, idTokenObj, authority, authCodePayload);\r\n }\r\n // AccessToken\r\n var cachedAccessToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.access_token)) {\r\n // If scopes not returned in server response, use request scopes\r\n var responseScopes = serverTokenResponse.scope ? ScopeSet.fromString(serverTokenResponse.scope) : new ScopeSet(request.scopes || []);\r\n /*\r\n * Use timestamp calculated before request\r\n * Server may return timestamps as strings, parse to numbers if so.\r\n */\r\n var expiresIn = (typeof serverTokenResponse.expires_in === \"string\" ? parseInt(serverTokenResponse.expires_in, 10) : serverTokenResponse.expires_in) || 0;\r\n var extExpiresIn = (typeof serverTokenResponse.ext_expires_in === \"string\" ? parseInt(serverTokenResponse.ext_expires_in, 10) : serverTokenResponse.ext_expires_in) || 0;\r\n var refreshIn = (typeof serverTokenResponse.refresh_in === \"string\" ? parseInt(serverTokenResponse.refresh_in, 10) : serverTokenResponse.refresh_in) || undefined;\r\n var tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n var extendedTokenExpirationSeconds = tokenExpirationSeconds + extExpiresIn;\r\n var refreshOnSeconds = refreshIn && refreshIn > 0 ? reqTimestamp + refreshIn : undefined;\r\n // non AAD scenarios can have empty realm\r\n cachedAccessToken = AccessTokenEntity.createAccessTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.access_token || Constants.EMPTY_STRING, this.clientId, idTokenObj ? idTokenObj.claims.tid || Constants.EMPTY_STRING : authority.tenant, responseScopes.printScopes(), tokenExpirationSeconds, extendedTokenExpirationSeconds, this.cryptoObj, refreshOnSeconds, serverTokenResponse.token_type, userAssertionHash, serverTokenResponse.key_id, request.claims, request.requestedClaimsHash);\r\n }\r\n // refreshToken\r\n var cachedRefreshToken = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.refresh_token)) {\r\n cachedRefreshToken = RefreshTokenEntity.createRefreshTokenEntity(this.homeAccountIdentifier, env, serverTokenResponse.refresh_token || Constants.EMPTY_STRING, this.clientId, serverTokenResponse.foci, userAssertionHash);\r\n }\r\n // appMetadata\r\n var cachedAppMetadata = null;\r\n if (!StringUtils.isEmpty(serverTokenResponse.foci)) {\r\n cachedAppMetadata = AppMetadataEntity.createAppMetadataEntity(this.clientId, env, serverTokenResponse.foci);\r\n }\r\n return new CacheRecord(cachedAccount, cachedIdToken, cachedAccessToken, cachedRefreshToken, cachedAppMetadata);\r\n };\r\n /**\r\n * Generate Account\r\n * @param serverTokenResponse\r\n * @param idToken\r\n * @param authority\r\n */\r\n ResponseHandler.prototype.generateAccountEntity = function (serverTokenResponse, idToken, authority, authCodePayload) {\r\n var authorityType = authority.authorityType;\r\n var cloudGraphHostName = authCodePayload ? authCodePayload.cloud_graph_host_name : Constants.EMPTY_STRING;\r\n var msGraphhost = authCodePayload ? authCodePayload.msgraph_host : Constants.EMPTY_STRING;\r\n // ADFS does not require client_info in the response\r\n if (authorityType === AuthorityType.Adfs) {\r\n this.logger.verbose(\"Authority type is ADFS, creating ADFS account\");\r\n return AccountEntity.createGenericAccount(this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost);\r\n }\r\n // This fallback applies to B2C as well as they fall under an AAD account type.\r\n if (StringUtils.isEmpty(serverTokenResponse.client_info) && authority.protocolMode === \"AAD\") {\r\n throw ClientAuthError.createClientInfoEmptyError();\r\n }\r\n return serverTokenResponse.client_info ?\r\n AccountEntity.createAccount(serverTokenResponse.client_info, this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost) :\r\n AccountEntity.createGenericAccount(this.homeAccountIdentifier, idToken, authority, cloudGraphHostName, msGraphhost);\r\n };\r\n /**\r\n * Creates an @AuthenticationResult from @CacheRecord , @IdToken , and a boolean that states whether or not the result is from cache.\r\n *\r\n * Optionally takes a state string that is set as-is in the response.\r\n *\r\n * @param cacheRecord\r\n * @param idTokenObj\r\n * @param fromTokenCache\r\n * @param stateString\r\n */\r\n ResponseHandler.generateAuthenticationResult = function (cryptoObj, authority, cacheRecord, fromTokenCache, request, idTokenObj, requestState, serverTokenResponse, requestId) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var accessToken, responseScopes, expiresOn, extExpiresOn, familyId, popTokenGenerator, _d, secret, keyId, uid, tid;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n accessToken = Constants.EMPTY_STRING;\r\n responseScopes = [];\r\n expiresOn = null;\r\n familyId = Constants.EMPTY_STRING;\r\n if (!cacheRecord.accessToken) return [3 /*break*/, 4];\r\n if (!(cacheRecord.accessToken.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(cryptoObj);\r\n _d = cacheRecord.accessToken, secret = _d.secret, keyId = _d.keyId;\r\n if (!keyId) {\r\n throw ClientAuthError.createKeyIdMissingError();\r\n }\r\n return [4 /*yield*/, popTokenGenerator.signPopToken(secret, keyId, request)];\r\n case 1:\r\n accessToken = _e.sent();\r\n return [3 /*break*/, 3];\r\n case 2:\r\n accessToken = cacheRecord.accessToken.secret;\r\n _e.label = 3;\r\n case 3:\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n _e.label = 4;\r\n case 4:\r\n if (cacheRecord.appMetadata) {\r\n familyId = cacheRecord.appMetadata.familyId === THE_FAMILY_ID ? THE_FAMILY_ID : Constants.EMPTY_STRING;\r\n }\r\n uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n // for hybrid + native bridge enablement, send back the native account Id\r\n if ((serverTokenResponse === null || serverTokenResponse === void 0 ? void 0 : serverTokenResponse.spa_accountid) && !!cacheRecord.account) {\r\n cacheRecord.account.nativeAccountId = serverTokenResponse === null || serverTokenResponse === void 0 ? void 0 : serverTokenResponse.spa_accountid;\r\n }\r\n return [2 /*return*/, {\r\n authority: authority.canonicalAuthority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: cacheRecord.account ? cacheRecord.account.getAccountInfo() : null,\r\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n accessToken: accessToken,\r\n fromCache: fromTokenCache,\r\n expiresOn: expiresOn,\r\n correlationId: request.correlationId,\r\n requestId: requestId || Constants.EMPTY_STRING,\r\n extExpiresOn: extExpiresOn,\r\n familyId: familyId,\r\n tokenType: ((_a = cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n state: requestState ? requestState.userRequestState : Constants.EMPTY_STRING,\r\n cloudGraphHostName: ((_b = cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n msGraphHost: ((_c = cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING,\r\n code: serverTokenResponse === null || serverTokenResponse === void 0 ? void 0 : serverTokenResponse.spa_code,\r\n fromNativeBroker: false,\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n return ResponseHandler;\r\n}());\n\nexport { ResponseHandler };\n//# sourceMappingURL=ResponseHandler.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign, __spreadArrays } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { Separators, AADServerParamKeys, AuthenticationScheme, GrantType, PromptValue, HeaderNames } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { buildClientInfo, buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { RequestValidator } from '../request/RequestValidator.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Oauth2.0 Authorization Code client\r\n */\r\nvar AuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends(AuthorizationCodeClient, _super);\r\n function AuthorizationCodeClient(configuration, performanceClient) {\r\n var _this = _super.call(this, configuration, performanceClient) || this;\r\n // Flag to indicate if client is for hybrid spa auth code redemption\r\n _this.includeRedirectUri = true;\r\n return _this;\r\n }\r\n /**\r\n * Creates the URL of the authorization request letting the user input credentials and consent to the\r\n * application. The URL target the /authorize endpoint of the authority configured in the\r\n * application object.\r\n *\r\n * Once the user inputs their credentials and consents, the authority will send a response to the redirect URI\r\n * sent in the request and should contain an authorization code, which can then be used to acquire tokens via\r\n * acquireToken(AuthorizationCodeRequest)\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.getAuthCodeUrl = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var queryString;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.GetAuthCodeUrl, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthClientCreateQueryString, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeUrlQueryString(request)];\r\n case 1:\r\n queryString = _c.sent();\r\n return [2 /*return*/, UrlString.appendQueryString(this.authority.authorizationEndpoint, queryString)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * API to acquire a token in exchange of 'authorization_code` acquired by the user in the first leg of the\r\n * authorization_code_grant\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.acquireToken = function (request, authCodePayload) {\r\n var _a, _b, _c, _d, _e, _f;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, reqTimestamp, response, requestId, httpVerAuthority, responseHandler;\r\n var _this = this;\r\n return __generator(this, function (_g) {\r\n switch (_g.label) {\r\n case 0:\r\n if (!request || !request.code) {\r\n throw ClientAuthError.createTokenRequestCannotBeMadeError();\r\n }\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientAcquireToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(\"AuthCodeClientAcquireToken\", request.correlationId);\r\n this.logger.info(\"in acquireToken call in auth-code client\");\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.AuthClientExecuteTokenRequest, request.correlationId);\r\n return [4 /*yield*/, this.executeTokenRequest(this.authority, request)];\r\n case 1:\r\n response = _g.sent();\r\n requestId = (_d = response.headers) === null || _d === void 0 ? void 0 : _d[HeaderNames.X_MS_REQUEST_ID];\r\n httpVerAuthority = (_e = response.headers) === null || _e === void 0 ? void 0 : _e[HeaderNames.X_MS_HTTP_VERSION];\r\n if (httpVerAuthority) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n httpVerAuthority: httpVerAuthority\r\n });\r\n }\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin, this.performanceClient);\r\n // Validate response. This function throws a server error if an error is returned by the server.\r\n responseHandler.validateTokenResponse(response.body);\r\n (_f = this.performanceClient) === null || _f === void 0 ? void 0 : _f.setPreQueueTime(PerformanceEvents.HandleServerTokenResponse, request.correlationId);\r\n return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, authCodePayload, undefined, undefined, undefined, requestId).then(function (result) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.logger.verbose(\"Error in fetching token in ACC\", request.correlationId);\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handles the hash fragment response from public client code request. Returns a code response used by\r\n * the client to exchange for a token in acquireToken.\r\n * @param hashFragment\r\n */\r\n AuthorizationCodeClient.prototype.handleFragmentResponse = function (hashFragment, cachedState) {\r\n // Handle responses.\r\n var responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, null, null);\r\n // Deserialize hash fragment response parameters.\r\n var hashUrlString = new UrlString(hashFragment);\r\n // Deserialize hash fragment response parameters.\r\n var serverParams = UrlString.getDeserializedHash(hashUrlString.getHash());\r\n // Get code response\r\n responseHandler.validateServerAuthorizationCodeResponse(serverParams, cachedState, this.cryptoUtils);\r\n // throw when there is no auth code in the response\r\n if (!serverParams.code) {\r\n throw ClientAuthError.createNoAuthCodeInServerResponseError();\r\n }\r\n return __assign(__assign({}, serverParams), { \r\n // Code param is optional in ServerAuthorizationCodeResponse but required in AuthorizationCodePaylod\r\n code: serverParams.code });\r\n };\r\n /**\r\n * Used to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param authorityUri\r\n */\r\n AuthorizationCodeClient.prototype.getLogoutUri = function (logoutRequest) {\r\n // Throw error if logoutRequest is null/undefined\r\n if (!logoutRequest) {\r\n throw ClientConfigurationError.createEmptyLogoutRequestError();\r\n }\r\n var queryString = this.createLogoutUrlQueryString(logoutRequest);\r\n // Construct logout URI\r\n return UrlString.appendQueryString(this.authority.endSessionEndpoint, queryString);\r\n };\r\n /**\r\n * Executes POST request to token endpoint\r\n * @param authority\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.executeTokenRequest = function (authority, request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var queryParametersString, endpoint, requestBody, ccsCredential, clientInfo, headers, thumbprint;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientExecuteTokenRequest, request.correlationId);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthClientCreateTokenRequestBody, request.correlationId);\r\n queryParametersString = this.createTokenQueryParameters(request);\r\n endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParametersString);\r\n return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _c.sent();\r\n ccsCredential = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCredential = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n headers = this.createTokenRequestHeaders(ccsCredential || request.ccsCredential);\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates a map for all the params to be sent to the service\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createTokenRequestBody = function (request) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, clientAssertion, popTokenGenerator, reqCnfData, correlationId, ccsCred, clientInfo, clientInfo;\r\n var _c;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientCreateTokenRequestBody, request.correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n /*\r\n * For hybrid spa flow, there will be a code but no verifier\r\n * In this scenario, don't include redirect uri as auth code will not be bound to redirect URI\r\n */\r\n if (!this.includeRedirectUri) {\r\n // Just validate\r\n RequestValidator.validateRedirectUri(request.redirectUri);\r\n }\r\n else {\r\n // Validate and include redirect uri\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n }\r\n // Add scope array, parameter builder will add default scopes and dedupe\r\n parameterBuilder.addScopes(request.scopes);\r\n // add code: user set, not validated\r\n parameterBuilder.addAuthorizationCode(request.code);\r\n // Add library metadata\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n // add code_verifier if passed\r\n if (request.codeVerifier) {\r\n parameterBuilder.addCodeVerifier(request.codeVerifier);\r\n }\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n parameterBuilder.addGrantType(GrantType.AUTHORIZATION_CODE_GRANT);\r\n parameterBuilder.addClientInfo();\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils, this.performanceClient);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _d.sent();\r\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfString);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n }\r\n _d.label = 3;\r\n case 3:\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n ccsCred = undefined;\r\n if (request.clientInfo) {\r\n try {\r\n clientInfo = buildClientInfo(request.clientInfo, this.cryptoUtils);\r\n ccsCred = {\r\n credential: \"\" + clientInfo.uid + Separators.CLIENT_INFO_SEPARATOR + clientInfo.utid,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n };\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse client info for CCS Header: \" + e);\r\n }\r\n }\r\n else {\r\n ccsCred = request.ccsCredential;\r\n }\r\n // Adds these as parameters in the request instead of headers to prevent CORS preflight request\r\n if (this.config.systemOptions.preventCorsPreflight && ccsCred) {\r\n switch (ccsCred.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(ccsCred.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(ccsCred.credential);\r\n break;\r\n }\r\n }\r\n if (request.tokenBodyParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.tokenBodyParameters);\r\n }\r\n // Add hybrid spa parameters if not already provided\r\n if (request.enableSpaAuthorizationCode && (!request.tokenBodyParameters || !request.tokenBodyParameters[AADServerParamKeys.RETURN_SPA_CODE])) {\r\n parameterBuilder.addExtraQueryParameters((_c = {},\r\n _c[AADServerParamKeys.RETURN_SPA_CODE] = \"1\",\r\n _c));\r\n }\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This API validates the `AuthorizationCodeUrlRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createAuthCodeUrlQueryString = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var parameterBuilder, requestScopes, correlationId, accountSid, accountLoginHintClaim, clientInfo, clientInfo, clientInfo, popTokenGenerator, reqCnfData;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthClientCreateQueryString, request.correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n requestScopes = __spreadArrays(request.scopes || [], request.extraScopesToConsent || []);\r\n parameterBuilder.addScopes(requestScopes);\r\n // validate the redirectUri (to be a non null value)\r\n parameterBuilder.addRedirectUri(request.redirectUri);\r\n correlationId = request.correlationId || this.config.cryptoInterface.createNewGuid();\r\n parameterBuilder.addCorrelationId(correlationId);\r\n // add response_mode. If not passed in it defaults to query.\r\n parameterBuilder.addResponseMode(request.responseMode);\r\n // add response_type = code\r\n parameterBuilder.addResponseTypeCode();\r\n // add library info parameters\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n // add client_info=1\r\n parameterBuilder.addClientInfo();\r\n if (request.codeChallenge && request.codeChallengeMethod) {\r\n parameterBuilder.addCodeChallengeParams(request.codeChallenge, request.codeChallengeMethod);\r\n }\r\n if (request.prompt) {\r\n parameterBuilder.addPrompt(request.prompt);\r\n }\r\n if (request.domainHint) {\r\n parameterBuilder.addDomainHint(request.domainHint);\r\n }\r\n // Add sid or loginHint with preference for login_hint claim (in request) -> sid -> loginHint (upn/email) -> username of AccountInfo object\r\n if (request.prompt !== PromptValue.SELECT_ACCOUNT) {\r\n // AAD will throw if prompt=select_account is passed with an account hint\r\n if (request.sid && request.prompt === PromptValue.NONE) {\r\n // SessionID is only used in silent calls\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from request\");\r\n parameterBuilder.addSid(request.sid);\r\n }\r\n else if (request.account) {\r\n accountSid = this.extractAccountSid(request.account);\r\n accountLoginHintClaim = this.extractLoginHint(request.account);\r\n // If login_hint claim is present, use it over sid/username\r\n if (accountLoginHintClaim) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: login_hint claim present on account\");\r\n parameterBuilder.addLoginHint(accountLoginHintClaim);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n else if (accountSid && request.prompt === PromptValue.NONE) {\r\n /*\r\n * If account and loginHint are provided, we will check account first for sid before adding loginHint\r\n * SessionId is only used in silent calls\r\n */\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is none, adding sid from account\");\r\n parameterBuilder.addSid(accountSid);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n else if (request.account.username) {\r\n // Fallback to account username if provided\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Adding login_hint from account\");\r\n parameterBuilder.addLoginHint(request.account.username);\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.account.homeAccountId);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Could not parse home account ID for CCS Header\");\r\n }\r\n }\r\n }\r\n else if (request.loginHint) {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: No account, adding login_hint from request\");\r\n parameterBuilder.addLoginHint(request.loginHint);\r\n parameterBuilder.addCcsUpn(request.loginHint);\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"createAuthCodeUrlQueryString: Prompt is select_account, ignoring account hints\");\r\n }\r\n if (request.nonce) {\r\n parameterBuilder.addNonce(request.nonce);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (!StringUtils.isEmpty(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n if (!request.nativeBroker) return [3 /*break*/, 2];\r\n // signal ests that this is a WAM call\r\n parameterBuilder.addNativeBroker();\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _b.sent();\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfString);\r\n _b.label = 2;\r\n case 2: return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * This API validates the `EndSessionRequest` and creates a URL\r\n * @param request\r\n */\r\n AuthorizationCodeClient.prototype.createLogoutUrlQueryString = function (request) {\r\n var parameterBuilder = new RequestParameterBuilder();\r\n if (request.postLogoutRedirectUri) {\r\n parameterBuilder.addPostLogoutRedirectUri(request.postLogoutRedirectUri);\r\n }\r\n if (request.correlationId) {\r\n parameterBuilder.addCorrelationId(request.correlationId);\r\n }\r\n if (request.idTokenHint) {\r\n parameterBuilder.addIdTokenHint(request.idTokenHint);\r\n }\r\n if (request.state) {\r\n parameterBuilder.addState(request.state);\r\n }\r\n if (request.logoutHint) {\r\n parameterBuilder.addLogoutHint(request.logoutHint);\r\n }\r\n if (request.extraQueryParameters) {\r\n parameterBuilder.addExtraQueryParameters(request.extraQueryParameters);\r\n }\r\n return parameterBuilder.createQueryString();\r\n };\r\n /**\r\n * Helper to get sid from account. Returns null if idTokenClaims are not present or sid is not present.\r\n * @param account\r\n */\r\n AuthorizationCodeClient.prototype.extractAccountSid = function (account) {\r\n var _a;\r\n return ((_a = account.idTokenClaims) === null || _a === void 0 ? void 0 : _a.sid) || null;\r\n };\r\n AuthorizationCodeClient.prototype.extractLoginHint = function (account) {\r\n var _a;\r\n return ((_a = account.idTokenClaims) === null || _a === void 0 ? void 0 : _a.login_hint) || null;\r\n };\r\n return AuthorizationCodeClient;\r\n}(BaseClient));\n\nexport { AuthorizationCodeClient };\n//# sourceMappingURL=AuthorizationCodeClient.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isOpenIdConfigResponse(response) {\r\n return (response.hasOwnProperty(\"authorization_endpoint\") &&\r\n response.hasOwnProperty(\"token_endpoint\") &&\r\n response.hasOwnProperty(\"issuer\") &&\r\n response.hasOwnProperty(\"jwks_uri\"));\r\n}\n\nexport { isOpenIdConfigResponse };\n//# sourceMappingURL=OpenIdConfigResponse.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar rawMetdataJSON = { \"endpointMetadata\": { \"https://login.microsoftonline.com/common/\": { \"token_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/common/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/common/\": { \"token_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/common/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/common/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/common/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" }, \"https://login.microsoftonline.com/consumers/\": { \"token_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/consumers/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/consumers/\": { \"token_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/consumers/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/9188040d-6c67-4c5b-b112-36a304b66dad/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/consumers/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/consumers/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" }, \"https://login.microsoftonline.com/organizations/\": { \"token_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.com/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.com/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.com/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.com/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.com\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pas.windows.net\" }, \"https://login.chinacloudapi.cn/organizations/\": { \"token_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.chinacloudapi.cn/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.partner.microsoftonline.cn/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://microsoftgraph.chinacloudapi.cn/oidc/userinfo\", \"authorization_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.chinacloudapi.cn/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.chinacloudapi.cn/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"partner.microsoftonline.cn\", \"cloud_graph_host_name\": \"graph.chinacloudapi.cn\", \"msgraph_host\": \"microsoftgraph.chinacloudapi.cn\", \"rbac_url\": \"https://pas.chinacloudapi.cn\" }, \"https://login.microsoftonline.us/organizations/\": { \"token_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/token\", \"token_endpoint_auth_methods_supported\": [\"client_secret_post\", \"private_key_jwt\", \"client_secret_basic\"], \"jwks_uri\": \"https://login.microsoftonline.us/organizations/discovery/v2.0/keys\", \"response_modes_supported\": [\"query\", \"fragment\", \"form_post\"], \"subject_types_supported\": [\"pairwise\"], \"id_token_signing_alg_values_supported\": [\"RS256\"], \"response_types_supported\": [\"code\", \"id_token\", \"code id_token\", \"id_token token\"], \"scopes_supported\": [\"openid\", \"profile\", \"email\", \"offline_access\"], \"issuer\": \"https://login.microsoftonline.us/{tenantid}/v2.0\", \"request_uri_parameter_supported\": false, \"userinfo_endpoint\": \"https://graph.microsoft.com/oidc/userinfo\", \"authorization_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/authorize\", \"device_authorization_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/devicecode\", \"http_logout_supported\": true, \"frontchannel_logout_supported\": true, \"end_session_endpoint\": \"https://login.microsoftonline.us/organizations/oauth2/v2.0/logout\", \"claims_supported\": [\"sub\", \"iss\", \"cloud_instance_name\", \"cloud_instance_host_name\", \"cloud_graph_host_name\", \"msgraph_host\", \"aud\", \"exp\", \"iat\", \"auth_time\", \"acr\", \"nonce\", \"preferred_username\", \"name\", \"tid\", \"ver\", \"at_hash\", \"c_hash\", \"email\"], \"kerberos_endpoint\": \"https://login.microsoftonline.us/organizations/kerberos\", \"tenant_region_scope\": null, \"cloud_instance_name\": \"microsoftonline.us\", \"cloud_graph_host_name\": \"graph.windows.net\", \"msgraph_host\": \"graph.microsoft.com\", \"rbac_url\": \"https://pasff.usgovcloudapi.net\" } }, \"instanceDiscoveryMetadata\": { \"https://login.microsoftonline.com/common/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/common/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/common/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/common/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.com/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/consumers/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/consumers/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.com/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.com/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.chinacloudapi.cn/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.chinacloudapi.cn/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] }, \"https://login.microsoftonline.us/organizations/\": { \"tenant_discovery_endpoint\": \"https://login.microsoftonline.us/organizations/v2.0/.well-known/openid-configuration\", \"api-version\": \"1.1\", \"metadata\": [{ \"preferred_network\": \"login.microsoftonline.com\", \"preferred_cache\": \"login.windows.net\", \"aliases\": [\"login.microsoftonline.com\", \"login.windows.net\", \"login.microsoft.com\", \"sts.windows.net\"] }, { \"preferred_network\": \"login.partner.microsoftonline.cn\", \"preferred_cache\": \"login.partner.microsoftonline.cn\", \"aliases\": [\"login.partner.microsoftonline.cn\", \"login.chinacloudapi.cn\"] }, { \"preferred_network\": \"login.microsoftonline.de\", \"preferred_cache\": \"login.microsoftonline.de\", \"aliases\": [\"login.microsoftonline.de\"] }, { \"preferred_network\": \"login.microsoftonline.us\", \"preferred_cache\": \"login.microsoftonline.us\", \"aliases\": [\"login.microsoftonline.us\", \"login.usgovcloudapi.net\"] }, { \"preferred_network\": \"login-us.microsoftonline.com\", \"preferred_cache\": \"login-us.microsoftonline.com\", \"aliases\": [\"login-us.microsoftonline.com\"] }] } } };\r\nvar EndpointMetadata = rawMetdataJSON.endpointMetadata;\r\nvar InstanceDiscoveryMetadata = rawMetdataJSON.instanceDiscoveryMetadata;\n\nexport { EndpointMetadata, InstanceDiscoveryMetadata, rawMetdataJSON };\n//# sourceMappingURL=AuthorityMetadata.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryResponse(response) {\r\n return (response.hasOwnProperty(\"tenant_discovery_endpoint\") &&\r\n response.hasOwnProperty(\"metadata\"));\r\n}\n\nexport { isCloudInstanceDiscoveryResponse };\n//# sourceMappingURL=CloudInstanceDiscoveryResponse.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isCloudInstanceDiscoveryErrorResponse(response) {\r\n return (response.hasOwnProperty(\"error\") &&\r\n response.hasOwnProperty(\"error_description\"));\r\n}\n\nexport { isCloudInstanceDiscoveryErrorResponse };\n//# sourceMappingURL=CloudInstanceDiscoveryErrorResponse.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { RegionDiscoverySources, ResponseCodes, Constants } from '../utils/Constants.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RegionDiscovery = /** @class */ (function () {\r\n function RegionDiscovery(networkInterface, performanceClient, correlationId) {\r\n this.networkInterface = networkInterface;\r\n this.performanceClient = performanceClient;\r\n this.correlationId = correlationId;\r\n }\r\n /**\r\n * Detect the region from the application's environment.\r\n *\r\n * @returns Promise\r\n */\r\n RegionDiscovery.prototype.detectRegion = function (environmentRegion, regionDiscoveryMetadata) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var autodetectedRegionName, options, localIMDSVersionResponse, currentIMDSVersion, currentIMDSVersionResponse;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);\r\n autodetectedRegionName = environmentRegion;\r\n if (!!autodetectedRegionName) return [3 /*break*/, 8];\r\n options = RegionDiscovery.IMDS_OPTIONS;\r\n _e.label = 1;\r\n case 1:\r\n _e.trys.push([1, 6, , 7]);\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [4 /*yield*/, this.getRegionFromIMDS(Constants.IMDS_VERSION, options)];\r\n case 2:\r\n localIMDSVersionResponse = _e.sent();\r\n if (localIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = localIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n if (!(localIMDSVersionResponse.status === ResponseCodes.httpBadRequest)) return [3 /*break*/, 5];\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetCurrentVersion, this.correlationId);\r\n return [4 /*yield*/, this.getCurrentVersion(options)];\r\n case 3:\r\n currentIMDSVersion = _e.sent();\r\n if (!currentIMDSVersion) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n }\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [4 /*yield*/, this.getRegionFromIMDS(currentIMDSVersion, options)];\r\n case 4:\r\n currentIMDSVersionResponse = _e.sent();\r\n if (currentIMDSVersionResponse.status === ResponseCodes.httpSuccess) {\r\n autodetectedRegionName = currentIMDSVersionResponse.body;\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.IMDS;\r\n }\r\n _e.label = 5;\r\n case 5: return [3 /*break*/, 7];\r\n case 6:\r\n _e.sent();\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n return [2 /*return*/, null];\r\n case 7: return [3 /*break*/, 9];\r\n case 8:\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.ENVIRONMENT_VARIABLE;\r\n _e.label = 9;\r\n case 9:\r\n // If no region was auto detected from the environment or from the IMDS endpoint, mark the attempt as a FAILED_AUTO_DETECTION\r\n if (!autodetectedRegionName) {\r\n regionDiscoveryMetadata.region_source = RegionDiscoverySources.FAILED_AUTO_DETECTION;\r\n }\r\n return [2 /*return*/, autodetectedRegionName || null];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Make the call to the IMDS endpoint\r\n *\r\n * @param imdsEndpointUrl\r\n * @returns Promise>\r\n */\r\n RegionDiscovery.prototype.getRegionFromIMDS = function (version, options) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_b) {\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryGetRegionFromIMDS, this.correlationId);\r\n return [2 /*return*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?api-version=\" + version + \"&format=text\", options, Constants.IMDS_TIMEOUT)];\r\n });\r\n });\r\n };\r\n /**\r\n * Get the most recent version of the IMDS endpoint available\r\n *\r\n * @returns Promise\r\n */\r\n RegionDiscovery.prototype.getCurrentVersion = function (options) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RegionDiscoveryGetCurrentVersion, this.correlationId);\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(Constants.IMDS_ENDPOINT + \"?format=json\", options)];\r\n case 2:\r\n response = _b.sent();\r\n // When IMDS endpoint is called without the api version query param, bad request response comes back with latest version.\r\n if (response.status === ResponseCodes.httpBadRequest && response.body && response.body[\"newest-versions\"] && response.body[\"newest-versions\"].length > 0) {\r\n return [2 /*return*/, response.body[\"newest-versions\"][0]];\r\n }\r\n return [2 /*return*/, null];\r\n case 3:\r\n _b.sent();\r\n return [2 /*return*/, null];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // Options for the IMDS endpoint request\r\n RegionDiscovery.IMDS_OPTIONS = {\r\n headers: {\r\n Metadata: \"true\",\r\n },\r\n };\r\n return RegionDiscovery;\r\n}());\n\nexport { RegionDiscovery };\n//# sourceMappingURL=RegionDiscovery.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { InteractionRequiredAuthError, AuthError } from '@azure/msal-common';\nimport { BrowserAuthError } from './BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeStatusCode;\r\n(function (NativeStatusCode) {\r\n NativeStatusCode[\"USER_INTERACTION_REQUIRED\"] = \"USER_INTERACTION_REQUIRED\";\r\n NativeStatusCode[\"USER_CANCEL\"] = \"USER_CANCEL\";\r\n NativeStatusCode[\"NO_NETWORK\"] = \"NO_NETWORK\";\r\n NativeStatusCode[\"TRANSIENT_ERROR\"] = \"TRANSIENT_ERROR\";\r\n NativeStatusCode[\"PERSISTENT_ERROR\"] = \"PERSISTENT_ERROR\";\r\n NativeStatusCode[\"DISABLED\"] = \"DISABLED\";\r\n NativeStatusCode[\"ACCOUNT_UNAVAILABLE\"] = \"ACCOUNT_UNAVAILABLE\";\r\n})(NativeStatusCode || (NativeStatusCode = {}));\r\nvar NativeAuthErrorMessage = {\r\n extensionError: {\r\n code: \"ContentError\"\r\n },\r\n userSwitch: {\r\n code: \"user_switch\",\r\n desc: \"User attempted to switch accounts in the native broker, which is not allowed. All new accounts must sign-in through the standard web flow first, please try again.\"\r\n },\r\n tokensNotFoundInCache: {\r\n code: \"tokens_not_found_in_internal_memory_cache\",\r\n desc: \"Tokens not cached in MSAL JS internal memory, please make the WAM request\"\r\n }\r\n};\r\nvar NativeAuthError = /** @class */ (function (_super) {\r\n __extends(NativeAuthError, _super);\r\n function NativeAuthError(errorCode, description, ext) {\r\n var _this = _super.call(this, errorCode, description) || this;\r\n Object.setPrototypeOf(_this, NativeAuthError.prototype);\r\n _this.name = \"NativeAuthError\";\r\n _this.ext = ext;\r\n return _this;\r\n }\r\n /**\r\n * These errors should result in a fallback to the 'standard' browser based auth flow.\r\n */\r\n NativeAuthError.prototype.isFatal = function () {\r\n if (this.ext && this.ext.status && (this.ext.status === NativeStatusCode.PERSISTENT_ERROR || this.ext.status === NativeStatusCode.DISABLED)) {\r\n return true;\r\n }\r\n switch (this.errorCode) {\r\n case NativeAuthErrorMessage.extensionError.code:\r\n return true;\r\n default:\r\n return false;\r\n }\r\n };\r\n /**\r\n * Create the appropriate error object based on the WAM status code.\r\n * @param code\r\n * @param description\r\n * @param ext\r\n * @returns\r\n */\r\n NativeAuthError.createError = function (code, description, ext) {\r\n if (ext && ext.status) {\r\n switch (ext.status) {\r\n case NativeStatusCode.ACCOUNT_UNAVAILABLE:\r\n return InteractionRequiredAuthError.createNativeAccountUnavailableError();\r\n case NativeStatusCode.USER_INTERACTION_REQUIRED:\r\n return new InteractionRequiredAuthError(code, description);\r\n case NativeStatusCode.USER_CANCEL:\r\n return BrowserAuthError.createUserCancelledError();\r\n case NativeStatusCode.NO_NETWORK:\r\n return BrowserAuthError.createNoNetworkConnectivityError();\r\n }\r\n }\r\n return new NativeAuthError(code, description, ext);\r\n };\r\n /**\r\n * Creates user switch error when the user chooses a different account in the native broker prompt\r\n * @returns\r\n */\r\n NativeAuthError.createUserSwitchError = function () {\r\n return new NativeAuthError(NativeAuthErrorMessage.userSwitch.code, NativeAuthErrorMessage.userSwitch.desc);\r\n };\r\n /**\r\n * Creates a tokens not found error when the internal cache look up fails\r\n * @returns NativeAuthError: tokensNotFoundInCache\r\n */\r\n NativeAuthError.createTokensNotFoundInCacheError = function () {\r\n return new NativeAuthError(NativeAuthErrorMessage.tokensNotFoundInCache.code, NativeAuthErrorMessage.tokensNotFoundInCache.desc);\r\n };\r\n return NativeAuthError;\r\n}(AuthError));\n\nexport { NativeAuthError, NativeAuthErrorMessage, NativeStatusCode };\n//# sourceMappingURL=NativeAuthError.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthorityType } from './AuthorityType.js';\nimport { isOpenIdConfigResponse } from './OpenIdConfigResponse.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { Constants, AADAuthorityConstants, AuthorityMetadataSource, RegionDiscoveryOutcomes } from '../utils/Constants.js';\nimport { EndpointMetadata, InstanceDiscoveryMetadata } from './AuthorityMetadata.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ProtocolMode } from './ProtocolMode.js';\nimport { AuthorityMetadataEntity } from '../cache/entities/AuthorityMetadataEntity.js';\nimport { AzureCloudInstance } from './AuthorityOptions.js';\nimport { isCloudInstanceDiscoveryResponse } from './CloudInstanceDiscoveryResponse.js';\nimport { isCloudInstanceDiscoveryErrorResponse } from './CloudInstanceDiscoveryErrorResponse.js';\nimport { RegionDiscovery } from './RegionDiscovery.js';\nimport { AuthError } from '../error/AuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The authority class validates the authority URIs used by the user, and retrieves the OpenID Configuration Data from the\r\n * endpoint. It will store the pertinent config data in this object for use during token calls.\r\n */\r\nvar Authority = /** @class */ (function () {\r\n function Authority(authority, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n this.canonicalAuthority = authority;\r\n this._canonicalAuthority.validateAsUri();\r\n this.networkInterface = networkInterface;\r\n this.cacheManager = cacheManager;\r\n this.authorityOptions = authorityOptions;\r\n this.regionDiscoveryMetadata = { region_used: undefined, region_source: undefined, region_outcome: undefined };\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n this.correlationId = correlationId;\r\n this.regionDiscovery = new RegionDiscovery(networkInterface, this.performanceClient, this.correlationId);\r\n }\r\n /**\r\n * Get {@link AuthorityType}\r\n * @param authorityUri {@link IUri}\r\n * @private\r\n */\r\n Authority.prototype.getAuthorityType = function (authorityUri) {\r\n // CIAM auth url pattern is being standardized as: .ciamlogin.com\r\n if (authorityUri.HostNameAndPort.endsWith(Constants.CIAM_AUTH_URL)) {\r\n return AuthorityType.Ciam;\r\n }\r\n var pathSegments = authorityUri.PathSegments;\r\n if (pathSegments.length) {\r\n switch (pathSegments[0].toLowerCase()) {\r\n case Constants.ADFS:\r\n return AuthorityType.Adfs;\r\n case Constants.DSTS:\r\n return AuthorityType.Dsts;\r\n }\r\n }\r\n return AuthorityType.Default;\r\n };\r\n Object.defineProperty(Authority.prototype, \"authorityType\", {\r\n // See above for AuthorityType\r\n get: function () {\r\n return this.getAuthorityType(this.canonicalAuthorityUrlComponents);\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"protocolMode\", {\r\n /**\r\n * ProtocolMode enum representing the way endpoints are constructed.\r\n */\r\n get: function () {\r\n return this.authorityOptions.protocolMode;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"options\", {\r\n /**\r\n * Returns authorityOptions which can be used to reinstantiate a new authority instance\r\n */\r\n get: function () {\r\n return this.authorityOptions;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthority\", {\r\n /**\r\n * A URL that is the authority set by the developer\r\n */\r\n get: function () {\r\n return this._canonicalAuthority.urlString;\r\n },\r\n /**\r\n * Sets canonical authority.\r\n */\r\n set: function (url) {\r\n this._canonicalAuthority = new UrlString(url);\r\n this._canonicalAuthority.validateAsUri();\r\n this._canonicalAuthorityUrlComponents = null;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"canonicalAuthorityUrlComponents\", {\r\n /**\r\n * Get authority components.\r\n */\r\n get: function () {\r\n if (!this._canonicalAuthorityUrlComponents) {\r\n this._canonicalAuthorityUrlComponents = this._canonicalAuthority.getUrlComponents();\r\n }\r\n return this._canonicalAuthorityUrlComponents;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"hostnameAndPort\", {\r\n /**\r\n * Get hostname and port i.e. login.microsoftonline.com\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.HostNameAndPort.toLowerCase();\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tenant\", {\r\n /**\r\n * Get tenant for authority.\r\n */\r\n get: function () {\r\n return this.canonicalAuthorityUrlComponents.PathSegments[0];\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"authorizationEndpoint\", {\r\n /**\r\n * OAuth /authorize endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n return this.replacePath(this.metadata.authorization_endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"tokenEndpoint\", {\r\n /**\r\n * OAuth /token endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n return this.replacePath(this.metadata.token_endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"deviceCodeEndpoint\", {\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n return this.replacePath(this.metadata.token_endpoint.replace(\"/token\", \"/devicecode\"));\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"endSessionEndpoint\", {\r\n /**\r\n * OAuth logout endpoint for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n // ROPC policies may not have end_session_endpoint set\r\n if (!this.metadata.end_session_endpoint) {\r\n throw ClientAuthError.createLogoutNotSupportedError();\r\n }\r\n return this.replacePath(this.metadata.end_session_endpoint);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"selfSignedJwtAudience\", {\r\n /**\r\n * OAuth issuer for requests\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n return this.replacePath(this.metadata.issuer);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n Object.defineProperty(Authority.prototype, \"jwksUri\", {\r\n /**\r\n * Jwks_uri for token signing keys\r\n */\r\n get: function () {\r\n if (this.discoveryComplete()) {\r\n return this.replacePath(this.metadata.jwks_uri);\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Returns a flag indicating that tenant name can be replaced in authority {@link IUri}\r\n * @param authorityUri {@link IUri}\r\n * @private\r\n */\r\n Authority.prototype.canReplaceTenant = function (authorityUri) {\r\n return authorityUri.PathSegments.length === 1\r\n && !Authority.reservedTenantDomains.has(authorityUri.PathSegments[0])\r\n && this.getAuthorityType(authorityUri) === AuthorityType.Default\r\n && this.protocolMode === ProtocolMode.AAD;\r\n };\r\n /**\r\n * Replaces tenant in url path with current tenant. Defaults to common.\r\n * @param urlString\r\n */\r\n Authority.prototype.replaceTenant = function (urlString) {\r\n return urlString.replace(/{tenant}|{tenantid}/g, this.tenant);\r\n };\r\n /**\r\n * Replaces path such as tenant or policy with the current tenant or policy.\r\n * @param urlString\r\n */\r\n Authority.prototype.replacePath = function (urlString) {\r\n var _this = this;\r\n var endpoint = urlString;\r\n var cachedAuthorityUrl = new UrlString(this.metadata.canonical_authority);\r\n var cachedAuthorityUrlComponents = cachedAuthorityUrl.getUrlComponents();\r\n var cachedAuthorityParts = cachedAuthorityUrlComponents.PathSegments;\r\n var currentAuthorityParts = this.canonicalAuthorityUrlComponents.PathSegments;\r\n currentAuthorityParts.forEach(function (currentPart, index) {\r\n var cachedPart = cachedAuthorityParts[index];\r\n if (index === 0 && _this.canReplaceTenant(cachedAuthorityUrlComponents)) {\r\n var tenantId = (new UrlString(_this.metadata.authorization_endpoint)).getUrlComponents().PathSegments[0];\r\n /**\r\n * Check if AAD canonical authority contains tenant domain name, for example \"testdomain.onmicrosoft.com\",\r\n * by comparing its first path segment to the corresponding authorization endpoint path segment, which is\r\n * always resolved with tenant id by OIDC.\r\n */\r\n if (cachedPart !== tenantId) {\r\n _this.logger.verbose(\"Replacing tenant domain name \" + cachedPart + \" with id \" + tenantId);\r\n cachedPart = tenantId;\r\n }\r\n }\r\n if (currentPart !== cachedPart) {\r\n endpoint = endpoint.replace(\"/\" + cachedPart + \"/\", \"/\" + currentPart + \"/\");\r\n }\r\n });\r\n return this.replaceTenant(endpoint);\r\n };\r\n Object.defineProperty(Authority.prototype, \"defaultOpenIdConfigurationEndpoint\", {\r\n /**\r\n * The default open id configuration endpoint for any canonical authority.\r\n */\r\n get: function () {\r\n if (this.authorityType === AuthorityType.Adfs ||\r\n this.authorityType === AuthorityType.Dsts ||\r\n this.protocolMode === ProtocolMode.OIDC) {\r\n return this.canonicalAuthority + \".well-known/openid-configuration\";\r\n }\r\n return this.canonicalAuthority + \"v2.0/.well-known/openid-configuration\";\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n /**\r\n * Boolean that returns whethr or not tenant discovery has been completed.\r\n */\r\n Authority.prototype.discoveryComplete = function () {\r\n return !!this.metadata;\r\n };\r\n /**\r\n * Perform endpoint discovery to discover aliases, preferred_cache, preferred_network\r\n * and the /authorize, /token and logout endpoints.\r\n */\r\n Authority.prototype.resolveEndpointsAsync = function () {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadataEntity, cloudDiscoverySource, endpointSource, cacheKey;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityResolveEndpointsAsync, this.correlationId);\r\n metadataEntity = this.cacheManager.getAuthorityMetadataByAlias(this.hostnameAndPort);\r\n if (!metadataEntity) {\r\n metadataEntity = new AuthorityMetadataEntity();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata, this.correlationId);\r\n return [4 /*yield*/, this.updateCloudDiscoveryMetadata(metadataEntity)];\r\n case 1:\r\n cloudDiscoverySource = _d.sent();\r\n this.canonicalAuthority = this.canonicalAuthority.replace(this.hostnameAndPort, metadataEntity.preferred_network);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.AuthorityUpdateEndpointMetadata, this.correlationId);\r\n return [4 /*yield*/, this.updateEndpointMetadata(metadataEntity)];\r\n case 2:\r\n endpointSource = _d.sent();\r\n if (cloudDiscoverySource !== AuthorityMetadataSource.CACHE && endpointSource !== AuthorityMetadataSource.CACHE) {\r\n // Reset the expiration time unless both values came from a successful cache lookup\r\n metadataEntity.resetExpiresAt();\r\n metadataEntity.updateCanonicalAuthority(this.canonicalAuthority);\r\n }\r\n cacheKey = this.cacheManager.generateAuthorityMetadataCacheKey(metadataEntity.preferred_cache);\r\n this.cacheManager.setAuthorityMetadata(cacheKey, metadataEntity);\r\n this.metadata = metadataEntity;\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Update AuthorityMetadataEntity with new endpoints and return where the information came from\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.updateEndpointMetadata = function (metadataEntity) {\r\n var _a, _b, _c, _d, _e, _f;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata, harcodedMetadata;\r\n return __generator(this, function (_g) {\r\n switch (_g.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateEndpointMetadata, this.correlationId);\r\n metadata = this.getEndpointMetadataFromConfig();\r\n if (metadata) {\r\n metadataEntity.updateEndpointMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.endpointsFromNetwork && !metadataEntity.isExpired()) {\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork, this.correlationId);\r\n return [4 /*yield*/, this.getEndpointMetadataFromNetwork()];\r\n case 1:\r\n metadata = _g.sent();\r\n if (!metadata) return [3 /*break*/, 4];\r\n if (!((_c = this.authorityOptions.azureRegionConfiguration) === null || _c === void 0 ? void 0 : _c.azureRegion)) return [3 /*break*/, 3];\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n return [4 /*yield*/, this.updateMetadataWithRegionalInformation(metadata)];\r\n case 2:\r\n metadata = _g.sent();\r\n _g.label = 3;\r\n case 3:\r\n metadataEntity.updateEndpointMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n case 4:\r\n harcodedMetadata = this.getEndpointMetadataFromHardcodedValues();\r\n if (!(harcodedMetadata && !this.authorityOptions.skipAuthorityMetadataCache)) return [3 /*break*/, 7];\r\n if (!((_e = this.authorityOptions.azureRegionConfiguration) === null || _e === void 0 ? void 0 : _e.azureRegion)) return [3 /*break*/, 6];\r\n (_f = this.performanceClient) === null || _f === void 0 ? void 0 : _f.setPreQueueTime(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n return [4 /*yield*/, this.updateMetadataWithRegionalInformation(harcodedMetadata)];\r\n case 5:\r\n harcodedMetadata = _g.sent();\r\n _g.label = 6;\r\n case 6:\r\n metadataEntity.updateEndpointMetadata(harcodedMetadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.HARDCODED_VALUES];\r\n case 7: throw ClientAuthError.createUnableToGetOpenidConfigError(this.defaultOpenIdConfigurationEndpoint);\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Compares the number of url components after the domain to determine if the cached\r\n * authority metadata can be used for the requested authority. Protects against same domain different\r\n * authority such as login.microsoftonline.com/tenant and login.microsoftonline.com/tfp/tenant/policy\r\n * @param metadataEntity\r\n */\r\n Authority.prototype.isAuthoritySameType = function (metadataEntity) {\r\n var cachedAuthorityUrl = new UrlString(metadataEntity.canonical_authority);\r\n var cachedParts = cachedAuthorityUrl.getUrlComponents().PathSegments;\r\n return cachedParts.length === this.canonicalAuthorityUrlComponents.PathSegments.length;\r\n };\r\n /**\r\n * Parse authorityMetadata config option\r\n */\r\n Authority.prototype.getEndpointMetadataFromConfig = function () {\r\n if (this.authorityOptions.authorityMetadata) {\r\n try {\r\n return JSON.parse(this.authorityOptions.authorityMetadata);\r\n }\r\n catch (e) {\r\n throw ClientConfigurationError.createInvalidAuthorityMetadataError();\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Gets OAuth endpoints from the given OpenID configuration endpoint.\r\n *\r\n * @param hasHardcodedMetadata boolean\r\n */\r\n Authority.prototype.getEndpointMetadataFromNetwork = function () {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var options, response;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityGetEndpointMetadataFromNetwork, this.correlationId);\r\n options = {};\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.\r\n sendGetRequestAsync(this.defaultOpenIdConfigurationEndpoint, options)];\r\n case 2:\r\n response = _b.sent();\r\n return [2 /*return*/, isOpenIdConfigResponse(response.body) ? response.body : null];\r\n case 3:\r\n _b.sent();\r\n return [2 /*return*/, null];\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get OAuth endpoints for common authorities.\r\n */\r\n Authority.prototype.getEndpointMetadataFromHardcodedValues = function () {\r\n if (this.canonicalAuthority in EndpointMetadata) {\r\n return EndpointMetadata[this.canonicalAuthority];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Update the retrieved metadata with regional information.\r\n * User selected Azure region will be used if configured.\r\n */\r\n Authority.prototype.updateMetadataWithRegionalInformation = function (metadata) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var userConfiguredAzureRegion, autodetectedRegionName;\r\n return __generator(this, function (_e) {\r\n switch (_e.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateMetadataWithRegionalInformation, this.correlationId);\r\n userConfiguredAzureRegion = (_b = this.authorityOptions.azureRegionConfiguration) === null || _b === void 0 ? void 0 : _b.azureRegion;\r\n if (!userConfiguredAzureRegion) return [3 /*break*/, 2];\r\n if (userConfiguredAzureRegion !== Constants.AZURE_REGION_AUTO_DISCOVER_FLAG) {\r\n this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.CONFIGURED_NO_AUTO_DETECTION;\r\n this.regionDiscoveryMetadata.region_used = userConfiguredAzureRegion;\r\n return [2 /*return*/, Authority.replaceWithRegionalInformation(metadata, userConfiguredAzureRegion)];\r\n }\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RegionDiscoveryDetectRegion, this.correlationId);\r\n return [4 /*yield*/, this.regionDiscovery.detectRegion((_d = this.authorityOptions.azureRegionConfiguration) === null || _d === void 0 ? void 0 : _d.environmentRegion, this.regionDiscoveryMetadata)];\r\n case 1:\r\n autodetectedRegionName = _e.sent();\r\n if (autodetectedRegionName) {\r\n this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_SUCCESSFUL;\r\n this.regionDiscoveryMetadata.region_used = autodetectedRegionName;\r\n return [2 /*return*/, Authority.replaceWithRegionalInformation(metadata, autodetectedRegionName)];\r\n }\r\n this.regionDiscoveryMetadata.region_outcome = RegionDiscoveryOutcomes.AUTO_DETECTION_REQUESTED_FAILED;\r\n _e.label = 2;\r\n case 2: return [2 /*return*/, metadata];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates the AuthorityMetadataEntity with new aliases, preferred_network and preferred_cache\r\n * and returns where the information was retrieved from\r\n * @param metadataEntity\r\n * @returns AuthorityMetadataSource\r\n */\r\n Authority.prototype.updateCloudDiscoveryMetadata = function (metadataEntity) {\r\n var _a, _b;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var metadata, metadataEntityExpired, harcodedMetadata;\r\n return __generator(this, function (_c) {\r\n switch (_c.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityUpdateCloudDiscoveryMetadata, this.correlationId);\r\n // attempt to read metadata from the config\r\n this.logger.verbose(\"Attempting to get cloud discovery metadata in the config\");\r\n this.logger.verbosePii(\"Known Authorities: \" + (this.authorityOptions.knownAuthorities || Constants.NOT_APPLICABLE));\r\n this.logger.verbosePii(\"Authority Metadata: \" + (this.authorityOptions.authorityMetadata || Constants.NOT_APPLICABLE));\r\n this.logger.verbosePii(\"Canonical Authority: \" + (metadataEntity.canonical_authority || Constants.NOT_APPLICABLE));\r\n metadata = this.getCloudDiscoveryMetadataFromConfig();\r\n if (metadata) {\r\n this.logger.verbose(\"Found cloud discovery metadata in the config.\");\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.CONFIG];\r\n }\r\n // If the cached metadata came from config but that config was not passed to this instance, we must go to the network\r\n this.logger.verbose(\"Did not find cloud discovery metadata in the config... Attempting to get cloud discovery metadata from the cache.\");\r\n metadataEntityExpired = metadataEntity.isExpired();\r\n if (this.isAuthoritySameType(metadataEntity) && metadataEntity.aliasesFromNetwork && !metadataEntityExpired) {\r\n this.logger.verbose(\"Found metadata in the cache.\");\r\n // No need to update\r\n return [2 /*return*/, AuthorityMetadataSource.CACHE];\r\n }\r\n else if (metadataEntityExpired) {\r\n this.logger.verbose(\"The metadata entity is expired.\");\r\n }\r\n this.logger.verbose(\"Did not find cloud discovery metadata in the cache... Attempting to get cloud discovery metadata from the network.\");\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork, this.correlationId);\r\n return [4 /*yield*/, this.getCloudDiscoveryMetadataFromNetwork()];\r\n case 1:\r\n metadata = _c.sent();\r\n if (metadata) {\r\n this.logger.verbose(\"cloud discovery metadata was successfully returned from getCloudDiscoveryMetadataFromNetwork()\");\r\n metadataEntity.updateCloudDiscoveryMetadata(metadata, true);\r\n return [2 /*return*/, AuthorityMetadataSource.NETWORK];\r\n }\r\n this.logger.verbose(\"Did not find cloud discovery metadata from the network... Attempting to get cloud discovery metadata from hardcoded values.\");\r\n harcodedMetadata = this.getCloudDiscoveryMetadataFromHarcodedValues();\r\n if (harcodedMetadata && !this.options.skipAuthorityMetadataCache) {\r\n this.logger.verbose(\"Found cloud discovery metadata from hardcoded values.\");\r\n metadataEntity.updateCloudDiscoveryMetadata(harcodedMetadata, false);\r\n return [2 /*return*/, AuthorityMetadataSource.HARDCODED_VALUES];\r\n }\r\n // Metadata could not be obtained from the config, cache, network or hardcoded values\r\n this.logger.error(\"Did not find cloud discovery metadata from hardcoded values... Metadata could not be obtained from config, cache, network or hardcoded values. Throwing Untrusted Authority Error.\");\r\n throw ClientConfigurationError.createUntrustedAuthorityError();\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Parse cloudDiscoveryMetadata config or check knownAuthorities\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromConfig = function () {\r\n // CIAM does not support cloud discovery metadata\r\n if (this.authorityType === AuthorityType.Ciam) {\r\n this.logger.verbose(\"CIAM authorities do not support cloud discovery metadata, generate the aliases from authority host.\");\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n // Check if network response was provided in config\r\n if (this.authorityOptions.cloudDiscoveryMetadata) {\r\n this.logger.verbose(\"The cloud discovery metadata has been provided as a network response, in the config.\");\r\n try {\r\n this.logger.verbose(\"Attempting to parse the cloud discovery metadata.\");\r\n var parsedResponse = JSON.parse(this.authorityOptions.cloudDiscoveryMetadata);\r\n var metadata = Authority.getCloudDiscoveryMetadataFromNetworkResponse(parsedResponse.metadata, this.hostnameAndPort);\r\n this.logger.verbose(\"Parsed the cloud discovery metadata.\");\r\n if (metadata) {\r\n this.logger.verbose(\"There is returnable metadata attached to the parsed cloud discovery metadata.\");\r\n return metadata;\r\n }\r\n else {\r\n this.logger.verbose(\"There is no metadata attached to the parsed cloud discovery metadata.\");\r\n }\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Unable to parse the cloud discovery metadata. Throwing Invalid Cloud Discovery Metadata Error.\");\r\n throw ClientConfigurationError.createInvalidCloudDiscoveryMetadataError();\r\n }\r\n }\r\n // If cloudDiscoveryMetadata is empty or does not contain the host, check knownAuthorities\r\n if (this.isInKnownAuthorities()) {\r\n this.logger.verbose(\"The host is included in knownAuthorities. Creating new cloud discovery metadata from the host.\");\r\n return Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return null;\r\n };\r\n /**\r\n * Called to get metadata from network if CloudDiscoveryMetadata was not populated by config\r\n *\r\n * @param hasHardcodedMetadata boolean\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromNetwork = function () {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var instanceDiscoveryEndpoint, options, match, response, typedResponseBody, metadata, error_1, typedError;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.AuthorityGetCloudDiscoveryMetadataFromNetwork, this.correlationId);\r\n instanceDiscoveryEndpoint = \"\" + Constants.AAD_INSTANCE_DISCOVERY_ENDPT + this.canonicalAuthority + \"oauth2/v2.0/authorize\";\r\n options = {};\r\n match = null;\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.networkInterface.sendGetRequestAsync(instanceDiscoveryEndpoint, options)];\r\n case 2:\r\n response = _b.sent();\r\n typedResponseBody = void 0;\r\n metadata = void 0;\r\n if (isCloudInstanceDiscoveryResponse(response.body)) {\r\n typedResponseBody = response.body;\r\n metadata = typedResponseBody.metadata;\r\n this.logger.verbosePii(\"tenant_discovery_endpoint is: \" + typedResponseBody.tenant_discovery_endpoint);\r\n }\r\n else if (isCloudInstanceDiscoveryErrorResponse(response.body)) {\r\n this.logger.warning(\"A CloudInstanceDiscoveryErrorResponse was returned. The cloud instance discovery network request's status code is: \" + response.status);\r\n typedResponseBody = response.body;\r\n if (typedResponseBody.error === Constants.INVALID_INSTANCE) {\r\n this.logger.error(\"The CloudInstanceDiscoveryErrorResponse error is invalid_instance.\");\r\n return [2 /*return*/, null];\r\n }\r\n this.logger.warning(\"The CloudInstanceDiscoveryErrorResponse error is \" + typedResponseBody.error);\r\n this.logger.warning(\"The CloudInstanceDiscoveryErrorResponse error description is \" + typedResponseBody.error_description);\r\n this.logger.warning(\"Setting the value of the CloudInstanceDiscoveryMetadata (returned from the network) to []\");\r\n metadata = [];\r\n }\r\n else {\r\n this.logger.error(\"AAD did not return a CloudInstanceDiscoveryResponse or CloudInstanceDiscoveryErrorResponse\");\r\n return [2 /*return*/, null];\r\n }\r\n this.logger.verbose(\"Attempting to find a match between the developer's authority and the CloudInstanceDiscoveryMetadata returned from the network request.\");\r\n match = Authority.getCloudDiscoveryMetadataFromNetworkResponse(metadata, this.hostnameAndPort);\r\n return [3 /*break*/, 4];\r\n case 3:\r\n error_1 = _b.sent();\r\n if (error_1 instanceof AuthError) {\r\n this.logger.error(\"There was a network error while attempting to get the cloud discovery instance metadata.\\nError: \" + error_1.errorCode + \"\\nError Description: \" + error_1.errorMessage);\r\n }\r\n else {\r\n typedError = error_1;\r\n this.logger.error(\"A non-MSALJS error was thrown while attempting to get the cloud instance discovery metadata.\\nError: \" + typedError.name + \"\\nError Description: \" + typedError.message);\r\n }\r\n return [2 /*return*/, null];\r\n case 4:\r\n // Custom Domain scenario, host is trusted because Instance Discovery call succeeded\r\n if (!match) {\r\n this.logger.warning(\"The developer's authority was not found within the CloudInstanceDiscoveryMetadata returned from the network request.\");\r\n this.logger.verbose(\"Creating custom Authority for custom domain scenario.\");\r\n match = Authority.createCloudDiscoveryMetadataFromHost(this.hostnameAndPort);\r\n }\r\n return [2 /*return*/, match];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Get cloud discovery metadata for common authorities\r\n */\r\n Authority.prototype.getCloudDiscoveryMetadataFromHarcodedValues = function () {\r\n if (this.canonicalAuthority in InstanceDiscoveryMetadata) {\r\n return InstanceDiscoveryMetadata[this.canonicalAuthority];\r\n }\r\n return null;\r\n };\r\n /**\r\n * Helper function to determine if this host is included in the knownAuthorities config option\r\n */\r\n Authority.prototype.isInKnownAuthorities = function () {\r\n var _this = this;\r\n var matches = this.authorityOptions.knownAuthorities.filter(function (authority) {\r\n return UrlString.getDomainFromUrl(authority).toLowerCase() === _this.hostnameAndPort;\r\n });\r\n return matches.length > 0;\r\n };\r\n /**\r\n * helper function to populate the authority based on azureCloudOptions\r\n * @param authorityString\r\n * @param azureCloudOptions\r\n */\r\n Authority.generateAuthority = function (authorityString, azureCloudOptions) {\r\n var authorityAzureCloudInstance;\r\n if (azureCloudOptions && azureCloudOptions.azureCloudInstance !== AzureCloudInstance.None) {\r\n var tenant = azureCloudOptions.tenant ? azureCloudOptions.tenant : Constants.DEFAULT_COMMON_TENANT;\r\n authorityAzureCloudInstance = azureCloudOptions.azureCloudInstance + \"/\" + tenant + \"/\";\r\n }\r\n return authorityAzureCloudInstance ? authorityAzureCloudInstance : authorityString;\r\n };\r\n /**\r\n * Creates cloud discovery metadata object from a given host\r\n * @param host\r\n */\r\n Authority.createCloudDiscoveryMetadataFromHost = function (host) {\r\n return {\r\n preferred_network: host,\r\n preferred_cache: host,\r\n aliases: [host]\r\n };\r\n };\r\n /**\r\n * Searches instance discovery network response for the entry that contains the host in the aliases list\r\n * @param response\r\n * @param authority\r\n */\r\n Authority.getCloudDiscoveryMetadataFromNetworkResponse = function (response, authority) {\r\n for (var i = 0; i < response.length; i++) {\r\n var metadata = response[i];\r\n if (metadata.aliases.indexOf(authority) > -1) {\r\n return metadata;\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * helper function to generate environment from authority object\r\n */\r\n Authority.prototype.getPreferredCache = function () {\r\n if (this.discoveryComplete()) {\r\n return this.metadata.preferred_cache;\r\n }\r\n else {\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(\"Discovery incomplete.\");\r\n }\r\n };\r\n /**\r\n * Returns whether or not the provided host is an alias of this authority instance\r\n * @param host\r\n */\r\n Authority.prototype.isAlias = function (host) {\r\n return this.metadata.aliases.indexOf(host) > -1;\r\n };\r\n /**\r\n * Checks whether the provided host is that of a public cloud authority\r\n *\r\n * @param authority string\r\n * @returns bool\r\n */\r\n Authority.isPublicCloudAuthority = function (host) {\r\n return Constants.KNOWN_PUBLIC_CLOUDS.indexOf(host) >= 0;\r\n };\r\n /**\r\n * Rebuild the authority string with the region\r\n *\r\n * @param host string\r\n * @param region string\r\n */\r\n Authority.buildRegionalAuthorityString = function (host, region, queryString) {\r\n // Create and validate a Url string object with the initial authority string\r\n var authorityUrlInstance = new UrlString(host);\r\n authorityUrlInstance.validateAsUri();\r\n var authorityUrlParts = authorityUrlInstance.getUrlComponents();\r\n var hostNameAndPort = region + \".\" + authorityUrlParts.HostNameAndPort;\r\n if (this.isPublicCloudAuthority(authorityUrlParts.HostNameAndPort)) {\r\n hostNameAndPort = region + \".\" + Constants.REGIONAL_AUTH_PUBLIC_CLOUD_SUFFIX;\r\n }\r\n // Include the query string portion of the url\r\n var url = UrlString.constructAuthorityUriFromObject(__assign(__assign({}, authorityUrlInstance.getUrlComponents()), { HostNameAndPort: hostNameAndPort })).urlString;\r\n // Add the query string if a query string was provided\r\n if (queryString)\r\n return url + \"?\" + queryString;\r\n return url;\r\n };\r\n /**\r\n * Replace the endpoints in the metadata object with their regional equivalents.\r\n *\r\n * @param metadata OpenIdConfigResponse\r\n * @param azureRegion string\r\n */\r\n Authority.replaceWithRegionalInformation = function (metadata, azureRegion) {\r\n metadata.authorization_endpoint = Authority.buildRegionalAuthorityString(metadata.authorization_endpoint, azureRegion);\r\n // TODO: Enquire on whether we should leave the query string or remove it before releasing the feature\r\n metadata.token_endpoint = Authority.buildRegionalAuthorityString(metadata.token_endpoint, azureRegion, Constants.REGIONAL_AUTH_NON_MSI_QUERY_STRING);\r\n if (metadata.end_session_endpoint) {\r\n metadata.end_session_endpoint = Authority.buildRegionalAuthorityString(metadata.end_session_endpoint, azureRegion);\r\n }\r\n return metadata;\r\n };\r\n /**\r\n * Transform CIAM_AUTHORIY as per the below rules:\r\n * If no path segments found and it is a CIAM authority (hostname ends with .ciamlogin.com), then transform it\r\n *\r\n * NOTE: The transformation path should go away once STS supports CIAM with the format: `tenantIdorDomain.ciamlogin.com`\r\n * `ciamlogin.com` can also change in the future and we should accommodate the same\r\n *\r\n * @param authority\r\n */\r\n Authority.transformCIAMAuthority = function (authority) {\r\n var ciamAuthority = authority.endsWith(Constants.FORWARD_SLASH) ? authority : \"\" + authority + Constants.FORWARD_SLASH;\r\n var authorityUrl = new UrlString(authority);\r\n var authorityUrlComponents = authorityUrl.getUrlComponents();\r\n // check if transformation is needed\r\n if (authorityUrlComponents.PathSegments.length === 0 && (authorityUrlComponents.HostNameAndPort.endsWith(Constants.CIAM_AUTH_URL))) {\r\n var tenantIdOrDomain = authorityUrlComponents.HostNameAndPort.split(\".\")[0];\r\n ciamAuthority = \"\" + ciamAuthority + tenantIdOrDomain + Constants.AAD_TENANT_DOMAIN_SUFFIX;\r\n }\r\n return ciamAuthority;\r\n };\r\n // Reserved tenant domain names that will not be replaced with tenant id\r\n Authority.reservedTenantDomains = (new Set([\r\n \"{tenant}\",\r\n \"{tenantid}\",\r\n AADAuthorityConstants.COMMON,\r\n AADAuthorityConstants.CONSUMERS,\r\n AADAuthorityConstants.ORGANIZATIONS\r\n ]));\r\n return Authority;\r\n}());\n\nexport { Authority };\n//# sourceMappingURL=Authority.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { Authority } from './Authority.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar AuthorityFactory = /** @class */ (function () {\r\n function AuthorityFactory() {\r\n }\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Also performs endpoint discovery.\r\n *\r\n * @param authorityUri\r\n * @param networkClient\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createDiscoveredInstance = function (authorityUri, networkClient, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authorityUriFinal, acquireTokenAuthority, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n performanceClient === null || performanceClient === void 0 ? void 0 : performanceClient.addQueueMeasurement(PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance, correlationId);\r\n authorityUriFinal = Authority.transformCIAMAuthority(authorityUri);\r\n acquireTokenAuthority = AuthorityFactory.createInstance(authorityUriFinal, networkClient, cacheManager, authorityOptions, logger, performanceClient, correlationId);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n performanceClient === null || performanceClient === void 0 ? void 0 : performanceClient.setPreQueueTime(PerformanceEvents.AuthorityResolveEndpointsAsync, correlationId);\r\n return [4 /*yield*/, acquireTokenAuthority.resolveEndpointsAsync()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, acquireTokenAuthority];\r\n case 3:\r\n e_1 = _a.sent();\r\n throw ClientAuthError.createEndpointDiscoveryIncompleteError(e_1);\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Create an authority object of the correct type based on the url\r\n * Performs basic authority validation - checks to see if the authority is of a valid type (i.e. aad, b2c, adfs)\r\n *\r\n * Does not perform endpoint discovery.\r\n *\r\n * @param authorityUrl\r\n * @param networkInterface\r\n * @param protocolMode\r\n */\r\n AuthorityFactory.createInstance = function (authorityUrl, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId) {\r\n // Throw error if authority url is empty\r\n if (StringUtils.isEmpty(authorityUrl)) {\r\n throw ClientConfigurationError.createUrlEmptyError();\r\n }\r\n return new Authority(authorityUrl, networkInterface, cacheManager, authorityOptions, logger, performanceClient, correlationId);\r\n };\r\n return AuthorityFactory;\r\n}());\n\nexport { AuthorityFactory };\n//# sourceMappingURL=AuthorityFactory.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { SERVER_TELEM_CONSTANTS, CacheOutcome, Constants, Separators } from '../../utils/Constants.js';\nimport { ServerTelemetryEntity } from '../../cache/entities/ServerTelemetryEntity.js';\nimport { StringUtils } from '../../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ServerTelemetryManager = /** @class */ (function () {\r\n function ServerTelemetryManager(telemetryRequest, cacheManager) {\r\n this.cacheOutcome = CacheOutcome.NO_CACHE_HIT;\r\n this.cacheManager = cacheManager;\r\n this.apiId = telemetryRequest.apiId;\r\n this.correlationId = telemetryRequest.correlationId;\r\n this.wrapperSKU = telemetryRequest.wrapperSKU || Constants.EMPTY_STRING;\r\n this.wrapperVer = telemetryRequest.wrapperVer || Constants.EMPTY_STRING;\r\n this.telemetryCacheKey = SERVER_TELEM_CONSTANTS.CACHE_KEY + Separators.CACHE_KEY_SEPARATOR + telemetryRequest.clientId;\r\n }\r\n /**\r\n * API to add MSER Telemetry to request\r\n */\r\n ServerTelemetryManager.prototype.generateCurrentRequestHeaderValue = function () {\r\n var request = \"\" + this.apiId + SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR + this.cacheOutcome;\r\n var platformFields = [this.wrapperSKU, this.wrapperVer].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var regionDiscoveryFields = this.getRegionDiscoveryFields();\r\n var requestWithRegionDiscoveryFields = [request, regionDiscoveryFields].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, requestWithRegionDiscoveryFields, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to add MSER Telemetry for the last failed request\r\n */\r\n ServerTelemetryManager.prototype.generateLastRequestHeaderValue = function () {\r\n var lastRequests = this.getLastRequests();\r\n var maxErrors = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var failedRequests = lastRequests.failedRequests.slice(0, 2 * maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errors = lastRequests.errors.slice(0, maxErrors).join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n var errorCount = lastRequests.errors.length;\r\n // Indicate whether this header contains all data or partial data\r\n var overflow = maxErrors < errorCount ? SERVER_TELEM_CONSTANTS.OVERFLOW_TRUE : SERVER_TELEM_CONSTANTS.OVERFLOW_FALSE;\r\n var platformFields = [errorCount, overflow].join(SERVER_TELEM_CONSTANTS.VALUE_SEPARATOR);\r\n return [SERVER_TELEM_CONSTANTS.SCHEMA_VERSION, lastRequests.cacheHits, failedRequests, errors, platformFields].join(SERVER_TELEM_CONSTANTS.CATEGORY_SEPARATOR);\r\n };\r\n /**\r\n * API to cache token failures for MSER data capture\r\n * @param error\r\n */\r\n ServerTelemetryManager.prototype.cacheFailedRequest = function (error) {\r\n var lastRequests = this.getLastRequests();\r\n if (lastRequests.errors.length >= SERVER_TELEM_CONSTANTS.MAX_CACHED_ERRORS) {\r\n // Remove a cached error to make room, first in first out\r\n lastRequests.failedRequests.shift(); // apiId\r\n lastRequests.failedRequests.shift(); // correlationId\r\n lastRequests.errors.shift();\r\n }\r\n lastRequests.failedRequests.push(this.apiId, this.correlationId);\r\n if (!StringUtils.isEmpty(error.subError)) {\r\n lastRequests.errors.push(error.subError);\r\n }\r\n else if (!StringUtils.isEmpty(error.errorCode)) {\r\n lastRequests.errors.push(error.errorCode);\r\n }\r\n else if (!!error && error.toString()) {\r\n lastRequests.errors.push(error.toString());\r\n }\r\n else {\r\n lastRequests.errors.push(SERVER_TELEM_CONSTANTS.UNKNOWN_ERROR);\r\n }\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return;\r\n };\r\n /**\r\n * Update server telemetry cache entry by incrementing cache hit counter\r\n */\r\n ServerTelemetryManager.prototype.incrementCacheHits = function () {\r\n var lastRequests = this.getLastRequests();\r\n lastRequests.cacheHits += 1;\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, lastRequests);\r\n return lastRequests.cacheHits;\r\n };\r\n /**\r\n * Get the server telemetry entity from cache or initialize a new one\r\n */\r\n ServerTelemetryManager.prototype.getLastRequests = function () {\r\n var initialValue = new ServerTelemetryEntity();\r\n var lastRequests = this.cacheManager.getServerTelemetry(this.telemetryCacheKey);\r\n return lastRequests || initialValue;\r\n };\r\n /**\r\n * Remove server telemetry cache entry\r\n */\r\n ServerTelemetryManager.prototype.clearTelemetryCache = function () {\r\n var lastRequests = this.getLastRequests();\r\n var numErrorsFlushed = ServerTelemetryManager.maxErrorsToSend(lastRequests);\r\n var errorCount = lastRequests.errors.length;\r\n if (numErrorsFlushed === errorCount) {\r\n // All errors were sent on last request, clear Telemetry cache\r\n this.cacheManager.removeItem(this.telemetryCacheKey);\r\n }\r\n else {\r\n // Partial data was flushed to server, construct a new telemetry cache item with errors that were not flushed\r\n var serverTelemEntity = new ServerTelemetryEntity();\r\n serverTelemEntity.failedRequests = lastRequests.failedRequests.slice(numErrorsFlushed * 2); // failedRequests contains 2 items for each error\r\n serverTelemEntity.errors = lastRequests.errors.slice(numErrorsFlushed);\r\n this.cacheManager.setServerTelemetry(this.telemetryCacheKey, serverTelemEntity);\r\n }\r\n };\r\n /**\r\n * Returns the maximum number of errors that can be flushed to the server in the next network request\r\n * @param serverTelemetryEntity\r\n */\r\n ServerTelemetryManager.maxErrorsToSend = function (serverTelemetryEntity) {\r\n var i;\r\n var maxErrors = 0;\r\n var dataSize = 0;\r\n var errorCount = serverTelemetryEntity.errors.length;\r\n for (i = 0; i < errorCount; i++) {\r\n // failedRequests parameter contains pairs of apiId and correlationId, multiply index by 2 to preserve pairs\r\n var apiId = serverTelemetryEntity.failedRequests[2 * i] || Constants.EMPTY_STRING;\r\n var correlationId = serverTelemetryEntity.failedRequests[2 * i + 1] || Constants.EMPTY_STRING;\r\n var errorCode = serverTelemetryEntity.errors[i] || Constants.EMPTY_STRING;\r\n // Count number of characters that would be added to header, each character is 1 byte. Add 3 at the end to account for separators\r\n dataSize += apiId.toString().length + correlationId.toString().length + errorCode.length + 3;\r\n if (dataSize < SERVER_TELEM_CONSTANTS.MAX_LAST_HEADER_BYTES) {\r\n // Adding this entry to the header would still keep header size below the limit\r\n maxErrors += 1;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n return maxErrors;\r\n };\r\n /**\r\n * Get the region discovery fields\r\n *\r\n * @returns string\r\n */\r\n ServerTelemetryManager.prototype.getRegionDiscoveryFields = function () {\r\n var regionDiscoveryFields = [];\r\n regionDiscoveryFields.push(this.regionUsed || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionSource || Constants.EMPTY_STRING);\r\n regionDiscoveryFields.push(this.regionOutcome || Constants.EMPTY_STRING);\r\n return regionDiscoveryFields.join(\",\");\r\n };\r\n /**\r\n * Update the region discovery metadata\r\n *\r\n * @param regionDiscoveryMetadata\r\n * @returns void\r\n */\r\n ServerTelemetryManager.prototype.updateRegionDiscoveryMetadata = function (regionDiscoveryMetadata) {\r\n this.regionUsed = regionDiscoveryMetadata.region_used;\r\n this.regionSource = regionDiscoveryMetadata.region_source;\r\n this.regionOutcome = regionDiscoveryMetadata.region_outcome;\r\n };\r\n /**\r\n * Set cache outcome\r\n */\r\n ServerTelemetryManager.prototype.setCacheOutcome = function (cacheOutcome) {\r\n this.cacheOutcome = cacheOutcome;\r\n };\r\n return ServerTelemetryManager;\r\n}());\n\nexport { ServerTelemetryManager };\n//# sourceMappingURL=ServerTelemetryManager.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator, __spread, __assign } from '../_virtual/_tslib.js';\nimport { AccountEntity, AuthenticationScheme, ClientConfigurationError, StringUtils, PerformanceEvents, UrlString, ServerTelemetryManager, AuthorityFactory } from '@azure/msal-common';\nimport { version } from '../packageMetadata.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BaseInteractionClient = /** @class */ (function () {\r\n function BaseInteractionClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) {\r\n this.config = config;\r\n this.browserStorage = storageImpl;\r\n this.browserCrypto = browserCrypto;\r\n this.networkClient = this.config.system.networkClient;\r\n this.eventHandler = eventHandler;\r\n this.navigationClient = navigationClient;\r\n this.nativeMessageHandler = nativeMessageHandler;\r\n this.correlationId = correlationId || this.browserCrypto.createNewGuid();\r\n this.logger = logger.clone(BrowserConstants.MSAL_SKU, version, this.correlationId);\r\n this.performanceClient = performanceClient;\r\n }\r\n BaseInteractionClient.prototype.clearCacheOnLogout = function (account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!account) return [3 /*break*/, 5];\r\n if (AccountEntity.accountInfoIsEqual(account, this.browserStorage.getActiveAccount(), false)) {\r\n this.logger.verbose(\"Setting active account to null\");\r\n this.browserStorage.setActiveAccount(null);\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n return [4 /*yield*/, this.browserStorage.removeAccount(AccountEntity.generateAccountCacheKey(account))];\r\n case 2:\r\n _a.sent();\r\n this.logger.verbose(\"Cleared cache items belonging to the account provided in the logout request.\");\r\n return [3 /*break*/, 4];\r\n case 3:\r\n _a.sent();\r\n this.logger.error(\"Account provided in logout request was not found. Local cache unchanged.\");\r\n return [3 /*break*/, 4];\r\n case 4: return [3 /*break*/, 9];\r\n case 5:\r\n _a.trys.push([5, 8, , 9]);\r\n this.logger.verbose(\"No account provided in logout request, clearing all cache items.\", this.correlationId);\r\n // Clear all accounts and tokens\r\n return [4 /*yield*/, this.browserStorage.clear()];\r\n case 6:\r\n // Clear all accounts and tokens\r\n _a.sent();\r\n // Clear any stray keys from IndexedDB\r\n return [4 /*yield*/, this.browserCrypto.clearKeystore()];\r\n case 7:\r\n // Clear any stray keys from IndexedDB\r\n _a.sent();\r\n return [3 /*break*/, 9];\r\n case 8:\r\n _a.sent();\r\n this.logger.error(\"Attempted to clear all MSAL cache items and failed. Local cache unchanged.\");\r\n return [3 /*break*/, 9];\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer function for all request APIs\r\n * @param request\r\n */\r\n BaseInteractionClient.prototype.initializeBaseRequest = function (request, account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, scopes, validatedRequest, _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.InitializeBaseRequest, request.correlationId);\r\n this.logger.verbose(\"Initializing BaseAuthRequest\");\r\n authority = request.authority || this.config.auth.authority;\r\n if (!account) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.validateRequestAuthority(authority, account)];\r\n case 1:\r\n _b.sent();\r\n _b.label = 2;\r\n case 2:\r\n scopes = __spread(((request && request.scopes) || []));\r\n validatedRequest = __assign(__assign({}, request), { correlationId: this.correlationId, authority: authority,\r\n scopes: scopes });\r\n // Set authenticationScheme to BEARER if not explicitly set in the request\r\n if (!validatedRequest.authenticationScheme) {\r\n validatedRequest.authenticationScheme = AuthenticationScheme.BEARER;\r\n this.logger.verbose(\"Authentication Scheme wasn't explicitly set in request, defaulting to \\\"Bearer\\\" request\");\r\n }\r\n else {\r\n if (validatedRequest.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (!request.sshJwk) {\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n if (!request.sshKid) {\r\n throw ClientConfigurationError.createMissingSshKidError();\r\n }\r\n }\r\n this.logger.verbose(\"Authentication Scheme set to \\\"\" + validatedRequest.authenticationScheme + \"\\\" as configured in Auth request\");\r\n }\r\n if (!(this.config.cache.claimsBasedCachingEnabled && request.claims && !StringUtils.isEmptyObj(request.claims))) return [3 /*break*/, 4];\r\n _a = validatedRequest;\r\n return [4 /*yield*/, this.browserCrypto.hashString(request.claims)];\r\n case 3:\r\n _a.requestedClaimsHash = _b.sent();\r\n _b.label = 4;\r\n case 4: return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * Use to get the redirect uri configured in MSAL or null.\r\n * @param requestRedirectUri\r\n * @returns Redirect URL\r\n *\r\n */\r\n BaseInteractionClient.prototype.getRedirectUri = function (requestRedirectUri) {\r\n this.logger.verbose(\"getRedirectUri called\");\r\n var redirectUri = requestRedirectUri || this.config.auth.redirectUri || BrowserUtils.getCurrentUri();\r\n return UrlString.getAbsoluteUrl(redirectUri, BrowserUtils.getCurrentUri());\r\n };\r\n /*\r\n * If authority provided in the request does not match environment/authority specified\r\n * in the account or MSAL config, we throw an error.\r\n */\r\n BaseInteractionClient.prototype.validateRequestAuthority = function (authority, account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var discoveredAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0: return [4 /*yield*/, this.getDiscoveredAuthority(authority)];\r\n case 1:\r\n discoveredAuthority = _a.sent();\r\n if (!discoveredAuthority.isAlias(account.environment)) {\r\n throw ClientConfigurationError.createAuthorityMismatchError();\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * @param apiId\r\n * @param correlationId\r\n * @param forceRefresh\r\n */\r\n BaseInteractionClient.prototype.initializeServerTelemetryManager = function (apiId, forceRefresh) {\r\n this.logger.verbose(\"initializeServerTelemetryManager called\");\r\n var telemetryPayload = {\r\n clientId: this.config.auth.clientId,\r\n correlationId: this.correlationId,\r\n apiId: apiId,\r\n forceRefresh: forceRefresh || false,\r\n wrapperSKU: this.browserStorage.getWrapperMetadata()[0],\r\n wrapperVer: this.browserStorage.getWrapperMetadata()[1]\r\n };\r\n return new ServerTelemetryManager(telemetryPayload, this.browserStorage);\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n BaseInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authorityOptions;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"getDiscoveredAuthority called\");\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata\r\n };\r\n if (!requestAuthority) return [3 /*break*/, 2];\r\n this.logger.verbose(\"Creating discovered authority with request authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(requestAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n this.logger.verbose(\"Creating discovered authority with configured authority\");\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(this.config.auth.authority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger)];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return BaseInteractionClient;\r\n}());\n\nexport { BaseInteractionClient };\n//# sourceMappingURL=BaseInteractionClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { UrlString, Constants, PerformanceEvents, AuthorizationCodeClient, Authority, AuthorityFactory, ResponseMode, StringUtils, ProtocolUtils } from '@azure/msal-common';\nimport { BaseInteractionClient } from './BaseInteractionClient.js';\nimport { BrowserConstants } from '../utils/BrowserConstants.js';\nimport { version } from '../packageMetadata.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserProtocolUtils } from '../utils/BrowserProtocolUtils.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Defines the class structure and helper functions used by the \"standard\", non-brokered auth flows (popup, redirect, silent (RT), silent (iframe))\r\n */\r\nvar StandardInteractionClient = /** @class */ (function (_super) {\r\n __extends(StandardInteractionClient, _super);\r\n function StandardInteractionClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Generates an auth code request tied to the url request.\r\n * @param request\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationCodeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var generatedPkceParams, authCodeRequest;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n this.logger.verbose(\"initializeAuthorizationRequest called\", request.correlationId);\r\n return [4 /*yield*/, this.browserCrypto.generatePkceCodes()];\r\n case 1:\r\n generatedPkceParams = _a.sent();\r\n authCodeRequest = __assign(__assign({}, request), { redirectUri: request.redirectUri, code: Constants.EMPTY_STRING, codeVerifier: generatedPkceParams.verifier });\r\n request.codeChallenge = generatedPkceParams.challenge;\r\n request.codeChallengeMethod = Constants.S256_CODE_CHALLENGE_METHOD;\r\n return [2 /*return*/, authCodeRequest];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Initializer for the logout request.\r\n * @param logoutRequest\r\n */\r\n StandardInteractionClient.prototype.initializeLogoutRequest = function (logoutRequest) {\r\n this.logger.verbose(\"initializeLogoutRequest called\", logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.correlationId);\r\n var validLogoutRequest = __assign({ correlationId: this.correlationId || this.browserCrypto.createNewGuid() }, logoutRequest);\r\n /**\r\n * Set logout_hint to be login_hint from ID Token Claims if present\r\n * and logoutHint attribute wasn't manually set in logout request\r\n */\r\n if (logoutRequest) {\r\n // If logoutHint isn't set and an account was passed in, try to extract logoutHint from ID Token Claims\r\n if (!logoutRequest.logoutHint) {\r\n if (logoutRequest.account) {\r\n var logoutHint = this.getLogoutHintFromIdTokenClaims(logoutRequest.account);\r\n if (logoutHint) {\r\n this.logger.verbose(\"Setting logoutHint to login_hint ID Token Claim value for the account provided\");\r\n validLogoutRequest.logoutHint = logoutHint;\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint was not set and account was not passed into logout request, logoutHint will not be set\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint has already been set in logoutRequest\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"logoutHint will not be set since no logout request was configured\");\r\n }\r\n /*\r\n * Only set redirect uri if logout request isn't provided or the set uri isn't null.\r\n * Otherwise, use passed uri, config, or current page.\r\n */\r\n if (!logoutRequest || logoutRequest.postLogoutRedirectUri !== null) {\r\n if (logoutRequest && logoutRequest.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to uri set on logout request\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(logoutRequest.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri === null) {\r\n this.logger.verbose(\"postLogoutRedirectUri configured as null and no uri set on request, not passing post logout redirect\", validLogoutRequest.correlationId);\r\n }\r\n else if (this.config.auth.postLogoutRedirectUri) {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to configured uri\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(this.config.auth.postLogoutRedirectUri, BrowserUtils.getCurrentUri());\r\n }\r\n else {\r\n this.logger.verbose(\"Setting postLogoutRedirectUri to current page\", validLogoutRequest.correlationId);\r\n validLogoutRequest.postLogoutRedirectUri = UrlString.getAbsoluteUrl(BrowserUtils.getCurrentUri(), BrowserUtils.getCurrentUri());\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"postLogoutRedirectUri passed as null, not setting post logout redirect uri\", validLogoutRequest.correlationId);\r\n }\r\n return validLogoutRequest;\r\n };\r\n /**\r\n * Parses login_hint ID Token Claim out of AccountInfo object to be used as\r\n * logout_hint in end session request.\r\n * @param account\r\n */\r\n StandardInteractionClient.prototype.getLogoutHintFromIdTokenClaims = function (account) {\r\n var idTokenClaims = account.idTokenClaims;\r\n if (idTokenClaims) {\r\n if (idTokenClaims.login_hint) {\r\n return idTokenClaims.login_hint;\r\n }\r\n else {\r\n this.logger.verbose(\"The ID Token Claims tied to the provided account do not contain a login_hint claim, logoutHint will not be added to logout request\");\r\n }\r\n }\r\n else {\r\n this.logger.verbose(\"The provided account does not contain ID Token Claims, logoutHint will not be added to logout request\");\r\n }\r\n return null;\r\n };\r\n /**\r\n * Creates an Authorization Code Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n StandardInteractionClient.prototype.createAuthCodeClient = function (serverTelemetryManager, authorityUrl, requestAzureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, this.correlationId);\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, requestAzureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new AuthorizationCodeClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a Client Configuration object with the given request authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getClientConfiguration = function (serverTelemetryManager, requestAuthority, requestAzureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var discoveredAuthority, logger;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n this.logger.verbose(\"getClientConfiguration called\", this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n return [4 /*yield*/, this.getDiscoveredAuthority(requestAuthority, requestAzureCloudOptions)];\r\n case 1:\r\n discoveredAuthority = _a.sent();\r\n logger = this.config.system.loggerOptions;\r\n return [2 /*return*/, {\r\n authOptions: {\r\n clientId: this.config.auth.clientId,\r\n authority: discoveredAuthority,\r\n clientCapabilities: this.config.auth.clientCapabilities\r\n },\r\n systemOptions: {\r\n tokenRenewalOffsetSeconds: this.config.system.tokenRenewalOffsetSeconds,\r\n preventCorsPreflight: true\r\n },\r\n loggerOptions: {\r\n loggerCallback: logger.loggerCallback,\r\n piiLoggingEnabled: logger.piiLoggingEnabled,\r\n logLevel: logger.logLevel,\r\n correlationId: this.correlationId\r\n },\r\n cacheOptions: {\r\n claimsBasedCachingEnabled: this.config.cache.claimsBasedCachingEnabled\r\n },\r\n cryptoInterface: this.browserCrypto,\r\n networkInterface: this.networkClient,\r\n storageInterface: this.browserStorage,\r\n serverTelemetryManager: serverTelemetryManager,\r\n libraryInfo: {\r\n sku: BrowserConstants.MSAL_SKU,\r\n version: version,\r\n cpu: Constants.EMPTY_STRING,\r\n os: Constants.EMPTY_STRING\r\n },\r\n telemetry: this.config.telemetry\r\n }];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * @param hash\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.validateAndExtractStateFromHash = function (serverParams, interactionType, requestCorrelationId) {\r\n this.logger.verbose(\"validateAndExtractStateFromHash called\", requestCorrelationId);\r\n if (!serverParams.state) {\r\n throw BrowserAuthError.createHashDoesNotContainStateError();\r\n }\r\n var platformStateObj = BrowserProtocolUtils.extractBrowserRequestState(this.browserCrypto, serverParams.state);\r\n if (!platformStateObj) {\r\n throw BrowserAuthError.createUnableToParseStateError();\r\n }\r\n if (platformStateObj.interactionType !== interactionType) {\r\n throw BrowserAuthError.createStateInteractionTypeMismatchError();\r\n }\r\n this.logger.verbose(\"Returning state from hash\", requestCorrelationId);\r\n return serverParams.state;\r\n };\r\n /**\r\n * Used to get a discovered version of the default authority.\r\n * @param requestAuthority\r\n * @param requestCorrelationId\r\n */\r\n StandardInteractionClient.prototype.getDiscoveredAuthority = function (requestAuthority, requestAzureCloudOptions) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var getAuthorityMeasurement, authorityOptions, userAuthority, builtAuthority;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n this.logger.verbose(\"getDiscoveredAuthority called\", this.correlationId);\r\n getAuthorityMeasurement = (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.startMeasurement(PerformanceEvents.StandardInteractionClientGetDiscoveredAuthority, this.correlationId);\r\n authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache\r\n };\r\n userAuthority = requestAuthority ? requestAuthority : this.config.auth.authority;\r\n builtAuthority = Authority.generateAuthority(userAuthority, requestAzureCloudOptions || this.config.auth.azureCloudOptions);\r\n this.logger.verbose(\"Creating discovered authority with configured authority\", this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AuthorityFactoryCreateDiscoveredInstance, this.correlationId);\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(builtAuthority, this.config.system.networkClient, this.browserStorage, authorityOptions, this.logger, this.performanceClient, this.correlationId)\r\n .then(function (result) {\r\n getAuthorityMeasurement.endMeasurement({\r\n success: true,\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n getAuthorityMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n case 1: return [2 /*return*/, _b.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper to initialize required request parameters for interactive APIs and ssoSilent()\r\n * @param request\r\n * @param interactionType\r\n */\r\n StandardInteractionClient.prototype.initializeAuthorizationRequest = function (request, interactionType) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var redirectUri, browserState, state, validatedRequest, _a, account, legacyLoginHint;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, this.correlationId);\r\n this.logger.verbose(\"initializeAuthorizationRequest called\", this.correlationId);\r\n redirectUri = this.getRedirectUri(request.redirectUri);\r\n browserState = {\r\n interactionType: interactionType\r\n };\r\n state = ProtocolUtils.setRequestState(this.browserCrypto, (request && request.state) || Constants.EMPTY_STRING, browserState);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, this.correlationId);\r\n _a = [{}];\r\n return [4 /*yield*/, this.initializeBaseRequest(request)];\r\n case 1:\r\n validatedRequest = __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_b.sent()])), { redirectUri: redirectUri, state: state, nonce: request.nonce || this.browserCrypto.createNewGuid(), responseMode: ResponseMode.FRAGMENT }]);\r\n account = request.account || this.browserStorage.getActiveAccount();\r\n if (account) {\r\n this.logger.verbose(\"Setting validated request account\", this.correlationId);\r\n this.logger.verbosePii(\"Setting validated request account: \" + account.homeAccountId, this.correlationId);\r\n validatedRequest.account = account;\r\n }\r\n // Check for ADAL/MSAL v1 SSO\r\n if (StringUtils.isEmpty(validatedRequest.loginHint) && !account) {\r\n legacyLoginHint = this.browserStorage.getLegacyLoginHint();\r\n if (legacyLoginHint) {\r\n validatedRequest.loginHint = legacyLoginHint;\r\n }\r\n }\r\n return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n return StandardInteractionClient;\r\n}(BaseInteractionClient));\n\nexport { StandardInteractionClient };\n//# sourceMappingURL=StandardInteractionClient.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { RequestParameterBuilder } from '../request/RequestParameterBuilder.js';\nimport { AuthenticationScheme, GrantType, HeaderNames, Errors } from '../utils/Constants.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { PopTokenGenerator } from '../crypto/PopTokenGenerator.js';\nimport { StringUtils } from '../utils/StringUtils.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ClientAuthError } from '../error/ClientAuthError.js';\nimport { ServerError } from '../error/ServerError.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { UrlString } from '../url/UrlString.js';\nimport { CcsCredentialType } from '../account/CcsCredential.js';\nimport { buildClientInfoFromHomeAccountId } from '../account/ClientInfo.js';\nimport { InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage } from '../error/InteractionRequiredAuthError.js';\nimport { PerformanceEvents } from '../telemetry/performance/PerformanceEvent.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * OAuth2.0 refresh token client\r\n */\r\nvar RefreshTokenClient = /** @class */ (function (_super) {\r\n __extends(RefreshTokenClient, _super);\r\n function RefreshTokenClient(configuration, performanceClient) {\r\n return _super.call(this, configuration, performanceClient) || this;\r\n }\r\n RefreshTokenClient.prototype.acquireToken = function (request) {\r\n var _a, _b, _c, _d, _e, _f, _g;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, reqTimestamp, response, httpVerToken, requestId, responseHandler;\r\n var _this = this;\r\n return __generator(this, function (_h) {\r\n switch (_h.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n this.logger.verbose(\"RefreshTokenClientAcquireToken called\", request.correlationId);\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n return [4 /*yield*/, this.executeTokenRequest(request, this.authority)];\r\n case 1:\r\n response = _h.sent();\r\n httpVerToken = (_d = response.headers) === null || _d === void 0 ? void 0 : _d[HeaderNames.X_MS_HTTP_VERSION];\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n refreshTokenSize: ((_e = response.body.refresh_token) === null || _e === void 0 ? void 0 : _e.length) || 0,\r\n });\r\n if (httpVerToken) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.addStaticFields({\r\n httpVerToken: httpVerToken,\r\n });\r\n }\r\n requestId = (_f = response.headers) === null || _f === void 0 ? void 0 : _f[HeaderNames.X_MS_REQUEST_ID];\r\n responseHandler = new ResponseHandler(this.config.authOptions.clientId, this.cacheManager, this.cryptoUtils, this.logger, this.config.serializableCache, this.config.persistencePlugin);\r\n responseHandler.validateTokenResponse(response.body);\r\n (_g = this.performanceClient) === null || _g === void 0 ? void 0 : _g.setPreQueueTime(PerformanceEvents.HandleServerTokenResponse, request.correlationId);\r\n return [2 /*return*/, responseHandler.handleServerTokenResponse(response.body, this.authority, reqTimestamp, request, undefined, undefined, true, request.forceCache, requestId).then(function (result) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.logger.verbose(\"Error in fetching refresh token\", request.correlationId);\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets cached refresh token and attaches to request, then calls acquireToken API\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenByRefreshToken = function (request) {\r\n var _a, _b, _c, _d;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isFOCI, noFamilyRTInCache, clientMismatchErrorWithFamilyRT;\r\n return __generator(this, function (_e) {\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, request.correlationId);\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n isFOCI = this.cacheManager.isAppMetadataFOCI(request.account.environment);\r\n // if the app is part of the family, retrive a Family refresh token if present and make a refreshTokenRequest\r\n if (isFOCI) {\r\n try {\r\n (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, true)];\r\n }\r\n catch (e) {\r\n noFamilyRTInCache = e instanceof InteractionRequiredAuthError && e.errorCode === InteractionRequiredAuthErrorMessage.noTokensFoundError.code;\r\n clientMismatchErrorWithFamilyRT = e instanceof ServerError && e.errorCode === Errors.INVALID_GRANT_ERROR && e.subError === Errors.CLIENT_MISMATCH_ERROR;\r\n // if family Refresh Token (FRT) cache acquisition fails or if client_mismatch error is seen with FRT, reattempt with application Refresh Token (ART)\r\n if (noFamilyRTInCache || clientMismatchErrorWithFamilyRT) {\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n // throw in all other cases\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n }\r\n // fall back to application refresh token acquisition\r\n (_d = this.performanceClient) === null || _d === void 0 ? void 0 : _d.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n return [2 /*return*/, this.acquireTokenWithCachedRefreshToken(request, false)];\r\n });\r\n });\r\n };\r\n /**\r\n * makes a network call to acquire tokens by exchanging RefreshToken available in userCache; throws if refresh token is not cached\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.acquireTokenWithCachedRefreshToken = function (request, foci) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var atsMeasurement, refreshToken, refreshTokenRequest;\r\n return __generator(this, function (_d) {\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n atsMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientAcquireTokenWithCachedRefreshToken, request.correlationId);\r\n this.logger.verbose(\"RefreshTokenClientAcquireTokenWithCachedRefreshToken called\", request.correlationId);\r\n refreshToken = this.cacheManager.getRefreshToken(request.account, foci);\r\n if (!refreshToken) {\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.discardMeasurement();\r\n throw InteractionRequiredAuthError.createNoTokensFoundError();\r\n }\r\n // attach cached RT size to the current measurement\r\n atsMeasurement === null || atsMeasurement === void 0 ? void 0 : atsMeasurement.endMeasurement({\r\n success: true\r\n });\r\n refreshTokenRequest = __assign(__assign({}, request), { refreshToken: refreshToken.secret, authenticationScheme: request.authenticationScheme || AuthenticationScheme.BEARER, ccsCredential: {\r\n credential: request.account.homeAccountId,\r\n type: CcsCredentialType.HOME_ACCOUNT_ID\r\n } });\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireToken, request.correlationId);\r\n return [2 /*return*/, this.acquireToken(refreshTokenRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Constructs the network message and makes a NW call to the underlying secure token service\r\n * @param request\r\n * @param authority\r\n */\r\n RefreshTokenClient.prototype.executeTokenRequest = function (request, authority) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, queryParametersString, endpoint, requestBody, headers, thumbprint;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n acquireTokenMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.RefreshTokenClientExecuteTokenRequest, request.correlationId);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.RefreshTokenClientCreateTokenRequestBody, request.correlationId);\r\n queryParametersString = this.createTokenQueryParameters(request);\r\n endpoint = UrlString.appendQueryString(authority.tokenEndpoint, queryParametersString);\r\n return [4 /*yield*/, this.createTokenRequestBody(request)];\r\n case 1:\r\n requestBody = _d.sent();\r\n headers = this.createTokenRequestHeaders(request.ccsCredential);\r\n thumbprint = {\r\n clientId: this.config.authOptions.clientId,\r\n authority: authority.canonicalAuthority,\r\n scopes: request.scopes,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n return [2 /*return*/, this.executePostToTokenEndpoint(endpoint, requestBody, headers, thumbprint)\r\n .then(function (result) {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to create the token request body\r\n * @param request\r\n */\r\n RefreshTokenClient.prototype.createTokenRequestBody = function (request) {\r\n var _a, _b, _c;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, acquireTokenMeasurement, parameterBuilder, clientAssertion, popTokenGenerator, reqCnfData, clientInfo;\r\n return __generator(this, function (_d) {\r\n switch (_d.label) {\r\n case 0:\r\n (_a = this.performanceClient) === null || _a === void 0 ? void 0 : _a.addQueueMeasurement(PerformanceEvents.RefreshTokenClientCreateTokenRequestBody, request.correlationId);\r\n correlationId = request.correlationId;\r\n acquireTokenMeasurement = (_b = this.performanceClient) === null || _b === void 0 ? void 0 : _b.startMeasurement(PerformanceEvents.BaseClientCreateTokenRequestHeaders, correlationId);\r\n parameterBuilder = new RequestParameterBuilder();\r\n parameterBuilder.addClientId(this.config.authOptions.clientId);\r\n parameterBuilder.addScopes(request.scopes);\r\n parameterBuilder.addGrantType(GrantType.REFRESH_TOKEN_GRANT);\r\n parameterBuilder.addClientInfo();\r\n parameterBuilder.addLibraryInfo(this.config.libraryInfo);\r\n parameterBuilder.addApplicationTelemetry(this.config.telemetry.application);\r\n parameterBuilder.addThrottling();\r\n if (this.serverTelemetryManager) {\r\n parameterBuilder.addServerTelemetry(this.serverTelemetryManager);\r\n }\r\n parameterBuilder.addCorrelationId(correlationId);\r\n parameterBuilder.addRefreshToken(request.refreshToken);\r\n if (this.config.clientCredentials.clientSecret) {\r\n parameterBuilder.addClientSecret(this.config.clientCredentials.clientSecret);\r\n }\r\n if (this.config.clientCredentials.clientAssertion) {\r\n clientAssertion = this.config.clientCredentials.clientAssertion;\r\n parameterBuilder.addClientAssertion(clientAssertion.assertion);\r\n parameterBuilder.addClientAssertionType(clientAssertion.assertionType);\r\n }\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n popTokenGenerator = new PopTokenGenerator(this.cryptoUtils, this.performanceClient);\r\n (_c = this.performanceClient) === null || _c === void 0 ? void 0 : _c.setPreQueueTime(PerformanceEvents.PopTokenGenerateCnf, request.correlationId);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(request)];\r\n case 1:\r\n reqCnfData = _d.sent();\r\n // SPA PoP requires full Base64Url encoded req_cnf string (unhashed)\r\n parameterBuilder.addPopToken(reqCnfData.reqCnfString);\r\n return [3 /*break*/, 3];\r\n case 2:\r\n if (request.authenticationScheme === AuthenticationScheme.SSH) {\r\n if (request.sshJwk) {\r\n parameterBuilder.addSshJwk(request.sshJwk);\r\n }\r\n else {\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw ClientConfigurationError.createMissingSshJwkError();\r\n }\r\n }\r\n _d.label = 3;\r\n case 3:\r\n if (!StringUtils.isEmptyObj(request.claims) || this.config.authOptions.clientCapabilities && this.config.authOptions.clientCapabilities.length > 0) {\r\n parameterBuilder.addClaims(request.claims, this.config.authOptions.clientCapabilities);\r\n }\r\n if (this.config.systemOptions.preventCorsPreflight && request.ccsCredential) {\r\n switch (request.ccsCredential.type) {\r\n case CcsCredentialType.HOME_ACCOUNT_ID:\r\n try {\r\n clientInfo = buildClientInfoFromHomeAccountId(request.ccsCredential.credential);\r\n parameterBuilder.addCcsOid(clientInfo);\r\n }\r\n catch (e) {\r\n this.logger.verbose(\"Could not parse home account ID for CCS Header: \" + e);\r\n }\r\n break;\r\n case CcsCredentialType.UPN:\r\n parameterBuilder.addCcsUpn(request.ccsCredential.credential);\r\n break;\r\n }\r\n }\r\n acquireTokenMeasurement === null || acquireTokenMeasurement === void 0 ? void 0 : acquireTokenMeasurement.endMeasurement({\r\n success: true\r\n });\r\n return [2 /*return*/, parameterBuilder.createQueryString()];\r\n }\r\n });\r\n });\r\n };\r\n return RefreshTokenClient;\r\n}(BaseClient));\n\nexport { RefreshTokenClient };\n//# sourceMappingURL=RefreshTokenClient.js.map\n","/*! @azure/msal-common v13.3.1 2023-10-27 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { BaseClient } from './BaseClient.js';\nimport { AuthToken } from '../account/AuthToken.js';\nimport { TimeUtils } from '../utils/TimeUtils.js';\nimport { RefreshTokenClient } from './RefreshTokenClient.js';\nimport { ClientAuthError, ClientAuthErrorMessage } from '../error/ClientAuthError.js';\nimport { ClientConfigurationError } from '../error/ClientConfigurationError.js';\nimport { ResponseHandler } from '../response/ResponseHandler.js';\nimport { CacheOutcome } from '../utils/Constants.js';\nimport { StringUtils } from '../utils/StringUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentFlowClient = /** @class */ (function (_super) {\r\n __extends(SilentFlowClient, _super);\r\n function SilentFlowClient(configuration, performanceClient) {\r\n return _super.call(this, configuration, performanceClient) || this;\r\n }\r\n /**\r\n * Retrieves a token from cache if it is still valid, or uses the cached refresh token to renew\r\n * the given token and returns the renewed token\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var e_1, refreshTokenClient;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n _a.trys.push([0, 2, , 3]);\r\n return [4 /*yield*/, this.acquireCachedToken(request)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof ClientAuthError && e_1.errorCode === ClientAuthErrorMessage.tokenRefreshRequired.code) {\r\n refreshTokenClient = new RefreshTokenClient(this.config, this.performanceClient);\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(request)];\r\n }\r\n else {\r\n throw e_1;\r\n }\r\n case 3: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Retrieves token from cache or throws an error if it must be refreshed.\r\n * @param request\r\n */\r\n SilentFlowClient.prototype.acquireCachedToken = function (request) {\r\n var _a, _b, _c, _d, _e;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var environment, cacheRecord;\r\n return __generator(this, function (_f) {\r\n switch (_f.label) {\r\n case 0:\r\n // Cannot renew token if no request object is given.\r\n if (!request) {\r\n throw ClientConfigurationError.createEmptyTokenRequestError();\r\n }\r\n if (request.forceRefresh) {\r\n // Must refresh due to present force_refresh flag.\r\n (_a = this.serverTelemetryManager) === null || _a === void 0 ? void 0 : _a.setCacheOutcome(CacheOutcome.FORCE_REFRESH);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Skipping cache because forceRefresh is true.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (!this.config.cacheOptions.claimsBasedCachingEnabled && !StringUtils.isEmptyObj(request.claims)) {\r\n // Must refresh due to presence of claims in request preventing cache lookup\r\n (_b = this.serverTelemetryManager) === null || _b === void 0 ? void 0 : _b.setCacheOutcome(CacheOutcome.CLAIMS_REQUESTED_CACHE_SKIPPED);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Skipping cache because claims-based caching is disabled and claims were requested.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n // We currently do not support silent flow for account === null use cases; This will be revisited for confidential flow usecases\r\n if (!request.account) {\r\n throw ClientAuthError.createNoAccountInSilentRequestError();\r\n }\r\n environment = request.authority || this.authority.getPreferredCache();\r\n cacheRecord = this.cacheManager.readCacheRecord(request.account, request, environment);\r\n if (!cacheRecord.accessToken) {\r\n // Must refresh due to non-existent access_token.\r\n (_c = this.serverTelemetryManager) === null || _c === void 0 ? void 0 : _c.setCacheOutcome(CacheOutcome.NO_CACHED_ACCESS_TOKEN);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - No access token found in cache for the given properties.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (TimeUtils.wasClockTurnedBack(cacheRecord.accessToken.cachedAt) ||\r\n TimeUtils.isTokenExpired(cacheRecord.accessToken.expiresOn, this.config.systemOptions.tokenRenewalOffsetSeconds)) {\r\n // Must refresh due to expired access_token.\r\n (_d = this.serverTelemetryManager) === null || _d === void 0 ? void 0 : _d.setCacheOutcome(CacheOutcome.CACHED_ACCESS_TOKEN_EXPIRED);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Cached access token is expired or will expire within \" + this.config.systemOptions.tokenRenewalOffsetSeconds + \" seconds.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n else if (cacheRecord.accessToken.refreshOn && TimeUtils.isTokenExpired(cacheRecord.accessToken.refreshOn, 0)) {\r\n // Must refresh due to the refresh_in value.\r\n (_e = this.serverTelemetryManager) === null || _e === void 0 ? void 0 : _e.setCacheOutcome(CacheOutcome.REFRESH_CACHED_ACCESS_TOKEN);\r\n this.logger.info(\"SilentFlowClient:acquireCachedToken - Cached access token's refreshOn property has been exceeded'.\");\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n if (this.config.serverTelemetryManager) {\r\n this.config.serverTelemetryManager.incrementCacheHits();\r\n }\r\n return [4 /*yield*/, this.generateResultFromCacheRecord(cacheRecord, request)];\r\n case 1: return [2 /*return*/, _f.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Helper function to build response object from the CacheRecord\r\n * @param cacheRecord\r\n */\r\n SilentFlowClient.prototype.generateResultFromCacheRecord = function (cacheRecord, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var idTokenObj, authTime;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (cacheRecord.idToken) {\r\n idTokenObj = new AuthToken(cacheRecord.idToken.secret, this.config.cryptoInterface);\r\n }\r\n // token max_age check\r\n if (request.maxAge || (request.maxAge === 0)) {\r\n authTime = idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.auth_time;\r\n if (!authTime) {\r\n throw ClientAuthError.createAuthTimeNotFoundError();\r\n }\r\n AuthToken.checkMaxAge(authTime, request.maxAge);\r\n }\r\n return [4 /*yield*/, ResponseHandler.generateAuthenticationResult(this.cryptoUtils, this.authority, cacheRecord, true, request, idTokenObj)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n return SilentFlowClient;\r\n}(BaseClient));\n\nexport { SilentFlowClient };\n//# sourceMappingURL=SilentFlowClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { AuthError, PerformanceEvents, SilentFlowClient } from '@azure/msal-common';\nimport { ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentCacheClient = /** @class */ (function (_super) {\r\n __extends(SilentCacheClient, _super);\r\n function SilentCacheClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Returns unexpired tokens from the cache, if available\r\n * @param silentRequest\r\n */\r\n SilentCacheClient.prototype.acquireToken = function (silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, serverTelemetryManager, silentAuthClient, cachedToken, error_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentCacheClientAcquireToken, silentRequest.correlationId);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createSilentFlowClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 1:\r\n silentAuthClient = _a.sent();\r\n this.logger.verbose(\"Silent auth client created\");\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, silentAuthClient.acquireCachedToken(silentRequest)];\r\n case 3:\r\n cachedToken = _a.sent();\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: true\r\n });\r\n return [2 /*return*/, cachedToken];\r\n case 4:\r\n error_1 = _a.sent();\r\n if (error_1 instanceof BrowserAuthError && error_1.errorCode === BrowserAuthErrorMessage.signingKeyNotFoundInStorage.code) {\r\n this.logger.verbose(\"Signing keypair for bound access token not found. Refreshing bound access token and generating a new crypto keypair.\");\r\n }\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: error_1 instanceof AuthError && error_1.errorCode || undefined,\r\n subErrorCode: error_1 instanceof AuthError && error_1.subError || undefined,\r\n success: false\r\n });\r\n throw error_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentCacheClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates an Silent Flow Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentCacheClient.prototype.createSilentFlowClient = function (serverTelemetryManager, authorityUrl, azureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new SilentFlowClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n SilentCacheClient.prototype.initializeSilentRequest = function (request, account) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var _a;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.InitializeSilentRequest, this.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, this.correlationId);\r\n _a = [__assign({}, request)];\r\n return [4 /*yield*/, this.initializeBaseRequest(request, account)];\r\n case 1: return [2 /*return*/, __assign.apply(void 0, [__assign.apply(void 0, _a.concat([_b.sent()])), { account: account, forceRefresh: request.forceRefresh || false }])];\r\n }\r\n });\r\n });\r\n };\r\n return SilentCacheClient;\r\n}(StandardInteractionClient));\n\nexport { SilentCacheClient };\n//# sourceMappingURL=SilentCacheClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator, __rest, __assign } from '../_virtual/_tslib.js';\nimport { ScopeSet, AuthToken, Constants, AccountEntity, AuthorityType, IdTokenEntity, AccessTokenEntity, CacheRecord, PerformanceEvents, TimeUtils, ClientAuthError, AuthenticationScheme, PopTokenGenerator, UrlString, OIDC_DEFAULT_SCOPES, PromptValue } from '@azure/msal-common';\nimport { BaseInteractionClient } from './BaseInteractionClient.js';\nimport { TemporaryCacheKeys, NativeExtensionMethod, NativeConstants, ApiId } from '../utils/BrowserConstants.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { SilentCacheClient } from './SilentCacheClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeInteractionClient = /** @class */ (function (_super) {\r\n __extends(NativeInteractionClient, _super);\r\n function NativeInteractionClient(config, browserStorage, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, provider, accountId, nativeStorageImpl, correlationId) {\r\n var _this = _super.call(this, config, browserStorage, browserCrypto, logger, eventHandler, navigationClient, performanceClient, provider, correlationId) || this;\r\n _this.apiId = apiId;\r\n _this.accountId = accountId;\r\n _this.nativeMessageHandler = provider;\r\n _this.nativeStorageManager = nativeStorageImpl;\r\n _this.silentCacheClient = new SilentCacheClient(config, _this.nativeStorageManager, browserCrypto, logger, eventHandler, navigationClient, performanceClient, provider, correlationId);\r\n return _this;\r\n }\r\n /**\r\n * Acquire token from native platform via browser extension\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeATMeasurement, reqTimestamp, nativeRequest, result, messageBody, response, validatedResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - acquireToken called.\");\r\n nativeATMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.NativeInteractionClientAcquireToken, request.correlationId);\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n return [4 /*yield*/, this.initializeNativeRequest(request)];\r\n case 1:\r\n nativeRequest = _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, this.acquireTokensFromCache(this.accountId, nativeRequest)];\r\n case 3:\r\n result = _a.sent();\r\n nativeATMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: false,\r\n fromCache: true\r\n });\r\n return [2 /*return*/, result];\r\n case 4:\r\n _a.sent();\r\n // continue with a native call for any and all errors\r\n this.logger.info(\"MSAL internal Cache does not contain tokens, proceed to make a native call\");\r\n return [3 /*break*/, 5];\r\n case 5:\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: nativeRequest\r\n };\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 6:\r\n response = _a.sent();\r\n validatedResponse = this.validateNativeResponse(response);\r\n return [2 /*return*/, this.handleNativeResponse(validatedResponse, nativeRequest, reqTimestamp)\r\n .then(function (result) {\r\n nativeATMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n nativeATMeasurement.endMeasurement({\r\n success: false,\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n isNativeBroker: true\r\n });\r\n throw error;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Creates silent flow request\r\n * @param request\r\n * @param cachedAccount\r\n * @returns CommonSilentFlowRequest\r\n */\r\n NativeInteractionClient.prototype.createSilentCacheRequest = function (request, cachedAccount) {\r\n return {\r\n authority: request.authority,\r\n correlationId: this.correlationId,\r\n scopes: ScopeSet.fromString(request.scope).asArray(),\r\n account: cachedAccount,\r\n forceRefresh: false,\r\n };\r\n };\r\n /**\r\n * Fetches the tokens from the cache if un-expired\r\n * @param nativeAccountId\r\n * @param request\r\n * @returns authenticationResult\r\n */\r\n NativeInteractionClient.prototype.acquireTokensFromCache = function (nativeAccountId, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var account, silentRequest, result, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!nativeAccountId) {\r\n this.logger.warning(\"NativeInteractionClient:acquireTokensFromCache - No nativeAccountId provided\");\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n account = this.browserStorage.getAccountInfoFilteredBy({ nativeAccountId: nativeAccountId });\r\n if (!account) {\r\n throw ClientAuthError.createNoAccountFoundError();\r\n }\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n silentRequest = this.createSilentCacheRequest(request, account);\r\n return [4 /*yield*/, this.silentCacheClient.acquireToken(silentRequest)];\r\n case 2:\r\n result = _a.sent();\r\n return [2 /*return*/, result];\r\n case 3:\r\n e_2 = _a.sent();\r\n throw e_2;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Acquires a token from native platform then redirects to the redirectUri instead of returning the response\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.acquireTokenRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeRequest, messageBody, response, e_3, navigationOptions, redirectUri;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - acquireTokenRedirect called.\");\r\n return [4 /*yield*/, this.initializeNativeRequest(request)];\r\n case 1:\r\n nativeRequest = _a.sent();\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: nativeRequest\r\n };\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 3:\r\n response = _a.sent();\r\n this.validateNativeResponse(response);\r\n return [3 /*break*/, 5];\r\n case 4:\r\n e_3 = _a.sent();\r\n // Only throw fatal errors here to allow application to fallback to regular redirect. Otherwise proceed and the error will be thrown in handleRedirectPromise\r\n if (e_3 instanceof NativeAuthError && e_3.isFatal()) {\r\n throw e_3;\r\n }\r\n return [3 /*break*/, 5];\r\n case 5:\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.NATIVE_REQUEST, JSON.stringify(nativeRequest), true);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n redirectUri = this.config.auth.navigateToLoginRequestUrl ? window.location.href : this.getRedirectUri(request.redirectUri);\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(redirectUri, navigationOptions)];\r\n case 6:\r\n _a.sent(); // Need to treat this as external to ensure handleRedirectPromise is run again\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * If the previous page called native platform for a token using redirect APIs, send the same request again and return the response\r\n */\r\n NativeInteractionClient.prototype.handleRedirectPromise = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, prompt, request, messageBody, reqTimestamp, response, result, e_4;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - handleRedirectPromise called.\");\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n cachedRequest = this.browserStorage.getCachedNativeRequest();\r\n if (!cachedRequest) {\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise called but there is no cached request, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n prompt = cachedRequest.prompt, request = __rest(cachedRequest, [\"prompt\"]);\r\n if (prompt) {\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise called and prompt was included in the original request, removing prompt from cached request to prevent second interaction with native broker window.\");\r\n }\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.NATIVE_REQUEST));\r\n messageBody = {\r\n method: NativeExtensionMethod.GetToken,\r\n request: request\r\n };\r\n reqTimestamp = TimeUtils.nowSeconds();\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 4]);\r\n this.logger.verbose(\"NativeInteractionClient - handleRedirectPromise sending message to native broker.\");\r\n return [4 /*yield*/, this.nativeMessageHandler.sendMessage(messageBody)];\r\n case 2:\r\n response = _a.sent();\r\n this.validateNativeResponse(response);\r\n result = this.handleNativeResponse(response, request, reqTimestamp);\r\n this.browserStorage.setInteractionInProgress(false);\r\n return [2 /*return*/, result];\r\n case 3:\r\n e_4 = _a.sent();\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw e_4;\r\n case 4: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Logout from native platform via browser extension\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.logout = function () {\r\n this.logger.trace(\"NativeInteractionClient - logout called.\");\r\n return Promise.reject(\"Logout not implemented yet\");\r\n };\r\n /**\r\n * Transform response from native platform into AuthenticationResult object which will be returned to the end user\r\n * @param response\r\n * @param request\r\n * @param reqTimestamp\r\n */\r\n NativeInteractionClient.prototype.handleNativeResponse = function (response, request, reqTimestamp) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, authorityPreferredCache, idTokenObj, homeAccountIdentifier, accountEntity, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - handleNativeResponse called.\");\r\n if (response.account.id !== request.accountId) {\r\n // User switch in native broker prompt is not supported. All users must first sign in through web flow to ensure server state is in sync\r\n throw NativeAuthError.createUserSwitchError();\r\n }\r\n return [4 /*yield*/, this.getDiscoveredAuthority(request.authority)];\r\n case 1:\r\n authority = _a.sent();\r\n authorityPreferredCache = authority.getPreferredCache();\r\n idTokenObj = this.createIdTokenObj(response);\r\n homeAccountIdentifier = this.createHomeAccountIdentifier(response, idTokenObj);\r\n accountEntity = this.createAccountEntity(response, homeAccountIdentifier, idTokenObj, authorityPreferredCache);\r\n return [4 /*yield*/, this.generateAuthenticationResult(response, request, idTokenObj, accountEntity, authority.canonicalAuthority, reqTimestamp)];\r\n case 2:\r\n result = _a.sent();\r\n // cache accounts and tokens in the appropriate storage\r\n this.cacheAccount(accountEntity);\r\n this.cacheNativeTokens(response, request, homeAccountIdentifier, accountEntity, idTokenObj, result.accessToken, result.tenantId, reqTimestamp);\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Create an idToken Object (not entity)\r\n * @param response\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.createIdTokenObj = function (response) {\r\n return new AuthToken(response.id_token || Constants.EMPTY_STRING, this.browserCrypto);\r\n };\r\n /**\r\n * creates an homeAccountIdentifier for the account\r\n * @param response\r\n * @param idTokenObj\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.createHomeAccountIdentifier = function (response, idTokenObj) {\r\n // Save account in browser storage\r\n var homeAccountIdentifier = AccountEntity.generateHomeAccountId(response.client_info || Constants.EMPTY_STRING, AuthorityType.Default, this.logger, this.browserCrypto, idTokenObj);\r\n return homeAccountIdentifier;\r\n };\r\n /**\r\n * Creates account entity\r\n * @param response\r\n * @param homeAccountIdentifier\r\n * @param idTokenObj\r\n * @param authority\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.createAccountEntity = function (response, homeAccountIdentifier, idTokenObj, authority) {\r\n return AccountEntity.createAccount(response.client_info, homeAccountIdentifier, idTokenObj, undefined, undefined, undefined, authority, response.account.id);\r\n };\r\n /**\r\n * Helper to generate scopes\r\n * @param response\r\n * @param request\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.generateScopes = function (response, request) {\r\n return response.scope ? ScopeSet.fromString(response.scope) : ScopeSet.fromString(request.scope);\r\n };\r\n /**\r\n * If PoP token is requesred, records the PoP token if returned from the WAM, else generates one in the browser\r\n * @param request\r\n * @param response\r\n */\r\n NativeInteractionClient.prototype.generatePopAccessToken = function (response, request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var popTokenGenerator, shrParameters;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (!(request.tokenType === AuthenticationScheme.POP)) return [3 /*break*/, 2];\r\n /**\r\n * This code prioritizes SHR returned from the native layer. In case of error/SHR not calculated from WAM and the AT\r\n * is still received, SHR is calculated locally\r\n */\r\n // Check if native layer returned an SHR token\r\n if (response.shr) {\r\n this.logger.trace(\"handleNativeServerResponse: SHR is enabled in native layer\");\r\n return [2 /*return*/, response.shr];\r\n }\r\n popTokenGenerator = new PopTokenGenerator(this.browserCrypto);\r\n shrParameters = {\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n shrNonce: request.shrNonce\r\n };\r\n /**\r\n * KeyID must be present in the native request from when the PoP key was generated in order for\r\n * PopTokenGenerator to query the full key for signing\r\n */\r\n if (!request.keyId) {\r\n throw ClientAuthError.createKeyIdMissingError();\r\n }\r\n return [4 /*yield*/, popTokenGenerator.signPopToken(response.access_token, request.keyId, shrParameters)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/, response.access_token];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Generates authentication result\r\n * @param response\r\n * @param request\r\n * @param idTokenObj\r\n * @param accountEntity\r\n * @param authority\r\n * @param reqTimestamp\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.generateAuthenticationResult = function (response, request, idTokenObj, accountEntity, authority, reqTimestamp) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var mats, responseScopes, accountProperties, uid, tid, responseAccessToken, tokenType, result;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n mats = this.addTelemetryFromNativeResponse(response);\r\n responseScopes = response.scope ? ScopeSet.fromString(response.scope) : ScopeSet.fromString(request.scope);\r\n accountProperties = response.account.properties || {};\r\n uid = accountProperties[\"UID\"] || idTokenObj.claims.oid || idTokenObj.claims.sub || Constants.EMPTY_STRING;\r\n tid = accountProperties[\"TenantId\"] || idTokenObj.claims.tid || Constants.EMPTY_STRING;\r\n return [4 /*yield*/, this.generatePopAccessToken(response, request)];\r\n case 1:\r\n responseAccessToken = _a.sent();\r\n tokenType = (request.tokenType === AuthenticationScheme.POP) ? AuthenticationScheme.POP : AuthenticationScheme.BEARER;\r\n result = {\r\n authority: authority,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes.asArray(),\r\n account: accountEntity.getAccountInfo(),\r\n idToken: response.id_token,\r\n idTokenClaims: idTokenObj.claims,\r\n accessToken: responseAccessToken,\r\n fromCache: mats ? this.isResponseFromCache(mats) : false,\r\n expiresOn: new Date(Number(reqTimestamp + response.expires_in) * 1000),\r\n tokenType: tokenType,\r\n correlationId: this.correlationId,\r\n state: response.state,\r\n fromNativeBroker: true\r\n };\r\n return [2 /*return*/, result];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * cache the account entity in browser storage\r\n * @param accountEntity\r\n */\r\n NativeInteractionClient.prototype.cacheAccount = function (accountEntity) {\r\n var _this = this;\r\n // Store the account info and hence `nativeAccountId` in browser cache\r\n this.browserStorage.setAccount(accountEntity);\r\n // Remove any existing cached tokens for this account in browser storage\r\n this.browserStorage.removeAccountContext(accountEntity).catch(function (e) {\r\n _this.logger.error(\"Error occurred while removing account context from browser storage. \" + e);\r\n });\r\n };\r\n /**\r\n * Stores the access_token and id_token in inmemory storage\r\n * @param response\r\n * @param request\r\n * @param homeAccountIdentifier\r\n * @param idTokenObj\r\n * @param responseAccessToken\r\n * @param tenantId\r\n * @param reqTimestamp\r\n */\r\n NativeInteractionClient.prototype.cacheNativeTokens = function (response, request, homeAccountIdentifier, accountEntity, idTokenObj, responseAccessToken, tenantId, reqTimestamp) {\r\n var cachedIdToken = IdTokenEntity.createIdTokenEntity(homeAccountIdentifier, request.authority, response.id_token || Constants.EMPTY_STRING, request.clientId, idTokenObj.claims.tid || Constants.EMPTY_STRING);\r\n // cache accessToken in inmemory storage\r\n var expiresIn = (request.tokenType === AuthenticationScheme.POP)\r\n ? Constants.SHR_NONCE_VALIDITY\r\n : (typeof response.expires_in === \"string\"\r\n ? parseInt(response.expires_in, 10)\r\n : response.expires_in) || 0;\r\n var tokenExpirationSeconds = reqTimestamp + expiresIn;\r\n var responseScopes = this.generateScopes(response, request);\r\n var cachedAccessToken = AccessTokenEntity.createAccessTokenEntity(homeAccountIdentifier, request.authority, responseAccessToken, request.clientId, idTokenObj\r\n ? idTokenObj.claims.tid || Constants.EMPTY_STRING\r\n : tenantId, responseScopes.printScopes(), tokenExpirationSeconds, 0, this.browserCrypto);\r\n var nativeCacheRecord = new CacheRecord(accountEntity, cachedIdToken, cachedAccessToken);\r\n this.nativeStorageManager.saveCacheRecord(nativeCacheRecord);\r\n };\r\n NativeInteractionClient.prototype.addTelemetryFromNativeResponse = function (response) {\r\n var mats = this.getMATSFromResponse(response);\r\n if (!mats) {\r\n return null;\r\n }\r\n this.performanceClient.addStaticFields({\r\n extensionId: this.nativeMessageHandler.getExtensionId(),\r\n extensionVersion: this.nativeMessageHandler.getExtensionVersion(),\r\n matsBrokerVersion: mats.broker_version,\r\n matsAccountJoinOnStart: mats.account_join_on_start,\r\n matsAccountJoinOnEnd: mats.account_join_on_end,\r\n matsDeviceJoin: mats.device_join,\r\n matsPromptBehavior: mats.prompt_behavior,\r\n matsApiErrorCode: mats.api_error_code,\r\n matsUiVisible: mats.ui_visible,\r\n matsSilentCode: mats.silent_code,\r\n matsSilentBiSubCode: mats.silent_bi_sub_code,\r\n matsSilentMessage: mats.silent_message,\r\n matsSilentStatus: mats.silent_status,\r\n matsHttpStatus: mats.http_status,\r\n matsHttpEventCount: mats.http_event_count\r\n }, this.correlationId);\r\n return mats;\r\n };\r\n /**\r\n * Validates native platform response before processing\r\n * @param response\r\n */\r\n NativeInteractionClient.prototype.validateNativeResponse = function (response) {\r\n if (response.hasOwnProperty(\"access_token\") &&\r\n response.hasOwnProperty(\"id_token\") &&\r\n response.hasOwnProperty(\"client_info\") &&\r\n response.hasOwnProperty(\"account\") &&\r\n response.hasOwnProperty(\"scope\") &&\r\n response.hasOwnProperty(\"expires_in\")) {\r\n return response;\r\n }\r\n else {\r\n throw NativeAuthError.createUnexpectedError(\"Response missing expected properties.\");\r\n }\r\n };\r\n /**\r\n * Gets MATS telemetry from native response\r\n * @param response\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.getMATSFromResponse = function (response) {\r\n if (response.properties.MATS) {\r\n try {\r\n return JSON.parse(response.properties.MATS);\r\n }\r\n catch (e) {\r\n this.logger.error(\"NativeInteractionClient - Error parsing MATS telemetry, returning null instead\");\r\n }\r\n }\r\n return null;\r\n };\r\n /**\r\n * Returns whether or not response came from native cache\r\n * @param response\r\n * @returns\r\n */\r\n NativeInteractionClient.prototype.isResponseFromCache = function (mats) {\r\n if (typeof mats.is_cached === \"undefined\") {\r\n this.logger.verbose(\"NativeInteractionClient - MATS telemetry does not contain field indicating if response was served from cache. Returning false.\");\r\n return false;\r\n }\r\n return !!mats.is_cached;\r\n };\r\n /**\r\n * Translates developer provided request object into NativeRequest object\r\n * @param request\r\n */\r\n NativeInteractionClient.prototype.initializeNativeRequest = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authority, canonicalAuthority, scopes, remainingProperties, scopeSet, getPrompt, validatedRequest, shrParameters, popTokenGenerator, reqCnfData;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"NativeInteractionClient - initializeNativeRequest called\");\r\n authority = request.authority || this.config.auth.authority;\r\n if (!request.account) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.validateRequestAuthority(authority, request.account)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n canonicalAuthority = new UrlString(authority);\r\n canonicalAuthority.validateAsUri();\r\n scopes = request.scopes, remainingProperties = __rest(request, [\"scopes\"]);\r\n scopeSet = new ScopeSet(scopes || []);\r\n scopeSet.appendScopes(OIDC_DEFAULT_SCOPES);\r\n getPrompt = function () {\r\n // If request is silent, prompt is always none\r\n switch (_this.apiId) {\r\n case ApiId.ssoSilent:\r\n case ApiId.acquireTokenSilent_silentFlow:\r\n _this.logger.trace(\"initializeNativeRequest: silent request sets prompt to none\");\r\n return PromptValue.NONE;\r\n }\r\n // Prompt not provided, request may proceed and native broker decides if it needs to prompt\r\n if (!request.prompt) {\r\n _this.logger.trace(\"initializeNativeRequest: prompt was not provided\");\r\n return undefined;\r\n }\r\n // If request is interactive, check if prompt provided is allowed to go directly to native broker\r\n switch (request.prompt) {\r\n case PromptValue.NONE:\r\n case PromptValue.CONSENT:\r\n case PromptValue.LOGIN:\r\n _this.logger.trace(\"initializeNativeRequest: prompt is compatible with native flow\");\r\n return request.prompt;\r\n default:\r\n _this.logger.trace(\"initializeNativeRequest: prompt = \" + request.prompt + \" is not compatible with native flow\");\r\n throw BrowserAuthError.createNativePromptParameterNotSupportedError();\r\n }\r\n };\r\n validatedRequest = __assign(__assign({}, remainingProperties), { accountId: this.accountId, clientId: this.config.auth.clientId, authority: canonicalAuthority.urlString, scope: scopeSet.printScopes(), redirectUri: this.getRedirectUri(request.redirectUri), prompt: getPrompt(), correlationId: this.correlationId, tokenType: request.authenticationScheme, windowTitleSubstring: document.title, extraParameters: __assign(__assign(__assign({}, request.extraQueryParameters), request.tokenQueryParameters), { telemetry: NativeConstants.MATS_TELEMETRY }), extendedExpiryToken: false // Make this configurable?\r\n });\r\n if (!(request.authenticationScheme === AuthenticationScheme.POP)) return [3 /*break*/, 4];\r\n shrParameters = {\r\n resourceRequestUri: request.resourceRequestUri,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n shrClaims: request.shrClaims,\r\n shrNonce: request.shrNonce\r\n };\r\n popTokenGenerator = new PopTokenGenerator(this.browserCrypto);\r\n return [4 /*yield*/, popTokenGenerator.generateCnf(shrParameters)];\r\n case 3:\r\n reqCnfData = _a.sent();\r\n // to reduce the URL length, it is recommended to send the short form of the req_cnf \r\n validatedRequest.reqCnf = reqCnfData.reqCnfString;\r\n validatedRequest.keyId = reqCnfData.kid;\r\n _a.label = 4;\r\n case 4: return [2 /*return*/, validatedRequest];\r\n }\r\n });\r\n });\r\n };\r\n return NativeInteractionClient;\r\n}(BaseInteractionClient));\n\nexport { NativeInteractionClient };\n//# sourceMappingURL=NativeInteractionClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../../_virtual/_tslib.js';\nimport { NativeConstants, NativeExtensionMethod } from '../../utils/BrowserConstants.js';\nimport { AuthError, AuthenticationScheme, PerformanceEvents } from '@azure/msal-common';\nimport { NativeAuthError } from '../../error/NativeAuthError.js';\nimport { BrowserAuthError } from '../../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar NativeMessageHandler = /** @class */ (function () {\r\n function NativeMessageHandler(logger, handshakeTimeoutMs, performanceClient, extensionId) {\r\n this.logger = logger;\r\n this.handshakeTimeoutMs = handshakeTimeoutMs;\r\n this.extensionId = extensionId;\r\n this.resolvers = new Map(); // Used for non-handshake messages\r\n this.handshakeResolvers = new Map(); // Used for handshake messages\r\n this.responseId = 0;\r\n this.messageChannel = new MessageChannel();\r\n this.windowListener = this.onWindowMessage.bind(this); // Window event callback doesn't have access to 'this' unless it's bound\r\n this.performanceClient = performanceClient;\r\n this.handshakeEvent = performanceClient.startMeasurement(PerformanceEvents.NativeMessageHandlerHandshake);\r\n }\r\n /**\r\n * Sends a given message to the extension and resolves with the extension response\r\n * @param body\r\n */\r\n NativeMessageHandler.prototype.sendMessage = function (body) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var req;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"NativeMessageHandler - sendMessage called.\");\r\n req = {\r\n channel: NativeConstants.CHANNEL_ID,\r\n extensionId: this.extensionId,\r\n responseId: this.responseId++,\r\n body: body\r\n };\r\n this.logger.trace(\"NativeMessageHandler - Sending request to browser extension\");\r\n this.logger.tracePii(\"NativeMessageHandler - Sending request to browser extension: \" + JSON.stringify(req));\r\n this.messageChannel.port1.postMessage(req);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n _this.resolvers.set(req.responseId, { resolve: resolve, reject: reject });\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns an instance of the MessageHandler that has successfully established a connection with an extension\r\n * @param {Logger} logger\r\n * @param {number} handshakeTimeoutMs\r\n * @param {IPerformanceClient} performanceClient\r\n */\r\n NativeMessageHandler.createProvider = function (logger, handshakeTimeoutMs, performanceClient) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var preferredProvider, backupProvider;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n logger.trace(\"NativeMessageHandler - createProvider called.\");\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 3, , 5]);\r\n preferredProvider = new NativeMessageHandler(logger, handshakeTimeoutMs, performanceClient, NativeConstants.PREFERRED_EXTENSION_ID);\r\n return [4 /*yield*/, preferredProvider.sendHandshakeRequest()];\r\n case 2:\r\n _a.sent();\r\n return [2 /*return*/, preferredProvider];\r\n case 3:\r\n _a.sent();\r\n backupProvider = new NativeMessageHandler(logger, handshakeTimeoutMs, performanceClient);\r\n return [4 /*yield*/, backupProvider.sendHandshakeRequest()];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/, backupProvider];\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Send handshake request helper.\r\n */\r\n NativeMessageHandler.prototype.sendHandshakeRequest = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var req;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"NativeMessageHandler - sendHandshakeRequest called.\");\r\n // Register this event listener before sending handshake\r\n window.addEventListener(\"message\", this.windowListener, false); // false is important, because content script message processing should work first\r\n req = {\r\n channel: NativeConstants.CHANNEL_ID,\r\n extensionId: this.extensionId,\r\n responseId: this.responseId++,\r\n body: {\r\n method: NativeExtensionMethod.HandshakeRequest\r\n }\r\n };\r\n this.handshakeEvent.addStaticFields({\r\n extensionId: this.extensionId,\r\n extensionHandshakeTimeoutMs: this.handshakeTimeoutMs\r\n });\r\n this.messageChannel.port1.onmessage = function (event) {\r\n _this.onChannelMessage(event);\r\n };\r\n window.postMessage(req, window.origin, [this.messageChannel.port2]);\r\n return [2 /*return*/, new Promise(function (resolve, reject) {\r\n _this.handshakeResolvers.set(req.responseId, { resolve: resolve, reject: reject });\r\n _this.timeoutId = window.setTimeout(function () {\r\n /*\r\n * Throw an error if neither HandshakeResponse nor original Handshake request are received in a reasonable timeframe.\r\n * This typically suggests an event handler stopped propagation of the Handshake request but did not respond to it on the MessageChannel port\r\n */\r\n window.removeEventListener(\"message\", _this.windowListener, false);\r\n _this.messageChannel.port1.close();\r\n _this.messageChannel.port2.close();\r\n _this.handshakeEvent.endMeasurement({ extensionHandshakeTimedOut: true, success: false });\r\n reject(BrowserAuthError.createNativeHandshakeTimeoutError());\r\n _this.handshakeResolvers.delete(req.responseId);\r\n }, _this.handshakeTimeoutMs); // Use a reasonable timeout in milliseconds here\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * Invoked when a message is posted to the window. If a handshake request is received it means the extension is not installed.\r\n * @param event\r\n */\r\n NativeMessageHandler.prototype.onWindowMessage = function (event) {\r\n this.logger.trace(\"NativeMessageHandler - onWindowMessage called\");\r\n // We only accept messages from ourselves\r\n if (event.source !== window) {\r\n return;\r\n }\r\n var request = event.data;\r\n if (!request.channel || request.channel !== NativeConstants.CHANNEL_ID) {\r\n return;\r\n }\r\n if (request.extensionId && request.extensionId !== this.extensionId) {\r\n return;\r\n }\r\n if (request.body.method === NativeExtensionMethod.HandshakeRequest) {\r\n // If we receive this message back it means no extension intercepted the request, meaning no extension supporting handshake protocol is installed\r\n this.logger.verbose(request.extensionId ? \"Extension with id: \" + request.extensionId + \" not installed\" : \"No extension installed\");\r\n clearTimeout(this.timeoutId);\r\n this.messageChannel.port1.close();\r\n this.messageChannel.port2.close();\r\n window.removeEventListener(\"message\", this.windowListener, false);\r\n var handshakeResolver = this.handshakeResolvers.get(request.responseId);\r\n if (handshakeResolver) {\r\n this.handshakeEvent.endMeasurement({ success: false, extensionInstalled: false });\r\n handshakeResolver.reject(BrowserAuthError.createNativeExtensionNotInstalledError());\r\n }\r\n }\r\n };\r\n /**\r\n * Invoked when a message is received from the extension on the MessageChannel port\r\n * @param event\r\n */\r\n NativeMessageHandler.prototype.onChannelMessage = function (event) {\r\n this.logger.trace(\"NativeMessageHandler - onChannelMessage called.\");\r\n var request = event.data;\r\n var resolver = this.resolvers.get(request.responseId);\r\n var handshakeResolver = this.handshakeResolvers.get(request.responseId);\r\n try {\r\n var method = request.body.method;\r\n if (method === NativeExtensionMethod.Response) {\r\n if (!resolver) {\r\n return;\r\n }\r\n var response = request.body.response;\r\n this.logger.trace(\"NativeMessageHandler - Received response from browser extension\");\r\n this.logger.tracePii(\"NativeMessageHandler - Received response from browser extension: \" + JSON.stringify(response));\r\n if (response.status !== \"Success\") {\r\n resolver.reject(NativeAuthError.createError(response.code, response.description, response.ext));\r\n }\r\n else if (response.result) {\r\n if (response.result[\"code\"] && response.result[\"description\"]) {\r\n resolver.reject(NativeAuthError.createError(response.result[\"code\"], response.result[\"description\"], response.result[\"ext\"]));\r\n }\r\n else {\r\n resolver.resolve(response.result);\r\n }\r\n }\r\n else {\r\n throw AuthError.createUnexpectedError(\"Event does not contain result.\");\r\n }\r\n this.resolvers.delete(request.responseId);\r\n }\r\n else if (method === NativeExtensionMethod.HandshakeResponse) {\r\n if (!handshakeResolver) {\r\n return;\r\n }\r\n clearTimeout(this.timeoutId); // Clear setTimeout\r\n window.removeEventListener(\"message\", this.windowListener, false); // Remove 'No extension' listener\r\n this.extensionId = request.extensionId;\r\n this.extensionVersion = request.body.version;\r\n this.logger.verbose(\"NativeMessageHandler - Received HandshakeResponse from extension: \" + this.extensionId);\r\n this.handshakeEvent.endMeasurement({ extensionInstalled: true, success: true });\r\n handshakeResolver.resolve();\r\n this.handshakeResolvers.delete(request.responseId);\r\n }\r\n // Do nothing if method is not Response or HandshakeResponse\r\n }\r\n catch (err) {\r\n this.logger.error(\"Error parsing response from WAM Extension\");\r\n this.logger.errorPii(\"Error parsing response from WAM Extension: \" + err.toString());\r\n this.logger.errorPii(\"Unable to parse \" + event);\r\n if (resolver) {\r\n resolver.reject(err);\r\n }\r\n else if (handshakeResolver) {\r\n handshakeResolver.reject(err);\r\n }\r\n }\r\n };\r\n /**\r\n * Returns the Id for the browser extension this handler is communicating with\r\n * @returns\r\n */\r\n NativeMessageHandler.prototype.getExtensionId = function () {\r\n return this.extensionId;\r\n };\r\n /**\r\n * Returns the version for the browser extension this handler is communicating with\r\n * @returns\r\n */\r\n NativeMessageHandler.prototype.getExtensionVersion = function () {\r\n return this.extensionVersion;\r\n };\r\n /**\r\n * Returns boolean indicating whether or not the request should attempt to use native broker\r\n * @param logger\r\n * @param config\r\n * @param nativeExtensionProvider\r\n * @param authenticationScheme\r\n */\r\n NativeMessageHandler.isNativeAvailable = function (config, logger, nativeExtensionProvider, authenticationScheme) {\r\n logger.trace(\"isNativeAvailable called\");\r\n if (!config.system.allowNativeBroker) {\r\n logger.trace(\"isNativeAvailable: allowNativeBroker is not enabled, returning false\");\r\n // Developer disabled WAM\r\n return false;\r\n }\r\n if (!nativeExtensionProvider) {\r\n logger.trace(\"isNativeAvailable: WAM extension provider is not initialized, returning false\");\r\n // Extension is not available\r\n return false;\r\n }\r\n if (authenticationScheme) {\r\n switch (authenticationScheme) {\r\n case AuthenticationScheme.BEARER:\r\n case AuthenticationScheme.POP:\r\n logger.trace(\"isNativeAvailable: authenticationScheme is supported, returning true\");\r\n return true;\r\n default:\r\n logger.trace(\"isNativeAvailable: authenticationScheme is not supported, returning false\");\r\n return false;\r\n }\r\n }\r\n return true;\r\n };\r\n return NativeMessageHandler;\r\n}());\n\nexport { NativeMessageHandler };\n//# sourceMappingURL=NativeMessageHandler.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, StringUtils, ClientAuthError, ServerError, AuthorityFactory } from '@azure/msal-common';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys } from '../utils/BrowserConstants.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Abstract class which defines operations for a browser interaction handling class.\r\n */\r\nvar InteractionHandler = /** @class */ (function () {\r\n function InteractionHandler(authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) {\r\n this.authModule = authCodeModule;\r\n this.browserStorage = storageImpl;\r\n this.authCodeRequest = authCodeRequest;\r\n this.logger = logger;\r\n this.performanceClient = performanceClient;\r\n }\r\n /**\r\n * Function to handle response parameters from hash.\r\n * @param locationHash\r\n */\r\n InteractionHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromHash, this.authCodeRequest.correlationId);\r\n this.logger.verbose(\"InteractionHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n }\r\n catch (e) {\r\n if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw BrowserAuthError.createUserCancelledError();\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);\r\n return [2 /*return*/, this.handleCodeResponseFromServer(authCodeResponse, state, authority, networkModule)];\r\n });\r\n });\r\n };\r\n /**\r\n * Process auth code response from AAD\r\n * @param authCodeResponse\r\n * @param state\r\n * @param authority\r\n * @param networkModule\r\n * @returns\r\n */\r\n InteractionHandler.prototype.handleCodeResponseFromServer = function (authCodeResponse, state, authority, networkModule, validateNonce) {\r\n if (validateNonce === void 0) { validateNonce = true; }\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.HandleCodeResponseFromServer, this.authCodeRequest.correlationId);\r\n this.logger.trace(\"InteractionHandler.handleCodeResponseFromServer called\");\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n // Nonce validation not needed when redirect not involved (e.g. hybrid spa, renewing token via rt)\r\n if (validateNonce) {\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n }\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n // Acquire token with retrieved code.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AuthClientAcquireToken, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Updates authority based on cloudInstanceHostname\r\n * @param cloudInstanceHostname\r\n * @param authority\r\n * @param networkModule\r\n */\r\n InteractionHandler.prototype.updateTokenEndpointAuthority = function (cloudInstanceHostname, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cloudInstanceAuthorityUri, cloudInstanceAuthority;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.UpdateTokenEndpointAuthority, this.authCodeRequest.correlationId);\r\n cloudInstanceAuthorityUri = \"https://\" + cloudInstanceHostname + \"/\" + authority.tenant + \"/\";\r\n return [4 /*yield*/, AuthorityFactory.createDiscoveredInstance(cloudInstanceAuthorityUri, networkModule, this.browserStorage, authority.options, this.logger, this.performanceClient, this.authCodeRequest.correlationId)];\r\n case 1:\r\n cloudInstanceAuthority = _a.sent();\r\n this.authModule.updateAuthority(cloudInstanceAuthority);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Looks up ccs creds in the cache\r\n */\r\n InteractionHandler.prototype.checkCcsCredentials = function () {\r\n // Look up ccs credential in temp cache\r\n var cachedCcsCred = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CCS_CREDENTIAL, true);\r\n if (cachedCcsCred) {\r\n try {\r\n return JSON.parse(cachedCcsCred);\r\n }\r\n catch (e) {\r\n this.authModule.logger.error(\"Cache credential could not be parsed\");\r\n this.authModule.logger.errorPii(\"Cache credential could not be parsed: \" + cachedCcsCred);\r\n }\r\n }\r\n return null;\r\n };\r\n return InteractionHandler;\r\n}());\n\nexport { InteractionHandler };\n//# sourceMappingURL=InteractionHandler.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { OIDC_DEFAULT_SCOPES, StringUtils, UrlString, Constants, AuthError, ThrottlingUtils, ProtocolUtils, PerformanceEvents } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserConstants, InteractionType, ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionHandler } from '../interaction_handler/InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar PopupClient = /** @class */ (function (_super) {\r\n __extends(PopupClient, _super);\r\n function PopupClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n // Properly sets this reference for the unload event.\r\n _this.unloadWindow = _this.unloadWindow.bind(_this);\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Acquires tokens by opening a popup window to the /authorize endpoint of the authority\r\n * @param request\r\n */\r\n PopupClient.prototype.acquireToken = function (request) {\r\n try {\r\n var popupName = this.generatePopupName(request.scopes || OIDC_DEFAULT_SCOPES, request.authority || this.config.auth.authority);\r\n var popupWindowAttributes = request.popupWindowAttributes || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true, acquiring token\");\r\n // Passes on popup position and dimensions if in request\r\n return this.acquireTokenPopupAsync(request, popupName, popupWindowAttributes);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before acquiring token.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup before acquiring token\");\r\n var popup = this.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes);\r\n return this.acquireTokenPopupAsync(request, popupName, popupWindowAttributes, popup);\r\n }\r\n }\r\n catch (e) {\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n PopupClient.prototype.logout = function (logoutRequest) {\r\n try {\r\n this.logger.verbose(\"logoutPopup called\");\r\n var validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n var popupName = this.generateLogoutPopupName(validLogoutRequest);\r\n var authority = logoutRequest && logoutRequest.authority;\r\n var mainWindowRedirectUri = logoutRequest && logoutRequest.mainWindowRedirectUri;\r\n var popupWindowAttributes = (logoutRequest === null || logoutRequest === void 0 ? void 0 : logoutRequest.popupWindowAttributes) || {};\r\n // asyncPopups flag is true. Acquires token without first opening popup. Popup will be opened later asynchronously.\r\n if (this.config.system.asyncPopups) {\r\n this.logger.verbose(\"asyncPopups set to true\");\r\n // Passes on popup position and dimensions if in request\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, undefined, mainWindowRedirectUri);\r\n }\r\n else {\r\n // asyncPopups flag is set to false. Opens popup before logging out.\r\n this.logger.verbose(\"asyncPopup set to false, opening popup\");\r\n var popup = this.openSizedPopup(\"about:blank\", popupName, popupWindowAttributes);\r\n return this.logoutPopupAsync(validLogoutRequest, popupName, popupWindowAttributes, authority, popup, mainWindowRedirectUri);\r\n }\r\n }\r\n catch (e) {\r\n // Since this function is synchronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n };\r\n /**\r\n * Helper which obtains an access_token for your API via opening a popup window in the user's browser\r\n * @param validRequest\r\n * @param popupName\r\n * @param popup\r\n * @param popupWindowAttributes\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PopupClient.prototype.acquireTokenPopupAsync = function (request, popupName, popupWindowAttributes, popup) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, validRequest, authCodeRequest, authClient, isNativeBroker, fetchNativeAccountIdMeasurement, navigateUrl, interactionHandler, popupParameters, popupWindow, hash, serverParams, state_1, nativeInteractionClient, userRequestState, result, e_1;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"acquireTokenPopupAsync called\");\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenPopup);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Popup)];\r\n case 1:\r\n validRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || Constants.EMPTY_STRING, validRequest.account || null);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 8, , 9]);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 3:\r\n authCodeRequest = _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions)];\r\n case 4:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n isNativeBroker = NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, request.authenticationScheme);\r\n fetchNativeAccountIdMeasurement = void 0;\r\n if (isNativeBroker) {\r\n fetchNativeAccountIdMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.FetchAccountIdWithNativeBroker, request.correlationId);\r\n }\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, validRequest), { nativeBroker: isNativeBroker }))];\r\n case 5:\r\n navigateUrl = _a.sent();\r\n interactionHandler = new InteractionHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.performanceClient);\r\n popupParameters = {\r\n popup: popup,\r\n popupName: popupName,\r\n popupWindowAttributes: popupWindowAttributes\r\n };\r\n popupWindow = this.initiateAuthRequest(navigateUrl, popupParameters);\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, this.monitorPopupForHash(popupWindow)];\r\n case 6:\r\n hash = _a.sent();\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n state_1 = this.validateAndExtractStateFromHash(serverParams, InteractionType.Popup, validRequest.correlationId);\r\n // Remove throttle if it exists\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, authCodeRequest);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n // end measurement for server call with native brokering enabled\r\n if (fetchNativeAccountIdMeasurement) {\r\n fetchNativeAccountIdMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true\r\n });\r\n }\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenPopup, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.nativeStorage, validRequest.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state_1).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, validRequest), { state: userRequestState, prompt: undefined // Server should handle the prompt, ideally native broker can do this part silently\r\n })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state_1);\r\n })];\r\n }\r\n return [4 /*yield*/, interactionHandler.handleCodeResponseFromHash(hash, state_1, authClient.authority, this.networkClient)];\r\n case 7:\r\n result = _a.sent();\r\n return [2 /*return*/, result];\r\n case 8:\r\n e_1 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 9: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n *\r\n * @param validRequest\r\n * @param popupName\r\n * @param requestAuthority\r\n * @param popup\r\n * @param mainWindowRedirectUri\r\n * @param popupWindowAttributes\r\n */\r\n PopupClient.prototype.logoutPopupAsync = function (validRequest, popupName, popupWindowAttributes, requestAuthority, popup, mainWindowRedirectUri) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, authClient, logoutUri, popupWindow, navigationOptions, absoluteUrl, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutPopupAsync called\");\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Popup, validRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logoutPopup);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 5, , 6]);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, validRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, requestAuthority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Popup, validRequest);\r\n popupWindow = this.openPopup(logoutUri, { popupName: popupName, popupWindowAttributes: popupWindowAttributes, popup: popup });\r\n this.eventHandler.emitEvent(EventType.POPUP_OPENED, InteractionType.Popup, { popupWindow: popupWindow }, null);\r\n return [4 /*yield*/, this.waitForLogoutPopup(popupWindow)];\r\n case 4:\r\n _a.sent();\r\n if (mainWindowRedirectUri) {\r\n navigationOptions = {\r\n apiId: ApiId.logoutPopup,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n absoluteUrl = UrlString.getAbsoluteUrl(mainWindowRedirectUri, BrowserUtils.getCurrentUri());\r\n this.logger.verbose(\"Redirecting main window to url specified in the request\");\r\n this.logger.verbosePii(\"Redirecting main window to: \" + absoluteUrl);\r\n this.navigationClient.navigateInternal(absoluteUrl, navigationOptions);\r\n }\r\n else {\r\n this.logger.verbose(\"No main window navigation requested\");\r\n }\r\n return [3 /*break*/, 6];\r\n case 5:\r\n e_2 = _a.sent();\r\n if (popup) {\r\n // Close the synchronous popup if an error is thrown before the window unload event is registered\r\n popup.close();\r\n }\r\n if (e_2 instanceof AuthError) {\r\n e_2.setCorrelationId(this.correlationId);\r\n }\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Popup, null, e_2);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n throw e_2;\r\n case 6:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Popup);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Opens a popup window with given request Url.\r\n * @param requestUrl\r\n */\r\n PopupClient.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n // Check that request url is not empty.\r\n if (!StringUtils.isEmpty(requestUrl)) {\r\n this.logger.infoPii(\"Navigate to: \" + requestUrl);\r\n // Open the popup window to requestUrl.\r\n return this.openPopup(requestUrl, params);\r\n }\r\n else {\r\n // Throw error if request URL is empty.\r\n this.logger.error(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n };\r\n /**\r\n * Monitors a window until it loads a url with the same origin.\r\n * @param popupWindow - window that is being monitored\r\n * @param timeout - timeout for processing hash once popup is redirected back to application\r\n */\r\n PopupClient.prototype.monitorPopupForHash = function (popupWindow) {\r\n var _this = this;\r\n return new Promise(function (resolve, reject) {\r\n /*\r\n * Polling for popups needs to be tick-based,\r\n * since a non-trivial amount of time can be spent on interaction (which should not count against the timeout).\r\n */\r\n var maxTicks = _this.config.system.windowHashTimeout / _this.config.system.pollIntervalMilliseconds;\r\n var ticks = 0;\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - polling started\");\r\n var intervalId = setInterval(function () {\r\n // Window is closed\r\n if (popupWindow.closed) {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - window closed\");\r\n _this.cleanPopup();\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createUserCancelledError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var hash = Constants.EMPTY_STRING;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = popupWindow.location.href;\r\n hash = popupWindow.location.hash;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n return;\r\n }\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - popup window is on same origin as caller\");\r\n /*\r\n * Only run clock when we are on same domain for popups\r\n * as popup operations can take a long time.\r\n */\r\n ticks++;\r\n if (hash) {\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - found hash in url\");\r\n clearInterval(intervalId);\r\n _this.cleanPopup(popupWindow);\r\n if (UrlString.hashContainsKnownProperties(hash)) {\r\n _this.logger.verbose(\"PopupHandler.monitorPopupForHash - hash contains known properties, returning.\");\r\n resolve(hash);\r\n }\r\n else {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - found hash in url but it does not contain known properties. Check that your router is not changing the hash prematurely.\");\r\n _this.logger.errorPii(\"PopupHandler.monitorPopupForHash - hash found: \" + hash);\r\n reject(BrowserAuthError.createHashDoesNotContainKnownPropertiesError());\r\n }\r\n }\r\n else if (ticks > maxTicks) {\r\n _this.logger.error(\"PopupHandler.monitorPopupForHash - unable to find hash in url, timing out\");\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorPopupTimeoutError());\r\n }\r\n }, _this.config.system.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * Waits for user interaction in logout popup window\r\n * @param popupWindow\r\n * @returns\r\n */\r\n PopupClient.prototype.waitForLogoutPopup = function (popupWindow) {\r\n var _this = this;\r\n return new Promise(function (resolve) {\r\n _this.logger.verbose(\"PopupHandler.waitForLogoutPopup - polling started\");\r\n var intervalId = setInterval(function () {\r\n // Window is closed\r\n if (popupWindow.closed) {\r\n _this.logger.error(\"PopupHandler.waitForLogoutPopup - window closed\");\r\n _this.cleanPopup();\r\n clearInterval(intervalId);\r\n resolve();\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = popupWindow.location.href;\r\n }\r\n catch (e) { }\r\n // Don't process blank pages or cross domain\r\n if (StringUtils.isEmpty(href) || href === \"about:blank\") {\r\n return;\r\n }\r\n _this.logger.verbose(\"PopupHandler.waitForLogoutPopup - popup window is on same origin as caller, closing.\");\r\n clearInterval(intervalId);\r\n _this.cleanPopup(popupWindow);\r\n resolve();\r\n }, _this.config.system.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n *\r\n * Configures popup window for login.\r\n *\r\n * @param urlNavigate\r\n * @param title\r\n * @param popUpWidth\r\n * @param popUpHeight\r\n * @param popupWindowAttributes\r\n * @ignore\r\n * @hidden\r\n */\r\n PopupClient.prototype.openPopup = function (urlNavigate, popupParams) {\r\n try {\r\n var popupWindow = void 0;\r\n // Popup window passed in, setting url to navigate to\r\n if (popupParams.popup) {\r\n popupWindow = popupParams.popup;\r\n this.logger.verbosePii(\"Navigating popup window to: \" + urlNavigate);\r\n popupWindow.location.assign(urlNavigate);\r\n }\r\n else if (typeof popupParams.popup === \"undefined\") {\r\n // Popup will be undefined if it was not passed in\r\n this.logger.verbosePii(\"Opening popup window to: \" + urlNavigate);\r\n popupWindow = this.openSizedPopup(urlNavigate, popupParams.popupName, popupParams.popupWindowAttributes);\r\n }\r\n // Popup will be null if popups are blocked\r\n if (!popupWindow) {\r\n throw BrowserAuthError.createEmptyWindowCreatedError();\r\n }\r\n if (popupWindow.focus) {\r\n popupWindow.focus();\r\n }\r\n this.currentWindow = popupWindow;\r\n window.addEventListener(\"beforeunload\", this.unloadWindow);\r\n return popupWindow;\r\n }\r\n catch (e) {\r\n this.logger.error(\"error opening popup \" + e.message);\r\n this.browserStorage.setInteractionInProgress(false);\r\n throw BrowserAuthError.createPopupWindowError(e.toString());\r\n }\r\n };\r\n /**\r\n * Helper function to set popup window dimensions and position\r\n * @param urlNavigate\r\n * @param popupName\r\n * @param popupWindowAttributes\r\n * @returns\r\n */\r\n PopupClient.prototype.openSizedPopup = function (urlNavigate, popupName, popupWindowAttributes) {\r\n var _a, _b, _c, _d;\r\n /**\r\n * adding winLeft and winTop to account for dual monitor\r\n * using screenLeft and screenTop for IE8 and earlier\r\n */\r\n var winLeft = window.screenLeft ? window.screenLeft : window.screenX;\r\n var winTop = window.screenTop ? window.screenTop : window.screenY;\r\n /**\r\n * window.innerWidth displays browser window\"s height and width excluding toolbars\r\n * using document.documentElement.clientWidth for IE8 and earlier\r\n */\r\n var winWidth = window.innerWidth || document.documentElement.clientWidth || document.body.clientWidth;\r\n var winHeight = window.innerHeight || document.documentElement.clientHeight || document.body.clientHeight;\r\n var width = (_a = popupWindowAttributes.popupSize) === null || _a === void 0 ? void 0 : _a.width;\r\n var height = (_b = popupWindowAttributes.popupSize) === null || _b === void 0 ? void 0 : _b.height;\r\n var top = (_c = popupWindowAttributes.popupPosition) === null || _c === void 0 ? void 0 : _c.top;\r\n var left = (_d = popupWindowAttributes.popupPosition) === null || _d === void 0 ? void 0 : _d.left;\r\n if (!width || width < 0 || width > winWidth) {\r\n this.logger.verbose(\"Default popup window width used. Window width not configured or invalid.\");\r\n width = BrowserConstants.POPUP_WIDTH;\r\n }\r\n if (!height || height < 0 || height > winHeight) {\r\n this.logger.verbose(\"Default popup window height used. Window height not configured or invalid.\");\r\n height = BrowserConstants.POPUP_HEIGHT;\r\n }\r\n if (!top || top < 0 || top > winHeight) {\r\n this.logger.verbose(\"Default popup window top position used. Window top not configured or invalid.\");\r\n top = Math.max(0, ((winHeight / 2) - (BrowserConstants.POPUP_HEIGHT / 2)) + winTop);\r\n }\r\n if (!left || left < 0 || left > winWidth) {\r\n this.logger.verbose(\"Default popup window left position used. Window left not configured or invalid.\");\r\n left = Math.max(0, ((winWidth / 2) - (BrowserConstants.POPUP_WIDTH / 2)) + winLeft);\r\n }\r\n return window.open(urlNavigate, popupName, \"width=\" + width + \", height=\" + height + \", top=\" + top + \", left=\" + left + \", scrollbars=yes\");\r\n };\r\n /**\r\n * Event callback to unload main window.\r\n */\r\n PopupClient.prototype.unloadWindow = function (e) {\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Popup);\r\n if (this.currentWindow) {\r\n this.currentWindow.close();\r\n }\r\n // Guarantees browser unload will happen, so no other errors will be thrown.\r\n e.preventDefault();\r\n };\r\n /**\r\n * Closes popup, removes any state vars created during popup calls.\r\n * @param popupWindow\r\n */\r\n PopupClient.prototype.cleanPopup = function (popupWindow) {\r\n if (popupWindow) {\r\n // Close window.\r\n popupWindow.close();\r\n }\r\n // Remove window unload function\r\n window.removeEventListener(\"beforeunload\", this.unloadWindow);\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupClient.prototype.generatePopupName = function (scopes, authority) {\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + this.config.auth.clientId + \".\" + scopes.join(\"-\") + \".\" + authority + \".\" + this.correlationId;\r\n };\r\n /**\r\n * Generates the name for the popup based on the client id and request for logouts\r\n * @param clientId\r\n * @param request\r\n */\r\n PopupClient.prototype.generateLogoutPopupName = function (request) {\r\n var homeAccountId = request.account && request.account.homeAccountId;\r\n return BrowserConstants.POPUP_NAME_PREFIX + \".\" + this.config.auth.clientId + \".\" + homeAccountId + \".\" + this.correlationId;\r\n };\r\n return PopupClient;\r\n}(StandardInteractionClient));\n\nexport { PopupClient };\n//# sourceMappingURL=PopupClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { StringUtils, ClientAuthError, ServerError } from '@azure/msal-common';\nimport { BrowserAuthError, BrowserAuthErrorMessage } from '../error/BrowserAuthError.js';\nimport { TemporaryCacheKeys, ApiId } from '../utils/BrowserConstants.js';\nimport { InteractionHandler } from './InteractionHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectHandler = /** @class */ (function (_super) {\r\n __extends(RedirectHandler, _super);\r\n function RedirectHandler(authCodeModule, storageImpl, authCodeRequest, logger, browserCrypto, performanceClient) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) || this;\r\n _this.browserCrypto = browserCrypto;\r\n return _this;\r\n }\r\n /**\r\n * Redirects window to given URL.\r\n * @param urlNavigate\r\n */\r\n RedirectHandler.prototype.initiateAuthRequest = function (requestUrl, params) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var navigationOptions, navigate;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest called\");\r\n if (!!StringUtils.isEmpty(requestUrl)) return [3 /*break*/, 7];\r\n // Cache start page, returns to this page after redirectUri if navigateToLoginRequestUrl is true\r\n if (params.redirectStartPage) {\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: redirectStartPage set, caching start page\");\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, params.redirectStartPage, true);\r\n }\r\n // Set interaction status in the library.\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, this.authCodeRequest.correlationId, true);\r\n this.browserStorage.cacheCodeRequest(this.authCodeRequest, this.browserCrypto);\r\n this.logger.infoPii(\"RedirectHandler.initiateAuthRequest: Navigate to: \" + requestUrl);\r\n navigationOptions = {\r\n apiId: ApiId.acquireTokenRedirect,\r\n timeout: params.redirectTimeout,\r\n noHistory: false\r\n };\r\n if (!(typeof params.onRedirectNavigate === \"function\")) return [3 /*break*/, 4];\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Invoking onRedirectNavigate callback\");\r\n navigate = params.onRedirectNavigate(requestUrl);\r\n if (!(navigate !== false)) return [3 /*break*/, 2];\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate did not return false, navigating\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 1:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 2:\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: onRedirectNavigate returned false, stopping navigation\");\r\n return [2 /*return*/];\r\n case 3: return [3 /*break*/, 6];\r\n case 4:\r\n // Navigate window to request URL\r\n this.logger.verbose(\"RedirectHandler.initiateAuthRequest: Navigating window to navigate url\");\r\n return [4 /*yield*/, params.navigationClient.navigateExternal(requestUrl, navigationOptions)];\r\n case 5:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 6: return [3 /*break*/, 8];\r\n case 7:\r\n // Throw error if request URL is empty.\r\n this.logger.info(\"RedirectHandler.initiateAuthRequest: Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Handle authorization code response in the window.\r\n * @param hash\r\n */\r\n RedirectHandler.prototype.handleCodeResponseFromHash = function (locationHash, state, authority, networkModule) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var stateKey, requestState, authCodeResponse, nonceKey, cachedNonce, cachedCcsCred, tokenResponse;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"RedirectHandler.handleCodeResponse called\");\r\n // Check that location hash isn't empty.\r\n if (StringUtils.isEmpty(locationHash)) {\r\n throw BrowserAuthError.createEmptyHashError(locationHash);\r\n }\r\n // Interaction is completed - remove interaction status.\r\n this.browserStorage.setInteractionInProgress(false);\r\n stateKey = this.browserStorage.generateStateKey(state);\r\n requestState = this.browserStorage.getTemporaryCache(stateKey);\r\n if (!requestState) {\r\n throw ClientAuthError.createStateNotFoundError(\"Cached State\");\r\n }\r\n try {\r\n authCodeResponse = this.authModule.handleFragmentResponse(locationHash, requestState);\r\n }\r\n catch (e) {\r\n if (e instanceof ServerError && e.subError === BrowserAuthErrorMessage.userCancelledError.code) {\r\n // Translate server error caused by user closing native prompt to corresponding first class MSAL error\r\n throw BrowserAuthError.createUserCancelledError();\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n nonceKey = this.browserStorage.generateNonceKey(requestState);\r\n cachedNonce = this.browserStorage.getTemporaryCache(nonceKey);\r\n // Assign code to request\r\n this.authCodeRequest.code = authCodeResponse.code;\r\n if (!authCodeResponse.cloud_instance_host_name) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.updateTokenEndpointAuthority(authCodeResponse.cloud_instance_host_name, authority, networkModule)];\r\n case 1:\r\n _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n authCodeResponse.nonce = cachedNonce || undefined;\r\n authCodeResponse.state = requestState;\r\n // Add CCS parameters if available\r\n if (authCodeResponse.client_info) {\r\n this.authCodeRequest.clientInfo = authCodeResponse.client_info;\r\n }\r\n else {\r\n cachedCcsCred = this.checkCcsCredentials();\r\n if (cachedCcsCred) {\r\n this.authCodeRequest.ccsCredential = cachedCcsCred;\r\n }\r\n }\r\n return [4 /*yield*/, this.authModule.acquireToken(this.authCodeRequest, authCodeResponse)];\r\n case 3:\r\n tokenResponse = _a.sent();\r\n this.browserStorage.cleanRequestByState(state);\r\n return [2 /*return*/, tokenResponse];\r\n }\r\n });\r\n });\r\n };\r\n return RedirectHandler;\r\n}(InteractionHandler));\n\nexport { RedirectHandler };\n//# sourceMappingURL=RedirectHandler.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { UrlString, AuthError, PerformanceEvents, Constants, ThrottlingUtils, ProtocolUtils } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { TemporaryCacheKeys, ApiId, InteractionType } from '../utils/BrowserConstants.js';\nimport { RedirectHandler } from '../interaction_handler/RedirectHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar RedirectClient = /** @class */ (function (_super) {\r\n __extends(RedirectClient, _super);\r\n function RedirectClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Redirects the page to the /authorize endpoint of the IDP\r\n * @param request\r\n */\r\n RedirectClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validRequest, serverTelemetryManager, handleBackButton, authCodeRequest, authClient, interactionHandler, navigateUrl, redirectStartPage, e_1;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Redirect)];\r\n case 1:\r\n validRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(validRequest.state, validRequest.nonce, validRequest.authority, validRequest.loginHint || Constants.EMPTY_STRING, validRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenRedirect);\r\n handleBackButton = function (event) {\r\n // Clear temporary cache if the back button is clicked during the redirect flow.\r\n if (event.persisted) {\r\n _this.logger.verbose(\"Page was restored from back/forward cache. Clearing temporary cache.\");\r\n _this.browserStorage.cleanRequestByState(validRequest.state);\r\n _this.eventHandler.emitEvent(EventType.RESTORE_FROM_BFCACHE, InteractionType.Redirect);\r\n }\r\n };\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 7, , 8]);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(validRequest)];\r\n case 3:\r\n authCodeRequest = _a.sent();\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, validRequest.authority, validRequest.azureCloudOptions)];\r\n case 4:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.browserCrypto, this.performanceClient);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, validRequest), { nativeBroker: NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, request.authenticationScheme) }))];\r\n case 5:\r\n navigateUrl = _a.sent();\r\n redirectStartPage = this.getRedirectStartPage(request.redirectStartPage);\r\n this.logger.verbosePii(\"Redirect start page: \" + redirectStartPage);\r\n // Clear temporary cache if the back button is clicked during the redirect flow.\r\n window.addEventListener(\"pageshow\", handleBackButton);\r\n return [4 /*yield*/, interactionHandler.initiateAuthRequest(navigateUrl, {\r\n navigationClient: this.navigationClient,\r\n redirectTimeout: this.config.system.redirectNavigationTimeout,\r\n redirectStartPage: redirectStartPage,\r\n onRedirectNavigate: request.onRedirectNavigate\r\n })];\r\n case 6: \r\n // Show the UI once the url has been created. Response will come back in the hash, which will be handled in the handleRedirectCallback function.\r\n return [2 /*return*/, _a.sent()];\r\n case 7:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n window.removeEventListener(\"pageshow\", handleBackButton);\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(validRequest.state);\r\n throw e_1;\r\n case 8: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Checks if navigateToLoginRequestUrl is set, and:\r\n * - if true, performs logic to cache and navigate\r\n * - if false, handles hash string and parses response\r\n * @param hash\r\n */\r\n RedirectClient.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var serverTelemetryManager, responseHash, state, serverParams, loginRequestUrl, loginRequestUrlNormalized, currentUrlNormalized, handleHashResult, navigationOptions, processHashOnRedirect, homepage, e_2;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.handleRedirectPromise);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n if (!this.browserStorage.isInteractionInProgress(true)) {\r\n this.logger.info(\"handleRedirectPromise called but there is no interaction in progress, returning null.\");\r\n return [2 /*return*/, null];\r\n }\r\n responseHash = this.getRedirectResponseHash(hash || window.location.hash);\r\n if (!responseHash) {\r\n // Not a recognized server response hash or hash not associated with a redirect request\r\n this.logger.info(\"handleRedirectPromise did not detect a response hash as a result of a redirect. Cleaning temporary cache.\");\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n state = void 0;\r\n try {\r\n serverParams = UrlString.getDeserializedHash(responseHash);\r\n state = this.validateAndExtractStateFromHash(serverParams, InteractionType.Redirect);\r\n this.logger.verbose(\"State extracted from hash\");\r\n }\r\n catch (e) {\r\n this.logger.info(\"handleRedirectPromise was unable to extract state due to: \" + e);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n return [2 /*return*/, null];\r\n }\r\n loginRequestUrl = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, true) || Constants.EMPTY_STRING;\r\n loginRequestUrlNormalized = UrlString.removeHashFromUrl(loginRequestUrl);\r\n currentUrlNormalized = UrlString.removeHashFromUrl(window.location.href);\r\n if (!(loginRequestUrlNormalized === currentUrlNormalized && this.config.auth.navigateToLoginRequestUrl)) return [3 /*break*/, 3];\r\n // We are on the page we need to navigate to - handle hash\r\n this.logger.verbose(\"Current page is loginRequestUrl, handling hash\");\r\n return [4 /*yield*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 2:\r\n handleHashResult = _a.sent();\r\n if (loginRequestUrl.indexOf(\"#\") > -1) {\r\n // Replace current hash with non-msal hash, if present\r\n BrowserUtils.replaceHash(loginRequestUrl);\r\n }\r\n return [2 /*return*/, handleHashResult];\r\n case 3:\r\n if (!!this.config.auth.navigateToLoginRequestUrl) return [3 /*break*/, 4];\r\n this.logger.verbose(\"NavigateToLoginRequestUrl set to false, handling hash\");\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n case 4:\r\n if (!(!BrowserUtils.isInIframe() || this.config.system.allowRedirectInIframe)) return [3 /*break*/, 9];\r\n /*\r\n * Returned from authority using redirect - need to perform navigation before processing response\r\n * Cache the hash to be retrieved after the next redirect\r\n */\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.URL_HASH, responseHash, true);\r\n navigationOptions = {\r\n apiId: ApiId.handleRedirectPromise,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: true\r\n };\r\n processHashOnRedirect = true;\r\n if (!(!loginRequestUrl || loginRequestUrl === \"null\")) return [3 /*break*/, 6];\r\n homepage = BrowserUtils.getHomepage();\r\n // Cache the homepage under ORIGIN_URI to ensure cached hash is processed on homepage\r\n this.browserStorage.setTemporaryCache(TemporaryCacheKeys.ORIGIN_URI, homepage, true);\r\n this.logger.warning(\"Unable to get valid login request url from cache, redirecting to home page\");\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(homepage, navigationOptions)];\r\n case 5:\r\n processHashOnRedirect = _a.sent();\r\n return [3 /*break*/, 8];\r\n case 6:\r\n // Navigate to page that initiated the redirect request\r\n this.logger.verbose(\"Navigating to loginRequestUrl: \" + loginRequestUrl);\r\n return [4 /*yield*/, this.navigationClient.navigateInternal(loginRequestUrl, navigationOptions)];\r\n case 7:\r\n processHashOnRedirect = _a.sent();\r\n _a.label = 8;\r\n case 8:\r\n // If navigateInternal implementation returns false, handle the hash now\r\n if (!processHashOnRedirect) {\r\n return [2 /*return*/, this.handleHash(responseHash, state, serverTelemetryManager)];\r\n }\r\n _a.label = 9;\r\n case 9: return [2 /*return*/, null];\r\n case 10:\r\n e_2 = _a.sent();\r\n if (e_2 instanceof AuthError) {\r\n e_2.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_2);\r\n this.browserStorage.cleanRequestByInteractionType(InteractionType.Redirect);\r\n throw e_2;\r\n case 11: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Gets the response hash for a redirect request\r\n * Returns null if interactionType in the state value is not \"redirect\" or the hash does not contain known properties\r\n * @param hash\r\n */\r\n RedirectClient.prototype.getRedirectResponseHash = function (hash) {\r\n this.logger.verbose(\"getRedirectResponseHash called\");\r\n // Get current location hash from window or cache.\r\n var isResponseHash = UrlString.hashContainsKnownProperties(hash);\r\n if (isResponseHash) {\r\n BrowserUtils.clearHash(window);\r\n this.logger.verbose(\"Hash contains known properties, returning response hash\");\r\n return hash;\r\n }\r\n var cachedHash = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.URL_HASH, true);\r\n this.browserStorage.removeItem(this.browserStorage.generateCacheKey(TemporaryCacheKeys.URL_HASH));\r\n this.logger.verbose(\"Hash does not contain known properties, returning cached hash\");\r\n return cachedHash;\r\n };\r\n /**\r\n * Checks if hash exists and handles in window.\r\n * @param hash\r\n * @param state\r\n */\r\n RedirectClient.prototype.handleHash = function (hash, state, serverTelemetryManager) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var cachedRequest, serverParams, nativeInteractionClient, userRequestState, currentAuthority, authClient, interactionHandler;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n cachedRequest = this.browserStorage.getCachedRequest(state, this.browserCrypto);\r\n this.logger.verbose(\"handleHash called, retrieved cached request\");\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenPopup, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.nativeStorage, cachedRequest.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, cachedRequest), { state: userRequestState, prompt: undefined // Server should handle the prompt, ideally native broker can do this part silently\r\n })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state);\r\n })];\r\n }\r\n currentAuthority = this.browserStorage.getCachedAuthority(state);\r\n if (!currentAuthority) {\r\n throw BrowserAuthError.createNoCachedAuthorityError();\r\n }\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, cachedRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, currentAuthority)];\r\n case 1:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n ThrottlingUtils.removeThrottle(this.browserStorage, this.config.auth.clientId, cachedRequest);\r\n interactionHandler = new RedirectHandler(authClient, this.browserStorage, cachedRequest, this.logger, this.browserCrypto, this.performanceClient);\r\n return [4 /*yield*/, interactionHandler.handleCodeResponseFromHash(hash, state, authClient.authority, this.networkClient)];\r\n case 2: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n RedirectClient.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var validLogoutRequest, serverTelemetryManager, navigationOptions, authClient, logoutUri, navigate, e_3;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.verbose(\"logoutRedirect called\");\r\n validLogoutRequest = this.initializeLogoutRequest(logoutRequest);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.logout);\r\n _a.label = 1;\r\n case 1:\r\n _a.trys.push([1, 10, , 11]);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_START, InteractionType.Redirect, logoutRequest);\r\n // Clear cache on logout\r\n return [4 /*yield*/, this.clearCacheOnLogout(validLogoutRequest.account)];\r\n case 2:\r\n // Clear cache on logout\r\n _a.sent();\r\n navigationOptions = {\r\n apiId: ApiId.logout,\r\n timeout: this.config.system.redirectNavigationTimeout,\r\n noHistory: false\r\n };\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, validLogoutRequest.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, logoutRequest && logoutRequest.authority)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n logoutUri = authClient.getLogoutUri(validLogoutRequest);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_SUCCESS, InteractionType.Redirect, validLogoutRequest);\r\n if (!(logoutRequest && typeof logoutRequest.onRedirectNavigate === \"function\")) return [3 /*break*/, 7];\r\n navigate = logoutRequest.onRedirectNavigate(logoutUri);\r\n if (!(navigate !== false)) return [3 /*break*/, 5];\r\n this.logger.verbose(\"Logout onRedirectNavigate did not return false, navigating\");\r\n // Ensure interaction is in progress\r\n if (!this.browserStorage.getInteractionInProgress()) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 4:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 5:\r\n // Ensure interaction is not in progress\r\n this.browserStorage.setInteractionInProgress(false);\r\n this.logger.verbose(\"Logout onRedirectNavigate returned false, stopping navigation\");\r\n _a.label = 6;\r\n case 6: return [3 /*break*/, 9];\r\n case 7:\r\n // Ensure interaction is in progress\r\n if (!this.browserStorage.getInteractionInProgress()) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n return [4 /*yield*/, this.navigationClient.navigateExternal(logoutUri, navigationOptions)];\r\n case 8:\r\n _a.sent();\r\n return [2 /*return*/];\r\n case 9: return [3 /*break*/, 11];\r\n case 10:\r\n e_3 = _a.sent();\r\n if (e_3 instanceof AuthError) {\r\n e_3.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_FAILURE, InteractionType.Redirect, null, e_3);\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n throw e_3;\r\n case 11:\r\n this.eventHandler.emitEvent(EventType.LOGOUT_END, InteractionType.Redirect);\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Use to get the redirectStartPage either from request or use current window\r\n * @param requestStartPage\r\n */\r\n RedirectClient.prototype.getRedirectStartPage = function (requestStartPage) {\r\n var redirectStartPage = requestStartPage || window.location.href;\r\n return UrlString.getAbsoluteUrl(redirectStartPage, BrowserUtils.getCurrentUri());\r\n };\r\n return RedirectClient;\r\n}(StandardInteractionClient));\n\nexport { RedirectClient };\n//# sourceMappingURL=RedirectClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, StringUtils, Constants, UrlString } from '@azure/msal-common';\nimport { InteractionHandler } from './InteractionHandler.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { DEFAULT_IFRAME_TIMEOUT_MS } from '../config/Configuration.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentHandler = /** @class */ (function (_super) {\r\n __extends(SilentHandler, _super);\r\n function SilentHandler(authCodeModule, storageImpl, authCodeRequest, logger, systemOptions, performanceClient) {\r\n var _this = _super.call(this, authCodeModule, storageImpl, authCodeRequest, logger, performanceClient) || this;\r\n _this.navigateFrameWait = systemOptions.navigateFrameWait;\r\n _this.pollIntervalMilliseconds = systemOptions.pollIntervalMilliseconds;\r\n return _this;\r\n }\r\n /**\r\n * Creates a hidden iframe to given URL using user-requested scopes as an id.\r\n * @param urlNavigate\r\n * @param userRequestScopes\r\n */\r\n SilentHandler.prototype.initiateAuthRequest = function (requestUrl) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerInitiateAuthRequest, this.authCodeRequest.correlationId);\r\n if (StringUtils.isEmpty(requestUrl)) {\r\n // Throw error if request URL is empty.\r\n this.logger.info(\"Navigate url is empty\");\r\n throw BrowserAuthError.createEmptyNavigationUriError();\r\n }\r\n if (!this.navigateFrameWait) return [3 /*break*/, 2];\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);\r\n return [4 /*yield*/, this.loadFrame(requestUrl)];\r\n case 1: return [2 /*return*/, _a.sent()];\r\n case 2: return [2 /*return*/, this.loadFrameSync(requestUrl)];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Monitors an iframe content window until it loads a url with a known hash, or hits a specified timeout.\r\n * @param iframe\r\n * @param timeout\r\n */\r\n SilentHandler.prototype.monitorIframeForHash = function (iframe, timeout) {\r\n var _this = this;\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerMonitorIframeForHash, this.authCodeRequest.correlationId);\r\n return new Promise(function (resolve, reject) {\r\n if (timeout < DEFAULT_IFRAME_TIMEOUT_MS) {\r\n _this.logger.warning(\"system.loadFrameTimeout or system.iframeHashTimeout set to lower (\" + timeout + \"ms) than the default (\" + DEFAULT_IFRAME_TIMEOUT_MS + \"ms). This may result in timeouts.\");\r\n }\r\n /*\r\n * Polling for iframes can be purely timing based,\r\n * since we don't need to account for interaction.\r\n */\r\n var nowMark = window.performance.now();\r\n var timeoutMark = nowMark + timeout;\r\n var intervalId = setInterval(function () {\r\n if (window.performance.now() > timeoutMark) {\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n reject(BrowserAuthError.createMonitorIframeTimeoutError());\r\n return;\r\n }\r\n var href = Constants.EMPTY_STRING;\r\n var contentWindow = iframe.contentWindow;\r\n try {\r\n /*\r\n * Will throw if cross origin,\r\n * which should be caught and ignored\r\n * since we need the interval to keep running while on STS UI.\r\n */\r\n href = contentWindow ? contentWindow.location.href : Constants.EMPTY_STRING;\r\n }\r\n catch (e) { }\r\n if (StringUtils.isEmpty(href)) {\r\n return;\r\n }\r\n var contentHash = contentWindow ? contentWindow.location.hash : Constants.EMPTY_STRING;\r\n if (UrlString.hashContainsKnownProperties(contentHash)) {\r\n // Success case\r\n _this.removeHiddenIframe(iframe);\r\n clearInterval(intervalId);\r\n resolve(contentHash);\r\n return;\r\n }\r\n }, _this.pollIntervalMilliseconds);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads iframe with authorization endpoint URL\r\n * @ignore\r\n */\r\n SilentHandler.prototype.loadFrame = function (urlNavigate) {\r\n var _this = this;\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentHandlerLoadFrame, this.authCodeRequest.correlationId);\r\n /*\r\n * This trick overcomes iframe navigation in IE\r\n * IE does not load the page consistently in iframe\r\n */\r\n return new Promise(function (resolve, reject) {\r\n var frameHandle = _this.createHiddenIframe();\r\n setTimeout(function () {\r\n if (!frameHandle) {\r\n reject(\"Unable to load iframe\");\r\n return;\r\n }\r\n frameHandle.src = urlNavigate;\r\n resolve(frameHandle);\r\n }, _this.navigateFrameWait);\r\n });\r\n };\r\n /**\r\n * @hidden\r\n * Loads the iframe synchronously when the navigateTimeFrame is set to `0`\r\n * @param urlNavigate\r\n * @param frameName\r\n * @param logger\r\n */\r\n SilentHandler.prototype.loadFrameSync = function (urlNavigate) {\r\n var frameHandle = this.createHiddenIframe();\r\n frameHandle.src = urlNavigate;\r\n return frameHandle;\r\n };\r\n /**\r\n * @hidden\r\n * Creates a new hidden iframe or gets an existing one for silent token renewal.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.createHiddenIframe = function () {\r\n var authFrame = document.createElement(\"iframe\");\r\n authFrame.className = \"msalSilentIframe\";\r\n authFrame.style.visibility = \"hidden\";\r\n authFrame.style.position = \"absolute\";\r\n authFrame.style.width = authFrame.style.height = \"0\";\r\n authFrame.style.border = \"0\";\r\n authFrame.setAttribute(\"sandbox\", \"allow-scripts allow-same-origin allow-forms\");\r\n document.getElementsByTagName(\"body\")[0].appendChild(authFrame);\r\n return authFrame;\r\n };\r\n /**\r\n * @hidden\r\n * Removes a hidden iframe from the page.\r\n * @ignore\r\n */\r\n SilentHandler.prototype.removeHiddenIframe = function (iframe) {\r\n if (document.body === iframe.parentNode) {\r\n document.body.removeChild(iframe);\r\n }\r\n };\r\n return SilentHandler;\r\n}(InteractionHandler));\n\nexport { SilentHandler };\n//# sourceMappingURL=SilentHandler.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthError, PerformanceEvents, Constants, StringUtils, PromptValue, UrlString, ProtocolUtils } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType } from '../utils/BrowserConstants.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { NativeInteractionClient } from './NativeInteractionClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentIframeClient = /** @class */ (function (_super) {\r\n __extends(SilentIframeClient, _super);\r\n function SilentIframeClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeStorageImpl, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.apiId = apiId;\r\n _this.nativeStorage = nativeStorageImpl;\r\n return _this;\r\n }\r\n /**\r\n * Acquires a token silently by opening a hidden iframe to the /authorize endpoint with prompt=none or prompt=no_session\r\n * @param request\r\n */\r\n SilentIframeClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var acquireTokenMeasurement, silentRequest, serverTelemetryManager, authClient, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n this.logger.verbose(\"acquireTokenByIframe called\");\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n // Check that we have some SSO data\r\n if (StringUtils.isEmpty(request.loginHint) && StringUtils.isEmpty(request.sid) && (!request.account || StringUtils.isEmpty(request.account.username))) {\r\n this.logger.warning(\"No user hint provided. The authorization server may need more information to complete this request.\");\r\n }\r\n // Check that prompt is set to none or no_session, throw error if it is set to anything else.\r\n if (request.prompt && (request.prompt !== PromptValue.NONE) && (request.prompt !== PromptValue.NO_SESSION)) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: false\r\n });\r\n throw BrowserAuthError.createSilentPromptValueError(request.prompt);\r\n }\r\n // Create silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(__assign(__assign({}, request), { prompt: request.prompt || PromptValue.NONE }), InteractionType.Silent)];\r\n case 1:\r\n silentRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 5, , 6]);\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientCreateAuthCodeClient, request.correlationId);\r\n return [4 /*yield*/, this.createAuthCodeClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 3:\r\n authClient = _a.sent();\r\n this.logger.verbose(\"Auth code client created\");\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentIframeClientTokenHelper, request.correlationId);\r\n return [4 /*yield*/, this.silentTokenHelper(authClient, silentRequest).then(function (result) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: false,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })];\r\n case 4: return [2 /*return*/, _a.sent()];\r\n case 5:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: e_1 instanceof AuthError && e_1.errorCode || undefined,\r\n subErrorCode: e_1 instanceof AuthError && e_1.subError || undefined,\r\n success: false\r\n });\r\n throw e_1;\r\n case 6: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentIframeClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Helper which acquires an authorization code silently using a hidden iframe from given url\r\n * using the scopes requested as part of the id, and exchanges the code for a set of OAuth tokens.\r\n * @param navigateUrl\r\n * @param userRequestScopes\r\n */\r\n SilentIframeClient.prototype.silentTokenHelper = function (authClient, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var authCodeRequest, navigateUrl, silentHandler, msalFrame, hash, serverParams, state, nativeInteractionClient, userRequestState;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentIframeClientTokenHelper, silentRequest.correlationId);\r\n // Create auth code request and generate PKCE params\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationCodeRequest, silentRequest.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationCodeRequest(silentRequest)];\r\n case 1:\r\n authCodeRequest = _a.sent();\r\n // Create authorize request url\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.GetAuthCodeUrl, silentRequest.correlationId);\r\n return [4 /*yield*/, authClient.getAuthCodeUrl(__assign(__assign({}, silentRequest), { nativeBroker: NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeMessageHandler, silentRequest.authenticationScheme) }))];\r\n case 2:\r\n navigateUrl = _a.sent();\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.config.system, this.performanceClient);\r\n // Get the frame handle for the silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerInitiateAuthRequest, silentRequest.correlationId);\r\n return [4 /*yield*/, silentHandler.initiateAuthRequest(navigateUrl)];\r\n case 3:\r\n msalFrame = _a.sent();\r\n // Monitor the window for the hash. Return the string value and close the popup when the hash is received. Default timeout is 60 seconds.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentHandlerMonitorIframeForHash, silentRequest.correlationId);\r\n return [4 /*yield*/, silentHandler.monitorIframeForHash(msalFrame, this.config.system.iframeHashTimeout)];\r\n case 4:\r\n hash = _a.sent();\r\n serverParams = UrlString.getDeserializedHash(hash);\r\n state = this.validateAndExtractStateFromHash(serverParams, InteractionType.Silent, authCodeRequest.correlationId);\r\n if (serverParams.accountId) {\r\n this.logger.verbose(\"Account id found in hash, calling WAM for token\");\r\n if (!this.nativeMessageHandler) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeInteractionClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.apiId, this.performanceClient, this.nativeMessageHandler, serverParams.accountId, this.browserStorage, this.correlationId);\r\n userRequestState = ProtocolUtils.parseRequestState(this.browserCrypto, state).userRequestState;\r\n return [2 /*return*/, nativeInteractionClient.acquireToken(__assign(__assign({}, silentRequest), { state: userRequestState, prompt: silentRequest.prompt || PromptValue.NONE })).finally(function () {\r\n _this.browserStorage.cleanRequestByState(state);\r\n })];\r\n }\r\n // Handle response from hash string\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.HandleCodeResponseFromHash, silentRequest.correlationId);\r\n return [2 /*return*/, silentHandler.handleCodeResponseFromHash(hash, state, authClient.authority, this.networkClient)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentIframeClient;\r\n}(StandardInteractionClient));\n\nexport { SilentIframeClient };\n//# sourceMappingURL=SilentIframeClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { PerformanceEvents, AuthError, RefreshTokenClient } from '@azure/msal-common';\nimport { ApiId } from '../utils/BrowserConstants.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentRefreshClient = /** @class */ (function (_super) {\r\n __extends(SilentRefreshClient, _super);\r\n function SilentRefreshClient() {\r\n return _super !== null && _super.apply(this, arguments) || this;\r\n }\r\n /**\r\n * Exchanges the refresh token for new tokens\r\n * @param request\r\n */\r\n SilentRefreshClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, _a, acquireTokenMeasurement, serverTelemetryManager, refreshTokenClient;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.SilentRefreshClientAcquireToken, request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeBaseRequest, request.correlationId);\r\n _a = [__assign({}, request)];\r\n return [4 /*yield*/, this.initializeBaseRequest(request, request.account)];\r\n case 1:\r\n silentRequest = __assign.apply(void 0, _a.concat([_b.sent()]));\r\n acquireTokenMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SilentRefreshClientAcquireToken, silentRequest.correlationId);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(ApiId.acquireTokenSilent_silentFlow);\r\n return [4 /*yield*/, this.createRefreshTokenClient(serverTelemetryManager, silentRequest.authority, silentRequest.azureCloudOptions)];\r\n case 2:\r\n refreshTokenClient = _b.sent();\r\n this.logger.verbose(\"Refresh token client created\");\r\n // Send request to renew token. Auth module will throw errors if token cannot be renewed.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.RefreshTokenClientAcquireTokenByRefreshToken, request.correlationId);\r\n return [2 /*return*/, refreshTokenClient.acquireTokenByRefreshToken(silentRequest)\r\n .then(function (result) {\r\n acquireTokenMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: result.fromCache,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })\r\n .catch(function (e) {\r\n if (e instanceof AuthError) {\r\n e.setCorrelationId(_this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e);\r\n acquireTokenMeasurement.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n throw e;\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentRefreshClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n /**\r\n * Creates a Refresh Client with the given authority, or the default authority.\r\n * @param serverTelemetryManager\r\n * @param authorityUrl\r\n */\r\n SilentRefreshClient.prototype.createRefreshTokenClient = function (serverTelemetryManager, authorityUrl, azureCloudOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var clientConfig;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n // Create auth module.\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, this.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, authorityUrl, azureCloudOptions)];\r\n case 1:\r\n clientConfig = _a.sent();\r\n return [2 /*return*/, new RefreshTokenClient(clientConfig, this.performanceClient)];\r\n }\r\n });\r\n });\r\n };\r\n return SilentRefreshClient;\r\n}(StandardInteractionClient));\n\nexport { SilentRefreshClient };\n//# sourceMappingURL=SilentRefreshClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { AuthToken, CacheRecord, Authority, AccountEntity, IdTokenEntity, ScopeSet, AccessTokenEntity, RefreshTokenEntity, Constants } from '@azure/msal-common';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Token cache manager\r\n */\r\nvar TokenCache = /** @class */ (function () {\r\n function TokenCache(configuration, storage, logger, cryptoObj) {\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n this.config = configuration;\r\n this.storage = storage;\r\n this.logger = logger;\r\n this.cryptoObj = cryptoObj;\r\n }\r\n // Move getAllAccounts here and cache utility APIs\r\n /**\r\n * API to load tokens to msal-browser cache.\r\n * @param request\r\n * @param response\r\n * @param options\r\n * @returns `AuthenticationResult` for the response that was loaded.\r\n */\r\n TokenCache.prototype.loadExternalTokens = function (request, response, options) {\r\n this.logger.info(\"TokenCache - loadExternalTokens called\");\r\n if (!response.id_token) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please ensure server response includes id token.\");\r\n }\r\n var idToken = new AuthToken(response.id_token, this.cryptoObj);\r\n var cacheRecord;\r\n var authority;\r\n if (request.account) {\r\n var cacheRecordAccount = this.loadAccount(idToken, request.account.environment, undefined, undefined, request.account.homeAccountId);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment, request.account.tenantId, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, request.account.environment));\r\n }\r\n else if (request.authority) {\r\n var authorityUrl = Authority.generateAuthority(request.authority, request.azureCloudOptions);\r\n var authorityOptions = {\r\n protocolMode: this.config.auth.protocolMode,\r\n knownAuthorities: this.config.auth.knownAuthorities,\r\n cloudDiscoveryMetadata: this.config.auth.cloudDiscoveryMetadata,\r\n authorityMetadata: this.config.auth.authorityMetadata,\r\n skipAuthorityMetadataCache: this.config.auth.skipAuthorityMetadataCache,\r\n };\r\n authority = new Authority(authorityUrl, this.config.system.networkClient, this.storage, authorityOptions, this.logger);\r\n // \"clientInfo\" from options takes precedence over \"clientInfo\" in response\r\n if (options.clientInfo) {\r\n this.logger.trace(\"TokenCache - homeAccountId from options\");\r\n var cacheRecordAccount = this.loadAccount(idToken, authority.hostnameAndPort, options.clientInfo, authority.authorityType);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));\r\n }\r\n else if (response.client_info) {\r\n this.logger.trace(\"TokenCache - homeAccountId from response\");\r\n var cacheRecordAccount = this.loadAccount(idToken, authority.hostnameAndPort, response.client_info, authority.authorityType);\r\n cacheRecord = new CacheRecord(cacheRecordAccount, this.loadIdToken(idToken, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant), this.loadAccessToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort, authority.tenant, options), this.loadRefreshToken(request, response, cacheRecordAccount.homeAccountId, authority.hostnameAndPort));\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide clientInfo in the response or options.\");\r\n }\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide a request with an account or a request with authority.\");\r\n }\r\n return this.generateAuthenticationResult(request, idToken, cacheRecord, authority);\r\n };\r\n /**\r\n * Helper function to load account to msal-browser cache\r\n * @param idToken\r\n * @param environment\r\n * @param clientInfo\r\n * @param authorityType\r\n * @param requestHomeAccountId\r\n * @returns `AccountEntity`\r\n */\r\n TokenCache.prototype.loadAccount = function (idToken, environment, clientInfo, authorityType, requestHomeAccountId) {\r\n var homeAccountId;\r\n if (requestHomeAccountId) {\r\n homeAccountId = requestHomeAccountId;\r\n }\r\n else if (authorityType !== undefined && clientInfo) {\r\n homeAccountId = AccountEntity.generateHomeAccountId(clientInfo, authorityType, this.logger, this.cryptoObj, idToken);\r\n }\r\n if (!homeAccountId) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Unexpected missing homeAccountId\");\r\n }\r\n var accountEntity = clientInfo ?\r\n AccountEntity.createAccount(clientInfo, homeAccountId, idToken, undefined, undefined, undefined, environment) :\r\n AccountEntity.createGenericAccount(homeAccountId, idToken, undefined, undefined, undefined, environment);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading account\");\r\n this.storage.setAccount(accountEntity);\r\n return accountEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load id tokens to msal-browser cache\r\n * @param idToken\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @returns `IdTokenEntity`\r\n */\r\n TokenCache.prototype.loadIdToken = function (idToken, homeAccountId, environment, tenantId) {\r\n var idTokenEntity = IdTokenEntity.createIdTokenEntity(homeAccountId, environment, idToken.rawToken, this.config.auth.clientId, tenantId);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading id token\");\r\n this.storage.setIdTokenCredential(idTokenEntity);\r\n return idTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load access tokens to msal-browser cache\r\n * @param request\r\n * @param response\r\n * @param homeAccountId\r\n * @param environment\r\n * @param tenantId\r\n * @returns `AccessTokenEntity`\r\n */\r\n TokenCache.prototype.loadAccessToken = function (request, response, homeAccountId, environment, tenantId, options) {\r\n if (!response.access_token) {\r\n this.logger.verbose(\"TokenCache - No access token provided for caching\");\r\n return null;\r\n }\r\n if (!response.expires_in) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please ensure server response includes expires_in value.\");\r\n }\r\n if (!options.extendedExpiresOn) {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"Please provide an extendedExpiresOn value in the options.\");\r\n }\r\n var scopes = new ScopeSet(request.scopes).printScopes();\r\n var expiresOn = options.expiresOn || (response.expires_in + new Date().getTime() / 1000);\r\n var extendedExpiresOn = options.extendedExpiresOn;\r\n var accessTokenEntity = AccessTokenEntity.createAccessTokenEntity(homeAccountId, environment, response.access_token, this.config.auth.clientId, tenantId, scopes, expiresOn, extendedExpiresOn, this.cryptoObj);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading access token\");\r\n this.storage.setAccessTokenCredential(accessTokenEntity);\r\n return accessTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to load refresh tokens to msal-browser cache\r\n * @param request\r\n * @param response\r\n * @param homeAccountId\r\n * @param environment\r\n * @returns `RefreshTokenEntity`\r\n */\r\n TokenCache.prototype.loadRefreshToken = function (request, response, homeAccountId, environment) {\r\n if (!response.refresh_token) {\r\n this.logger.verbose(\"TokenCache - No refresh token provided for caching\");\r\n return null;\r\n }\r\n var refreshTokenEntity = RefreshTokenEntity.createRefreshTokenEntity(homeAccountId, environment, response.refresh_token, this.config.auth.clientId);\r\n if (this.isBrowserEnvironment) {\r\n this.logger.verbose(\"TokenCache - loading refresh token\");\r\n this.storage.setRefreshTokenCredential(refreshTokenEntity);\r\n return refreshTokenEntity;\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToLoadTokenError(\"loadExternalTokens is designed to work in browser environments only.\");\r\n }\r\n };\r\n /**\r\n * Helper function to generate an `AuthenticationResult` for the result.\r\n * @param request\r\n * @param idTokenObj\r\n * @param cacheRecord\r\n * @param authority\r\n * @returns `AuthenticationResult`\r\n */\r\n TokenCache.prototype.generateAuthenticationResult = function (request, idTokenObj, cacheRecord, authority) {\r\n var _a, _b, _c;\r\n var accessToken = Constants.EMPTY_STRING;\r\n var responseScopes = [];\r\n var expiresOn = null;\r\n var extExpiresOn;\r\n if (cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.accessToken) {\r\n accessToken = cacheRecord.accessToken.secret;\r\n responseScopes = ScopeSet.fromString(cacheRecord.accessToken.target).asArray();\r\n expiresOn = new Date(Number(cacheRecord.accessToken.expiresOn) * 1000);\r\n extExpiresOn = new Date(Number(cacheRecord.accessToken.extendedExpiresOn) * 1000);\r\n }\r\n var uid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.oid) || (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.sub) || Constants.EMPTY_STRING;\r\n var tid = (idTokenObj === null || idTokenObj === void 0 ? void 0 : idTokenObj.claims.tid) || Constants.EMPTY_STRING;\r\n return {\r\n authority: authority ? authority.canonicalAuthority : Constants.EMPTY_STRING,\r\n uniqueId: uid,\r\n tenantId: tid,\r\n scopes: responseScopes,\r\n account: (cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) ? cacheRecord.account.getAccountInfo() : null,\r\n idToken: idTokenObj ? idTokenObj.rawToken : Constants.EMPTY_STRING,\r\n idTokenClaims: idTokenObj ? idTokenObj.claims : {},\r\n accessToken: accessToken,\r\n fromCache: true,\r\n expiresOn: expiresOn,\r\n correlationId: request.correlationId || Constants.EMPTY_STRING,\r\n requestId: Constants.EMPTY_STRING,\r\n extExpiresOn: extExpiresOn,\r\n familyId: Constants.EMPTY_STRING,\r\n tokenType: ((_a = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.accessToken) === null || _a === void 0 ? void 0 : _a.tokenType) || Constants.EMPTY_STRING,\r\n state: Constants.EMPTY_STRING,\r\n cloudGraphHostName: ((_b = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) === null || _b === void 0 ? void 0 : _b.cloudGraphHostName) || Constants.EMPTY_STRING,\r\n msGraphHost: ((_c = cacheRecord === null || cacheRecord === void 0 ? void 0 : cacheRecord.account) === null || _c === void 0 ? void 0 : _c.msGraphHost) || Constants.EMPTY_STRING,\r\n code: undefined,\r\n fromNativeBroker: false\r\n };\r\n };\r\n return TokenCache;\r\n}());\n\nexport { TokenCache };\n//# sourceMappingURL=TokenCache.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends } from '../_virtual/_tslib.js';\nimport { AuthorizationCodeClient } from '@azure/msal-common';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar HybridSpaAuthorizationCodeClient = /** @class */ (function (_super) {\r\n __extends(HybridSpaAuthorizationCodeClient, _super);\r\n function HybridSpaAuthorizationCodeClient(config) {\r\n var _this = _super.call(this, config) || this;\r\n _this.includeRedirectUri = false;\r\n return _this;\r\n }\r\n return HybridSpaAuthorizationCodeClient;\r\n}(AuthorizationCodeClient));\n\nexport { HybridSpaAuthorizationCodeClient };\n//# sourceMappingURL=HybridSpaAuthorizationCodeClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { AuthError, PerformanceEvents, Constants } from '@azure/msal-common';\nimport { StandardInteractionClient } from './StandardInteractionClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { InteractionType } from '../utils/BrowserConstants.js';\nimport { SilentHandler } from '../interaction_handler/SilentHandler.js';\nimport { HybridSpaAuthorizationCodeClient } from './HybridSpaAuthorizationCodeClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar SilentAuthCodeClient = /** @class */ (function (_super) {\r\n __extends(SilentAuthCodeClient, _super);\r\n function SilentAuthCodeClient(config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, apiId, performanceClient, nativeMessageHandler, correlationId) {\r\n var _this = _super.call(this, config, storageImpl, browserCrypto, logger, eventHandler, navigationClient, performanceClient, nativeMessageHandler, correlationId) || this;\r\n _this.apiId = apiId;\r\n return _this;\r\n }\r\n /**\r\n * Acquires a token silently by redeeming an authorization code against the /token endpoint\r\n * @param request\r\n */\r\n SilentAuthCodeClient.prototype.acquireToken = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRequest, serverTelemetryManager, authCodeRequest, clientConfig, authClient, silentHandler, e_1;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n this.logger.trace(\"SilentAuthCodeClient.acquireToken called\");\r\n // Auth code payload is required\r\n if (!request.code) {\r\n throw BrowserAuthError.createAuthCodeRequiredError();\r\n }\r\n // Create silent request\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientInitializeAuthorizationRequest, request.correlationId);\r\n return [4 /*yield*/, this.initializeAuthorizationRequest(request, InteractionType.Silent)];\r\n case 1:\r\n silentRequest = _a.sent();\r\n this.browserStorage.updateCacheEntries(silentRequest.state, silentRequest.nonce, silentRequest.authority, silentRequest.loginHint || Constants.EMPTY_STRING, silentRequest.account || null);\r\n serverTelemetryManager = this.initializeServerTelemetryManager(this.apiId);\r\n _a.label = 2;\r\n case 2:\r\n _a.trys.push([2, 4, , 5]);\r\n authCodeRequest = __assign(__assign({}, silentRequest), { code: request.code });\r\n // Initialize the client\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.StandardInteractionClientGetClientConfiguration, request.correlationId);\r\n return [4 /*yield*/, this.getClientConfiguration(serverTelemetryManager, silentRequest.authority)];\r\n case 3:\r\n clientConfig = _a.sent();\r\n authClient = new HybridSpaAuthorizationCodeClient(clientConfig);\r\n this.logger.verbose(\"Auth code client created\");\r\n silentHandler = new SilentHandler(authClient, this.browserStorage, authCodeRequest, this.logger, this.config.system, this.performanceClient);\r\n // Handle auth code parameters from request\r\n return [2 /*return*/, silentHandler.handleCodeResponseFromServer({\r\n code: request.code,\r\n msgraph_host: request.msGraphHost,\r\n cloud_graph_host_name: request.cloudGraphHostName,\r\n cloud_instance_host_name: request.cloudInstanceHostName\r\n }, silentRequest.state, authClient.authority, this.networkClient, false)];\r\n case 4:\r\n e_1 = _a.sent();\r\n if (e_1 instanceof AuthError) {\r\n e_1.setCorrelationId(this.correlationId);\r\n }\r\n serverTelemetryManager.cacheFailedRequest(e_1);\r\n this.browserStorage.cleanRequestByState(silentRequest.state);\r\n throw e_1;\r\n case 5: return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Currently Unsupported\r\n */\r\n SilentAuthCodeClient.prototype.logout = function () {\r\n // Synchronous so we must reject\r\n return Promise.reject(BrowserAuthError.createSilentLogoutUnsupportedError());\r\n };\r\n return SilentAuthCodeClient;\r\n}(StandardInteractionClient));\n\nexport { SilentAuthCodeClient };\n//# sourceMappingURL=SilentAuthCodeClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserPerformanceMeasurement = /** @class */ (function () {\r\n function BrowserPerformanceMeasurement(name, correlationId) {\r\n this.correlationId = correlationId;\r\n this.measureName = BrowserPerformanceMeasurement.makeMeasureName(name, correlationId);\r\n this.startMark = BrowserPerformanceMeasurement.makeStartMark(name, correlationId);\r\n this.endMark = BrowserPerformanceMeasurement.makeEndMark(name, correlationId);\r\n }\r\n BrowserPerformanceMeasurement.makeMeasureName = function (name, correlationId) {\r\n return \"msal.measure.\" + name + \".\" + correlationId;\r\n };\r\n BrowserPerformanceMeasurement.makeStartMark = function (name, correlationId) {\r\n return \"msal.start.\" + name + \".\" + correlationId;\r\n };\r\n BrowserPerformanceMeasurement.makeEndMark = function (name, correlationId) {\r\n return \"msal.end.\" + name + \".\" + correlationId;\r\n };\r\n BrowserPerformanceMeasurement.supportsBrowserPerformance = function () {\r\n return typeof window !== \"undefined\" &&\r\n typeof window.performance !== \"undefined\" &&\r\n typeof window.performance.mark === \"function\" &&\r\n typeof window.performance.measure === \"function\" &&\r\n typeof window.performance.clearMarks === \"function\" &&\r\n typeof window.performance.clearMeasures === \"function\" &&\r\n typeof window.performance.getEntriesByName === \"function\";\r\n };\r\n /**\r\n * Flush browser marks and measurements.\r\n * @param {string} correlationId\r\n * @param {SubMeasurement} measurements\r\n */\r\n BrowserPerformanceMeasurement.flushMeasurements = function (correlationId, measurements) {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n measurements.forEach(function (measurement) {\r\n var measureName = BrowserPerformanceMeasurement.makeMeasureName(measurement.name, correlationId);\r\n var entriesForMeasurement = window.performance.getEntriesByName(measureName, \"measure\");\r\n if (entriesForMeasurement.length > 0) {\r\n window.performance.clearMeasures(measureName);\r\n window.performance.clearMarks(BrowserPerformanceMeasurement.makeStartMark(measureName, correlationId));\r\n window.performance.clearMarks(BrowserPerformanceMeasurement.makeEndMark(measureName, correlationId));\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // Silently catch and return null\r\n }\r\n }\r\n };\r\n BrowserPerformanceMeasurement.prototype.startMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.startMark);\r\n }\r\n catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n };\r\n BrowserPerformanceMeasurement.prototype.endMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n window.performance.mark(this.endMark);\r\n window.performance.measure(this.measureName, this.startMark, this.endMark);\r\n }\r\n catch (e) {\r\n // Silently catch\r\n }\r\n }\r\n };\r\n BrowserPerformanceMeasurement.prototype.flushMeasurement = function () {\r\n if (BrowserPerformanceMeasurement.supportsBrowserPerformance()) {\r\n try {\r\n var entriesForMeasurement = window.performance.getEntriesByName(this.measureName, \"measure\");\r\n if (entriesForMeasurement.length > 0) {\r\n var durationMs = entriesForMeasurement[0].duration;\r\n window.performance.clearMeasures(this.measureName);\r\n window.performance.clearMarks(this.startMark);\r\n window.performance.clearMarks(this.endMark);\r\n return durationMs;\r\n }\r\n }\r\n catch (e) {\r\n // Silently catch and return null\r\n }\r\n }\r\n return null;\r\n };\r\n return BrowserPerformanceMeasurement;\r\n}());\n\nexport { BrowserPerformanceMeasurement };\n//# sourceMappingURL=BrowserPerformanceMeasurement.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __assign } from '../_virtual/_tslib.js';\nimport { PerformanceClient } from '@azure/msal-common';\nimport { BrowserCrypto } from '../crypto/BrowserCrypto.js';\nimport { GuidGenerator } from '../crypto/GuidGenerator.js';\nimport { BrowserPerformanceMeasurement } from './BrowserPerformanceMeasurement.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar BrowserPerformanceClient = /** @class */ (function (_super) {\r\n __extends(BrowserPerformanceClient, _super);\r\n function BrowserPerformanceClient(clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry, cryptoOptions) {\r\n var _this = _super.call(this, clientId, authority, logger, libraryName, libraryVersion, applicationTelemetry) || this;\r\n _this.browserCrypto = new BrowserCrypto(_this.logger, cryptoOptions);\r\n _this.guidGenerator = new GuidGenerator(_this.browserCrypto);\r\n return _this;\r\n }\r\n BrowserPerformanceClient.prototype.startPerformanceMeasuremeant = function (measureName, correlationId) {\r\n return new BrowserPerformanceMeasurement(measureName, correlationId);\r\n };\r\n BrowserPerformanceClient.prototype.generateId = function () {\r\n return this.guidGenerator.generateGuid();\r\n };\r\n BrowserPerformanceClient.prototype.getPageVisibility = function () {\r\n var _a;\r\n return ((_a = document.visibilityState) === null || _a === void 0 ? void 0 : _a.toString()) || null;\r\n };\r\n BrowserPerformanceClient.prototype.deleteIncompleteSubMeasurements = function (inProgressEvent) {\r\n var rootEvent = this.eventsByCorrelationId.get(inProgressEvent.event.correlationId);\r\n var isRootEvent = rootEvent && rootEvent.eventId === inProgressEvent.event.eventId;\r\n var incompleteMeasurements = [];\r\n if (isRootEvent && (rootEvent === null || rootEvent === void 0 ? void 0 : rootEvent.incompleteSubMeasurements)) {\r\n rootEvent.incompleteSubMeasurements.forEach(function (subMeasurement) {\r\n incompleteMeasurements.push(__assign({}, subMeasurement));\r\n });\r\n }\r\n // Clean up remaining marks for incomplete sub-measurements\r\n if (incompleteMeasurements.length > 0) {\r\n BrowserPerformanceMeasurement.flushMeasurements(inProgressEvent.event.correlationId, incompleteMeasurements);\r\n }\r\n };\r\n BrowserPerformanceClient.prototype.supportsBrowserPerformanceNow = function () {\r\n return typeof window !== \"undefined\" &&\r\n typeof window.performance !== \"undefined\" &&\r\n typeof window.performance.now === \"function\";\r\n };\r\n /**\r\n * Starts measuring performance for a given operation. Returns a function that should be used to end the measurement.\r\n * Also captures browser page visibilityState.\r\n *\r\n * @param {PerformanceEvents} measureName\r\n * @param {?string} [correlationId]\r\n * @returns {((event?: Partial) => PerformanceEvent| null)}\r\n */\r\n BrowserPerformanceClient.prototype.startMeasurement = function (measureName, correlationId) {\r\n var _this = this;\r\n // Capture page visibilityState and then invoke start/end measurement\r\n var startPageVisibility = this.getPageVisibility();\r\n var inProgressEvent = _super.prototype.startMeasurement.call(this, measureName, correlationId);\r\n return __assign(__assign({}, inProgressEvent), { endMeasurement: function (event) {\r\n var res = inProgressEvent.endMeasurement(__assign({ startPageVisibility: startPageVisibility, endPageVisibility: _this.getPageVisibility() }, event));\r\n _this.deleteIncompleteSubMeasurements(inProgressEvent);\r\n return res;\r\n }, discardMeasurement: function () {\r\n inProgressEvent.discardMeasurement();\r\n _this.deleteIncompleteSubMeasurements(inProgressEvent);\r\n inProgressEvent.measurement.flushMeasurement();\r\n } });\r\n };\r\n /**\r\n * Adds pre-queue time to preQueueTimeByCorrelationId map.\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @returns\r\n */\r\n BrowserPerformanceClient.prototype.setPreQueueTime = function (eventName, correlationId) {\r\n if (!this.supportsBrowserPerformanceNow()) {\r\n this.logger.trace(\"BrowserPerformanceClient: window performance API not available, unable to set telemetry queue time for \" + eventName);\r\n return;\r\n }\r\n if (!correlationId) {\r\n this.logger.trace(\"BrowserPerformanceClient: correlationId for \" + eventName + \" not provided, unable to set telemetry queue time\");\r\n return;\r\n }\r\n var preQueueEvent = this.preQueueTimeByCorrelationId.get(correlationId);\r\n /**\r\n * Manually complete queue measurement if there is an incomplete pre-queue event.\r\n * Incomplete pre-queue events are instrumentation bugs that should be fixed.\r\n */\r\n if (preQueueEvent) {\r\n this.logger.trace(\"BrowserPerformanceClient: Incomplete pre-queue \" + preQueueEvent.name + \" found\", correlationId);\r\n this.addQueueMeasurement(preQueueEvent.name, correlationId, undefined, true);\r\n }\r\n this.preQueueTimeByCorrelationId.set(correlationId, { name: eventName, time: window.performance.now() });\r\n };\r\n /**\r\n * Calculates and adds queue time measurement for given performance event.\r\n *\r\n * @param {PerformanceEvents} eventName\r\n * @param {?string} correlationId\r\n * @param {?number} queueTime\r\n * @param {?boolean} manuallyCompleted - indicator for manually completed queue measurements\r\n * @returns\r\n */\r\n BrowserPerformanceClient.prototype.addQueueMeasurement = function (eventName, correlationId, queueTime, manuallyCompleted) {\r\n if (!this.supportsBrowserPerformanceNow()) {\r\n this.logger.trace(\"BrowserPerformanceClient: window performance API not available, unable to add queue measurement for \" + eventName);\r\n return;\r\n }\r\n if (!correlationId) {\r\n this.logger.trace(\"BrowserPerformanceClient: correlationId for \" + eventName + \" not provided, unable to add queue measurement\");\r\n return;\r\n }\r\n var preQueueTime = _super.prototype.getPreQueueTime.call(this, eventName, correlationId);\r\n if (!preQueueTime) {\r\n return;\r\n }\r\n var currentTime = window.performance.now();\r\n var resQueueTime = queueTime || _super.prototype.calculateQueuedTime.call(this, preQueueTime, currentTime);\r\n return _super.prototype.addQueueMeasurement.call(this, eventName, correlationId, resQueueTime, manuallyCompleted);\r\n };\r\n return BrowserPerformanceClient;\r\n}(PerformanceClient));\n\nexport { BrowserPerformanceClient };\n//# sourceMappingURL=BrowserPerformanceClient.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { CryptoOps } from '../crypto/CryptoOps.js';\nimport { PerformanceEvents, Constants, InteractionRequiredAuthError, AuthError, ClientAuthError, PromptValue, Logger, StubPerformanceClient, DEFAULT_CRYPTO_IMPLEMENTATION } from '@azure/msal-common';\nimport { BrowserCacheManager, DEFAULT_BROWSER_CACHE_MANAGER } from '../cache/BrowserCacheManager.js';\nimport { buildConfiguration } from '../config/Configuration.js';\nimport { InteractionType, ApiId, TemporaryCacheKeys, CacheLookupPolicy, BrowserCacheLocation } from '../utils/BrowserConstants.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\nimport { name, version } from '../packageMetadata.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserConfigurationAuthError } from '../error/BrowserConfigurationAuthError.js';\nimport { EventHandler } from '../event/EventHandler.js';\nimport { PopupClient } from '../interaction_client/PopupClient.js';\nimport { RedirectClient } from '../interaction_client/RedirectClient.js';\nimport { SilentIframeClient } from '../interaction_client/SilentIframeClient.js';\nimport { SilentRefreshClient } from '../interaction_client/SilentRefreshClient.js';\nimport { TokenCache } from '../cache/TokenCache.js';\nimport { NativeInteractionClient } from '../interaction_client/NativeInteractionClient.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { SilentCacheClient } from '../interaction_client/SilentCacheClient.js';\nimport { SilentAuthCodeClient } from '../interaction_client/SilentAuthCodeClient.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { BrowserPerformanceClient } from '../telemetry/BrowserPerformanceClient.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nvar ClientApplication = /** @class */ (function () {\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration Object for the MSAL PublicClientApplication instance\r\n */\r\n function ClientApplication(configuration) {\r\n /*\r\n * If loaded in an environment where window is not available,\r\n * set internal flag to false so that further requests fail.\r\n * This is to support server-side rendering environments.\r\n */\r\n this.isBrowserEnvironment = typeof window !== \"undefined\";\r\n // Set the configuration.\r\n this.config = buildConfiguration(configuration, this.isBrowserEnvironment);\r\n this.initialized = false;\r\n // Initialize logger\r\n this.logger = new Logger(this.config.system.loggerOptions, name, version);\r\n // Initialize the network module class.\r\n this.networkClient = this.config.system.networkClient;\r\n // Initialize the navigation client class.\r\n this.navigationClient = this.config.system.navigationClient;\r\n // Initialize redirectResponse Map\r\n this.redirectResponse = new Map();\r\n // Initial hybrid spa map\r\n this.hybridAuthCodeResponses = new Map();\r\n // Initialize performance client\r\n this.performanceClient = this.isBrowserEnvironment ?\r\n new BrowserPerformanceClient(this.config.auth.clientId, this.config.auth.authority, this.logger, name, version, this.config.telemetry.application, this.config.system.cryptoOptions) :\r\n new StubPerformanceClient(this.config.auth.clientId, this.config.auth.authority, this.logger, name, version, this.config.telemetry.application);\r\n // Initialize the crypto class.\r\n this.browserCrypto = this.isBrowserEnvironment ? new CryptoOps(this.logger, this.performanceClient, this.config.system.cryptoOptions) : DEFAULT_CRYPTO_IMPLEMENTATION;\r\n this.eventHandler = new EventHandler(this.logger, this.browserCrypto);\r\n // Initialize the browser storage class.\r\n this.browserStorage = this.isBrowserEnvironment ?\r\n new BrowserCacheManager(this.config.auth.clientId, this.config.cache, this.browserCrypto, this.logger) :\r\n DEFAULT_BROWSER_CACHE_MANAGER(this.config.auth.clientId, this.logger);\r\n // initialize in memory storage for native flows\r\n var nativeCacheOptions = {\r\n cacheLocation: BrowserCacheLocation.MemoryStorage,\r\n temporaryCacheLocation: BrowserCacheLocation.MemoryStorage,\r\n storeAuthStateInCookie: false,\r\n secureCookies: false,\r\n cacheMigrationEnabled: false,\r\n claimsBasedCachingEnabled: true\r\n };\r\n this.nativeInternalStorage = new BrowserCacheManager(this.config.auth.clientId, nativeCacheOptions, this.browserCrypto, this.logger);\r\n // Initialize the token cache\r\n this.tokenCache = new TokenCache(this.config, this.browserStorage, this.logger, this.browserCrypto);\r\n // Register listener functions\r\n this.trackPageVisibilityWithMeasurement = this.trackPageVisibilityWithMeasurement.bind(this);\r\n }\r\n /**\r\n * Initializer function to perform async startup tasks such as connecting to WAM extension\r\n */\r\n ClientApplication.prototype.initialize = function () {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var allowNativeBroker, initMeasurement, _a, e_1, claimsTokensRemovalMeasurement;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.logger.trace(\"initialize called\");\r\n if (this.initialized) {\r\n this.logger.info(\"initialize has already been called, exiting early.\");\r\n return [2 /*return*/];\r\n }\r\n allowNativeBroker = this.config.system.allowNativeBroker;\r\n initMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.InitializeClientApplication);\r\n this.eventHandler.emitEvent(EventType.INITIALIZE_START);\r\n if (!allowNativeBroker) return [3 /*break*/, 4];\r\n _b.label = 1;\r\n case 1:\r\n _b.trys.push([1, 3, , 4]);\r\n _a = this;\r\n return [4 /*yield*/, NativeMessageHandler.createProvider(this.logger, this.config.system.nativeBrokerHandshakeTimeout, this.performanceClient)];\r\n case 2:\r\n _a.nativeExtensionProvider = _b.sent();\r\n return [3 /*break*/, 4];\r\n case 3:\r\n e_1 = _b.sent();\r\n this.logger.verbose(e_1);\r\n return [3 /*break*/, 4];\r\n case 4:\r\n if (!!this.config.cache.claimsBasedCachingEnabled) return [3 /*break*/, 6];\r\n this.logger.verbose(\"Claims-based caching is disabled. Clearing the previous cache with claims\");\r\n claimsTokensRemovalMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.ClearTokensAndKeysWithClaims);\r\n return [4 /*yield*/, this.browserStorage.clearTokensAndKeysWithClaims()];\r\n case 5:\r\n _b.sent();\r\n claimsTokensRemovalMeasurement.endMeasurement({ success: true });\r\n _b.label = 6;\r\n case 6:\r\n this.initialized = true;\r\n this.eventHandler.emitEvent(EventType.INITIALIZE_END);\r\n initMeasurement.endMeasurement({ allowNativeBroker: allowNativeBroker, success: true });\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n };\r\n // #region Redirect Flow\r\n /**\r\n * Event handler function which allows users to fire events after the PublicClientApplication object\r\n * has loaded during redirect flows. This should be invoked on all page loads involved in redirect\r\n * auth flows.\r\n * @param hash Hash to process. Defaults to the current value of window.location.hash. Only needs to be provided explicitly if the response to be handled is not contained in the current value.\r\n * @returns Token response or null. If the return value is null, then no auth redirect was detected.\r\n */\r\n ClientApplication.prototype.handleRedirectPromise = function (hash) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var loggedInAccounts, redirectResponseKey, response, request, redirectResponse, nativeClient, correlationId, redirectClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n this.logger.verbose(\"handleRedirectPromise called\");\r\n // Block token acquisition before initialize has been called if native brokering is enabled\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized(this.config.system.allowNativeBroker, this.initialized);\r\n loggedInAccounts = this.getAllAccounts();\r\n if (this.isBrowserEnvironment) {\r\n redirectResponseKey = hash || Constants.EMPTY_STRING;\r\n response = this.redirectResponse.get(redirectResponseKey);\r\n if (typeof response === \"undefined\") {\r\n this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_START, InteractionType.Redirect);\r\n this.logger.verbose(\"handleRedirectPromise has been called for the first time, storing the promise\");\r\n request = this.browserStorage.getCachedNativeRequest();\r\n redirectResponse = void 0;\r\n if (request && NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider) && this.nativeExtensionProvider && !hash) {\r\n this.logger.trace(\"handleRedirectPromise - acquiring token from native platform\");\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.handleRedirectPromise, this.performanceClient, this.nativeExtensionProvider, request.accountId, this.nativeInternalStorage, request.correlationId);\r\n redirectResponse = nativeClient.handleRedirectPromise();\r\n }\r\n else {\r\n this.logger.trace(\"handleRedirectPromise - acquiring token from web flow\");\r\n correlationId = this.browserStorage.getTemporaryCache(TemporaryCacheKeys.CORRELATION_ID, true) || Constants.EMPTY_STRING;\r\n redirectClient = this.createRedirectClient(correlationId);\r\n redirectResponse = redirectClient.handleRedirectPromise(hash);\r\n }\r\n response = redirectResponse.then(function (result) {\r\n if (result) {\r\n // Emit login event if number of accounts change\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, login success\");\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Redirect, result);\r\n _this.logger.verbose(\"handleRedirectResponse returned result, acquire token success\");\r\n }\r\n }\r\n _this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n return result;\r\n }).catch(function (e) {\r\n // Emit login event if there is an account\r\n if (loggedInAccounts.length > 0) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n _this.eventHandler.emitEvent(EventType.HANDLE_REDIRECT_END, InteractionType.Redirect);\r\n throw e;\r\n });\r\n this.redirectResponse.set(redirectResponseKey, response);\r\n }\r\n else {\r\n this.logger.verbose(\"handleRedirectPromise has been called previously, returning the result from the first call\");\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n this.logger.verbose(\"handleRedirectPromise returns null, not browser environment\");\r\n return [2 /*return*/, null];\r\n });\r\n });\r\n };\r\n /**\r\n * Use when you want to obtain an access_token for your API by redirecting the user's browser window to the authorization endpoint. This function redirects\r\n * the page, so any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n ClientApplication.prototype.acquireTokenRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, isLoggedIn, result, nativeClient, redirectClient;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"acquireTokenRedirect called\", correlationId);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n isLoggedIn = this.getAllAccounts().length > 0;\r\n if (isLoggedIn) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Redirect, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Redirect, request);\r\n }\r\n if (this.nativeExtensionProvider && this.canUseNative(request)) {\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenRedirect, this.performanceClient, this.nativeExtensionProvider, this.getNativeAccountId(request), this.nativeInternalStorage, request.correlationId);\r\n result = nativeClient.acquireTokenRedirect(request).catch(function (e) {\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var redirectClient = _this.createRedirectClient(request.correlationId);\r\n return redirectClient.acquireToken(request);\r\n }\r\n else if (e instanceof InteractionRequiredAuthError) {\r\n _this.logger.verbose(\"acquireTokenRedirect - Resolving interaction required error thrown by native broker by falling back to web flow\");\r\n var redirectClient = _this.createRedirectClient(request.correlationId);\r\n return redirectClient.acquireToken(request);\r\n }\r\n _this.browserStorage.setInteractionInProgress(false);\r\n throw e;\r\n });\r\n }\r\n else {\r\n redirectClient = this.createRedirectClient(request.correlationId);\r\n result = redirectClient.acquireToken(request);\r\n }\r\n return [2 /*return*/, result.catch(function (e) {\r\n // If logged in, emit acquire token events\r\n if (isLoggedIn) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Redirect, null, e);\r\n }\r\n throw e;\r\n })];\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Popup Flow\r\n /**\r\n * Use when you want to obtain an access_token for your API via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenPopup = function (request) {\r\n var _this = this;\r\n var correlationId = this.getRequestCorrelationId(request);\r\n var atPopupMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenPopup, correlationId);\r\n try {\r\n this.logger.verbose(\"acquireTokenPopup called\", correlationId);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n // If logged in, emit acquire token events\r\n var loggedInAccounts = this.getAllAccounts();\r\n if (loggedInAccounts.length > 0) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Popup, request);\r\n }\r\n else {\r\n this.eventHandler.emitEvent(EventType.LOGIN_START, InteractionType.Popup, request);\r\n }\r\n var result;\r\n if (this.canUseNative(request)) {\r\n result = this.acquireTokenNative(request, ApiId.acquireTokenPopup).then(function (response) {\r\n _this.browserStorage.setInteractionInProgress(false);\r\n atPopupMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: true,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (e) {\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var popupClient = _this.createPopupClient(request.correlationId);\r\n return popupClient.acquireToken(request);\r\n }\r\n else if (e instanceof InteractionRequiredAuthError) {\r\n _this.logger.verbose(\"acquireTokenPopup - Resolving interaction required error thrown by native broker by falling back to web flow\");\r\n var popupClient = _this.createPopupClient(request.correlationId);\r\n return popupClient.acquireToken(request);\r\n }\r\n _this.browserStorage.setInteractionInProgress(false);\r\n throw e;\r\n });\r\n }\r\n else {\r\n var popupClient = this.createPopupClient(request.correlationId);\r\n result = popupClient.acquireToken(request);\r\n }\r\n return result.then(function (result) {\r\n /*\r\n * If logged in, emit acquire token events\r\n */\r\n var isLoggingIn = loggedInAccounts.length < _this.getAllAccounts().length;\r\n if (isLoggingIn) {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Popup, result);\r\n }\r\n atPopupMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atPopupMeasurement.endMeasurement({\r\n success: true,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n }).catch(function (e) {\r\n if (loggedInAccounts.length > 0) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Popup, null, e);\r\n }\r\n else {\r\n _this.eventHandler.emitEvent(EventType.LOGIN_FAILURE, InteractionType.Popup, null, e);\r\n }\r\n atPopupMeasurement.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n });\r\n };\r\n ClientApplication.prototype.trackPageVisibilityWithMeasurement = function () {\r\n var measurement = this.ssoSilentMeasurement || this.acquireTokenByCodeAsyncMeasurement;\r\n if (!measurement) {\r\n return;\r\n }\r\n this.logger.info(\"Perf: Visibility change detected in \", measurement.event.name);\r\n measurement.increment({\r\n visibilityChangeCount: 1,\r\n });\r\n };\r\n // #endregion\r\n // #region Silent Flow\r\n /**\r\n * This function uses a hidden iframe to fetch an authorization code from the eSTS. There are cases where this may not work:\r\n * - Any browser using a form of Intelligent Tracking Prevention\r\n * - If there is not an established session with the service\r\n *\r\n * In these cases, the request must be done inside a popup or full frame redirect.\r\n *\r\n * For the cases where interaction is required, you cannot send a request with prompt=none.\r\n *\r\n * If your refresh token has expired, you can use this function to fetch a new set of tokens silently as long as\r\n * you session on the server still exists.\r\n * @param request {@link SsoSilentRequest}\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.ssoSilent = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, validRequest, result, silentIframeClient;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n validRequest = __assign(__assign({}, request), { \r\n // will be PromptValue.NONE or PromptValue.NO_SESSION\r\n prompt: request.prompt, correlationId: correlationId });\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.ssoSilentMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.SsoSilent, correlationId);\r\n (_a = this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n this.logger.verbose(\"ssoSilent called\", correlationId);\r\n this.eventHandler.emitEvent(EventType.SSO_SILENT_START, InteractionType.Silent, validRequest);\r\n if (this.canUseNative(validRequest)) {\r\n result = this.acquireTokenNative(validRequest, ApiId.ssoSilent).catch(function (e) {\r\n // If native token acquisition fails for availability reasons fallback to standard flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n var silentIframeClient = _this.createSilentIframeClient(validRequest.correlationId);\r\n return silentIframeClient.acquireToken(validRequest);\r\n }\r\n throw e;\r\n });\r\n }\r\n else {\r\n silentIframeClient = this.createSilentIframeClient(validRequest.correlationId);\r\n result = silentIframeClient.acquireToken(validRequest);\r\n }\r\n return [2 /*return*/, result.then(function (response) {\r\n var _a, _b;\r\n _this.eventHandler.emitEvent(EventType.SSO_SILENT_SUCCESS, InteractionType.Silent, response);\r\n (_a = _this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.addStaticFields({\r\n accessTokenSize: response.accessToken.length,\r\n idTokenSize: response.idToken.length\r\n });\r\n (_b = _this.ssoSilentMeasurement) === null || _b === void 0 ? void 0 : _b.endMeasurement({\r\n success: true,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (e) {\r\n var _a;\r\n _this.eventHandler.emitEvent(EventType.SSO_SILENT_FAILURE, InteractionType.Silent, null, e);\r\n (_a = _this.ssoSilentMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: e.errorCode,\r\n subErrorCode: e.subError,\r\n success: false\r\n });\r\n throw e;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibilityWithMeasurement);\r\n })];\r\n });\r\n });\r\n };\r\n /**\r\n * This function redeems an authorization code (passed as code) from the eSTS token endpoint.\r\n * This authorization code should be acquired server-side using a confidential client to acquire a spa_code.\r\n * This API is not indended for normal authorization code acquisition and redemption.\r\n *\r\n * Redemption of this authorization code will not require PKCE, as it was acquired by a confidential client.\r\n *\r\n * @param request {@link AuthorizationCodeRequest}\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n ClientApplication.prototype.acquireTokenByCode = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, atbcMeasurement, hybridAuthCode_1, response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.trace(\"acquireTokenByCode called\", correlationId);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_START, InteractionType.Silent, request);\r\n atbcMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCode, request.correlationId);\r\n try {\r\n if (request.code && request.nativeAccountId) {\r\n // Throw error in case server returns both spa_code and spa_accountid in exchange for auth code.\r\n throw BrowserAuthError.createSpaCodeAndNativeAccountIdPresentError();\r\n }\r\n else if (request.code) {\r\n hybridAuthCode_1 = request.code;\r\n response = this.hybridAuthCodeResponses.get(hybridAuthCode_1);\r\n if (!response) {\r\n this.logger.verbose(\"Initiating new acquireTokenByCode request\", correlationId);\r\n response = this.acquireTokenByCodeAsync(__assign(__assign({}, request), { correlationId: correlationId }))\r\n .then(function (result) {\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_SUCCESS, InteractionType.Silent, result);\r\n _this.hybridAuthCodeResponses.delete(hybridAuthCode_1);\r\n atbcMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atbcMeasurement.endMeasurement({\r\n success: true,\r\n isNativeBroker: result.fromNativeBroker,\r\n requestId: result.requestId\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.hybridAuthCodeResponses.delete(hybridAuthCode_1);\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE, InteractionType.Silent, null, error);\r\n atbcMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n });\r\n this.hybridAuthCodeResponses.set(hybridAuthCode_1, response);\r\n }\r\n else {\r\n this.logger.verbose(\"Existing acquireTokenByCode request found\", request.correlationId);\r\n atbcMeasurement.discardMeasurement();\r\n }\r\n return [2 /*return*/, response];\r\n }\r\n else if (request.nativeAccountId) {\r\n if (this.canUseNative(request, request.nativeAccountId)) {\r\n return [2 /*return*/, this.acquireTokenNative(request, ApiId.acquireTokenByCode, request.nativeAccountId).catch(function (e) {\r\n // If native token acquisition fails for availability reasons fallback to standard flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n _this.nativeExtensionProvider = undefined; // If extension gets uninstalled during session prevent future requests from continuing to attempt\r\n }\r\n throw e;\r\n })];\r\n }\r\n else {\r\n throw BrowserAuthError.createUnableToAcquireTokenFromNativePlatformError();\r\n }\r\n }\r\n else {\r\n throw BrowserAuthError.createAuthCodeOrNativeAccountIdRequiredError();\r\n }\r\n }\r\n catch (e) {\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_BY_CODE_FAILURE, InteractionType.Silent, null, e);\r\n atbcMeasurement.endMeasurement({\r\n errorCode: e instanceof AuthError && e.errorCode || undefined,\r\n subErrorCode: e instanceof AuthError && e.subError || undefined,\r\n success: false\r\n });\r\n throw e;\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Creates a SilentAuthCodeClient to redeem an authorization code.\r\n * @param request\r\n * @returns Result of the operation to redeem the authorization code\r\n */\r\n ClientApplication.prototype.acquireTokenByCodeAsync = function (request) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentAuthCodeClient, silentTokenResult;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.logger.trace(\"acquireTokenByCodeAsync called\", request.correlationId);\r\n this.acquireTokenByCodeAsyncMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenByCodeAsync, request.correlationId);\r\n (_a = this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibilityWithMeasurement);\r\n silentAuthCodeClient = this.createSilentAuthCodeClient(request.correlationId);\r\n return [4 /*yield*/, silentAuthCodeClient.acquireToken(request).then(function (response) {\r\n var _a;\r\n (_a = _this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n success: true,\r\n fromCache: response.fromCache,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (tokenRenewalError) {\r\n var _a;\r\n (_a = _this.acquireTokenByCodeAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: tokenRenewalError.errorCode,\r\n subErrorCode: tokenRenewalError.subError,\r\n success: false\r\n });\r\n throw tokenRenewalError;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibilityWithMeasurement);\r\n })];\r\n case 1:\r\n silentTokenResult = _b.sent();\r\n return [2 /*return*/, silentTokenResult];\r\n }\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token from the cache\r\n * @param silentCacheClient SilentCacheClient\r\n * @param commonRequest CommonSilentFlowRequest\r\n * @param silentRequest SilentRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenFromCache = function (silentCacheClient, commonRequest, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenFromCache, commonRequest.correlationId);\r\n switch (silentRequest.cacheLookupPolicy) {\r\n case CacheLookupPolicy.Default:\r\n case CacheLookupPolicy.AccessToken:\r\n case CacheLookupPolicy.AccessTokenAndRefreshToken:\r\n return [2 /*return*/, silentCacheClient.acquireToken(commonRequest)];\r\n default:\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token via a refresh token\r\n * @param commonRequest CommonSilentFlowRequest\r\n * @param silentRequest SilentRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenByRefreshToken = function (commonRequest, silentRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentRefreshClient;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenByRefreshToken, commonRequest.correlationId);\r\n switch (silentRequest.cacheLookupPolicy) {\r\n case CacheLookupPolicy.Default:\r\n case CacheLookupPolicy.AccessTokenAndRefreshToken:\r\n case CacheLookupPolicy.RefreshToken:\r\n case CacheLookupPolicy.RefreshTokenAndNetwork:\r\n silentRefreshClient = this.createSilentRefreshClient(commonRequest.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentRefreshClientAcquireToken, commonRequest.correlationId);\r\n return [2 /*return*/, silentRefreshClient.acquireToken(commonRequest)];\r\n default:\r\n throw ClientAuthError.createRefreshRequiredError();\r\n }\r\n return [2 /*return*/];\r\n });\r\n });\r\n };\r\n /**\r\n * Attempt to acquire an access token via an iframe\r\n * @param request CommonSilentFlowRequest\r\n * @returns A promise that, when resolved, returns the access token\r\n */\r\n ClientApplication.prototype.acquireTokenBySilentIframe = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var silentIframeClient;\r\n return __generator(this, function (_a) {\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenBySilentIframe, request.correlationId);\r\n silentIframeClient = this.createSilentIframeClient(request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.SilentIframeClientAcquireToken, request.correlationId);\r\n return [2 /*return*/, silentIframeClient.acquireToken(request)];\r\n });\r\n });\r\n };\r\n // #endregion\r\n // #region Logout\r\n /**\r\n * Deprecated logout function. Use logoutRedirect or logoutPopup instead\r\n * @param logoutRequest\r\n * @deprecated\r\n */\r\n ClientApplication.prototype.logout = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.logger.warning(\"logout API is deprecated and will be removed in msal-browser v3.0.0. Use logoutRedirect instead.\", correlationId);\r\n return [2 /*return*/, this.logoutRedirect(__assign({ correlationId: correlationId }, logoutRequest))];\r\n });\r\n });\r\n };\r\n /**\r\n * Use to log out the current user, and redirect the user to the postLogoutRedirectUri.\r\n * Default behaviour is to redirect the user to `window.location.href`.\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutRedirect = function (logoutRequest) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, redirectClient;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Redirect);\r\n redirectClient = this.createRedirectClient(correlationId);\r\n return [2 /*return*/, redirectClient.logout(logoutRequest)];\r\n });\r\n });\r\n };\r\n /**\r\n * Clears local cache for the current user then opens a popup window prompting the user to sign-out of the server\r\n * @param logoutRequest\r\n */\r\n ClientApplication.prototype.logoutPopup = function (logoutRequest) {\r\n try {\r\n var correlationId = this.getRequestCorrelationId(logoutRequest);\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Popup);\r\n var popupClient = this.createPopupClient(correlationId);\r\n return popupClient.logout(logoutRequest);\r\n }\r\n catch (e) {\r\n // Since this function is syncronous we need to reject\r\n return Promise.reject(e);\r\n }\r\n };\r\n // #endregion\r\n // #region Account APIs\r\n /**\r\n * Returns all accounts that MSAL currently has data for.\r\n * (the account object is created at the time of successful login)\r\n * or empty array when no accounts are found\r\n * @returns Array of account objects in cache\r\n */\r\n ClientApplication.prototype.getAllAccounts = function () {\r\n this.logger.verbose(\"getAllAccounts called\");\r\n return this.isBrowserEnvironment ? this.browserStorage.getAllAccounts() : [];\r\n };\r\n /**\r\n * Returns the signed in account matching username.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found.\r\n * This API is provided for convenience but getAccountById should be used for best reliability\r\n * @param username\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByUsername = function (username) {\r\n this.logger.trace(\"getAccountByUsername called\");\r\n if (!username) {\r\n this.logger.warning(\"getAccountByUsername: No username provided\");\r\n return null;\r\n }\r\n var account = this.browserStorage.getAccountInfoFilteredBy({ username: username });\r\n if (account) {\r\n this.logger.verbose(\"getAccountByUsername: Account matching username found, returning\");\r\n this.logger.verbosePii(\"getAccountByUsername: Returning signed-in accounts matching username: \" + username);\r\n return account;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByUsername: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching homeAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param homeAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByHomeId = function (homeAccountId) {\r\n this.logger.trace(\"getAccountByHomeId called\");\r\n if (!homeAccountId) {\r\n this.logger.warning(\"getAccountByHomeId: No homeAccountId provided\");\r\n return null;\r\n }\r\n var account = this.browserStorage.getAccountInfoFilteredBy({ homeAccountId: homeAccountId });\r\n if (account) {\r\n this.logger.verbose(\"getAccountByHomeId: Account matching homeAccountId found, returning\");\r\n this.logger.verbosePii(\"getAccountByHomeId: Returning signed-in accounts matching homeAccountId: \" + homeAccountId);\r\n return account;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByHomeId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Returns the signed in account matching localAccountId.\r\n * (the account object is created at the time of successful login)\r\n * or null when no matching account is found\r\n * @param localAccountId\r\n * @returns The account object stored in MSAL\r\n */\r\n ClientApplication.prototype.getAccountByLocalId = function (localAccountId) {\r\n this.logger.trace(\"getAccountByLocalId called\");\r\n if (!localAccountId) {\r\n this.logger.warning(\"getAccountByLocalId: No localAccountId provided\");\r\n return null;\r\n }\r\n var account = this.browserStorage.getAccountInfoFilteredBy({ localAccountId: localAccountId });\r\n if (account) {\r\n this.logger.verbose(\"getAccountByLocalId: Account matching localAccountId found, returning\");\r\n this.logger.verbosePii(\"getAccountByLocalId: Returning signed-in accounts matching localAccountId: \" + localAccountId);\r\n return account;\r\n }\r\n else {\r\n this.logger.verbose(\"getAccountByLocalId: No matching account found, returning null\");\r\n return null;\r\n }\r\n };\r\n /**\r\n * Sets the account to use as the active account. If no account is passed to the acquireToken APIs, then MSAL will use this active account.\r\n * @param account\r\n */\r\n ClientApplication.prototype.setActiveAccount = function (account) {\r\n this.browserStorage.setActiveAccount(account);\r\n };\r\n /**\r\n * Gets the currently active account\r\n */\r\n ClientApplication.prototype.getActiveAccount = function () {\r\n return this.browserStorage.getActiveAccount();\r\n };\r\n // #endregion\r\n // #region Helpers\r\n /**\r\n * Helper to validate app environment before making an auth request\r\n *\r\n * @protected\r\n * @param {InteractionType} interactionType What kind of interaction is being used\r\n * @param {boolean} [setInteractionInProgress=true] Whether to set interaction in progress temp cache flag\r\n */\r\n ClientApplication.prototype.preflightBrowserEnvironmentCheck = function (interactionType, setInteractionInProgress) {\r\n if (setInteractionInProgress === void 0) { setInteractionInProgress = true; }\r\n this.logger.verbose(\"preflightBrowserEnvironmentCheck started\");\r\n // Block request if not in browser environment\r\n BrowserUtils.blockNonBrowserEnvironment(this.isBrowserEnvironment);\r\n // Block redirects if in an iframe\r\n BrowserUtils.blockRedirectInIframe(interactionType, this.config.system.allowRedirectInIframe);\r\n // Block auth requests inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Block redirectUri opened in a popup from calling MSAL APIs\r\n BrowserUtils.blockAcquireTokenInPopups();\r\n // Block token acquisition before initialize has been called if native brokering is enabled\r\n BrowserUtils.blockNativeBrokerCalledBeforeInitialized(this.config.system.allowNativeBroker, this.initialized);\r\n // Block redirects if memory storage is enabled but storeAuthStateInCookie is not\r\n if (interactionType === InteractionType.Redirect &&\r\n this.config.cache.cacheLocation === BrowserCacheLocation.MemoryStorage &&\r\n !this.config.cache.storeAuthStateInCookie) {\r\n throw BrowserConfigurationAuthError.createInMemoryRedirectUnavailableError();\r\n }\r\n if (interactionType === InteractionType.Redirect || interactionType === InteractionType.Popup) {\r\n this.preflightInteractiveRequest(setInteractionInProgress);\r\n }\r\n };\r\n /**\r\n * Preflight check for interactive requests\r\n *\r\n * @protected\r\n * @param {boolean} setInteractionInProgress Whether to set interaction in progress temp cache flag\r\n */\r\n ClientApplication.prototype.preflightInteractiveRequest = function (setInteractionInProgress) {\r\n this.logger.verbose(\"preflightInteractiveRequest called, validating app environment\");\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n // Set interaction in progress temporary cache or throw if alread set.\r\n if (setInteractionInProgress) {\r\n this.browserStorage.setInteractionInProgress(true);\r\n }\r\n };\r\n /**\r\n * Acquire a token from native device (e.g. WAM)\r\n * @param request\r\n */\r\n ClientApplication.prototype.acquireTokenNative = function (request, apiId, accountId) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var nativeClient;\r\n return __generator(this, function (_a) {\r\n this.logger.trace(\"acquireTokenNative called\");\r\n if (!this.nativeExtensionProvider) {\r\n throw BrowserAuthError.createNativeConnectionNotEstablishedError();\r\n }\r\n nativeClient = new NativeInteractionClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, apiId, this.performanceClient, this.nativeExtensionProvider, accountId || this.getNativeAccountId(request), this.nativeInternalStorage, request.correlationId);\r\n return [2 /*return*/, nativeClient.acquireToken(request)];\r\n });\r\n });\r\n };\r\n /**\r\n * Returns boolean indicating if this request can use the native broker\r\n * @param request\r\n */\r\n ClientApplication.prototype.canUseNative = function (request, accountId) {\r\n this.logger.trace(\"canUseNative called\");\r\n if (!NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider, request.authenticationScheme)) {\r\n this.logger.trace(\"canUseNative: isNativeAvailable returned false, returning false\");\r\n return false;\r\n }\r\n if (request.prompt) {\r\n switch (request.prompt) {\r\n case PromptValue.NONE:\r\n case PromptValue.CONSENT:\r\n case PromptValue.LOGIN:\r\n this.logger.trace(\"canUseNative: prompt is compatible with native flow\");\r\n break;\r\n default:\r\n this.logger.trace(\"canUseNative: prompt = \" + request.prompt + \" is not compatible with native flow, returning false\");\r\n return false;\r\n }\r\n }\r\n if (!accountId && !this.getNativeAccountId(request)) {\r\n this.logger.trace(\"canUseNative: nativeAccountId is not available, returning false\");\r\n return false;\r\n }\r\n return true;\r\n };\r\n /**\r\n * Get the native accountId from the account\r\n * @param request\r\n * @returns\r\n */\r\n ClientApplication.prototype.getNativeAccountId = function (request) {\r\n var account = request.account || this.browserStorage.getAccountInfoByHints(request.loginHint, request.sid) || this.getActiveAccount();\r\n return account && account.nativeAccountId || \"\";\r\n };\r\n /**\r\n * Returns new instance of the Popup Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createPopupClient = function (correlationId) {\r\n return new PopupClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Redirect Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createRedirectClient = function (correlationId) {\r\n return new RedirectClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Iframe Interaction Client\r\n * @param correlationId\r\n */\r\n ClientApplication.prototype.createSilentIframeClient = function (correlationId) {\r\n return new SilentIframeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.ssoSilent, this.performanceClient, this.nativeInternalStorage, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Cache Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentCacheClient = function (correlationId) {\r\n return new SilentCacheClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent Refresh Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentRefreshClient = function (correlationId) {\r\n return new SilentRefreshClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Returns new instance of the Silent AuthCode Interaction Client\r\n */\r\n ClientApplication.prototype.createSilentAuthCodeClient = function (correlationId) {\r\n return new SilentAuthCodeClient(this.config, this.browserStorage, this.browserCrypto, this.logger, this.eventHandler, this.navigationClient, ApiId.acquireTokenByCode, this.performanceClient, this.nativeExtensionProvider, correlationId);\r\n };\r\n /**\r\n * Adds event callbacks to array\r\n * @param callback\r\n */\r\n ClientApplication.prototype.addEventCallback = function (callback) {\r\n return this.eventHandler.addEventCallback(callback);\r\n };\r\n /**\r\n * Removes callback with provided id from callback array\r\n * @param callbackId\r\n */\r\n ClientApplication.prototype.removeEventCallback = function (callbackId) {\r\n this.eventHandler.removeEventCallback(callbackId);\r\n };\r\n /**\r\n * Registers a callback to receive performance events.\r\n *\r\n * @param {PerformanceCallbackFunction} callback\r\n * @returns {string}\r\n */\r\n ClientApplication.prototype.addPerformanceCallback = function (callback) {\r\n return this.performanceClient.addPerformanceCallback(callback);\r\n };\r\n /**\r\n * Removes a callback registered with addPerformanceCallback.\r\n *\r\n * @param {string} callbackId\r\n * @returns {boolean}\r\n */\r\n ClientApplication.prototype.removePerformanceCallback = function (callbackId) {\r\n return this.performanceClient.removePerformanceCallback(callbackId);\r\n };\r\n /**\r\n * Adds event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n ClientApplication.prototype.enableAccountStorageEvents = function () {\r\n this.eventHandler.enableAccountStorageEvents();\r\n };\r\n /**\r\n * Removes event listener that emits an event when a user account is added or removed from localstorage in a different browser tab or window\r\n */\r\n ClientApplication.prototype.disableAccountStorageEvents = function () {\r\n this.eventHandler.disableAccountStorageEvents();\r\n };\r\n /**\r\n * Gets the token cache for the application.\r\n */\r\n ClientApplication.prototype.getTokenCache = function () {\r\n return this.tokenCache;\r\n };\r\n /**\r\n * Returns the logger instance\r\n */\r\n ClientApplication.prototype.getLogger = function () {\r\n return this.logger;\r\n };\r\n /**\r\n * Replaces the default logger set in configurations with new Logger with new configurations\r\n * @param logger Logger instance\r\n */\r\n ClientApplication.prototype.setLogger = function (logger) {\r\n this.logger = logger;\r\n };\r\n /**\r\n * Called by wrapper libraries (Angular & React) to set SKU and Version passed down to telemetry, logger, etc.\r\n * @param sku\r\n * @param version\r\n */\r\n ClientApplication.prototype.initializeWrapperLibrary = function (sku, version) {\r\n // Validate the SKU passed in is one we expect\r\n this.browserStorage.setWrapperMetadata(sku, version);\r\n };\r\n /**\r\n * Sets navigation client\r\n * @param navigationClient\r\n */\r\n ClientApplication.prototype.setNavigationClient = function (navigationClient) {\r\n this.navigationClient = navigationClient;\r\n };\r\n /**\r\n * Returns the configuration object\r\n */\r\n ClientApplication.prototype.getConfiguration = function () {\r\n return this.config;\r\n };\r\n /**\r\n * Generates a correlation id for a request if none is provided.\r\n *\r\n * @protected\r\n * @param {?Partial} [request]\r\n * @returns {string}\r\n */\r\n ClientApplication.prototype.getRequestCorrelationId = function (request) {\r\n if (request === null || request === void 0 ? void 0 : request.correlationId) {\r\n return request.correlationId;\r\n }\r\n if (this.isBrowserEnvironment) {\r\n return this.browserCrypto.createNewGuid();\r\n }\r\n /*\r\n * Included for fallback for non-browser environments,\r\n * and to ensure this method always returns a string.\r\n */\r\n return Constants.EMPTY_STRING;\r\n };\r\n return ClientApplication;\r\n}());\n\nexport { ClientApplication };\n//# sourceMappingURL=ClientApplication.js.map\n","/*! @azure/msal-browser v2.38.4 2024-03-26 */\n'use strict';\nimport { __extends, __awaiter, __generator, __assign } from '../_virtual/_tslib.js';\nimport { PerformanceEvents, Constants, ServerError, InteractionRequiredAuthError, InteractionRequiredAuthErrorMessage } from '@azure/msal-common';\nimport { DEFAULT_REQUEST, InteractionType, CacheLookupPolicy, ApiId, BrowserConstants } from '../utils/BrowserConstants.js';\nimport { ClientApplication } from './ClientApplication.js';\nimport { EventType } from '../event/EventType.js';\nimport { BrowserAuthError } from '../error/BrowserAuthError.js';\nimport { NativeAuthError } from '../error/NativeAuthError.js';\nimport { NativeMessageHandler } from '../broker/nativeBroker/NativeMessageHandler.js';\nimport { BrowserUtils } from '../utils/BrowserUtils.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * The PublicClientApplication class is the object exposed by the library to perform authentication and authorization functions in Single Page Applications\r\n * to obtain JWT tokens as described in the OAuth 2.0 Authorization Code Flow with PKCE specification.\r\n */\r\nvar PublicClientApplication = /** @class */ (function (_super) {\r\n __extends(PublicClientApplication, _super);\r\n /**\r\n * @constructor\r\n * Constructor for the PublicClientApplication used to instantiate the PublicClientApplication object\r\n *\r\n * Important attributes in the Configuration object for auth are:\r\n * - clientID: the application ID of your application. You can obtain one by registering your application with our Application registration portal : https://portal.azure.com/#blade/Microsoft_AAD_IAM/ActiveDirectoryMenuBlade/RegisteredAppsPreview\r\n * - authority: the authority URL for your application.\r\n * - redirect_uri: the uri of your application registered in the portal.\r\n *\r\n * In Azure AD, authority is a URL indicating the Azure active directory that MSAL uses to obtain tokens.\r\n * It is of the form https://login.microsoftonline.com/{Enter_the_Tenant_Info_Here}\r\n * If your application supports Accounts in one organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with the Tenant Id or Tenant name (for example, contoso.microsoft.com).\r\n * If your application supports Accounts in any organizational directory, replace \"Enter_the_Tenant_Info_Here\" value with organizations.\r\n * If your application supports Accounts in any organizational directory and personal Microsoft accounts, replace \"Enter_the_Tenant_Info_Here\" value with common.\r\n * To restrict support to Personal Microsoft accounts only, replace \"Enter_the_Tenant_Info_Here\" value with consumers.\r\n *\r\n * In Azure B2C, authority is of the form https://{instance}/tfp/{tenant}/{policyName}/\r\n * Full B2C functionality will be available in this library in future versions.\r\n *\r\n * @param configuration object for the MSAL PublicClientApplication instance\r\n */\r\n function PublicClientApplication(configuration) {\r\n var _this = _super.call(this, configuration) || this;\r\n _this.astsAsyncMeasurement = undefined;\r\n _this.activeSilentTokenRequests = new Map();\r\n // Register listener functions\r\n _this.trackPageVisibility = _this.trackPageVisibility.bind(_this);\r\n return _this;\r\n }\r\n /**\r\n * Use when initiating the login process by redirecting the user's browser to the authorization endpoint. This function redirects the page, so\r\n * any code that follows this function will not execute.\r\n *\r\n * IMPORTANT: It is NOT recommended to have code that is dependent on the resolution of the Promise. This function will navigate away from the current\r\n * browser window. It currently returns a Promise in order to reflect the asynchronous nature of the code running in this function.\r\n *\r\n * @param request\r\n */\r\n PublicClientApplication.prototype.loginRedirect = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"loginRedirect called\", correlationId);\r\n return [2 /*return*/, this.acquireTokenRedirect(__assign({ correlationId: correlationId }, (request || DEFAULT_REQUEST)))];\r\n });\r\n });\r\n };\r\n /**\r\n * Use when initiating the login process via opening a popup window in the user's browser\r\n *\r\n * @param request\r\n *\r\n * @returns A promise that is fulfilled when this function has completed, or rejected if an error was raised.\r\n */\r\n PublicClientApplication.prototype.loginPopup = function (request) {\r\n var correlationId = this.getRequestCorrelationId(request);\r\n this.logger.verbose(\"loginPopup called\", correlationId);\r\n return this.acquireTokenPopup(__assign({ correlationId: correlationId }, (request || DEFAULT_REQUEST)));\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Returns currently processing promise if parallel requests are made.\r\n *\r\n * @param {@link (SilentRequest:type)}\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse} object\r\n */\r\n PublicClientApplication.prototype.acquireTokenSilent = function (request) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var correlationId, atsMeasurement, account, thumbprint, silentRequestKey, cachedResponse, response;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n correlationId = this.getRequestCorrelationId(request);\r\n atsMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenSilent, correlationId);\r\n atsMeasurement.addStaticFields({\r\n cacheLookupPolicy: request.cacheLookupPolicy\r\n });\r\n this.preflightBrowserEnvironmentCheck(InteractionType.Silent);\r\n this.logger.verbose(\"acquireTokenSilent called\", correlationId);\r\n account = request.account || this.getActiveAccount();\r\n if (!account) {\r\n throw BrowserAuthError.createNoAccountError();\r\n }\r\n thumbprint = {\r\n clientId: this.config.auth.clientId,\r\n authority: request.authority || Constants.EMPTY_STRING,\r\n scopes: request.scopes,\r\n homeAccountIdentifier: account.homeAccountId,\r\n claims: request.claims,\r\n authenticationScheme: request.authenticationScheme,\r\n resourceRequestMethod: request.resourceRequestMethod,\r\n resourceRequestUri: request.resourceRequestUri,\r\n shrClaims: request.shrClaims,\r\n sshKid: request.sshKid\r\n };\r\n silentRequestKey = JSON.stringify(thumbprint);\r\n cachedResponse = this.activeSilentTokenRequests.get(silentRequestKey);\r\n if (typeof cachedResponse === \"undefined\") {\r\n this.logger.verbose(\"acquireTokenSilent called for the first time, storing active request\", correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenSilentAsync, correlationId);\r\n response = this.acquireTokenSilentAsync(__assign(__assign({}, request), { correlationId: correlationId }), account)\r\n .then(function (result) {\r\n _this.activeSilentTokenRequests.delete(silentRequestKey);\r\n atsMeasurement.addStaticFields({\r\n accessTokenSize: result.accessToken.length,\r\n idTokenSize: result.idToken.length\r\n });\r\n atsMeasurement.endMeasurement({\r\n success: true,\r\n fromCache: result.fromCache,\r\n isNativeBroker: result.fromNativeBroker,\r\n cacheLookupPolicy: request.cacheLookupPolicy,\r\n requestId: result.requestId,\r\n });\r\n return result;\r\n })\r\n .catch(function (error) {\r\n _this.activeSilentTokenRequests.delete(silentRequestKey);\r\n atsMeasurement.endMeasurement({\r\n errorCode: error.errorCode,\r\n subErrorCode: error.subError,\r\n success: false\r\n });\r\n throw error;\r\n });\r\n this.activeSilentTokenRequests.set(silentRequestKey, response);\r\n return [2 /*return*/, response];\r\n }\r\n else {\r\n this.logger.verbose(\"acquireTokenSilent has been called previously, returning the result from the first call\", correlationId);\r\n // Discard measurements for memoized calls, as they are usually only a couple of ms and will artificially deflate metrics\r\n atsMeasurement.discardMeasurement();\r\n return [2 /*return*/, cachedResponse];\r\n }\r\n });\r\n });\r\n };\r\n PublicClientApplication.prototype.trackPageVisibility = function () {\r\n if (!this.astsAsyncMeasurement) {\r\n return;\r\n }\r\n this.logger.info(\"Perf: Visibility change detected\");\r\n this.astsAsyncMeasurement.increment({\r\n visibilityChangeCount: 1,\r\n });\r\n };\r\n /**\r\n * Silently acquire an access token for a given set of scopes. Will use cached token if available, otherwise will attempt to acquire a new token from the network via refresh token.\r\n * @param {@link (SilentRequest:type)}\r\n * @param {@link (AccountInfo:type)}\r\n * @returns {Promise.} - a promise that is fulfilled when this function has completed, or rejected if an error was raised. Returns the {@link AuthResponse}\r\n */\r\n PublicClientApplication.prototype.acquireTokenSilentAsync = function (request, account) {\r\n var _a;\r\n return __awaiter(this, void 0, void 0, function () {\r\n var result, silentRequest, silentCacheClient, silentRequest_1, requestWithCLP_1;\r\n var _this = this;\r\n return __generator(this, function (_b) {\r\n switch (_b.label) {\r\n case 0:\r\n this.performanceClient.addQueueMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);\r\n this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_START, InteractionType.Silent, request);\r\n this.astsAsyncMeasurement = this.performanceClient.startMeasurement(PerformanceEvents.AcquireTokenSilentAsync, request.correlationId);\r\n (_a = this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.increment({\r\n visibilityChangeCount: 0\r\n });\r\n document.addEventListener(\"visibilitychange\", this.trackPageVisibility);\r\n if (!(NativeMessageHandler.isNativeAvailable(this.config, this.logger, this.nativeExtensionProvider, request.authenticationScheme) && account.nativeAccountId)) return [3 /*break*/, 1];\r\n this.logger.verbose(\"acquireTokenSilent - attempting to acquire token from native platform\");\r\n silentRequest = __assign(__assign({}, request), { account: account });\r\n result = this.acquireTokenNative(silentRequest, ApiId.acquireTokenSilent_silentFlow).catch(function (e) { return __awaiter(_this, void 0, void 0, function () {\r\n var silentIframeClient;\r\n return __generator(this, function (_a) {\r\n // If native token acquisition fails for availability reasons fallback to web flow\r\n if (e instanceof NativeAuthError && e.isFatal()) {\r\n this.logger.verbose(\"acquireTokenSilent - native platform unavailable, falling back to web flow\");\r\n this.nativeExtensionProvider = undefined; // Prevent future requests from continuing to attempt\r\n silentIframeClient = this.createSilentIframeClient(request.correlationId);\r\n return [2 /*return*/, silentIframeClient.acquireToken(request)];\r\n }\r\n throw e;\r\n });\r\n }); });\r\n return [3 /*break*/, 3];\r\n case 1:\r\n this.logger.verbose(\"acquireTokenSilent - attempting to acquire token from web flow\");\r\n silentCacheClient = this.createSilentCacheClient(request.correlationId);\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.InitializeSilentRequest, request.correlationId);\r\n return [4 /*yield*/, silentCacheClient.initializeSilentRequest(request, account)];\r\n case 2:\r\n silentRequest_1 = _b.sent();\r\n requestWithCLP_1 = __assign(__assign({}, request), { \r\n // set the request's CacheLookupPolicy to Default if it was not optionally passed in\r\n cacheLookupPolicy: request.cacheLookupPolicy || CacheLookupPolicy.Default });\r\n this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenFromCache, silentRequest_1.correlationId);\r\n result = this.acquireTokenFromCache(silentCacheClient, silentRequest_1, requestWithCLP_1).catch(function (cacheError) {\r\n if (requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.AccessToken) {\r\n throw cacheError;\r\n }\r\n // block the reload if it occurred inside a hidden iframe\r\n BrowserUtils.blockReloadInHiddenIframes();\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_NETWORK_START, InteractionType.Silent, silentRequest_1);\r\n _this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenByRefreshToken, silentRequest_1.correlationId);\r\n return _this.acquireTokenByRefreshToken(silentRequest_1, requestWithCLP_1).catch(function (refreshTokenError) {\r\n var isServerError = refreshTokenError instanceof ServerError;\r\n var isInteractionRequiredError = refreshTokenError instanceof InteractionRequiredAuthError;\r\n var rtNotFound = (refreshTokenError.errorCode === InteractionRequiredAuthErrorMessage.noTokensFoundError.code);\r\n var isInvalidGrantError = (refreshTokenError.errorCode === BrowserConstants.INVALID_GRANT_ERROR);\r\n if ((!isServerError ||\r\n !isInvalidGrantError ||\r\n isInteractionRequiredError ||\r\n requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.AccessTokenAndRefreshToken ||\r\n requestWithCLP_1.cacheLookupPolicy === CacheLookupPolicy.RefreshToken)\r\n && (requestWithCLP_1.cacheLookupPolicy !== CacheLookupPolicy.Skip)\r\n && !rtNotFound) {\r\n throw refreshTokenError;\r\n }\r\n _this.logger.verbose(\"Refresh token expired/invalid or CacheLookupPolicy is set to Skip, attempting acquire token by iframe.\", request.correlationId);\r\n _this.performanceClient.setPreQueueTime(PerformanceEvents.AcquireTokenBySilentIframe, silentRequest_1.correlationId);\r\n return _this.acquireTokenBySilentIframe(silentRequest_1);\r\n });\r\n });\r\n _b.label = 3;\r\n case 3: return [2 /*return*/, result.then(function (response) {\r\n var _a;\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_SUCCESS, InteractionType.Silent, response);\r\n (_a = _this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n success: true,\r\n fromCache: response.fromCache,\r\n isNativeBroker: response.fromNativeBroker,\r\n requestId: response.requestId\r\n });\r\n return response;\r\n }).catch(function (tokenRenewalError) {\r\n var _a;\r\n _this.eventHandler.emitEvent(EventType.ACQUIRE_TOKEN_FAILURE, InteractionType.Silent, null, tokenRenewalError);\r\n (_a = _this.astsAsyncMeasurement) === null || _a === void 0 ? void 0 : _a.endMeasurement({\r\n errorCode: tokenRenewalError.errorCode,\r\n subErrorCode: tokenRenewalError.subError,\r\n success: false\r\n });\r\n throw tokenRenewalError;\r\n }).finally(function () {\r\n document.removeEventListener(\"visibilitychange\", _this.trackPageVisibility);\r\n })];\r\n }\r\n });\r\n });\r\n };\r\n return PublicClientApplication;\r\n}(ClientApplication));\n\nexport { PublicClientApplication };\n//# sourceMappingURL=PublicClientApplication.js.map\n","// AzureAuthenticator\n// Provides functionality for azure authentication\n\n// Constants ----\nconst JWT_TOKEN_KEY = 'access_token';\nconst AUTHENTICATOR_KEY = 'Authenticator';\nconst NAVIGATING_TO_KEY = 'navigatingTo'\nconst I_TOKEN = 'i-token';\n\n// Imports ----\nimport Authenticator from '../../base/classes/Authenticator';\nimport * as msal from '@azure/msal-browser';\nimport VueCookies from 'vue-cookies';\nimport useGlobalEvents from '../../base/services/global-events';\nconst { emitGlobal } = useGlobalEvents();\n\nexport default class AzureAuthenticator extends Authenticator {\n\n // Constructor\n constructor(site, name, msalConfig, router, manualRedirect) {\n super(site);\n\n this.site = site;\n this.name = name;\n this.msalConfig = msalConfig;\n this.msalInstance = new msal.PublicClientApplication(this.msalConfig);\n this.router = router;\n\n this.setupMsalTracing();\n this.configureMsal(manualRedirect);\n }\n\n configureMsal(manualRedirect) {\n if (manualRedirect != true)\n this.signIn();\n }\n\n signIn() {\n this.msalInstance.handleRedirectPromise()\n .then((tokenResponse) => {\n if (tokenResponse) {\n this.#setAccount(tokenResponse.account);\n } else {\n const loginRequest = {\n scopes: this.msalConfig.apiConfig.scopes,\n redirectUri: this.msalConfig.auth.redirectUri,\n };\n\n return this.msalInstance.loginRedirect(loginRequest);\n }\n })\n .then(() => {\n this.#getAccessToken().then((tokenResponse) => {\n this.#storeToken(tokenResponse);\n this.#storeAuthenticator(this.name);\n VueCookies.set('current_activity', 'timer')\n this.site.user.isAuthenticated = true;\n this.site.refreshCurrentUser(true).then(() => {\n emitGlobal(this.site.EventIDs.AUTH_SIGNED_IN);\n\n //For Azure AD, read the navigatingTo from localStorage\n this.site.navigatingTo = this.getNavigatingTo();\n // If navigatingTo is set, redirect there.\n if (this.site.navigatingTo !== null) {\n this.router.push(this.site.navigatingTo.fullPath);\n this.site.navigatingTo = null;\n this.removeNavigatingTo();\n }\n else\n this.router.push({ name: 'Home' });\n\n }).catch(error => {\n this.trace(error);\n this.#removeToken();\n this.#removeAuthenticator();\n // TODO: redirect user to dedicated fallback frontend component \n this.router.push({ name: 'SignIn' });\n });\n });\n })\n .catch(error => {\n this.trace(error);\n this.router.push({ name: 'SignIn' })\n });\n }\n\n // *** BEGIN Private Functions *******************\n\n // Sets the account\n #setAccount(toAccount) {\n this.msalInstance.setActiveAccount(toAccount);\n }\n\n // Gets an API access token for the active account.\n\n async #getAccessToken() {\n const request = {\n scopes: this.msalConfig.apiConfig.scopes,\n forceRefresh: false\n };\n\n try {\n this.trace('Getting access token silently');\n\n const response = await this.msalInstance.acquireTokenSilent(request);\n\n if (!response.accessToken || response.accessToken === \"\") {\n throw new msal.InteractionRequiredAuthError;\n } else {\n this.trace(\"Access token acquired at: \" + new Date().toString());\n this.trace(\"token value is: \" + response.accessToken);\n return response.accessToken;\n }\n }\n catch (error) {\n this.trace(\"Silent token acquisition failed. Acquiring token using popup.\", error);\n if (error instanceof msal.InteractionRequiredAuthError) {\n return this.msalInstance.acquireTokenRedirect(request);\n }\n throw error;\n }\n }\n\n // //*\n // // * Called to determine whether the user is currently logged in.\n // // * \n \n async isSignedIn() {\n const token = this.getAccessTokenFromLocalStorage();\n if (token) {\n const parsed = this.parseToken(token);\n if (parsed.exp > Date.now() / 1000)\n return true;\n }\n return false;\n }\n\n // Gets an API JWT access token for the active account.\n getAccessTokenFromLocalStorage() {\n const token = localStorage.getItem(JWT_TOKEN_KEY) || false;\n\n if (token) {\n this.trace(`Access token retrieved from localStorage - ${token.substring(0, 8)}...`);\n }\n\n return token;\n }\n\n // Decode the provided token.\n parseToken(token) {\n if (token.indexOf('.')) {\n const payload = token.split('.')[1];\n\n // TODO: atob() is deprecated\n return JSON.parse(atob(payload));\n }\n return false;\n }\n\n /**\n * Called for authenticated API calls to apply the appropriate header(s).\n //*/\n async getApiHeaders() {\n\n const headers = {};\n const impersonatedUserToken = sessionStorage.getItem(I_TOKEN);\n if (impersonatedUserToken) {\n headers[I_TOKEN] = impersonatedUserToken;\n }\n\n // Get access token from localStorage\n const token = this.getAccessTokenFromLocalStorage();\n\n // If User is authenticated, add header with access token\n if (this.site.user.isAuthenticated && token != false) {\n headers['Authorization'] = `Bearer ${token}`;\n headers['Authenticator'] = localStorage.getItem(\"Authenticator\");\n\n return headers;\n }\n else\n return null;\n }\n\n async getSignInRoute(/* route */) {\n return { name: 'ADSignIn' };\n }\n\n /**\n * Called to allow the authenticator to redirect to sign out.\n */\n async getSignOutRoute() {\n return { name: 'SignIn', query: { signout: 'true' } };\n }\n\n async signOut() {\n this.trace(\"Logout, removing token from localStorage\");\n this.#removeToken();\n this.#removeAuthenticator();\n }\n\n // Adds the provided token to localStorage.\n #storeToken(token) {\n localStorage.setItem(JWT_TOKEN_KEY, token);\n }\n\n // Adds authenticator token to localStorage.\n #storeAuthenticator(authenticatorName) {\n localStorage.setItem(AUTHENTICATOR_KEY, authenticatorName);\n }\n\n // Adds navigatingTo path to localStorage\n storeNavigatingTo(path) {\n if (path != null && path != 'undefined')\n localStorage.setItem(NAVIGATING_TO_KEY, JSON.stringify(path));\n }\n getNavigatingTo() {\n var navigatingTo = JSON.parse(localStorage.getItem(NAVIGATING_TO_KEY));\n this.removeNavigatingTo();\n return navigatingTo;\n }\n removeNavigatingTo() {\n localStorage.removeItem(NAVIGATING_TO_KEY);\n }\n\n // Removes the JWT stored in localStorage.\n #removeToken() {\n localStorage.removeItem(JWT_TOKEN_KEY);\n }\n\n // Removes authenticator stored in localStorage.\n #removeAuthenticator() {\n localStorage.removeItem(AUTHENTICATOR_KEY);\n }\n\n /**\n * delete impersonate session storage.\n */\n deleteImpersonateSession() {\n sessionStorage.removeItem(I_TOKEN);\n }\n\n // Traces a message, if enabled\n trace(message, ...args) {\n if (this.doTrace())\n console.log('[AAD] ' + message, ...args);\n }\n\n // Returns whether tracing is enabled\n doTrace() {\n return (process.env.VUE_APP_TRACE_AAD === 'true');\n }\n\n // If enabled, sets up MSAL-specific tracing\n setupMsalTracing() {\n if (this.doTrace()) {\n this.msalConfig.system.loggerOptions = {\n loggerCallback: (level, message, containsPii) => {\n if (containsPii) {\n return;\n }\n switch (level) {\n case msal.LogLevel.Error:\n console.error(message);\n return;\n case msal.LogLevel.Info:\n console.info(message);\n return;\n case msal.LogLevel.Verbose:\n console.debug(message);\n return;\n case msal.LogLevel.Warning:\n console.warn(message);\n return;\n }\n }\n };\n }\n }\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nvar IdxStatus;\n(function (IdxStatus) {\n IdxStatus[\"SUCCESS\"] = \"SUCCESS\";\n IdxStatus[\"PENDING\"] = \"PENDING\";\n IdxStatus[\"FAILURE\"] = \"FAILURE\";\n IdxStatus[\"TERMINAL\"] = \"TERMINAL\";\n IdxStatus[\"CANCELED\"] = \"CANCELED\";\n})(IdxStatus || (IdxStatus = {}));\nvar AuthenticatorKey;\n(function (AuthenticatorKey) {\n AuthenticatorKey[\"OKTA_PASSWORD\"] = \"okta_password\";\n AuthenticatorKey[\"OKTA_EMAIL\"] = \"okta_email\";\n AuthenticatorKey[\"PHONE_NUMBER\"] = \"phone_number\";\n AuthenticatorKey[\"GOOGLE_AUTHENTICATOR\"] = \"google_otp\";\n AuthenticatorKey[\"SECURITY_QUESTION\"] = \"security_question\";\n AuthenticatorKey[\"OKTA_VERIFY\"] = \"okta_verify\";\n AuthenticatorKey[\"WEBAUTHN\"] = \"webauthn\";\n})(AuthenticatorKey || (AuthenticatorKey = {}));\nvar IdxFeature;\n(function (IdxFeature) {\n IdxFeature[\"PASSWORD_RECOVERY\"] = \"recover-password\";\n IdxFeature[\"REGISTRATION\"] = \"enroll-profile\";\n IdxFeature[\"SOCIAL_IDP\"] = \"redirect-idp\";\n IdxFeature[\"ACCOUNT_UNLOCK\"] = \"unlock-account\";\n})(IdxFeature || (IdxFeature = {}));\nfunction isAuthenticator(obj) {\n return obj && (obj.key || obj.id);\n}\n\nexport { AuthenticatorKey, IdxFeature, IdxStatus, isAuthenticator };\n//# sourceMappingURL=api.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction getNativeConsole() {\n if (typeof window !== 'undefined') {\n return window.console;\n }\n else if (typeof console !== 'undefined') {\n return console;\n }\n else {\n return undefined;\n }\n}\nfunction getConsole() {\n var nativeConsole = getNativeConsole();\n if (nativeConsole && nativeConsole.log) {\n return nativeConsole;\n }\n return {\n log: function () { },\n warn: function () { },\n group: function () { },\n groupEnd: function () { }\n };\n}\nfunction warn(text) {\n getConsole().warn('[okta-auth-sdk] WARN: ' + text);\n}\nfunction deprecate(text) {\n getConsole().warn('[okta-auth-sdk] DEPRECATION: ' + text);\n}\nfunction deprecateWrap(text, fn) {\n return function () {\n deprecate(text);\n return fn.apply(null, arguments);\n };\n}\n\nexport { deprecate, deprecateWrap, getConsole, getNativeConsole, warn };\n//# sourceMappingURL=console.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction bind(fn, ctx) {\n var additionalArgs = Array.prototype.slice.call(arguments, 2);\n return function () {\n var args = Array.prototype.slice.call(arguments);\n args = additionalArgs.concat(args);\n return fn.apply(ctx, args);\n };\n}\nfunction extend() {\n var obj1 = arguments[0];\n var objArray = [].slice.call(arguments, 1);\n objArray.forEach(function (obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop) && obj[prop] !== undefined) {\n obj1[prop] = obj[prop];\n }\n }\n });\n return obj1;\n}\nfunction removeNils(obj) {\n var cleaned = {};\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n var value = obj[prop];\n if (value !== null && value !== undefined) {\n cleaned[prop] = value;\n }\n }\n }\n return cleaned;\n}\nfunction clone(obj) {\n if (obj) {\n var str = JSON.stringify(obj);\n if (str) {\n return JSON.parse(str);\n }\n }\n return obj;\n}\nfunction omit(obj, ...props) {\n var newobj = {};\n for (var p in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, p) && props.indexOf(p) == -1) {\n newobj[p] = obj[p];\n }\n }\n return clone(newobj);\n}\nfunction find(collection, searchParams) {\n var c = collection.length;\n while (c--) {\n var item = collection[c];\n var found = true;\n for (var prop in searchParams) {\n if (!Object.prototype.hasOwnProperty.call(searchParams, prop)) {\n continue;\n }\n if (item[prop] !== searchParams[prop]) {\n found = false;\n break;\n }\n }\n if (found) {\n return item;\n }\n }\n}\nfunction getLink(obj, linkName, altName) {\n if (!obj || !obj._links) {\n return;\n }\n var link = clone(obj._links[linkName]);\n if (link && link.name && altName) {\n if (link.name === altName) {\n return link;\n }\n }\n else {\n return link;\n }\n}\n\nexport { bind, clone, extend, find, getLink, omit, removeNils };\n//# sourceMappingURL=object.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nclass CustomError extends Error {\n constructor(message) {\n super(message);\n Object.setPrototypeOf(this, new.target.prototype);\n }\n}\n\nexport { CustomError as default };\n//# sourceMappingURL=CustomError.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction isString(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n}\nfunction isObject(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n}\nfunction isNumber(obj) {\n return Object.prototype.toString.call(obj) === '[object Number]';\n}\nfunction isFunction(fn) {\n return !!fn && {}.toString.call(fn) === '[object Function]';\n}\nfunction isPromise(obj) {\n return obj && obj.finally && (typeof obj.finally === 'function');\n}\n\nexport { isFunction, isNumber, isObject, isPromise, isString };\n//# sourceMappingURL=types.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport CustomError from './CustomError.js';\nimport { isFunction } from '../util/types.js';\n\nclass WWWAuthError extends CustomError {\n constructor(scheme, parameters, resp) {\n var _a;\n super((_a = parameters.error) !== null && _a !== void 0 ? _a : WWWAuthError.UNKNOWN_ERROR);\n this.name = 'WWWAuthError';\n this.resp = null;\n this.scheme = scheme;\n this.parameters = parameters;\n if (resp) {\n this.resp = resp;\n }\n }\n get error() { return this.parameters.error; }\n get errorCode() { return this.error; }\n get error_description() { return this.parameters.error_description; }\n get errorDescription() { return this.error_description; }\n get errorSummary() { return this.errorDescription; }\n get realm() { return this.parameters.realm; }\n static parseHeader(header) {\n var _a;\n if (!header) {\n return null;\n }\n const regex = /(?:,|, )?([a-zA-Z0-9!#$%&'*+\\-.^_`|~]+)=(?:\"([a-zA-Z0-9!#$%&'*+\\-.,^_`|~ /:]+)\"|([a-zA-Z0-9!#$%&'*+\\-.^_`|~/:]+))/g;\n const firstSpace = header.indexOf(' ');\n const scheme = header.slice(0, firstSpace);\n const remaining = header.slice(firstSpace + 1);\n const params = {};\n let match;\n while ((match = regex.exec(remaining)) !== null) {\n params[match[1]] = ((_a = match[2]) !== null && _a !== void 0 ? _a : match[3]);\n }\n return new WWWAuthError(scheme, params);\n }\n static getWWWAuthenticateHeader(headers = {}) {\n var _a;\n if (isFunction(headers === null || headers === void 0 ? void 0 : headers.get)) {\n return headers.get('WWW-Authenticate');\n }\n return (_a = headers['www-authenticate']) !== null && _a !== void 0 ? _a : headers['WWW-Authenticate'];\n }\n}\nWWWAuthError.UNKNOWN_ERROR = 'UNKNOWN_WWW_AUTH_ERROR';\n\nexport { WWWAuthError as default };\n//# sourceMappingURL=WWWAuthError.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction isoToUTCString(str) {\n var parts = str.match(/\\d+/g), isoTime = Date.UTC(parts[0], parts[1] - 1, parts[2], parts[3], parts[4], parts[5]), isoDate = new Date(isoTime);\n return isoDate.toUTCString();\n}\nfunction genRandomString(length) {\n var randomCharset = 'abcdefghijklnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';\n var random = '';\n for (var c = 0, cl = randomCharset.length; c < length; ++c) {\n random += randomCharset[Math.floor(Math.random() * cl)];\n }\n return random;\n}\nfunction delay(ms) {\n return new Promise(function (resolve) {\n setTimeout(resolve, ms);\n });\n}\nfunction split2(str, delim) {\n const parts = str.split(delim);\n return [\n parts[0],\n parts.splice(1, parts.length).join(delim),\n ];\n}\n\nexport { delay, genRandomString, isoToUTCString, split2 };\n//# sourceMappingURL=misc.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction isAbsoluteUrl(url) {\n return /^[a-z][a-z0-9+.-]*:/i.test(url);\n}\nfunction toAbsoluteUrl(url = '', baseUrl) {\n if (isAbsoluteUrl(url)) {\n return url;\n }\n baseUrl = removeTrailingSlash(baseUrl);\n return url[0] === '/' ? `${baseUrl}${url}` : `${baseUrl}/${url}`;\n}\nfunction toRelativeUrl(url = '', baseUrl) {\n if (isAbsoluteUrl(url)) {\n url = url.substring(baseUrl.length);\n }\n return url[0] === '/' ? url : `/${url}`;\n}\nfunction toQueryString(obj) {\n var str = [];\n if (obj !== null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key) &&\n obj[key] !== undefined &&\n obj[key] !== null) {\n str.push(key + '=' + encodeURIComponent(obj[key]));\n }\n }\n }\n if (str.length) {\n return '?' + str.join('&');\n }\n else {\n return '';\n }\n}\nfunction removeTrailingSlash(path) {\n if (!path) {\n return;\n }\n var trimmed = path.replace(/^\\s+|\\s+$/gm, '');\n trimmed = trimmed.replace(/\\/+$/, '');\n return trimmed;\n}\n\nexport { isAbsoluteUrl, removeTrailingSlash, toAbsoluteUrl, toQueryString, toRelativeUrl };\n//# sourceMappingURL=url.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport CustomError from './CustomError.js';\n\nclass AuthSdkError extends CustomError {\n constructor(msg, xhr) {\n super(msg);\n this.name = 'AuthSdkError';\n this.errorCode = 'INTERNAL';\n this.errorSummary = msg;\n this.errorLink = 'INTERNAL';\n this.errorId = 'INTERNAL';\n this.errorCauses = [];\n if (xhr) {\n this.xhr = xhr;\n }\n }\n}\n\nexport { AuthSdkError as default };\n//# sourceMappingURL=AuthSdkError.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { genRandomString } from '../../util/misc.js';\nimport { removeTrailingSlash } from '../../util/url.js';\nimport AuthSdkError from '../../errors/AuthSdkError.js';\n\nfunction generateState() {\n return genRandomString(64);\n}\nfunction generateNonce() {\n return genRandomString(64);\n}\nfunction getIssuer(sdk, options = {}) {\n const issuer = removeTrailingSlash(options.issuer) || sdk.options.issuer;\n return issuer;\n}\nfunction getOAuthBaseUrl(sdk, options = {}) {\n const issuer = getIssuer(sdk, options);\n const baseUrl = issuer.indexOf('/oauth2') > 0 ? issuer : issuer + '/oauth2';\n return baseUrl;\n}\nfunction getOAuthDomain(sdk, options = {}) {\n const issuer = getIssuer(sdk, options);\n const domain = issuer.split('/oauth2')[0];\n return domain;\n}\nfunction getOAuthUrls(sdk, options) {\n if (arguments.length > 2) {\n throw new AuthSdkError('As of version 3.0, \"getOAuthUrls\" takes only a single set of options');\n }\n options = options || {};\n var authorizeUrl = removeTrailingSlash(options.authorizeUrl) || sdk.options.authorizeUrl;\n var issuer = getIssuer(sdk, options);\n var userinfoUrl = removeTrailingSlash(options.userinfoUrl) || sdk.options.userinfoUrl;\n var tokenUrl = removeTrailingSlash(options.tokenUrl) || sdk.options.tokenUrl;\n var logoutUrl = removeTrailingSlash(options.logoutUrl) || sdk.options.logoutUrl;\n var revokeUrl = removeTrailingSlash(options.revokeUrl) || sdk.options.revokeUrl;\n var baseUrl = getOAuthBaseUrl(sdk, options);\n authorizeUrl = authorizeUrl || baseUrl + '/v1/authorize';\n userinfoUrl = userinfoUrl || baseUrl + '/v1/userinfo';\n tokenUrl = tokenUrl || baseUrl + '/v1/token';\n revokeUrl = revokeUrl || baseUrl + '/v1/revoke';\n logoutUrl = logoutUrl || baseUrl + '/v1/logout';\n return {\n issuer: issuer,\n authorizeUrl: authorizeUrl,\n userinfoUrl: userinfoUrl,\n tokenUrl: tokenUrl,\n revokeUrl: revokeUrl,\n logoutUrl: logoutUrl\n };\n}\n\nexport { generateNonce, generateState, getOAuthBaseUrl, getOAuthDomain, getOAuthUrls };\n//# sourceMappingURL=oauth.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { getOAuthUrls } from './oauth.js';\n\nfunction createOAuthMeta(sdk, tokenParams) {\n const issuer = sdk.options.issuer;\n const urls = getOAuthUrls(sdk, tokenParams);\n const oauthMeta = {\n issuer,\n urls,\n clientId: tokenParams.clientId,\n redirectUri: tokenParams.redirectUri,\n responseType: tokenParams.responseType,\n responseMode: tokenParams.responseMode,\n scopes: tokenParams.scopes,\n state: tokenParams.state,\n nonce: tokenParams.nonce,\n ignoreSignature: tokenParams.ignoreSignature,\n acrValues: tokenParams.acrValues,\n extraParams: tokenParams.extraParams\n };\n if (tokenParams.pkce === false) {\n return oauthMeta;\n }\n const pkceMeta = Object.assign(Object.assign({}, oauthMeta), { codeVerifier: tokenParams.codeVerifier, codeChallengeMethod: tokenParams.codeChallengeMethod, codeChallenge: tokenParams.codeChallenge });\n return pkceMeta;\n}\n\nexport { createOAuthMeta };\n//# sourceMappingURL=oauthMeta.js.map\n","/*! js-cookie v3.0.5 | MIT */\n/* eslint-disable no-var */\nfunction assign (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n target[key] = source[key];\n }\n }\n return target\n}\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\nvar defaultConverter = {\n read: function (value) {\n if (value[0] === '\"') {\n value = value.slice(1, -1);\n }\n return value.replace(/(%[\\dA-F]{2})+/gi, decodeURIComponent)\n },\n write: function (value) {\n return encodeURIComponent(value).replace(\n /%(2[346BF]|3[AC-F]|40|5[BDE]|60|7[BCD])/g,\n decodeURIComponent\n )\n }\n};\n/* eslint-enable no-var */\n\n/* eslint-disable no-var */\n\nfunction init (converter, defaultAttributes) {\n function set (name, value, attributes) {\n if (typeof document === 'undefined') {\n return\n }\n\n attributes = assign({}, defaultAttributes, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(Date.now() + attributes.expires * 864e5);\n }\n if (attributes.expires) {\n attributes.expires = attributes.expires.toUTCString();\n }\n\n name = encodeURIComponent(name)\n .replace(/%(2[346B]|5E|60|7C)/g, decodeURIComponent)\n .replace(/[()]/g, escape);\n\n var stringifiedAttributes = '';\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue\n }\n\n // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return (document.cookie =\n name + '=' + converter.write(value, name) + stringifiedAttributes)\n }\n\n function get (name) {\n if (typeof document === 'undefined' || (arguments.length && !name)) {\n return\n }\n\n // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var jar = {};\n for (var i = 0; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var value = parts.slice(1).join('=');\n\n try {\n var found = decodeURIComponent(parts[0]);\n jar[found] = converter.read(value, found);\n\n if (name === found) {\n break\n }\n } catch (e) {}\n }\n\n return name ? jar[name] : jar\n }\n\n return Object.create(\n {\n set,\n get,\n remove: function (name, attributes) {\n set(\n name,\n '',\n assign({}, attributes, {\n expires: -1\n })\n );\n },\n withAttributes: function (attributes) {\n return init(this.converter, assign({}, this.attributes, attributes))\n },\n withConverter: function (converter) {\n return init(assign({}, this.converter, converter), this.attributes)\n }\n },\n {\n attributes: { value: Object.freeze(defaultAttributes) },\n converter: { value: Object.freeze(converter) }\n }\n )\n}\n\nvar api = init(defaultConverter, { path: '/' });\n/* eslint-enable no-var */\n\nexport { api as default };\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nvar TokenKind;\n(function (TokenKind) {\n TokenKind[\"ACCESS\"] = \"accessToken\";\n TokenKind[\"ID\"] = \"idToken\";\n TokenKind[\"REFRESH\"] = \"refreshToken\";\n})(TokenKind || (TokenKind = {}));\nfunction isToken(obj) {\n if (obj &&\n (obj.accessToken || obj.idToken || obj.refreshToken) &&\n Array.isArray(obj.scopes)) {\n return true;\n }\n return false;\n}\nfunction isAccessToken(obj) {\n return obj && obj.accessToken;\n}\nfunction isIDToken(obj) {\n return obj && obj.idToken;\n}\nfunction isRefreshToken(obj) {\n return obj && obj.refreshToken;\n}\n\nexport { TokenKind, isAccessToken, isIDToken, isRefreshToken, isToken };\n//# sourceMappingURL=Token.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { warn } from '../util/console.js';\nimport { removeNils } from '../util/object.js';\nimport '../errors/WWWAuthError.js';\nimport { createOAuthMeta } from '../oidc/util/oauthMeta.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport '../oidc/types/Token.js';\n\nasync function createTransactionMeta(authClient, options = {}) {\n const tokenParams = await authClient.token.prepareTokenParams(options);\n const pkceMeta = createOAuthMeta(authClient, tokenParams);\n let { flow = 'default', withCredentials = true, activationToken = undefined, recoveryToken = undefined, maxAge = undefined, acrValues = undefined, } = Object.assign(Object.assign({}, authClient.options), options);\n const meta = Object.assign(Object.assign({}, pkceMeta), { flow,\n withCredentials,\n activationToken,\n recoveryToken,\n maxAge,\n acrValues });\n return meta;\n}\nfunction hasSavedInteractionHandle(authClient, options) {\n const savedMeta = getSavedTransactionMeta(authClient, options);\n if (savedMeta === null || savedMeta === void 0 ? void 0 : savedMeta.interactionHandle) {\n return true;\n }\n return false;\n}\nfunction getSavedTransactionMeta(authClient, options) {\n options = removeNils(options);\n options = Object.assign(Object.assign({}, authClient.options), options);\n let savedMeta;\n try {\n savedMeta = authClient.transactionManager.load(options);\n }\n catch (e) {\n }\n if (!savedMeta) {\n return;\n }\n if (isTransactionMetaValid(savedMeta, options)) {\n return savedMeta;\n }\n warn('Saved transaction meta does not match the current configuration. ' +\n 'This may indicate that two apps are sharing a storage key.');\n}\nasync function getTransactionMeta(authClient, options) {\n options = removeNils(options);\n options = Object.assign(Object.assign({}, authClient.options), options);\n const validExistingMeta = getSavedTransactionMeta(authClient, options);\n if (validExistingMeta) {\n return validExistingMeta;\n }\n return createTransactionMeta(authClient, options);\n}\nfunction saveTransactionMeta(authClient, meta) {\n authClient.transactionManager.save(meta, { muteWarning: true });\n}\nfunction clearTransactionMeta(authClient) {\n authClient.transactionManager.clear();\n}\nfunction isTransactionMetaValid(meta, options = {}) {\n const keys = [\n 'issuer',\n 'clientId',\n 'redirectUri',\n 'state',\n 'codeChallenge',\n 'codeChallengeMethod',\n 'activationToken',\n 'recoveryToken'\n ];\n if (isTransactionMetaValidForOptions(meta, options, keys) === false) {\n return false;\n }\n const { flow } = options;\n if (isTransactionMetaValidForFlow(meta, flow) === false) {\n return false;\n }\n return true;\n}\nfunction isTransactionMetaValidForFlow(meta, flow) {\n const shouldValidateFlow = flow && flow !== 'default' && flow !== 'proceed';\n if (shouldValidateFlow) {\n if (flow !== meta.flow) {\n return false;\n }\n }\n return true;\n}\nfunction isTransactionMetaValidForOptions(meta, options, keys) {\n const mismatch = keys.some(key => {\n const value = options[key];\n if (value && value !== meta[key]) {\n return true;\n }\n });\n return !mismatch;\n}\n\nexport { clearTransactionMeta, createTransactionMeta, getSavedTransactionMeta, getTransactionMeta, hasSavedInteractionHandle, isTransactionMetaValid, isTransactionMetaValidForFlow, isTransactionMetaValidForOptions, saveTransactionMeta };\n//# sourceMappingURL=transactionMeta.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nconst STATE_TOKEN_KEY_NAME = 'oktaStateToken';\nconst DEFAULT_POLLING_DELAY = 500;\nconst DEFAULT_MAX_CLOCK_SKEW = 300;\nconst DEFAULT_CACHE_DURATION = 86400;\nconst TOKEN_STORAGE_NAME = 'okta-token-storage';\nconst CACHE_STORAGE_NAME = 'okta-cache-storage';\nconst PKCE_STORAGE_NAME = 'okta-pkce-storage';\nconst TRANSACTION_STORAGE_NAME = 'okta-transaction-storage';\nconst SHARED_TRANSACTION_STORAGE_NAME = 'okta-shared-transaction-storage';\nconst ORIGINAL_URI_STORAGE_NAME = 'okta-original-uri-storage';\nconst IDX_RESPONSE_STORAGE_NAME = 'okta-idx-response-storage';\nconst ACCESS_TOKEN_STORAGE_KEY = 'accessToken';\nconst ID_TOKEN_STORAGE_KEY = 'idToken';\nconst REFRESH_TOKEN_STORAGE_KEY = 'refreshToken';\nconst REFERRER_PATH_STORAGE_KEY = 'referrerPath';\nconst MIN_VERIFIER_LENGTH = 43;\nconst MAX_VERIFIER_LENGTH = 128;\nconst DEFAULT_CODE_CHALLENGE_METHOD = 'S256';\nconst IDX_API_VERSION = '1.0.0';\n\nexport { ACCESS_TOKEN_STORAGE_KEY, CACHE_STORAGE_NAME, DEFAULT_CACHE_DURATION, DEFAULT_CODE_CHALLENGE_METHOD, DEFAULT_MAX_CLOCK_SKEW, DEFAULT_POLLING_DELAY, IDX_API_VERSION, IDX_RESPONSE_STORAGE_NAME, ID_TOKEN_STORAGE_KEY, MAX_VERIFIER_LENGTH, MIN_VERIFIER_LENGTH, ORIGINAL_URI_STORAGE_NAME, PKCE_STORAGE_NAME, REFERRER_PATH_STORAGE_KEY, REFRESH_TOKEN_STORAGE_KEY, SHARED_TRANSACTION_STORAGE_NAME, STATE_TOKEN_KEY_NAME, TOKEN_STORAGE_NAME, TRANSACTION_STORAGE_NAME };\n//# sourceMappingURL=constants.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport CustomError from './CustomError.js';\n\nclass AuthApiError extends CustomError {\n constructor(err, xhr, meta) {\n const message = err.errorSummary;\n super(message);\n this.name = 'AuthApiError';\n this.errorSummary = err.errorSummary;\n this.errorCode = err.errorCode;\n this.errorLink = err.errorLink;\n this.errorId = err.errorId;\n this.errorCauses = err.errorCauses;\n if (xhr) {\n this.xhr = xhr;\n }\n if (meta) {\n this.meta = meta;\n }\n }\n}\n\nexport { AuthApiError as default };\n//# sourceMappingURL=AuthApiError.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport CustomError from './CustomError.js';\n\nclass OAuthError extends CustomError {\n constructor(errorCode, summary, resp) {\n super(summary);\n this.resp = null;\n this.name = 'OAuthError';\n this.errorCode = errorCode;\n this.errorSummary = summary;\n this.error = errorCode;\n this.error_description = summary;\n if (resp) {\n this.resp = resp;\n }\n }\n}\n\nexport { OAuthError as default };\n//# sourceMappingURL=OAuthError.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { removeNils, clone } from '../util/object.js';\nimport { isString } from '../util/types.js';\nimport { isAbsoluteUrl } from '../util/url.js';\nimport { STATE_TOKEN_KEY_NAME, DEFAULT_CACHE_DURATION } from '../constants.js';\nimport AuthApiError from '../errors/AuthApiError.js';\nimport OAuthError from '../errors/OAuthError.js';\nimport WWWAuthError from '../errors/WWWAuthError.js';\n\nconst formatError = (sdk, error) => {\n var _a;\n if (error instanceof Error) {\n return new AuthApiError({\n errorSummary: error.message,\n });\n }\n let resp = error;\n let err;\n let serverErr = {};\n if (resp.responseText && isString(resp.responseText)) {\n try {\n serverErr = JSON.parse(resp.responseText);\n }\n catch (e) {\n serverErr = {\n errorSummary: 'Unknown error'\n };\n }\n }\n if (resp.status >= 500) {\n serverErr.errorSummary = 'Unknown error';\n }\n if (sdk.options.transformErrorXHR) {\n resp = sdk.options.transformErrorXHR(clone(resp));\n }\n const wwwAuthHeader = (_a = WWWAuthError.getWWWAuthenticateHeader(resp === null || resp === void 0 ? void 0 : resp.headers)) !== null && _a !== void 0 ? _a : '';\n if (serverErr.error && serverErr.error_description) {\n err = new OAuthError(serverErr.error, serverErr.error_description, resp);\n }\n else {\n err = new AuthApiError(serverErr, resp, { wwwAuthHeader });\n }\n if (wwwAuthHeader && (resp === null || resp === void 0 ? void 0 : resp.status) >= 400 && (resp === null || resp === void 0 ? void 0 : resp.status) < 500) {\n const wwwAuthErr = WWWAuthError.parseHeader(wwwAuthHeader);\n if (resp.status === 403 && (wwwAuthErr === null || wwwAuthErr === void 0 ? void 0 : wwwAuthErr.error) === 'insufficient_authentication_context') {\n const { max_age, acr_values } = wwwAuthErr.parameters;\n err = new AuthApiError({\n errorSummary: wwwAuthErr.error,\n errorCauses: [{ errorSummary: wwwAuthErr.errorDescription }]\n }, resp, Object.assign({\n max_age: +max_age }, (acr_values && { acr_values })));\n }\n else if ((wwwAuthErr === null || wwwAuthErr === void 0 ? void 0 : wwwAuthErr.scheme) === 'DPoP') {\n err = wwwAuthErr;\n }\n }\n return err;\n};\nfunction httpRequest(sdk, options) {\n options = options || {};\n if (sdk.options.httpRequestInterceptors) {\n for (const interceptor of sdk.options.httpRequestInterceptors) {\n interceptor(options);\n }\n }\n var url = options.url, method = options.method, args = options.args, saveAuthnState = options.saveAuthnState, accessToken = options.accessToken, withCredentials = options.withCredentials === true,\n storageUtil = sdk.options.storageUtil, storage = storageUtil.storage, httpCache = sdk.storageManager.getHttpCache(sdk.options.cookies);\n if (options.cacheResponse) {\n var cacheContents = httpCache.getStorage();\n var cachedResponse = cacheContents[url];\n if (cachedResponse && Date.now() / 1000 < cachedResponse.expiresAt) {\n return Promise.resolve(cachedResponse.response);\n }\n }\n var oktaUserAgentHeader = sdk._oktaUserAgent.getHttpHeader();\n var headers = Object.assign({ 'Accept': 'application/json', 'Content-Type': 'application/json' }, oktaUserAgentHeader);\n Object.assign(headers, sdk.options.headers, options.headers);\n headers = removeNils(headers);\n if (accessToken && isString(accessToken)) {\n headers['Authorization'] = 'Bearer ' + accessToken;\n }\n var ajaxOptions = {\n headers,\n data: args || undefined,\n withCredentials\n };\n var err, res;\n return sdk.options.httpRequestClient(method, url, ajaxOptions)\n .then(function (resp) {\n res = resp.responseText;\n if (res && isString(res)) {\n res = JSON.parse(res);\n if (res && typeof res === 'object' && !res.headers) {\n if (Array.isArray(res)) {\n res.forEach(item => {\n item.headers = resp.headers;\n });\n }\n else {\n res.headers = resp.headers;\n }\n }\n }\n if (saveAuthnState) {\n if (!res.stateToken) {\n storage.delete(STATE_TOKEN_KEY_NAME);\n }\n }\n if (res && res.stateToken && res.expiresAt) {\n storage.set(STATE_TOKEN_KEY_NAME, res.stateToken, res.expiresAt, sdk.options.cookies);\n }\n if (res && options.cacheResponse) {\n httpCache.updateStorage(url, {\n expiresAt: Math.floor(Date.now() / 1000) + DEFAULT_CACHE_DURATION,\n response: res\n });\n }\n return res;\n })\n .catch(function (resp) {\n err = formatError(sdk, resp);\n if (err.errorCode === 'E0000011') {\n storage.delete(STATE_TOKEN_KEY_NAME);\n }\n throw err;\n });\n}\nfunction get(sdk, url, options) {\n url = isAbsoluteUrl(url) ? url : sdk.getIssuerOrigin() + url;\n var getOptions = {\n url: url,\n method: 'GET'\n };\n Object.assign(getOptions, options);\n return httpRequest(sdk, getOptions);\n}\nfunction post(sdk, url, args, options) {\n url = isAbsoluteUrl(url) ? url : sdk.getIssuerOrigin() + url;\n var postOptions = {\n url: url,\n method: 'POST',\n args: args,\n saveAuthnState: true\n };\n Object.assign(postOptions, options);\n return httpRequest(sdk, postOptions);\n}\n\nexport { get, httpRequest, post };\n//# sourceMappingURL=request.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { getSavedTransactionMeta, createTransactionMeta, saveTransactionMeta } from './transactionMeta.js';\nimport { removeNils } from '../util/object.js';\nimport '../errors/WWWAuthError.js';\nimport { getOAuthBaseUrl } from '../oidc/util/oauth.js';\nimport { httpRequest } from '../http/request.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport '../oidc/types/Token.js';\n\nfunction getResponse(meta) {\n return {\n meta,\n interactionHandle: meta.interactionHandle,\n state: meta.state\n };\n}\nasync function interact(authClient, options = {}) {\n options = removeNils(options);\n let meta = getSavedTransactionMeta(authClient, options);\n if (meta === null || meta === void 0 ? void 0 : meta.interactionHandle) {\n return getResponse(meta);\n }\n meta = await createTransactionMeta(authClient, Object.assign(Object.assign({}, meta), options));\n const baseUrl = getOAuthBaseUrl(authClient);\n let { clientId, redirectUri, state, scopes, withCredentials, codeChallenge, codeChallengeMethod, activationToken, recoveryToken, maxAge, acrValues, nonce } = meta;\n const clientSecret = options.clientSecret || authClient.options.clientSecret;\n withCredentials = withCredentials !== null && withCredentials !== void 0 ? withCredentials : true;\n const url = `${baseUrl}/v1/interact`;\n const params = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ client_id: clientId, scope: scopes.join(' '), redirect_uri: redirectUri, code_challenge: codeChallenge, code_challenge_method: codeChallengeMethod, state }, (activationToken && { activation_token: activationToken })), (recoveryToken && { recovery_token: recoveryToken })), (clientSecret && { client_secret: clientSecret })), (maxAge && { max_age: maxAge })), (acrValues && { acr_values: acrValues })), (nonce && { nonce }));\n const headers = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n };\n const resp = await httpRequest(authClient, {\n method: 'POST',\n url,\n headers,\n withCredentials,\n args: params\n });\n const interactionHandle = resp.interaction_handle;\n const newMeta = Object.assign(Object.assign({}, meta), { interactionHandle,\n withCredentials,\n state,\n scopes,\n recoveryToken,\n activationToken });\n saveTransactionMeta(authClient, newMeta);\n return getResponse(newMeta);\n}\n\nexport { interact };\n//# sourceMappingURL=interact.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nexport { __rest };\n//# sourceMappingURL=_tslib.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nconst isFieldMutable = function isFieldMutable(field) {\n return (field.mutable !== false);\n};\nconst divideSingleActionParamsByMutability = function divideSingleActionParamsByMutability(action) {\n var _a, _b;\n const defaultParamsForAction = {};\n const neededParamsForAction = [];\n const immutableParamsForAction = {};\n if (!action.value) {\n neededParamsForAction.push(action);\n return { defaultParamsForAction, neededParamsForAction, immutableParamsForAction };\n }\n for (let field of action.value) {\n if (isFieldMutable(field)) {\n neededParamsForAction.push(field);\n if ((_a = field.value) !== null && _a !== void 0 ? _a : false) {\n defaultParamsForAction[field.name] = field.value;\n }\n }\n else {\n immutableParamsForAction[field.name] = (_b = field.value) !== null && _b !== void 0 ? _b : '';\n }\n }\n return { defaultParamsForAction, neededParamsForAction, immutableParamsForAction };\n};\nconst divideActionParamsByMutability = function divideActionParamsByMutability(actionList) {\n actionList = Array.isArray(actionList) ? actionList : [actionList];\n const neededParams = [];\n const defaultParams = {};\n const immutableParams = {};\n for (let action of actionList) {\n const { defaultParamsForAction, neededParamsForAction, immutableParamsForAction } = divideSingleActionParamsByMutability(action);\n neededParams.push(neededParamsForAction);\n defaultParams[action.name] = defaultParamsForAction;\n immutableParams[action.name] = immutableParamsForAction;\n }\n return { defaultParams, neededParams, immutableParams };\n};\n\nexport { divideActionParamsByMutability };\n//# sourceMappingURL=actionParser.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthApiError from '../../../errors/AuthApiError.js';\nimport '../../../errors/WWWAuthError.js';\nimport { httpRequest } from '../../../http/request.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport { divideActionParamsByMutability } from './actionParser.js';\n\nconst generateDirectFetch = function generateDirectFetch(authClient, { actionDefinition, defaultParamsForAction = {}, immutableParamsForAction = {}, toPersist = {} }) {\n const target = actionDefinition.href;\n return async function (params = {}) {\n var _a;\n const headers = {\n 'Content-Type': 'application/json',\n 'Accept': actionDefinition.accepts || 'application/ion+json',\n };\n const body = JSON.stringify(Object.assign(Object.assign(Object.assign({}, defaultParamsForAction), params), immutableParamsForAction));\n try {\n const response = await httpRequest(authClient, {\n url: target,\n method: actionDefinition.method,\n headers,\n args: body,\n withCredentials: (_a = toPersist === null || toPersist === void 0 ? void 0 : toPersist.withCredentials) !== null && _a !== void 0 ? _a : true\n });\n return authClient.idx.makeIdxResponse(Object.assign({}, response), toPersist, true);\n }\n catch (err) {\n if (!(err instanceof AuthApiError) || !(err === null || err === void 0 ? void 0 : err.xhr)) {\n throw err;\n }\n const response = err.xhr;\n const payload = response.responseJSON || JSON.parse(response.responseText);\n const wwwAuthHeader = response.headers['WWW-Authenticate'] || response.headers['www-authenticate'];\n const idxResponse = authClient.idx.makeIdxResponse(Object.assign({}, payload), toPersist, false);\n if (response.status === 401 && wwwAuthHeader === 'Oktadevicejwt realm=\"Okta Device\"') {\n idxResponse.stepUp = true;\n }\n return idxResponse;\n }\n };\n};\nconst generateIdxAction = function generateIdxAction(authClient, actionDefinition, toPersist) {\n const generator = generateDirectFetch;\n const { defaultParams, neededParams, immutableParams } = divideActionParamsByMutability(actionDefinition);\n const action = generator(authClient, {\n actionDefinition,\n defaultParamsForAction: defaultParams[actionDefinition.name],\n immutableParamsForAction: immutableParams[actionDefinition.name],\n toPersist\n });\n action.neededParams = neededParams;\n return action;\n};\n\nexport { generateIdxAction as default };\n//# sourceMappingURL=generateIdxAction.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport generateIdxAction from './generateIdxAction.js';\n\nconst generateRemediationFunctions = function generateRemediationFunctions(authClient, remediationValue, toPersist = {}) {\n return remediationValue.reduce((obj, remediation) => (Object.assign(Object.assign({}, obj), { [remediation.name]: generateIdxAction(authClient, remediation, toPersist) })), {});\n};\n\nexport { generateRemediationFunctions };\n//# sourceMappingURL=remediationParser.js.map\n","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n\n if (!it) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = it.call(o);\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\nvar hasOwnProp = Object.prototype.hasOwnProperty;\n/**\n* @typedef {null|boolean|number|string|PlainObject|GenericArray} JSONObject\n*/\n\n/**\n * Copies array and then pushes item into it.\n * @param {GenericArray} arr Array to copy and into which to push\n * @param {any} item Array item to add (to end)\n * @returns {GenericArray} Copy of the original array\n */\n\nfunction push(arr, item) {\n arr = arr.slice();\n arr.push(item);\n return arr;\n}\n/**\n * Copies array and then unshifts item into it.\n * @param {any} item Array item to add (to beginning)\n * @param {GenericArray} arr Array to copy and into which to unshift\n * @returns {GenericArray} Copy of the original array\n */\n\n\nfunction unshift(item, arr) {\n arr = arr.slice();\n arr.unshift(item);\n return arr;\n}\n/**\n * Caught when JSONPath is used without `new` but rethrown if with `new`\n * @extends Error\n */\n\n\nvar NewError = /*#__PURE__*/function (_Error) {\n _inherits(NewError, _Error);\n\n var _super = _createSuper(NewError);\n\n /**\n * @param {any} value The evaluated scalar value\n */\n function NewError(value) {\n var _this;\n\n _classCallCheck(this, NewError);\n\n _this = _super.call(this, 'JSONPath should not be called with \"new\" (it prevents return ' + 'of (unwrapped) scalar values)');\n _this.avoidNew = true;\n _this.value = value;\n _this.name = 'NewError';\n return _this;\n }\n\n return NewError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n/**\n* @typedef {PlainObject} ReturnObject\n* @property {string} path\n* @property {JSONObject} value\n* @property {PlainObject|GenericArray} parent\n* @property {string} parentProperty\n*/\n\n/**\n* @callback JSONPathCallback\n* @param {string|PlainObject} preferredOutput\n* @param {\"value\"|\"property\"} type\n* @param {ReturnObject} fullRetObj\n* @returns {void}\n*/\n\n/**\n* @callback OtherTypeCallback\n* @param {JSONObject} val\n* @param {string} path\n* @param {PlainObject|GenericArray} parent\n* @param {string} parentPropName\n* @returns {boolean}\n*/\n\n/* eslint-disable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @typedef {PlainObject} JSONPathOptions\n * @property {JSON} json\n * @property {string|string[]} path\n * @property {\"value\"|\"path\"|\"pointer\"|\"parent\"|\"parentProperty\"|\"all\"} [resultType=\"value\"]\n * @property {boolean} [flatten=false]\n * @property {boolean} [wrap=true]\n * @property {PlainObject} [sandbox={}]\n * @property {boolean} [preventEval=false]\n * @property {PlainObject|GenericArray|null} [parent=null]\n * @property {string|null} [parentProperty=null]\n * @property {JSONPathCallback} [callback]\n * @property {OtherTypeCallback} [otherTypeCallback] Defaults to\n * function which throws on encountering `@other`\n * @property {boolean} [autostart=true]\n */\n\n/* eslint-enable max-len -- Can make multiline type after https://github.com/syavorsky/comment-parser/issues/109 */\n\n/**\n * @param {string|JSONPathOptions} opts If a string, will be treated as `expr`\n * @param {string} [expr] JSON path to evaluate\n * @param {JSON} [obj] JSON object to evaluate against\n * @param {JSONPathCallback} [callback] Passed 3 arguments: 1) desired payload\n * per `resultType`, 2) `\"value\"|\"property\"`, 3) Full returned object with\n * all payloads\n * @param {OtherTypeCallback} [otherTypeCallback] If `@other()` is at the end\n * of one's query, this will be invoked with the value of the item, its\n * path, its parent, and its parent's property name, and it should return\n * a boolean indicating whether the supplied value belongs to the \"other\"\n * type or not (or it may handle transformations and return `false`).\n * @returns {JSONPath}\n * @class\n */\n\n\nfunction JSONPath(opts, expr, obj, callback, otherTypeCallback) {\n // eslint-disable-next-line no-restricted-syntax\n if (!(this instanceof JSONPath)) {\n try {\n return new JSONPath(opts, expr, obj, callback, otherTypeCallback);\n } catch (e) {\n if (!e.avoidNew) {\n throw e;\n }\n\n return e.value;\n }\n }\n\n if (typeof opts === 'string') {\n otherTypeCallback = callback;\n callback = obj;\n obj = expr;\n expr = opts;\n opts = null;\n }\n\n var optObj = opts && _typeof(opts) === 'object';\n opts = opts || {};\n this.json = opts.json || obj;\n this.path = opts.path || expr;\n this.resultType = opts.resultType || 'value';\n this.flatten = opts.flatten || false;\n this.wrap = hasOwnProp.call(opts, 'wrap') ? opts.wrap : true;\n this.sandbox = opts.sandbox || {};\n this.preventEval = opts.preventEval || false;\n this.parent = opts.parent || null;\n this.parentProperty = opts.parentProperty || null;\n this.callback = opts.callback || callback || null;\n\n this.otherTypeCallback = opts.otherTypeCallback || otherTypeCallback || function () {\n throw new TypeError('You must supply an otherTypeCallback callback option ' + 'with the @other() operator.');\n };\n\n if (opts.autostart !== false) {\n var args = {\n path: optObj ? opts.path : expr\n };\n\n if (!optObj) {\n args.json = obj;\n } else if ('json' in opts) {\n args.json = opts.json;\n }\n\n var ret = this.evaluate(args);\n\n if (!ret || _typeof(ret) !== 'object') {\n throw new NewError(ret);\n }\n\n return ret;\n }\n} // PUBLIC METHODS\n\n\nJSONPath.prototype.evaluate = function (expr, json, callback, otherTypeCallback) {\n var _this2 = this;\n\n var currParent = this.parent,\n currParentProperty = this.parentProperty;\n var flatten = this.flatten,\n wrap = this.wrap;\n this.currResultType = this.resultType;\n this.currPreventEval = this.preventEval;\n this.currSandbox = this.sandbox;\n callback = callback || this.callback;\n this.currOtherTypeCallback = otherTypeCallback || this.otherTypeCallback;\n json = json || this.json;\n expr = expr || this.path;\n\n if (expr && _typeof(expr) === 'object' && !Array.isArray(expr)) {\n if (!expr.path && expr.path !== '') {\n throw new TypeError('You must supply a \"path\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n if (!hasOwnProp.call(expr, 'json')) {\n throw new TypeError('You must supply a \"json\" property when providing an object ' + 'argument to JSONPath.evaluate().');\n }\n\n var _expr = expr;\n json = _expr.json;\n flatten = hasOwnProp.call(expr, 'flatten') ? expr.flatten : flatten;\n this.currResultType = hasOwnProp.call(expr, 'resultType') ? expr.resultType : this.currResultType;\n this.currSandbox = hasOwnProp.call(expr, 'sandbox') ? expr.sandbox : this.currSandbox;\n wrap = hasOwnProp.call(expr, 'wrap') ? expr.wrap : wrap;\n this.currPreventEval = hasOwnProp.call(expr, 'preventEval') ? expr.preventEval : this.currPreventEval;\n callback = hasOwnProp.call(expr, 'callback') ? expr.callback : callback;\n this.currOtherTypeCallback = hasOwnProp.call(expr, 'otherTypeCallback') ? expr.otherTypeCallback : this.currOtherTypeCallback;\n currParent = hasOwnProp.call(expr, 'parent') ? expr.parent : currParent;\n currParentProperty = hasOwnProp.call(expr, 'parentProperty') ? expr.parentProperty : currParentProperty;\n expr = expr.path;\n }\n\n currParent = currParent || null;\n currParentProperty = currParentProperty || null;\n\n if (Array.isArray(expr)) {\n expr = JSONPath.toPathString(expr);\n }\n\n if (!expr && expr !== '' || !json) {\n return undefined;\n }\n\n var exprList = JSONPath.toPathArray(expr);\n\n if (exprList[0] === '$' && exprList.length > 1) {\n exprList.shift();\n }\n\n this._hasParentSelector = null;\n\n var result = this._trace(exprList, json, ['$'], currParent, currParentProperty, callback).filter(function (ea) {\n return ea && !ea.isParentSelector;\n });\n\n if (!result.length) {\n return wrap ? [] : undefined;\n }\n\n if (!wrap && result.length === 1 && !result[0].hasArrExpr) {\n return this._getPreferredOutput(result[0]);\n }\n\n return result.reduce(function (rslt, ea) {\n var valOrPath = _this2._getPreferredOutput(ea);\n\n if (flatten && Array.isArray(valOrPath)) {\n rslt = rslt.concat(valOrPath);\n } else {\n rslt.push(valOrPath);\n }\n\n return rslt;\n }, []);\n}; // PRIVATE METHODS\n\n\nJSONPath.prototype._getPreferredOutput = function (ea) {\n var resultType = this.currResultType;\n\n switch (resultType) {\n case 'all':\n {\n var path = Array.isArray(ea.path) ? ea.path : JSONPath.toPathArray(ea.path);\n ea.pointer = JSONPath.toPointer(path);\n ea.path = typeof ea.path === 'string' ? ea.path : JSONPath.toPathString(ea.path);\n return ea;\n }\n\n case 'value':\n case 'parent':\n case 'parentProperty':\n return ea[resultType];\n\n case 'path':\n return JSONPath.toPathString(ea[resultType]);\n\n case 'pointer':\n return JSONPath.toPointer(ea.path);\n\n default:\n throw new TypeError('Unknown result type');\n }\n};\n\nJSONPath.prototype._handleCallback = function (fullRetObj, callback, type) {\n if (callback) {\n var preferredOutput = this._getPreferredOutput(fullRetObj);\n\n fullRetObj.path = typeof fullRetObj.path === 'string' ? fullRetObj.path : JSONPath.toPathString(fullRetObj.path); // eslint-disable-next-line node/callback-return\n\n callback(preferredOutput, type, fullRetObj);\n }\n};\n/**\n *\n * @param {string} expr\n * @param {JSONObject} val\n * @param {string} path\n * @param {PlainObject|GenericArray} parent\n * @param {string} parentPropName\n * @param {JSONPathCallback} callback\n * @param {boolean} hasArrExpr\n * @param {boolean} literalPriority\n * @returns {ReturnObject|ReturnObject[]}\n */\n\n\nJSONPath.prototype._trace = function (expr, val, path, parent, parentPropName, callback, hasArrExpr, literalPriority) {\n var _this3 = this;\n\n // No expr to follow? return path and value as the result of\n // this trace branch\n var retObj;\n\n if (!expr.length) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName,\n hasArrExpr: hasArrExpr\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n }\n\n var loc = expr[0],\n x = expr.slice(1); // We need to gather the return value of recursive trace calls in order to\n // do the parent sel computation.\n\n var ret = [];\n /**\n *\n * @param {ReturnObject|ReturnObject[]} elems\n * @returns {void}\n */\n\n function addRet(elems) {\n if (Array.isArray(elems)) {\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test:\n // `ret.push(...elems);`\n elems.forEach(function (t) {\n ret.push(t);\n });\n } else {\n ret.push(elems);\n }\n }\n\n if ((typeof loc !== 'string' || literalPriority) && val && hasOwnProp.call(val, loc)) {\n // simple case--directly follow property\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr)); // eslint-disable-next-line unicorn/prefer-switch -- Part of larger `if`\n } else if (loc === '*') {\n // all child properties\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n addRet(_this3._trace(unshift(m, _x), v, p, par, pr, cb, true, true));\n });\n } else if (loc === '..') {\n // all descendent parent properties\n // Check remaining expression with val's immediate children\n addRet(this._trace(x, val, path, parent, parentPropName, callback, hasArrExpr));\n\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n // We don't join m and x here because we only want parents,\n // not scalar values\n if (_typeof(v[m]) === 'object') {\n // Keep going with recursive descent on val's\n // object children\n addRet(_this3._trace(unshift(l, _x), v[m], push(p, m), v, m, cb, true));\n }\n }); // The parent sel computation is handled in the frame above using the\n // ancestor object of val\n\n } else if (loc === '^') {\n // This is not a final endpoint, so we do not invoke the callback here\n this._hasParentSelector = true;\n return {\n path: path.slice(0, -1),\n expr: x,\n isParentSelector: true\n };\n } else if (loc === '~') {\n // property name\n retObj = {\n path: push(path, loc),\n value: parentPropName,\n parent: parent,\n parentProperty: null\n };\n\n this._handleCallback(retObj, callback, 'property');\n\n return retObj;\n } else if (loc === '$') {\n // root only\n addRet(this._trace(x, val, path, null, null, callback, hasArrExpr));\n } else if (/^(\\x2D?[0-9]*):(\\x2D?[0-9]*):?([0-9]*)$/.test(loc)) {\n // [start:end:step] Python slice syntax\n addRet(this._slice(loc, x, val, path, parent, parentPropName, callback));\n } else if (loc.indexOf('?(') === 0) {\n // [?(expr)] (filtering)\n if (this.currPreventEval) {\n throw new Error('Eval [?(expr)] prevented in JSONPath expression.');\n }\n\n this._walk(loc, x, val, path, parent, parentPropName, callback, function (m, l, _x, v, p, par, pr, cb) {\n if (_this3._eval(l.replace(/^\\?\\(((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?)\\)$/, '$1'), v[m], m, p, par, pr)) {\n addRet(_this3._trace(unshift(m, _x), v, p, par, pr, cb, true));\n }\n });\n } else if (loc[0] === '(') {\n // [(expr)] (dynamic property/index)\n if (this.currPreventEval) {\n throw new Error('Eval [(expr)] prevented in JSONPath expression.');\n } // As this will resolve to a property name (but we don't know it\n // yet), property and parent information is relative to the\n // parent of the property to which this expression will resolve\n\n\n addRet(this._trace(unshift(this._eval(loc, val, path[path.length - 1], path.slice(0, -1), parent, parentPropName), x), val, path, parent, parentPropName, callback, hasArrExpr));\n } else if (loc[0] === '@') {\n // value type: @boolean(), etc.\n var addType = false;\n var valueType = loc.slice(1, -2);\n\n switch (valueType) {\n case 'scalar':\n if (!val || !['object', 'function'].includes(_typeof(val))) {\n addType = true;\n }\n\n break;\n\n case 'boolean':\n case 'string':\n case 'undefined':\n case 'function':\n // eslint-disable-next-line valid-typeof\n if (_typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'integer':\n if (Number.isFinite(val) && !(val % 1)) {\n addType = true;\n }\n\n break;\n\n case 'number':\n if (Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'nonFinite':\n if (typeof val === 'number' && !Number.isFinite(val)) {\n addType = true;\n }\n\n break;\n\n case 'object':\n // eslint-disable-next-line valid-typeof\n if (val && _typeof(val) === valueType) {\n addType = true;\n }\n\n break;\n\n case 'array':\n if (Array.isArray(val)) {\n addType = true;\n }\n\n break;\n\n case 'other':\n addType = this.currOtherTypeCallback(val, path, parent, parentPropName);\n break;\n\n case 'null':\n if (val === null) {\n addType = true;\n }\n\n break;\n\n /* c8 ignore next 2 */\n\n default:\n throw new TypeError('Unknown value type ' + valueType);\n }\n\n if (addType) {\n retObj = {\n path: path,\n value: val,\n parent: parent,\n parentProperty: parentPropName\n };\n\n this._handleCallback(retObj, callback, 'value');\n\n return retObj;\n } // `-escaped property\n\n } else if (loc[0] === '`' && val && hasOwnProp.call(val, loc.slice(1))) {\n var locProp = loc.slice(1);\n addRet(this._trace(x, val[locProp], push(path, locProp), val, locProp, callback, hasArrExpr, true));\n } else if (loc.includes(',')) {\n // [name1,name2,...]\n var parts = loc.split(',');\n\n var _iterator = _createForOfIteratorHelper(parts),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var part = _step.value;\n addRet(this._trace(unshift(part, x), val, path, parent, parentPropName, callback, true));\n } // simple case--directly follow property\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n } else if (!literalPriority && val && hasOwnProp.call(val, loc)) {\n addRet(this._trace(x, val[loc], push(path, loc), val, loc, callback, hasArrExpr, true));\n } // We check the resulting values for parent selections. For parent\n // selections we discard the value object and continue the trace with the\n // current val object\n\n\n if (this._hasParentSelector) {\n for (var t = 0; t < ret.length; t++) {\n var rett = ret[t];\n\n if (rett && rett.isParentSelector) {\n var tmp = this._trace(rett.expr, val, rett.path, parent, parentPropName, callback, hasArrExpr);\n\n if (Array.isArray(tmp)) {\n ret[t] = tmp[0];\n var tl = tmp.length;\n\n for (var tt = 1; tt < tl; tt++) {\n t++;\n ret.splice(t, 0, tmp[tt]);\n }\n } else {\n ret[t] = tmp;\n }\n }\n }\n }\n\n return ret;\n};\n\nJSONPath.prototype._walk = function (loc, expr, val, path, parent, parentPropName, callback, f) {\n if (Array.isArray(val)) {\n var n = val.length;\n\n for (var i = 0; i < n; i++) {\n f(i, loc, expr, val, path, parent, parentPropName, callback);\n }\n } else if (val && _typeof(val) === 'object') {\n Object.keys(val).forEach(function (m) {\n f(m, loc, expr, val, path, parent, parentPropName, callback);\n });\n }\n};\n\nJSONPath.prototype._slice = function (loc, expr, val, path, parent, parentPropName, callback) {\n if (!Array.isArray(val)) {\n return undefined;\n }\n\n var len = val.length,\n parts = loc.split(':'),\n step = parts[2] && Number.parseInt(parts[2]) || 1;\n var start = parts[0] && Number.parseInt(parts[0]) || 0,\n end = parts[1] && Number.parseInt(parts[1]) || len;\n start = start < 0 ? Math.max(0, start + len) : Math.min(len, start);\n end = end < 0 ? Math.max(0, end + len) : Math.min(len, end);\n var ret = [];\n\n for (var i = start; i < end; i += step) {\n var tmp = this._trace(unshift(i, expr), val, path, parent, parentPropName, callback, true); // Should only be possible to be an array here since first part of\n // ``unshift(i, expr)` passed in above would not be empty, nor `~`,\n // nor begin with `@` (as could return objects)\n // This was causing excessive stack size in Node (with or\n // without Babel) against our performance test: `ret.push(...tmp);`\n\n\n tmp.forEach(function (t) {\n ret.push(t);\n });\n }\n\n return ret;\n};\n\nJSONPath.prototype._eval = function (code, _v, _vname, path, parent, parentPropName) {\n if (code.includes('@parentProperty')) {\n this.currSandbox._$_parentProperty = parentPropName;\n code = code.replace(/@parentProperty/g, '_$_parentProperty');\n }\n\n if (code.includes('@parent')) {\n this.currSandbox._$_parent = parent;\n code = code.replace(/@parent/g, '_$_parent');\n }\n\n if (code.includes('@property')) {\n this.currSandbox._$_property = _vname;\n code = code.replace(/@property/g, '_$_property');\n }\n\n if (code.includes('@path')) {\n this.currSandbox._$_path = JSONPath.toPathString(path.concat([_vname]));\n code = code.replace(/@path/g, '_$_path');\n }\n\n if (code.includes('@root')) {\n this.currSandbox._$_root = this.json;\n code = code.replace(/@root/g, '_$_root');\n }\n\n if (/@([\\t-\\r \\)\\.\\[\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])/.test(code)) {\n this.currSandbox._$_v = _v;\n code = code.replace(/@([\\t-\\r \\)\\.\\[\\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF])/g, '_$_v$1');\n }\n\n try {\n return this.vm.runInNewContext(code, this.currSandbox);\n } catch (e) {\n // eslint-disable-next-line no-console\n console.log(e);\n throw new Error('jsonPath: ' + e.message + ': ' + code);\n }\n}; // PUBLIC CLASS PROPERTIES AND METHODS\n// Could store the cache object itself\n\n\nJSONPath.cache = {};\n/**\n * @param {string[]} pathArr Array to convert\n * @returns {string} The path string\n */\n\nJSONPath.toPathString = function (pathArr) {\n var x = pathArr,\n n = x.length;\n var p = '$';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += /^[\\*0-9]+$/.test(x[i]) ? '[' + x[i] + ']' : \"['\" + x[i] + \"']\";\n }\n }\n\n return p;\n};\n/**\n * @param {string} pointer JSON Path\n * @returns {string} JSON Pointer\n */\n\n\nJSONPath.toPointer = function (pointer) {\n var x = pointer,\n n = x.length;\n var p = '';\n\n for (var i = 1; i < n; i++) {\n if (!/^(~|\\^|@(?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\(\\))$/.test(x[i])) {\n p += '/' + x[i].toString().replace(/~/g, '~0').replace(/\\//g, '~1');\n }\n }\n\n return p;\n};\n/**\n * @param {string} expr Expression to convert\n * @returns {string[]}\n */\n\n\nJSONPath.toPathArray = function (expr) {\n var cache = JSONPath.cache;\n\n if (cache[expr]) {\n return cache[expr].concat();\n }\n\n var subx = [];\n var normalized = expr // Properties\n .replace(/@(?:null|boolean|number|string|integer|undefined|nonFinite|scalar|array|object|function|other)\\(\\)/g, ';$&;') // Parenthetical evaluations (filtering and otherwise), directly\n // within brackets or single quotes\n .replace(/['\\[](\\??\\((?:[\\0-\\t\\x0B\\f\\x0E-\\u2027\\u202A-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])*?\\))['\\]]/g, function ($0, $1) {\n return '[#' + (subx.push($1) - 1) + ']';\n }) // Escape periods and tildes within properties\n .replace(/\\[[\"']((?:(?!['\\]])[\\s\\S])*)[\"']\\]/g, function ($0, prop) {\n return \"['\" + prop.replace(/\\./g, '%@%').replace(/~/g, '%%@@%%') + \"']\";\n }) // Properties operator\n .replace(/~/g, ';~;') // Split by property boundaries\n .replace(/[\"']?\\.[\"']?(?!(?:(?!\\[)[\\s\\S])*\\])|\\[[\"']?/g, ';') // Reinsert periods within properties\n .replace(/%@%/g, '.') // Reinsert tildes within properties\n .replace(/%%@@%%/g, '~') // Parent\n .replace(/(?:;)?(\\^+)(?:;)?/g, function ($0, ups) {\n return ';' + ups.split('').join(';') + ';';\n }) // Descendents\n .replace(/;;;|;;/g, ';..;') // Remove trailing\n .replace(/;$|'?\\]|'$/g, '');\n var exprList = normalized.split(';').map(function (exp) {\n var match = exp.match(/#([0-9]+)/);\n return !match || !match[1] ? exp : subx[match[1]];\n });\n cache[expr] = exprList;\n return cache[expr].concat();\n};\n\n/**\n* @callback ConditionCallback\n* @param {any} item\n* @returns {boolean}\n*/\n\n/**\n * Copy items out of one array into another.\n * @param {GenericArray} source Array with items to copy\n * @param {GenericArray} target Array to which to copy\n * @param {ConditionCallback} conditionCb Callback passed the current item;\n * will move item if evaluates to `true`\n * @returns {void}\n */\n\nvar moveToAnotherArray = function moveToAnotherArray(source, target, conditionCb) {\n var il = source.length;\n\n for (var i = 0; i < il; i++) {\n var item = source[i];\n\n if (conditionCb(item)) {\n target.push(source.splice(i--, 1)[0]);\n }\n }\n};\n\nJSONPath.prototype.vm = {\n /**\n * @param {string} expr Expression to evaluate\n * @param {PlainObject} context Object whose items will be added\n * to evaluation\n * @returns {any} Result of evaluated code\n */\n runInNewContext: function runInNewContext(expr, context) {\n var keys = Object.keys(context);\n var funcs = [];\n moveToAnotherArray(keys, funcs, function (key) {\n return typeof context[key] === 'function';\n });\n var values = keys.map(function (vr, i) {\n return context[vr];\n });\n var funcString = funcs.reduce(function (s, func) {\n var fString = context[func].toString();\n\n if (!/function/.test(fString)) {\n fString = 'function ' + fString;\n }\n\n return 'var ' + func + '=' + fString + ';' + s;\n }, '');\n expr = funcString + expr; // Mitigate http://perfectionkills.com/global-eval-what-are-the-options/#new_function\n\n if (!/([\"'])use strict\\1/.test(expr) && !keys.includes('arguments')) {\n expr = 'var arguments = undefined;' + expr;\n } // Remove last semi so `return` will be inserted before\n // the previous one instead, allowing for the return\n // of a bare ending expression\n\n\n expr = expr.replace(/;[\\t-\\r \\xA0\\u1680\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000\\uFEFF]*$/, ''); // Insert `return`\n\n var lastStatementEnd = expr.lastIndexOf(';');\n var code = lastStatementEnd > -1 ? expr.slice(0, lastStatementEnd + 1) + ' return ' + expr.slice(lastStatementEnd + 1) : ' return ' + expr; // eslint-disable-next-line no-new-func\n\n return _construct(Function, _toConsumableArray(keys).concat([code])).apply(void 0, _toConsumableArray(values));\n }\n};\n\nexport { JSONPath };\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { JSONPath } from 'jsonpath-plus';\n\nfunction jsonpath(options) {\n return JSONPath(Object.assign({\n preventEval: true }, options));\n}\n\nexport { jsonpath };\n//# sourceMappingURL=jsonpath.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { __rest } from '../../../_virtual/_tslib.js';\nimport { generateRemediationFunctions } from './remediationParser.js';\nimport generateIdxAction from './generateIdxAction.js';\nimport { jsonpath } from '../../../util/jsonpath.js';\nimport AuthSdkError from '../../../errors/AuthSdkError.js';\nimport '../../../errors/WWWAuthError.js';\n\nconst SKIP_FIELDS = {\n 'remediation': true,\n 'context': true,\n};\nconst parseNonRemediations = function parseNonRemediations(authClient, idxResponse, toPersist = {}) {\n const actions = {};\n const context = {};\n Object.keys(idxResponse)\n .filter(field => !SKIP_FIELDS[field])\n .forEach(field => {\n const fieldIsObject = typeof idxResponse[field] === 'object' && !!idxResponse[field];\n if (!fieldIsObject) {\n context[field] = idxResponse[field];\n return;\n }\n if (idxResponse[field].rel) {\n actions[idxResponse[field].name] = generateIdxAction(authClient, idxResponse[field], toPersist);\n return;\n }\n const _a = idxResponse[field], { value: fieldValue, type } = _a, info = __rest(_a, [\"value\", \"type\"]);\n context[field] = Object.assign({ type }, info);\n if (type !== 'object') {\n context[field].value = fieldValue;\n return;\n }\n context[field].value = {};\n Object.entries(fieldValue)\n .forEach(([subField, value]) => {\n if (value.rel) {\n actions[`${field}-${subField.name || subField}`] = generateIdxAction(authClient, value, toPersist);\n }\n else {\n context[field].value[subField] = value;\n }\n });\n });\n return { context, actions };\n};\nconst expandRelatesTo = (idxResponse, value) => {\n Object.keys(value).forEach(k => {\n if (k === 'relatesTo') {\n const query = Array.isArray(value[k]) ? value[k][0] : value[k];\n if (typeof query === 'string') {\n const result = jsonpath({ path: query, json: idxResponse })[0];\n if (result) {\n value[k] = result;\n return;\n }\n else {\n throw new AuthSdkError(`Cannot resolve relatesTo: ${query}`);\n }\n }\n }\n if (Array.isArray(value[k])) {\n value[k].forEach(innerValue => expandRelatesTo(idxResponse, innerValue));\n }\n });\n};\nconst convertRemediationAction = (authClient, remediation, toPersist) => {\n if (remediation.rel) {\n const remediationActions = generateRemediationFunctions(authClient, [remediation], toPersist);\n const actionFn = remediationActions[remediation.name];\n return Object.assign(Object.assign({}, remediation), { action: actionFn });\n }\n return remediation;\n};\nconst parseIdxResponse = function parseIdxResponse(authClient, idxResponse, toPersist = {}) {\n var _a;\n const remediationData = ((_a = idxResponse.remediation) === null || _a === void 0 ? void 0 : _a.value) || [];\n remediationData.forEach(remediation => {\n var _a;\n if (remediation.name === 'launch-authenticator' &&\n ((_a = remediation === null || remediation === void 0 ? void 0 : remediation.relatesTo) === null || _a === void 0 ? void 0 : _a[0]) === 'authenticatorChallenge' &&\n !(idxResponse === null || idxResponse === void 0 ? void 0 : idxResponse.authenticatorChallenge)) {\n delete remediation.relatesTo;\n return;\n }\n return expandRelatesTo(idxResponse, remediation);\n });\n const remediations = remediationData.map(remediation => convertRemediationAction(authClient, remediation, toPersist));\n const { context, actions } = parseNonRemediations(authClient, idxResponse, toPersist);\n return {\n remediations,\n context,\n actions,\n };\n};\n\nexport { parseIdxResponse, parseNonRemediations };\n//# sourceMappingURL=idxResponseParser.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { parseIdxResponse } from './idxResponseParser.js';\n\nfunction makeIdxState(authClient, idxResponse, toPersist, requestDidSucceed) {\n var _a, _b, _c;\n const rawIdxResponse = idxResponse;\n const { remediations, context, actions } = parseIdxResponse(authClient, idxResponse, toPersist);\n const neededToProceed = [...remediations];\n const proceed = async function (remediationChoice, paramsFromUser = {}) {\n const remediationChoiceObject = remediations.find((remediation) => remediation.name === remediationChoice);\n if (!remediationChoiceObject) {\n return Promise.reject(`Unknown remediation choice: [${remediationChoice}]`);\n }\n const actionFn = remediationChoiceObject.action;\n if (typeof actionFn !== 'function') {\n return Promise.reject(`Current remediation cannot make form submit action: [${remediationChoice}]`);\n }\n return remediationChoiceObject.action(paramsFromUser);\n };\n const findCode = item => item.name === 'interaction_code';\n const interactionCode = (_c = (_b = (_a = rawIdxResponse.successWithInteractionCode) === null || _a === void 0 ? void 0 : _a.value) === null || _b === void 0 ? void 0 : _b.find(findCode)) === null || _c === void 0 ? void 0 : _c.value;\n return {\n proceed,\n neededToProceed,\n actions,\n context,\n rawIdxState: rawIdxResponse,\n interactionCode,\n toPersist,\n requestDidSucceed,\n };\n}\n\nexport { makeIdxState };\n//# sourceMappingURL=makeIdxState.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { makeIdxState } from './makeIdxState.js';\n\nvar v1 = {\n makeIdxState,\n};\n\nexport { v1 as default };\n//# sourceMappingURL=parsers.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { IDX_API_VERSION } from '../../constants.js';\nimport v1 from './v1/parsers.js';\n\nconst parsersForVersion = function parsersForVersion(version) {\n switch (version) {\n case '1.0.0':\n return v1;\n case undefined:\n case null:\n throw new Error('Api version is required');\n default:\n throw new Error(`Unknown api version: ${version}. Use an exact semver version.`);\n }\n};\nfunction validateVersionConfig(version) {\n if (!version) {\n throw new Error('version is required');\n }\n const cleanVersion = (version !== null && version !== void 0 ? version : '').replace(/[^0-9a-zA-Z._-]/, '');\n if (cleanVersion !== version || !version) {\n throw new Error('invalid version supplied - version is required and uses semver syntax');\n }\n parsersForVersion(version);\n}\nfunction makeIdxState(authClient, rawIdxResponse, toPersist, requestDidSucceed) {\n var _a;\n const version = (_a = rawIdxResponse === null || rawIdxResponse === void 0 ? void 0 : rawIdxResponse.version) !== null && _a !== void 0 ? _a : IDX_API_VERSION;\n validateVersionConfig(version);\n const { makeIdxState } = parsersForVersion(version);\n return makeIdxState(authClient, rawIdxResponse, toPersist, requestDidSucceed);\n}\n\nexport { makeIdxState, parsersForVersion, validateVersionConfig };\n//# sourceMappingURL=index.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction isRawIdxResponse(obj) {\n return obj && obj.version;\n}\n\nexport { isRawIdxResponse };\n//# sourceMappingURL=idx-js.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthApiError from './AuthApiError.js';\nexport { default as AuthApiError } from './AuthApiError.js';\nimport OAuthError from './OAuthError.js';\nexport { default as OAuthError } from './OAuthError.js';\nimport WWWAuthError from './WWWAuthError.js';\nexport { default as WWWAuthError } from './WWWAuthError.js';\n\nfunction isAuthApiError(obj) {\n return (obj instanceof AuthApiError);\n}\nfunction isOAuthError(obj) {\n return (obj instanceof OAuthError);\n}\nfunction isWWWAuthError(obj) {\n return (obj instanceof WWWAuthError);\n}\n\nexport { isAuthApiError, isOAuthError, isWWWAuthError };\n//# sourceMappingURL=index.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { validateVersionConfig, makeIdxState } from './idxState/index.js';\nimport { isRawIdxResponse } from './types/idx-js.js';\nimport { isAuthApiError } from '../errors/index.js';\nimport { getOAuthDomain } from '../oidc/util/oauth.js';\nimport { IDX_API_VERSION } from '../constants.js';\nimport { httpRequest } from '../http/request.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport '../oidc/types/Token.js';\n\nasync function introspect(authClient, options = {}) {\n var _a;\n let rawIdxResponse;\n let requestDidSucceed;\n const savedIdxResponse = authClient.transactionManager.loadIdxResponse(options);\n if (savedIdxResponse) {\n rawIdxResponse = savedIdxResponse.rawIdxResponse;\n requestDidSucceed = savedIdxResponse.requestDidSucceed;\n }\n if (!rawIdxResponse) {\n const version = options.version || IDX_API_VERSION;\n const domain = getOAuthDomain(authClient);\n const { interactionHandle, stateHandle } = options;\n const withCredentials = (_a = options.withCredentials) !== null && _a !== void 0 ? _a : true;\n try {\n requestDidSucceed = true;\n validateVersionConfig(version);\n const url = `${domain}/idp/idx/introspect`;\n const body = stateHandle ? { stateToken: stateHandle } : { interactionHandle };\n const headers = {\n 'Content-Type': `application/ion+json; okta-version=${version}`,\n Accept: `application/ion+json; okta-version=${version}`,\n };\n rawIdxResponse = await httpRequest(authClient, {\n method: 'POST',\n url,\n headers,\n withCredentials,\n args: body\n });\n }\n catch (err) {\n if (isAuthApiError(err) && err.xhr && isRawIdxResponse(err.xhr.responseJSON)) {\n rawIdxResponse = err.xhr.responseJSON;\n requestDidSucceed = false;\n }\n else {\n throw err;\n }\n }\n }\n const { withCredentials } = options;\n return makeIdxState(authClient, rawIdxResponse, { withCredentials }, requestDidSucceed);\n}\n\nexport { introspect };\n//# sourceMappingURL=introspect.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction getAllValues(idxRemediation) {\n var _a;\n return (_a = idxRemediation.value) === null || _a === void 0 ? void 0 : _a.map(r => r.name);\n}\nfunction getRequiredValues(idxRemediation) {\n var _a;\n return (_a = idxRemediation.value) === null || _a === void 0 ? void 0 : _a.reduce((required, cur) => {\n if (cur.required) {\n required.push(cur.name);\n }\n return required;\n }, []);\n}\nfunction titleCase(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n}\nfunction getAuthenticatorFromRemediation(remediation) {\n return remediation.value.find(({ name }) => name === 'authenticator');\n}\n\nexport { getAllValues, getAuthenticatorFromRemediation, getRequiredValues, titleCase };\n//# sourceMappingURL=util.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { isAuthenticator } from '../types/api.js';\n\nfunction formatAuthenticator(incoming) {\n let authenticator;\n if (isAuthenticator(incoming)) {\n authenticator = incoming;\n }\n else if (typeof incoming === 'string') {\n authenticator = {\n key: incoming\n };\n }\n else {\n throw new Error('Invalid format for authenticator');\n }\n return authenticator;\n}\nfunction compareAuthenticators(auth1, auth2) {\n if (!auth1 || !auth2) {\n return false;\n }\n if (auth1.id && auth2.id) {\n return (auth1.id === auth2.id);\n }\n if (auth1.key && auth2.key) {\n return (auth1.key === auth2.key);\n }\n return false;\n}\nfunction findMatchedOption(authenticators, options) {\n let option;\n for (let authenticator of authenticators) {\n option = options\n .find(({ relatesTo }) => relatesTo.key && relatesTo.key === authenticator.key);\n if (option) {\n break;\n }\n }\n return option;\n}\n\nexport { compareAuthenticators, findMatchedOption, formatAuthenticator };\n//# sourceMappingURL=util.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { getRequiredValues, getAllValues, titleCase, getAuthenticatorFromRemediation } from '../util.js';\nimport { formatAuthenticator, compareAuthenticators } from '../../authenticator/util.js';\n\nclass Remediator {\n constructor(remediation, values = {}, options = {}) {\n this.values = Object.assign({}, values);\n this.options = Object.assign({}, options);\n this.formatAuthenticators();\n this.remediation = remediation;\n }\n formatAuthenticators() {\n this.values.authenticators = (this.values.authenticators || []);\n this.values.authenticators = this.values.authenticators.map(authenticator => {\n return formatAuthenticator(authenticator);\n });\n if (this.values.authenticator) {\n const authenticator = formatAuthenticator(this.values.authenticator);\n const hasAuthenticatorInList = this.values.authenticators.some(existing => {\n return compareAuthenticators(authenticator, existing);\n });\n if (!hasAuthenticatorInList) {\n this.values.authenticators.push(authenticator);\n }\n }\n this.values.authenticatorsData = this.values.authenticators.reduce((acc, authenticator) => {\n if (typeof authenticator === 'object' && Object.keys(authenticator).length > 1) {\n acc.push(authenticator);\n }\n return acc;\n }, this.values.authenticatorsData || []);\n }\n getName() {\n return this.remediation.name;\n }\n canRemediate(context) {\n const required = getRequiredValues(this.remediation);\n const needed = required.find((key) => !this.hasData(key));\n if (needed) {\n return false;\n }\n return true;\n }\n getData(key) {\n if (!key) {\n let allValues = getAllValues(this.remediation);\n let res = allValues.reduce((data, key) => {\n data[key] = this.getData(key);\n return data;\n }, {});\n return res;\n }\n if (typeof this[`map${titleCase(key)}`] === 'function') {\n const val = this[`map${titleCase(key)}`](this.remediation.value.find(({ name }) => name === key));\n if (val) {\n return val;\n }\n }\n if (this.map && this.map[key]) {\n const entry = this.map[key];\n for (let i = 0; i < entry.length; i++) {\n let val = this.values[entry[i]];\n if (val) {\n return val;\n }\n }\n }\n return this.values[key];\n }\n hasData(key\n ) {\n return !!this.getData(key);\n }\n getNextStep(_authClient, _context) {\n const name = this.getName();\n const inputs = this.getInputs();\n const authenticator = this.getAuthenticator();\n const type = authenticator === null || authenticator === void 0 ? void 0 : authenticator.type;\n return Object.assign(Object.assign({ name,\n inputs }, (type && { type })), (authenticator && { authenticator }));\n }\n getInputs() {\n const inputs = [];\n const inputsFromRemediation = this.remediation.value || [];\n inputsFromRemediation.forEach(inputFromRemediation => {\n let input;\n let { name, type, visible, messages } = inputFromRemediation;\n if (visible === false) {\n return;\n }\n if (typeof this[`getInput${titleCase(name)}`] === 'function') {\n input = this[`getInput${titleCase(name)}`](inputFromRemediation);\n }\n else if (type !== 'object') {\n let alias;\n const aliases = (this.map ? this.map[name] : null) || [];\n if (aliases.length === 1) {\n alias = aliases[0];\n }\n else {\n alias = aliases.find(name => Object.keys(this.values).includes(name));\n }\n if (alias) {\n input = Object.assign(Object.assign({}, inputFromRemediation), { name: alias });\n }\n }\n if (!input) {\n input = inputFromRemediation;\n }\n if (Array.isArray(input)) {\n input.forEach(i => inputs.push(i));\n }\n else {\n if (messages) {\n input.messages = messages;\n }\n inputs.push(input);\n }\n });\n return inputs;\n }\n static getMessages(remediation) {\n var _a, _b;\n if (!remediation.value) {\n return;\n }\n return (_b = (_a = remediation.value[0]) === null || _a === void 0 ? void 0 : _a.form) === null || _b === void 0 ? void 0 : _b.value.reduce((messages, field) => {\n if (field.messages) {\n messages = [...messages, ...field.messages.value];\n }\n return messages;\n }, []);\n }\n getValuesAfterProceed() {\n const inputsFromRemediation = this.remediation.value || [];\n const inputsFromRemediator = this.getInputs();\n const inputs = [\n ...inputsFromRemediation,\n ...inputsFromRemediator\n ];\n for (const input of inputs) {\n delete this.values[input.name];\n }\n return this.values;\n }\n getAuthenticator() {\n var _a, _b;\n const relatesTo = (_a = this.remediation.relatesTo) === null || _a === void 0 ? void 0 : _a.value;\n if (!relatesTo) {\n return;\n }\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n if (!authenticatorFromRemediation) {\n return relatesTo;\n }\n const id = authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'id').value;\n const enrollmentId = (_b = authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'enrollmentId')) === null || _b === void 0 ? void 0 : _b.value;\n return Object.assign(Object.assign({}, relatesTo), { id,\n enrollmentId });\n }\n}\n\nexport { Remediator };\n//# sourceMappingURL=Remediator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport '../../../errors/WWWAuthError.js';\n\nfunction unwrapFormValue(remediation) {\n if (Array.isArray(remediation)) {\n return remediation\n .map(item => {\n if (typeof item === 'string' || typeof item === 'number' || typeof item === 'boolean') {\n return item;\n }\n return unwrapFormValue(item);\n });\n }\n const res = {};\n for (const [key, value] of Object.entries(remediation)) {\n if (value === null || typeof value === 'undefined') {\n continue;\n }\n if (typeof value === 'object') {\n const formKeys = Object.keys(value);\n if (['value', 'form'].includes(key)\n && formKeys.length === 1\n && ['value', 'form'].includes(formKeys[0])) {\n const unwrappedForm = unwrapFormValue(value);\n Object.entries(unwrappedForm).forEach(([key, value]) => {\n res[key] = value;\n });\n }\n else {\n res[key] = unwrapFormValue(value);\n }\n }\n else {\n res[key] = value;\n }\n }\n return res;\n}\n\nexport { unwrapFormValue };\n//# sourceMappingURL=util.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { __rest } from '../../../_virtual/_tslib.js';\nimport { Remediator } from '../Base/Remediator.js';\nimport { unwrapFormValue } from './util.js';\n\nclass GenericRemediator extends Remediator {\n canRemediate() {\n if (typeof this.remediation.action !== 'function') {\n return false;\n }\n if (this.remediation.name === 'poll' || this.remediation.name.endsWith('-poll')) {\n return true;\n }\n if (this.options.step) {\n return true;\n }\n return false;\n }\n getData() {\n const data = this.getInputs().reduce((acc, { name }) => {\n acc[name] = this.values[name];\n return acc;\n }, {});\n return data;\n }\n getNextStep(authClient, _context) {\n const name = this.getName();\n const inputs = this.getInputs();\n const _a = this.remediation, {\n href, method, rel, accepts, produces,\n value,\n action } = _a, rest = __rest(_a, [\"href\", \"method\", \"rel\", \"accepts\", \"produces\", \"value\", \"action\"]);\n if (action) {\n return Object.assign(Object.assign(Object.assign({}, rest), (!!inputs.length && { inputs })), { action: async (params) => {\n return authClient.idx.proceed(Object.assign({ step: name }, params));\n } });\n }\n return Object.assign({}, this.remediation);\n }\n getInputs() {\n return (this.remediation.value || [])\n .filter(({ name }) => name !== 'stateHandle')\n .map(unwrapFormValue)\n .map(input => {\n input.type = input.type || 'string';\n return input;\n });\n }\n}\n\nexport { GenericRemediator };\n//# sourceMappingURL=GenericRemediator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { __rest } from '../_virtual/_tslib.js';\nimport { warn } from '../util/console.js';\nimport { split2 } from '../util/misc.js';\nimport { GenericRemediator } from './remediators/GenericRemediator/GenericRemediator.js';\nimport { IdxFeature } from './types/api.js';\n\nconst ctx = {\n remediators: {},\n getFlowSpecification: function (_oktaAuth, _flow = 'default') {\n return {\n remediators: {}\n };\n }\n};\nfunction setRemediatorsCtx(newCtx) {\n Object.assign(ctx, newCtx);\n}\nfunction getFlowSpecification(oktaAuth, flow = 'default') {\n return ctx.getFlowSpecification(oktaAuth, flow);\n}\nfunction isTerminalResponse(idxResponse) {\n const { neededToProceed, interactionCode } = idxResponse;\n return !neededToProceed.length && !interactionCode;\n}\nfunction canSkipFn(idxResponse) {\n return idxResponse.neededToProceed.some(({ name }) => name === 'skip');\n}\nfunction canResendFn(idxResponse) {\n return Object.keys(idxResponse.actions).some(actionName => actionName.includes('resend'));\n}\nfunction getMessagesFromIdxRemediationValue(value) {\n if (!value || !Array.isArray(value)) {\n return;\n }\n return value.reduce((messages, value) => {\n if (value.messages) {\n messages = [...messages, ...value.messages.value];\n }\n if (value.form) {\n const messagesFromForm = getMessagesFromIdxRemediationValue(value.form.value) || [];\n messages = [...messages, ...messagesFromForm];\n }\n if (value.options) {\n let optionValues = [];\n value.options.forEach(option => {\n if (!option.value || typeof option.value === 'string') {\n return;\n }\n optionValues = [...optionValues, option.value];\n });\n const messagesFromOptions = getMessagesFromIdxRemediationValue(optionValues) || [];\n messages = [...messages, ...messagesFromOptions];\n }\n return messages;\n }, []);\n}\nfunction getMessagesFromResponse(idxResponse, options) {\n var _a;\n let messages = [];\n const { rawIdxState, neededToProceed } = idxResponse;\n const globalMessages = (_a = rawIdxState.messages) === null || _a === void 0 ? void 0 : _a.value.map(message => message);\n if (globalMessages) {\n messages = [...messages, ...globalMessages];\n }\n if (!options.useGenericRemediator) {\n for (let remediation of neededToProceed) {\n const fieldMessages = getMessagesFromIdxRemediationValue(remediation.value);\n if (fieldMessages) {\n messages = [...messages, ...fieldMessages];\n }\n }\n }\n const seen = {};\n messages = messages.reduce((filtered, message) => {\n var _a;\n const key = (_a = message.i18n) === null || _a === void 0 ? void 0 : _a.key;\n if (key && seen[key] && message.message === seen[key].message) {\n return filtered;\n }\n seen[key] = message;\n filtered = [...filtered, message];\n return filtered;\n }, []);\n return messages;\n}\nfunction getEnabledFeatures(idxResponse) {\n const res = [];\n const { actions, neededToProceed } = idxResponse;\n if (actions['currentAuthenticator-recover']) {\n res.push(IdxFeature.PASSWORD_RECOVERY);\n }\n if (neededToProceed.some(({ name }) => name === 'select-enroll-profile')) {\n res.push(IdxFeature.REGISTRATION);\n }\n if (neededToProceed.some(({ name }) => name === 'redirect-idp')) {\n res.push(IdxFeature.SOCIAL_IDP);\n }\n if (neededToProceed.some(({ name }) => name === 'unlock-account')) {\n res.push(IdxFeature.ACCOUNT_UNLOCK);\n }\n return res;\n}\nfunction getAvailableSteps(authClient, idxResponse, useGenericRemediator) {\n var _a;\n const res = [];\n const remediatorMap = Object.values(ctx.remediators)\n .reduce((map, remediatorClass) => {\n if (remediatorClass.remediationName) {\n map[remediatorClass.remediationName] = remediatorClass;\n }\n return map;\n }, {});\n for (let remediation of idxResponse.neededToProceed) {\n const T = getRemediatorClass(remediation, { useGenericRemediator, remediators: remediatorMap });\n if (T) {\n const remediator = new T(remediation);\n res.push(remediator.getNextStep(authClient, idxResponse.context));\n }\n }\n for (const [name] of Object.entries((idxResponse.actions || {}))) {\n let stepObj = {\n name,\n action: async (params) => {\n return authClient.idx.proceed({\n actions: [{ name, params }]\n });\n }\n };\n if (name.startsWith('currentAuthenticator')) {\n const [part1, part2] = split2(name, '-');\n const actionObj = idxResponse.rawIdxState[part1].value[part2];\n const rest = __rest(actionObj, [\"href\", \"method\", \"rel\", \"accepts\", \"produces\"]);\n const value = (_a = actionObj.value) === null || _a === void 0 ? void 0 : _a.filter(item => item.name !== 'stateHandle');\n stepObj = Object.assign(Object.assign(Object.assign({}, rest), (value && { value })), stepObj);\n }\n res.push(stepObj);\n }\n return res;\n}\nfunction filterValuesForRemediation(idxResponse, remediationName, values) {\n const remediations = idxResponse.neededToProceed || [];\n const remediation = remediations.find(r => r.name === remediationName);\n if (!remediation) {\n warn(`filterValuesForRemediation: \"${remediationName}\" did not match any remediations`);\n return values;\n }\n const valuesForRemediation = remediation.value.reduce((res, entry) => {\n const { name, value } = entry;\n if (name === 'stateHandle') {\n res[name] = value;\n }\n else {\n res[name] = values[name];\n }\n return res;\n }, {});\n return valuesForRemediation;\n}\nfunction getRemediatorClass(remediation, options) {\n const { useGenericRemediator, remediators } = options;\n if (!remediation) {\n return undefined;\n }\n if (useGenericRemediator) {\n return GenericRemediator;\n }\n return remediators[remediation.name];\n}\nfunction getRemediator(idxResponse, values, options) {\n const remediators = options.remediators;\n const useGenericRemediator = options.useGenericRemediator;\n const { neededToProceed: idxRemediations, context } = idxResponse;\n let remediator;\n if (options.step) {\n const remediation = idxRemediations.find(({ name }) => name === options.step);\n if (remediation) {\n const T = getRemediatorClass(remediation, options);\n return T ? new T(remediation, values, options) : undefined;\n }\n else {\n warn(`step \"${options.step}\" did not match any remediations`);\n return;\n }\n }\n const remediatorCandidates = [];\n if (useGenericRemediator) {\n remediatorCandidates.push(new GenericRemediator(idxRemediations[0], values, options));\n }\n else {\n for (let remediation of idxRemediations) {\n const isRemeditionInFlow = Object.keys(remediators).includes(remediation.name);\n if (!isRemeditionInFlow) {\n continue;\n }\n const T = getRemediatorClass(remediation, options);\n remediator = new T(remediation, values, options);\n if (remediator.canRemediate(context)) {\n return remediator;\n }\n remediatorCandidates.push(remediator);\n }\n }\n return remediatorCandidates[0];\n}\nfunction getNextStep(authClient, remediator, idxResponse) {\n const nextStep = remediator.getNextStep(authClient, idxResponse.context);\n const canSkip = canSkipFn(idxResponse);\n const canResend = canResendFn(idxResponse);\n return Object.assign(Object.assign(Object.assign({}, nextStep), (canSkip && { canSkip })), (canResend && { canResend }));\n}\nfunction handleFailedResponse(authClient, idxResponse, options = {}) {\n const terminal = isTerminalResponse(idxResponse);\n const messages = getMessagesFromResponse(idxResponse, options);\n if (terminal) {\n return { idxResponse, terminal, messages };\n }\n else {\n const remediator = getRemediator(idxResponse, {}, options);\n const nextStep = remediator && getNextStep(authClient, remediator, idxResponse);\n return Object.assign({ idxResponse,\n messages }, (nextStep && { nextStep }));\n }\n}\n\nexport { canResendFn, canSkipFn, filterValuesForRemediation, getAvailableSteps, getEnabledFeatures, getFlowSpecification, getMessagesFromIdxRemediationValue, getMessagesFromResponse, getNextStep, getRemediator, handleFailedResponse, isTerminalResponse, setRemediatorsCtx };\n//# sourceMappingURL=util.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { getRemediator, handleFailedResponse, isTerminalResponse, filterValuesForRemediation, getNextStep } from './util.js';\n\nfunction getActionFromValues(values, idxResponse) {\n return Object.keys(idxResponse.actions).find(action => !!values.resend && action.includes('-resend'));\n}\nfunction removeActionFromValues(values) {\n return Object.assign(Object.assign({}, values), { resend: undefined });\n}\nfunction removeActionFromOptions(options, actionName) {\n let actions = options.actions || [];\n actions = actions.filter(entry => {\n if (typeof entry === 'string') {\n return entry !== actionName;\n }\n return entry.name !== actionName;\n });\n return Object.assign(Object.assign({}, options), { actions });\n}\nasync function remediate(authClient, idxResponse, values, options) {\n let { neededToProceed, interactionCode } = idxResponse;\n const { flow } = options;\n if (interactionCode) {\n return { idxResponse };\n }\n const remediator = getRemediator(idxResponse, values, options);\n const actionFromValues = getActionFromValues(values, idxResponse);\n const actionFromOptions = options.actions || [];\n const actions = [\n ...actionFromOptions,\n ...(actionFromValues && [actionFromValues] || []),\n ];\n if (actions) {\n for (let action of actions) {\n let params = {};\n if (typeof action !== 'string') {\n params = action.params || {};\n action = action.name;\n }\n let valuesWithoutExecutedAction = removeActionFromValues(values);\n let optionsWithoutExecutedAction = removeActionFromOptions(options, action);\n if (typeof idxResponse.actions[action] === 'function') {\n idxResponse = await idxResponse.actions[action](params);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n if (action === 'cancel') {\n return { idxResponse, canceled: true };\n }\n return remediate(authClient, idxResponse, valuesWithoutExecutedAction, optionsWithoutExecutedAction);\n }\n const remediationAction = neededToProceed.find(({ name }) => name === action);\n if (remediationAction) {\n idxResponse = await idxResponse.proceed(action, params);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n return remediate(authClient, idxResponse, values, optionsWithoutExecutedAction);\n }\n }\n }\n const terminal = isTerminalResponse(idxResponse);\n if (terminal) {\n return { idxResponse, terminal };\n }\n if (!remediator) {\n if (options.step) {\n values = filterValuesForRemediation(idxResponse, options.step, values);\n idxResponse = await idxResponse.proceed(options.step, values);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n return { idxResponse };\n }\n if (flow === 'default') {\n return { idxResponse };\n }\n throw new AuthSdkError(`\n No remediation can match current flow, check policy settings in your org.\n Remediations: [${neededToProceed.reduce((acc, curr) => acc ? acc + ' ,' + curr.name : curr.name, '')}]\n `);\n }\n if (!remediator.canRemediate()) {\n const nextStep = getNextStep(authClient, remediator, idxResponse);\n return {\n idxResponse,\n nextStep,\n };\n }\n const name = remediator.getName();\n const data = remediator.getData();\n idxResponse = await idxResponse.proceed(name, data);\n if (idxResponse.requestDidSucceed === false) {\n return handleFailedResponse(authClient, idxResponse, options);\n }\n values = remediator.getValuesAfterProceed();\n options = Object.assign(Object.assign({}, options), { step: undefined });\n if (options.useGenericRemediator && !idxResponse.interactionCode && !isTerminalResponse(idxResponse)) {\n const gr = getRemediator(idxResponse, values, options);\n const nextStep = getNextStep(authClient, gr, idxResponse);\n return {\n idxResponse,\n nextStep,\n };\n }\n return remediate(authClient, idxResponse, values, options);\n}\n\nexport { remediate };\n//# sourceMappingURL=remediate.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { interact } from './interact.js';\nimport { introspect } from './introspect.js';\nimport { remediate } from './remediate.js';\nimport { IdxStatus } from './types/api.js';\nimport { saveTransactionMeta, getSavedTransactionMeta } from './transactionMeta.js';\nimport { getFlowSpecification, getEnabledFeatures, getAvailableSteps, getMessagesFromResponse, isTerminalResponse } from './util.js';\n\nfunction initializeValues(options) {\n const knownOptions = [\n 'flow',\n 'remediators',\n 'actions',\n 'withCredentials',\n 'step',\n 'useGenericRemediator',\n 'exchangeCodeForTokens',\n ];\n const values = Object.assign({}, options);\n knownOptions.forEach(option => {\n delete values[option];\n });\n return values;\n}\nfunction initializeData(authClient, data) {\n var _a, _b, _c, _d;\n let { options } = data;\n options = Object.assign(Object.assign({}, authClient.options.idx), options);\n let { flow, withCredentials, remediators, actions, } = options;\n const status = IdxStatus.PENDING;\n flow = flow || ((_b = (_a = authClient.idx).getFlow) === null || _b === void 0 ? void 0 : _b.call(_a)) || 'default';\n if (flow) {\n (_d = (_c = authClient.idx).setFlow) === null || _d === void 0 ? void 0 : _d.call(_c, flow);\n const flowSpec = getFlowSpecification(authClient, flow);\n withCredentials = (typeof withCredentials !== 'undefined') ? withCredentials : flowSpec.withCredentials;\n remediators = remediators || flowSpec.remediators;\n actions = actions || flowSpec.actions;\n }\n return Object.assign(Object.assign({}, data), { options: Object.assign(Object.assign({}, options), { flow,\n withCredentials,\n remediators,\n actions }), status });\n}\nasync function getDataFromIntrospect(authClient, data) {\n const { options } = data;\n const { stateHandle, withCredentials, version, state, scopes, recoveryToken, activationToken, maxAge, acrValues, nonce, useGenericRemediator, } = options;\n let idxResponse;\n let meta = getSavedTransactionMeta(authClient, { state, recoveryToken, activationToken });\n if (stateHandle) {\n idxResponse = await introspect(authClient, { withCredentials, version, stateHandle, useGenericRemediator });\n }\n else {\n let interactionHandle = meta === null || meta === void 0 ? void 0 : meta.interactionHandle;\n if (!interactionHandle) {\n authClient.transactionManager.clear();\n const interactResponse = await interact(authClient, {\n withCredentials,\n state,\n scopes,\n activationToken,\n recoveryToken,\n maxAge,\n acrValues,\n nonce,\n });\n interactionHandle = interactResponse.interactionHandle;\n meta = interactResponse.meta;\n }\n idxResponse = await introspect(authClient, { withCredentials, version, interactionHandle, useGenericRemediator });\n }\n return Object.assign(Object.assign({}, data), { idxResponse, meta });\n}\nasync function getDataFromRemediate(authClient, data) {\n let { idxResponse, options, values } = data;\n const { autoRemediate, remediators, actions, flow, step, useGenericRemediator, } = options;\n const shouldRemediate = (autoRemediate !== false && (remediators || actions || step));\n if (!shouldRemediate) {\n return data;\n }\n values = Object.assign(Object.assign({}, values), { stateHandle: idxResponse.rawIdxState.stateHandle });\n const { idxResponse: idxResponseFromRemediation, nextStep, canceled, } = await remediate(authClient, idxResponse, values, {\n remediators,\n actions,\n flow,\n step,\n useGenericRemediator,\n });\n idxResponse = idxResponseFromRemediation;\n return Object.assign(Object.assign({}, data), { idxResponse, nextStep, canceled });\n}\nasync function getTokens(authClient, data) {\n let { meta, idxResponse } = data;\n const { interactionCode } = idxResponse;\n const { clientId, codeVerifier, ignoreSignature, redirectUri, urls, scopes, } = meta;\n const tokenResponse = await authClient.token.exchangeCodeForTokens({\n interactionCode,\n clientId,\n codeVerifier,\n ignoreSignature,\n redirectUri,\n scopes\n }, urls);\n return tokenResponse.tokens;\n}\nasync function finalizeData(authClient, data) {\n let { options, idxResponse, canceled, status, } = data;\n const { exchangeCodeForTokens } = options;\n let shouldSaveResponse = false;\n let shouldClearTransaction = false;\n let clearSharedStorage = true;\n let interactionCode;\n let tokens;\n let enabledFeatures;\n let availableSteps;\n let messages;\n let terminal;\n if (idxResponse) {\n shouldSaveResponse = !!(idxResponse.requestDidSucceed || idxResponse.stepUp);\n enabledFeatures = getEnabledFeatures(idxResponse);\n availableSteps = getAvailableSteps(authClient, idxResponse, options.useGenericRemediator);\n messages = getMessagesFromResponse(idxResponse, options);\n terminal = isTerminalResponse(idxResponse);\n }\n if (terminal) {\n status = IdxStatus.TERMINAL;\n const hasActions = Object.keys(idxResponse.actions).length > 0;\n const hasErrors = !!messages.find(msg => msg.class === 'ERROR');\n const isTerminalSuccess = !hasActions && !hasErrors && idxResponse.requestDidSucceed === true;\n if (isTerminalSuccess) {\n shouldClearTransaction = true;\n }\n else {\n shouldSaveResponse = !!hasActions;\n }\n clearSharedStorage = false;\n }\n else if (canceled) {\n status = IdxStatus.CANCELED;\n shouldClearTransaction = true;\n }\n else if (idxResponse === null || idxResponse === void 0 ? void 0 : idxResponse.interactionCode) {\n interactionCode = idxResponse.interactionCode;\n if (exchangeCodeForTokens === false) {\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = false;\n }\n else {\n tokens = await getTokens(authClient, data);\n status = IdxStatus.SUCCESS;\n shouldClearTransaction = true;\n }\n }\n return Object.assign(Object.assign({}, data), { status,\n interactionCode,\n tokens,\n shouldSaveResponse,\n shouldClearTransaction,\n clearSharedStorage,\n enabledFeatures,\n availableSteps,\n messages,\n terminal });\n}\nasync function run(authClient, options = {}) {\n var _a;\n let data = {\n options,\n values: initializeValues(options)\n };\n data = initializeData(authClient, data);\n data = await getDataFromIntrospect(authClient, data);\n data = await getDataFromRemediate(authClient, data);\n data = await finalizeData(authClient, data);\n const { idxResponse, meta, shouldSaveResponse, shouldClearTransaction, clearSharedStorage, status, enabledFeatures, availableSteps, tokens, nextStep, messages, error, interactionCode } = data;\n if (shouldClearTransaction) {\n authClient.transactionManager.clear({ clearSharedStorage });\n }\n else {\n saveTransactionMeta(authClient, Object.assign({}, meta));\n if (shouldSaveResponse) {\n const { rawIdxState: rawIdxResponse, requestDidSucceed } = idxResponse;\n authClient.transactionManager.saveIdxResponse({\n rawIdxResponse,\n requestDidSucceed,\n stateHandle: (_a = idxResponse.context) === null || _a === void 0 ? void 0 : _a.stateHandle,\n interactionHandle: meta === null || meta === void 0 ? void 0 : meta.interactionHandle\n });\n }\n }\n const { actions, context, neededToProceed, proceed, rawIdxState, requestDidSucceed, stepUp } = idxResponse || {};\n return Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ status: status }, (meta && { meta })), (enabledFeatures && { enabledFeatures })), (availableSteps && { availableSteps })), (tokens && { tokens })), (nextStep && { nextStep })), (messages && messages.length && { messages })), (error && { error })), (stepUp && { stepUp })), { interactionCode,\n actions: actions, context: context, neededToProceed: neededToProceed, proceed: proceed, rawIdxState: rawIdxState, requestDidSucceed });\n}\n\nexport { run };\n//# sourceMappingURL=run.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { AuthenticatorKey } from './types/api.js';\nimport { run } from './run.js';\n\nasync function authenticate(authClient, options = {}) {\n if (options.password && !options.authenticator) {\n options.authenticator = AuthenticatorKey.OKTA_PASSWORD;\n }\n return run(authClient, Object.assign(Object.assign({}, options), { flow: 'authenticate' }));\n}\n\nexport { authenticate };\n//# sourceMappingURL=authenticate.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nclass Authenticator {\n constructor(authenticator) {\n this.meta = authenticator;\n }\n}\n\nexport { Authenticator };\n//# sourceMappingURL=Authenticator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Authenticator } from './Authenticator.js';\n\nclass VerificationCodeAuthenticator extends Authenticator {\n canVerify(values) {\n return !!(values.credentials || values.verificationCode || values.otp);\n }\n mapCredentials(values) {\n const { credentials, verificationCode, otp } = values;\n if (!credentials && !verificationCode && !otp) {\n return;\n }\n return credentials || { passcode: verificationCode || otp };\n }\n getInputs(idxRemediationValue) {\n var _a;\n return Object.assign(Object.assign({}, (_a = idxRemediationValue.form) === null || _a === void 0 ? void 0 : _a.value[0]), { name: 'verificationCode', type: 'string', required: idxRemediationValue.required });\n }\n}\n\nexport { VerificationCodeAuthenticator };\n//# sourceMappingURL=VerificationCodeAuthenticator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { VerificationCodeAuthenticator } from './VerificationCodeAuthenticator.js';\n\nclass OktaVerifyTotp extends VerificationCodeAuthenticator {\n mapCredentials(values) {\n const { verificationCode } = values;\n if (!verificationCode) {\n return;\n }\n return { totp: verificationCode };\n }\n}\n\nexport { OktaVerifyTotp };\n//# sourceMappingURL=OktaVerifyTotp.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Authenticator } from './Authenticator.js';\n\nclass OktaPassword extends Authenticator {\n canVerify(values) {\n return !!(values.credentials || values.password || values.passcode);\n }\n mapCredentials(values) {\n const { credentials, password, passcode, revokeSessions } = values;\n if (!credentials && !password && !passcode) {\n return;\n }\n return credentials || {\n passcode: passcode || password,\n revokeSessions,\n };\n }\n getInputs(idxRemediationValue) {\n var _a, _b;\n const inputs = [Object.assign(Object.assign({}, (_a = idxRemediationValue.form) === null || _a === void 0 ? void 0 : _a.value[0]), { name: 'password', type: 'string', required: idxRemediationValue.required })];\n const revokeSessions = (_b = idxRemediationValue.form) === null || _b === void 0 ? void 0 : _b.value.find(input => input.name === 'revokeSessions');\n if (revokeSessions) {\n inputs.push({\n name: 'revokeSessions',\n type: 'boolean',\n label: 'Sign me out of all other devices',\n required: false,\n });\n }\n return inputs;\n }\n}\n\nexport { OktaPassword };\n//# sourceMappingURL=OktaPassword.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Authenticator } from './Authenticator.js';\n\nclass SecurityQuestionEnrollment extends Authenticator {\n canVerify(values) {\n const { credentials } = values;\n if (credentials && credentials.questionKey && credentials.answer) {\n return true;\n }\n const { questionKey, question, answer } = values;\n return !!(questionKey && answer) || !!(question && answer);\n }\n mapCredentials(values) {\n const { questionKey, question, answer } = values;\n if (!answer || (!questionKey && !question)) {\n return;\n }\n return {\n questionKey: question ? 'custom' : questionKey,\n question,\n answer\n };\n }\n getInputs() {\n return [\n { name: 'questionKey', type: 'string', required: true },\n { name: 'question', type: 'string', label: 'Create a security question' },\n { name: 'answer', type: 'string', label: 'Answer', required: true },\n ];\n }\n}\n\nexport { SecurityQuestionEnrollment };\n//# sourceMappingURL=SecurityQuestionEnrollment.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Authenticator } from './Authenticator.js';\n\nclass SecurityQuestionVerification extends Authenticator {\n canVerify(values) {\n const { credentials } = values;\n if (credentials && credentials.answer) {\n return true;\n }\n const { answer } = values;\n return !!answer;\n }\n mapCredentials(values) {\n const { answer } = values;\n if (!answer) {\n return;\n }\n return {\n questionKey: this.meta.contextualData.enrolledQuestion.questionKey,\n answer\n };\n }\n getInputs() {\n return [\n { name: 'answer', type: 'string', label: 'Answer', required: true }\n ];\n }\n}\n\nexport { SecurityQuestionVerification };\n//# sourceMappingURL=SecurityQuestionVerification.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Authenticator } from './Authenticator.js';\n\nclass WebauthnEnrollment extends Authenticator {\n canVerify(values) {\n const { credentials } = values;\n const obj = credentials || values;\n const { clientData, attestation } = obj;\n return !!(clientData && attestation);\n }\n mapCredentials(values) {\n const { credentials, clientData, attestation } = values;\n if (!credentials && !clientData && !attestation) {\n return;\n }\n return credentials || ({\n clientData,\n attestation\n });\n }\n getInputs() {\n return [\n { name: 'clientData', type: 'string', required: true, visible: false, label: 'Client Data' },\n { name: 'attestation', type: 'string', required: true, visible: false, label: 'Attestation' },\n ];\n }\n}\n\nexport { WebauthnEnrollment };\n//# sourceMappingURL=WebauthnEnrollment.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Authenticator } from './Authenticator.js';\n\nclass WebauthnVerification extends Authenticator {\n canVerify(values) {\n const { credentials } = values;\n const obj = credentials || values;\n const { clientData, authenticatorData, signatureData } = obj;\n return !!(clientData && authenticatorData && signatureData);\n }\n mapCredentials(values) {\n const { credentials, authenticatorData, clientData, signatureData } = values;\n if (!credentials && !authenticatorData && !clientData && !signatureData) {\n return;\n }\n return credentials || ({\n authenticatorData,\n clientData,\n signatureData\n });\n }\n getInputs() {\n return [\n { name: 'authenticatorData', type: 'string', label: 'Authenticator Data', required: true, visible: false },\n { name: 'clientData', type: 'string', label: 'Client Data', required: true, visible: false },\n { name: 'signatureData', type: 'string', label: 'Signature Data', required: true, visible: false },\n ];\n }\n}\n\nexport { WebauthnVerification };\n//# sourceMappingURL=WebauthnVerification.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { OktaVerifyTotp } from './OktaVerifyTotp.js';\nimport { VerificationCodeAuthenticator } from './VerificationCodeAuthenticator.js';\nimport { OktaPassword } from './OktaPassword.js';\nimport { SecurityQuestionEnrollment } from './SecurityQuestionEnrollment.js';\nimport { SecurityQuestionVerification } from './SecurityQuestionVerification.js';\nimport { WebauthnEnrollment } from './WebauthnEnrollment.js';\nimport { WebauthnVerification } from './WebauthnVerification.js';\nimport { AuthenticatorKey } from '../types/api.js';\n\nfunction getAuthenticator(remediation) {\n var _a, _b;\n const relatesTo = remediation.relatesTo;\n const value = (relatesTo === null || relatesTo === void 0 ? void 0 : relatesTo.value) || {};\n switch (value.key) {\n case AuthenticatorKey.OKTA_PASSWORD:\n return new OktaPassword(value);\n case AuthenticatorKey.SECURITY_QUESTION:\n if ((_a = value.contextualData) === null || _a === void 0 ? void 0 : _a.enrolledQuestion) {\n return new SecurityQuestionVerification(value);\n }\n else {\n return new SecurityQuestionEnrollment(value);\n }\n case AuthenticatorKey.OKTA_VERIFY:\n return new OktaVerifyTotp(value);\n case AuthenticatorKey.WEBAUTHN:\n if ((_b = value.contextualData) === null || _b === void 0 ? void 0 : _b.challengeData) {\n return new WebauthnVerification(value);\n }\n else {\n return new WebauthnEnrollment(value);\n }\n default:\n return new VerificationCodeAuthenticator(value);\n }\n}\n\nexport { getAuthenticator };\n//# sourceMappingURL=getAuthenticator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Remediator.js';\nimport { getAuthenticator } from '../../authenticator/getAuthenticator.js';\n\nclass VerifyAuthenticator extends Remediator {\n constructor(remediation, values = {}) {\n super(remediation, values);\n this.authenticator = getAuthenticator(remediation);\n }\n getNextStep(authClient, context) {\n var _a;\n const nextStep = super.getNextStep(authClient, context);\n const authenticatorEnrollments = (_a = context === null || context === void 0 ? void 0 : context.authenticatorEnrollments) === null || _a === void 0 ? void 0 : _a.value;\n return Object.assign(Object.assign({}, nextStep), { authenticatorEnrollments });\n }\n canRemediate() {\n return this.authenticator.canVerify(this.values);\n }\n mapCredentials() {\n return this.authenticator.mapCredentials(this.values);\n }\n getInputCredentials(input) {\n return this.authenticator.getInputs(input);\n }\n getValuesAfterProceed() {\n this.values = super.getValuesAfterProceed();\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'credentials');\n return trimmedValues.reduce((values, valueKey) => (Object.assign(Object.assign({}, values), { [valueKey]: this.values[valueKey] })), {});\n }\n}\n\nexport { VerifyAuthenticator };\n//# sourceMappingURL=VerifyAuthenticator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { VerifyAuthenticator } from './Base/VerifyAuthenticator.js';\n\nclass EnrollAuthenticator extends VerifyAuthenticator {\n}\nEnrollAuthenticator.remediationName = 'enroll-authenticator';\n\nexport { EnrollAuthenticator };\n//# sourceMappingURL=EnrollAuthenticator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Base/Remediator.js';\n\nclass EnrollPoll extends Remediator {\n canRemediate() {\n return !!this.values.startPolling || this.options.step === 'enroll-poll';\n }\n getNextStep(authClient, context) {\n const common = super.getNextStep(authClient, context);\n let authenticator = this.getAuthenticator();\n if (!authenticator && (context === null || context === void 0 ? void 0 : context.currentAuthenticator)) {\n authenticator = context.currentAuthenticator.value;\n }\n return Object.assign(Object.assign({}, common), { authenticator, poll: {\n required: true,\n refresh: this.remediation.refresh\n } });\n }\n getValuesAfterProceed() {\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'startPolling');\n return trimmedValues.reduce((values, valueKey) => (Object.assign(Object.assign({}, values), { [valueKey]: this.values[valueKey] })), {});\n }\n}\nEnrollPoll.remediationName = 'enroll-poll';\n\nexport { EnrollPoll };\n//# sourceMappingURL=EnrollPoll.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Base/Remediator.js';\n\nclass SelectEnrollmentChannel extends Remediator {\n canRemediate() {\n if (this.values.channel) {\n return true;\n }\n if (this.values.authenticator) {\n const { id, channel } = this.values.authenticator;\n if (!!id && !!channel) {\n return true;\n }\n }\n return false;\n }\n getNextStep(authClient, context) {\n const common = super.getNextStep(authClient, context);\n const authenticator = context.currentAuthenticator.value;\n return Object.assign(Object.assign({}, common), { authenticator });\n }\n getData() {\n var _a;\n const remediationValue = this.remediation.value[0].value;\n return {\n authenticator: {\n id: remediationValue.form.value[0].value,\n channel: ((_a = this.values.authenticator) === null || _a === void 0 ? void 0 : _a.channel) || this.values.channel,\n },\n stateHandle: this.values.stateHandle,\n };\n }\n getValuesAfterProceed() {\n this.values = super.getValuesAfterProceed();\n delete this.values.authenticators;\n const filterKey = this.values.channel ? 'channel' : 'authenticator';\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== filterKey);\n return trimmedValues.reduce((values, valueKey) => (Object.assign(Object.assign({}, values), { [valueKey]: this.values[valueKey] })), {});\n }\n}\nSelectEnrollmentChannel.remediationName = 'select-enrollment-channel';\n\nexport { SelectEnrollmentChannel };\n//# sourceMappingURL=SelectEnrollmentChannel.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Base/Remediator.js';\n\nclass EnrollmentChannelData extends Remediator {\n getInputEmail() {\n return [\n { name: 'email', type: 'string', required: true, label: 'Email' },\n ];\n }\n getInputPhoneNumber() {\n return [\n { name: 'phoneNumber', type: 'string', required: true, label: 'Phone Number' },\n ];\n }\n canRemediate() {\n return Boolean(this.values.email || this.values.phoneNumber);\n }\n getNextStep(authClient, context) {\n const common = super.getNextStep(authClient, context);\n const authenticator = context.currentAuthenticator.value;\n return Object.assign(Object.assign({}, common), { authenticator });\n }\n getData() {\n return {\n stateHandle: this.values.stateHandle,\n email: this.values.email,\n phoneNumber: this.values.phoneNumber\n };\n }\n getValuesAfterProceed() {\n let trimmedValues = Object.keys(this.values).filter(valueKey => !['email', 'phoneNumber'].includes(valueKey));\n return trimmedValues.reduce((values, valueKey) => (Object.assign(Object.assign({}, values), { [valueKey]: this.values[valueKey] })), {});\n }\n}\nEnrollmentChannelData.remediationName = 'enrollment-channel-data';\n\nexport { EnrollmentChannelData };\n//# sourceMappingURL=EnrollmentChannelData.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { VerifyAuthenticator } from './Base/VerifyAuthenticator.js';\n\nclass ChallengeAuthenticator extends VerifyAuthenticator {\n}\nChallengeAuthenticator.remediationName = 'challenge-authenticator';\n\nexport { ChallengeAuthenticator };\n//# sourceMappingURL=ChallengeAuthenticator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { EnrollPoll } from './EnrollPoll.js';\n\nclass ChallengePoll extends EnrollPoll {\n canRemediate() {\n return !!this.values.startPolling || this.options.step === 'challenge-poll';\n }\n}\nChallengePoll.remediationName = 'challenge-poll';\n\nexport { ChallengePoll };\n//# sourceMappingURL=ChallengePoll.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { VerifyAuthenticator } from './Base/VerifyAuthenticator.js';\n\nclass ResetAuthenticator extends VerifyAuthenticator {\n}\nResetAuthenticator.remediationName = 'reset-authenticator';\n\nexport { ResetAuthenticator };\n//# sourceMappingURL=ResetAuthenticator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Base/Remediator.js';\nimport { OktaPassword } from '../authenticator/OktaPassword.js';\nimport '../types/api.js';\n\nclass EnrollProfile extends Remediator {\n constructor(remediation, values = {}, options = {}) {\n super(remediation, values, options);\n this.authenticator = null;\n const credentials = this.getCredentialsFromRemediation();\n if (credentials) {\n this.authenticator = this.authenticator = new OktaPassword({});\n }\n }\n canRemediate() {\n if (this.authenticator && !this.authenticator.canVerify(this.values)) {\n return false;\n }\n const userProfileFromValues = this.getData().userProfile;\n if (!userProfileFromValues) {\n return false;\n }\n const userProfileFromRemediation = this.remediation.value.find(({ name }) => name === 'userProfile');\n return userProfileFromRemediation.form.value.reduce((canRemediate, curr) => {\n if (curr.required) {\n canRemediate = canRemediate && !!userProfileFromValues[curr.name];\n }\n return canRemediate;\n }, true);\n }\n getCredentialsFromRemediation() {\n return this.remediation.value.find(({ name }) => name === 'credentials');\n }\n mapUserProfile({ form: { value: profileAttributes } }) {\n const attributeNames = profileAttributes.map(({ name }) => name);\n const data = attributeNames.reduce((attributeValues, attributeName) => (this.values[attributeName] ? Object.assign(Object.assign({}, attributeValues), { [attributeName]: this.values[attributeName] }) : attributeValues), {});\n if (Object.keys(data).length === 0) {\n return;\n }\n return data;\n }\n mapCredentials() {\n const val = this.authenticator && this.authenticator.mapCredentials(this.values);\n if (!val) {\n return;\n }\n return val;\n }\n getInputUserProfile(input) {\n return [...input.form.value];\n }\n getInputCredentials(input) {\n return [...input.form.value];\n }\n getErrorMessages(errorRemediation) {\n return errorRemediation.value[0].form.value.reduce((errors, field) => {\n if (field.messages) {\n errors.push(field.messages.value[0].message);\n }\n return errors;\n }, []);\n }\n}\nEnrollProfile.remediationName = 'enroll-profile';\n\nexport { EnrollProfile };\n//# sourceMappingURL=EnrollProfile.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Base/Remediator.js';\n\nclass Identify extends Remediator {\n constructor() {\n super(...arguments);\n this.map = {\n 'identifier': ['username']\n };\n }\n canRemediate() {\n const { identifier } = this.getData();\n return !!identifier;\n }\n mapCredentials() {\n const { credentials, password } = this.values;\n if (!credentials && !password) {\n return;\n }\n return credentials || { passcode: password };\n }\n getInputCredentials(input) {\n return Object.assign(Object.assign({}, input.form.value[0]), { name: 'password', required: input.required });\n }\n}\nIdentify.remediationName = 'identify';\n\nexport { Identify };\n//# sourceMappingURL=Identify.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Base/Remediator.js';\n\nclass ReEnrollAuthenticator extends Remediator {\n mapCredentials() {\n const { newPassword } = this.values;\n if (!newPassword) {\n return;\n }\n return {\n passcode: newPassword,\n };\n }\n getInputCredentials(input) {\n const challengeType = this.getAuthenticator().type;\n const name = challengeType === 'password' ? 'newPassword' : 'verificationCode';\n return Object.assign(Object.assign({}, input.form.value[0]), { name });\n }\n}\nReEnrollAuthenticator.remediationName = 'reenroll-authenticator';\n\nexport { ReEnrollAuthenticator };\n//# sourceMappingURL=ReEnrollAuthenticator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { ReEnrollAuthenticator } from './ReEnrollAuthenticator.js';\n\nclass ReEnrollAuthenticatorWarning extends ReEnrollAuthenticator {\n}\nReEnrollAuthenticatorWarning.remediationName = 'reenroll-authenticator-warning';\n\nexport { ReEnrollAuthenticatorWarning };\n//# sourceMappingURL=ReEnrollAuthenticatorWarning.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Base/Remediator.js';\n\nclass RedirectIdp extends Remediator {\n canRemediate() {\n return false;\n }\n getNextStep() {\n const { name, type, idp, href } = this.remediation;\n return {\n name,\n type,\n idp,\n href\n };\n }\n}\nRedirectIdp.remediationName = 'redirect-idp';\n\nexport { RedirectIdp };\n//# sourceMappingURL=RedirectIdp.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Remediator.js';\nimport { getAuthenticatorFromRemediation } from '../util.js';\nimport { isAuthenticator } from '../../types/api.js';\nimport { findMatchedOption, compareAuthenticators } from '../../authenticator/util.js';\n\nclass SelectAuthenticator extends Remediator {\n findMatchedOption(authenticators, options) {\n let option;\n for (let authenticator of authenticators) {\n option = options\n .find(({ relatesTo }) => relatesTo.key && relatesTo.key === authenticator.key);\n if (option) {\n break;\n }\n }\n return option;\n }\n canRemediate(context) {\n var _a, _b;\n const { authenticators, authenticator } = this.values;\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n const { options } = authenticatorFromRemediation;\n if (!authenticators || !authenticators.length) {\n return false;\n }\n if (isAuthenticator(authenticator) && authenticator.id) {\n return true;\n }\n const matchedOption = this.findMatchedOption(authenticators, options);\n if (matchedOption) {\n const isCurrentAuthenticator = (context === null || context === void 0 ? void 0 : context.currentAuthenticator)\n && (context === null || context === void 0 ? void 0 : context.currentAuthenticator.value.id) === ((_a = matchedOption.relatesTo) === null || _a === void 0 ? void 0 : _a.id);\n const isCurrentAuthenticatorEnrollment = (context === null || context === void 0 ? void 0 : context.currentAuthenticatorEnrollment)\n && (context === null || context === void 0 ? void 0 : context.currentAuthenticatorEnrollment.value.id) === ((_b = matchedOption.relatesTo) === null || _b === void 0 ? void 0 : _b.id);\n return !isCurrentAuthenticator && !isCurrentAuthenticatorEnrollment;\n }\n return false;\n }\n mapAuthenticator(remediationValue) {\n const { authenticators, authenticator } = this.values;\n if (isAuthenticator(authenticator) && authenticator.id) {\n this.selectedAuthenticator = authenticator;\n return authenticator;\n }\n const { options } = remediationValue;\n const selectedOption = findMatchedOption(authenticators, options);\n this.selectedAuthenticator = selectedOption.relatesTo;\n this.selectedOption = selectedOption;\n return {\n id: selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.value.form.value.find(({ name }) => name === 'id').value\n };\n }\n getInputAuthenticator(remediation) {\n const options = remediation.options.map(({ label, relatesTo }) => {\n return {\n label,\n value: relatesTo.key\n };\n });\n return { name: 'authenticator', type: 'string', options };\n }\n getValuesAfterProceed() {\n this.values = super.getValuesAfterProceed();\n const authenticators = this.values.authenticators\n .filter(authenticator => {\n return compareAuthenticators(authenticator, this.selectedAuthenticator) !== true;\n });\n return Object.assign(Object.assign({}, this.values), { authenticators });\n }\n}\n\nexport { SelectAuthenticator };\n//# sourceMappingURL=SelectAuthenticator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { SelectAuthenticator } from './Base/SelectAuthenticator.js';\nimport { getAuthenticatorFromRemediation } from './util.js';\nimport { AuthenticatorKey } from '../types/api.js';\n\nclass SelectAuthenticatorAuthenticate extends SelectAuthenticator {\n constructor(remediation, values = {}, options = {}) {\n var _a;\n super(remediation, values, options);\n const isRecoveryFlow = this.options.flow === 'recoverPassword';\n const hasPasswordInOptions = (_a = getAuthenticatorFromRemediation(remediation)\n .options) === null || _a === void 0 ? void 0 : _a.some(({ relatesTo }) => (relatesTo === null || relatesTo === void 0 ? void 0 : relatesTo.key) === AuthenticatorKey.OKTA_PASSWORD);\n if (hasPasswordInOptions && (isRecoveryFlow || this.values.password)) {\n this.values.authenticators = [\n ...this.values.authenticators || [],\n { key: AuthenticatorKey.OKTA_PASSWORD }\n ];\n }\n }\n}\nSelectAuthenticatorAuthenticate.remediationName = 'select-authenticator-authenticate';\n\nexport { SelectAuthenticatorAuthenticate };\n//# sourceMappingURL=SelectAuthenticatorAuthenticate.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { SelectAuthenticator } from './Base/SelectAuthenticator.js';\n\nclass SelectAuthenticatorEnroll extends SelectAuthenticator {\n}\nSelectAuthenticatorEnroll.remediationName = 'select-authenticator-enroll';\n\nexport { SelectAuthenticatorEnroll };\n//# sourceMappingURL=SelectAuthenticatorEnroll.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { SelectAuthenticator } from './Base/SelectAuthenticator.js';\n\nclass SelectAuthenticatorUnlockAccount extends SelectAuthenticator {\n constructor() {\n super(...arguments);\n this.map = {\n identifier: ['username']\n };\n }\n canRemediate() {\n const identifier = this.getData('identifier');\n return !!identifier && super.canRemediate();\n }\n mapAuthenticator(remediationValue) {\n var _a, _b, _c;\n const authenticatorMap = super.mapAuthenticator(remediationValue);\n const methodTypeOption = (_a = this.selectedOption) === null || _a === void 0 ? void 0 : _a.value.form.value.find(({ name }) => name === 'methodType');\n const methodTypeValue = this.values.methodType ||\n (methodTypeOption === null || methodTypeOption === void 0 ? void 0 : methodTypeOption.value) || ((_c = (_b = methodTypeOption === null || methodTypeOption === void 0 ? void 0 : methodTypeOption.options) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.value);\n if (methodTypeValue) {\n return Object.assign(Object.assign({}, authenticatorMap), { methodType: methodTypeValue });\n }\n return authenticatorMap;\n }\n getInputUsername() {\n return { name: 'username', type: 'string' };\n }\n}\nSelectAuthenticatorUnlockAccount.remediationName = 'select-authenticator-unlock-account';\n\nexport { SelectAuthenticatorUnlockAccount };\n//# sourceMappingURL=SelectAuthenticatorUnlockAccount.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Base/Remediator.js';\n\nclass SelectEnrollProfile extends Remediator {\n canRemediate() {\n return true;\n }\n}\nSelectEnrollProfile.remediationName = 'select-enroll-profile';\n\nexport { SelectEnrollProfile };\n//# sourceMappingURL=SelectEnrollProfile.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Remediator.js';\nimport { isAuthenticator } from '../../types/api.js';\nimport { compareAuthenticators } from '../../authenticator/util.js';\n\nclass AuthenticatorData extends Remediator {\n constructor(remediation, values = {}) {\n super(remediation, values);\n this.authenticator = this.getAuthenticator();\n this.formatAuthenticatorData();\n }\n formatAuthenticatorData() {\n const authenticatorData = this.getAuthenticatorData();\n if (authenticatorData) {\n this.values.authenticatorsData = this.values.authenticatorsData.map(data => {\n if (compareAuthenticators(this.authenticator, data)) {\n return this.mapAuthenticatorDataFromValues(data);\n }\n return data;\n });\n }\n else {\n const data = this.mapAuthenticatorDataFromValues();\n if (data) {\n this.values.authenticatorsData.push(data);\n }\n }\n }\n getAuthenticatorData() {\n return this.values.authenticatorsData\n .find((data) => compareAuthenticators(this.authenticator, data));\n }\n canRemediate() {\n return this.values.authenticatorsData\n .some(data => compareAuthenticators(this.authenticator, data));\n }\n mapAuthenticatorDataFromValues(authenticatorData) {\n let { methodType, authenticator } = this.values;\n if (!methodType && isAuthenticator(authenticator)) {\n methodType = authenticator === null || authenticator === void 0 ? void 0 : authenticator.methodType;\n }\n const { id, enrollmentId } = this.authenticator;\n const data = Object.assign(Object.assign({ id,\n enrollmentId }, (authenticatorData && authenticatorData)), (methodType && { methodType }));\n return data.methodType ? data : null;\n }\n getAuthenticatorFromRemediation() {\n const authenticator = this.remediation.value\n .find(({ name }) => name === 'authenticator');\n return authenticator;\n }\n getValuesAfterProceed() {\n this.values = super.getValuesAfterProceed();\n const authenticatorsData = this.values.authenticatorsData\n .filter(data => compareAuthenticators(this.authenticator, data) !== true);\n return Object.assign(Object.assign({}, this.values), { authenticatorsData });\n }\n}\n\nexport { AuthenticatorData };\n//# sourceMappingURL=AuthenticatorData.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { AuthenticatorData } from './Base/AuthenticatorData.js';\n\nclass AuthenticatorVerificationData extends AuthenticatorData {\n mapAuthenticator() {\n return this.getAuthenticatorData();\n }\n getInputAuthenticator() {\n const authenticator = this.getAuthenticatorFromRemediation();\n const methodType = authenticator.form.value.find(({ name }) => name === 'methodType');\n if (methodType && methodType.options) {\n return {\n name: 'methodType',\n type: 'string',\n required: true,\n options: methodType.options\n };\n }\n const inputs = [...authenticator.form.value];\n return inputs;\n }\n getValuesAfterProceed() {\n this.values = super.getValuesAfterProceed();\n let trimmedValues = Object.keys(this.values).filter(valueKey => valueKey !== 'authenticator');\n return trimmedValues.reduce((values, valueKey) => (Object.assign(Object.assign({}, values), { [valueKey]: this.values[valueKey] })), {});\n }\n}\nAuthenticatorVerificationData.remediationName = 'authenticator-verification-data';\n\nexport { AuthenticatorVerificationData };\n//# sourceMappingURL=AuthenticatorVerificationData.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { AuthenticatorData } from './Base/AuthenticatorData.js';\nimport { getAuthenticatorFromRemediation } from './util.js';\n\nclass AuthenticatorEnrollmentData extends AuthenticatorData {\n mapAuthenticator() {\n const authenticatorData = this.getAuthenticatorData();\n const authenticatorFromRemediation = getAuthenticatorFromRemediation(this.remediation);\n return {\n id: authenticatorFromRemediation.form.value\n .find(({ name }) => name === 'id').value,\n methodType: authenticatorData.methodType,\n phoneNumber: authenticatorData.phoneNumber,\n };\n }\n getInputAuthenticator(remediation) {\n return [\n { name: 'methodType', type: 'string' },\n { name: 'phoneNumber', label: 'Phone Number', type: 'string' }\n ].map(item => {\n const value = remediation.form.value.find(val => val.name === item.name);\n return Object.assign(Object.assign({}, value), item);\n });\n }\n mapAuthenticatorDataFromValues(data) {\n data = super.mapAuthenticatorDataFromValues(data);\n const { phoneNumber } = this.values;\n if (!data && !phoneNumber) {\n return;\n }\n return Object.assign(Object.assign({}, (data && data)), (phoneNumber && { phoneNumber }));\n }\n}\nAuthenticatorEnrollmentData.remediationName = 'authenticator-enrollment-data';\n\nexport { AuthenticatorEnrollmentData };\n//# sourceMappingURL=AuthenticatorEnrollmentData.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Remediator } from './Base/Remediator.js';\n\nclass Skip extends Remediator {\n canRemediate() {\n return !!this.values.skip || this.options.step === 'skip';\n }\n}\nSkip.remediationName = 'skip';\n\nexport { Skip };\n//# sourceMappingURL=Skip.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport '../types/api.js';\nimport { EnrollAuthenticator } from '../remediators/EnrollAuthenticator.js';\nimport { EnrollPoll } from '../remediators/EnrollPoll.js';\nimport { SelectEnrollmentChannel } from '../remediators/SelectEnrollmentChannel.js';\nimport { EnrollmentChannelData } from '../remediators/EnrollmentChannelData.js';\nimport { ChallengeAuthenticator } from '../remediators/ChallengeAuthenticator.js';\nimport { ChallengePoll } from '../remediators/ChallengePoll.js';\nimport '../remediators/ResetAuthenticator.js';\nimport '../remediators/EnrollProfile.js';\nimport { Identify } from '../remediators/Identify.js';\nimport { ReEnrollAuthenticator } from '../remediators/ReEnrollAuthenticator.js';\nimport { ReEnrollAuthenticatorWarning } from '../remediators/ReEnrollAuthenticatorWarning.js';\nimport { RedirectIdp } from '../remediators/RedirectIdp.js';\nimport { SelectAuthenticatorAuthenticate } from '../remediators/SelectAuthenticatorAuthenticate.js';\nimport { SelectAuthenticatorEnroll } from '../remediators/SelectAuthenticatorEnroll.js';\nimport '../remediators/SelectAuthenticatorUnlockAccount.js';\nimport '../remediators/SelectEnrollProfile.js';\nimport { AuthenticatorVerificationData } from '../remediators/AuthenticatorVerificationData.js';\nimport { AuthenticatorEnrollmentData } from '../remediators/AuthenticatorEnrollmentData.js';\nimport { Skip } from '../remediators/Skip.js';\nimport '../../errors/WWWAuthError.js';\n\nconst AuthenticationFlow = {\n 'identify': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'challenge-poll': ChallengePoll,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n 'reenroll-authenticator-warning': ReEnrollAuthenticatorWarning,\n 'enroll-poll': EnrollPoll,\n 'select-enrollment-channel': SelectEnrollmentChannel,\n 'enrollment-channel-data': EnrollmentChannelData,\n 'redirect-idp': RedirectIdp,\n 'skip': Skip,\n};\n\nexport { AuthenticationFlow };\n//# sourceMappingURL=AuthenticationFlow.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport '../types/api.js';\nimport '../remediators/EnrollAuthenticator.js';\nimport { EnrollPoll } from '../remediators/EnrollPoll.js';\nimport '../remediators/SelectEnrollmentChannel.js';\nimport '../remediators/EnrollmentChannelData.js';\nimport { ChallengeAuthenticator } from '../remediators/ChallengeAuthenticator.js';\nimport '../remediators/ChallengePoll.js';\nimport { ResetAuthenticator } from '../remediators/ResetAuthenticator.js';\nimport '../remediators/EnrollProfile.js';\nimport { Identify } from '../remediators/Identify.js';\nimport { ReEnrollAuthenticator } from '../remediators/ReEnrollAuthenticator.js';\nimport { ReEnrollAuthenticatorWarning } from '../remediators/ReEnrollAuthenticatorWarning.js';\nimport '../remediators/RedirectIdp.js';\nimport { SelectAuthenticatorAuthenticate } from '../remediators/SelectAuthenticatorAuthenticate.js';\nimport { SelectAuthenticatorEnroll } from '../remediators/SelectAuthenticatorEnroll.js';\nimport '../remediators/SelectAuthenticatorUnlockAccount.js';\nimport '../remediators/SelectEnrollProfile.js';\nimport { AuthenticatorVerificationData } from '../remediators/AuthenticatorVerificationData.js';\nimport { AuthenticatorEnrollmentData } from '../remediators/AuthenticatorEnrollmentData.js';\nimport '../remediators/Skip.js';\nimport '../../errors/WWWAuthError.js';\n\nconst PasswordRecoveryFlow = {\n 'identify': Identify,\n 'identify-recovery': Identify,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'reset-authenticator': ResetAuthenticator,\n 'reenroll-authenticator': ReEnrollAuthenticator,\n 'reenroll-authenticator-warning': ReEnrollAuthenticatorWarning,\n 'enroll-poll': EnrollPoll,\n};\n\nexport { PasswordRecoveryFlow };\n//# sourceMappingURL=PasswordRecoveryFlow.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport '../types/api.js';\nimport { EnrollAuthenticator } from '../remediators/EnrollAuthenticator.js';\nimport { EnrollPoll } from '../remediators/EnrollPoll.js';\nimport { SelectEnrollmentChannel } from '../remediators/SelectEnrollmentChannel.js';\nimport { EnrollmentChannelData } from '../remediators/EnrollmentChannelData.js';\nimport '../remediators/ChallengeAuthenticator.js';\nimport '../remediators/ChallengePoll.js';\nimport '../remediators/ResetAuthenticator.js';\nimport { EnrollProfile } from '../remediators/EnrollProfile.js';\nimport '../remediators/Identify.js';\nimport '../remediators/ReEnrollAuthenticator.js';\nimport '../remediators/ReEnrollAuthenticatorWarning.js';\nimport '../remediators/RedirectIdp.js';\nimport '../remediators/SelectAuthenticatorAuthenticate.js';\nimport { SelectAuthenticatorEnroll } from '../remediators/SelectAuthenticatorEnroll.js';\nimport '../remediators/SelectAuthenticatorUnlockAccount.js';\nimport { SelectEnrollProfile } from '../remediators/SelectEnrollProfile.js';\nimport '../remediators/AuthenticatorVerificationData.js';\nimport { AuthenticatorEnrollmentData } from '../remediators/AuthenticatorEnrollmentData.js';\nimport { Skip } from '../remediators/Skip.js';\nimport '../../errors/WWWAuthError.js';\n\nconst RegistrationFlow = {\n 'select-enroll-profile': SelectEnrollProfile,\n 'enroll-profile': EnrollProfile,\n 'authenticator-enrollment-data': AuthenticatorEnrollmentData,\n 'select-authenticator-enroll': SelectAuthenticatorEnroll,\n 'enroll-poll': EnrollPoll,\n 'select-enrollment-channel': SelectEnrollmentChannel,\n 'enrollment-channel-data': EnrollmentChannelData,\n 'enroll-authenticator': EnrollAuthenticator,\n 'skip': Skip,\n};\n\nexport { RegistrationFlow };\n//# sourceMappingURL=RegistrationFlow.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport '../types/api.js';\nimport '../remediators/EnrollAuthenticator.js';\nimport '../remediators/EnrollPoll.js';\nimport '../remediators/SelectEnrollmentChannel.js';\nimport '../remediators/EnrollmentChannelData.js';\nimport { ChallengeAuthenticator } from '../remediators/ChallengeAuthenticator.js';\nimport { ChallengePoll } from '../remediators/ChallengePoll.js';\nimport '../remediators/ResetAuthenticator.js';\nimport '../remediators/EnrollProfile.js';\nimport { Identify } from '../remediators/Identify.js';\nimport '../remediators/ReEnrollAuthenticator.js';\nimport { ReEnrollAuthenticatorWarning } from '../remediators/ReEnrollAuthenticatorWarning.js';\nimport '../remediators/RedirectIdp.js';\nimport { SelectAuthenticatorAuthenticate } from '../remediators/SelectAuthenticatorAuthenticate.js';\nimport '../remediators/SelectAuthenticatorEnroll.js';\nimport { SelectAuthenticatorUnlockAccount } from '../remediators/SelectAuthenticatorUnlockAccount.js';\nimport '../remediators/SelectEnrollProfile.js';\nimport { AuthenticatorVerificationData } from '../remediators/AuthenticatorVerificationData.js';\nimport '../remediators/AuthenticatorEnrollmentData.js';\nimport '../remediators/Skip.js';\nimport '../../errors/WWWAuthError.js';\n\nconst AccountUnlockFlow = {\n 'identify': Identify,\n 'select-authenticator-unlock-account': SelectAuthenticatorUnlockAccount,\n 'select-authenticator-authenticate': SelectAuthenticatorAuthenticate,\n 'challenge-authenticator': ChallengeAuthenticator,\n 'challenge-poll': ChallengePoll,\n 'authenticator-verification-data': AuthenticatorVerificationData,\n 'reenroll-authenticator-warning': ReEnrollAuthenticatorWarning,\n};\n\nexport { AccountUnlockFlow };\n//# sourceMappingURL=AccountUnlockFlow.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { AuthenticationFlow } from './AuthenticationFlow.js';\nimport { PasswordRecoveryFlow } from './PasswordRecoveryFlow.js';\nimport { RegistrationFlow } from './RegistrationFlow.js';\nimport { AccountUnlockFlow } from './AccountUnlockFlow.js';\n\nfunction getFlowSpecification(oktaAuth, flow = 'default') {\n let remediators, actions, withCredentials = true;\n switch (flow) {\n case 'register':\n case 'signup':\n case 'enrollProfile':\n remediators = RegistrationFlow;\n withCredentials = false;\n break;\n case 'recoverPassword':\n case 'resetPassword':\n remediators = PasswordRecoveryFlow;\n actions = [\n 'currentAuthenticator-recover',\n 'currentAuthenticatorEnrollment-recover'\n ];\n withCredentials = false;\n break;\n case 'unlockAccount':\n remediators = AccountUnlockFlow;\n withCredentials = false;\n actions = [\n 'unlock-account'\n ];\n break;\n case 'authenticate':\n case 'login':\n case 'signin':\n remediators = AuthenticationFlow;\n break;\n default:\n remediators = AuthenticationFlow;\n break;\n }\n return { flow, remediators, actions, withCredentials };\n}\n\nexport { getFlowSpecification };\n//# sourceMappingURL=FlowSpecification.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { run } from './run.js';\nimport './types/api.js';\nimport './remediators/EnrollAuthenticator.js';\nimport './remediators/EnrollPoll.js';\nimport './remediators/SelectEnrollmentChannel.js';\nimport './remediators/EnrollmentChannelData.js';\nimport './remediators/ChallengeAuthenticator.js';\nimport './remediators/ChallengePoll.js';\nimport './remediators/ResetAuthenticator.js';\nimport './remediators/EnrollProfile.js';\nimport './remediators/Identify.js';\nimport './remediators/ReEnrollAuthenticator.js';\nimport './remediators/ReEnrollAuthenticatorWarning.js';\nimport './remediators/RedirectIdp.js';\nimport './remediators/SelectAuthenticatorAuthenticate.js';\nimport './remediators/SelectAuthenticatorEnroll.js';\nimport './remediators/SelectAuthenticatorUnlockAccount.js';\nimport './remediators/SelectEnrollProfile.js';\nimport './remediators/AuthenticatorVerificationData.js';\nimport './remediators/AuthenticatorEnrollmentData.js';\nimport './remediators/Skip.js';\nimport '../errors/WWWAuthError.js';\nimport { getFlowSpecification } from './flow/FlowSpecification.js';\n\nasync function cancel(authClient, options) {\n const meta = authClient.transactionManager.load();\n const flowSpec = getFlowSpecification(authClient, meta.flow);\n return run(authClient, Object.assign(Object.assign(Object.assign({}, options), flowSpec), { actions: ['cancel'] }));\n}\n\nexport { cancel };\n//# sourceMappingURL=cancel.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction urlParamsToObject(hashOrSearch) {\n var plus2space = /\\+/g;\n var paramSplit = /([^&=]+)=?([^&]*)/g;\n var fragment = hashOrSearch || '';\n if (fragment.charAt(0) === '#' && fragment.charAt(1) === '/') {\n fragment = fragment.substring(2);\n }\n if (fragment.charAt(0) === '#' || fragment.charAt(0) === '?') {\n fragment = fragment.substring(1);\n }\n var obj = {};\n var param;\n while (true) {\n param = paramSplit.exec(fragment);\n if (!param) {\n break;\n }\n var key = param[1];\n var value = param[2];\n if (key === 'id_token' || key === 'access_token' || key === 'code') {\n obj[key] = value;\n }\n else {\n obj[key] = decodeURIComponent(value.replace(plus2space, ' '));\n }\n }\n return obj;\n}\n\nexport { urlParamsToObject };\n//# sourceMappingURL=urlParams.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport CustomError from '../errors/CustomError.js';\nimport { urlParamsToObject } from '../oidc/util/urlParams.js';\n\nclass EmailVerifyCallbackError extends CustomError {\n constructor(state, otp) {\n super(`Enter the OTP code in the originating client: ${otp}`);\n this.name = 'EmailVerifyCallbackError';\n this.state = state;\n this.otp = otp;\n }\n}\nfunction isEmailVerifyCallbackError(error) {\n return (error.name === 'EmailVerifyCallbackError');\n}\nfunction isEmailVerifyCallback(urlPath) {\n return /(otp=)/i.test(urlPath) && /(state=)/i.test(urlPath);\n}\nfunction parseEmailVerifyCallback(urlPath) {\n return urlParamsToObject(urlPath);\n}\nasync function handleEmailVerifyCallback(authClient, search) {\n if (isEmailVerifyCallback(search)) {\n const { state, otp } = parseEmailVerifyCallback(search);\n if (authClient.idx.canProceed({ state })) {\n return await authClient.idx.proceed({ state, otp });\n }\n else {\n throw new EmailVerifyCallbackError(state, otp);\n }\n }\n}\n\nexport { EmailVerifyCallbackError, handleEmailVerifyCallback, isEmailVerifyCallback, isEmailVerifyCallbackError, parseEmailVerifyCallback };\n//# sourceMappingURL=emailVerify.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { run } from './run.js';\nimport { getSavedTransactionMeta } from './transactionMeta.js';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\n\nfunction canProceed(authClient, options = {}) {\n const meta = getSavedTransactionMeta(authClient, options);\n return !!(meta || options.stateHandle);\n}\nasync function proceed(authClient, options = {}) {\n if (!canProceed(authClient, options)) {\n throw new AuthSdkError('Unable to proceed: saved transaction could not be loaded');\n }\n let { flow, state } = options;\n if (!flow) {\n const meta = getSavedTransactionMeta(authClient, { state });\n flow = meta === null || meta === void 0 ? void 0 : meta.flow;\n }\n return run(authClient, Object.assign(Object.assign({}, options), { flow }));\n}\n\nexport { canProceed, proceed };\n//# sourceMappingURL=proceed.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { proceed } from './proceed.js';\nimport { getSavedTransactionMeta } from './transactionMeta.js';\nimport { warn } from '../util/console.js';\n\nasync function poll(authClient, options = {}) {\n var _a;\n let transaction = await proceed(authClient, {\n startPolling: true\n });\n const meta = getSavedTransactionMeta(authClient);\n let availablePollingRemeditaions = (_a = meta === null || meta === void 0 ? void 0 : meta.remediations) === null || _a === void 0 ? void 0 : _a.find(remediation => remediation.includes('poll'));\n if (!(availablePollingRemeditaions === null || availablePollingRemeditaions === void 0 ? void 0 : availablePollingRemeditaions.length)) {\n warn('No polling remediations available at the current IDX flow stage');\n }\n if (Number.isInteger(options.refresh)) {\n return new Promise(function (resolve, reject) {\n setTimeout(async function () {\n var _a, _b;\n try {\n const refresh = (_b = (_a = transaction.nextStep) === null || _a === void 0 ? void 0 : _a.poll) === null || _b === void 0 ? void 0 : _b.refresh;\n if (refresh) {\n resolve(poll(authClient, {\n refresh\n }));\n }\n else {\n resolve(transaction);\n }\n }\n catch (err) {\n reject(err);\n }\n }, options.refresh);\n });\n }\n return transaction;\n}\n\nexport { poll };\n//# sourceMappingURL=poll.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { run } from './run.js';\n\nasync function startTransaction(authClient, options = {}) {\n authClient.transactionManager.clear();\n return run(authClient, Object.assign({ exchangeCodeForTokens: false }, options));\n}\n\nexport { startTransaction };\n//# sourceMappingURL=startTransaction.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { run } from './run.js';\nimport { hasSavedInteractionHandle } from './transactionMeta.js';\nimport { startTransaction } from './startTransaction.js';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { IdxFeature } from './types/api.js';\n\nasync function register(authClient, options = {}) {\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures } = await startTransaction(authClient, Object.assign(Object.assign({}, options), { flow: 'register', autoRemediate: false }));\n if (!options.activationToken && enabledFeatures && !enabledFeatures.includes(IdxFeature.REGISTRATION)) {\n throw new AuthSdkError('Registration is not supported based on your current org configuration.');\n }\n }\n return run(authClient, Object.assign(Object.assign({}, options), { flow: 'register' }));\n}\n\nexport { register };\n//# sourceMappingURL=register.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { run } from './run.js';\nimport './types/api.js';\nimport './remediators/EnrollAuthenticator.js';\nimport './remediators/EnrollPoll.js';\nimport './remediators/SelectEnrollmentChannel.js';\nimport './remediators/EnrollmentChannelData.js';\nimport './remediators/ChallengeAuthenticator.js';\nimport './remediators/ChallengePoll.js';\nimport './remediators/ResetAuthenticator.js';\nimport './remediators/EnrollProfile.js';\nimport './remediators/Identify.js';\nimport './remediators/ReEnrollAuthenticator.js';\nimport './remediators/ReEnrollAuthenticatorWarning.js';\nimport './remediators/RedirectIdp.js';\nimport './remediators/SelectAuthenticatorAuthenticate.js';\nimport './remediators/SelectAuthenticatorEnroll.js';\nimport './remediators/SelectAuthenticatorUnlockAccount.js';\nimport './remediators/SelectEnrollProfile.js';\nimport './remediators/AuthenticatorVerificationData.js';\nimport './remediators/AuthenticatorEnrollmentData.js';\nimport './remediators/Skip.js';\nimport '../errors/WWWAuthError.js';\nimport { getFlowSpecification } from './flow/FlowSpecification.js';\n\nasync function recoverPassword(authClient, options = {}) {\n const flowSpec = getFlowSpecification(authClient, 'recoverPassword');\n return run(authClient, Object.assign(Object.assign({}, options), flowSpec));\n}\n\nexport { recoverPassword };\n//# sourceMappingURL=recoverPassword.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport OAuthError from '../errors/OAuthError.js';\nimport '../errors/WWWAuthError.js';\n\nasync function handleInteractionCodeRedirect(authClient, url) {\n const meta = authClient.transactionManager.load();\n if (!meta) {\n throw new AuthSdkError('No transaction data was found in storage');\n }\n const { codeVerifier, state: savedState } = meta;\n const { searchParams\n } = new URL(url);\n const state = searchParams.get('state');\n const interactionCode = searchParams.get('interaction_code');\n const error = searchParams.get('error');\n if (error) {\n throw new OAuthError(error, searchParams.get('error_description'));\n }\n if (state !== savedState) {\n throw new AuthSdkError('State in redirect uri does not match with transaction state');\n }\n if (!interactionCode) {\n throw new AuthSdkError('Unable to parse interaction_code from the url');\n }\n const { tokens } = await authClient.token.exchangeCodeForTokens({ interactionCode, codeVerifier });\n authClient.tokenManager.setTokens(tokens);\n}\n\nexport { handleInteractionCodeRedirect };\n//# sourceMappingURL=handleInteractionCodeRedirect.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { run } from './run.js';\nimport { hasSavedInteractionHandle } from './transactionMeta.js';\nimport { startTransaction } from './startTransaction.js';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { IdxFeature } from './types/api.js';\n\nasync function unlockAccount(authClient, options = {}) {\n options.flow = 'unlockAccount';\n if (!hasSavedInteractionHandle(authClient)) {\n const { enabledFeatures } = await startTransaction(authClient, Object.assign(Object.assign({}, options), { autoRemediate: false }));\n if (enabledFeatures && !enabledFeatures.includes(IdxFeature.ACCOUNT_UNLOCK)) {\n throw new AuthSdkError('Self Service Account Unlock is not supported based on your current org configuration.');\n }\n }\n return run(authClient, Object.assign({}, options));\n}\n\nexport { unlockAccount };\n//# sourceMappingURL=unlockAccount.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { isOAuthError } from '../../errors/index.js';\n\nfunction isInteractionRequiredError(error) {\n if (error.name !== 'OAuthError') {\n return false;\n }\n const oauthError = error;\n return (oauthError.errorCode === 'interaction_required');\n}\nfunction isAuthorizationCodeError(sdk, error) {\n if (error.name !== 'AuthApiError') {\n return false;\n }\n const authApiError = error;\n const errorResponse = authApiError.xhr;\n const responseJSON = errorResponse === null || errorResponse === void 0 ? void 0 : errorResponse.responseJSON;\n return sdk.options.pkce && ((responseJSON === null || responseJSON === void 0 ? void 0 : responseJSON.error) === 'invalid_grant');\n}\nfunction isRefreshTokenInvalidError(error) {\n return isOAuthError(error) &&\n error.errorCode === 'invalid_grant' &&\n error.errorSummary === 'The refresh token is invalid or expired.';\n}\n\nexport { isAuthorizationCodeError, isInteractionRequiredError, isRefreshTokenInvalidError };\n//# sourceMappingURL=errors.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction hasTokensInHash(hash) {\n return /((id|access)_token=)/i.test(hash);\n}\nfunction hasAuthorizationCode(hashOrSearch) {\n return /(code=)/i.test(hashOrSearch);\n}\nfunction hasInteractionCode(hashOrSearch) {\n return /(interaction_code=)/i.test(hashOrSearch);\n}\nfunction hasErrorInUrl(hashOrSearch) {\n return /(error=)/i.test(hashOrSearch) || /(error_description)/i.test(hashOrSearch);\n}\nfunction isRedirectUri(uri, sdk) {\n var authParams = sdk.options;\n if (!uri || !authParams.redirectUri) {\n return false;\n }\n return uri.indexOf(authParams.redirectUri) === 0;\n}\nfunction isCodeFlow(options) {\n return options.pkce || options.responseType === 'code' || options.responseMode === 'query';\n}\nfunction hasResponseType(responseType, options) {\n let hasResponseType = false;\n if (Array.isArray(options.responseType) && options.responseType.length) {\n hasResponseType = options.responseType.indexOf(responseType) >= 0;\n }\n else {\n hasResponseType = options.responseType === responseType;\n }\n return hasResponseType;\n}\nfunction getHashOrSearch(options) {\n var codeFlow = isCodeFlow(options);\n var useQuery = codeFlow && options.responseMode !== 'fragment';\n return useQuery ? window.location.search : window.location.hash;\n}\nfunction isLoginRedirect(sdk) {\n if (!isRedirectUri(window.location.href, sdk)) {\n return false;\n }\n var codeFlow = isCodeFlow(sdk.options);\n var hashOrSearch = getHashOrSearch(sdk.options);\n if (hasErrorInUrl(hashOrSearch)) {\n return true;\n }\n if (codeFlow) {\n var hasCode = hasAuthorizationCode(hashOrSearch) || hasInteractionCode(hashOrSearch);\n return hasCode;\n }\n return hasTokensInHash(window.location.hash);\n}\nfunction isInteractionRequired(sdk, hashOrSearch) {\n if (!hashOrSearch) {\n if (!isLoginRedirect(sdk)) {\n return false;\n }\n hashOrSearch = getHashOrSearch(sdk.options);\n }\n return /(error=interaction_required)/i.test(hashOrSearch);\n}\n\nexport { getHashOrSearch, hasAuthorizationCode, hasErrorInUrl, hasInteractionCode, hasResponseType, hasTokensInHash, isCodeFlow, isInteractionRequired, isLoginRedirect, isRedirectUri };\n//# sourceMappingURL=loginRedirect.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport '../../errors/WWWAuthError.js';\nimport { isInteractionRequiredError } from '../../oidc/util/errors.js';\nimport { isInteractionRequired } from '../../oidc/util/loginRedirect.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport '../../oidc/types/Token.js';\nimport { authenticate } from '../authenticate.js';\nimport { cancel } from '../cancel.js';\nimport { handleEmailVerifyCallback, isEmailVerifyCallback, parseEmailVerifyCallback, isEmailVerifyCallbackError } from '../emailVerify.js';\nimport { handleInteractionCodeRedirect } from '../handleInteractionCodeRedirect.js';\nimport { makeIdxState } from '../idxState/index.js';\nimport { interact } from '../interact.js';\nimport { introspect } from '../introspect.js';\nimport { poll } from '../poll.js';\nimport { proceed, canProceed } from '../proceed.js';\nimport { recoverPassword } from '../recoverPassword.js';\nimport { register } from '../register.js';\nimport { startTransaction } from '../startTransaction.js';\nimport { getSavedTransactionMeta, createTransactionMeta, getTransactionMeta, saveTransactionMeta, clearTransactionMeta, isTransactionMetaValid } from '../transactionMeta.js';\nimport { unlockAccount } from '../unlockAccount.js';\nimport * as index from '../remediators/index.js';\nimport { getFlowSpecification } from '../flow/FlowSpecification.js';\nimport { setRemediatorsCtx } from '../util.js';\n\nfunction createIdxAPI(sdk) {\n setRemediatorsCtx({\n remediators: index,\n getFlowSpecification,\n });\n const boundStartTransaction = startTransaction.bind(null, sdk);\n const idx = {\n interact: interact.bind(null, sdk),\n introspect: introspect.bind(null, sdk),\n makeIdxResponse: makeIdxState.bind(null, sdk),\n authenticate: authenticate.bind(null, sdk),\n register: register.bind(null, sdk),\n start: boundStartTransaction,\n startTransaction: boundStartTransaction,\n poll: poll.bind(null, sdk),\n proceed: proceed.bind(null, sdk),\n cancel: cancel.bind(null, sdk),\n recoverPassword: recoverPassword.bind(null, sdk),\n handleInteractionCodeRedirect: handleInteractionCodeRedirect.bind(null, sdk),\n isInteractionRequired: isInteractionRequired.bind(null, sdk),\n isInteractionRequiredError,\n handleEmailVerifyCallback: handleEmailVerifyCallback.bind(null, sdk),\n isEmailVerifyCallback,\n parseEmailVerifyCallback,\n isEmailVerifyCallbackError,\n getSavedTransactionMeta: getSavedTransactionMeta.bind(null, sdk),\n createTransactionMeta: createTransactionMeta.bind(null, sdk),\n getTransactionMeta: getTransactionMeta.bind(null, sdk),\n saveTransactionMeta: saveTransactionMeta.bind(null, sdk),\n clearTransactionMeta: clearTransactionMeta.bind(null, sdk),\n isTransactionMetaValid,\n setFlow: (flow) => {\n sdk.options.flow = flow;\n },\n getFlow: () => {\n return sdk.options.flow;\n },\n canProceed: canProceed.bind(null, sdk),\n unlockAccount: unlockAccount.bind(null, sdk),\n };\n return idx;\n}\n\nexport { createIdxAPI };\n//# sourceMappingURL=api.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nconst a = function (str) { return atob(str); };\nconst b = function (str) { return btoa(str); };\nconst c = typeof crypto === 'undefined' ? null : crypto;\n\nexport { a as atob, b as btoa, c as webcrypto };\n//# sourceMappingURL=browser.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport './errors/WWWAuthError.js';\nimport { webcrypto as c } from './crypto/browser.js';\n\nconst isWindowsPhone = /windows phone|iemobile|wpdesktop/i;\nfunction isBrowser() {\n return typeof document !== 'undefined' && typeof window !== 'undefined';\n}\nfunction isIE11OrLess() {\n if (!isBrowser()) {\n return false;\n }\n const documentMode = document.documentMode;\n return !!documentMode && documentMode <= 11;\n}\nfunction getUserAgent() {\n return navigator.userAgent;\n}\nfunction isFingerprintSupported() {\n const agent = getUserAgent();\n return agent && !isWindowsPhone.test(agent);\n}\nfunction isPopupPostMessageSupported() {\n if (!isBrowser()) {\n return false;\n }\n const documentMode = document.documentMode;\n var isIE8or9 = documentMode && documentMode < 10;\n if (typeof window.postMessage !== 'undefined' && !isIE8or9) {\n return true;\n }\n return false;\n}\nfunction isWebCryptoSubtleSupported() {\n return typeof c !== 'undefined'\n && c !== null\n && typeof c.subtle !== 'undefined'\n && typeof Uint8Array !== 'undefined';\n}\nfunction isTokenVerifySupported() {\n return isWebCryptoSubtleSupported();\n}\nfunction hasTextEncoder() {\n return typeof TextEncoder !== 'undefined';\n}\nfunction isPKCESupported() {\n return isTokenVerifySupported() && hasTextEncoder();\n}\nfunction isHTTPS() {\n if (!isBrowser()) {\n return false;\n }\n return window.location.protocol === 'https:';\n}\nfunction isLocalhost() {\n return isBrowser() && window.location.hostname === 'localhost';\n}\nfunction isDPoPSupported() {\n return !isIE11OrLess() &&\n typeof window.indexedDB !== 'undefined' &&\n hasTextEncoder() &&\n isWebCryptoSubtleSupported();\n}\n\nexport { getUserAgent, hasTextEncoder, isBrowser, isDPoPSupported, isFingerprintSupported, isHTTPS, isIE11OrLess, isLocalhost, isPKCESupported, isPopupPostMessageSupported, isTokenVerifySupported };\n//# sourceMappingURL=features.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { removeNils } from '../util/object.js';\nimport * as features from '../features.js';\nimport * as constants from '../constants.js';\nimport Emitter from 'tiny-emitter';\n\nfunction createOktaAuthBase(OptionsConstructor) {\n class OktaAuthBase {\n constructor(...args) {\n const options = new OptionsConstructor(args.length ? args[0] || {} : {});\n this.options = removeNils(options);\n this.emitter = new Emitter();\n this.features = features;\n }\n }\n OktaAuthBase.features = features;\n OktaAuthBase.constants = constants;\n OktaAuthBase.features = OktaAuthBase.prototype.features = features;\n Object.assign(OktaAuthBase, {\n constants\n });\n return OktaAuthBase;\n}\n\nexport { createOktaAuthBase };\n//# sourceMappingURL=factory.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction mixinStorage(Base, StorageManager) {\n return class OktaAuthStorage extends Base {\n constructor(...args) {\n super(...args);\n const { storageManager, cookies, storageUtil } = this.options;\n this.storageManager = new StorageManager(storageManager, cookies, storageUtil);\n }\n clearStorage() {\n }\n };\n}\n\nexport { mixinStorage };\n//# sourceMappingURL=mixin.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { isBrowser } from '../features.js';\n\nclass OktaUserAgent {\n constructor() {\n this.environments = [`okta-auth-js/${\"7.8.0\"}`];\n this.maybeAddNodeEnvironment();\n }\n addEnvironment(env) {\n this.environments.push(env);\n }\n getHttpHeader() {\n return { 'X-Okta-User-Agent-Extended': this.environments.join(' ') };\n }\n getVersion() {\n return \"7.8.0\";\n }\n maybeAddNodeEnvironment() {\n if (isBrowser() || !process || !process.versions) {\n return;\n }\n const { node: version } = process.versions;\n this.environments.push(`nodejs/${version}`);\n }\n}\n\nexport { OktaUserAgent };\n//# sourceMappingURL=OktaUserAgent.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction setRequestHeader(authClient, headerName, headerValue) {\n authClient.options.headers = authClient.options.headers || {};\n authClient.options.headers[headerName] = headerValue;\n}\n\nexport { setRequestHeader };\n//# sourceMappingURL=headers.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { OktaUserAgent } from './OktaUserAgent.js';\nimport { setRequestHeader } from './headers.js';\nimport { toQueryString } from '../util/url.js';\nimport { get } from './request.js';\n\nfunction mixinHttp(Base) {\n return class OktaAuthHttp extends Base {\n constructor(...args) {\n super(...args);\n this._oktaUserAgent = new OktaUserAgent();\n this.http = {\n setRequestHeader: setRequestHeader.bind(null, this)\n };\n }\n setHeaders(headers) {\n this.options.headers = Object.assign({}, this.options.headers, headers);\n }\n getIssuerOrigin() {\n return this.options.issuer.split('/oauth2/')[0];\n }\n webfinger(opts) {\n var url = '/.well-known/webfinger' + toQueryString(opts);\n var options = {\n headers: {\n 'Accept': 'application/jrd+json'\n }\n };\n return get(this, url, options);\n }\n };\n}\n\nexport { mixinHttp };\n//# sourceMappingURL=mixin.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { btoa as b, atob as a } from './browser.js';\n\nfunction stringToBase64Url(str) {\n var b64 = b(str);\n return base64ToBase64Url(b64);\n}\nfunction base64ToBase64Url(b64) {\n return b64.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\nfunction base64UrlToBase64(b64u) {\n return b64u.replace(/-/g, '+').replace(/_/g, '/');\n}\nfunction base64UrlToString(b64u) {\n var b64 = base64UrlToBase64(b64u);\n switch (b64.length % 4) {\n case 0:\n break;\n case 2:\n b64 += '==';\n break;\n case 3:\n b64 += '=';\n break;\n default:\n throw new AuthSdkError('Not a valid Base64Url');\n }\n var utf8 = a(b64);\n try {\n return decodeURIComponent(escape(utf8));\n }\n catch (e) {\n return utf8;\n }\n}\nfunction stringToBuffer(str) {\n var buffer = new Uint8Array(str.length);\n for (var i = 0; i < str.length; i++) {\n buffer[i] = str.charCodeAt(i);\n }\n return buffer;\n}\nfunction base64UrlDecode(str) {\n return a(base64UrlToBase64(str));\n}\nfunction base64UrlToBuffer(b64u) {\n return Uint8Array.from(base64UrlDecode(b64u), (c) => c.charCodeAt(0));\n}\nfunction bufferToBase64Url(bin) {\n return b(new Uint8Array(bin).reduce((s, byte) => s + String.fromCharCode(byte), ''));\n}\n\nexport { base64ToBase64Url, base64UrlDecode, base64UrlToBase64, base64UrlToBuffer, base64UrlToString, bufferToBase64Url, stringToBase64Url, stringToBuffer };\n//# sourceMappingURL=base64.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { stringToBase64Url } from './base64.js';\nimport { webcrypto as c } from './browser.js';\n\nfunction getOidcHash(str) {\n var buffer = new TextEncoder().encode(str);\n return c.subtle.digest('SHA-256', buffer).then(function (arrayBuffer) {\n var intBuffer = new Uint8Array(arrayBuffer);\n var firstHalf = intBuffer.slice(0, 16);\n var hash = String.fromCharCode.apply(null, firstHalf);\n var b64u = stringToBase64Url(hash);\n return b64u;\n });\n}\n\nexport { getOidcHash };\n//# sourceMappingURL=oidcHash.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { clone } from '../util/object.js';\nimport { stringToBuffer, base64UrlDecode } from './base64.js';\nimport { webcrypto as c } from './browser.js';\n\nfunction verifyToken(idToken, key) {\n key = clone(key);\n var format = 'jwk';\n var algo = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: { name: 'SHA-256' }\n };\n var extractable = true;\n var usages = ['verify'];\n delete key.use;\n return c.subtle.importKey(format, key, algo, extractable, usages)\n .then(function (cryptoKey) {\n var jwt = idToken.split('.');\n var payload = stringToBuffer(jwt[0] + '.' + jwt[1]);\n var b64Signature = base64UrlDecode(jwt[2]);\n var signature = stringToBuffer(b64Signature);\n return c.subtle.verify(algo, cryptoKey, signature, payload);\n });\n}\n\nexport { verifyToken };\n//# sourceMappingURL=verifyToken.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { isPromise } from './types.js';\nimport { warn } from './console.js';\n\nclass PromiseQueue {\n constructor(options = { quiet: false }) {\n this.queue = [];\n this.running = false;\n this.options = options;\n }\n push(method, thisObject, ...args) {\n return new Promise((resolve, reject) => {\n if (this.queue.length > 0) {\n if (this.options.quiet !== false) {\n warn('Async method is being called but another async method is already running. ' +\n 'The new method will be delayed until the previous method completes.');\n }\n }\n this.queue.push({\n method,\n thisObject,\n args,\n resolve,\n reject\n });\n this.run();\n });\n }\n run() {\n if (this.running) {\n return;\n }\n if (this.queue.length === 0) {\n return;\n }\n this.running = true;\n var queueItem = this.queue.shift();\n var res = queueItem.method.apply(queueItem.thisObject, queueItem.args);\n if (isPromise(res)) {\n res.then(queueItem.resolve, queueItem.reject).finally(() => {\n this.running = false;\n this.run();\n });\n }\n else {\n queueItem.resolve(res);\n this.running = false;\n this.run();\n }\n }\n}\n\nexport { PromiseQueue };\n//# sourceMappingURL=PromiseQueue.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { stringToBase64Url } from '../../crypto/base64.js';\nimport { webcrypto as c } from '../../crypto/browser.js';\nimport { DEFAULT_CODE_CHALLENGE_METHOD, MIN_VERIFIER_LENGTH, MAX_VERIFIER_LENGTH } from '../../constants.js';\n\nfunction dec2hex(dec) {\n return ('0' + dec.toString(16)).substr(-2);\n}\nfunction getRandomString(length) {\n var a = new Uint8Array(Math.ceil(length / 2));\n c.getRandomValues(a);\n var str = Array.from(a, dec2hex).join('');\n return str.slice(0, length);\n}\nfunction generateVerifier(prefix) {\n var verifier = prefix || '';\n if (verifier.length < MIN_VERIFIER_LENGTH) {\n verifier = verifier + getRandomString(MIN_VERIFIER_LENGTH - verifier.length);\n }\n return encodeURIComponent(verifier).slice(0, MAX_VERIFIER_LENGTH);\n}\nfunction computeChallenge(str) {\n var buffer = new TextEncoder().encode(str);\n return c.subtle.digest('SHA-256', buffer).then(function (arrayBuffer) {\n var hash = String.fromCharCode.apply(null, new Uint8Array(arrayBuffer));\n var b64u = stringToBase64Url(hash);\n return b64u;\n });\n}\nvar PKCE = {\n DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier,\n computeChallenge\n};\n\nexport { PKCE as default };\n//# sourceMappingURL=pkce.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { base64UrlToString } from '../crypto/base64.js';\n\nfunction decodeToken(token) {\n var jwt = token.split('.');\n var decodedToken;\n try {\n decodedToken = {\n header: JSON.parse(base64UrlToString(jwt[0])),\n payload: JSON.parse(base64UrlToString(jwt[1])),\n signature: jwt[2]\n };\n }\n catch (e) {\n throw new AuthSdkError('Malformed token');\n }\n return decodedToken;\n}\n\nexport { decodeToken };\n//# sourceMappingURL=decodeToken.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { generateState, generateNonce } from './oauth.js';\nimport { isBrowser } from '../../features.js';\nimport { removeNils } from '../../util/object.js';\n\nfunction getDefaultTokenParams(sdk) {\n const { pkce, clientId, redirectUri, responseType, responseMode, scopes, acrValues, maxAge, state, ignoreSignature, dpop } = sdk.options;\n const defaultRedirectUri = isBrowser() ? window.location.href : undefined;\n return removeNils({\n pkce,\n clientId,\n redirectUri: redirectUri || defaultRedirectUri,\n responseType: responseType || ['token', 'id_token'],\n responseMode,\n state: state || generateState(),\n nonce: generateNonce(),\n scopes: scopes || ['openid', 'email'],\n acrValues,\n maxAge,\n ignoreSignature,\n dpop,\n });\n}\n\nexport { getDefaultTokenParams };\n//# sourceMappingURL=defaultTokenParams.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { stringToBase64Url, stringToBuffer, base64ToBase64Url, bufferToBase64Url } from '../crypto/base64.js';\nimport { webcrypto as c, btoa as b } from '../crypto/browser.js';\nimport { isOAuthError, isWWWAuthError } from '../errors/index.js';\nimport AuthSdkError from '../errors/AuthSdkError.js';\n\nconst INDEXEDDB_NAME = 'OktaAuthJs';\nconst DB_KEY = 'DPoPKeys';\nfunction isDPoPNonceError(obj) {\n return ((isOAuthError(obj) || isWWWAuthError(obj)) &&\n obj.errorCode === 'use_dpop_nonce');\n}\nasync function createJwt(header, claims, signingKey) {\n const head = stringToBase64Url(JSON.stringify(header));\n const body = stringToBase64Url(JSON.stringify(claims));\n const signature = await c.subtle.sign({ name: signingKey.algorithm.name }, signingKey, stringToBuffer(`${head}.${body}`));\n return `${head}.${body}.${base64ToBase64Url(bufferToBase64Url(signature))}`;\n}\nfunction cryptoRandomValue(byteLen = 32) {\n return [...c.getRandomValues(new Uint8Array(byteLen))].map(v => v.toString(16)).join('');\n}\nasync function generateKeyPair() {\n const algorithm = {\n name: 'RSASSA-PKCS1-v1_5',\n hash: 'SHA-256',\n modulusLength: 2048,\n publicExponent: new Uint8Array([0x01, 0x00, 0x01]),\n };\n return c.subtle.generateKey(algorithm, false, ['sign', 'verify']);\n}\nasync function hashAccessToken(accessToken) {\n const buffer = new TextEncoder().encode(accessToken);\n const hash = await c.subtle.digest('SHA-256', buffer);\n return b(String.fromCharCode.apply(null, new Uint8Array(hash)))\n .replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/, '');\n}\nfunction keyStore() {\n return new Promise((resolve, reject) => {\n try {\n const indexedDB = window.indexedDB;\n const req = indexedDB.open(INDEXEDDB_NAME, 1);\n req.onerror = function () {\n reject(req.error);\n };\n req.onupgradeneeded = function () {\n const db = req.result;\n db.createObjectStore(DB_KEY);\n };\n req.onsuccess = function () {\n const db = req.result;\n const tx = db.transaction(DB_KEY, 'readwrite');\n tx.onerror = function () {\n reject(tx.error);\n };\n const store = tx.objectStore(DB_KEY);\n resolve(store);\n tx.oncomplete = function () {\n db.close();\n };\n };\n }\n catch (err) {\n reject(err);\n }\n });\n}\nasync function invokeStoreMethod(method, ...args) {\n const store = await keyStore();\n return new Promise((resolve, reject) => {\n const req = store[method](...args);\n req.onsuccess = function () {\n resolve(req);\n };\n req.onerror = function () {\n reject(req.error);\n };\n });\n}\nasync function storeKeyPair(pairId, keyPair) {\n await invokeStoreMethod('add', keyPair, pairId);\n return keyPair;\n}\nasync function findKeyPair(pairId) {\n if (pairId) {\n const req = await invokeStoreMethod('get', pairId);\n if (req.result) {\n return req.result;\n }\n }\n throw new AuthSdkError(`Unable to locate dpop key pair required for refresh${pairId ? ` (${pairId})` : ''}`);\n}\nasync function clearDPoPKeyPair(pairId) {\n await invokeStoreMethod('delete', pairId);\n}\nasync function clearAllDPoPKeyPairs() {\n await invokeStoreMethod('clear');\n}\nasync function createDPoPKeyPair() {\n const keyPairId = cryptoRandomValue(4);\n const keyPair = await generateKeyPair();\n await storeKeyPair(keyPairId, keyPair);\n return { keyPair, keyPairId };\n}\nasync function clearDPoPKeyPairAfterRevoke(revokedToken, tokens) {\n var _a;\n let shouldClear = false;\n const { accessToken, refreshToken } = tokens;\n if (revokedToken === 'access' && accessToken && accessToken.tokenType === 'DPoP' && !refreshToken) {\n shouldClear = true;\n }\n if (revokedToken === 'refresh' && refreshToken && !accessToken) {\n shouldClear = true;\n }\n const pairId = (_a = accessToken === null || accessToken === void 0 ? void 0 : accessToken.dpopPairId) !== null && _a !== void 0 ? _a : refreshToken === null || refreshToken === void 0 ? void 0 : refreshToken.dpopPairId;\n if (shouldClear && pairId) {\n await clearDPoPKeyPair(pairId);\n }\n}\nasync function generateDPoPProof({ keyPair, url, method, nonce, accessToken }) {\n const { kty, crv, e, n, x, y } = await c.subtle.exportKey('jwk', keyPair.publicKey);\n const header = {\n alg: 'RS256',\n typ: 'dpop+jwt',\n jwk: { kty, crv, e, n, x, y }\n };\n const claims = {\n htm: method,\n htu: url,\n iat: Math.floor(Date.now() / 1000),\n jti: cryptoRandomValue(),\n };\n if (nonce) {\n claims.nonce = nonce;\n }\n if (accessToken) {\n claims.ath = await hashAccessToken(accessToken);\n }\n return createJwt(header, claims, keyPair.privateKey);\n}\nasync function generateDPoPForTokenRequest({ keyPair, url, method, nonce }) {\n const params = { keyPair, url, method };\n if (nonce) {\n params.nonce = nonce;\n }\n return generateDPoPProof(params);\n}\n\nexport { clearAllDPoPKeyPairs, clearDPoPKeyPair, clearDPoPKeyPairAfterRevoke, createDPoPKeyPair, createJwt, cryptoRandomValue, findKeyPair, generateDPoPForTokenRequest, generateDPoPProof, generateKeyPair, isDPoPNonceError };\n//# sourceMappingURL=dpop.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthApiError from '../../errors/AuthApiError.js';\nimport AuthSdkError from '../../errors/AuthSdkError.js';\nimport '../../errors/WWWAuthError.js';\nimport { removeNils } from '../../util/object.js';\nimport { toQueryString } from '../../util/url.js';\nimport { httpRequest } from '../../http/request.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport { generateDPoPForTokenRequest, isDPoPNonceError } from '../dpop.js';\n\nfunction validateOptions(options) {\n if (!options.clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to get a token');\n }\n if (!options.redirectUri) {\n throw new AuthSdkError('The redirectUri passed to /authorize must also be passed to /token');\n }\n if (!options.authorizationCode && !options.interactionCode) {\n throw new AuthSdkError('An authorization code (returned from /authorize) must be passed to /token');\n }\n if (!options.codeVerifier) {\n throw new AuthSdkError('The \"codeVerifier\" (generated and saved by your app) must be passed to /token');\n }\n}\nfunction getPostData(sdk, options) {\n var params = removeNils({\n 'client_id': options.clientId,\n 'redirect_uri': options.redirectUri,\n 'grant_type': options.interactionCode ? 'interaction_code' : 'authorization_code',\n 'code_verifier': options.codeVerifier\n });\n if (options.interactionCode) {\n params['interaction_code'] = options.interactionCode;\n }\n else if (options.authorizationCode) {\n params.code = options.authorizationCode;\n }\n const { clientSecret } = sdk.options;\n if (clientSecret) {\n params['client_secret'] = clientSecret;\n }\n return toQueryString(params).slice(1);\n}\nasync function makeTokenRequest(sdk, { url, data, nonce, dpopKeyPair }) {\n var _a, _b;\n const method = 'POST';\n const headers = {\n 'Content-Type': 'application/x-www-form-urlencoded',\n };\n if (sdk.options.dpop) {\n if (!dpopKeyPair) {\n throw new AuthSdkError('DPoP is configured but no key pair was provided');\n }\n const proof = await generateDPoPForTokenRequest({ url, method, nonce, keyPair: dpopKeyPair });\n headers.DPoP = proof;\n }\n try {\n const resp = await httpRequest(sdk, {\n url,\n method,\n args: data,\n headers\n });\n return resp;\n }\n catch (err) {\n if (isDPoPNonceError(err) && !nonce) {\n const dpopNonce = (_a = err.resp) === null || _a === void 0 ? void 0 : _a.headers['dpop-nonce'];\n if (!dpopNonce) {\n throw new AuthApiError({ errorSummary: 'No `dpop-nonce` header found when required' }, (_b = err.resp) !== null && _b !== void 0 ? _b : undefined\n );\n }\n return makeTokenRequest(sdk, { url, data, dpopKeyPair, nonce: dpopNonce });\n }\n throw err;\n }\n}\nasync function postToTokenEndpoint(sdk, options, urls) {\n validateOptions(options);\n var data = getPostData(sdk, options);\n const params = {\n url: urls.tokenUrl,\n data,\n dpopKeyPair: options === null || options === void 0 ? void 0 : options.dpopKeyPair\n };\n return makeTokenRequest(sdk, params);\n}\nasync function postRefreshToken(sdk, options, refreshToken) {\n const data = Object.entries({\n client_id: options.clientId,\n grant_type: 'refresh_token',\n scope: refreshToken.scopes.join(' '),\n refresh_token: refreshToken.refreshToken,\n }).map(function ([name, value]) {\n return name + '=' + encodeURIComponent(value);\n }).join('&');\n let url = refreshToken.tokenUrl;\n if (options.extraParams && Object.keys(options.extraParams).length >= 1) {\n url += toQueryString(options.extraParams);\n }\n const params = {\n url,\n data,\n dpopKeyPair: options === null || options === void 0 ? void 0 : options.dpopKeyPair\n };\n return makeTokenRequest(sdk, params);\n}\n\nexport { postRefreshToken, postToTokenEndpoint };\n//# sourceMappingURL=token.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../../errors/AuthSdkError.js';\nimport '../../errors/WWWAuthError.js';\nimport { find } from '../../util/object.js';\nimport { get } from '../../http/request.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\n\nfunction getWellKnown(sdk, issuer) {\n var authServerUri = (issuer || sdk.options.issuer);\n return get(sdk, authServerUri + '/.well-known/openid-configuration', {\n cacheResponse: true\n });\n}\nfunction getKey(sdk, issuer, kid) {\n var httpCache = sdk.storageManager.getHttpCache(sdk.options.cookies);\n return getWellKnown(sdk, issuer)\n .then(function (wellKnown) {\n var jwksUri = wellKnown['jwks_uri'];\n var cacheContents = httpCache.getStorage();\n var cachedResponse = cacheContents[jwksUri];\n if (cachedResponse && Date.now() / 1000 < cachedResponse.expiresAt) {\n var cachedKey = find(cachedResponse.response.keys, {\n kid: kid\n });\n if (cachedKey) {\n return cachedKey;\n }\n }\n httpCache.clearStorage(jwksUri);\n return get(sdk, jwksUri, {\n cacheResponse: true\n })\n .then(function (res) {\n var key = find(res.keys, {\n kid: kid\n });\n if (key) {\n return key;\n }\n throw new AuthSdkError('The key id, ' + kid + ', was not found in the server\\'s keys');\n });\n });\n}\n\nexport { getKey, getWellKnown };\n//# sourceMappingURL=well-known.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../../errors/AuthSdkError.js';\n\nfunction validateClaims(sdk, claims, validationParams) {\n const aud = validationParams.clientId;\n const iss = validationParams.issuer;\n const nonce = validationParams.nonce;\n const acr = validationParams.acrValues;\n if (!claims || !iss || !aud) {\n throw new AuthSdkError('The jwt, iss, and aud arguments are all required');\n }\n if (nonce && claims.nonce !== nonce) {\n throw new AuthSdkError('OAuth flow response nonce doesn\\'t match request nonce');\n }\n const now = Math.floor(Date.now() / 1000);\n if (claims.iss !== iss) {\n throw new AuthSdkError('The issuer [' + claims.iss + '] ' +\n 'does not match [' + iss + ']');\n }\n if ((Array.isArray(claims.aud) && claims.aud.indexOf(aud) < 0) ||\n (!Array.isArray(claims.aud) && claims.aud !== aud)) {\n throw new AuthSdkError('The audience [' + claims.aud + '] ' +\n 'does not match [' + aud + ']');\n }\n if (acr && claims.acr !== acr) {\n throw new AuthSdkError('The acr [' + claims.acr + '] ' +\n 'does not match acr_values [' + acr + ']');\n }\n if (claims.iat > claims.exp) {\n throw new AuthSdkError('The JWT expired before it was issued');\n }\n if (!sdk.options.ignoreLifetime) {\n if ((now - sdk.options.maxClockSkew) > claims.exp) {\n throw new AuthSdkError('The JWT expired and is no longer valid');\n }\n if (claims.iat > (now + sdk.options.maxClockSkew)) {\n throw new AuthSdkError('The JWT was issued in the future');\n }\n }\n}\n\nexport { validateClaims };\n//# sourceMappingURL=validateClaims.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { getWellKnown, getKey } from './endpoints/well-known.js';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { getOidcHash } from '../crypto/oidcHash.js';\nimport { verifyToken as verifyToken$1 } from '../crypto/verifyToken.js';\nimport { validateClaims } from './util/validateClaims.js';\nimport './types/Token.js';\nimport { decodeToken } from './decodeToken.js';\n\nasync function verifyToken(sdk, token, validationParams) {\n if (!token || !token.idToken) {\n throw new AuthSdkError('Only idTokens may be verified');\n }\n const jwt = decodeToken(token.idToken);\n const configuredIssuer = (validationParams === null || validationParams === void 0 ? void 0 : validationParams.issuer) || sdk.options.issuer;\n const { issuer } = await getWellKnown(sdk, configuredIssuer);\n const validationOptions = Object.assign({\n clientId: sdk.options.clientId,\n ignoreSignature: sdk.options.ignoreSignature\n }, validationParams, {\n issuer\n });\n validateClaims(sdk, jwt.payload, validationOptions);\n if (validationOptions.ignoreSignature == true || !sdk.features.isTokenVerifySupported()) {\n return token;\n }\n const key = await getKey(sdk, token.issuer, jwt.header.kid);\n const valid = await verifyToken$1(token.idToken, key);\n if (!valid) {\n throw new AuthSdkError('The token signature is not valid');\n }\n if (validationParams && validationParams.accessToken && token.claims.at_hash) {\n const hash = await getOidcHash(validationParams.accessToken);\n if (hash !== token.claims.at_hash) {\n throw new AuthSdkError('Token hash verification failed');\n }\n }\n return token;\n}\n\nexport { verifyToken };\n//# sourceMappingURL=verifyToken.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { clone } from '../util/object.js';\nimport { getOAuthUrls } from './util/oauth.js';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport OAuthError from '../errors/OAuthError.js';\nimport '../errors/WWWAuthError.js';\nimport { verifyToken } from './verifyToken.js';\nimport { getDefaultTokenParams } from './util/defaultTokenParams.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport './types/Token.js';\n\nfunction validateResponse(res, oauthParams) {\n if (res['error'] && res['error_description']) {\n throw new OAuthError(res['error'], res['error_description']);\n }\n if (res.state !== oauthParams.state) {\n throw new AuthSdkError('OAuth flow response state doesn\\'t match request state');\n }\n if (oauthParams.dpop && res.token_type !== 'DPoP') {\n throw new AuthSdkError('Unable to parse OAuth flow response: DPoP was configured but \"token_type\" was not DPoP');\n }\n}\nasync function handleOAuthResponse(sdk, tokenParams, res, urls) {\n const pkce = sdk.options.pkce !== false;\n if (pkce && (res.code || res.interaction_code)) {\n return sdk.token.exchangeCodeForTokens(Object.assign({}, tokenParams, {\n authorizationCode: res.code,\n interactionCode: res.interaction_code\n }), urls);\n }\n tokenParams = tokenParams || getDefaultTokenParams(sdk);\n urls = urls || getOAuthUrls(sdk, tokenParams);\n let responseType = tokenParams.responseType || [];\n if (!Array.isArray(responseType) && responseType !== 'none') {\n responseType = [responseType];\n }\n let scopes;\n if (res.scope) {\n scopes = res.scope.split(' ');\n }\n else {\n scopes = clone(tokenParams.scopes);\n }\n const clientId = tokenParams.clientId || sdk.options.clientId;\n validateResponse(res, tokenParams);\n const tokenDict = {};\n const expiresIn = res.expires_in;\n const tokenType = res.token_type;\n const accessToken = res.access_token;\n const idToken = res.id_token;\n const refreshToken = res.refresh_token;\n const now = Math.floor(Date.now() / 1000);\n if (accessToken) {\n const accessJwt = sdk.token.decode(accessToken);\n tokenDict.accessToken = {\n accessToken: accessToken,\n claims: accessJwt.payload,\n expiresAt: Number(expiresIn) + now,\n tokenType: tokenType,\n scopes: scopes,\n authorizeUrl: urls.authorizeUrl,\n userinfoUrl: urls.userinfoUrl\n };\n if (tokenParams.dpopPairId) {\n tokenDict.accessToken.dpopPairId = tokenParams.dpopPairId;\n }\n if (tokenParams.extraParams) {\n tokenDict.accessToken.extraParams = tokenParams.extraParams;\n }\n }\n if (refreshToken) {\n tokenDict.refreshToken = {\n refreshToken: refreshToken,\n expiresAt: Number(expiresIn) + now,\n scopes: scopes,\n tokenUrl: urls.tokenUrl,\n authorizeUrl: urls.authorizeUrl,\n issuer: urls.issuer,\n };\n if (tokenParams.dpopPairId) {\n tokenDict.refreshToken.dpopPairId = tokenParams.dpopPairId;\n }\n if (tokenParams.extraParams) {\n tokenDict.refreshToken.extraParams = tokenParams.extraParams;\n }\n }\n if (idToken) {\n const idJwt = sdk.token.decode(idToken);\n const idTokenObj = {\n idToken: idToken,\n claims: idJwt.payload,\n expiresAt: idJwt.payload.exp - idJwt.payload.iat + now,\n scopes: scopes,\n authorizeUrl: urls.authorizeUrl,\n issuer: urls.issuer,\n clientId: clientId\n };\n if (tokenParams.extraParams) {\n idTokenObj.extraParams = tokenParams.extraParams;\n }\n const validationParams = {\n clientId: clientId,\n issuer: urls.issuer,\n nonce: tokenParams.nonce,\n accessToken: accessToken,\n acrValues: tokenParams.acrValues\n };\n if (tokenParams.ignoreSignature !== undefined) {\n validationParams.ignoreSignature = tokenParams.ignoreSignature;\n }\n await verifyToken(sdk, idTokenObj, validationParams);\n tokenDict.idToken = idTokenObj;\n }\n if (responseType.indexOf('token') !== -1 && !tokenDict.accessToken) {\n throw new AuthSdkError('Unable to parse OAuth flow response: response type \"token\" was requested but \"access_token\" was not returned.');\n }\n if (responseType.indexOf('id_token') !== -1 && !tokenDict.idToken) {\n throw new AuthSdkError('Unable to parse OAuth flow response: response type \"id_token\" was requested but \"id_token\" was not returned.');\n }\n return {\n tokens: tokenDict,\n state: res.state,\n code: res.code,\n responseType\n };\n}\n\nexport { handleOAuthResponse };\n//# sourceMappingURL=handleOAuthResponse.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport '../errors/WWWAuthError.js';\nimport { getDefaultTokenParams } from './util/defaultTokenParams.js';\nimport { getOAuthUrls } from './util/oauth.js';\nimport { clone } from '../util/object.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport './types/Token.js';\nimport { postToTokenEndpoint } from './endpoints/token.js';\nimport { handleOAuthResponse } from './handleOAuthResponse.js';\nimport { findKeyPair, createDPoPKeyPair } from './dpop.js';\n\nasync function exchangeCodeForTokens(sdk, tokenParams, urls) {\n urls = urls || getOAuthUrls(sdk, tokenParams);\n tokenParams = Object.assign({}, getDefaultTokenParams(sdk), clone(tokenParams));\n const { authorizationCode, interactionCode, codeVerifier, clientId, redirectUri, scopes, ignoreSignature, state, acrValues, dpop, dpopPairId, extraParams } = tokenParams;\n const getTokenOptions = {\n clientId,\n redirectUri,\n authorizationCode,\n interactionCode,\n codeVerifier,\n dpop,\n };\n const responseType = ['token'];\n if (scopes.indexOf('openid') !== -1) {\n responseType.push('id_token');\n }\n const handleResponseOptions = {\n clientId,\n redirectUri,\n scopes,\n responseType,\n ignoreSignature,\n acrValues,\n extraParams\n };\n try {\n if (dpop) {\n if (dpopPairId) {\n const keyPair = await findKeyPair(dpopPairId);\n getTokenOptions.dpopKeyPair = keyPair;\n handleResponseOptions.dpop = dpop;\n handleResponseOptions.dpopPairId = dpopPairId;\n }\n else {\n const { keyPair, keyPairId } = await createDPoPKeyPair();\n getTokenOptions.dpopKeyPair = keyPair;\n handleResponseOptions.dpop = dpop;\n handleResponseOptions.dpopPairId = keyPairId;\n }\n }\n const oauthResponse = await postToTokenEndpoint(sdk, getTokenOptions, urls);\n const tokenResponse = await handleOAuthResponse(sdk, handleResponseOptions, oauthResponse, urls);\n tokenResponse.code = authorizationCode;\n tokenResponse.state = state;\n return tokenResponse;\n }\n finally {\n sdk.transactionManager.clear();\n }\n}\n\nexport { exchangeCodeForTokens };\n//# sourceMappingURL=exchangeCodeForTokens.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthApiError from '../errors/AuthApiError.js';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport OAuthError from '../errors/OAuthError.js';\nimport WWWAuthError from '../errors/WWWAuthError.js';\nimport { httpRequest } from '../http/request.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport { isAccessToken, isIDToken } from './types/Token.js';\n\nasync function getUserInfo(sdk, accessTokenObject, idTokenObject) {\n if (!accessTokenObject) {\n accessTokenObject = (await sdk.tokenManager.getTokens()).accessToken;\n }\n if (!idTokenObject) {\n idTokenObject = (await sdk.tokenManager.getTokens()).idToken;\n }\n if (!accessTokenObject || !isAccessToken(accessTokenObject)) {\n return Promise.reject(new AuthSdkError('getUserInfo requires an access token object'));\n }\n if (!idTokenObject || !isIDToken(idTokenObject)) {\n return Promise.reject(new AuthSdkError('getUserInfo requires an ID token object'));\n }\n const options = {\n url: accessTokenObject.userinfoUrl,\n method: 'GET',\n accessToken: accessTokenObject.accessToken\n };\n if (sdk.options.dpop) {\n const headers = await sdk.getDPoPAuthorizationHeaders(Object.assign(Object.assign({}, options), { accessToken: accessTokenObject }));\n options.headers = headers;\n delete options.accessToken;\n }\n return httpRequest(sdk, options)\n .then(userInfo => {\n if (userInfo.sub === idTokenObject.claims.sub) {\n return userInfo;\n }\n return Promise.reject(new AuthSdkError('getUserInfo request was rejected due to token mismatch'));\n })\n .catch(function (err) {\n var _a;\n if (err instanceof WWWAuthError && !sdk.options.dpop) {\n const { error, errorDescription } = err;\n throw new OAuthError(error, errorDescription);\n }\n if (!sdk.options.dpop) {\n let e = err;\n if (err instanceof AuthApiError && ((_a = err === null || err === void 0 ? void 0 : err.meta) === null || _a === void 0 ? void 0 : _a.wwwAuthHeader)) {\n e = WWWAuthError.parseHeader(err.meta.wwwAuthHeader);\n }\n if (e instanceof WWWAuthError) {\n const { error, errorDescription } = e;\n throw new OAuthError(error, errorDescription);\n }\n }\n throw err;\n });\n}\n\nexport { getUserInfo };\n//# sourceMappingURL=getUserInfo.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../../errors/AuthSdkError.js';\nimport '../../errors/WWWAuthError.js';\n\nfunction addListener(eventTarget, name, fn) {\n if (eventTarget.addEventListener) {\n eventTarget.addEventListener(name, fn);\n }\n else {\n eventTarget.attachEvent('on' + name, fn);\n }\n}\nfunction removeListener(eventTarget, name, fn) {\n if (eventTarget.removeEventListener) {\n eventTarget.removeEventListener(name, fn);\n }\n else {\n eventTarget.detachEvent('on' + name, fn);\n }\n}\nfunction loadFrame(src) {\n var iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n iframe.src = src;\n return document.body.appendChild(iframe);\n}\nfunction loadPopup(src, options) {\n var title = options.popupTitle || 'External Identity Provider User Authentication';\n var appearance = 'toolbar=no, scrollbars=yes, resizable=yes, ' +\n 'top=100, left=500, width=600, height=600';\n return window.open(src, title, appearance);\n}\nfunction addPostMessageListener(sdk, timeout, state) {\n var responseHandler;\n var timeoutId;\n var msgReceivedOrTimeout = new Promise(function (resolve, reject) {\n responseHandler = function responseHandler(e) {\n if (!e.data || e.data.state !== state) {\n return;\n }\n if (e.origin !== sdk.getIssuerOrigin()) {\n return reject(new AuthSdkError('The request does not match client configuration'));\n }\n resolve(e.data);\n };\n addListener(window, 'message', responseHandler);\n timeoutId = setTimeout(function () {\n reject(new AuthSdkError('OAuth flow timed out'));\n }, timeout || 120000);\n });\n return msgReceivedOrTimeout\n .finally(function () {\n clearTimeout(timeoutId);\n removeListener(window, 'message', responseHandler);\n });\n}\n\nexport { addListener, addPostMessageListener, loadFrame, loadPopup, removeListener };\n//# sourceMappingURL=browser.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { getWellKnown } from '../endpoints/well-known.js';\nimport AuthSdkError from '../../errors/AuthSdkError.js';\nimport '../../errors/WWWAuthError.js';\nimport { getDefaultTokenParams } from './defaultTokenParams.js';\nimport { DEFAULT_CODE_CHALLENGE_METHOD } from '../../constants.js';\nimport PKCE from './pkce.js';\n\nfunction assertPKCESupport(sdk) {\n if (!sdk.features.isPKCESupported()) {\n var errorMessage = 'PKCE requires a modern browser with encryption support running in a secure context.';\n if (!sdk.features.isHTTPS()) {\n errorMessage += '\\nThe current page is not being served with HTTPS protocol. PKCE requires secure HTTPS protocol.';\n }\n if (!sdk.features.hasTextEncoder()) {\n errorMessage += '\\n\"TextEncoder\" is not defined. To use PKCE, you may need to include a polyfill/shim for this browser.';\n }\n throw new AuthSdkError(errorMessage);\n }\n}\nasync function validateCodeChallengeMethod(sdk, codeChallengeMethod) {\n codeChallengeMethod = codeChallengeMethod || sdk.options.codeChallengeMethod || DEFAULT_CODE_CHALLENGE_METHOD;\n const wellKnownResponse = await getWellKnown(sdk);\n var methods = wellKnownResponse['code_challenge_methods_supported'] || [];\n if (methods.indexOf(codeChallengeMethod) === -1) {\n throw new AuthSdkError('Invalid code_challenge_method');\n }\n return codeChallengeMethod;\n}\nasync function preparePKCE(sdk, tokenParams) {\n let { codeVerifier, codeChallenge, codeChallengeMethod } = tokenParams;\n codeChallenge = codeChallenge || sdk.options.codeChallenge;\n if (!codeChallenge) {\n assertPKCESupport(sdk);\n codeVerifier = codeVerifier || PKCE.generateVerifier();\n codeChallenge = await PKCE.computeChallenge(codeVerifier);\n }\n codeChallengeMethod = await validateCodeChallengeMethod(sdk, codeChallengeMethod);\n tokenParams = Object.assign(Object.assign({}, tokenParams), { responseType: 'code',\n codeVerifier,\n codeChallenge,\n codeChallengeMethod });\n return tokenParams;\n}\nasync function prepareTokenParams(sdk, tokenParams = {}) {\n const defaults = getDefaultTokenParams(sdk);\n tokenParams = Object.assign(Object.assign({}, defaults), tokenParams);\n if (tokenParams.dpop && !sdk.features.isDPoPSupported()) {\n throw new AuthSdkError('DPoP has been configured, but is not supported by browser');\n }\n if (tokenParams.pkce === false) {\n return tokenParams;\n }\n return preparePKCE(sdk, tokenParams);\n}\n\nexport { assertPKCESupport, preparePKCE, prepareTokenParams, validateCodeChallengeMethod };\n//# sourceMappingURL=prepareTokenParams.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { removeNils } from '../../util/object.js';\nimport { isString } from '../../util/types.js';\nimport { toQueryString } from '../../util/url.js';\nimport AuthSdkError from '../../errors/AuthSdkError.js';\nimport '../../errors/WWWAuthError.js';\n\nfunction convertTokenParamsToOAuthParams(tokenParams) {\n if (!tokenParams.clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to get a token');\n }\n if (isString(tokenParams.responseType) && tokenParams.responseType.indexOf(' ') !== -1) {\n throw new AuthSdkError('Multiple OAuth responseTypes must be defined as an array');\n }\n var oauthParams = {\n 'client_id': tokenParams.clientId,\n 'code_challenge': tokenParams.codeChallenge,\n 'code_challenge_method': tokenParams.codeChallengeMethod,\n 'display': tokenParams.display,\n 'idp': tokenParams.idp,\n 'idp_scope': tokenParams.idpScope,\n 'login_hint': tokenParams.loginHint,\n 'max_age': tokenParams.maxAge,\n 'nonce': tokenParams.nonce,\n 'prompt': tokenParams.prompt,\n 'redirect_uri': tokenParams.redirectUri,\n 'response_mode': tokenParams.responseMode,\n 'response_type': tokenParams.responseType,\n 'sessionToken': tokenParams.sessionToken,\n 'state': tokenParams.state,\n 'acr_values': tokenParams.acrValues,\n 'enroll_amr_values': tokenParams.enrollAmrValues,\n };\n oauthParams = removeNils(oauthParams);\n ['idp_scope', 'response_type', 'enroll_amr_values'].forEach(function (mayBeArray) {\n if (Array.isArray(oauthParams[mayBeArray])) {\n oauthParams[mayBeArray] = oauthParams[mayBeArray].join(' ');\n }\n });\n if (tokenParams.responseType.indexOf('id_token') !== -1 &&\n tokenParams.scopes.indexOf('openid') === -1) {\n throw new AuthSdkError('openid scope must be specified in the scopes argument when requesting an id_token');\n }\n else if (tokenParams.scopes) {\n oauthParams.scope = tokenParams.scopes.join(' ');\n }\n return oauthParams;\n}\nfunction buildAuthorizeParams(tokenParams) {\n var oauthQueryParams = convertTokenParamsToOAuthParams(tokenParams);\n return toQueryString(Object.assign(Object.assign({}, oauthQueryParams), (tokenParams.extraParams && Object.assign({}, tokenParams.extraParams))));\n}\n\nexport { buildAuthorizeParams, convertTokenParamsToOAuthParams };\n//# sourceMappingURL=authorize.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { addPostMessageListener, loadFrame } from './util/browser.js';\nimport { getOAuthUrls } from './util/oauth.js';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { prepareTokenParams } from './util/prepareTokenParams.js';\nimport './types/Token.js';\nimport { buildAuthorizeParams } from './endpoints/authorize.js';\nimport { handleOAuthResponse } from './handleOAuthResponse.js';\n\nfunction getToken(sdk, options) {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getToken\" takes only a single set of options'));\n }\n options = options || {};\n const popupWindow = options.popupWindow;\n options.popupWindow = undefined;\n return prepareTokenParams(sdk, options)\n .then(function (tokenParams) {\n var sessionTokenOverrides = {\n prompt: 'none',\n responseMode: 'okta_post_message',\n display: null\n };\n var idpOverrides = {\n display: 'popup'\n };\n if (options.sessionToken) {\n Object.assign(tokenParams, sessionTokenOverrides);\n }\n else if (options.idp) {\n Object.assign(tokenParams, idpOverrides);\n }\n var requestUrl, endpoint, urls;\n urls = getOAuthUrls(sdk, tokenParams);\n endpoint = options.codeVerifier ? urls.tokenUrl : urls.authorizeUrl;\n requestUrl = endpoint + buildAuthorizeParams(tokenParams);\n var flowType;\n if (tokenParams.sessionToken || tokenParams.display === null) {\n flowType = 'IFRAME';\n }\n else if (tokenParams.display === 'popup') {\n flowType = 'POPUP';\n }\n else {\n flowType = 'IMPLICIT';\n }\n switch (flowType) {\n case 'IFRAME':\n var iframePromise = addPostMessageListener(sdk, options.timeout, tokenParams.state);\n var iframeEl = loadFrame(requestUrl);\n return iframePromise\n .then(function (res) {\n return handleOAuthResponse(sdk, tokenParams, res, urls);\n })\n .finally(function () {\n var _a;\n if (document.body.contains(iframeEl)) {\n (_a = iframeEl.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(iframeEl);\n }\n });\n case 'POPUP':\n var oauthPromise;\n if (tokenParams.responseMode === 'okta_post_message') {\n if (!sdk.features.isPopupPostMessageSupported()) {\n throw new AuthSdkError('This browser doesn\\'t have full postMessage support');\n }\n oauthPromise = addPostMessageListener(sdk, options.timeout, tokenParams.state);\n }\n if (popupWindow) {\n popupWindow.location.assign(requestUrl);\n }\n var popupPromise = new Promise(function (resolve, reject) {\n var closePoller = setInterval(function () {\n if (!popupWindow || popupWindow.closed) {\n clearInterval(closePoller);\n reject(new AuthSdkError('Unable to parse OAuth flow response'));\n }\n }, 100);\n oauthPromise\n .then(function (res) {\n clearInterval(closePoller);\n resolve(res);\n })\n .catch(function (err) {\n clearInterval(closePoller);\n reject(err);\n });\n });\n return popupPromise\n .then(function (res) {\n return handleOAuthResponse(sdk, tokenParams, res, urls);\n })\n .finally(function () {\n if (popupWindow && !popupWindow.closed) {\n popupWindow.close();\n }\n });\n default:\n throw new AuthSdkError('The full page redirect flow is not supported');\n }\n });\n}\n\nexport { getToken };\n//# sourceMappingURL=getToken.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { clone } from '../util/object.js';\nimport { getToken } from './getToken.js';\n\nfunction getWithoutPrompt(sdk, options) {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithoutPrompt\" takes only a single set of options'));\n }\n options = clone(options) || {};\n Object.assign(options, {\n prompt: 'none',\n responseMode: 'okta_post_message',\n display: null\n });\n return getToken(sdk, options);\n}\n\nexport { getWithoutPrompt };\n//# sourceMappingURL=getWithoutPrompt.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { clone } from '../util/object.js';\nimport { getToken } from './getToken.js';\nimport { loadPopup } from './util/browser.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport './types/Token.js';\n\nfunction getWithPopup(sdk, options) {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithPopup\" takes only a single set of options'));\n }\n const popupWindow = loadPopup('/', options);\n options = clone(options) || {};\n Object.assign(options, {\n display: 'popup',\n responseMode: 'okta_post_message',\n popupWindow\n });\n return getToken(sdk, options);\n}\n\nexport { getWithPopup };\n//# sourceMappingURL=getWithPopup.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { clone } from '../util/object.js';\nimport { createOAuthMeta } from './util/oauthMeta.js';\nimport { prepareTokenParams } from './util/prepareTokenParams.js';\nimport './types/Token.js';\nimport { buildAuthorizeParams } from './endpoints/authorize.js';\n\nasync function getWithRedirect(sdk, options) {\n if (arguments.length > 2) {\n return Promise.reject(new AuthSdkError('As of version 3.0, \"getWithRedirect\" takes only a single set of options'));\n }\n options = clone(options) || {};\n const tokenParams = await prepareTokenParams(sdk, options);\n const meta = createOAuthMeta(sdk, tokenParams);\n const requestUrl = meta.urls.authorizeUrl + buildAuthorizeParams(tokenParams);\n sdk.transactionManager.save(meta);\n if (sdk.options.setLocation) {\n sdk.options.setLocation(requestUrl);\n }\n else {\n window.location.assign(requestUrl);\n }\n}\n\nexport { getWithRedirect };\n//# sourceMappingURL=getWithRedirect.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { isString } from '../util/types.js';\nimport { isInteractionRequiredError } from './util/errors.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport { urlParamsToObject } from './util/urlParams.js';\nimport './types/Token.js';\nimport { handleOAuthResponse } from './handleOAuthResponse.js';\n\nfunction removeHash(sdk) {\n var nativeHistory = sdk.token.parseFromUrl._getHistory();\n var nativeDoc = sdk.token.parseFromUrl._getDocument();\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n if (nativeHistory && nativeHistory.replaceState) {\n nativeHistory.replaceState(null, nativeDoc.title, nativeLoc.pathname + nativeLoc.search);\n }\n else {\n nativeLoc.hash = '';\n }\n}\nfunction removeSearch(sdk) {\n var nativeHistory = sdk.token.parseFromUrl._getHistory();\n var nativeDoc = sdk.token.parseFromUrl._getDocument();\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n if (nativeHistory && nativeHistory.replaceState) {\n nativeHistory.replaceState(null, nativeDoc.title, nativeLoc.pathname + nativeLoc.hash);\n }\n else {\n nativeLoc.search = '';\n }\n}\nfunction getResponseMode(sdk) {\n var defaultResponseMode = sdk.options.pkce ? 'query' : 'fragment';\n var responseMode = sdk.options.responseMode || defaultResponseMode;\n return responseMode;\n}\nfunction parseOAuthResponseFromUrl(sdk, options) {\n options = options || {};\n if (isString(options)) {\n options = { url: options };\n }\n else {\n options = options;\n }\n var url = options.url;\n var responseMode = options.responseMode || getResponseMode(sdk);\n var nativeLoc = sdk.token.parseFromUrl._getLocation();\n var paramStr;\n if (responseMode === 'query') {\n paramStr = url ? url.substring(url.indexOf('?')) : nativeLoc.search;\n }\n else {\n paramStr = url ? url.substring(url.indexOf('#')) : nativeLoc.hash;\n }\n if (!paramStr) {\n throw new AuthSdkError('Unable to parse a token from the url');\n }\n return urlParamsToObject(paramStr);\n}\nfunction cleanOAuthResponseFromUrl(sdk, options) {\n const responseMode = options.responseMode || getResponseMode(sdk);\n responseMode === 'query' ? removeSearch(sdk) : removeHash(sdk);\n}\nasync function parseFromUrl(sdk, options) {\n options = options || {};\n if (isString(options)) {\n options = { url: options };\n }\n else {\n options = options;\n }\n const res = parseOAuthResponseFromUrl(sdk, options);\n const state = res.state;\n const oauthParams = sdk.transactionManager.load({\n state\n });\n if (!oauthParams) {\n if (sdk.options.pkce) {\n throw new AuthSdkError('Could not load PKCE codeVerifier from storage. This may indicate the auth flow has already completed or multiple auth flows are executing concurrently.', undefined);\n }\n throw new AuthSdkError('Unable to retrieve OAuth redirect params from storage');\n }\n const urls = oauthParams.urls;\n delete oauthParams.urls;\n if (!options.url) {\n cleanOAuthResponseFromUrl(sdk, options);\n }\n return handleOAuthResponse(sdk, oauthParams, res, urls)\n .catch(err => {\n if (!isInteractionRequiredError(err)) {\n sdk.transactionManager.clear({\n state\n });\n }\n throw err;\n })\n .then(res => {\n sdk.transactionManager.clear({\n state\n });\n return res;\n });\n}\n\nexport { cleanOAuthResponseFromUrl, getResponseMode, parseFromUrl, parseOAuthResponseFromUrl };\n//# sourceMappingURL=parseFromUrl.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { isAuthApiError } from '../../errors/index.js';\n\nfunction isSameRefreshToken(a, b) {\n return (a.refreshToken === b.refreshToken);\n}\nfunction isRefreshTokenError(err) {\n if (!isAuthApiError(err)) {\n return false;\n }\n if (!err.xhr || !err.xhr.responseJSON) {\n return false;\n }\n const { responseJSON } = err.xhr;\n if (responseJSON.error === 'invalid_grant') {\n return true;\n }\n return false;\n}\n\nexport { isRefreshTokenError, isSameRefreshToken };\n//# sourceMappingURL=refreshToken.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { getOAuthUrls } from './util/oauth.js';\nimport { isSameRefreshToken } from './util/refreshToken.js';\nimport { handleOAuthResponse } from './handleOAuthResponse.js';\nimport { postRefreshToken } from './endpoints/token.js';\nimport { findKeyPair } from './dpop.js';\nimport { isRefreshTokenInvalidError } from './util/errors.js';\n\nasync function renewTokensWithRefresh(sdk, tokenParams, refreshTokenObject) {\n const { clientId, dpop } = sdk.options;\n if (!clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to renew tokens');\n }\n try {\n const renewTokenParams = Object.assign({}, tokenParams, { clientId });\n if (refreshTokenObject.extraParams) {\n renewTokenParams.extraParams = refreshTokenObject.extraParams;\n }\n const endpointParams = Object.assign({}, renewTokenParams);\n if (dpop) {\n const keyPair = await findKeyPair(refreshTokenObject === null || refreshTokenObject === void 0 ? void 0 : refreshTokenObject.dpopPairId);\n endpointParams.dpopKeyPair = keyPair;\n renewTokenParams.dpop = dpop;\n renewTokenParams.dpopPairId = refreshTokenObject.dpopPairId;\n }\n const tokenResponse = await postRefreshToken(sdk, endpointParams, refreshTokenObject);\n const urls = getOAuthUrls(sdk, tokenParams);\n const { tokens } = await handleOAuthResponse(sdk, renewTokenParams, tokenResponse, urls);\n const { refreshToken } = tokens;\n if (refreshToken && !isSameRefreshToken(refreshToken, refreshTokenObject)) {\n sdk.tokenManager.updateRefreshToken(refreshToken);\n }\n return tokens;\n }\n catch (err) {\n if (isRefreshTokenInvalidError(err)) {\n sdk.tokenManager.removeRefreshToken();\n }\n throw err;\n }\n}\n\nexport { renewTokensWithRefresh };\n//# sourceMappingURL=renewTokensWithRefresh.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { isIDToken, isAccessToken } from './types/Token.js';\nimport { getWithoutPrompt } from './getWithoutPrompt.js';\nimport { renewTokensWithRefresh } from './renewTokensWithRefresh.js';\n\nfunction throwInvalidTokenError() {\n throw new AuthSdkError('Renew must be passed a token with an array of scopes and an accessToken or idToken');\n}\nfunction getSingleToken(originalToken, tokens) {\n if (isIDToken(originalToken)) {\n return tokens.idToken;\n }\n if (isAccessToken(originalToken)) {\n return tokens.accessToken;\n }\n throwInvalidTokenError();\n}\nasync function renewToken(sdk, token) {\n if (!isIDToken(token) && !isAccessToken(token)) {\n throwInvalidTokenError();\n }\n let tokens = sdk.tokenManager.getTokensSync();\n if (tokens.refreshToken) {\n tokens = await renewTokensWithRefresh(sdk, {\n scopes: token.scopes,\n }, tokens.refreshToken);\n return getSingleToken(token, tokens);\n }\n var responseType;\n if (sdk.options.pkce) {\n responseType = 'code';\n }\n else if (isAccessToken(token)) {\n responseType = 'token';\n }\n else {\n responseType = 'id_token';\n }\n const { scopes, authorizeUrl, userinfoUrl, issuer, dpopPairId, extraParams } = token;\n return getWithoutPrompt(sdk, {\n responseType,\n scopes,\n authorizeUrl,\n userinfoUrl,\n issuer,\n dpopPairId,\n extraParams\n })\n .then(function (res) {\n return getSingleToken(token, res.tokens);\n });\n}\n\nexport { renewToken };\n//# sourceMappingURL=renewToken.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { getWithoutPrompt } from './getWithoutPrompt.js';\nimport { renewTokensWithRefresh } from './renewTokensWithRefresh.js';\nimport { getDefaultTokenParams } from './util/defaultTokenParams.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport './types/Token.js';\n\nasync function renewTokens(sdk, options) {\n var _a;\n const tokens = (_a = options === null || options === void 0 ? void 0 : options.tokens) !== null && _a !== void 0 ? _a : sdk.tokenManager.getTokensSync();\n if (tokens.refreshToken) {\n return renewTokensWithRefresh(sdk, options || {}, tokens.refreshToken);\n }\n if (!tokens.accessToken && !tokens.idToken) {\n throw new AuthSdkError('renewTokens() was called but there is no existing token');\n }\n const accessToken = tokens.accessToken || {};\n const idToken = tokens.idToken || {};\n const scopes = accessToken.scopes || idToken.scopes;\n if (!scopes) {\n throw new AuthSdkError('renewTokens: invalid tokens: could not read scopes');\n }\n const authorizeUrl = accessToken.authorizeUrl || idToken.authorizeUrl;\n if (!authorizeUrl) {\n throw new AuthSdkError('renewTokens: invalid tokens: could not read authorizeUrl');\n }\n const userinfoUrl = accessToken.userinfoUrl || sdk.options.userinfoUrl;\n const issuer = idToken.issuer || sdk.options.issuer;\n const dpopPairId = accessToken === null || accessToken === void 0 ? void 0 : accessToken.dpopPairId;\n const extraParams = (accessToken === null || accessToken === void 0 ? void 0 : accessToken.extraParams) || (idToken === null || idToken === void 0 ? void 0 : idToken.extraParams);\n options = Object.assign({\n scopes,\n authorizeUrl,\n userinfoUrl,\n issuer,\n dpopPairId,\n extraParams\n }, options);\n if (sdk.options.pkce) {\n options.responseType = 'code';\n }\n else {\n const { responseType } = getDefaultTokenParams(sdk);\n options.responseType = responseType;\n }\n return getWithoutPrompt(sdk, options)\n .then(res => res.tokens);\n}\n\nexport { renewTokens };\n//# sourceMappingURL=renewTokens.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { btoa as b } from '../crypto/browser.js';\nimport { toQueryString } from '../util/url.js';\nimport { post } from '../http/request.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport { getOAuthUrls } from './util/oauth.js';\n\nasync function revokeToken(sdk, token) {\n let accessToken = '';\n let refreshToken = '';\n if (token) {\n accessToken = token.accessToken;\n refreshToken = token.refreshToken;\n }\n if (!accessToken && !refreshToken) {\n throw new AuthSdkError('A valid access or refresh token object is required');\n }\n var clientId = sdk.options.clientId;\n var clientSecret = sdk.options.clientSecret;\n if (!clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to revoke a token');\n }\n var revokeUrl = getOAuthUrls(sdk).revokeUrl;\n var args = toQueryString({\n token_type_hint: refreshToken ? 'refresh_token' : 'access_token',\n token: refreshToken || accessToken,\n }).slice(1);\n var creds = clientSecret ? b(`${clientId}:${clientSecret}`) : b(clientId);\n return post(sdk, revokeUrl, args, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': 'Basic ' + creds\n }\n });\n}\n\nexport { revokeToken };\n//# sourceMappingURL=revokeToken.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { getWellKnown } from './endpoints/well-known.js';\nimport { btoa as b } from '../crypto/browser.js';\nimport { toQueryString } from '../util/url.js';\nimport { post } from '../http/request.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport { TokenKind } from './types/Token.js';\n\nconst hintMap = {\n accessToken: 'access_token',\n idToken: 'id_token',\n refreshToken: 'refresh_token'\n};\nasync function oidcIntrospect(sdk, kind, token) {\n var _a;\n let issuer;\n let clientId = sdk.options.clientId;\n let clientSecret = sdk.options.clientSecret;\n if (!token) {\n token = sdk.tokenManager.getTokens()[kind];\n }\n if (!token) {\n throw new AuthSdkError(`unable to find ${kind} in storage or fn params`);\n }\n if (kind !== TokenKind.ACCESS) {\n issuer = token === null || token === void 0 ? void 0 : token.issuer;\n }\n else {\n issuer = (_a = token === null || token === void 0 ? void 0 : token.claims) === null || _a === void 0 ? void 0 : _a.iss;\n }\n issuer = issuer || sdk.options.issuer;\n if (!clientId) {\n throw new AuthSdkError('A clientId must be specified in the OktaAuth constructor to introspect a token');\n }\n if (!issuer) {\n throw new AuthSdkError('Unable to find issuer');\n }\n const { introspection_endpoint: introspectUrl } = await getWellKnown(sdk, issuer);\n const authHeader = clientSecret ? b(`${clientId}:${clientSecret}`) : b(clientId);\n const args = toQueryString({\n token_type_hint: hintMap[kind],\n token: token[kind]\n }).slice(1);\n return post(sdk, introspectUrl, args, {\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': 'Basic ' + authHeader\n }\n });\n}\n\nexport { oidcIntrospect };\n//# sourceMappingURL=introspect.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { getOAuthUrls } from './oauth.js';\n\nfunction createEnrollAuthenticatorMeta(sdk, params) {\n const issuer = sdk.options.issuer;\n const urls = getOAuthUrls(sdk, params);\n const oauthMeta = {\n issuer,\n urls,\n clientId: params.clientId,\n redirectUri: params.redirectUri,\n responseType: params.responseType,\n responseMode: params.responseMode,\n state: params.state,\n acrValues: params.acrValues,\n enrollAmrValues: params.enrollAmrValues,\n };\n return oauthMeta;\n}\n\nexport { createEnrollAuthenticatorMeta };\n//# sourceMappingURL=enrollAuthenticatorMeta.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { generateState } from './oauth.js';\nimport { isBrowser } from '../../features.js';\nimport { removeNils } from '../../util/object.js';\n\nfunction getDefaultEnrollAuthenticatorParams(sdk) {\n const { clientId, redirectUri, responseMode, state, } = sdk.options;\n const defaultRedirectUri = isBrowser() ? window.location.href : undefined;\n return removeNils({\n clientId,\n redirectUri: redirectUri || defaultRedirectUri,\n responseMode,\n state: state || generateState(),\n responseType: 'none',\n prompt: 'enroll_authenticator',\n });\n}\n\nexport { getDefaultEnrollAuthenticatorParams };\n//# sourceMappingURL=defaultEnrollAuthenticatorParams.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../../errors/AuthSdkError.js';\nimport '../../errors/WWWAuthError.js';\nimport { getDefaultEnrollAuthenticatorParams } from './defaultEnrollAuthenticatorParams.js';\n\nfunction prepareParams(params) {\n params = Object.assign(Object.assign({}, params), {\n responseType: 'none', prompt: 'enroll_authenticator', maxAge: 0 });\n if (!params.enrollAmrValues) {\n throw new AuthSdkError('enroll_amr_values must be specified');\n }\n if (!params.acrValues) {\n throw new AuthSdkError('acr_values must be specified');\n }\n delete params.scopes;\n delete params.nonce;\n return params;\n}\nfunction prepareEnrollAuthenticatorParams(sdk, options) {\n return prepareParams(Object.assign(Object.assign({}, getDefaultEnrollAuthenticatorParams(sdk)), options));\n}\n\nexport { prepareEnrollAuthenticatorParams };\n//# sourceMappingURL=prepareEnrollAuthenticatorParams.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { clone } from '../util/object.js';\nimport '../errors/WWWAuthError.js';\nimport { createEnrollAuthenticatorMeta } from './util/enrollAuthenticatorMeta.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport { prepareEnrollAuthenticatorParams } from './util/prepareEnrollAuthenticatorParams.js';\nimport './types/Token.js';\nimport { buildAuthorizeParams } from './endpoints/authorize.js';\n\nfunction enrollAuthenticator(sdk, options) {\n options = clone(options) || {};\n const params = prepareEnrollAuthenticatorParams(sdk, options);\n const meta = createEnrollAuthenticatorMeta(sdk, params);\n const requestUrl = meta.urls.authorizeUrl + buildAuthorizeParams(params);\n sdk.transactionManager.save(meta);\n if (sdk.options.setLocation) {\n sdk.options.setLocation(requestUrl);\n }\n else {\n window.location.assign(requestUrl);\n }\n}\n\nexport { enrollAuthenticator };\n//# sourceMappingURL=enrollAuthenticator.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { PromiseQueue } from '../../util/PromiseQueue.js';\nimport { decodeToken } from '../decodeToken.js';\nimport { exchangeCodeForTokens } from '../exchangeCodeForTokens.js';\nimport { getUserInfo } from '../getUserInfo.js';\nimport { getWithoutPrompt } from '../getWithoutPrompt.js';\nimport { getWithPopup } from '../getWithPopup.js';\nimport { getWithRedirect } from '../getWithRedirect.js';\nimport { parseFromUrl } from '../parseFromUrl.js';\nimport { renewToken } from '../renewToken.js';\nimport { renewTokens } from '../renewTokens.js';\nimport { renewTokensWithRefresh } from '../renewTokensWithRefresh.js';\nimport { revokeToken } from '../revokeToken.js';\nimport { oidcIntrospect } from '../introspect.js';\nimport '../../errors/WWWAuthError.js';\nimport { isLoginRedirect } from '../util/loginRedirect.js';\nimport { prepareTokenParams } from '../util/prepareTokenParams.js';\nimport '../types/Token.js';\nimport { verifyToken } from '../verifyToken.js';\nimport { enrollAuthenticator } from '../enrollAuthenticator.js';\n\nfunction createTokenAPI(sdk, queue) {\n const useQueue = (method) => {\n return PromiseQueue.prototype.push.bind(queue, method, null);\n };\n const getWithRedirectFn = useQueue(getWithRedirect.bind(null, sdk));\n const parseFromUrlFn = useQueue(parseFromUrl.bind(null, sdk));\n const parseFromUrlApi = Object.assign(parseFromUrlFn, {\n _getHistory: function () {\n return window.history;\n },\n _getLocation: function () {\n return window.location;\n },\n _getDocument: function () {\n return window.document;\n }\n });\n const token = {\n prepareTokenParams: prepareTokenParams.bind(null, sdk),\n exchangeCodeForTokens: exchangeCodeForTokens.bind(null, sdk),\n getWithoutPrompt: getWithoutPrompt.bind(null, sdk),\n getWithPopup: getWithPopup.bind(null, sdk),\n getWithRedirect: getWithRedirectFn,\n parseFromUrl: parseFromUrlApi,\n decode: decodeToken,\n revoke: revokeToken.bind(null, sdk),\n renew: renewToken.bind(null, sdk),\n renewTokensWithRefresh: renewTokensWithRefresh.bind(null, sdk),\n renewTokens: renewTokens.bind(null, sdk),\n getUserInfo: (accessTokenObject, idTokenObject) => {\n return getUserInfo(sdk, accessTokenObject, idTokenObject);\n },\n verify: verifyToken.bind(null, sdk),\n isLoginRedirect: isLoginRedirect.bind(null, sdk),\n introspect: oidcIntrospect.bind(null, sdk),\n };\n const toWrap = [\n 'getWithoutPrompt',\n 'getWithPopup',\n 'revoke',\n 'renew',\n 'renewTokensWithRefresh',\n 'renewTokens'\n ];\n toWrap.forEach(key => {\n token[key] = useQueue(token[key]);\n });\n return token;\n}\nfunction createEndpoints(sdk) {\n return {\n authorize: {\n enrollAuthenticator: enrollAuthenticator.bind(null, sdk),\n }\n };\n}\n\nexport { createEndpoints, createTokenAPI };\n//# sourceMappingURL=api.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../../errors/AuthSdkError.js';\nimport '../../errors/WWWAuthError.js';\nimport { isIDToken, isAccessToken, isRefreshToken } from '../types/Token.js';\n\nfunction validateToken(token, type) {\n if (!isIDToken(token) && !isAccessToken(token) && !isRefreshToken(token)) {\n throw new AuthSdkError('Token must be an Object with scopes, expiresAt, and one of: an idToken, accessToken, or refreshToken property');\n }\n if (type === 'accessToken' && !isAccessToken(token)) {\n throw new AuthSdkError('invalid accessToken');\n }\n if (type === 'idToken' && !isIDToken(token)) {\n throw new AuthSdkError('invalid idToken');\n }\n if (type === 'refreshToken' && !isRefreshToken(token)) {\n throw new AuthSdkError('invalid refreshToken');\n }\n}\n\nexport { validateToken };\n//# sourceMappingURL=validateToken.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nclass SdkClock {\n constructor(localOffset) {\n this.localOffset = parseInt(localOffset || 0);\n }\n static create( ) {\n var localOffset = 0;\n return new SdkClock(localOffset);\n }\n now() {\n var now = (Date.now() + this.localOffset) / 1000;\n return now;\n }\n}\n\nexport { SdkClock as default };\n//# sourceMappingURL=clock.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nconst EVENT_EXPIRED = 'expired';\nconst EVENT_RENEWED = 'renewed';\nconst EVENT_ADDED = 'added';\nconst EVENT_REMOVED = 'removed';\nconst EVENT_ERROR = 'error';\nconst EVENT_SET_STORAGE = 'set_storage';\n\nexport { EVENT_ADDED, EVENT_ERROR, EVENT_EXPIRED, EVENT_REMOVED, EVENT_RENEWED, EVENT_SET_STORAGE };\n//# sourceMappingURL=TokenManager.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { removeNils, clone } from '../util/object.js';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { isLocalhost, isIE11OrLess } from '../features.js';\nimport { REFRESH_TOKEN_STORAGE_KEY, TOKEN_STORAGE_NAME } from '../constants.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport { validateToken } from './util/validateToken.js';\nimport SdkClock from '../clock.js';\nimport { isRefreshToken, isAccessToken, isIDToken } from './types/Token.js';\nimport { EVENT_EXPIRED, EVENT_RENEWED, EVENT_ADDED, EVENT_REMOVED, EVENT_ERROR, EVENT_SET_STORAGE } from './types/TokenManager.js';\n\nconst DEFAULT_OPTIONS = {\n autoRenew: true,\n autoRemove: true,\n syncStorage: true,\n clearPendingRemoveTokens: true,\n storage: undefined,\n expireEarlySeconds: 30,\n storageKey: TOKEN_STORAGE_NAME\n};\nfunction defaultState() {\n return {\n expireTimeouts: {},\n renewPromise: null\n };\n}\nclass TokenManager {\n constructor(sdk, options = {}) {\n this.sdk = sdk;\n this.emitter = sdk.emitter;\n if (!this.emitter) {\n throw new AuthSdkError('Emitter should be initialized before TokenManager');\n }\n options = Object.assign({}, DEFAULT_OPTIONS, removeNils(options));\n if (!isLocalhost()) {\n options.expireEarlySeconds = DEFAULT_OPTIONS.expireEarlySeconds;\n }\n this.options = options;\n const storageOptions = removeNils({\n storageKey: options.storageKey,\n secure: options.secure,\n });\n if (typeof options.storage === 'object') {\n storageOptions.storageProvider = options.storage;\n }\n else if (options.storage) {\n storageOptions.storageType = options.storage;\n }\n this.storage = sdk.storageManager.getTokenStorage(Object.assign(Object.assign({}, storageOptions), { useSeparateCookies: true }));\n this.clock = SdkClock.create( );\n this.state = defaultState();\n }\n on(event, handler, context) {\n if (context) {\n this.emitter.on(event, handler, context);\n }\n else {\n this.emitter.on(event, handler);\n }\n }\n off(event, handler) {\n if (handler) {\n this.emitter.off(event, handler);\n }\n else {\n this.emitter.off(event);\n }\n }\n start() {\n if (this.options.clearPendingRemoveTokens) {\n this.clearPendingRemoveTokens();\n }\n this.setExpireEventTimeoutAll();\n this.state.started = true;\n }\n stop() {\n this.clearExpireEventTimeoutAll();\n this.state.started = false;\n }\n isStarted() {\n return !!this.state.started;\n }\n getOptions() {\n return clone(this.options);\n }\n getExpireTime(token) {\n const expireEarlySeconds = this.options.expireEarlySeconds || 0;\n var expireTime = token.expiresAt - expireEarlySeconds;\n return expireTime;\n }\n hasExpired(token) {\n var expireTime = this.getExpireTime(token);\n return expireTime <= this.clock.now();\n }\n emitExpired(key, token) {\n this.emitter.emit(EVENT_EXPIRED, key, token);\n }\n emitRenewed(key, freshToken, oldToken) {\n this.emitter.emit(EVENT_RENEWED, key, freshToken, oldToken);\n }\n emitAdded(key, token) {\n this.emitter.emit(EVENT_ADDED, key, token);\n }\n emitRemoved(key, token) {\n this.emitter.emit(EVENT_REMOVED, key, token);\n }\n emitError(error) {\n this.emitter.emit(EVENT_ERROR, error);\n }\n clearExpireEventTimeout(key) {\n clearTimeout(this.state.expireTimeouts[key]);\n delete this.state.expireTimeouts[key];\n this.state.renewPromise = null;\n }\n clearExpireEventTimeoutAll() {\n var expireTimeouts = this.state.expireTimeouts;\n for (var key in expireTimeouts) {\n if (!Object.prototype.hasOwnProperty.call(expireTimeouts, key)) {\n continue;\n }\n this.clearExpireEventTimeout(key);\n }\n }\n setExpireEventTimeout(key, token) {\n if (isRefreshToken(token)) {\n return;\n }\n var expireTime = this.getExpireTime(token);\n var expireEventWait = Math.max(expireTime - this.clock.now(), 0) * 1000;\n this.clearExpireEventTimeout(key);\n var expireEventTimeout = setTimeout(() => {\n this.emitExpired(key, token);\n }, expireEventWait);\n this.state.expireTimeouts[key] = expireEventTimeout;\n }\n setExpireEventTimeoutAll() {\n var tokenStorage = this.storage.getStorage();\n for (var key in tokenStorage) {\n if (!Object.prototype.hasOwnProperty.call(tokenStorage, key)) {\n continue;\n }\n var token = tokenStorage[key];\n this.setExpireEventTimeout(key, token);\n }\n }\n resetExpireEventTimeoutAll() {\n this.clearExpireEventTimeoutAll();\n this.setExpireEventTimeoutAll();\n }\n add(key, token) {\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n this.emitSetStorageEvent();\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n }\n getSync(key) {\n var tokenStorage = this.storage.getStorage();\n return tokenStorage[key];\n }\n async get(key) {\n return this.getSync(key);\n }\n getTokensSync() {\n const tokens = {};\n const tokenStorage = this.storage.getStorage();\n Object.keys(tokenStorage).forEach(key => {\n const token = tokenStorage[key];\n if (isAccessToken(token)) {\n tokens.accessToken = token;\n }\n else if (isIDToken(token)) {\n tokens.idToken = token;\n }\n else if (isRefreshToken(token)) {\n tokens.refreshToken = token;\n }\n });\n return tokens;\n }\n async getTokens() {\n return this.getTokensSync();\n }\n getStorageKeyByType(type) {\n const tokenStorage = this.storage.getStorage();\n const key = Object.keys(tokenStorage).filter(key => {\n const token = tokenStorage[key];\n return (isAccessToken(token) && type === 'accessToken')\n || (isIDToken(token) && type === 'idToken')\n || (isRefreshToken(token) && type === 'refreshToken');\n })[0];\n return key;\n }\n getTokenType(token) {\n if (isAccessToken(token)) {\n return 'accessToken';\n }\n if (isIDToken(token)) {\n return 'idToken';\n }\n if (isRefreshToken(token)) {\n return 'refreshToken';\n }\n throw new AuthSdkError('Unknown token type');\n }\n emitSetStorageEvent() {\n if (isIE11OrLess()) {\n const storage = this.storage.getStorage();\n this.emitter.emit(EVENT_SET_STORAGE, storage);\n }\n }\n getStorage() {\n return this.storage;\n }\n setTokens(tokens,\n accessTokenCb, idTokenCb, refreshTokenCb) {\n const handleTokenCallback = (key, token) => {\n const type = this.getTokenType(token);\n if (type === 'accessToken') {\n accessTokenCb && accessTokenCb(key, token);\n }\n else if (type === 'idToken') {\n idTokenCb && idTokenCb(key, token);\n }\n else if (type === 'refreshToken') {\n refreshTokenCb && refreshTokenCb(key, token);\n }\n };\n const handleAdded = (key, token) => {\n this.emitAdded(key, token);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRenewed = (key, token, oldToken) => {\n this.emitRenewed(key, token, oldToken);\n this.clearExpireEventTimeout(key);\n this.setExpireEventTimeout(key, token);\n handleTokenCallback(key, token);\n };\n const handleRemoved = (key, token) => {\n this.clearExpireEventTimeout(key);\n this.emitRemoved(key, token);\n handleTokenCallback(key, token);\n };\n const types = ['idToken', 'accessToken', 'refreshToken'];\n const existingTokens = this.getTokensSync();\n types.forEach((type) => {\n const token = tokens[type];\n if (token) {\n validateToken(token, type);\n }\n });\n const storage = types.reduce((storage, type) => {\n const token = tokens[type];\n if (token) {\n const storageKey = this.getStorageKeyByType(type) || type;\n storage[storageKey] = token;\n }\n return storage;\n }, {});\n this.storage.setStorage(storage);\n this.emitSetStorageEvent();\n types.forEach(type => {\n const newToken = tokens[type];\n const existingToken = existingTokens[type];\n const storageKey = this.getStorageKeyByType(type) || type;\n if (newToken && existingToken) {\n handleRemoved(storageKey, existingToken);\n handleAdded(storageKey, newToken);\n handleRenewed(storageKey, newToken, existingToken);\n }\n else if (newToken) {\n handleAdded(storageKey, newToken);\n }\n else if (existingToken) {\n handleRemoved(storageKey, existingToken);\n }\n });\n }\n remove(key) {\n this.clearExpireEventTimeout(key);\n var tokenStorage = this.storage.getStorage();\n var removedToken = tokenStorage[key];\n delete tokenStorage[key];\n this.storage.setStorage(tokenStorage);\n this.emitSetStorageEvent();\n this.emitRemoved(key, removedToken);\n }\n async renewToken(token) {\n var _a;\n return (_a = this.sdk.token) === null || _a === void 0 ? void 0 : _a.renew(token);\n }\n validateToken(token) {\n return validateToken(token);\n }\n renew(key) {\n if (this.state.renewPromise) {\n return this.state.renewPromise;\n }\n try {\n var token = this.getSync(key);\n let shouldRenew = token !== undefined;\n if (!token && key === 'accessToken') {\n const refreshKey = this.getStorageKeyByType('refreshToken');\n const refreshToken = this.getSync(refreshKey);\n shouldRenew = refreshToken !== undefined;\n }\n if (!shouldRenew) {\n throw new AuthSdkError('The tokenManager has no token for the key: ' + key);\n }\n }\n catch (err) {\n this.emitError(err);\n return Promise.reject(err);\n }\n this.clearExpireEventTimeout(key);\n const renewPromise = this.state.renewPromise = this.sdk.token.renewTokens()\n .then(tokens => {\n this.setTokens(tokens);\n if (!token && key === 'accessToken') {\n const accessToken = tokens['accessToken'];\n this.emitRenewed(key, accessToken, null);\n return accessToken;\n }\n const tokenType = this.getTokenType(token);\n return tokens[tokenType];\n })\n .catch(err => {\n this.remove(key);\n err.tokenKey = key;\n this.emitError(err);\n throw err;\n })\n .finally(() => {\n this.state.renewPromise = null;\n });\n return renewPromise;\n }\n clear() {\n const tokens = this.getTokensSync();\n this.clearExpireEventTimeoutAll();\n this.storage.clearStorage();\n this.emitSetStorageEvent();\n Object.keys(tokens).forEach(key => {\n this.emitRemoved(key, tokens[key]);\n });\n }\n clearPendingRemoveTokens() {\n const tokenStorage = this.storage.getStorage();\n const removedTokens = {};\n Object.keys(tokenStorage).forEach(key => {\n if (tokenStorage[key].pendingRemove) {\n removedTokens[key] = tokenStorage[key];\n delete tokenStorage[key];\n }\n });\n this.storage.setStorage(tokenStorage);\n this.emitSetStorageEvent();\n Object.keys(removedTokens).forEach(key => {\n this.clearExpireEventTimeout(key);\n this.emitRemoved(key, removedTokens[key]);\n });\n }\n updateRefreshToken(token) {\n const key = this.getStorageKeyByType('refreshToken') || REFRESH_TOKEN_STORAGE_KEY;\n var tokenStorage = this.storage.getStorage();\n validateToken(token);\n tokenStorage[key] = token;\n this.storage.setStorage(tokenStorage);\n this.emitSetStorageEvent();\n }\n removeRefreshToken() {\n const key = this.getStorageKeyByType('refreshToken') || REFRESH_TOKEN_STORAGE_KEY;\n this.remove(key);\n }\n addPendingRemoveFlags() {\n const tokens = this.getTokensSync();\n Object.keys(tokens).forEach(key => {\n tokens[key].pendingRemove = true;\n });\n this.setTokens(tokens);\n }\n}\n\nexport { TokenManager };\n//# sourceMappingURL=TokenManager.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport Cookies from 'js-cookie';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport { warn } from '../util/console.js';\nimport { isIE11OrLess } from '../features.js';\n\nvar storageUtil = {\n browserHasLocalStorage: function () {\n try {\n var storage = this.getLocalStorage();\n return this.testStorage(storage);\n }\n catch (e) {\n return false;\n }\n },\n browserHasSessionStorage: function () {\n try {\n var storage = this.getSessionStorage();\n return this.testStorage(storage);\n }\n catch (e) {\n return false;\n }\n },\n testStorageType: function (storageType) {\n var supported = false;\n switch (storageType) {\n case 'sessionStorage':\n supported = this.browserHasSessionStorage();\n break;\n case 'localStorage':\n supported = this.browserHasLocalStorage();\n break;\n case 'cookie':\n case 'memory':\n supported = true;\n break;\n default:\n supported = false;\n break;\n }\n return supported;\n },\n getStorageByType: function (storageType, options) {\n let storageProvider;\n switch (storageType) {\n case 'sessionStorage':\n storageProvider = this.getSessionStorage();\n break;\n case 'localStorage':\n storageProvider = this.getLocalStorage();\n break;\n case 'cookie':\n storageProvider = this.getCookieStorage(options);\n break;\n case 'memory':\n storageProvider = this.getInMemoryStorage();\n break;\n default:\n throw new AuthSdkError(`Unrecognized storage option: ${storageType}`);\n }\n return storageProvider;\n },\n findStorageType: function (types) {\n let curType;\n let nextType;\n types = types.slice();\n curType = types.shift();\n nextType = types.length ? types[0] : null;\n if (!nextType) {\n return curType;\n }\n if (this.testStorageType(curType)) {\n return curType;\n }\n warn(`This browser doesn't support ${curType}. Switching to ${nextType}.`);\n return this.findStorageType(types);\n },\n getLocalStorage: function () {\n if (isIE11OrLess() && !window.onstorage) {\n window.onstorage = function () { };\n }\n return localStorage;\n },\n getSessionStorage: function () {\n return sessionStorage;\n },\n getCookieStorage: function (options) {\n const secure = options.secure;\n const sameSite = options.sameSite;\n const sessionCookie = options.sessionCookie;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('getCookieStorage: \"secure\" and \"sameSite\" options must be provided');\n }\n const storage = {\n getItem: this.storage.get,\n setItem: (key, value, expiresAt = '2200-01-01T00:00:00.000Z') => {\n expiresAt = (sessionCookie ? null : expiresAt);\n this.storage.set(key, value, expiresAt, {\n secure: secure,\n sameSite: sameSite,\n });\n },\n removeItem: (key) => {\n this.storage.delete(key);\n },\n };\n if (!options.useSeparateCookies) {\n return storage;\n }\n return {\n getItem: function (key) {\n var data = storage.getItem();\n var value = {};\n Object.keys(data).forEach(k => {\n if (k.indexOf(key) === 0) {\n value[k.replace(`${key}_`, '')] = JSON.parse(data[k]);\n }\n });\n return JSON.stringify(value);\n },\n setItem: function (key, value) {\n var existingValues = JSON.parse(this.getItem(key));\n value = JSON.parse(value);\n Object.keys(value).forEach(k => {\n var storageKey = key + '_' + k;\n var valueToStore = JSON.stringify(value[k]);\n storage.setItem(storageKey, valueToStore);\n delete existingValues[k];\n });\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n },\n removeItem: function (key) {\n var existingValues = JSON.parse(this.getItem(key));\n Object.keys(existingValues).forEach(k => {\n storage.removeItem(key + '_' + k);\n });\n },\n };\n },\n inMemoryStore: {},\n getInMemoryStorage: function () {\n return {\n getItem: (key) => {\n return this.inMemoryStore[key];\n },\n setItem: (key, value) => {\n this.inMemoryStore[key] = value;\n },\n };\n },\n testStorage: function (storage) {\n var key = 'okta-test-storage';\n try {\n storage.setItem(key, key);\n storage.removeItem(key);\n return true;\n }\n catch (e) {\n return false;\n }\n },\n storage: {\n set: function (name, value, expiresAt, options) {\n const { sameSite, secure } = options;\n if (typeof secure === 'undefined' || typeof sameSite === 'undefined') {\n throw new AuthSdkError('storage.set: \"secure\" and \"sameSite\" options must be provided');\n }\n var cookieOptions = {\n path: options.path || '/',\n secure,\n sameSite\n };\n if (!!(Date.parse(expiresAt))) {\n cookieOptions.expires = new Date(expiresAt);\n }\n Cookies.set(name, value, cookieOptions);\n return this.get(name);\n },\n get: function (name) {\n if (!arguments.length) {\n return Cookies.get();\n }\n return Cookies.get(name);\n },\n delete: function (name) {\n return Cookies.remove(name, { path: '/' });\n }\n }\n};\n\nexport { storageUtil as default };\n//# sourceMappingURL=browserStorage.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { REFERRER_PATH_STORAGE_KEY } from '../../constants.js';\nimport storageUtil from '../../browser/browserStorage.js';\n\nfunction provideOriginalUri(BaseClass) {\n return class WithOriginalUri extends BaseClass {\n setOriginalUri(originalUri, state) {\n const sessionStorage = storageUtil.getSessionStorage();\n sessionStorage.setItem(REFERRER_PATH_STORAGE_KEY, originalUri);\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.setItem(state, originalUri);\n }\n }\n getOriginalUri(state) {\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n const originalUri = sharedStorage.getItem(state);\n if (originalUri) {\n return originalUri;\n }\n }\n const storage = storageUtil.getSessionStorage();\n return storage ? storage.getItem(REFERRER_PATH_STORAGE_KEY) || undefined : undefined;\n }\n removeOriginalUri(state) {\n const storage = storageUtil.getSessionStorage();\n storage.removeItem(REFERRER_PATH_STORAGE_KEY);\n state = state || this.options.state;\n if (state) {\n const sharedStorage = this.storageManager.getOriginalUriStorage();\n sharedStorage.removeItem && sharedStorage.removeItem(state);\n }\n }\n };\n}\n\nexport { provideOriginalUri };\n//# sourceMappingURL=browser.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { __rest } from '../../_virtual/_tslib.js';\nimport * as index from '../../crypto/index.js';\nimport { httpRequest } from '../../http/request.js';\nimport { PromiseQueue } from '../../util/PromiseQueue.js';\nimport { isFunction } from '../../util/types.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport AuthSdkError from '../../errors/AuthSdkError.js';\nimport 'cross-fetch';\nimport PKCE from '../util/pkce.js';\nimport { createTokenAPI, createEndpoints } from '../factory/api.js';\nimport { TokenManager } from '../TokenManager.js';\nimport WWWAuthError from '../../errors/WWWAuthError.js';\nimport { getOAuthUrls } from '../util/oauth.js';\nimport { isLoginRedirect, hasResponseType } from '../util/loginRedirect.js';\nimport '../types/Token.js';\nimport { clearDPoPKeyPairAfterRevoke, clearDPoPKeyPair, findKeyPair, generateDPoPProof, clearAllDPoPKeyPairs, isDPoPNonceError } from '../dpop.js';\nimport { provideOriginalUri } from './browser.js';\n\nfunction mixinOAuth(Base, TransactionManagerConstructor) {\n var _a;\n const WithOriginalUri = provideOriginalUri(Base);\n return _a = class OktaAuthOAuth extends WithOriginalUri {\n constructor(...args) {\n super(...args);\n this.transactionManager = new TransactionManagerConstructor(Object.assign({\n storageManager: this.storageManager,\n }, this.options.transactionManager));\n this.pkce = {\n DEFAULT_CODE_CHALLENGE_METHOD: PKCE.DEFAULT_CODE_CHALLENGE_METHOD,\n generateVerifier: PKCE.generateVerifier,\n computeChallenge: PKCE.computeChallenge\n };\n this._pending = { handleLogin: false };\n this._tokenQueue = new PromiseQueue();\n this.token = createTokenAPI(this, this._tokenQueue);\n this.tokenManager = new TokenManager(this, this.options.tokenManager);\n this.endpoints = createEndpoints(this);\n }\n clearStorage() {\n super.clearStorage();\n this.tokenManager.clear();\n }\n async isAuthenticated(options = {}) {\n const { autoRenew, autoRemove } = this.tokenManager.getOptions();\n const shouldRenew = options.onExpiredToken ? options.onExpiredToken === 'renew' : autoRenew;\n const shouldRemove = options.onExpiredToken ? options.onExpiredToken === 'remove' : autoRemove;\n let { accessToken } = this.tokenManager.getTokensSync();\n if (accessToken && this.tokenManager.hasExpired(accessToken)) {\n accessToken = undefined;\n if (shouldRenew) {\n try {\n accessToken = await this.tokenManager.renew('accessToken');\n }\n catch (_a) {\n }\n }\n else if (shouldRemove) {\n this.tokenManager.remove('accessToken');\n }\n }\n let { idToken } = this.tokenManager.getTokensSync();\n if (idToken && this.tokenManager.hasExpired(idToken)) {\n idToken = undefined;\n if (shouldRenew) {\n try {\n idToken = await this.tokenManager.renew('idToken');\n }\n catch (_b) {\n }\n }\n else if (shouldRemove) {\n this.tokenManager.remove('idToken');\n }\n }\n return !!(accessToken && idToken);\n }\n async signInWithRedirect(opts = {}) {\n const { originalUri } = opts, additionalParams = __rest(opts, [\"originalUri\"]);\n if (this._pending.handleLogin) {\n return;\n }\n this._pending.handleLogin = true;\n try {\n if (originalUri) {\n this.setOriginalUri(originalUri);\n }\n const params = Object.assign({\n scopes: this.options.scopes || ['openid', 'email', 'profile']\n }, additionalParams);\n await this.token.getWithRedirect(params);\n }\n finally {\n this._pending.handleLogin = false;\n }\n }\n async getUser() {\n const { idToken, accessToken } = this.tokenManager.getTokensSync();\n return this.token.getUserInfo(accessToken, idToken);\n }\n getIdToken() {\n const { idToken } = this.tokenManager.getTokensSync();\n return idToken ? idToken.idToken : undefined;\n }\n getAccessToken() {\n const { accessToken } = this.tokenManager.getTokensSync();\n return accessToken ? accessToken.accessToken : undefined;\n }\n getRefreshToken() {\n const { refreshToken } = this.tokenManager.getTokensSync();\n return refreshToken ? refreshToken.refreshToken : undefined;\n }\n async getOrRenewAccessToken() {\n var _a;\n const { accessToken } = this.tokenManager.getTokensSync();\n if (accessToken && !this.tokenManager.hasExpired(accessToken)) {\n return accessToken.accessToken;\n }\n try {\n const key = this.tokenManager.getStorageKeyByType('accessToken');\n const token = await this.tokenManager.renew(key !== null && key !== void 0 ? key : 'accessToken');\n return (_a = token === null || token === void 0 ? void 0 : token.accessToken) !== null && _a !== void 0 ? _a : null;\n }\n catch (err) {\n this.emitter.emit('error', err);\n return null;\n }\n }\n async storeTokensFromRedirect() {\n const { tokens, responseType } = await this.token.parseFromUrl();\n if (responseType !== 'none') {\n this.tokenManager.setTokens(tokens);\n }\n }\n isLoginRedirect() {\n return isLoginRedirect(this);\n }\n isPKCE() {\n return !!this.options.pkce;\n }\n hasResponseType(responseType) {\n return hasResponseType(responseType, this.options);\n }\n isAuthorizationCodeFlow() {\n return this.hasResponseType('code');\n }\n async invokeApiMethod(options) {\n if (!options.accessToken) {\n const accessToken = (await this.tokenManager.getTokens()).accessToken;\n options.accessToken = accessToken === null || accessToken === void 0 ? void 0 : accessToken.accessToken;\n }\n return httpRequest(this, options);\n }\n async revokeAccessToken(accessToken) {\n if (!accessToken) {\n const tokens = await this.tokenManager.getTokens();\n accessToken = tokens.accessToken;\n const accessTokenKey = this.tokenManager.getStorageKeyByType('accessToken');\n this.tokenManager.remove(accessTokenKey);\n if (this.options.dpop) {\n await clearDPoPKeyPairAfterRevoke('access', tokens);\n }\n }\n if (!accessToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(accessToken);\n }\n async revokeRefreshToken(refreshToken) {\n if (!refreshToken) {\n const tokens = await this.tokenManager.getTokens();\n refreshToken = tokens.refreshToken;\n const refreshTokenKey = this.tokenManager.getStorageKeyByType('refreshToken');\n this.tokenManager.remove(refreshTokenKey);\n if (this.options.dpop) {\n await clearDPoPKeyPairAfterRevoke('refresh', tokens);\n }\n }\n if (!refreshToken) {\n return Promise.resolve(null);\n }\n return this.token.revoke(refreshToken);\n }\n getSignOutRedirectUrl(options = {}) {\n let { idToken, postLogoutRedirectUri, state, } = options;\n if (!idToken) {\n idToken = this.tokenManager.getTokensSync().idToken;\n }\n if (!idToken) {\n return '';\n }\n if (postLogoutRedirectUri === undefined) {\n postLogoutRedirectUri = this.options.postLogoutRedirectUri;\n }\n const logoutUrl = getOAuthUrls(this).logoutUrl;\n const idTokenHint = idToken.idToken;\n let logoutUri = logoutUrl + '?id_token_hint=' + encodeURIComponent(idTokenHint);\n if (postLogoutRedirectUri) {\n logoutUri += '&post_logout_redirect_uri=' + encodeURIComponent(postLogoutRedirectUri);\n }\n if (state) {\n logoutUri += '&state=' + encodeURIComponent(state);\n }\n return logoutUri;\n }\n async signOut(options) {\n var _a;\n options = Object.assign({}, options);\n const defaultUri = window.location.origin;\n const currentUri = window.location.href;\n const postLogoutRedirectUri = options.postLogoutRedirectUri === null ? null :\n (options.postLogoutRedirectUri\n || this.options.postLogoutRedirectUri\n || defaultUri);\n const state = options === null || options === void 0 ? void 0 : options.state;\n let accessToken = options.accessToken;\n let refreshToken = options.refreshToken;\n const revokeAccessToken = options.revokeAccessToken !== false;\n const revokeRefreshToken = options.revokeRefreshToken !== false;\n if (revokeRefreshToken && typeof refreshToken === 'undefined') {\n refreshToken = this.tokenManager.getTokensSync().refreshToken;\n }\n if (revokeAccessToken && typeof accessToken === 'undefined') {\n accessToken = this.tokenManager.getTokensSync().accessToken;\n }\n if (!options.idToken) {\n options.idToken = this.tokenManager.getTokensSync().idToken;\n }\n if (revokeRefreshToken && refreshToken) {\n await this.revokeRefreshToken(refreshToken);\n }\n if (revokeAccessToken && accessToken) {\n await this.revokeAccessToken(accessToken);\n }\n const dpopPairId = (_a = accessToken === null || accessToken === void 0 ? void 0 : accessToken.dpopPairId) !== null && _a !== void 0 ? _a : refreshToken === null || refreshToken === void 0 ? void 0 : refreshToken.dpopPairId;\n if (this.options.dpop && dpopPairId) {\n await clearDPoPKeyPair(dpopPairId);\n }\n const logoutUri = this.getSignOutRedirectUrl(Object.assign(Object.assign({}, options), { postLogoutRedirectUri }));\n if (!logoutUri) {\n const sessionClosed = await this.closeSession();\n const redirectUri = new URL(postLogoutRedirectUri || defaultUri);\n if (state) {\n redirectUri.searchParams.append('state', state);\n }\n if (postLogoutRedirectUri === currentUri) {\n window.location.href = redirectUri.href;\n }\n else {\n window.location.assign(redirectUri.href);\n }\n return sessionClosed;\n }\n else {\n if (options.clearTokensBeforeRedirect) {\n this.tokenManager.clear();\n }\n else {\n this.tokenManager.addPendingRemoveFlags();\n }\n window.location.assign(logoutUri);\n return true;\n }\n }\n async getDPoPAuthorizationHeaders(params) {\n if (!this.options.dpop) {\n throw new AuthSdkError('DPoP is not configured for this client instance');\n }\n let { accessToken } = params;\n if (!accessToken) {\n accessToken = (this.tokenManager.getTokensSync()).accessToken;\n }\n if (!accessToken) {\n throw new AuthSdkError('AccessToken is required to generate a DPoP Proof');\n }\n const keyPair = await findKeyPair(accessToken === null || accessToken === void 0 ? void 0 : accessToken.dpopPairId);\n const proof = await generateDPoPProof(Object.assign(Object.assign({}, params), { keyPair, accessToken: accessToken.accessToken }));\n return {\n Authorization: `DPoP ${accessToken.accessToken}`,\n Dpop: proof\n };\n }\n async clearDPoPStorage(clearAll = false) {\n var _a, _b;\n if (clearAll) {\n return clearAllDPoPKeyPairs();\n }\n const tokens = await this.tokenManager.getTokens();\n const keyPair = ((_a = tokens.accessToken) === null || _a === void 0 ? void 0 : _a.dpopPairId) || ((_b = tokens.refreshToken) === null || _b === void 0 ? void 0 : _b.dpopPairId);\n if (keyPair) {\n await clearDPoPKeyPair(keyPair);\n }\n }\n parseUseDPoPNonceError(headers) {\n var _a;\n const wwwAuth = WWWAuthError.getWWWAuthenticateHeader(headers);\n const wwwErr = WWWAuthError.parseHeader(wwwAuth !== null && wwwAuth !== void 0 ? wwwAuth : '');\n if (isDPoPNonceError(wwwErr)) {\n let nonce = null;\n if (isFunction(headers === null || headers === void 0 ? void 0 : headers.get)) {\n nonce = headers.get('DPoP-Nonce');\n }\n nonce = (_a = nonce !== null && nonce !== void 0 ? nonce : headers['dpop-nonce']) !== null && _a !== void 0 ? _a : headers['DPoP-Nonce'];\n return nonce;\n }\n return null;\n }\n },\n _a.crypto = index,\n _a;\n}\n\nexport { mixinOAuth };\n//# sourceMappingURL=index.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport PCancelable from 'p-cancelable';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { getConsole } from '../util/console.js';\nimport { PromiseQueue } from '../util/PromiseQueue.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport '../oidc/types/Token.js';\nimport { EVENT_ADDED, EVENT_REMOVED } from '../oidc/types/TokenManager.js';\n\nconst INITIAL_AUTH_STATE = null;\nconst DEFAULT_PENDING = {\n updateAuthStatePromise: null,\n canceledTimes: 0\n};\nconst EVENT_AUTH_STATE_CHANGE = 'authStateChange';\nconst MAX_PROMISE_CANCEL_TIMES = 10;\nconst isSameAuthState = (prevState, state) => {\n if (!prevState) {\n return false;\n }\n return prevState.isAuthenticated === state.isAuthenticated\n && JSON.stringify(prevState.idToken) === JSON.stringify(state.idToken)\n && JSON.stringify(prevState.accessToken) === JSON.stringify(state.accessToken)\n && prevState.error === state.error;\n};\nclass AuthStateManager {\n constructor(sdk) {\n if (!sdk.emitter) {\n throw new AuthSdkError('Emitter should be initialized before AuthStateManager');\n }\n this._sdk = sdk;\n this._pending = Object.assign({}, DEFAULT_PENDING);\n this._authState = INITIAL_AUTH_STATE;\n this._logOptions = {};\n this._prevAuthState = null;\n this._transformQueue = new PromiseQueue({\n quiet: true\n });\n sdk.tokenManager.on(EVENT_ADDED, (key, token) => {\n this._setLogOptions({ event: EVENT_ADDED, key, token });\n this.updateAuthState();\n });\n sdk.tokenManager.on(EVENT_REMOVED, (key, token) => {\n this._setLogOptions({ event: EVENT_REMOVED, key, token });\n this.updateAuthState();\n });\n }\n _setLogOptions(options) {\n this._logOptions = options;\n }\n getAuthState() {\n return this._authState;\n }\n getPreviousAuthState() {\n return this._prevAuthState;\n }\n async updateAuthState() {\n const { transformAuthState, devMode } = this._sdk.options;\n const log = (status) => {\n const { event, key, token } = this._logOptions;\n getConsole().group(`OKTA-AUTH-JS:updateAuthState: Event:${event} Status:${status}`);\n getConsole().log(key, token);\n getConsole().log('Current authState', this._authState);\n getConsole().groupEnd();\n this._logOptions = {};\n };\n const emitAuthStateChange = (authState) => {\n if (isSameAuthState(this._authState, authState)) {\n devMode && log('unchanged');\n return;\n }\n this._prevAuthState = this._authState;\n this._authState = authState;\n this._sdk.emitter.emit(EVENT_AUTH_STATE_CHANGE, Object.assign({}, authState));\n devMode && log('emitted');\n };\n const finalPromise = (origPromise) => {\n return this._pending.updateAuthStatePromise.then(() => {\n const curPromise = this._pending.updateAuthStatePromise;\n if (curPromise && curPromise !== origPromise) {\n return finalPromise(curPromise);\n }\n return this.getAuthState();\n });\n };\n if (this._pending.updateAuthStatePromise) {\n if (this._pending.canceledTimes >= MAX_PROMISE_CANCEL_TIMES) {\n devMode && log('terminated');\n return finalPromise(this._pending.updateAuthStatePromise);\n }\n else {\n this._pending.updateAuthStatePromise.cancel();\n }\n }\n const cancelablePromise = new PCancelable((resolve, _, onCancel) => {\n onCancel.shouldReject = false;\n onCancel(() => {\n this._pending.updateAuthStatePromise = null;\n this._pending.canceledTimes = this._pending.canceledTimes + 1;\n devMode && log('canceled');\n });\n const emitAndResolve = (authState) => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n emitAuthStateChange(authState);\n resolve();\n this._pending = Object.assign({}, DEFAULT_PENDING);\n };\n this._sdk.isAuthenticated()\n .then(() => {\n if (cancelablePromise.isCanceled) {\n resolve();\n return;\n }\n const { accessToken, idToken, refreshToken } = this._sdk.tokenManager.getTokensSync();\n const authState = {\n accessToken,\n idToken,\n refreshToken,\n isAuthenticated: !!(accessToken && idToken)\n };\n const promise = transformAuthState\n ? this._transformQueue.push(transformAuthState, null, this._sdk, authState)\n : Promise.resolve(authState);\n promise\n .then(authState => emitAndResolve(authState))\n .catch(error => emitAndResolve({\n accessToken,\n idToken,\n refreshToken,\n isAuthenticated: false,\n error\n }));\n });\n });\n this._pending.updateAuthStatePromise = cancelablePromise;\n return finalPromise(cancelablePromise);\n }\n subscribe(handler) {\n this._sdk.emitter.on(EVENT_AUTH_STATE_CHANGE, handler);\n }\n unsubscribe(handler) {\n this._sdk.emitter.off(EVENT_AUTH_STATE_CHANGE, handler);\n }\n}\n\nexport { AuthStateManager, INITIAL_AUTH_STATE };\n//# sourceMappingURL=AuthStateManager.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { isRefreshToken } from '../oidc/types/Token.js';\nimport { EVENT_EXPIRED } from '../oidc/types/TokenManager.js';\nimport { isBrowser } from '../features.js';\n\nclass AutoRenewService {\n constructor(tokenManager, options = {}) {\n this.started = false;\n this.tokenManager = tokenManager;\n this.options = options;\n this.renewTimeQueue = [];\n this.onTokenExpiredHandler = this.onTokenExpiredHandler.bind(this);\n }\n shouldThrottleRenew() {\n let res = false;\n this.renewTimeQueue.push(Date.now());\n if (this.renewTimeQueue.length >= 10) {\n const firstTime = this.renewTimeQueue.shift();\n const lastTime = this.renewTimeQueue[this.renewTimeQueue.length - 1];\n res = (lastTime - firstTime) < 30 * 1000;\n }\n return res;\n }\n requiresLeadership() {\n return !!this.options.syncStorage && isBrowser();\n }\n processExpiredTokens() {\n const tokenStorage = this.tokenManager.getStorage();\n const tokens = tokenStorage.getStorage();\n Object.keys(tokens).forEach(key => {\n const token = tokens[key];\n if (!isRefreshToken(token) && this.tokenManager.hasExpired(token)) {\n this.onTokenExpiredHandler(key);\n }\n });\n }\n onTokenExpiredHandler(key) {\n if (this.options.autoRenew) {\n if (this.shouldThrottleRenew()) {\n const error = new AuthSdkError('Too many token renew requests');\n this.tokenManager.emitError(error);\n }\n else {\n this.tokenManager.renew(key).catch(() => { });\n }\n }\n else if (this.options.autoRemove) {\n this.tokenManager.remove(key);\n }\n }\n canStart() {\n return (!!this.options.autoRenew || !!this.options.autoRemove) && !this.started;\n }\n async start() {\n if (this.canStart()) {\n this.tokenManager.on(EVENT_EXPIRED, this.onTokenExpiredHandler);\n if (this.tokenManager.isStarted()) {\n this.processExpiredTokens();\n }\n this.started = true;\n }\n }\n async stop() {\n if (this.started) {\n this.tokenManager.off(EVENT_EXPIRED, this.onTokenExpiredHandler);\n this.renewTimeQueue = [];\n this.started = false;\n }\n }\n isStarted() {\n return this.started;\n }\n}\n\nexport { AutoRenewService };\n//# sourceMappingURL=AutoRenewService.js.map\n","/**\n * returns true if the given object is a promise\n */\nexport function isPromise(obj) {\n return obj && typeof obj.then === 'function';\n}\nexport var PROMISE_RESOLVED_FALSE = Promise.resolve(false);\nexport var PROMISE_RESOLVED_TRUE = Promise.resolve(true);\nexport var PROMISE_RESOLVED_VOID = Promise.resolve();\nexport function sleep(time, resolveWith) {\n if (!time) time = 0;\n return new Promise(function (res) {\n return setTimeout(function () {\n return res(resolveWith);\n }, time);\n });\n}\nexport function randomInt(min, max) {\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n\n/**\n * https://stackoverflow.com/a/8084248\n */\nexport function randomToken() {\n return Math.random().toString(36).substring(2);\n}\nvar lastMs = 0;\nvar additional = 0;\n\n/**\n * returns the current time in micro-seconds,\n * WARNING: This is a pseudo-function\n * Performance.now is not reliable in webworkers, so we just make sure to never return the same time.\n * This is enough in browsers, and this function will not be used in nodejs.\n * The main reason for this hack is to ensure that BroadcastChannel behaves equal to production when it is used in fast-running unit tests.\n */\nexport function microSeconds() {\n var ms = new Date().getTime();\n if (ms === lastMs) {\n additional++;\n return ms * 1000 + additional;\n } else {\n lastMs = ms;\n additional = 0;\n return ms * 1000;\n }\n}\n\n/**\n * Check if WebLock API is supported.\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Web_Locks_API\n */\nexport function supportsWebLockAPI() {\n if (typeof navigator !== 'undefined' && typeof navigator.locks !== 'undefined' && typeof navigator.locks.request === 'function') {\n return true;\n } else {\n return false;\n }\n}","import { microSeconds as micro, PROMISE_RESOLVED_VOID } from '../util.js';\nexport var microSeconds = micro;\nexport var type = 'native';\nexport function create(channelName) {\n var state = {\n messagesCallback: null,\n bc: new BroadcastChannel(channelName),\n subFns: [] // subscriberFunctions\n };\n\n state.bc.onmessage = function (msg) {\n if (state.messagesCallback) {\n state.messagesCallback(msg.data);\n }\n };\n return state;\n}\nexport function close(channelState) {\n channelState.bc.close();\n channelState.subFns = [];\n}\nexport function postMessage(channelState, messageJson) {\n try {\n channelState.bc.postMessage(messageJson, false);\n return PROMISE_RESOLVED_VOID;\n } catch (err) {\n return Promise.reject(err);\n }\n}\nexport function onMessage(channelState, fn) {\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n if ((typeof window !== 'undefined' || typeof self !== 'undefined') && typeof BroadcastChannel === 'function') {\n if (BroadcastChannel._pubkey) {\n throw new Error('BroadcastChannel: Do not overwrite window.BroadcastChannel with this module, this is not a polyfill');\n }\n return true;\n } else {\n return false;\n }\n}\nexport function averageResponseTime() {\n return 150;\n}\nexport var NativeMethod = {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","/**\n * this is a set which automatically forgets\n * a given entry when a new entry is set and the ttl\n * of the old one is over\n */\nvar ObliviousSet = /** @class */ (function () {\n function ObliviousSet(ttl) {\n this.ttl = ttl;\n this.map = new Map();\n /**\n * Creating calls to setTimeout() is expensive,\n * so we only do that if there is not timeout already open.\n */\n this._to = false;\n }\n ObliviousSet.prototype.has = function (value) {\n return this.map.has(value);\n };\n ObliviousSet.prototype.add = function (value) {\n var _this = this;\n this.map.set(value, now());\n /**\n * When a new value is added,\n * start the cleanup at the next tick\n * to not block the cpu for more important stuff\n * that might happen.\n */\n if (!this._to) {\n this._to = true;\n setTimeout(function () {\n _this._to = false;\n removeTooOldValues(_this);\n }, 0);\n }\n };\n ObliviousSet.prototype.clear = function () {\n this.map.clear();\n };\n return ObliviousSet;\n}());\nexport { ObliviousSet };\n/**\n * Removes all entries from the set\n * where the TTL has expired\n */\nexport function removeTooOldValues(obliviousSet) {\n var olderThen = now() - obliviousSet.ttl;\n var iterator = obliviousSet.map[Symbol.iterator]();\n /**\n * Because we can assume the new values are added at the bottom,\n * we start from the top and stop as soon as we reach a non-too-old value.\n */\n while (true) {\n var next = iterator.next().value;\n if (!next) {\n return; // no more elements\n }\n var value = next[0];\n var time = next[1];\n if (time < olderThen) {\n obliviousSet.map.delete(value);\n }\n else {\n // We reached a value that is not old enough\n return;\n }\n }\n}\nexport function now() {\n return new Date().getTime();\n}\n//# sourceMappingURL=index.js.map","export function fillOptionsWithDefaults() {\n var originalOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = JSON.parse(JSON.stringify(originalOptions));\n\n // main\n if (typeof options.webWorkerSupport === 'undefined') options.webWorkerSupport = true;\n\n // indexed-db\n if (!options.idb) options.idb = {};\n // after this time the messages get deleted\n if (!options.idb.ttl) options.idb.ttl = 1000 * 45;\n if (!options.idb.fallbackInterval) options.idb.fallbackInterval = 150;\n // handles abrupt db onclose events.\n if (originalOptions.idb && typeof originalOptions.idb.onclose === 'function') options.idb.onclose = originalOptions.idb.onclose;\n\n // localstorage\n if (!options.localstorage) options.localstorage = {};\n if (!options.localstorage.removeTimeout) options.localstorage.removeTimeout = 1000 * 60;\n\n // custom methods\n if (originalOptions.methods) options.methods = originalOptions.methods;\n\n // node\n if (!options.node) options.node = {};\n if (!options.node.ttl) options.node.ttl = 1000 * 60 * 2; // 2 minutes;\n /**\n * On linux use 'ulimit -Hn' to get the limit of open files.\n * On ubuntu this was 4096 for me, so we use half of that as maxParallelWrites default.\n */\n if (!options.node.maxParallelWrites) options.node.maxParallelWrites = 2048;\n if (typeof options.node.useFastPath === 'undefined') options.node.useFastPath = true;\n return options;\n}","/**\n * this method uses indexeddb to store the messages\n * There is currently no observerAPI for idb\n * @link https://github.com/w3c/IndexedDB/issues/51\n * \n * When working on this, ensure to use these performance optimizations:\n * @link https://rxdb.info/slow-indexeddb.html\n */\n\nimport { sleep, randomInt, randomToken, microSeconds as micro, PROMISE_RESOLVED_VOID } from '../util.js';\nexport var microSeconds = micro;\nimport { ObliviousSet } from 'oblivious-set';\nimport { fillOptionsWithDefaults } from '../options.js';\nvar DB_PREFIX = 'pubkey.broadcast-channel-0-';\nvar OBJECT_STORE_ID = 'messages';\n\n/**\n * Use relaxed durability for faster performance on all transactions.\n * @link https://nolanlawson.com/2021/08/22/speeding-up-indexeddb-reads-and-writes/\n */\nexport var TRANSACTION_SETTINGS = {\n durability: 'relaxed'\n};\nexport var type = 'idb';\nexport function getIdb() {\n if (typeof indexedDB !== 'undefined') return indexedDB;\n if (typeof window !== 'undefined') {\n if (typeof window.mozIndexedDB !== 'undefined') return window.mozIndexedDB;\n if (typeof window.webkitIndexedDB !== 'undefined') return window.webkitIndexedDB;\n if (typeof window.msIndexedDB !== 'undefined') return window.msIndexedDB;\n }\n return false;\n}\n\n/**\n * If possible, we should explicitly commit IndexedDB transactions\n * for better performance.\n * @link https://nolanlawson.com/2021/08/22/speeding-up-indexeddb-reads-and-writes/\n */\nexport function commitIndexedDBTransaction(tx) {\n if (tx.commit) {\n tx.commit();\n }\n}\nexport function createDatabase(channelName) {\n var IndexedDB = getIdb();\n\n // create table\n var dbName = DB_PREFIX + channelName;\n\n /**\n * All IndexedDB databases are opened without version\n * because it is a bit faster, especially on firefox\n * @link http://nparashuram.com/IndexedDB/perf/#Open%20Database%20with%20version\n */\n var openRequest = IndexedDB.open(dbName);\n openRequest.onupgradeneeded = function (ev) {\n var db = ev.target.result;\n db.createObjectStore(OBJECT_STORE_ID, {\n keyPath: 'id',\n autoIncrement: true\n });\n };\n return new Promise(function (res, rej) {\n openRequest.onerror = function (ev) {\n return rej(ev);\n };\n openRequest.onsuccess = function () {\n res(openRequest.result);\n };\n });\n}\n\n/**\n * writes the new message to the database\n * so other readers can find it\n */\nexport function writeMessage(db, readerUuid, messageJson) {\n var time = new Date().getTime();\n var writeObject = {\n uuid: readerUuid,\n time: time,\n data: messageJson\n };\n var tx = db.transaction([OBJECT_STORE_ID], 'readwrite', TRANSACTION_SETTINGS);\n return new Promise(function (res, rej) {\n tx.oncomplete = function () {\n return res();\n };\n tx.onerror = function (ev) {\n return rej(ev);\n };\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n objectStore.add(writeObject);\n commitIndexedDBTransaction(tx);\n });\n}\nexport function getAllMessages(db) {\n var tx = db.transaction(OBJECT_STORE_ID, 'readonly', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n var ret = [];\n return new Promise(function (res) {\n objectStore.openCursor().onsuccess = function (ev) {\n var cursor = ev.target.result;\n if (cursor) {\n ret.push(cursor.value);\n //alert(\"Name for SSN \" + cursor.key + \" is \" + cursor.value.name);\n cursor[\"continue\"]();\n } else {\n commitIndexedDBTransaction(tx);\n res(ret);\n }\n };\n });\n}\nexport function getMessagesHigherThan(db, lastCursorId) {\n var tx = db.transaction(OBJECT_STORE_ID, 'readonly', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n var ret = [];\n var keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity);\n\n /**\n * Optimization shortcut,\n * if getAll() can be used, do not use a cursor.\n * @link https://rxdb.info/slow-indexeddb.html\n */\n if (objectStore.getAll) {\n var getAllRequest = objectStore.getAll(keyRangeValue);\n return new Promise(function (res, rej) {\n getAllRequest.onerror = function (err) {\n return rej(err);\n };\n getAllRequest.onsuccess = function (e) {\n res(e.target.result);\n };\n });\n }\n function openCursor() {\n // Occasionally Safari will fail on IDBKeyRange.bound, this\n // catches that error, having it open the cursor to the first\n // item. When it gets data it will advance to the desired key.\n try {\n keyRangeValue = IDBKeyRange.bound(lastCursorId + 1, Infinity);\n return objectStore.openCursor(keyRangeValue);\n } catch (e) {\n return objectStore.openCursor();\n }\n }\n return new Promise(function (res, rej) {\n var openCursorRequest = openCursor();\n openCursorRequest.onerror = function (err) {\n return rej(err);\n };\n openCursorRequest.onsuccess = function (ev) {\n var cursor = ev.target.result;\n if (cursor) {\n if (cursor.value.id < lastCursorId + 1) {\n cursor[\"continue\"](lastCursorId + 1);\n } else {\n ret.push(cursor.value);\n cursor[\"continue\"]();\n }\n } else {\n commitIndexedDBTransaction(tx);\n res(ret);\n }\n };\n });\n}\nexport function removeMessagesById(channelState, ids) {\n if (channelState.closed) {\n return Promise.resolve([]);\n }\n var tx = channelState.db.transaction(OBJECT_STORE_ID, 'readwrite', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n return Promise.all(ids.map(function (id) {\n var deleteRequest = objectStore[\"delete\"](id);\n return new Promise(function (res) {\n deleteRequest.onsuccess = function () {\n return res();\n };\n });\n }));\n}\nexport function getOldMessages(db, ttl) {\n var olderThen = new Date().getTime() - ttl;\n var tx = db.transaction(OBJECT_STORE_ID, 'readonly', TRANSACTION_SETTINGS);\n var objectStore = tx.objectStore(OBJECT_STORE_ID);\n var ret = [];\n return new Promise(function (res) {\n objectStore.openCursor().onsuccess = function (ev) {\n var cursor = ev.target.result;\n if (cursor) {\n var msgObk = cursor.value;\n if (msgObk.time < olderThen) {\n ret.push(msgObk);\n //alert(\"Name for SSN \" + cursor.key + \" is \" + cursor.value.name);\n cursor[\"continue\"]();\n } else {\n // no more old messages,\n commitIndexedDBTransaction(tx);\n res(ret);\n }\n } else {\n res(ret);\n }\n };\n });\n}\nexport function cleanOldMessages(channelState) {\n return getOldMessages(channelState.db, channelState.options.idb.ttl).then(function (tooOld) {\n return removeMessagesById(channelState, tooOld.map(function (msg) {\n return msg.id;\n }));\n });\n}\nexport function create(channelName, options) {\n options = fillOptionsWithDefaults(options);\n return createDatabase(channelName).then(function (db) {\n var state = {\n closed: false,\n lastCursorId: 0,\n channelName: channelName,\n options: options,\n uuid: randomToken(),\n /**\n * emittedMessagesIds\n * contains all messages that have been emitted before\n * @type {ObliviousSet}\n */\n eMIs: new ObliviousSet(options.idb.ttl * 2),\n // ensures we do not read messages in parallel\n writeBlockPromise: PROMISE_RESOLVED_VOID,\n messagesCallback: null,\n readQueuePromises: [],\n db: db\n };\n\n /**\n * Handle abrupt closes that do not originate from db.close().\n * This could happen, for example, if the underlying storage is\n * removed or if the user clears the database in the browser's\n * history preferences.\n */\n db.onclose = function () {\n state.closed = true;\n if (options.idb.onclose) options.idb.onclose();\n };\n\n /**\n * if service-workers are used,\n * we have no 'storage'-event if they post a message,\n * therefore we also have to set an interval\n */\n _readLoop(state);\n return state;\n });\n}\nfunction _readLoop(state) {\n if (state.closed) return;\n readNewMessages(state).then(function () {\n return sleep(state.options.idb.fallbackInterval);\n }).then(function () {\n return _readLoop(state);\n });\n}\nfunction _filterMessage(msgObj, state) {\n if (msgObj.uuid === state.uuid) return false; // send by own\n if (state.eMIs.has(msgObj.id)) return false; // already emitted\n if (msgObj.data.time < state.messagesCallbackTime) return false; // older then onMessageCallback\n return true;\n}\n\n/**\n * reads all new messages from the database and emits them\n */\nfunction readNewMessages(state) {\n // channel already closed\n if (state.closed) return PROMISE_RESOLVED_VOID;\n\n // if no one is listening, we do not need to scan for new messages\n if (!state.messagesCallback) return PROMISE_RESOLVED_VOID;\n return getMessagesHigherThan(state.db, state.lastCursorId).then(function (newerMessages) {\n var useMessages = newerMessages\n /**\n * there is a bug in iOS where the msgObj can be undefined sometimes\n * so we filter them out\n * @link https://github.com/pubkey/broadcast-channel/issues/19\n */.filter(function (msgObj) {\n return !!msgObj;\n }).map(function (msgObj) {\n if (msgObj.id > state.lastCursorId) {\n state.lastCursorId = msgObj.id;\n }\n return msgObj;\n }).filter(function (msgObj) {\n return _filterMessage(msgObj, state);\n }).sort(function (msgObjA, msgObjB) {\n return msgObjA.time - msgObjB.time;\n }); // sort by time\n useMessages.forEach(function (msgObj) {\n if (state.messagesCallback) {\n state.eMIs.add(msgObj.id);\n state.messagesCallback(msgObj.data);\n }\n });\n return PROMISE_RESOLVED_VOID;\n });\n}\nexport function close(channelState) {\n channelState.closed = true;\n channelState.db.close();\n}\nexport function postMessage(channelState, messageJson) {\n channelState.writeBlockPromise = channelState.writeBlockPromise.then(function () {\n return writeMessage(channelState.db, channelState.uuid, messageJson);\n }).then(function () {\n if (randomInt(0, 10) === 0) {\n /* await (do not await) */\n cleanOldMessages(channelState);\n }\n });\n return channelState.writeBlockPromise;\n}\nexport function onMessage(channelState, fn, time) {\n channelState.messagesCallbackTime = time;\n channelState.messagesCallback = fn;\n readNewMessages(channelState);\n}\nexport function canBeUsed() {\n return !!getIdb();\n}\nexport function averageResponseTime(options) {\n return options.idb.fallbackInterval * 2;\n}\nexport var IndexedDBMethod = {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","/**\n * A localStorage-only method which uses localstorage and its 'storage'-event\n * This does not work inside webworkers because they have no access to localstorage\n * This is basically implemented to support IE9 or your grandmother's toaster.\n * @link https://caniuse.com/#feat=namevalue-storage\n * @link https://caniuse.com/#feat=indexeddb\n */\n\nimport { ObliviousSet } from 'oblivious-set';\nimport { fillOptionsWithDefaults } from '../options.js';\nimport { sleep, randomToken, microSeconds as micro } from '../util.js';\nexport var microSeconds = micro;\nvar KEY_PREFIX = 'pubkey.broadcastChannel-';\nexport var type = 'localstorage';\n\n/**\n * copied from crosstab\n * @link https://github.com/tejacques/crosstab/blob/master/src/crosstab.js#L32\n */\nexport function getLocalStorage() {\n var localStorage;\n if (typeof window === 'undefined') return null;\n try {\n localStorage = window.localStorage;\n localStorage = window['ie8-eventlistener/storage'] || window.localStorage;\n } catch (e) {\n // New versions of Firefox throw a Security exception\n // if cookies are disabled. See\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1028153\n }\n return localStorage;\n}\nexport function storageKey(channelName) {\n return KEY_PREFIX + channelName;\n}\n\n/**\n* writes the new message to the storage\n* and fires the storage-event so other readers can find it\n*/\nexport function postMessage(channelState, messageJson) {\n return new Promise(function (res) {\n sleep().then(function () {\n var key = storageKey(channelState.channelName);\n var writeObj = {\n token: randomToken(),\n time: new Date().getTime(),\n data: messageJson,\n uuid: channelState.uuid\n };\n var value = JSON.stringify(writeObj);\n getLocalStorage().setItem(key, value);\n\n /**\n * StorageEvent does not fire the 'storage' event\n * in the window that changes the state of the local storage.\n * So we fire it manually\n */\n var ev = document.createEvent('Event');\n ev.initEvent('storage', true, true);\n ev.key = key;\n ev.newValue = value;\n window.dispatchEvent(ev);\n res();\n });\n });\n}\nexport function addStorageEventListener(channelName, fn) {\n var key = storageKey(channelName);\n var listener = function listener(ev) {\n if (ev.key === key) {\n fn(JSON.parse(ev.newValue));\n }\n };\n window.addEventListener('storage', listener);\n return listener;\n}\nexport function removeStorageEventListener(listener) {\n window.removeEventListener('storage', listener);\n}\nexport function create(channelName, options) {\n options = fillOptionsWithDefaults(options);\n if (!canBeUsed()) {\n throw new Error('BroadcastChannel: localstorage cannot be used');\n }\n var uuid = randomToken();\n\n /**\n * eMIs\n * contains all messages that have been emitted before\n * @type {ObliviousSet}\n */\n var eMIs = new ObliviousSet(options.localstorage.removeTimeout);\n var state = {\n channelName: channelName,\n uuid: uuid,\n eMIs: eMIs // emittedMessagesIds\n };\n\n state.listener = addStorageEventListener(channelName, function (msgObj) {\n if (!state.messagesCallback) return; // no listener\n if (msgObj.uuid === uuid) return; // own message\n if (!msgObj.token || eMIs.has(msgObj.token)) return; // already emitted\n if (msgObj.data.time && msgObj.data.time < state.messagesCallbackTime) return; // too old\n\n eMIs.add(msgObj.token);\n state.messagesCallback(msgObj.data);\n });\n return state;\n}\nexport function close(channelState) {\n removeStorageEventListener(channelState.listener);\n}\nexport function onMessage(channelState, fn, time) {\n channelState.messagesCallbackTime = time;\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n var ls = getLocalStorage();\n if (!ls) return false;\n try {\n var key = '__broadcastchannel_check';\n ls.setItem(key, 'works');\n ls.removeItem(key);\n } catch (e) {\n // Safari 10 in private mode will not allow write access to local\n // storage and fail with a QuotaExceededError. See\n // https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API#Private_Browsing_Incognito_modes\n return false;\n }\n return true;\n}\nexport function averageResponseTime() {\n var defaultTime = 120;\n var userAgent = navigator.userAgent.toLowerCase();\n if (userAgent.includes('safari') && !userAgent.includes('chrome')) {\n // safari is much slower so this time is higher\n return defaultTime * 2;\n }\n return defaultTime;\n}\nexport var LocalstorageMethod = {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","import { microSeconds as micro } from '../util.js';\nexport var microSeconds = micro;\nexport var type = 'simulate';\nvar SIMULATE_CHANNELS = new Set();\nexport function create(channelName) {\n var state = {\n name: channelName,\n messagesCallback: null\n };\n SIMULATE_CHANNELS.add(state);\n return state;\n}\nexport function close(channelState) {\n SIMULATE_CHANNELS[\"delete\"](channelState);\n}\nexport function postMessage(channelState, messageJson) {\n return new Promise(function (res) {\n return setTimeout(function () {\n var channelArray = Array.from(SIMULATE_CHANNELS);\n channelArray.filter(function (channel) {\n return channel.name === channelState.name;\n }).filter(function (channel) {\n return channel !== channelState;\n }).filter(function (channel) {\n return !!channel.messagesCallback;\n }).forEach(function (channel) {\n return channel.messagesCallback(messageJson);\n });\n res();\n }, 5);\n });\n}\nexport function onMessage(channelState, fn) {\n channelState.messagesCallback = fn;\n}\nexport function canBeUsed() {\n return true;\n}\nexport function averageResponseTime() {\n return 5;\n}\nexport var SimulateMethod = {\n create: create,\n close: close,\n onMessage: onMessage,\n postMessage: postMessage,\n canBeUsed: canBeUsed,\n type: type,\n averageResponseTime: averageResponseTime,\n microSeconds: microSeconds\n};","import { NativeMethod } from './methods/native.js';\nimport { IndexedDBMethod } from './methods/indexed-db.js';\nimport { LocalstorageMethod } from './methods/localstorage.js';\nimport { SimulateMethod } from './methods/simulate.js';\n// the line below will be removed from es5/browser builds\n\n// order is important\nvar METHODS = [NativeMethod,\n// fastest\nIndexedDBMethod, LocalstorageMethod];\nexport function chooseMethod(options) {\n var chooseMethods = [].concat(options.methods, METHODS).filter(Boolean);\n\n // the line below will be removed from es5/browser builds\n\n // directly chosen\n if (options.type) {\n if (options.type === 'simulate') {\n // only use simulate-method if directly chosen\n return SimulateMethod;\n }\n var ret = chooseMethods.find(function (m) {\n return m.type === options.type;\n });\n if (!ret) throw new Error('method-type ' + options.type + ' not found');else return ret;\n }\n\n /**\n * if no webworker support is needed,\n * remove idb from the list so that localstorage will be chosen\n */\n if (!options.webWorkerSupport) {\n chooseMethods = chooseMethods.filter(function (m) {\n return m.type !== 'idb';\n });\n }\n var useMethod = chooseMethods.find(function (method) {\n return method.canBeUsed();\n });\n if (!useMethod) {\n throw new Error(\"No usable method found in \" + JSON.stringify(METHODS.map(function (m) {\n return m.type;\n })));\n } else {\n return useMethod;\n }\n}","import { isPromise, PROMISE_RESOLVED_FALSE, PROMISE_RESOLVED_VOID } from './util.js';\nimport { chooseMethod } from './method-chooser.js';\nimport { fillOptionsWithDefaults } from './options.js';\n\n/**\n * Contains all open channels,\n * used in tests to ensure everything is closed.\n */\nexport var OPEN_BROADCAST_CHANNELS = new Set();\nvar lastId = 0;\nexport var BroadcastChannel = function BroadcastChannel(name, options) {\n // identifier of the channel to debug stuff\n this.id = lastId++;\n OPEN_BROADCAST_CHANNELS.add(this);\n this.name = name;\n if (ENFORCED_OPTIONS) {\n options = ENFORCED_OPTIONS;\n }\n this.options = fillOptionsWithDefaults(options);\n this.method = chooseMethod(this.options);\n\n // isListening\n this._iL = false;\n\n /**\n * _onMessageListener\n * setting onmessage twice,\n * will overwrite the first listener\n */\n this._onML = null;\n\n /**\n * _addEventListeners\n */\n this._addEL = {\n message: [],\n internal: []\n };\n\n /**\n * Unsent message promises\n * where the sending is still in progress\n * @type {Set}\n */\n this._uMP = new Set();\n\n /**\n * _beforeClose\n * array of promises that will be awaited\n * before the channel is closed\n */\n this._befC = [];\n\n /**\n * _preparePromise\n */\n this._prepP = null;\n _prepareChannel(this);\n};\n\n// STATICS\n\n/**\n * used to identify if someone overwrites\n * window.BroadcastChannel with this\n * See methods/native.js\n */\nBroadcastChannel._pubkey = true;\n\n/**\n * clears the tmp-folder if is node\n * @return {Promise} true if has run, false if not node\n */\nexport function clearNodeFolder(options) {\n options = fillOptionsWithDefaults(options);\n var method = chooseMethod(options);\n if (method.type === 'node') {\n return method.clearNodeFolder().then(function () {\n return true;\n });\n } else {\n return PROMISE_RESOLVED_FALSE;\n }\n}\n\n/**\n * if set, this method is enforced,\n * no mather what the options are\n */\nvar ENFORCED_OPTIONS;\nexport function enforceOptions(options) {\n ENFORCED_OPTIONS = options;\n}\n\n// PROTOTYPE\nBroadcastChannel.prototype = {\n postMessage: function postMessage(msg) {\n if (this.closed) {\n throw new Error('BroadcastChannel.postMessage(): ' + 'Cannot post message after channel has closed ' +\n /**\n * In the past when this error appeared, it was really hard to debug.\n * So now we log the msg together with the error so it at least\n * gives some clue about where in your application this happens.\n */\n JSON.stringify(msg));\n }\n return _post(this, 'message', msg);\n },\n postInternal: function postInternal(msg) {\n return _post(this, 'internal', msg);\n },\n set onmessage(fn) {\n var time = this.method.microSeconds();\n var listenObj = {\n time: time,\n fn: fn\n };\n _removeListenerObject(this, 'message', this._onML);\n if (fn && typeof fn === 'function') {\n this._onML = listenObj;\n _addListenerObject(this, 'message', listenObj);\n } else {\n this._onML = null;\n }\n },\n addEventListener: function addEventListener(type, fn) {\n var time = this.method.microSeconds();\n var listenObj = {\n time: time,\n fn: fn\n };\n _addListenerObject(this, type, listenObj);\n },\n removeEventListener: function removeEventListener(type, fn) {\n var obj = this._addEL[type].find(function (obj) {\n return obj.fn === fn;\n });\n _removeListenerObject(this, type, obj);\n },\n close: function close() {\n var _this = this;\n if (this.closed) {\n return;\n }\n OPEN_BROADCAST_CHANNELS[\"delete\"](this);\n this.closed = true;\n var awaitPrepare = this._prepP ? this._prepP : PROMISE_RESOLVED_VOID;\n this._onML = null;\n this._addEL.message = [];\n return awaitPrepare\n // wait until all current sending are processed\n .then(function () {\n return Promise.all(Array.from(_this._uMP));\n })\n // run before-close hooks\n .then(function () {\n return Promise.all(_this._befC.map(function (fn) {\n return fn();\n }));\n })\n // close the channel\n .then(function () {\n return _this.method.close(_this._state);\n });\n },\n get type() {\n return this.method.type;\n },\n get isClosed() {\n return this.closed;\n }\n};\n\n/**\n * Post a message over the channel\n * @returns {Promise} that resolved when the message sending is done\n */\nfunction _post(broadcastChannel, type, msg) {\n var time = broadcastChannel.method.microSeconds();\n var msgObj = {\n time: time,\n type: type,\n data: msg\n };\n var awaitPrepare = broadcastChannel._prepP ? broadcastChannel._prepP : PROMISE_RESOLVED_VOID;\n return awaitPrepare.then(function () {\n var sendPromise = broadcastChannel.method.postMessage(broadcastChannel._state, msgObj);\n\n // add/remove to unsent messages list\n broadcastChannel._uMP.add(sendPromise);\n sendPromise[\"catch\"]().then(function () {\n return broadcastChannel._uMP[\"delete\"](sendPromise);\n });\n return sendPromise;\n });\n}\nfunction _prepareChannel(channel) {\n var maybePromise = channel.method.create(channel.name, channel.options);\n if (isPromise(maybePromise)) {\n channel._prepP = maybePromise;\n maybePromise.then(function (s) {\n // used in tests to simulate slow runtime\n /*if (channel.options.prepareDelay) {\n await new Promise(res => setTimeout(res, this.options.prepareDelay));\n }*/\n channel._state = s;\n });\n } else {\n channel._state = maybePromise;\n }\n}\nfunction _hasMessageListeners(channel) {\n if (channel._addEL.message.length > 0) return true;\n if (channel._addEL.internal.length > 0) return true;\n return false;\n}\nfunction _addListenerObject(channel, type, obj) {\n channel._addEL[type].push(obj);\n _startListening(channel);\n}\nfunction _removeListenerObject(channel, type, obj) {\n channel._addEL[type] = channel._addEL[type].filter(function (o) {\n return o !== obj;\n });\n _stopListening(channel);\n}\nfunction _startListening(channel) {\n if (!channel._iL && _hasMessageListeners(channel)) {\n // someone is listening, start subscribing\n\n var listenerFn = function listenerFn(msgObj) {\n channel._addEL[msgObj.type].forEach(function (listenerObject) {\n /**\n * Getting the current time in JavaScript has no good precision.\n * So instead of only listening to events that happened 'after' the listener\n * was added, we also listen to events that happened 100ms before it.\n * This ensures that when another process, like a WebWorker, sends events\n * we do not miss them out because their timestamp is a bit off compared to the main process.\n * Not doing this would make messages missing when we send data directly after subscribing and awaiting a response.\n * @link https://johnresig.com/blog/accuracy-of-javascript-time/\n */\n var hundredMsInMicro = 100 * 1000;\n var minMessageTime = listenerObject.time - hundredMsInMicro;\n if (msgObj.time >= minMessageTime) {\n listenerObject.fn(msgObj.data);\n }\n });\n };\n var time = channel.method.microSeconds();\n if (channel._prepP) {\n channel._prepP.then(function () {\n channel._iL = true;\n channel.method.onMessage(channel._state, listenerFn, time);\n });\n } else {\n channel._iL = true;\n channel.method.onMessage(channel._state, listenerFn, time);\n }\n }\n}\nfunction _stopListening(channel) {\n if (channel._iL && !_hasMessageListeners(channel)) {\n // no one is listening, stop subscribing\n channel._iL = false;\n var time = channel.method.microSeconds();\n channel.method.onMessage(channel._state, null, time);\n }\n}","/* global WorkerGlobalScope */\n\nexport function addBrowser(fn) {\n if (typeof WorkerGlobalScope === 'function' && self instanceof WorkerGlobalScope) {\n /**\n * Because killing a worker does directly stop the excution\n * of the code, our only chance is to overwrite the close function\n * which could work some times.\n * @link https://stackoverflow.com/q/72903255/3443137\n */\n var oldClose = self.close.bind(self);\n self.close = function () {\n fn();\n return oldClose();\n };\n } else {\n /**\n * if we are on react-native, there is no window.addEventListener\n * @link https://github.com/pubkey/unload/issues/6\n */\n if (typeof window.addEventListener !== 'function') {\n return;\n }\n\n /**\n * for normal browser-windows, we use the beforeunload-event\n */\n window.addEventListener('beforeunload', function () {\n fn();\n }, true);\n\n /**\n * for iframes, we have to use the unload-event\n * @link https://stackoverflow.com/q/47533670/3443137\n */\n window.addEventListener('unload', function () {\n fn();\n }, true);\n }\n\n /**\n * TODO add fallback for safari-mobile\n * @link https://stackoverflow.com/a/26193516/3443137\n */\n}","export function addNode(fn) {\n process.on('exit', function () {\n return fn();\n });\n\n /**\n * on the following events,\n * the process will not end if there are\n * event-handlers attached,\n * therefore we have to call process.exit()\n */\n process.on('beforeExit', function () {\n return fn().then(function () {\n return process.exit();\n });\n });\n // catches ctrl+c event\n process.on('SIGINT', function () {\n return fn().then(function () {\n return process.exit();\n });\n });\n // catches uncaught exceptions\n process.on('uncaughtException', function (err) {\n return fn().then(function () {\n console.trace(err);\n process.exit(101);\n });\n });\n}","import { addBrowser } from './browser.js';\nimport { addNode } from './node.js';\n\n/**\n * Use the code directly to prevent import problems\n * with the detect-node package.\n * @link https://github.com/iliakan/detect-node/blob/master/index.js\n */\nvar isNode = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\nvar USE_METHOD = isNode ? addNode : addBrowser;\nvar LISTENERS = new Set();\nvar startedListening = false;\nfunction startListening() {\n if (startedListening) {\n return;\n }\n startedListening = true;\n USE_METHOD(runAll);\n}\nexport function add(fn) {\n startListening();\n if (typeof fn !== 'function') {\n throw new Error('Listener is no function');\n }\n LISTENERS.add(fn);\n var addReturn = {\n remove: function remove() {\n return LISTENERS[\"delete\"](fn);\n },\n run: function run() {\n LISTENERS[\"delete\"](fn);\n return fn();\n }\n };\n return addReturn;\n}\nexport function runAll() {\n var promises = [];\n LISTENERS.forEach(function (fn) {\n promises.push(fn());\n LISTENERS[\"delete\"](fn);\n });\n return Promise.all(promises);\n}\nexport function removeAll() {\n LISTENERS.clear();\n}\nexport function getSize() {\n return LISTENERS.size;\n}","import { add as unloadAdd } from 'unload';\n\n/**\n * sends and internal message over the broadcast-channel\n */\nexport function sendLeaderMessage(leaderElector, action) {\n var msgJson = {\n context: 'leader',\n action: action,\n token: leaderElector.token\n };\n return leaderElector.broadcastChannel.postInternal(msgJson);\n}\nexport function beLeader(leaderElector) {\n leaderElector.isLeader = true;\n leaderElector._hasLeader = true;\n var unloadFn = unloadAdd(function () {\n return leaderElector.die();\n });\n leaderElector._unl.push(unloadFn);\n var isLeaderListener = function isLeaderListener(msg) {\n if (msg.context === 'leader' && msg.action === 'apply') {\n sendLeaderMessage(leaderElector, 'tell');\n }\n if (msg.context === 'leader' && msg.action === 'tell' && !leaderElector._dpLC) {\n /**\n * another instance is also leader!\n * This can happen on rare events\n * like when the CPU is at 100% for long time\n * or the tabs are open very long and the browser throttles them.\n * @link https://github.com/pubkey/broadcast-channel/issues/414\n * @link https://github.com/pubkey/broadcast-channel/issues/385\n */\n leaderElector._dpLC = true;\n leaderElector._dpL(); // message the lib user so the app can handle the problem\n sendLeaderMessage(leaderElector, 'tell'); // ensure other leader also knows the problem\n }\n };\n\n leaderElector.broadcastChannel.addEventListener('internal', isLeaderListener);\n leaderElector._lstns.push(isLeaderListener);\n return sendLeaderMessage(leaderElector, 'tell');\n}","import { randomToken } from './util.js';\nimport { sendLeaderMessage, beLeader } from './leader-election-util.js';\n\n/**\n * A faster version of the leader elector that uses the WebLock API\n * @link https://developer.mozilla.org/en-US/docs/Web/API/Web_Locks_API\n */\nexport var LeaderElectionWebLock = function LeaderElectionWebLock(broadcastChannel, options) {\n var _this = this;\n this.broadcastChannel = broadcastChannel;\n broadcastChannel._befC.push(function () {\n return _this.die();\n });\n this._options = options;\n this.isLeader = false;\n this.isDead = false;\n this.token = randomToken();\n this._lstns = [];\n this._unl = [];\n this._dpL = function () {}; // onduplicate listener\n this._dpLC = false; // true when onduplicate called\n\n this._wKMC = {}; // stuff for cleanup\n\n // lock name\n this.lN = 'pubkey-bc||' + broadcastChannel.method.type + '||' + broadcastChannel.name;\n};\nLeaderElectionWebLock.prototype = {\n hasLeader: function hasLeader() {\n var _this2 = this;\n return navigator.locks.query().then(function (locks) {\n var relevantLocks = locks.held ? locks.held.filter(function (lock) {\n return lock.name === _this2.lN;\n }) : [];\n if (relevantLocks && relevantLocks.length > 0) {\n return true;\n } else {\n return false;\n }\n });\n },\n awaitLeadership: function awaitLeadership() {\n var _this3 = this;\n if (!this._wLMP) {\n this._wKMC.c = new AbortController();\n var returnPromise = new Promise(function (res, rej) {\n _this3._wKMC.res = res;\n _this3._wKMC.rej = rej;\n });\n this._wLMP = new Promise(function (res) {\n navigator.locks.request(_this3.lN, {\n signal: _this3._wKMC.c.signal\n }, function () {\n // if the lock resolved, we can drop the abort controller\n _this3._wKMC.c = undefined;\n beLeader(_this3);\n res();\n return returnPromise;\n })[\"catch\"](function () {});\n });\n }\n return this._wLMP;\n },\n set onduplicate(_fn) {\n // Do nothing because there are no duplicates in the WebLock version\n },\n die: function die() {\n var _this4 = this;\n this._lstns.forEach(function (listener) {\n return _this4.broadcastChannel.removeEventListener('internal', listener);\n });\n this._lstns = [];\n this._unl.forEach(function (uFn) {\n return uFn.remove();\n });\n this._unl = [];\n if (this.isLeader) {\n this.isLeader = false;\n }\n this.isDead = true;\n if (this._wKMC.res) {\n this._wKMC.res();\n }\n if (this._wKMC.c) {\n this._wKMC.c.abort('LeaderElectionWebLock.die() called');\n }\n return sendLeaderMessage(this, 'death');\n }\n};","import { sleep, randomToken, PROMISE_RESOLVED_VOID, PROMISE_RESOLVED_TRUE, supportsWebLockAPI } from './util.js';\nimport { sendLeaderMessage, beLeader } from './leader-election-util.js';\nimport { LeaderElectionWebLock } from './leader-election-web-lock.js';\nvar LeaderElection = function LeaderElection(broadcastChannel, options) {\n var _this = this;\n this.broadcastChannel = broadcastChannel;\n this._options = options;\n this.isLeader = false;\n this._hasLeader = false;\n this.isDead = false;\n this.token = randomToken();\n\n /**\n * Apply Queue,\n * used to ensure we do not run applyOnce()\n * in parallel.\n */\n this._aplQ = PROMISE_RESOLVED_VOID;\n // amount of unfinished applyOnce() calls\n this._aplQC = 0;\n\n // things to clean up\n this._unl = []; // _unloads\n this._lstns = []; // _listeners\n this._dpL = function () {}; // onduplicate listener\n this._dpLC = false; // true when onduplicate called\n\n /**\n * Even when the own instance is not applying,\n * we still listen to messages to ensure the hasLeader flag\n * is set correctly.\n */\n var hasLeaderListener = function hasLeaderListener(msg) {\n if (msg.context === 'leader') {\n if (msg.action === 'death') {\n _this._hasLeader = false;\n }\n if (msg.action === 'tell') {\n _this._hasLeader = true;\n }\n }\n };\n this.broadcastChannel.addEventListener('internal', hasLeaderListener);\n this._lstns.push(hasLeaderListener);\n};\nLeaderElection.prototype = {\n hasLeader: function hasLeader() {\n return Promise.resolve(this._hasLeader);\n },\n /**\n * Returns true if the instance is leader,\n * false if not.\n * @async\n */\n applyOnce: function applyOnce(\n // true if the applyOnce() call came from the fallbackInterval cycle\n isFromFallbackInterval) {\n var _this2 = this;\n if (this.isLeader) {\n return sleep(0, true);\n }\n if (this.isDead) {\n return sleep(0, false);\n }\n\n /**\n * Already applying more than once,\n * -> wait for the apply queue to be finished.\n */\n if (this._aplQC > 1) {\n return this._aplQ;\n }\n\n /**\n * Add a new apply-run\n */\n var applyRun = function applyRun() {\n /**\n * Optimization shortcuts.\n * Directly return if a previous run\n * has already elected a leader.\n */\n if (_this2.isLeader) {\n return PROMISE_RESOLVED_TRUE;\n }\n var stopCriteria = false;\n var stopCriteriaPromiseResolve;\n /**\n * Resolves when a stop criteria is reached.\n * Uses as a performance shortcut so we do not\n * have to await the responseTime when it is already clear\n * that the election failed.\n */\n var stopCriteriaPromise = new Promise(function (res) {\n stopCriteriaPromiseResolve = function stopCriteriaPromiseResolve() {\n stopCriteria = true;\n res();\n };\n });\n var handleMessage = function handleMessage(msg) {\n if (msg.context === 'leader' && msg.token != _this2.token) {\n if (msg.action === 'apply') {\n // other is applying\n if (msg.token > _this2.token) {\n /**\n * other has higher token\n * -> stop applying and let other become leader.\n */\n stopCriteriaPromiseResolve();\n }\n }\n if (msg.action === 'tell') {\n // other is already leader\n stopCriteriaPromiseResolve();\n _this2._hasLeader = true;\n }\n }\n };\n _this2.broadcastChannel.addEventListener('internal', handleMessage);\n\n /**\n * If the applyOnce() call came from the fallbackInterval,\n * we can assume that the election runs in the background and\n * not critical process is waiting for it.\n * When this is true, we give the other instances\n * more time to answer to messages in the election cycle.\n * This makes it less likely to elect duplicate leaders.\n * But also it takes longer which is not a problem because we anyway\n * run in the background.\n */\n var waitForAnswerTime = isFromFallbackInterval ? _this2._options.responseTime * 4 : _this2._options.responseTime;\n return sendLeaderMessage(_this2, 'apply') // send out that this one is applying\n .then(function () {\n return Promise.race([sleep(waitForAnswerTime), stopCriteriaPromise.then(function () {\n return Promise.reject(new Error());\n })]);\n })\n // send again in case another instance was just created\n .then(function () {\n return sendLeaderMessage(_this2, 'apply');\n })\n // let others time to respond\n .then(function () {\n return Promise.race([sleep(waitForAnswerTime), stopCriteriaPromise.then(function () {\n return Promise.reject(new Error());\n })]);\n })[\"catch\"](function () {}).then(function () {\n _this2.broadcastChannel.removeEventListener('internal', handleMessage);\n if (!stopCriteria) {\n // no stop criteria -> own is leader\n return beLeader(_this2).then(function () {\n return true;\n });\n } else {\n // other is leader\n return false;\n }\n });\n };\n this._aplQC = this._aplQC + 1;\n this._aplQ = this._aplQ.then(function () {\n return applyRun();\n }).then(function () {\n _this2._aplQC = _this2._aplQC - 1;\n });\n return this._aplQ.then(function () {\n return _this2.isLeader;\n });\n },\n awaitLeadership: function awaitLeadership() {\n if ( /* _awaitLeadershipPromise */\n !this._aLP) {\n this._aLP = _awaitLeadershipOnce(this);\n }\n return this._aLP;\n },\n set onduplicate(fn) {\n this._dpL = fn;\n },\n die: function die() {\n var _this3 = this;\n this._lstns.forEach(function (listener) {\n return _this3.broadcastChannel.removeEventListener('internal', listener);\n });\n this._lstns = [];\n this._unl.forEach(function (uFn) {\n return uFn.remove();\n });\n this._unl = [];\n if (this.isLeader) {\n this._hasLeader = false;\n this.isLeader = false;\n }\n this.isDead = true;\n return sendLeaderMessage(this, 'death');\n }\n};\n\n/**\n * @param leaderElector {LeaderElector}\n */\nfunction _awaitLeadershipOnce(leaderElector) {\n if (leaderElector.isLeader) {\n return PROMISE_RESOLVED_VOID;\n }\n return new Promise(function (res) {\n var resolved = false;\n function finish() {\n if (resolved) {\n return;\n }\n resolved = true;\n leaderElector.broadcastChannel.removeEventListener('internal', whenDeathListener);\n res(true);\n }\n\n // try once now\n leaderElector.applyOnce().then(function () {\n if (leaderElector.isLeader) {\n finish();\n }\n });\n\n /**\n * Try on fallbackInterval\n * @recursive\n */\n var tryOnFallBack = function tryOnFallBack() {\n return sleep(leaderElector._options.fallbackInterval).then(function () {\n if (leaderElector.isDead || resolved) {\n return;\n }\n if (leaderElector.isLeader) {\n finish();\n } else {\n return leaderElector.applyOnce(true).then(function () {\n if (leaderElector.isLeader) {\n finish();\n } else {\n tryOnFallBack();\n }\n });\n }\n });\n };\n tryOnFallBack();\n\n // try when other leader dies\n var whenDeathListener = function whenDeathListener(msg) {\n if (msg.context === 'leader' && msg.action === 'death') {\n leaderElector._hasLeader = false;\n leaderElector.applyOnce().then(function () {\n if (leaderElector.isLeader) {\n finish();\n }\n });\n }\n };\n leaderElector.broadcastChannel.addEventListener('internal', whenDeathListener);\n leaderElector._lstns.push(whenDeathListener);\n });\n}\nfunction fillOptionsWithDefaults(options, channel) {\n if (!options) options = {};\n options = JSON.parse(JSON.stringify(options));\n if (!options.fallbackInterval) {\n options.fallbackInterval = 3000;\n }\n if (!options.responseTime) {\n options.responseTime = channel.method.averageResponseTime(channel.options);\n }\n return options;\n}\nexport function createLeaderElection(channel, options) {\n if (channel._leaderElector) {\n throw new Error('BroadcastChannel already has a leader-elector');\n }\n options = fillOptionsWithDefaults(options, channel);\n var elector = supportsWebLockAPI() ? new LeaderElectionWebLock(channel, options) : new LeaderElection(channel, options);\n channel._befC.push(function () {\n return elector.die();\n });\n channel._leaderElector = elector;\n return elector;\n}","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { BroadcastChannel } from 'broadcast-channel';\nimport { isBrowser } from '../features.js';\nimport '../oidc/types/Token.js';\nimport { EVENT_ADDED, EVENT_REMOVED, EVENT_RENEWED, EVENT_SET_STORAGE } from '../oidc/types/TokenManager.js';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\n\nclass SyncStorageService {\n constructor(tokenManager, options = {}) {\n this.started = false;\n this.enablePostMessage = true;\n this.tokenManager = tokenManager;\n this.options = options;\n this.onTokenAddedHandler = this.onTokenAddedHandler.bind(this);\n this.onTokenRemovedHandler = this.onTokenRemovedHandler.bind(this);\n this.onTokenRenewedHandler = this.onTokenRenewedHandler.bind(this);\n this.onSetStorageHandler = this.onSetStorageHandler.bind(this);\n this.onSyncMessageHandler = this.onSyncMessageHandler.bind(this);\n }\n requiresLeadership() {\n return false;\n }\n isStarted() {\n return this.started;\n }\n canStart() {\n return !!this.options.syncStorage && isBrowser() && !this.started;\n }\n async start() {\n if (!this.canStart()) {\n return;\n }\n const { syncChannelName } = this.options;\n try {\n this.channel = new BroadcastChannel(syncChannelName);\n }\n catch (err) {\n throw new AuthSdkError('SyncStorageService is not supported in current browser.');\n }\n this.tokenManager.on(EVENT_ADDED, this.onTokenAddedHandler);\n this.tokenManager.on(EVENT_REMOVED, this.onTokenRemovedHandler);\n this.tokenManager.on(EVENT_RENEWED, this.onTokenRenewedHandler);\n this.tokenManager.on(EVENT_SET_STORAGE, this.onSetStorageHandler);\n this.channel.addEventListener('message', this.onSyncMessageHandler);\n this.started = true;\n }\n async stop() {\n var _a, _b;\n if (this.started) {\n this.tokenManager.off(EVENT_ADDED, this.onTokenAddedHandler);\n this.tokenManager.off(EVENT_REMOVED, this.onTokenRemovedHandler);\n this.tokenManager.off(EVENT_RENEWED, this.onTokenRenewedHandler);\n this.tokenManager.off(EVENT_SET_STORAGE, this.onSetStorageHandler);\n (_a = this.channel) === null || _a === void 0 ? void 0 : _a.removeEventListener('message', this.onSyncMessageHandler);\n await ((_b = this.channel) === null || _b === void 0 ? void 0 : _b.close());\n this.channel = undefined;\n this.started = false;\n }\n }\n onTokenAddedHandler(key, token) {\n var _a;\n if (!this.enablePostMessage) {\n return;\n }\n (_a = this.channel) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: EVENT_ADDED,\n key,\n token\n });\n }\n onTokenRemovedHandler(key, token) {\n var _a;\n if (!this.enablePostMessage) {\n return;\n }\n (_a = this.channel) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: EVENT_REMOVED,\n key,\n token\n });\n }\n onTokenRenewedHandler(key, token, oldToken) {\n var _a;\n if (!this.enablePostMessage) {\n return;\n }\n (_a = this.channel) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: EVENT_RENEWED,\n key,\n token,\n oldToken\n });\n }\n onSetStorageHandler(storage) {\n var _a;\n (_a = this.channel) === null || _a === void 0 ? void 0 : _a.postMessage({\n type: EVENT_SET_STORAGE,\n storage\n });\n }\n onSyncMessageHandler(msg) {\n this.enablePostMessage = false;\n switch (msg.type) {\n case EVENT_SET_STORAGE:\n this.tokenManager.getStorage().setStorage(msg.storage);\n break;\n case EVENT_ADDED:\n this.tokenManager.emitAdded(msg.key, msg.token);\n this.tokenManager.setExpireEventTimeout(msg.key, msg.token);\n break;\n case EVENT_REMOVED:\n this.tokenManager.clearExpireEventTimeout(msg.key);\n this.tokenManager.emitRemoved(msg.key, msg.token);\n break;\n case EVENT_RENEWED:\n this.tokenManager.emitRenewed(msg.key, msg.token, msg.oldToken);\n break;\n }\n this.enablePostMessage = true;\n }\n}\n\nexport { SyncStorageService };\n//# sourceMappingURL=SyncStorageService.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { BroadcastChannel, createLeaderElection } from 'broadcast-channel';\nimport { isBrowser } from '../features.js';\n\nclass LeaderElectionService {\n constructor(options = {}) {\n this.started = false;\n this.options = options;\n this.onLeaderDuplicate = this.onLeaderDuplicate.bind(this);\n this.onLeader = this.onLeader.bind(this);\n }\n onLeaderDuplicate() {\n }\n async onLeader() {\n var _a, _b;\n await ((_b = (_a = this.options).onLeader) === null || _b === void 0 ? void 0 : _b.call(_a));\n }\n isLeader() {\n var _a;\n return !!((_a = this.elector) === null || _a === void 0 ? void 0 : _a.isLeader);\n }\n hasLeader() {\n var _a;\n return !!((_a = this.elector) === null || _a === void 0 ? void 0 : _a.hasLeader);\n }\n async start() {\n if (this.canStart()) {\n const { electionChannelName } = this.options;\n this.channel = new BroadcastChannel(electionChannelName);\n this.elector = createLeaderElection(this.channel);\n this.elector.onduplicate = this.onLeaderDuplicate;\n this.elector.awaitLeadership().then(this.onLeader);\n this.started = true;\n }\n }\n async stop() {\n if (this.started) {\n if (this.elector) {\n await this.elector.die();\n this.elector = undefined;\n }\n if (this.channel) {\n this.channel.postInternal = () => Promise.resolve();\n await this.channel.close();\n this.channel = undefined;\n }\n this.started = false;\n }\n }\n requiresLeadership() {\n return false;\n }\n isStarted() {\n return this.started;\n }\n canStart() {\n return isBrowser() && !this.started;\n }\n}\n\nexport { LeaderElectionService };\n//# sourceMappingURL=LeaderElectionService.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { isBrowser } from '../features.js';\n\nconst getNow = () => Math.floor(Date.now() / 1000);\nclass RenewOnTabActivationService {\n constructor(tokenManager, options = {}) {\n this.started = false;\n this.lastHidden = -1;\n this.tokenManager = tokenManager;\n this.options = options;\n this.onPageVisbilityChange = this._onPageVisbilityChange.bind(this);\n }\n _onPageVisbilityChange() {\n if (document.hidden) {\n this.lastHidden = getNow();\n }\n else if (this.lastHidden > 0 && (getNow() - this.lastHidden >= this.options.tabInactivityDuration)) {\n const { accessToken, idToken } = this.tokenManager.getTokensSync();\n if (!!accessToken && this.tokenManager.hasExpired(accessToken)) {\n const key = this.tokenManager.getStorageKeyByType('accessToken');\n this.tokenManager.renew(key).catch(() => { });\n }\n else if (!!idToken && this.tokenManager.hasExpired(idToken)) {\n const key = this.tokenManager.getStorageKeyByType('idToken');\n this.tokenManager.renew(key).catch(() => { });\n }\n }\n }\n async start() {\n if (this.canStart() && !!document) {\n document.addEventListener('visibilitychange', this.onPageVisbilityChange);\n this.started = true;\n }\n }\n async stop() {\n if (document) {\n document.removeEventListener('visibilitychange', this.onPageVisbilityChange);\n this.started = false;\n }\n }\n canStart() {\n return isBrowser() &&\n !!this.options.autoRenew &&\n !!this.options.renewOnTabActivation &&\n !this.started;\n }\n requiresLeadership() {\n return false;\n }\n isStarted() {\n return this.started;\n }\n}\n\nexport { RenewOnTabActivationService };\n//# sourceMappingURL=RenewOnTabActivationService.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { AutoRenewService } from '../../services/AutoRenewService.js';\nimport { SyncStorageService } from '../../services/SyncStorageService.js';\nimport { LeaderElectionService } from '../../services/LeaderElectionService.js';\nimport { RenewOnTabActivationService } from '../../services/RenewOnTabActivationService.js';\nimport { removeNils } from '../../util/object.js';\n\nconst AUTO_RENEW = 'autoRenew';\nconst SYNC_STORAGE = 'syncStorage';\nconst LEADER_ELECTION = 'leaderElection';\nconst RENEW_ON_TAB_ACTIVATION = 'renewOnTabActivation';\nclass ServiceManager {\n constructor(sdk, options = {}) {\n this.sdk = sdk;\n this.onLeader = this.onLeader.bind(this);\n const { autoRenew, autoRemove, syncStorage } = sdk.tokenManager.getOptions();\n options.electionChannelName = options.electionChannelName || options.broadcastChannelName;\n this.options = Object.assign({}, ServiceManager.defaultOptions, { autoRenew, autoRemove, syncStorage }, {\n electionChannelName: `${sdk.options.clientId}-election`,\n syncChannelName: `${sdk.options.clientId}-sync`,\n }, removeNils(options));\n this.started = false;\n this.services = new Map();\n ServiceManager.knownServices.forEach(name => {\n const svc = this.createService(name);\n if (svc) {\n this.services.set(name, svc);\n }\n });\n }\n async onLeader() {\n if (this.started) {\n await this.startServices();\n }\n }\n isLeader() {\n var _a;\n return (_a = this.getService(LEADER_ELECTION)) === null || _a === void 0 ? void 0 : _a.isLeader();\n }\n isLeaderRequired() {\n return [...this.services.values()].some(srv => srv.canStart() && srv.requiresLeadership());\n }\n async start() {\n if (this.started) {\n return;\n }\n await this.startServices();\n this.started = true;\n }\n async stop() {\n await this.stopServices();\n this.started = false;\n }\n getService(name) {\n return this.services.get(name);\n }\n async startServices() {\n for (const [name, srv] of this.services.entries()) {\n if (this.canStartService(name, srv)) {\n await srv.start();\n }\n }\n }\n async stopServices() {\n for (const srv of this.services.values()) {\n await srv.stop();\n }\n }\n canStartService(name, srv) {\n let canStart = srv.canStart() && !srv.isStarted();\n if (name === LEADER_ELECTION) {\n canStart && (canStart = this.isLeaderRequired());\n }\n else if (srv.requiresLeadership()) {\n canStart && (canStart = this.isLeader());\n }\n return canStart;\n }\n createService(name) {\n const tokenManager = this.sdk.tokenManager;\n let service;\n switch (name) {\n case LEADER_ELECTION:\n service = new LeaderElectionService(Object.assign(Object.assign({}, this.options), { onLeader: this.onLeader }));\n break;\n case AUTO_RENEW:\n service = new AutoRenewService(tokenManager, Object.assign({}, this.options));\n break;\n case SYNC_STORAGE:\n service = new SyncStorageService(tokenManager, Object.assign({}, this.options));\n break;\n case RENEW_ON_TAB_ACTIVATION:\n service = new RenewOnTabActivationService(tokenManager, Object.assign({}, this.options));\n break;\n default:\n throw new Error(`Unknown service ${name}`);\n }\n return service;\n }\n}\nServiceManager.knownServices = [AUTO_RENEW, SYNC_STORAGE, LEADER_ELECTION, RENEW_ON_TAB_ACTIVATION];\nServiceManager.defaultOptions = {\n autoRenew: true,\n autoRemove: true,\n syncStorage: true,\n renewOnTabActivation: true,\n tabInactivityDuration: 1800,\n};\n\nexport { ServiceManager };\n//# sourceMappingURL=browser.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { parseOAuthResponseFromUrl } from '../oidc/parseFromUrl.js';\nimport { AuthStateManager } from './AuthStateManager.js';\nimport { ServiceManager } from './ServiceManager/browser.js';\n\nfunction mixinCore(Base) {\n return class OktaAuthCore extends Base {\n constructor(...args) {\n super(...args);\n this.authStateManager = new AuthStateManager(this);\n this.serviceManager = new ServiceManager(this, this.options.services);\n }\n async start() {\n await this.serviceManager.start();\n this.tokenManager.start();\n if (!this.token.isLoginRedirect()) {\n await this.authStateManager.updateAuthState();\n }\n }\n async stop() {\n this.tokenManager.stop();\n await this.serviceManager.stop();\n }\n async handleRedirect(originalUri) {\n await this.handleLoginRedirect(undefined, originalUri);\n }\n async handleLoginRedirect(tokens, originalUri) {\n let state = this.options.state;\n if (tokens) {\n this.tokenManager.setTokens(tokens);\n originalUri = originalUri || this.getOriginalUri(this.options.state);\n }\n else if (this.isLoginRedirect()) {\n try {\n const oAuthResponse = await parseOAuthResponseFromUrl(this, {});\n state = oAuthResponse.state;\n originalUri = originalUri || this.getOriginalUri(state);\n await this.storeTokensFromRedirect();\n }\n catch (e) {\n await this.authStateManager.updateAuthState();\n throw e;\n }\n }\n else {\n return;\n }\n await this.authStateManager.updateAuthState();\n this.removeOriginalUri(state);\n const { restoreOriginalUri } = this.options;\n if (restoreOriginalUri) {\n await restoreOriginalUri(this, originalUri);\n }\n else if (originalUri) {\n window.location.replace(originalUri);\n }\n }\n };\n}\n\nexport { mixinCore };\n//# sourceMappingURL=mixin.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { omit, getLink } from '../util/object.js';\nimport { toQueryString } from '../util/url.js';\nimport '../errors/WWWAuthError.js';\nimport { get, post, httpRequest } from '../http/request.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\n\nfunction sessionExists(sdk) {\n return sdk.session.get()\n .then(function (res) {\n if (res.status === 'ACTIVE') {\n return true;\n }\n return false;\n })\n .catch(function () {\n return false;\n });\n}\nfunction getSession(sdk) {\n return get(sdk, '/api/v1/sessions/me', { withCredentials: true })\n .then(function (session) {\n var res = omit(session, '_links');\n res.refresh = function () {\n return post(sdk, getLink(session, 'refresh').href, {}, { withCredentials: true });\n };\n res.user = function () {\n return get(sdk, getLink(session, 'user').href, { withCredentials: true });\n };\n return res;\n })\n .catch(function () {\n return { status: 'INACTIVE' };\n });\n}\nfunction closeSession(sdk) {\n return httpRequest(sdk, {\n url: sdk.getIssuerOrigin() + '/api/v1/sessions/me',\n method: 'DELETE',\n withCredentials: true\n });\n}\nfunction refreshSession(sdk) {\n return post(sdk, '/api/v1/sessions/me/lifecycle/refresh', {}, { withCredentials: true });\n}\nfunction setCookieAndRedirect(sdk, sessionToken, redirectUrl) {\n redirectUrl = redirectUrl || window.location.href;\n window.location.assign(sdk.getIssuerOrigin() + '/login/sessionCookieRedirect' +\n toQueryString({\n checkAccountSetupComplete: true,\n token: sessionToken,\n redirectUrl: redirectUrl\n }));\n}\n\nexport { closeSession, getSession, refreshSession, sessionExists, setCookieAndRedirect };\n//# sourceMappingURL=api.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { closeSession, sessionExists, getSession, refreshSession, setCookieAndRedirect } from './api.js';\n\nfunction createSessionApi(sdk) {\n const session = {\n close: closeSession.bind(null, sdk),\n exists: sessionExists.bind(null, sdk),\n get: getSession.bind(null, sdk),\n refresh: refreshSession.bind(null, sdk),\n setCookieAndRedirect: setCookieAndRedirect.bind(null, sdk)\n };\n return session;\n}\n\nexport { createSessionApi };\n//# sourceMappingURL=factory.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createSessionApi } from './factory.js';\n\nfunction mixinSession(Base) {\n return class OktaAuthSession extends Base {\n constructor(...args) {\n super(...args);\n this.session = createSessionApi(this);\n }\n closeSession() {\n return this.session.close()\n .then(async () => {\n this.clearStorage();\n return true;\n })\n .catch(function (e) {\n if (e.name === 'AuthApiError' && e.errorCode === 'E0000007') {\n return false;\n }\n throw e;\n });\n }\n };\n}\n\nexport { mixinSession };\n//# sourceMappingURL=mixin.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createOktaAuthBase } from '../base/factory.js';\nimport { mixinStorage } from '../storage/mixin.js';\nimport { mixinHttp } from '../http/mixin.js';\nimport { mixinOAuth } from '../oidc/mixin/index.js';\nimport { mixinCore } from './mixin.js';\nimport { mixinSession } from '../session/mixin.js';\n\nfunction createOktaAuthCore(StorageManagerConstructor, OptionsConstructor, TransactionManagerConstructor) {\n const Base = createOktaAuthBase(OptionsConstructor);\n const WithStorage = mixinStorage(Base, StorageManagerConstructor);\n const WithHttp = mixinHttp(WithStorage);\n const WithSession = mixinSession(WithHttp);\n const WithOAuth = mixinOAuth(WithSession, TransactionManagerConstructor);\n const Core = mixinCore(WithOAuth);\n return Core;\n}\n\nexport { createOktaAuthCore };\n//# sourceMappingURL=factory.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { isFingerprintSupported } from '../features.js';\nimport { addListener, removeListener } from '../oidc/util/browser.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport '../oidc/types/Token.js';\n\nconst isMessageFromCorrectSource = (iframe, event) => event.source === iframe.contentWindow;\nfunction fingerprint(sdk, options) {\n var _a;\n if (!isFingerprintSupported()) {\n return Promise.reject(new AuthSdkError('Fingerprinting is not supported on this device'));\n }\n const container = (_a = options === null || options === void 0 ? void 0 : options.container) !== null && _a !== void 0 ? _a : document.body;\n let timeout;\n let iframe;\n let listener;\n const promise = new Promise(function (resolve, reject) {\n iframe = document.createElement('iframe');\n iframe.style.display = 'none';\n listener = function listener(e) {\n var _a;\n if (!isMessageFromCorrectSource(iframe, e)) {\n return;\n }\n if (!e || !e.data || e.origin !== sdk.getIssuerOrigin()) {\n return;\n }\n let msg;\n try {\n msg = JSON.parse(e.data);\n }\n catch (err) {\n return;\n }\n if (!msg) {\n return;\n }\n if (msg.type === 'FingerprintAvailable') {\n return resolve(msg.fingerprint);\n }\n else if (msg.type === 'FingerprintServiceReady') {\n (_a = iframe === null || iframe === void 0 ? void 0 : iframe.contentWindow) === null || _a === void 0 ? void 0 : _a.postMessage(JSON.stringify({\n type: 'GetFingerprint'\n }), e.origin);\n }\n else {\n return reject(new AuthSdkError('No data'));\n }\n };\n addListener(window, 'message', listener);\n iframe.src = sdk.getIssuerOrigin() + '/auth/services/devicefingerprint';\n container.appendChild(iframe);\n timeout = setTimeout(function () {\n reject(new AuthSdkError('Fingerprinting timed out'));\n }, (options === null || options === void 0 ? void 0 : options.timeout) || 15000);\n });\n return promise.finally(function () {\n var _a;\n clearTimeout(timeout);\n removeListener(window, 'message', listener);\n if (container.contains(iframe)) {\n (_a = iframe.parentElement) === null || _a === void 0 ? void 0 : _a.removeChild(iframe);\n }\n });\n}\n\nexport { fingerprint as default };\n//# sourceMappingURL=fingerprint.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { base64UrlToBuffer, bufferToBase64Url } from '../crypto/base64.js';\n\nconst getEnrolledCredentials = (authenticatorEnrollments = []) => {\n const credentials = [];\n authenticatorEnrollments.forEach((enrollement) => {\n if (enrollement.key === 'webauthn') {\n credentials.push({\n type: 'public-key',\n id: base64UrlToBuffer(enrollement.credentialId),\n });\n }\n });\n return credentials;\n};\nconst buildCredentialCreationOptions = (activationData, authenticatorEnrollments) => {\n return {\n publicKey: {\n rp: activationData.rp,\n user: {\n id: base64UrlToBuffer(activationData.user.id),\n name: activationData.user.name,\n displayName: activationData.user.displayName\n },\n challenge: base64UrlToBuffer(activationData.challenge),\n pubKeyCredParams: activationData.pubKeyCredParams,\n attestation: activationData.attestation,\n authenticatorSelection: activationData.authenticatorSelection,\n excludeCredentials: getEnrolledCredentials(authenticatorEnrollments),\n }\n };\n};\nconst buildCredentialRequestOptions = (challengeData, authenticatorEnrollments) => {\n return {\n publicKey: {\n challenge: base64UrlToBuffer(challengeData.challenge),\n userVerification: challengeData.userVerification,\n allowCredentials: getEnrolledCredentials(authenticatorEnrollments),\n }\n };\n};\nconst getAttestation = (credential) => {\n const response = credential.response;\n const id = credential.id;\n const clientData = bufferToBase64Url(response.clientDataJSON);\n const attestation = bufferToBase64Url(response.attestationObject);\n return {\n id,\n clientData,\n attestation\n };\n};\nconst getAssertion = (credential) => {\n const response = credential.response;\n const id = credential.id;\n const clientData = bufferToBase64Url(response.clientDataJSON);\n const authenticatorData = bufferToBase64Url(response.authenticatorData);\n const signatureData = bufferToBase64Url(response.signature);\n return {\n id,\n clientData,\n authenticatorData,\n signatureData\n };\n};\n\nexport { buildCredentialCreationOptions, buildCredentialRequestOptions, getAssertion, getAttestation };\n//# sourceMappingURL=webauthn.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createIdxAPI } from './factory/api.js';\nimport fingerprint from '../browser/fingerprint.js';\nimport * as webauthn from './webauthn.js';\n\nfunction mixinIdx(Base) {\n var _a;\n return _a = class OktaAuthIdx extends Base {\n constructor(...args) {\n super(...args);\n this.idx = createIdxAPI(this);\n this.fingerprint = fingerprint.bind(null, this);\n }\n },\n _a.webauthn = webauthn,\n _a;\n}\n\nexport { mixinIdx };\n//# sourceMappingURL=mixin.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createOktaAuthCore } from '../../core/factory.js';\nimport { mixinIdx } from '../mixin.js';\n\nfunction createOktaAuthIdx(StorageManagerConstructor, OptionsConstructor, TransactionManagerConstructor) {\n const Core = createOktaAuthCore(StorageManagerConstructor, OptionsConstructor, TransactionManagerConstructor);\n const WithIdx = mixinIdx(Core);\n return WithIdx;\n}\n\nexport { createOktaAuthIdx };\n//# sourceMappingURL=OktaAuthIdx.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction createBaseOptionsConstructor() {\n return class BaseOptionsConstructor {\n constructor(args) {\n this.devMode = !!args.devMode;\n }\n };\n}\n\nexport { createBaseOptionsConstructor };\n//# sourceMappingURL=options.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { warn } from '../../util/console.js';\nimport storageUtil from '../../browser/browserStorage.js';\n\nfunction getStorage() {\n const storageUtil$1 = Object.assign({}, storageUtil, {\n inMemoryStore: {}\n });\n return storageUtil$1;\n}\nconst STORAGE_MANAGER_OPTIONS = {\n token: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n cache: {\n storageTypes: [\n 'localStorage',\n 'sessionStorage',\n 'cookie'\n ]\n },\n transaction: {\n storageTypes: [\n 'sessionStorage',\n 'localStorage',\n 'cookie'\n ]\n },\n 'shared-transaction': {\n storageTypes: [\n 'localStorage'\n ]\n },\n 'original-uri': {\n storageTypes: [\n 'localStorage'\n ]\n }\n};\nfunction getCookieSettings(args = {}, isHTTPS) {\n var cookieSettings = args.cookies || {};\n if (typeof cookieSettings.secure === 'undefined') {\n cookieSettings.secure = isHTTPS;\n }\n if (typeof cookieSettings.sameSite === 'undefined') {\n cookieSettings.sameSite = cookieSettings.secure ? 'none' : 'lax';\n }\n if (cookieSettings.secure && !isHTTPS) {\n warn('The current page is not being served with the HTTPS protocol.\\n' +\n 'For security reasons, we strongly recommend using HTTPS.\\n' +\n 'If you cannot use HTTPS, set \"cookies.secure\" option to false.');\n cookieSettings.secure = false;\n }\n if (cookieSettings.sameSite === 'none' && !cookieSettings.secure) {\n cookieSettings.sameSite = 'lax';\n }\n return cookieSettings;\n}\n\nexport { STORAGE_MANAGER_OPTIONS, getCookieSettings, getStorage };\n//# sourceMappingURL=browser.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { isHTTPS } from '../../features.js';\nimport 'tiny-emitter';\nimport { createBaseOptionsConstructor } from '../../base/options.js';\nimport { getCookieSettings, getStorage, STORAGE_MANAGER_OPTIONS } from './browser.js';\n\nfunction createStorageOptionsConstructor() {\n const BaseOptionsConstructor = createBaseOptionsConstructor();\n return class StorageOptionsConstructor extends BaseOptionsConstructor {\n constructor(args) {\n super(args);\n this.cookies = getCookieSettings(args, isHTTPS());\n this.storageUtil = args.storageUtil || getStorage();\n this.storageManager = Object.assign(Object.assign({}, STORAGE_MANAGER_OPTIONS), args.storageManager);\n }\n };\n}\n\nexport { createStorageOptionsConstructor };\n//# sourceMappingURL=StorageOptionsConstructor.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport crossFetch from 'cross-fetch';\n\nconst appJsonContentTypeRegex = /application\\/\\w*\\+?json/;\nfunction readData(response) {\n if (response.headers.get('Content-Type') &&\n response.headers.get('Content-Type').toLowerCase().indexOf('application/json') >= 0) {\n return response.json()\n .catch(e => {\n return {\n error: e,\n errorSummary: 'Could not parse server response'\n };\n });\n }\n else {\n return response.text();\n }\n}\nfunction formatResult(status, data, response) {\n const isObject = typeof data === 'object';\n const headers = {};\n for (const pair of response.headers.entries()) {\n headers[pair[0]] = pair[1];\n }\n const result = {\n responseText: isObject ? JSON.stringify(data) : data,\n status: status,\n headers\n };\n if (isObject) {\n result.responseType = 'json';\n result.responseJSON = data;\n }\n return result;\n}\nfunction fetchRequest(method, url, args) {\n var body = args.data;\n var headers = args.headers || {};\n var contentType = (headers['Content-Type'] || headers['content-type'] || '');\n if (body && typeof body !== 'string') {\n if (appJsonContentTypeRegex.test(contentType)) {\n body = JSON.stringify(body);\n }\n else if (contentType === 'application/x-www-form-urlencoded') {\n body = Object.entries(body)\n .map(([param, value]) => `${param}=${encodeURIComponent(value)}`)\n .join('&');\n }\n }\n var fetch = window.fetch || crossFetch;\n var fetchPromise = fetch(url, {\n method: method,\n headers: args.headers,\n body: body,\n credentials: args.withCredentials ? 'include' : 'omit'\n });\n if (!fetchPromise.finally) {\n fetchPromise = Promise.resolve(fetchPromise);\n }\n return fetchPromise.then(function (response) {\n var error = !response.ok;\n var status = response.status;\n return readData(response)\n .then(data => {\n return formatResult(status, data, response);\n })\n .then(result => {\n var _a;\n if (error || ((_a = result.responseJSON) === null || _a === void 0 ? void 0 : _a.error)) {\n throw result;\n }\n return result;\n });\n });\n}\n\nexport { fetchRequest as default };\n//# sourceMappingURL=fetchRequest.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createStorageOptionsConstructor } from '../storage/options/StorageOptionsConstructor.js';\nimport '../errors/WWWAuthError.js';\nimport fetchRequest from '../fetch/fetchRequest.js';\n\nfunction createHttpOptionsConstructor() {\n const StorageOptionsConstructor = createStorageOptionsConstructor();\n return class HttpOptionsConstructor extends StorageOptionsConstructor {\n constructor(args) {\n super(args);\n this.issuer = args.issuer;\n this.transformErrorXHR = args.transformErrorXHR;\n this.headers = args.headers;\n this.httpRequestClient = args.httpRequestClient || fetchRequest;\n this.httpRequestInterceptors = args.httpRequestInterceptors;\n }\n };\n}\n\nexport { createHttpOptionsConstructor };\n//# sourceMappingURL=options.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nconst enableSharedStorage = true;\n\nexport { enableSharedStorage };\n//# sourceMappingURL=browser.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { DEFAULT_MAX_CLOCK_SKEW } from '../../constants.js';\nimport { removeTrailingSlash, toAbsoluteUrl } from '../../util/url.js';\nimport { isBrowser } from '../../features.js';\nimport { createHttpOptionsConstructor } from '../../http/options.js';\nimport { enableSharedStorage } from './browser.js';\nimport AuthSdkError from '../../errors/AuthSdkError.js';\n\nfunction assertValidConfig(args) {\n args = args || {};\n var scopes = args.scopes;\n if (scopes && !Array.isArray(scopes)) {\n throw new AuthSdkError('scopes must be a array of strings. ' +\n 'Required usage: new OktaAuth({scopes: [\"openid\", \"email\"]})');\n }\n var issuer = args.issuer;\n if (!issuer) {\n throw new AuthSdkError('No issuer passed to constructor. ' +\n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com/oauth2/{authServerId}\"})');\n }\n var isUrlRegex = new RegExp('^http?s?://.+');\n if (!isUrlRegex.test(issuer)) {\n throw new AuthSdkError('Issuer must be a valid URL. ' +\n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com/oauth2/{authServerId}\"})');\n }\n if (issuer.indexOf('-admin.okta') !== -1) {\n throw new AuthSdkError('Issuer URL passed to constructor contains \"-admin\" in subdomain. ' +\n 'Required usage: new OktaAuth({issuer: \"https://{yourOktaDomain}.com})');\n }\n}\nfunction createOAuthOptionsConstructor() {\n const HttpOptionsConstructor = createHttpOptionsConstructor();\n return class OAuthOptionsConstructor extends HttpOptionsConstructor {\n constructor(options) {\n super(options);\n assertValidConfig(options);\n this.issuer = removeTrailingSlash(options.issuer);\n this.tokenUrl = removeTrailingSlash(options.tokenUrl);\n this.authorizeUrl = removeTrailingSlash(options.authorizeUrl);\n this.userinfoUrl = removeTrailingSlash(options.userinfoUrl);\n this.revokeUrl = removeTrailingSlash(options.revokeUrl);\n this.logoutUrl = removeTrailingSlash(options.logoutUrl);\n this.pkce = options.pkce === false ? false : true;\n this.clientId = options.clientId;\n this.redirectUri = options.redirectUri;\n if (isBrowser()) {\n this.redirectUri = toAbsoluteUrl(options.redirectUri, window.location.origin);\n }\n this.responseType = options.responseType;\n this.responseMode = options.responseMode;\n this.state = options.state;\n this.scopes = options.scopes;\n this.ignoreSignature = !!options.ignoreSignature;\n this.codeChallenge = options.codeChallenge;\n this.codeChallengeMethod = options.codeChallengeMethod;\n this.acrValues = options.acrValues;\n this.maxAge = options.maxAge;\n this.dpop = options.dpop === true;\n this.tokenManager = options.tokenManager;\n this.postLogoutRedirectUri = options.postLogoutRedirectUri;\n this.restoreOriginalUri = options.restoreOriginalUri;\n this.transactionManager = Object.assign({ enableSharedStorage }, options.transactionManager);\n this.clientSecret = options.clientSecret;\n this.setLocation = options.setLocation;\n this.ignoreLifetime = !!options.ignoreLifetime;\n if (!options.maxClockSkew && options.maxClockSkew !== 0) {\n this.maxClockSkew = DEFAULT_MAX_CLOCK_SKEW;\n }\n else {\n this.maxClockSkew = options.maxClockSkew;\n }\n }\n };\n}\n\nexport { createOAuthOptionsConstructor };\n//# sourceMappingURL=OAuthOptionsConstructor.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport '../errors/WWWAuthError.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport '../oidc/types/Token.js';\nimport { createOAuthOptionsConstructor } from '../oidc/options/OAuthOptionsConstructor.js';\n\nfunction createCoreOptionsConstructor() {\n const OAuthOptionsConstructor = createOAuthOptionsConstructor();\n return class CoreOptionsConstructor extends OAuthOptionsConstructor {\n constructor(options) {\n super(options);\n this.services = options.services;\n this.transformAuthState = options.transformAuthState;\n }\n };\n}\n\nexport { createCoreOptionsConstructor };\n//# sourceMappingURL=options.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createCoreOptionsConstructor } from '../core/options.js';\n\nfunction createIdxOptionsConstructor() {\n const CoreOptionsConstructor = createCoreOptionsConstructor();\n return class IdxOptionsConstructor extends CoreOptionsConstructor {\n constructor(options) {\n super(options);\n this.flow = options.flow;\n this.activationToken = options.activationToken;\n this.recoveryToken = options.recoveryToken;\n this.idx = options.idx;\n }\n };\n}\n\nexport { createIdxOptionsConstructor };\n//# sourceMappingURL=options.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\n\nclass SavedObject {\n constructor(storage, storageName) {\n if (!storage) {\n throw new AuthSdkError('\"storage\" is required');\n }\n if (typeof storageName !== 'string' || !storageName.length) {\n throw new AuthSdkError('\"storageName\" is required');\n }\n this.storageName = storageName;\n this.storageProvider = storage;\n }\n getItem(key) {\n return this.getStorage()[key];\n }\n setItem(key, value) {\n return this.updateStorage(key, value);\n }\n removeItem(key) {\n return this.clearStorage(key);\n }\n getStorage() {\n var storageString = this.storageProvider.getItem(this.storageName);\n storageString = storageString || '{}';\n try {\n return JSON.parse(storageString);\n }\n catch (e) {\n throw new AuthSdkError('Unable to parse storage string: ' + this.storageName);\n }\n }\n setStorage(obj) {\n try {\n var storageString = obj ? JSON.stringify(obj) : '{}';\n this.storageProvider.setItem(this.storageName, storageString);\n }\n catch (e) {\n throw new AuthSdkError('Unable to set storage: ' + this.storageName);\n }\n }\n clearStorage(key) {\n if (!key) {\n if (this.storageProvider.removeItem) {\n this.storageProvider.removeItem(this.storageName);\n }\n else {\n this.setStorage();\n }\n return;\n }\n var obj = this.getStorage();\n delete obj[key];\n this.setStorage(obj);\n }\n updateStorage(key, value) {\n var obj = this.getStorage();\n obj[key] = value;\n this.setStorage(obj);\n }\n}\n\nexport { SavedObject };\n//# sourceMappingURL=SavedObject.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { TOKEN_STORAGE_NAME, CACHE_STORAGE_NAME } from '../constants.js';\nimport { SavedObject } from './SavedObject.js';\nimport { isBrowser } from '../features.js';\nimport { warn } from '../util/console.js';\n\nfunction logServerSideMemoryStorageWarning(options) {\n if (!isBrowser() && !options.storageProvider && !options.storageKey) {\n warn('Memory storage can only support simple single user use case on server side, please provide custom storageProvider or storageKey if advanced scenarios need to be supported.');\n }\n}\nclass BaseStorageManager {\n constructor(storageManagerOptions, cookieOptions, storageUtil) {\n this.storageManagerOptions = storageManagerOptions;\n this.cookieOptions = cookieOptions;\n this.storageUtil = storageUtil;\n }\n getOptionsForSection(sectionName, overrideOptions) {\n return Object.assign({}, this.storageManagerOptions[sectionName], overrideOptions);\n }\n getStorage(options) {\n options = Object.assign({}, this.cookieOptions, options);\n if (options.storageProvider) {\n return options.storageProvider;\n }\n let { storageType, storageTypes } = options;\n if (storageType === 'sessionStorage') {\n options.sessionCookie = true;\n }\n if (storageType && storageTypes) {\n const idx = storageTypes.indexOf(storageType);\n if (idx >= 0) {\n storageTypes = storageTypes.slice(idx);\n storageType = undefined;\n }\n }\n if (!storageType) {\n storageType = this.storageUtil.findStorageType(storageTypes);\n }\n return this.storageUtil.getStorageByType(storageType, options);\n }\n getTokenStorage(options) {\n options = this.getOptionsForSection('token', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TOKEN_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n getHttpCache(options) {\n options = this.getOptionsForSection('cache', options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || CACHE_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n}\n\nexport { BaseStorageManager, logServerSideMemoryStorageWarning };\n//# sourceMappingURL=BaseStorageManager.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { BaseStorageManager, logServerSideMemoryStorageWarning } from '../storage/BaseStorageManager.js';\nimport '../errors/WWWAuthError.js';\nimport { TRANSACTION_STORAGE_NAME, SHARED_TRANSACTION_STORAGE_NAME, ORIGINAL_URI_STORAGE_NAME } from '../constants.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport { SavedObject } from '../storage/SavedObject.js';\n\nfunction createOAuthStorageManager() {\n return class OAuthStorageManager extends BaseStorageManager {\n constructor(storageManagerOptions, cookieOptions, storageUtil) {\n super(storageManagerOptions, cookieOptions, storageUtil);\n }\n getTransactionStorage(options) {\n options = this.getOptionsForSection('transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n getSharedTansactionStorage(options) {\n options = this.getOptionsForSection('shared-transaction', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || SHARED_TRANSACTION_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n getOriginalUriStorage(options) {\n options = this.getOptionsForSection('original-uri', options);\n logServerSideMemoryStorageWarning(options);\n const storage = this.getStorage(options);\n const storageKey = options.storageKey || ORIGINAL_URI_STORAGE_NAME;\n return new SavedObject(storage, storageKey);\n }\n };\n}\n\nexport { createOAuthStorageManager };\n//# sourceMappingURL=storage.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createOAuthStorageManager } from '../oidc/storage.js';\n\nfunction createCoreStorageManager() {\n return createOAuthStorageManager();\n}\n\nexport { createCoreStorageManager };\n//# sourceMappingURL=storage.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { warn } from '../util/console.js';\nimport { isBrowser } from '../features.js';\nimport { IDX_RESPONSE_STORAGE_NAME } from '../constants.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport { SavedObject } from '../storage/SavedObject.js';\nimport { createCoreStorageManager } from '../core/storage.js';\n\nfunction createIdxStorageManager() {\n const CoreStorageManager = createCoreStorageManager();\n return class IdxStorageManager extends CoreStorageManager {\n constructor(storageManagerOptions, cookieOptions, storageUtil) {\n super(storageManagerOptions, cookieOptions, storageUtil);\n }\n getIdxResponseStorage(options) {\n let storage;\n if (isBrowser()) {\n try {\n storage = this.storageUtil.getStorageByType('memory', options);\n }\n catch (e) {\n warn('No response storage found, you may want to provide custom implementation for intermediate idx responses to optimize the network traffic');\n }\n }\n else {\n const transactionStorage = this.getTransactionStorage(options);\n if (transactionStorage) {\n storage = {\n getItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (transaction && transaction[key]) {\n return transaction[key];\n }\n return null;\n },\n setItem: (key, val) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n throw new AuthSdkError('Transaction has been cleared, failed to save idxState');\n }\n transaction[key] = val;\n transactionStorage.setStorage(transaction);\n },\n removeItem: (key) => {\n const transaction = transactionStorage.getStorage();\n if (!transaction) {\n return;\n }\n delete transaction[key];\n transactionStorage.setStorage(transaction);\n }\n };\n }\n }\n if (!storage) {\n return null;\n }\n return new SavedObject(storage, IDX_RESPONSE_STORAGE_NAME);\n }\n };\n}\n\nexport { createIdxStorageManager };\n//# sourceMappingURL=storage.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction isObjectWithProperties(obj) {\n if (!obj || typeof obj !== 'object' || Object.values(obj).length === 0) {\n return false;\n }\n return true;\n}\nfunction isOAuthTransactionMeta(obj) {\n if (!isObjectWithProperties(obj)) {\n return false;\n }\n return !!obj.redirectUri || !!obj.responseType;\n}\nfunction isPKCETransactionMeta(obj) {\n if (!isOAuthTransactionMeta(obj)) {\n return false;\n }\n return !!obj.codeVerifier;\n}\nfunction isIdxTransactionMeta(obj) {\n if (!isPKCETransactionMeta(obj)) {\n return false;\n }\n return !!obj.interactionHandle;\n}\nfunction isCustomAuthTransactionMeta(obj) {\n if (!isObjectWithProperties(obj)) {\n return false;\n }\n const isAllStringValues = Object.values(obj).find((value) => (typeof value !== 'string')) === undefined;\n return isAllStringValues;\n}\nfunction isTransactionMeta(obj) {\n if (isOAuthTransactionMeta(obj) || isCustomAuthTransactionMeta(obj)) {\n return true;\n }\n return false;\n}\n\nexport { isCustomAuthTransactionMeta, isIdxTransactionMeta, isOAuthTransactionMeta, isPKCETransactionMeta, isTransactionMeta };\n//# sourceMappingURL=Transaction.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport '../types/Token.js';\nimport { isTransactionMeta } from '../types/Transaction.js';\n\nconst MAX_ENTRY_LIFETIME = 30 * 60 * 1000;\nfunction pruneSharedStorage(storageManager) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n Object.keys(entries).forEach(state => {\n const entry = entries[state];\n const age = Date.now() - entry.dateCreated;\n if (age > MAX_ENTRY_LIFETIME) {\n delete entries[state];\n }\n });\n sharedStorage.setStorage(entries);\n}\nfunction saveTransactionToSharedStorage(storageManager, state, meta) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n entries[state] = {\n dateCreated: Date.now(),\n transaction: meta\n };\n sharedStorage.setStorage(entries);\n}\nfunction loadTransactionFromSharedStorage(storageManager, state) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n const entry = entries[state];\n if (entry && entry.transaction && isTransactionMeta(entry.transaction)) {\n return entry.transaction;\n }\n return null;\n}\nfunction clearTransactionFromSharedStorage(storageManager, state) {\n const sharedStorage = storageManager.getSharedTansactionStorage();\n const entries = sharedStorage.getStorage();\n delete entries[state];\n sharedStorage.setStorage(entries);\n}\n\nexport { clearTransactionFromSharedStorage, loadTransactionFromSharedStorage, pruneSharedStorage, saveTransactionToSharedStorage };\n//# sourceMappingURL=sharedStorage.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport './types/Token.js';\nimport { isTransactionMeta } from './types/Transaction.js';\nimport { warn } from '../util/console.js';\nimport { clearTransactionFromSharedStorage, saveTransactionToSharedStorage, pruneSharedStorage, loadTransactionFromSharedStorage } from './util/sharedStorage.js';\n\nfunction createTransactionManager() {\n return class TransactionManager {\n constructor(options) {\n this.storageManager = options.storageManager;\n this.enableSharedStorage = options.enableSharedStorage === false ? false : true;\n this.saveLastResponse = options.saveLastResponse === false ? false : true;\n this.options = options;\n }\n clear(options = {}) {\n const transactionStorage = this.storageManager.getTransactionStorage();\n const meta = transactionStorage.getStorage();\n transactionStorage.clearStorage();\n if (this.enableSharedStorage && options.clearSharedStorage !== false) {\n const state = options.state || (meta === null || meta === void 0 ? void 0 : meta.state);\n if (state) {\n clearTransactionFromSharedStorage(this.storageManager, state);\n }\n }\n }\n save(meta, options = {}) {\n let storage = this.storageManager.getTransactionStorage();\n const obj = storage.getStorage();\n if (isTransactionMeta(obj) && !options.muteWarning) {\n warn('a saved auth transaction exists in storage. This may indicate another auth flow is already in progress.');\n }\n storage.setStorage(meta);\n if (this.enableSharedStorage && meta.state) {\n saveTransactionToSharedStorage(this.storageManager, meta.state, meta);\n }\n }\n exists(options = {}) {\n try {\n const meta = this.load(options);\n return !!meta;\n }\n catch (_a) {\n return false;\n }\n }\n load(options = {}) {\n let meta;\n if (this.enableSharedStorage && options.state) {\n pruneSharedStorage(this.storageManager);\n meta = loadTransactionFromSharedStorage(this.storageManager, options.state);\n if (isTransactionMeta(meta)) {\n return meta;\n }\n }\n let storage = this.storageManager.getTransactionStorage();\n meta = storage.getStorage();\n if (isTransactionMeta(meta)) {\n return meta;\n }\n return null;\n }\n };\n}\n\nexport { createTransactionManager };\n//# sourceMappingURL=TransactionManager.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { createTransactionManager } from '../oidc/TransactionManager.js';\nimport { isRawIdxResponse } from './types/idx-js.js';\n\nfunction createIdxTransactionManager() {\n const TransactionManager = createTransactionManager();\n return class IdxTransactionManager extends TransactionManager {\n constructor(options) {\n super(options);\n }\n clear(options = {}) {\n super.clear(options);\n if (options.clearIdxResponse !== false) {\n this.clearIdxResponse();\n }\n }\n saveIdxResponse(data) {\n if (!this.saveLastResponse) {\n return;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n if (!storage) {\n return;\n }\n storage.setStorage(data);\n }\n loadIdxResponse(options) {\n if (!this.saveLastResponse) {\n return null;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n if (!storage) {\n return null;\n }\n const storedValue = storage.getStorage();\n if (!storedValue || !isRawIdxResponse(storedValue.rawIdxResponse)) {\n return null;\n }\n if (options) {\n const { stateHandle, interactionHandle } = options;\n if (!options.useGenericRemediator && stateHandle && storedValue.stateHandle !== stateHandle) {\n return null;\n }\n if (interactionHandle && storedValue.interactionHandle !== interactionHandle) {\n return null;\n }\n }\n return storedValue;\n }\n clearIdxResponse() {\n if (!this.saveLastResponse) {\n return;\n }\n const storage = this.storageManager.getIdxResponseStorage();\n storage === null || storage === void 0 ? void 0 : storage.clearStorage();\n }\n };\n}\n\nexport { createIdxTransactionManager };\n//# sourceMappingURL=IdxTransactionManager.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { __rest } from '../../_virtual/_tslib.js';\n\nclass BaseTransaction {\n constructor(oktaAuth, options) {\n const { res } = options;\n const { headers } = res, rest = __rest(res, [\"headers\"]);\n if (headers) {\n this.headers = headers;\n }\n Object.keys(rest).forEach(key => {\n if (key === '_links') {\n return;\n }\n this[key] = rest[key];\n });\n }\n}\n\nexport { BaseTransaction as default };\n//# sourceMappingURL=Base.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport BaseTransaction from './transactions/Base.js';\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { httpRequest } from '../http/request.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\n\nasync function sendRequest(oktaAuth, options, TransactionClass = BaseTransaction) {\n const { accessToken: accessTokenObj } = oktaAuth.tokenManager.getTokensSync();\n const accessToken = options.accessToken || (accessTokenObj === null || accessTokenObj === void 0 ? void 0 : accessTokenObj.accessToken);\n const issuer = oktaAuth.getIssuerOrigin();\n const { url, method, payload } = options;\n const requestUrl = url.startsWith(issuer) ? url : `${issuer}${url}`;\n if (!accessToken) {\n throw new AuthSdkError('AccessToken is required to request MyAccount API endpoints.');\n }\n const res = await httpRequest(oktaAuth, Object.assign({ headers: { 'Accept': '*/*;okta-version=1.0.0' }, accessToken, url: requestUrl, method }, (payload && { args: payload })));\n let ret;\n if (Array.isArray(res)) {\n ret = res.map(item => new TransactionClass(oktaAuth, {\n res: item,\n accessToken\n }));\n }\n else {\n ret = new TransactionClass(oktaAuth, {\n res,\n accessToken\n });\n }\n return ret;\n}\nfunction generateRequestFnFromLinks({ oktaAuth, accessToken, methodName, links, }, TransactionClass = BaseTransaction) {\n for (const method of ['GET', 'POST', 'PUT', 'DELETE']) {\n if (method.toLowerCase() === methodName) {\n const link = links.self;\n return (async (payload) => sendRequest(oktaAuth, {\n accessToken,\n url: link.href,\n method,\n payload,\n }, TransactionClass));\n }\n }\n const link = links[methodName];\n if (!link) {\n throw new AuthSdkError(`No link is found with methodName: ${methodName}`);\n }\n return (async (payload) => sendRequest(oktaAuth, {\n accessToken,\n url: link.href,\n method: link.hints.allow[0],\n payload,\n }, TransactionClass));\n}\n\nexport { generateRequestFnFromLinks, sendRequest };\n//# sourceMappingURL=request.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport BaseTransaction from './Base.js';\n\nclass ProfileTransaction extends BaseTransaction {\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n const { createdAt, modifiedAt, profile } = options.res;\n this.createdAt = createdAt;\n this.modifiedAt = modifiedAt;\n this.profile = profile;\n }\n}\n\nexport { ProfileTransaction as default };\n//# sourceMappingURL=ProfileTransaction.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport BaseTransaction from './Base.js';\n\nclass ProfileSchemaTransaction extends BaseTransaction {\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n this.properties = options.res.properties;\n }\n}\n\nexport { ProfileSchemaTransaction as default };\n//# sourceMappingURL=ProfileSchemaTransaction.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nvar EmailRole;\n(function (EmailRole) {\n EmailRole[\"PRIMARY\"] = \"PRIMARY\";\n EmailRole[\"SECONDARY\"] = \"SECONDARY\";\n})(EmailRole || (EmailRole = {}));\nvar Status;\n(function (Status) {\n Status[\"VERIFIED\"] = \"VERIFIED\";\n Status[\"UNVERIFIED\"] = \"UNVERIFIED\";\n})(Status || (Status = {}));\nvar PasswordStatus;\n(function (PasswordStatus) {\n PasswordStatus[\"NOT_ENROLLED\"] = \"NOT_ENROLLED\";\n PasswordStatus[\"ACTIVE\"] = \"ACTIVE\";\n})(PasswordStatus || (PasswordStatus = {}));\n\nexport { EmailRole, PasswordStatus, Status };\n//# sourceMappingURL=types.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { sendRequest } from './request.js';\nimport ProfileTransaction from './transactions/ProfileTransaction.js';\nimport ProfileSchemaTransaction from './transactions/ProfileSchemaTransaction.js';\nimport './types.js';\n\nconst getProfile = async (oktaAuth, options) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile',\n method: 'GET',\n accessToken: options === null || options === void 0 ? void 0 : options.accessToken,\n }, ProfileTransaction);\n return transaction;\n};\nconst updateProfile = async (oktaAuth, options) => {\n const { payload, accessToken } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile',\n method: 'PUT',\n payload,\n accessToken,\n }, ProfileTransaction);\n return transaction;\n};\nconst getProfileSchema = async (oktaAuth, options) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/profile/schema',\n method: 'GET',\n accessToken: options === null || options === void 0 ? void 0 : options.accessToken,\n }, ProfileSchemaTransaction);\n return transaction;\n};\n\nexport { getProfile, getProfileSchema, updateProfile };\n//# sourceMappingURL=profileApi.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport BaseTransaction from './Base.js';\n\nclass EmailStatusTransaction extends BaseTransaction {\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n const { res } = options;\n const { id, profile, expiresAt, status } = res;\n this.id = id;\n this.expiresAt = expiresAt;\n this.profile = profile;\n this.status = status;\n }\n}\n\nexport { EmailStatusTransaction as default };\n//# sourceMappingURL=EmailStatusTransaction.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport EmailStatusTransaction from './EmailStatusTransaction.js';\nimport BaseTransaction from './Base.js';\nimport { generateRequestFnFromLinks } from '../request.js';\n\nclass EmailChallengeTransaction extends BaseTransaction {\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n const { accessToken, res } = options;\n const { id, expiresAt, profile, status, _links } = res;\n this.id = id;\n this.expiresAt = expiresAt;\n this.profile = profile;\n this.status = status;\n this.poll = async () => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'poll',\n links: _links,\n }, EmailStatusTransaction);\n return await fn();\n };\n this.verify = async (payload) => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'verify',\n links: _links,\n }, EmailChallengeTransaction);\n return await fn(payload);\n };\n }\n}\n\nexport { EmailChallengeTransaction as default };\n//# sourceMappingURL=EmailChallengeTransaction.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport EmailChallengeTransaction from './EmailChallengeTransaction.js';\nimport EmailStatusTransaction from './EmailStatusTransaction.js';\nimport BaseTransaction from './Base.js';\nimport { generateRequestFnFromLinks } from '../request.js';\n\nclass EmailTransaction extends BaseTransaction {\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n const { accessToken, res } = options;\n const { id, profile, roles, status, _links } = res;\n this.id = id;\n this.profile = profile;\n this.roles = roles;\n this.status = status;\n this.get = async () => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'get',\n links: _links,\n }, EmailTransaction);\n return await fn();\n };\n this.delete = async () => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'delete',\n links: _links\n });\n return await fn();\n };\n this.challenge = async () => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'challenge',\n links: _links,\n }, EmailChallengeTransaction);\n return await fn();\n };\n if (_links.poll) {\n this.poll = async () => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'poll',\n links: _links,\n }, EmailStatusTransaction);\n return await fn();\n };\n }\n if (_links.verify) {\n this.verify = async (payload) => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'verify',\n links: _links,\n });\n return await fn(payload);\n };\n }\n }\n}\n\nexport { EmailTransaction as default };\n//# sourceMappingURL=EmailTransaction.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { sendRequest } from './request.js';\nimport EmailTransaction from './transactions/EmailTransaction.js';\nimport EmailChallengeTransaction from './transactions/EmailChallengeTransaction.js';\nimport './types.js';\n\nconst getEmails = async (oktaAuth, options) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/emails',\n method: 'GET',\n accessToken: options === null || options === void 0 ? void 0 : options.accessToken\n }, EmailTransaction);\n return transaction;\n};\nconst getEmail = async (oktaAuth, options) => {\n const { id, accessToken } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}`,\n method: 'GET',\n accessToken,\n }, EmailTransaction);\n return transaction;\n};\nconst addEmail = async (oktaAuth, options) => {\n const { accessToken, payload } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/emails',\n method: 'POST',\n payload,\n accessToken,\n }, EmailTransaction);\n return transaction;\n};\nconst deleteEmail = async (oktaAuth, options) => {\n const { id, accessToken } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}`,\n method: 'DELETE',\n accessToken\n });\n return transaction;\n};\nconst sendEmailChallenge = async (oktaAuth, options) => {\n const { id, accessToken } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${id}/challenge`,\n method: 'POST',\n accessToken,\n }, EmailChallengeTransaction);\n return transaction;\n};\nconst getEmailChallenge = async (oktaAuth, options) => {\n const { emailId, challengeId, accessToken } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${emailId}/challenge/${challengeId}`,\n method: 'POST',\n accessToken,\n }, EmailChallengeTransaction);\n return transaction;\n};\nconst verifyEmailChallenge = async (oktaAuth, options) => {\n const { emailId, challengeId, payload, accessToken } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/emails/${emailId}/challenge/${challengeId}/verify`,\n method: 'POST',\n payload,\n accessToken\n });\n return transaction;\n};\n\nexport { addEmail, deleteEmail, getEmail, getEmailChallenge, getEmails, sendEmailChallenge, verifyEmailChallenge };\n//# sourceMappingURL=emailApi.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport BaseTransaction from './Base.js';\nimport { generateRequestFnFromLinks } from '../request.js';\n\nclass PhoneTransaction extends BaseTransaction {\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n const { res, accessToken } = options;\n const { id, profile, status, _links } = res;\n this.id = id;\n this.profile = profile;\n this.status = status;\n this.get = async () => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'get',\n links: _links,\n }, PhoneTransaction);\n return await fn();\n };\n this.delete = async () => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'delete',\n links: _links\n });\n return await fn();\n };\n this.challenge = async (payload) => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'challenge',\n links: _links\n });\n return await fn(payload);\n };\n if (_links.verify) {\n this.verify = async (payload) => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'verify',\n links: _links\n });\n return await fn(payload);\n };\n }\n }\n}\n\nexport { PhoneTransaction as default };\n//# sourceMappingURL=PhoneTransaction.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { sendRequest } from './request.js';\nimport PhoneTransaction from './transactions/PhoneTransaction.js';\nimport './types.js';\n\nconst getPhones = async (oktaAuth, options) => {\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/phones',\n method: 'GET',\n accessToken: options === null || options === void 0 ? void 0 : options.accessToken,\n }, PhoneTransaction);\n return transaction;\n};\nconst getPhone = async (oktaAuth, options) => {\n const { accessToken, id } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}`,\n method: 'GET',\n accessToken,\n }, PhoneTransaction);\n return transaction;\n};\nconst addPhone = async (oktaAuth, options) => {\n const { accessToken, payload } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/phones',\n method: 'POST',\n payload,\n accessToken,\n }, PhoneTransaction);\n return transaction;\n};\nconst deletePhone = async (oktaAuth, options) => {\n const { id, accessToken } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}`,\n method: 'DELETE',\n accessToken,\n });\n return transaction;\n};\nconst sendPhoneChallenge = async (oktaAuth, options) => {\n const { accessToken, id, payload } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}/challenge`,\n method: 'POST',\n payload,\n accessToken\n });\n return transaction;\n};\nconst verifyPhoneChallenge = async (oktaAuth, options) => {\n const { id, payload, accessToken } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/phones/${id}/verify`,\n method: 'POST',\n payload,\n accessToken\n });\n return transaction;\n};\n\nexport { addPhone, deletePhone, getPhone, getPhones, sendPhoneChallenge, verifyPhoneChallenge };\n//# sourceMappingURL=phoneApi.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { PasswordStatus } from '../types.js';\nimport BaseTransaction from './Base.js';\nimport { generateRequestFnFromLinks } from '../request.js';\n\nclass PasswordTransaction extends BaseTransaction {\n constructor(oktaAuth, options) {\n super(oktaAuth, options);\n const { res, accessToken } = options;\n const { id, status, created, lastUpdated, _links } = res;\n this.id = id;\n this.status = status;\n this.created = created;\n this.lastUpdated = lastUpdated;\n if (this.status == PasswordStatus.NOT_ENROLLED) {\n this.enroll = async (payload) => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'enroll',\n links: _links,\n }, PasswordTransaction);\n return await fn(payload);\n };\n }\n else {\n this.get = async () => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'get',\n links: _links,\n }, PasswordTransaction);\n return await fn();\n };\n this.update = async (payload) => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'put',\n links: _links,\n }, PasswordTransaction);\n return await fn(payload);\n };\n this.delete = async () => {\n const fn = generateRequestFnFromLinks({\n oktaAuth,\n accessToken,\n methodName: 'delete',\n links: _links\n });\n return await fn();\n };\n }\n }\n}\n\nexport { PasswordTransaction as default };\n//# sourceMappingURL=PasswordTransaction.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { sendRequest } from './request.js';\nimport PasswordTransaction from './transactions/PasswordTransaction.js';\n\nconst getPassword = async (oktaAuth, options) => {\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/password`,\n method: 'GET',\n accessToken: options === null || options === void 0 ? void 0 : options.accessToken,\n }, PasswordTransaction);\n return transaction;\n};\nconst enrollPassword = async (oktaAuth, options) => {\n const { accessToken, payload } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/password',\n method: 'POST',\n payload,\n accessToken,\n }, PasswordTransaction);\n return transaction;\n};\nconst updatePassword = async (oktaAuth, options) => {\n const { accessToken, payload } = options;\n const transaction = await sendRequest(oktaAuth, {\n url: '/idp/myaccount/password',\n method: 'PUT',\n payload,\n accessToken,\n }, PasswordTransaction);\n return transaction;\n};\nconst deletePassword = async (oktaAuth, options) => {\n const transaction = await sendRequest(oktaAuth, {\n url: `/idp/myaccount/password`,\n method: 'DELETE',\n accessToken: options === null || options === void 0 ? void 0 : options.accessToken,\n });\n return transaction;\n};\n\nexport { deletePassword, enrollPassword, getPassword, updatePassword };\n//# sourceMappingURL=passwordApi.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport * as api from './api.js';\n\nfunction mixinMyAccount(Base) {\n return class OktaAuthMyAccount extends Base {\n constructor(...args) {\n super(...args);\n this.myaccount = Object.entries(api)\n .filter(([name]) => name !== 'default')\n .reduce((acc, [name, fn]) => {\n acc[name] = fn.bind(null, this);\n return acc;\n }, {});\n }\n };\n}\n\nexport { mixinMyAccount };\n//# sourceMappingURL=mixin.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nfunction addStateToken(res, options) {\n var builtArgs = {};\n Object.assign(builtArgs, options);\n if (!builtArgs.stateToken && res.stateToken) {\n builtArgs.stateToken = res.stateToken;\n }\n return builtArgs;\n}\nfunction getStateToken(res) {\n return addStateToken(res);\n}\n\nexport { addStateToken, getStateToken };\n//# sourceMappingURL=stateToken.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthSdkError from '../errors/AuthSdkError.js';\nimport '../errors/WWWAuthError.js';\nimport { post } from '../http/request.js';\nimport { STATE_TOKEN_KEY_NAME } from '../constants.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport { addStateToken } from './util/stateToken.js';\n\nfunction transactionStatus(sdk, args) {\n args = addStateToken(sdk, args);\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn', args, { withCredentials: true });\n}\nfunction resumeTransaction(sdk, tx, args) {\n if (!args || !args.stateToken) {\n var stateToken = getSavedStateToken(sdk);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n }\n else {\n return Promise.reject(new AuthSdkError('No transaction to resume'));\n }\n }\n return transactionStatus(sdk, args)\n .then(function (res) {\n return tx.createTransaction(res);\n });\n}\nfunction introspectAuthn(sdk, tx, args) {\n if (!args || !args.stateToken) {\n var stateToken = getSavedStateToken(sdk);\n if (stateToken) {\n args = {\n stateToken: stateToken\n };\n }\n else {\n return Promise.reject(new AuthSdkError('No transaction to evaluate'));\n }\n }\n return transactionStep(sdk, args)\n .then(function (res) {\n return tx.createTransaction(res);\n });\n}\nfunction transactionStep(sdk, args) {\n args = addStateToken(sdk, args);\n return post(sdk, sdk.getIssuerOrigin() + '/api/v1/authn/introspect', args, { withCredentials: true });\n}\nfunction transactionExists(sdk) {\n return !!getSavedStateToken(sdk);\n}\nfunction postToTransaction(sdk, tx, url, args, options) {\n options = Object.assign({ withCredentials: true }, options);\n return post(sdk, url, args, options)\n .then(function (res) {\n return tx.createTransaction(res);\n });\n}\nfunction getSavedStateToken(sdk) {\n const storage = sdk.options.storageUtil.storage;\n return storage.get(STATE_TOKEN_KEY_NAME);\n}\n\nexport { getSavedStateToken, introspectAuthn, postToTransaction, resumeTransaction, transactionExists, transactionStatus, transactionStep };\n//# sourceMappingURL=api.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { find, omit } from '../../util/object.js';\nimport { toQueryString } from '../../util/url.js';\nimport AuthSdkError from '../../errors/AuthSdkError.js';\nimport '../../errors/WWWAuthError.js';\nimport { get } from '../../http/request.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport { postToTransaction } from '../api.js';\nimport { addStateToken } from './stateToken.js';\n\nfunction link2fn(sdk, tx, res, obj, link, ref) {\n if (Array.isArray(link)) {\n return function (name, opts) {\n if (!name) {\n throw new AuthSdkError('Must provide a link name');\n }\n var lk = find(link, { name: name });\n if (!lk) {\n throw new AuthSdkError('No link found for that name');\n }\n return link2fn(sdk, tx, res, obj, lk, ref)(opts);\n };\n }\n else if (link.hints &&\n link.hints.allow &&\n link.hints.allow.length === 1) {\n var method = link.hints.allow[0];\n switch (method) {\n case 'GET':\n return function () {\n return get(sdk, link.href, { withCredentials: true });\n };\n case 'POST':\n return function (opts) {\n if (ref && ref.isPolling) {\n ref.isPolling = false;\n }\n var data = addStateToken(res, opts);\n if (res.status === 'MFA_ENROLL' || res.status === 'FACTOR_ENROLL') {\n Object.assign(data, {\n factorType: obj.factorType,\n provider: obj.provider\n });\n }\n var params = {};\n var autoPush = data.autoPush;\n if (autoPush !== undefined) {\n if (typeof autoPush === 'function') {\n try {\n params.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== null) {\n params.autoPush = !!autoPush;\n }\n data = omit(data, 'autoPush');\n }\n var rememberDevice = data.rememberDevice;\n if (rememberDevice !== undefined) {\n if (typeof rememberDevice === 'function') {\n try {\n params.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== null) {\n params.rememberDevice = !!rememberDevice;\n }\n data = omit(data, 'rememberDevice');\n }\n else if (data.profile &&\n data.profile.updatePhone !== undefined) {\n if (data.profile.updatePhone) {\n params.updatePhone = true;\n }\n data.profile = omit(data.profile, 'updatePhone');\n }\n var href = link.href + toQueryString(params);\n return postToTransaction(sdk, tx, href, data);\n };\n }\n }\n}\n\nexport { link2fn };\n//# sourceMappingURL=link2fn.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport CustomError from './CustomError.js';\n\nclass AuthPollStopError extends CustomError {\n constructor() {\n const message = 'The poll was stopped by the sdk';\n super(message);\n }\n}\n\nexport { AuthPollStopError as default };\n//# sourceMappingURL=AuthPollStopError.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport AuthPollStopError from '../../errors/AuthPollStopError.js';\nimport AuthSdkError from '../../errors/AuthSdkError.js';\nimport '../../errors/WWWAuthError.js';\nimport { delay } from '../../util/misc.js';\nimport { getLink } from '../../util/object.js';\nimport { isNumber, isObject } from '../../util/types.js';\nimport { toQueryString } from '../../util/url.js';\nimport { post } from '../../http/request.js';\nimport { DEFAULT_POLLING_DELAY } from '../../constants.js';\nimport 'tiny-emitter';\nimport 'js-cookie';\nimport 'cross-fetch';\nimport { getStateToken } from './stateToken.js';\n\nfunction getPollFn(sdk, res, ref) {\n return function (options) {\n var delay$1;\n var rememberDevice;\n var autoPush;\n var transactionCallBack;\n if (isNumber(options)) {\n delay$1 = options;\n }\n else if (isObject(options)) {\n options = options;\n delay$1 = options.delay;\n rememberDevice = options.rememberDevice;\n autoPush = options.autoPush;\n transactionCallBack = options.transactionCallBack;\n }\n if (!delay$1 && delay$1 !== 0) {\n delay$1 = DEFAULT_POLLING_DELAY;\n }\n var pollLink = getLink(res, 'next', 'poll');\n function pollFn() {\n var opts = {};\n if (typeof autoPush === 'function') {\n try {\n opts.autoPush = !!autoPush();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('AutoPush resulted in an error.'));\n }\n }\n else if (autoPush !== undefined && autoPush !== null) {\n opts.autoPush = !!autoPush;\n }\n if (typeof rememberDevice === 'function') {\n try {\n opts.rememberDevice = !!rememberDevice();\n }\n catch (e) {\n return Promise.reject(new AuthSdkError('RememberDevice resulted in an error.'));\n }\n }\n else if (rememberDevice !== undefined && rememberDevice !== null) {\n opts.rememberDevice = !!rememberDevice;\n }\n var href = pollLink.href + toQueryString(opts);\n return post(sdk, href, getStateToken(res), {\n saveAuthnState: false,\n withCredentials: true\n });\n }\n ref.isPolling = true;\n var retryCount = 0;\n var recursivePoll = function () {\n if (!ref.isPolling) {\n return Promise.reject(new AuthPollStopError());\n }\n return pollFn()\n .then(function (pollRes) {\n retryCount = 0;\n if (pollRes.factorResult && pollRes.factorResult === 'WAITING') {\n if (!ref.isPolling) {\n throw new AuthPollStopError();\n }\n if (typeof transactionCallBack === 'function') {\n transactionCallBack(pollRes);\n }\n return delay(delay$1).then(recursivePoll);\n }\n else {\n ref.isPolling = false;\n return sdk.tx.createTransaction(pollRes);\n }\n })\n .catch(function (err) {\n if (err.xhr &&\n (err.xhr.status === 0 || err.xhr.status === 429) &&\n retryCount <= 4) {\n var delayLength = Math.pow(2, retryCount) * 1000;\n retryCount++;\n return delay(delayLength)\n .then(recursivePoll);\n }\n throw err;\n });\n };\n return recursivePoll()\n .catch(function (err) {\n ref.isPolling = false;\n throw err;\n });\n };\n}\n\nexport { getPollFn };\n//# sourceMappingURL=poll.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { link2fn } from './link2fn.js';\nimport { getPollFn } from './poll.js';\n\nfunction links2fns(sdk, tx, res, obj, ref) {\n var fns = {};\n for (var linkName in obj._links) {\n if (!Object.prototype.hasOwnProperty.call(obj._links, linkName)) {\n continue;\n }\n var link = obj._links[linkName];\n if (linkName === 'next') {\n linkName = link.name;\n }\n if (link.type) {\n fns[linkName] = link;\n continue;\n }\n switch (linkName) {\n case 'poll':\n fns.poll = getPollFn(sdk, res, ref);\n break;\n default:\n var fn = link2fn(sdk, tx, res, obj, link, ref);\n if (fn) {\n fns[linkName] = fn;\n }\n }\n }\n return fns;\n}\n\nexport { links2fns };\n//# sourceMappingURL=links2fns.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { clone, omit } from '../../util/object.js';\nimport { isObject } from '../../util/types.js';\nimport { links2fns } from './links2fns.js';\n\nfunction flattenEmbedded(sdk, tx, res, obj, ref) {\n obj = obj || res;\n obj = clone(obj);\n if (Array.isArray(obj)) {\n var objArr = [];\n for (var o = 0, ol = obj.length; o < ol; o++) {\n objArr.push(flattenEmbedded(sdk, tx, res, obj[o], ref));\n }\n return objArr;\n }\n var embedded = obj._embedded || {};\n for (var key in embedded) {\n if (!Object.prototype.hasOwnProperty.call(embedded, key)) {\n continue;\n }\n if (isObject(embedded[key]) || Array.isArray(embedded[key])) {\n embedded[key] = flattenEmbedded(sdk, tx, res, embedded[key], ref);\n }\n }\n var fns = links2fns(sdk, tx, res, obj, ref);\n Object.assign(embedded, fns);\n obj = omit(obj, '_embedded', '_links');\n Object.assign(obj, embedded);\n return obj;\n}\n\nexport { flattenEmbedded };\n//# sourceMappingURL=flattenEmbedded.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { flattenEmbedded } from './util/flattenEmbedded.js';\n\nclass AuthnTransactionImpl {\n constructor(sdk, tx, res = null) {\n this.data = undefined;\n this.status = undefined;\n if (res) {\n this.data = res;\n Object.assign(this, flattenEmbedded(sdk, tx, res, res, {}));\n delete this.stateToken;\n if (res.status === 'RECOVERY_CHALLENGE' && !res._links) {\n this.cancel = function () {\n return Promise.resolve(tx.createTransaction());\n };\n }\n }\n }\n}\n\nexport { AuthnTransactionImpl };\n//# sourceMappingURL=AuthnTransactionImpl.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { transactionStatus, resumeTransaction, transactionExists, introspectAuthn, postToTransaction } from './api.js';\nimport { AuthnTransactionImpl } from './AuthnTransactionImpl.js';\n\nfunction createAuthnTransactionAPI(sdk) {\n const tx = {\n status: transactionStatus.bind(null, sdk),\n resume(args) {\n return resumeTransaction(sdk, tx, args);\n },\n exists: transactionExists.bind(null, sdk),\n introspect(args) {\n return introspectAuthn(sdk, tx, args);\n },\n createTransaction: (res) => {\n return new AuthnTransactionImpl(sdk, tx, res);\n },\n postToTransaction: (url, args, options) => {\n return postToTransaction(sdk, tx, url, args, options);\n }\n };\n return tx;\n}\n\nexport { createAuthnTransactionAPI };\n//# sourceMappingURL=factory.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { clone } from '../util/object.js';\nimport fingerprint from '../browser/fingerprint.js';\nimport { createAuthnTransactionAPI } from './factory.js';\n\nfunction mixinAuthn(Base) {\n return class OktaAuthTx extends Base {\n constructor(...args) {\n super(...args);\n this.authn = this.tx = createAuthnTransactionAPI(this);\n this.fingerprint = fingerprint.bind(null, this);\n }\n async signIn(opts) {\n opts = clone(opts || {});\n const _postToTransaction = (options) => {\n delete opts.sendFingerprint;\n return this.tx.postToTransaction('/api/v1/authn', opts, options);\n };\n if (!opts.sendFingerprint) {\n return _postToTransaction();\n }\n return this.fingerprint()\n .then(function (fingerprint) {\n return _postToTransaction({\n headers: {\n 'X-Device-Fingerprint': fingerprint\n }\n });\n });\n }\n async signInWithCredentials(opts) {\n return this.signIn(opts);\n }\n forgotPassword(opts) {\n return this.tx.postToTransaction('/api/v1/authn/recovery/password', opts);\n }\n unlockAccount(opts) {\n return this.tx.postToTransaction('/api/v1/authn/recovery/unlock', opts);\n }\n verifyRecoveryToken(opts) {\n return this.tx.postToTransaction('/api/v1/authn/recovery/token', opts);\n }\n };\n}\n\nexport { mixinAuthn };\n//# sourceMappingURL=mixin.js.map\n","/*!\n * Copyright (c) 2015-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * \n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nexport { authenticate } from '../../idx/authenticate.js';\nexport { cancel } from '../../idx/cancel.js';\nexport { handleEmailVerifyCallback, isEmailVerifyCallback, isEmailVerifyCallbackError, parseEmailVerifyCallback } from '../../idx/emailVerify.js';\nexport { interact } from '../../idx/interact.js';\nexport { introspect } from '../../idx/introspect.js';\nexport { poll } from '../../idx/poll.js';\nexport { canProceed, proceed } from '../../idx/proceed.js';\nexport { register } from '../../idx/register.js';\nexport { recoverPassword } from '../../idx/recoverPassword.js';\nexport { handleInteractionCodeRedirect } from '../../idx/handleInteractionCodeRedirect.js';\nexport { startTransaction } from '../../idx/startTransaction.js';\nexport { unlockAccount } from '../../idx/unlockAccount.js';\nexport { clearTransactionMeta, createTransactionMeta, getSavedTransactionMeta, getTransactionMeta, hasSavedInteractionHandle, isTransactionMetaValid, isTransactionMetaValidForFlow, isTransactionMetaValidForOptions, saveTransactionMeta } from '../../idx/transactionMeta.js';\nexport { createIdxAPI } from '../../idx/factory/api.js';\nimport { createOktaAuthIdx } from '../../idx/factory/OktaAuthIdx.js';\nexport { createOktaAuthIdx } from '../../idx/factory/OktaAuthIdx.js';\nexport { createMinimalOktaAuthIdx } from '../../idx/factory/MinimalOktaAuthIdx.js';\nexport { mixinIdx } from '../../idx/mixin.js';\nimport { createIdxOptionsConstructor } from '../../idx/options.js';\nexport { createIdxOptionsConstructor } from '../../idx/options.js';\nimport { createIdxStorageManager } from '../../idx/storage.js';\nexport { createIdxStorageManager } from '../../idx/storage.js';\nexport { AuthenticatorKey, IdxFeature, IdxStatus, isAuthenticator } from '../../idx/types/api.js';\nimport { createIdxTransactionManager } from '../../idx/IdxTransactionManager.js';\nexport { createIdxTransactionManager } from '../../idx/IdxTransactionManager.js';\nexport { getProfile, getProfileSchema, updateProfile } from '../../myaccount/profileApi.js';\nexport { addEmail, deleteEmail, getEmail, getEmailChallenge, getEmails, sendEmailChallenge, verifyEmailChallenge } from '../../myaccount/emailApi.js';\nexport { addPhone, deletePhone, getPhone, getPhones, sendPhoneChallenge, verifyPhoneChallenge } from '../../myaccount/phoneApi.js';\nexport { deletePassword, enrollPassword, getPassword, updatePassword } from '../../myaccount/passwordApi.js';\nexport { createOktaAuthMyAccount } from '../../myaccount/factory.js';\nimport { mixinMyAccount } from '../../myaccount/mixin.js';\nexport { mixinMyAccount } from '../../myaccount/mixin.js';\nexport { EmailRole, PasswordStatus, Status } from '../../myaccount/types.js';\nexport { createAuthnTransactionAPI } from '../../authn/factory.js';\nimport { mixinAuthn } from '../../authn/mixin.js';\nexport { mixinAuthn } from '../../authn/mixin.js';\nimport * as index from '../../crypto/index.js';\nexport { index as crypto };\nexport { createOktaAuthBase } from '../../base/factory.js';\nexport { createBaseOptionsConstructor } from '../../base/options.js';\nexport { ACCESS_TOKEN_STORAGE_KEY, CACHE_STORAGE_NAME, DEFAULT_CACHE_DURATION, DEFAULT_CODE_CHALLENGE_METHOD, DEFAULT_MAX_CLOCK_SKEW, DEFAULT_POLLING_DELAY, IDX_API_VERSION, IDX_RESPONSE_STORAGE_NAME, ID_TOKEN_STORAGE_KEY, MAX_VERIFIER_LENGTH, MIN_VERIFIER_LENGTH, ORIGINAL_URI_STORAGE_NAME, PKCE_STORAGE_NAME, REFERRER_PATH_STORAGE_KEY, REFRESH_TOKEN_STORAGE_KEY, SHARED_TRANSACTION_STORAGE_NAME, STATE_TOKEN_KEY_NAME, TOKEN_STORAGE_NAME, TRANSACTION_STORAGE_NAME } from '../../constants.js';\nexport { AuthStateManager, INITIAL_AUTH_STATE } from '../../core/AuthStateManager.js';\nexport { createCoreOptionsConstructor } from '../../core/options.js';\nexport { createOktaAuthCore } from '../../core/factory.js';\nexport { mixinCore } from '../../core/mixin.js';\nexport { createCoreStorageManager } from '../../core/storage.js';\nexport { ServiceManager } from '../../core/ServiceManager/browser.js';\nexport { isAuthApiError, isOAuthError, isWWWAuthError } from '../../errors/index.js';\nexport { setRequestHeader } from '../../http/headers.js';\nexport { OktaUserAgent } from '../../http/OktaUserAgent.js';\nexport { get, httpRequest, post } from '../../http/request.js';\nexport { mixinHttp } from '../../http/mixin.js';\nexport { createHttpOptionsConstructor } from '../../http/options.js';\nexport { createEndpoints, createTokenAPI } from '../../oidc/factory/api.js';\nexport { createOktaAuthOAuth } from '../../oidc/factory/OktaAuthOAuth.js';\nexport { mixinOAuth } from '../../oidc/mixin/index.js';\nexport { createOAuthStorageManager } from '../../oidc/storage.js';\nexport { buildAuthorizeParams, convertTokenParamsToOAuthParams } from '../../oidc/endpoints/authorize.js';\nexport { postRefreshToken, postToTokenEndpoint } from '../../oidc/endpoints/token.js';\nexport { getKey, getWellKnown } from '../../oidc/endpoints/well-known.js';\nexport { createOAuthOptionsConstructor } from '../../oidc/options/OAuthOptionsConstructor.js';\nexport { TokenKind, isAccessToken, isIDToken, isRefreshToken, isToken } from '../../oidc/types/Token.js';\nexport { EVENT_ADDED, EVENT_ERROR, EVENT_EXPIRED, EVENT_REMOVED, EVENT_RENEWED, EVENT_SET_STORAGE } from '../../oidc/types/TokenManager.js';\nexport { isCustomAuthTransactionMeta, isIdxTransactionMeta, isOAuthTransactionMeta, isPKCETransactionMeta, isTransactionMeta } from '../../oidc/types/Transaction.js';\nexport { TokenManager } from '../../oidc/TokenManager.js';\nexport { createTransactionManager } from '../../oidc/TransactionManager.js';\nexport { addListener, addPostMessageListener, loadFrame, loadPopup, removeListener } from '../../oidc/util/browser.js';\nexport { getDefaultTokenParams } from '../../oidc/util/defaultTokenParams.js';\nexport { getDefaultEnrollAuthenticatorParams } from '../../oidc/util/defaultEnrollAuthenticatorParams.js';\nexport { isAuthorizationCodeError, isInteractionRequiredError, isRefreshTokenInvalidError } from '../../oidc/util/errors.js';\nexport { getHashOrSearch, hasAuthorizationCode, hasErrorInUrl, hasInteractionCode, hasResponseType, hasTokensInHash, isCodeFlow, isInteractionRequired, isLoginRedirect, isRedirectUri } from '../../oidc/util/loginRedirect.js';\nexport { generateNonce, generateState, getOAuthBaseUrl, getOAuthDomain, getOAuthUrls } from '../../oidc/util/oauth.js';\nexport { createOAuthMeta } from '../../oidc/util/oauthMeta.js';\nexport { createEnrollAuthenticatorMeta } from '../../oidc/util/enrollAuthenticatorMeta.js';\nexport { default as pkce } from '../../oidc/util/pkce.js';\nexport { assertPKCESupport, preparePKCE, prepareTokenParams, validateCodeChallengeMethod } from '../../oidc/util/prepareTokenParams.js';\nexport { prepareEnrollAuthenticatorParams } from '../../oidc/util/prepareEnrollAuthenticatorParams.js';\nexport { isRefreshTokenError, isSameRefreshToken } from '../../oidc/util/refreshToken.js';\nexport { urlParamsToObject } from '../../oidc/util/urlParams.js';\nexport { validateClaims } from '../../oidc/util/validateClaims.js';\nexport { validateToken } from '../../oidc/util/validateToken.js';\nexport { decodeToken } from '../../oidc/decodeToken.js';\nexport { revokeToken } from '../../oidc/revokeToken.js';\nexport { renewToken } from '../../oidc/renewToken.js';\nexport { renewTokensWithRefresh } from '../../oidc/renewTokensWithRefresh.js';\nexport { renewTokens } from '../../oidc/renewTokens.js';\nexport { verifyToken } from '../../oidc/verifyToken.js';\nexport { getUserInfo } from '../../oidc/getUserInfo.js';\nexport { handleOAuthResponse } from '../../oidc/handleOAuthResponse.js';\nexport { exchangeCodeForTokens } from '../../oidc/exchangeCodeForTokens.js';\nexport { getToken } from '../../oidc/getToken.js';\nexport { getWithoutPrompt } from '../../oidc/getWithoutPrompt.js';\nexport { getWithPopup } from '../../oidc/getWithPopup.js';\nexport { getWithRedirect } from '../../oidc/getWithRedirect.js';\nexport { parseFromUrl } from '../../oidc/parseFromUrl.js';\nexport { oidcIntrospect } from '../../oidc/introspect.js';\nexport { closeSession, getSession, refreshSession, sessionExists, setCookieAndRedirect } from '../../session/api.js';\nexport { createSessionApi } from '../../session/factory.js';\nexport { mixinSession } from '../../session/mixin.js';\nexport { createStorageOptionsConstructor } from '../../storage/options/StorageOptionsConstructor.js';\nexport { BaseStorageManager, logServerSideMemoryStorageWarning } from '../../storage/BaseStorageManager.js';\nexport { mixinStorage } from '../../storage/mixin.js';\nexport { SavedObject } from '../../storage/SavedObject.js';\nexport { deprecate, deprecateWrap, getConsole, getNativeConsole, warn } from '../../util/console.js';\nexport { delay, genRandomString, isoToUTCString, split2 } from '../../util/misc.js';\nexport { bind, clone, extend, find, getLink, omit, removeNils } from '../../util/object.js';\nexport { PromiseQueue } from '../../util/PromiseQueue.js';\nexport { isFunction, isNumber, isObject, isPromise, isString } from '../../util/types.js';\nexport { isAbsoluteUrl, removeTrailingSlash, toAbsoluteUrl, toQueryString, toRelativeUrl } from '../../util/url.js';\nexport { default as AuthApiError } from '../../errors/AuthApiError.js';\nexport { default as AuthPollStopError } from '../../errors/AuthPollStopError.js';\nexport { default as AuthSdkError } from '../../errors/AuthSdkError.js';\nexport { default as OAuthError } from '../../errors/OAuthError.js';\nexport { default as WWWAuthError } from '../../errors/WWWAuthError.js';\n\nconst OptionsConstructor = createIdxOptionsConstructor();\nconst StorageManager = createIdxStorageManager();\nconst TransactionManager = createIdxTransactionManager();\nconst WithIdx = createOktaAuthIdx(StorageManager, OptionsConstructor, TransactionManager);\nconst WithMyAccount = mixinMyAccount(WithIdx);\nconst WithAuthn = mixinAuthn(WithMyAccount);\nclass OktaAuth extends WithAuthn {\n constructor(options) {\n super(options);\n }\n}\n\nexport { OktaAuth, OktaAuth as default };\n//# sourceMappingURL=default.js.map\n","// OktaAuthenticator\n// Provides functionality for Okta authentication\n\n// Constants ----\nconst JWT_TOKEN_KEY = 'access_token';\nconst AUTHENTICATOR_KEY = 'Authenticator';\nconst NAVIGATING_TO_KEY = 'navigatingTo'\nconst I_TOKEN = 'i-token';\n\n// Imports ----\nimport Authenticator from '../../base/classes/Authenticator';\nimport { OktaAuth } from '@okta/okta-auth-js'\n\n//import * as msal from '@Okta/msal-browser';\nimport VueCookies from 'vue-cookies';\nimport useGlobalEvents from '../../base/services/global-events';\nconst { emitGlobal } = useGlobalEvents();\n\nexport default class OktaAuthenticator extends Authenticator {\n\n // Constructor\n constructor(site, name, oktaConfig, router) {\n super(site);\n\n this.site = site;\n this.name = name;\n this.oktaConfig = oktaConfig;\n this.oktaClient = new OktaAuth(this.oktaConfig.oidc);\n\n this.router = router;\n this.configureOkta();\n }\n\n configureOkta() {\n this.signIn();\n }\n\n signIn() {\n if (this.oktaClient.isLoginRedirect()) {\n this.oktaClient.token.parseFromUrl()\n .then(data => {\n const { accessToken } = data.tokens;\n this.#storeToken(accessToken.accessToken);\n this.#storeAuthenticator(\"JwtAuthenticator\");\n VueCookies.set('current_activity', 'timer')\n\n this.site.user.isAuthenticated = true;\n this.site.refreshCurrentUser(true).then(() => {\n\n //Check if logged in user has the user account in eStore\n var userId = this.site.user.userId;\n if (userId !== '' && userId !== undefined && userId !== null) {\n emitGlobal(this.site.EventIDs.AUTH_SIGNED_IN);\n //For Okta, read the navigatingTo from localStorage\n this.site.navigatingTo = this.getNavigatingTo();\n // If navigatingTo is set, redirect there.\n if (this.site.navigatingTo !== null) {\n this.router.push(this.site.navigatingTo.fullPath);\n this.site.navigatingTo = null;\n this.removeNavigatingTo();\n }\n else\n this.router.push({ name: 'Home' });\n }\n else\n this.router.push({ name: 'SignIn' });\n }).catch(error => {\n this.trace(error);\n this.#removeToken();\n this.#removeAuthenticator();\n // TODO: redirect user to dedicated fallback frontend component \n this.router.push({ name: 'SignIn' });\n });\n\n });\n }\n else {\n return this.oktaClient.token.getWithRedirect({\n responseType: ['access_token']\n });\n }\n }\n\n // *** BEGIN Private Functions *******************\n\n // //*\n // // * Called to determine whether the user is currently logged in.\n // // * \n async isSignedIn() {\n const token = this.getAccessTokenFromLocalStorage();\n if (token) {\n const parsed = this.parseToken(token);\n if (parsed.exp > Date.now() / 1000)\n return true;\n }\n return false;\n }\n\n // Gets an API JWT access token for the active account.\n getAccessTokenFromLocalStorage() {\n const token = localStorage.getItem(JWT_TOKEN_KEY) || false;\n\n if (token) {\n this.trace(`Access token retrieved from localStorage - ${token.substring(0, 8)}...`);\n }\n return token;\n }\n\n // Decode the provided token.\n parseToken(token) {\n if (token.indexOf('.')) {\n const payload = token.split('.')[1];\n\n // TODO: atob() is deprecated\n return JSON.parse(atob(payload));\n }\n return false;\n }\n\n /**\n * Called for authenticated API calls to apply the appropriate header(s).\n //*/\n async getApiHeaders() {\n\n const headers = {};\n const impersonatedUserToken = sessionStorage.getItem(I_TOKEN);\n if (impersonatedUserToken) {\n headers[I_TOKEN] = impersonatedUserToken;\n }\n\n // Get access token from localStorage\n const token = this.getAccessTokenFromLocalStorage();\n\n // If User is authenticated, add header with access token\n if (this.site.user.isAuthenticated && token != false) {\n headers['Authorization'] = `Bearer ${token}`;\n headers['Authenticator'] = localStorage.getItem(\"Authenticator\");\n\n return headers;\n }\n else\n return null;\n }\n\n async getSignInRoute(/* route */) {\n return { name: 'OktaSignIn' };\n }\n\n /**\n * Called to allow the authenticator to redirect to sign out.\n */\n async getSignOutRoute() {\n return { name: 'SignIn', query: { signout: 'true' } };\n }\n\n async signOut() {\n this.trace(\"Logout, removing token from localStorage\");\n this.#removeToken();\n this.#removeAuthenticator();\n }\n\n // Adds the provided token to localStorage.\n #storeToken(token) {\n localStorage.setItem(JWT_TOKEN_KEY, token);\n }\n\n // Adds authenticator token to localStorage.\n #storeAuthenticator(authenticatorName) {\n localStorage.setItem(AUTHENTICATOR_KEY, authenticatorName);\n }\n\n // Adds navigatingTo path to localStorage\n storeNavigatingTo(path) {\n if (path != null && path != 'undefined')\n localStorage.setItem(NAVIGATING_TO_KEY, JSON.stringify(path));\n }\n getNavigatingTo() {\n var navigatingTo = JSON.parse(localStorage.getItem(NAVIGATING_TO_KEY));\n this.removeNavigatingTo();\n return navigatingTo;\n }\n removeNavigatingTo() {\n localStorage.removeItem(NAVIGATING_TO_KEY);\n }\n\n // Removes the JWT stored in localStorage.\n #removeToken() {\n localStorage.removeItem(JWT_TOKEN_KEY);\n }\n\n // Removes authenticator stored in localStorage.\n #removeAuthenticator() {\n localStorage.removeItem(AUTHENTICATOR_KEY);\n }\n\n /**\n * delete impersonate session storage.\n */\n deleteImpersonateSession() {\n sessionStorage.removeItem(I_TOKEN);\n }\n\n // Traces a message, if enabled\n trace(message, ...args) {\n if (this.doTrace())\n console.log('[OKTA] ' + message, ...args);\n }\n\n // Returns whether tracing is enabled\n doTrace() {\n return (process.env.VUE_APP_TRACE_OKTA === 'true');\n }\n}","export default class {\n\t// Constructor\n\tconstructor(store) {\n\t\tthis.store = store;\n\t}\n\n\t/**\n\t * Get All announcements.\n\t *\n\t */\n\tasync getAllAnnouncements() {\n\t\tconst response = await this.store.api.get(`api/announcement/announcementList`);\n\n\t\tif (response.succeeded) {\n\t\t\treturn response;\n\t\t} else {\n\t\t\tthis.store.handleApiError(response);\n\t\t\treturn false;\n\t\t}\n\t}\n\n\t/**\n\t * Updates existing announcement.\n\t *\n\t */\n\tasync updateAnnouncement(id, data) {\n\t\treturn await this.store.api.put(`api/announcement/${id}`, data);\n\t}\n\n\t/**\n\t * Get announcement to edit\n\t */\n\n\tasync getAnnouncementForEdit(id) {\n\t\treturn await this.store.api.get(`api/announcement/${id}/edit`);\n\t}\n\n\t/**\n\t * Delete announcement.\n\t *\n\t */\n\n\tasync deleteAnnouncement(id) {\n\t\treturn await this.store.api.delete(`api/announcement/${id}`);\n\t}\n\n\t/**\n\t * Create announcement.\n\t *\n\t */\n\tasync createNewAnnouncement(data) {\n\t\treturn await this.store.api.post('api/announcements', {\n\t\t\tuser: { userId: this.store.user.userId },\n\t\t\tannouncement: data,\n\t\t});\n\t}\n\n\t/**\n\t * Get Announcements for the current user.\n\t *\n\t */\n\n\tasync getAnnouncementsForUser() {\n\t\treturn await this.store.api.get(`api/store/user/current/announcements`);\n\t}\n\t/**\n\t * Publish announcement\n\t *\n\t */\n\n\tasync publishAnnouncement(announcementId) {\n\t\treturn await this.store.api.put(`api/announcement/${announcementId}/publish`);\n\t}\n\n\t/**\n\t * UnPublish Announcement\n\t *\n\t */\n\n\tasync unpublishAnnouncement(announcementId) {\n\t\treturn await this.store.api.put(`api/announcement/${announcementId}/unpublish`);\n\t}\n\n\t/**\n\t * Get announcement Status Information\n\t * \n\t */\n\tannouncementBadge(status) {\n\t\tswitch (status) {\n\t\t\tcase 0:\n\t\t\t\treturn 'Draft';\n\t\t\tcase 1:\n\t\t\t\treturn 'Scheduled';\n\t\t\tcase 2:\n\t\t\t\treturn 'Active';\n\t\t\tcase 3:\n\t\t\t\treturn 'Archived';\n\t\t}\n\t}\n\n\t/**\n\t * Get announcement badge color\n\t * \n\t */\n\tannouncementBadgeClass(status) {\n\t\treturn {\n\t\t\t'badge rounded-pill': true,\n\t\t\t'bg-warning': status == 0,\n\t\t\t'bg-secondary': status == 1,\n\t\t\t'bg-success': status == 2,\n\t\t\t'bg-danger': status == 3,\n\t\t};\n\t}\n}\n","\n// AspNetAuthenticator\n// Provides functionality for local authentication via DD.Nucleus.Base.Security.AspNetCoreAuthentication.\n\n// Imports ----\nimport Authenticator from '../../base/classes/Authenticator';\nimport useApi from '../../base/services/api';\n\nconst { POST, POSTFormUrlEncoded } = useApi();\n\n\nexport default class MockAuthenticator extends Authenticator {\n\n // Constructor\n constructor(site) {\n super(site);\n }\n\n // #region Authenticator Overrides\n\n /**\n * Called to determine whether the user is currently logged in.\n * \n */\n async isSignedIn() {\n return true;\n }\n\n /**\n * Called to allow the authenticator to redirect to sign in if needed. Local authenticators should return a route, where\n * authenticators that use SSO should perform any redirect needed, preferably retaining the supplied route as an eventual\n * return destination.\n */\n async getSignInRoute(/* route */) {\n console.error('Unexpected call to getSignInRoute() for MockAuthenticator')\n }\n\n /**\n * Signs the user out by removing the stored token.\n */\n async signOut() {\n }\n\n /**\n * Called to allow the authenticator to redirect to sign out.\n */\n async getSignOutRoute() {\n return null;\n }\n\n /**\n * Called for authenticated API calls to apply the appropriate header(s).\n */\n async getApiHeaders() {\n }\n\n // #endregion\n\n\n /**\n * Called from a sign-in form to actually sign the user in.\n * @param {string} username\n * @param {string} password\n */\n async signIn(username, password) {\n const url = '/api/asp-net-auth/login';\n const httpOptions = {\n headers: { 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' }\n };\n\n try {\n this.#trace('Attempting to sign in the user');\n\n // TODO: rather than emitting success/failure, is it better to add\n // a list of messages to asp-net-auth and the authorization interface\n // to allow the consumer(s) to retrieve success/failure messages?\n const response = await POSTFormUrlEncoded(url, {\n grant_type: 'password',\n username: username,\n password: password\n }, httpOptions);\n\n if (response.access_token) {\n this.#trace('Successfully logged in the user');\n\n // Store the token in localStorage and make it available to HTTP request headers\n this.#storeToken(response.access_token);\n\n return true;\n }\n else {\n return false;\n }\n }\n catch (error) {\n console.log(\"CAUGHT EXCEPTION\");\n return false;\n }\n }\n\n /**\n * Called from various areas to determine the validity of user's requested password.\n * @param {string} username\n * @param {string} email\n * @param {string} password\n * @param {string} confirmPassword\n */\n async validatePassword(username, email, password, confirmPassword) {\n const url = '/api/asp-net-auth/account/validate-password';\n\n try {\n this.#trace('Validating password');\n\n // Pass the user/password details to the API to determine validity and report back messages\n const response = await POST(url, {\n username: username,\n email: email,\n password: password,\n confirmPassword: confirmPassword\n });\n\n return response;\n }\n catch (error) {\n console.log(\"CAUGHT EXCEPTION\");\n throw error;\n }\n }\n\n /**\n * Sends a forgot password request.\n */\n async sendForgotPassword(username) {\n // TODO: This URL may change, as well as the use of email here versus username\n const url = 'api/site/send-reset-password';\n\n try {\n this.#trace('Sending reset password request');\n\n const response = await this.site.api.post(url, { email: username });\n\n return response;\n }\n catch (error) {\n console.log(\"CAUGHT EXCEPTION\");\n throw error;\n }\n }\n\n /**\n * Changes the account password\n */\n async changePassword(oldPassword, newPassword) {\n const url = 'api/site/update-password';\n\n try {\n this.#trace('Sending update password request');\n\n const response = await this.site.api.post(url, { currentPassword: oldPassword, newPassword: newPassword });\n\n return response;\n }\n catch (error) {\n console.log(\"CAUGHT EXCEPTION\");\n throw error;\n }\n }\n\n /**\n * Validates a reset password link\n * @param {string} linkId\n */\n async validateResetPasswordLink(linkId) {\n const url = '/api/asp-net-auth/account/validate-reset-password-link';\n\n try {\n this.#trace('Sending validate reset password link request');\n const response = await this.site.api.post(url, { linkId: linkId });\n\n return response;\n }\n catch (error) {\n console.log(\"CAUGHT EXCEPTION\");\n throw error;\n }\n }\n\n /**\n * \n * @param {string} linkId\n * @param {string} newPassword\n */\n async resetPasswordFromLink(linkId, newPassword) {\n const url = '/api/site/reset-password-from-link';\n\n try {\n const response = await this.site.api.post(url, { linkId: linkId, newPassword: newPassword });\n\n return response;\n }\n catch (error) {\n console.log(\"CAUGHT EXCEPTION\");\n throw error;\n }\n }\n\n /**\n * \n * @param {string} linkId\n * @param {string} newPassword\n */\n async setPasswordFromLink(linkId, newPassword) {\n const url = '/api/site/set-password-from-link';\n\n try {\n const response = await this.site.api.post(url, { linkId: linkId, newPassword: newPassword });\n\n return response;\n }\n catch (error) {\n console.log(\"CAUGHT EXCEPTION\");\n throw error;\n }\n }\n\n /**\n * Updates user name and email\n * TODO: Keep this?\n */\n async updateInfo(username, email) {\n var response = await this.site.api.post('api/user/current', { username: username, email: email });\n\n return response.succeeded;\n }\n\n\n // #region Private Functions\n\n // Gets an API JWT access token for the active account.\n #getAccessToken() {\n const token = localStorage.getItem(JWT_TOKEN_KEY) || false;\n\n if (token) {\n this.#trace(`Access token retrieved from localStorage - ${token.substring(0, 8)}...`);\n }\n\n return token;\n }\n\n // Decode the provided token.\n #parseToken(token) {\n if (token.indexOf('.')) {\n const payload = token.split('.')[1];\n\n // TODO: atob() is deprecated\n return JSON.parse(atob(payload));\n }\n\n return false;\n }\n\n // Removes the JWT stored in localStorage.\n #removeToken() {\n localStorage.removeItem(JWT_TOKEN_KEY);\n }\n\n // Adds the provided token to localStorage.\n #storeToken(token) {\n localStorage.setItem(JWT_TOKEN_KEY, token);\n }\n\n // Returns whether tracing is enabled\n #doTrace() {\n return (process.env.VUE_APP_TRACE_ASP_NET_AUTH === 'true');\n }\n\n // Traces a message, if enabled.\n #trace(message, ...args) {\n if (this.#doTrace())\n console.log('[ASP.NET AUTH] ' + message, ...args);\n }\n\n // #endregion\n}","export default class {\n\t// Constructor\n\tconstructor(store) {\n\t\tthis.store = store;\n\t}\n\n\t/**\n\t * Approve Order.\n\t *\n\t */\n\tasync approveOrder(orderId, data) {\n\t\treturn await this.store.api.post(`api/store/order/approve/${orderId}`, data);\n\t}\n\n\t/**\n\t * Reject Order.\n\t *\n\t */\n\tasync rejectOrder(orderId, data) {\n\t\treturn await this.store.api.post(`api/store/order/reject/${orderId}`, data);\n\t}\n\n\t/**\n\t * Get Acitivity of particular Order.\n\t *\n\t */\n\tasync getActiveOrders(payload) {\n\t\treturn await this.store.api.post('/api/search/audit-events/row', payload);\n\t}\n}\n","\n\n\n\n\n","import script from \"./OmniSearch.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./OmniSearch.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./OmniSearch.vue?vue&type=style&index=0&id=424fe492&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Store/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-424fe492\"]])\n\nexport default __exports__","\n\n\n\n\n","import script from \"./GeneralModal.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./GeneralModal.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./GeneralModal.vue?vue&type=style&index=0&id=6599bb34&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Store/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6599bb34\"]])\n\nexport default __exports__","\n\n\n\n","import script from \"./ImageLightbox.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ImageLightbox.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ImageLightbox.vue?vue&type=style&index=0&id=2ccc15da&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Store/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2ccc15da\"]])\n\nexport default __exports__","import script from \"./PageFooterContainer.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./PageFooterContainer.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./PageFooterContainer.vue?vue&type=style&index=0&id=20d8a67e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./PageHeaderContainer.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./PageHeaderContainer.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./PageHeaderContainer.vue?vue&type=style&index=0&id=714c2de7&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./AddressTile.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./AddressTile.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./AddressTile.vue?vue&type=style&index=0&id=438b24a7&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./CartItemQty.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./CartItemQty.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./CartItemQty.vue?vue&type=style&index=0&id=2f142dc6&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./EditMarketingContact.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./EditMarketingContact.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./EditMarketingContact.vue?vue&type=style&index=0&id=53157fee&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./EditShippingAddress.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./EditShippingAddress.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./EditShippingAddress.vue?vue&type=style&index=0&id=68951dda&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./FavoriteIcon.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./FavoriteIcon.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./FavoriteIcon.vue?vue&type=style&index=0&id=6e3d391e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import script from \"./ItemQty.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ItemQty.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ItemQty.vue?vue&type=style&index=0&id=5a4af22c&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./OrderLinkItem.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./OrderLinkItem.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./OrderLinkItem.vue?vue&type=style&index=0&id=28e068f6&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ProductAddToCartQty.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ProductAddToCartQty.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ProductAddToCartQty.vue?vue&type=style&index=0&id=4bc75722&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./ProductFavoriteIcon.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ProductFavoriteIcon.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ProductFavoriteIcon.vue?vue&type=style&index=0&id=6a318a4e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ProductImageGallery.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ProductImageGallery.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ProductImageGallery.vue?vue&type=style&index=0&id=74f3f340&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ProductLinkItem.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ProductLinkItem.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ProductLinkItem.vue?vue&type=style&index=0&id=4c8e4d27&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ProductTags.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ProductTags.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ProductTags.vue?vue&type=style&index=0&id=46ca5ec4&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ProductThumbnail.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ProductThumbnail.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ProductThumbnail.vue?vue&type=style&index=0&id=3f2e24aa&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ShipMethod.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ShipMethod.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ShipMethod.vue?vue&type=style&index=0&id=56cb28d6&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./ShipMethodSelector.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ShipMethodSelector.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ShipMethodSelector.vue?vue&type=style&index=0&id=453992b2&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n","import script from \"./UomLabel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./UomLabel.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./UomLabel.vue?vue&type=style&index=0&id=5d08d0ba&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./CompanionItemTile.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./CompanionItemTile.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./CompanionItemTile.vue?vue&type=style&index=0&id=667c095e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n// Cart\n// Represents a cart. This is created as a child in the NucleusStore class to provide services throughout the store.\n\n/* TODO: Possibly, we have added the method digitalProductsInCart() for safeco but could be moved over to Nucleus Base \n * if needed for other clients. The method that looks through the cart items to see if it only contains digital products\n * this method is called in loadCart() and addProduct() it can also be called ondemand from the front end.\n * It also uses the DeliveryType types constant, this.onlyContainsDigitalProducts variables is exposed in the cart service\n * to be consumed by the front end in safeco it is used to skip the shipping address / method step on checkout as well as hiding\n * those components on order review and order confimration.\n*/\n\n// Constants ----\nconst ShipToMode = {\n /// Indicates a normal order with a single contact and list. That contact can be a saved contact address for the user, or an\n /// ad hoc address to be used (and possibly saved to the user's address list).\n SHIP_TO_USER: 0,\n /// Indicates that when placed, the order will be shipped to a single marketing contact. This single contact is contained in a list\n /// named for this mode.\n SHIP_TO_CONTACT: 1,\n /// Indicates that when placed, the order will be shipped to multiple marketing contacts. These contacts are in any lists that are not\n /// one of the standard names for other modes.\n SHIP_TO_CONTACTS: 2,\n /// Indicates that the list is used to provide address/contact data for one or more items in the order; for exmaple,\n /// a mailing list to accompany an order of a mailed piece.\n DISTRIBUTION_LIST: 3\n\n}\n\nexport const DeliveryType = {\n /// The none delivery type could be used for subscriptions or services (ie. hair appt, or other types of bookings)\n NONE: 0,\n /// The physical delivery type means it is something that will be shipped out by us or a fulfillment vendor.\n PHYSICAL: 1,\n /// A digital delivery type could be something that a user downloads after checkout (paid or not) or\n /// in the case of safeco a mailing which doesnt require shipping address at checkout.\n DIGITAL: 2,\n // Personalised\n PERSONALIZED: 3\n}\n\n// Imports ----\nimport { reactive, ref } from 'vue';\nimport useGlobalEvents from '../../base/services/global-events';\n\nconst { emitGlobal, onGlobal } = useGlobalEvents();\n\n// TODO: Move events to base site\n\n// Exports ----\nexport const CartEvent = {\n CART_LOADED: 'CART_LOADED',\n CART_UPDATED: 'CART_UPDATED'\n};\n\nexport default class {\n #current;\n\n // Constructor\n constructor(store) {\n // This will typically be a subclass of NucleusStore\n this.store = store;\n\n this.id = null;\n this.#current = reactive({ cart: this.#getBlankCart(), order: { loaded: false }, orders: { loaded: false } });\n\n this.#setConstants();\n\n this.saveCustomAddress = false;\n this.saveDefaultAddress = false;\n\n // This exposes if we only have digital products in the cart service, this can be used to skip the \n // Shipping steps during check out, this doesnt account requiring a ship address id or ship method id though \n this.onlyContainsDigitalProducts = false;\n\n this.isShippingRequired = ref(false);\n\n store.onSignedIn(() => {\n this.loadCart();\n })\n }\n\n\n // *** BEGIN Getters & Setters *******************\n\n /**\n * Gets the current cart\n */\n get current() {\n return this.#current.cart;\n }\n\n /**\n * Gets the order that has just been placed.\n */\n get order() {\n return this.#current.order;\n }\n\n\n /**\n * Gets the orders for multi ship that has just been placed.\n */\n get orders() {\n return this.#current.orders;\n }\n\n // *** END Getters & Setters *******************\n\n\n\n // *** BEGIN Public Methods *******************\n\n /**\n * Subscribes to the event when the cart is loaded.\n * @param {any} func - Handler for when the cart is loaded.\n */\n onCartLoaded(func) {\n onGlobal(CartEvent.CART_LOADED, func);\n }\n\n /**\n * Subscribes to the event when the cart is updated; for example, after an operation such as adding an item.\n * @param {any} func - Handler for when the cart is updated.\n */\n onCartUpdated(func) {\n onGlobal(CartEvent.CART_UPDATED, func);\n }\n\n /**\n * Loads the full detail of a cart for the current user\n */\n async loadCart(id) {\n this.#current.cart.updating = true;\n\n // TODO: If we have a cart ID, use that\n let response;\n if (id)\n response = await this.store.api.get('api/store/cart/' + id);\n else\n response = await this.store.api.get('api/store/cart/');\n\n if (response.succeeded) {\n await this.#setCart(response.model);\n }\n else {\n this.store.handleApiError(response);\n }\n\n this.#current.cart.updating = false;\n\n await emitGlobal(CartEvent.CART_LOADED, this.current);\n\n this.digitalProductsInCart();\n }\n\n /**\n * The method that looks through the cart items to see if it only contains digital products \n * this method is called in loadCart() and addProduct() it can also be called ondemand from the front end. \n */\n digitalProductsInCart() {\n let nonDigital = 0;\n\n for (let i = 0; i < this.#current.cart.items.length; i++) {\n if (this.#current.cart.items[i].product.deliveryType != DeliveryType.DIGITAL)\n nonDigital++\n }\n\n if (nonDigital > 0)\n this.onlyContainsDigitalProducts = false;\n else\n this.onlyContainsDigitalProducts = true;\n\n //Check isShipping Required\n if (this.#current.cart && this.#current.cart.items && this.#current.cart.items.length) {\n var itemsRequireShipping = this.#current.cart.items\n .filter(i => i.product && i.product.attributes && i.product.attributes.isRequireShipping);\n\n if (itemsRequireShipping && itemsRequireShipping.length > 0) {\n this.isShippingRequired = true;\n }\n }\n\n }\n\n /**\n * Adds a product to the cart with the specified quantity.\n * @param {Guid} productId - ID of the product to add\n * @param {Number} quantity - Quantity to add\n * @param {Validator} validator - A validator object to contain any messages that come back.\n */\n async addProduct(productId, itemNumber, quantity, validator = null) {\n var response = await this.store.api.post('api/store/cart/items', { productId: productId, quantity: quantity });\n\n if (response.succeeded) {\n if (validator !== null) {\n validator.addOk('Item added successfully');\n }\n\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n\n this.digitalProductsInCart();\n return true;\n }\n else {\n // TODO: More error handling here?\n if (validator !== null) validator.addMessages(response.messages);\n return false;\n }\n }\n\n /**\n * Updates the quantity for a cart item.\n * @param {Guid} itemId\n * @param {Number} quantity\n */\n async setItemQuantity(itemId, quantity) {\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/items/${itemId}`, { quantity: quantity });\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n }\n else\n return false;\n\n return true;\n }\n\n /**\n * Removes an item from the cart.\n * @param {Guid} itemId\n */\n async removeItem(itemId) {\n var response = await this.store.api.delete(`api/store/cart/${this.current.id}/items/${itemId}`);\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n\n return true;\n }\n else\n return false;\n }\n /**\n * \n * @returns Array of objects, update of quantities\n */\n createPayloadForMultiShipItemsQuantityUpdate() {\n const cart = this.store.cart;\n const orderContactItemQuantities = cart.current.shipToList\n .flatMap((address) => {\n return [...address.orderContactItemQuantities]\n });\n\n\n return {\n cartId: cart.current.id,\n selectionIsMarkedForRemoval: false,\n orderContactItemQuantities\n };\n }\n \n /**\n * Update the quantity of multi ship items\n */\n async updateMultiShipItemsQuantity() {\n const addresses = this.createPayloadForMultiShipItemsQuantityUpdate();\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/ship-to/multiple-contacts/items`, addresses);\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n }\n else {\n this.#current.cart.messages.splice(0, this.#current.cart.messages.length, ...response.messages);\n return false;\n }\n\n return true;\n }\n\n /**\n * \n * @returns Array of objects, update of quantities\n */\n createPayloadForSingleShipItemsQuantityUpdate() {\n const cart = this.store.cart;\n const shipTo = cart.current.shipToList[0];\n const cartItemsAndQuantity = shipTo.orderContactItemQuantities.map(item => ({\n cartItemId: item.cartItemId,\n quantity: item.quantity\n }));\n\n return {\n cartId: cart.current.id,\n items: cartItemsAndQuantity\n };\n }\n \n /**\n * Update the quantity of Single ship items\n */\n async updateSingleShipItemsQuantity() {\n const addresses = this.createPayloadForSingleShipItemsQuantityUpdate();\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/cart-items`, addresses);\n\n if (response.succeeded) {\n await this.#setCart(response.model);\n }\n else {\n this.#current.cart.messages.splice(0, this.#current.cart.messages.length, ...response.messages);\n return false;\n }\n\n return true;\n }\n\n /**\n * \n * @param {Array} addressIds \n * @returns Array of objects, for deletion of addresses\n */\n createPayloadForMultiShipAddressesRemove(addressIds) {\n const cart = this.store.cart;\n\n const orderContactItemQuantities = cart.current.shipToList\n .filter(address => addressIds.includes(address.id))\n .flatMap((address) => {\n return [...address.orderContactItemQuantities]\n });\n\n return {\n cartId: cart.current.id,\n selectionIsMarkedForRemoval: true,\n orderContactItemQuantities\n };\n }\n\n /**\n * Update the quantity of multi ship items\n * @param {Array} addresses\n * NOTE: right now updateMultiShipItemsQuantity and removeMultiShipADdresses are the same endpoint but \n * created independent fuction to allow for future changes\n */\n async removeMultiShipAddresses(addressIds) {\n const addresses = this.createPayloadForMultiShipAddressesRemove(addressIds);\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/ship-to/multiple-contacts/items`, addresses);\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n }\n else\n return false;\n\n return true;\n }\n\n /**\n * Sets the ship-to address to ship to one of the user's saved addresses.\n * @param {Guid} contactAddressId\n */\n async setShipToUserSavedAddress(contactAddressId) {\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/ship-to/saved-address`, { contactAddressId: contactAddressId });\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n\n return true;\n }\n else\n return false;\n }\n\n /**\n * Sets the ship-to address to ship to a custom address\n * @param {Guid} contactAddressId\n * @param {Boolean} saveAddress - Whether to save this address to the user's shipping addresses when order is placed.\n * @param {Boolean} saveDefault - Whether to save this address as the user's default address when order is placed.\n */\n async setShipToUserCustomAddress(address, saveAddress, saveDefault) {\n console.log('Saving custom address changes');\n\n const data = Object.assign( address, { isDefault: saveDefault, saveShipToAddressDuringOrderPlacement: saveAddress }); \n console.log('DATA IS', data);\n\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/ship-to/other-address`, data);\n\n console.log('Custom address response', response);\n\n this.saveCustomAddress = saveAddress;\n this.saveDefaultAddress = saveAddress ? saveDefault : false;\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n\n return true;\n }\n else\n return false;\n }\n\n /**\n * Sets the ship-to address to ship to one of the user's marketing contacts.\n * @param {Guid} contactId\n */\n async setShipToMarketingContact(contactId) {\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/ship-to/contacts`, { marketingContactId: contactId });\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n\n return true;\n }\n else\n return false;\n }\n\n\n /**\n * Sets the ship-to address to ship to one of the user's marketing contacts.\n * @param {Guid} contactId\n */\n async setShipToMultiplContacts(contactList) {\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/ship-to/multiple-contacts`, { Contacts: contactList });\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n\n return true;\n }\n else {\n this.#current.cart.messages.splice(0, this.#current.cart.messages.length, ...response.messages);\n return false;\n }\n }\n\n /**\n * Sets the cart's ship-to mode to be to multiple contacts.\n */\n async setShipToModeToMultipleContacts() {\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/ship-to/mode`, { newShipToMode: ShipToMode.SHIP_TO_CONTACTS });\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n\n return true;\n }\n else\n return false;\n }\n\n /**\n * Sets the cart's ship-to mode to be to multiple contacts.\n */\n async setShipToModeToSingleContact() {\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/ship-to/mode`, { newShipToMode: ShipToMode.SHIP_TO_CONTACT });\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n\n return true;\n }\n else\n return false;\n }\n\n async setShipToModeToShipUser() {\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/ship-to/mode`, { newShipToMode: ShipToMode.SHIP_TO_USER });\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n\n return true;\n }\n else\n return false;\n }\n\n /**\n * Sets the ship method for the cart.\n * @param {String} code\n */\n async setShipMethod(code) {\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/ship-method`, { shipMethodCode: code });\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n }\n else\n return false;\n\n return true;\n }\n\n /**\n * Sets the payment method for the cart.\n * @param {String} id\n */\n async setPaymentMethod(id) {\n\n var response = await this.store.api.put(`api/store/cart/${this.current.id}/payment-method`, { paymentMethodId: id });\n\n if (response.succeeded) {\n // Update the ID and refresh the cart\n await this.#setCart(response.model);\n }\n else\n return false;\n\n return true;\n }\n\n /**\n * Places the order, sets the current order to the returned model, and returns the response.\n * source is typically just hard coded to cart \n * isPaid is a boolean for checking to see if we are accepting a payment for the order \n * paymentProcessorId is the ID of the processor could be stripe, cybersource or paypal, etc etc \n */\n async placeOrder(source, isPaid, paymentProcessorId) {\n // Save the custom address if we're still in the right mode/selection\n if (this.saveCustomAddress && this.current.shipToMode === this.ShipToMode.ShipToUser && this.current.shipToList[0].contactAddressId === null) {\n // TODO: Save the address to the user's addresses. Make sure the shipping mode hasn't changed...?\n }\n\n var response = await this.store.api.post('api/store/orders', { cartId: this.current.id, source: source, isPaid: isPaid, paymentProcessorId: paymentProcessorId });\n\n if (response !== undefined && response.succeeded) {\n // Set the order\n if (this.current.shipToMode != this.ShipToMode.ShipToContacts) {\n await this.#setOrder(response.model); // OrderDetailModel\n return response;\n }\n else {\n\n await this.#setOrders(response.model); // OrderDetailModel\n return response;\n }\n }\n else { \n this.#current.cart.messages.splice(0, this.#current.cart.messages.length, ...response.messages);\n return response;\n }\n }\n\n /**\n * Applies the discount to the cart \n * @param {string} code - the discount code \n */\n async applyDiscount(code) {\n\n const response = await this.store.api.put(`api/store/cart/${this.current.id}/discount`, { cartId: this.current.id, discountCode: code });\n\n\n this.loadCart(this.current.id);\n return response;\n }\n\n /**\n * Removes the discount to the cart \n */\n async removeDiscount() {\n\n var response = await this.store.api.delete(`api/store/cart/${this.current.id}/discount`);\n\n\n this.loadCart();\n }\n\n /**\n * Gets the unit quantity (irrespective of UoM) currently in the cart for the given product ID\n * @param {Guid} productId - ID of the product\n */\n getQuantityInCart(productId) {\n let quantity = 0;\n\n for (let i = 0; i < this.current.items.length; i++) {\n const item = this.current.items[i];\n if (item.product.id == productId) quantity += item.quantity;\n }\n\n return quantity;\n }\n\n /**\n * Resets the client-side cart and reloads from the server.\n */\n async resetCart() {\n await this.loadCart();\n }\n\n isMultiShip() {\n console.log('isMultiShip', this.current.shipToMode, this.ShipToMode.ShipToContacts);\n return this.current.shipToMode === this.ShipToMode.ShipToContacts;\n }\n\n async overrideProductLimits(enableOverride) {\n if (enableOverride) {\n await this.store.api.post(`api/store/cart/${this.current.id}/enable-limit-override`)\n } else {\n await this.store.api.post(`api/store/cart/${this.current.id}/disable-limit-override`)\n }\n await this.loadCart(this.current.id);\n }\n\n async updateCart(cart) {\n this.#setCart(cart);\n }\n\n\n // *** END Public Methods *******************\n\n\n\n // *** BEGIN Private Methods *******************\n\n async #setCart(cart) {\n Object.assign(this.#current.cart, cart);\n\n console.log('CART: ', this.#current.cart);\n\n await emitGlobal(CartEvent.CART_UPDATED, this.current);\n }\n\n async #setOrder(order) {\n\n Object.assign(this.#current.order, order);\n\n await emitGlobal(CartEvent.ORDER_UPDATED, this.current);\n }\n\n async #setOrders(orders) {\n\n Object.assign(this.#current.orders, orders);\n\n await emitGlobal(CartEvent.ORDERS_UPDATED_FOR_MULTI_SHIP, this.current);\n\n }\n\n\n #setConstants() {\n // TODO: Devise a way to load these dynamically (?).\n this.ShipToMode = {\n ShipToUser: 'ShipToUser',\n ShipToContact: 'ShipToContact',\n ShipToContacts: 'ShipToContacts',\n DistributionList: 'DistributionList'\n };\n }\n\n #getBlankCart() {\n return { loaded: false, updating: false, items: [], unitCount: '-', itemCount: '-' };\n }\n\n async addHoldReasonNote(cartId, reasonNote) {\n return await this.store.api.post(`api/store/cart/${cartId}/add-hold-reason-note`, reasonNote);\n }\n\n // check if cart contains sunshine reportable items\n async checkIfCartContainsSunshineReportableItems(cartId) {\n return await this.store.api.post(`api/cart/${cartId}/sunshine-act-reportable`);\n }\n\n // save the doctor's name and email\n async addDoctorDetails(cartId, doctorDetails) {\n return await this.store.api.post(`api/cart/${cartId}/add-doctor-details`, doctorDetails);\n }\n\n // *** END Private Methods *******************\n}\n","\n// Orders\n// Services related to orders\nexport default class {\n\n // Constructor\n constructor(store) {\n this.store = store;\n }\n\n /**\n * Loads order detail for the specified order.\n * @param {Guid} id\n */\n async getOrder(id) {\n var response = await this.store.api.get(`/api/store/order/${id}/detail`);\n\n if (response.succeeded) {\n return response.model;\n }\n else {\n this.store.handleApiError(response);\n }\n }\n\n /**\n * Update order email\n * @param {Guid} id\n * @param {String} email\n * */\n async updateOrderEmail(id, email) {\n var response = await this.store.api.post(`site/order/${id}/send-confirmation/${email}`, {})\n if (response) {\n return true;\n }\n else {\n this.store.handleApiError(response);\n return false;\n }\n }\n\n\n /**\n * add all the valid items inthe order to user cart\n * @param {Guid} orderId\n * */\n async copyOrder(orderId) {\n const response = await this.store.api.post(`/api/store/order/copy/${orderId}/`, {})\n this.store.cart.updateCart(response.model);\n return response;\n }\n}\n","// Products\n// Services and actions related to products.\n\n// Imports ----\nimport { reactive } from 'vue';\nimport useGlobalEvents from '../../base/services/global-events';\nimport { isDefined, isDefinedAndNonNull, isUndefined } from '../../base/util';\n\nconst { onGlobal, emitGlobal } = useGlobalEvents();\n\nconst eventIDs = {\n CATEGORIES_LOADED: 'CATEGORIES_LOADED',\n};\n\nexport default class {\n #filters = {\n featured: { filterId: 'product-featured', values: [] },\n favorite: { filterId: 'product-favorites', values: [] },\n new: { filterId: 'product-new', values: [] },\n mostOrdered: { filterId: 'product-most-ordered', values: [] }\n };\n\n #limits = {}; // Cached using product ID as key\n\n // Constructor\n constructor(store) {\n // This will typically be a subclass of NucleusStore\n this.store = store;\n\n this.categories = reactive([]);\n\n store.onSignedIn(async () => {\n this.#loadCategories();\n });\n }\n\n // #region Getters & Setters ----\n\n /**\n * Gets prebuilt filters for product searches.\n */\n get filters() {\n return this.#filters;\n }\n\n // #endregion\n\n // #region Public Methods ----\n\n /**\n * Adds the supplied product as a favorite for the current user.\n * @param {Guid} productId - ID of the product to set as a favorite, if isFavorite is true.\n * @param {Boolean} isFavorite - Indicates whether to set as a favorite or remove from favorites.\n */\n async setFavorite(productId, isFavorite = true) {\n if (isFavorite) await this.store.api.put('/api/store/user/current/favorites/products/' + productId);\n else await this.store.api.delete('/api/store/user/current/favorites/products/' + productId);\n }\n\n /**\n * Adds a handler for when categories are loaded, or executes immediate if they already are.\n * @param {any} func\n */\n onCategoriesLoaded(func) {\n if (this.categories.length > 0) func();\n\n onGlobal(eventIDs.CATEGORIES_LOADED, func);\n }\n\n /**\n * Returns a category object based on its ID.\n * @param {Guid} id - Category ID\n */\n getCategoryById(id) {\n return this.#getCategoryById(this.categories, id);\n }\n\n /**\n * Returns an array of all IDs of subcategories for the specified category ID.\n * @param {any} categoryId\n */\n getSubCategoryIdList(id, toLevel = 1000) {\n const category = this.getCategoryById(id);\n const list = [];\n\n this.#getSubCategoryIds(category, list, 0, toLevel);\n\n return list;\n }\n\n /**\n * Returns an array representing the IDs of first the category, then its parent, then its grandparent, etc...\n * @param {any} id\n */\n getCategoryPath(id) {\n let item = this.getCategoryById(id);\n if (item === null) return null;\n const path = [item];\n\n while (item.parent !== null) {\n path.push(item.parent);\n item = item.parent;\n }\n\n return path;\n }\n\n /**\n * Gets detail (DD.Nucleus.Storefront.ProductDetailModel) for the given product ID.\n */\n async getProductDetail(id) {\n // TODO: May establish a cache for things like this.\n var response = await this.store.api.get(`/api/store/product/${id}/detail`);\n\n if (response.succeeded) {\n // Get the product limits\n this.getProductLimits(response.model);\n\n return response.model;\n } else {\n this.store.handleApiError(response);\n }\n }\n\n /**\n * Loads/refreshes limits for the specified product ID. Updates the supplied product object.\n * @param {Product} product\n */\n async getProductLimits(product, forceRefresh = false) {\n if (isDefinedAndNonNull(product) && isDefinedAndNonNull(product.id)) {\n if (isUndefined(product.limits)) product.limits = [];\n\n // Use cached limits if available and not forcing a refresh\n if (isDefined(this.#limits[product.id]) && !forceRefresh) {\n product.limits.splice(0, product.limits.length, ...this.#limits[product.id]);\n return product.limits;\n } else {\n var response = await this.store.api.get(`api/store/product/${product.id}/limits`);\n\n if (response.succeeded) {\n product.limits.splice(0, product.limits.length, ...response.model);\n product.limitsLoaded = true;\n\n // Cache the limits\n this.#limits[product.id] = product.limits;\n\n return product.limits;\n } else {\n this.store.handleApiError(response);\n return [];\n }\n }\n } else return [];\n }\n\n /**\n * Gets an initialized model to use for creating a new product.\n */\n async getNewProduct() {\n const response = await this.store.api.get(`api/store/product/new`);\n\n if (response.succeeded) {\n return response.product;\n } else {\n this.store.handleApiError(response);\n return null;\n }\n }\n\n /**\n * Gets a product for editing.\n * @param {Guid} id\n */\n async getProductForEdit(id) {\n const response = await this.store.api.get(`api/store/product/${id}/edit`);\n\n if (response.succeeded) {\n return response.product;\n } else {\n this.store.handleApiError(response);\n return null;\n }\n }\n\n /**\n * Gets a product for editing.\n * @param {Guid} id\n */\n async updateProduct(id, request) {\n return await this.store.api.put(`api/store/product/${id}`, request);\n }\n\n /**\n * update inventory.\n */\n async syncInventory() {\n return await this.store.api.put('/api/integration/bls/v1/inventory');\n }\n\n /**\n * get last time inventory synced.\n */\n async getLastInventorySyncTime() {\n return await this.store.api.get('/api/integration/bls/v1/inventory');\n }\n\n // #endregion\n\n // #region Private Methods ----\n\n // Recursive method to append IDs of subcategories of a given category.\n #getSubCategoryIds(category, array, level, toLevel) {\n if (category === null) return;\n if (level === toLevel) return;\n\n for (let i = 0; i < category.children.length; i++) {\n // Add the child itself\n array.push(category.children[i].id);\n\n // Call the child to add its own subcategories\n this.#getSubCategoryIds(category.children[i], array, level + 1, toLevel);\n }\n }\n\n // Recursive method to find category by ID\n #getCategoryById(list, id) {\n for (let i = 0; i < list.length; i++) {\n if (list[i].id === id) return list[i];\n else {\n var found = this.#getCategoryById(list[i].children, id);\n if (found !== null) return found;\n }\n }\n\n return null;\n }\n\n // #loadCategories()\n // Forces a reload of categories available to the current user.\n async #loadCategories() {\n var response = await this.store.api.get('/api/store/user/current/categories');\n\n if (response.succeeded) {\n this.categories.length = 0;\n this.categories.splice(0, 0, ...response.results);\n\n this.#setCategoryParents(null, this.categories);\n\n console.log('Categories', this.categories);\n\n emitGlobal(eventIDs.CATEGORIES_LOADED, this.categories);\n } else {\n this.store.handleApiError(response);\n }\n }\n\n // #setParents()\n // Recursive. Updates the parents of the provided category for two-way traversal.\n async #setCategoryParents(parent, list) {\n for (let i = 0; i < list.length; i++) {\n list[i].parent = parent;\n\n this.#setCategoryParents(list[i], list[i].children);\n }\n }\n\n // #endregion\n}\n","\n// Shipping\n// Services and actions related to shipping.\n\n// Imports ----\nimport { reactive } from 'vue';\n\nexport default class {\n\n // Constructor\n constructor(store) {\n // This will typically be a subclass of NucleusStore\n this.store = store;\n\n this.addresses = reactive([]);\n this.methods = reactive([]);\n this.states = reactive([]);\n\n this.#setConstants();\n this.#loadStates();\n\n store.onSignedIn(() => {\n this.#loadAddresses();\n this.#loadShipMethods();\n });\n }\n\n\n // #region Getters & Setters ----\n\n // #endregion\n\n\n\n // #region Public Methods ----\n\n /**\n * Adds a new shipping address for the current user.\n * @param {ContactAddressModel} address - Address data to save.\n * @param {Validator} validator - A validator object to contain any messages that come back.\n */\n async saveAddress(address, setAsDefault = false, validator = null) {\n let response;\n if (address.id === null)\n response = await this.store.api.post('api/store/user/current/shipping/addresses', { address: address, setAsDefault: setAsDefault });\n else\n response = await this.store.api.put(`api/store/user/current/shipping/address/${address.id}`, { address: address, setAsDefault: setAsDefault });\n\n this.#loadAddresses();\n\n if (response.succeeded) {\n return true;\n }\n else {\n // TODO: More error handling here?\n if (validator !== null && response?.messages?.length > 0) validator.addMessages(response.messages);\n return false;\n }\n\n }\n\n /**\n * Sets the provided contact address ID as the new default shipping address.\n * @param {Guid} id\n */\n async setDefaultShippingAddress(id) {\n const response = await this.store.api.put('api/store/user/current/shipping/addresses/default', { addressId: id });\n\n if (response.succeeded) {\n // Refresh any shipping-address-related searches\n this.store.refreshSearches('addresses-for-user');\n\n // Load shipping addresses again\n await this.#loadAddresses();\n\n return true;\n }\n else {\n return false;\n }\n }\n\n /**\n * Deletes the shipping address by id\n */\n async deleteAddress(id) {\n // TODO: confirm the delete endpoint and upate that\n const response = await this.store.api.delete(`api/store/user/current/shipping/address/${id}`);\n\n if (response.succeeded) {\n // Refresh any shipping-address-related searches\n this.store.refreshSearches('addresses-for-user');\n\n // Load shipping addresses again\n await this.#loadAddresses();\n\n return response;\n } else {\n return response;\n }\n }\n\n // #endregion\n\n\n\n // #region Private Methods ----\n\n // #loadAddresses()\n // Forces a reload of shipping addresses for the current user.\n async #loadAddresses() {\n var response = await this.store.api.get('/api/store/user/current/shipping/addresses');\n\n if (response.succeeded) {\n this.addresses.splice(0, this.addresses.length, ...response.results);\n console.log('Ship Addresses', this.addresses);\n }\n else {\n this.store.handleApiError(response);\n }\n }\n\n\n // #loadShipMethods()\n // Loads shipping methods for current user.\n async #loadShipMethods() {\n \n var response = await this.store.api.get('/api/store/user/current/shipping/methods');\n\n if (response.succeeded) {\n this.methods.splice(0, this.methods.length, ...response.methods);\n }\n else {\n this.store.handleApiError(response);\n }\n }\n\n // #loadShipMethodsWithFilters()\n // Forces a reload of methods available to the current filter criteria.\n async loadShipMethodsByFilters(filters) {\n \n var response = await this.store.api.post('/api/store/user/current/shipping/methods', filters);\n\n if (response.succeeded) {\n this.methods.splice(0, this.methods.length, ...response.methods);\n }\n else {\n this.store.handleApiError(response);\n }\n }\n\n // #loadStates()\n // TODO: May load these from the backend eventually. Hard coded for now.\n #loadStates() {\n this.states.push({ text: 'Alabama', id: 'AL' });\n this.states.push({ text: 'Alaska', id: 'AK' });\n this.states.push({ text: 'Arizona', id: 'AZ' });\n this.states.push({ text: 'Arkansas', id: 'AR' });\n this.states.push({ text: 'California', id: 'CA' });\n this.states.push({ text: 'Colorado', id: 'CO' });\n this.states.push({ text: 'Connecticut', id: 'CT' });\n this.states.push({ text: 'Delaware', id: 'DE' });\n this.states.push({ text: 'District Of Columbia', id: 'DC' });\n this.states.push({ text: 'Florida', id: 'FL' });\n this.states.push({ text: 'Georgia', id: 'GA' });\n this.states.push({ text: 'Hawaii', id: 'HI' });\n this.states.push({ text: 'Idaho', id: 'ID' });\n this.states.push({ text: 'Illinois', id: 'IL' });\n this.states.push({ text: 'Indiana', id: 'IN' });\n this.states.push({ text: 'Iowa', id: 'IA' });\n this.states.push({ text: 'Kansas', id: 'KS' });\n this.states.push({ text: 'Kentucky', id: 'KY' });\n this.states.push({ text: 'Louisiana', id: 'LA' });\n this.states.push({ text: 'Maine', id: 'ME' });\n this.states.push({ text: 'Maryland', id: 'MD' });\n this.states.push({ text: 'Massachusetts', id: 'MA' });\n this.states.push({ text: 'Michigan', id: 'MI' });\n this.states.push({ text: 'Minnesota', id: 'MN' });\n this.states.push({ text: 'Mississippi', id: 'MS' });\n this.states.push({ text: 'Missouri', id: 'MO' });\n this.states.push({ text: 'Montana', id: 'MT' });\n this.states.push({ text: 'Nebraska', id: 'NE' });\n this.states.push({ text: 'Nevada', id: 'NV' });\n this.states.push({ text: 'New Hampshire', id: 'NH' });\n this.states.push({ text: 'New Jersey', id: 'NJ' });\n this.states.push({ text: 'New Mexico', id: 'NM' });\n this.states.push({ text: 'New York', id: 'NY' });\n this.states.push({ text: 'North Carolina', id: 'NC' });\n this.states.push({ text: 'North Dakota', id: 'ND' });\n this.states.push({ text: 'Ohio', id: 'OH' });\n this.states.push({ text: 'Oklahoma', id: 'OK' });\n this.states.push({ text: 'Oregon', id: 'OR' });\n this.states.push({ text: 'Pennsylvania', id: 'PA' });\n this.states.push({ text: 'Rhode Island', id: 'RI' });\n this.states.push({ text: 'South Carolina', id: 'SC' });\n this.states.push({ text: 'South Dakota', id: 'SD' });\n this.states.push({ text: 'Tennessee', id: 'TN' });\n this.states.push({ text: 'Texas', id: 'TX' });\n this.states.push({ text: 'Utah', id: 'UT' });\n this.states.push({ text: 'Vermont', id: 'VT' });\n this.states.push({ text: 'Virginia', id: 'VA' });\n this.states.push({ text: 'Washington', id: 'WA' });\n this.states.push({ text: 'West Virginia', id: 'WV' });\n this.states.push({ text: 'Wisconsin', id: 'WI' });\n this.states.push({ text: 'Wyoming', id: 'WY' });\n }\n\n #setConstants() {\n }\n \n // #endregion\n}\n","\n// Marketing\n// Services related to marketing, such as contacts.\n\nexport default class {\n\n // Constructor\n constructor(store) {\n this.store = store;\n }\n\n\n // #region Getters & Setters ----\n\n // #endregion\n\n\n\n // #region Public Methods ----\n\n /**\n * Gets a marketing contact by ID\n * @param {Guid} id\n */\n async getContact(id) {\n const response = await this.store.api.get(`api/marketing/contact/${id}/detail`);\n\n if (response.succeeded) {\n return response.model;\n }\n else {\n this.store.handleApiError(response);\n return null;\n }\n }\n\n /**\n * Deletes a marketing contact by ID\n * @param {Guid} id\n */\n async deleteContact(id) {\n const response = await this.store.api.delete(`api/marketing/contact/${id}`);\n\n if (response.succeeded) {\n return true;\n }\n else {\n this.store.handleApiError(response);\n return false;\n }\n }\n\n\n /**\n * Saves a marketing contact for the current user.\n * @param {MarketingContactModel} address - Contact data to save.\n * @param {Validator} validator - A validator object to contain any messages that come back.\n */\n async saveContact(contact, validator = null) {\n let response;\n\n if (contact.id !== null)\n response = await this.store.api.put(`api/marketing/contact/${contact.id}`, contact);\n else\n response = await this.store.api.post('api/marketing/user/current/contacts', { contact: contact });\n\n if (response.succeeded) {\n return true;\n }\n else {\n // TODO: More error handling here?\n if (validator !== null) validator.addMessages(response.messages);\n return false;\n }\n\n }\n\n /**\n * Adds the supplied marketing contact ID as a favorite for the current user.\n * @param {Guid} contactId - ID of the marketing contact to set as a favorite, if isFavorite is true.\n * @param {Boolean} isFavorite - Indicates whether to set as a favorite or remove from favorites.\n */\n async setFavoriteContact(contactId, isFavorite = true) {\n if (isFavorite)\n await this.store.api.put('api/marketing/user/current/favorites/contacts/' + contactId);\n else\n await this.store.api.delete('api/marketing/user/current/favorites/contacts/' + contactId);\n }\n\n // #endregion\n\n\n\n // #region Private Methods ----\n\n \n // #endregion\n}\n","\n// Marketing\n// Services related to marketing, such as contacts.\n\nexport default class {\n\n // Constructor\n constructor(store) {\n this.store = store;\n }\n\n // private methods\n hasPermission(permissionSetId, name) {\n const permissionSet = this.store.config.site.permissions.find(p => \n p.permissionSetId.toLowerCase() === permissionSetId.toLowerCase() && p.name.toLowerCase() === name.toLowerCase()\n );\n const permission = this.store.user.permissions.permissionSets?.[permissionSetId] || 0;\n console.log('check permission invoked', { permissionSet, permission });\n return (permission & permissionSet.bitFlag) === permissionSet.bitFlag;\n }\n\n // #region Public Methods ----\n\n // Product related methods\n\n /**\n * Tells if we have permission to retrieve product\n * @returns {boolean}\n */\n canRetrieveProduct() {\n return this.hasPermission('Product', 'Can retrieve product detail')\n }\n /**\n * Tells if we have permission to edit product\n * @returns {boolean}\n */\n canEditProduct() {\n return this.hasPermission('Product', 'Can edit products')\n }\n \n // #endregion\n}\n","\n// User Info\n// Services related to user phone number.\n\nexport default class {\n\n // Constructor\n constructor(store) {\n this.store = store;\n }\n\n\n // #region Getters & Setters ----\n\n // #endregion\n\n\n\n // #region Public Methods ----\n\n\n /**\n * Get Phone number of a user\n * @param {Guid} id\n */\n async getPhoneNumber() {\n return await this.store.api.get('api/store/user/current/contact-phone');\n }\n\n /**\n * Update Phone number of a user\n * @param {Guid} id\n */\n async updatePhoneNumber(phoneNumber, id) {\n return await this.store.api.post('api/store/user/current/contact-phone', { phoneNumber, id });\n }\n\n // #endregion\n\n\n\n // #region Private Methods ----\n\n\n // #endregion\n}\n","// NucleusStore\n// A base class for store-specic site classes.\n\n// Global Components ----\n\n// Filters\nimport CategoryFilter from '../components/filters/CategoryFilter';\n\n// General\nimport AddressTile from '../components/AddressTile';\nimport CartItemQty from '../components/CartItemQty';\nimport EditMarketingContact from '../components/EditMarketingContact';\nimport EditShippingAddress from '../components/EditShippingAddress';\nimport FavoriteIcon from '../components/FavoriteIcon';\nimport ItemQty from '../components/ItemQty';\nimport OrderLinkItem from '../components/OrderLinkItem';\nimport ProductAddToCartQty from '../components/ProductAddToCartQty';\nimport ProductFavoriteIcon from '../components/ProductFavoriteIcon';\nimport ProductImageGallery from '../components/ProductImageGallery';\nimport ProductLinkItem from '../components/ProductLinkItem';\nimport ProductTags from '../components/ProductTags';\nimport ProductThumbnail from '../components/ProductThumbnail';\nimport ShipMethod from '../components/ShipMethod';\nimport ShipMethodSelector from '../components/ShipMethodSelector';\nimport UomLabel from '../components/UomLabel';\nimport CompanionItemTile from '../components/CompanionItemTile';\n\n// Imports ----\nimport NucleusSite from '../../base/classes/NucleusSite';\nimport Cart from './Cart';\nimport Orders from './Orders';\nimport Products from './Products';\nimport Shipping from './Shipping';\nimport Marketing from './Marketing';\nimport Permission from './Permission';\nimport UserInfo from './UserInfo';\n\n/**\n * A base class for store-specific site classes. This provides the base services provided by the Nucleus Storefront package.\n * This class is intended to:\n * - Be overridden by a class for a given store, which can then provide its own services and/or react to certain events occurring.\n * - Allow other modules to plug in other objects that provide services for a given functional area.\n * Typically, a store will create a singleton of their derived class to act as the provider for related services throughout the site.\n */\nexport default class NucleusStore extends NucleusSite {\n #cart;\n #orders;\n #products;\n #shipping;\n #marketing;\n #permission;\n #userInfo;\n\n // Constructor\n constructor() {\n super();\n\n this.#cart = new Cart(this);\n this.#orders = new Orders(this);\n this.#products = new Products(this);\n this.#shipping = new Shipping(this);\n this.#marketing = new Marketing(this);\n this.#permission = new Permission(this);\n this.#userInfo = new UserInfo(this);\n store = this; // Store singleton so components in this module can access.\n }\n\n /**\n * Initializes the store.\n * @param {any} options\n */\n async initialize(options) {\n await super.initialize(options);\n }\n\n // #region Getters & Setters\n\n /**\n * Gets services for the current user's cart.\n */\n get cart() {\n return this.#cart;\n }\n\n /**\n * Gets services for orders.\n */\n get orders() {\n return this.#orders;\n }\n\n /**\n * Gets services for products.\n */\n get products() {\n return this.#products;\n }\n\n /**\n * Gets services for shipping.\n */\n get shipping() {\n return this.#shipping;\n }\n\n /**\n * Gets services for marketing.\n */\n get marketing() {\n return this.#marketing;\n }\n\n get permission() {\n return this.#permission;\n }\n\n get userInfo() {\n return this.#userInfo;\n }\n\n //#endregion\n\n formatDateTime(date) {\n if (date && date.length > 0) {\n return new Date(date).toLocaleString('en-US', {\n timeZone: 'America/New_York',\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n timeZoneName: 'short',\n });\n }\n return '';\n }\n\n formatDate(date) {\n if (date && date.length > 0) {\n return new Date(date).toLocaleString('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n });\n }\n return '';\n }\n\n formatFileSize(data, to) {\n const const_term = 1024;\n\n // Convert the values and concatenate\n // the appropriate unit\n if (to === 'KB') {\n return (data / const_term).toFixed(2) + ' KB';\n } else if (to === 'MB') {\n return (data / const_term ** 2).toFixed(2) + ' MB';\n } else if (to === 'GB') {\n return (data / const_term ** 3).toFixed(2) + ' GB';\n } else if (to === 'TB') {\n return (data / const_term ** 4).toFixed(2) + ' TB';\n } else {\n return data;\n }\n }\n\n // #region Public Methods\n\n /**\n * Called to allow this object to modify the Vue app if necessary.\n * @param {VueApp} vueApp\n */\n setupVue(vueApp) {\n super.setupVue(vueApp);\n\n // Filters\n vueApp.component('CategoryFilter', CategoryFilter);\n\n // General\n vueApp.component('AddressTile', AddressTile);\n vueApp.component('CartItemQty', CartItemQty);\n vueApp.component('EditMarketingContact', EditMarketingContact);\n vueApp.component('EditShippingAddress', EditShippingAddress);\n vueApp.component('FavoriteIcon', FavoriteIcon);\n vueApp.component('ItemQty', ItemQty);\n vueApp.component('OrderLinkItem', OrderLinkItem);\n vueApp.component('ProductAddToCartQty', ProductAddToCartQty);\n vueApp.component('ProductFavoriteIcon', ProductFavoriteIcon);\n vueApp.component('ProductImageGallery', ProductImageGallery);\n vueApp.component('ProductLinkItem', ProductLinkItem);\n vueApp.component('ProductTags', ProductTags);\n vueApp.component('ProductThumbnail', ProductThumbnail);\n vueApp.component('ShipMethod', ShipMethod);\n vueApp.component('ShipMethodSelector', ShipMethodSelector);\n vueApp.component('UomLabel', UomLabel);\n vueApp.component('CompanionItemTile', CompanionItemTile);\n }\n\n /**\n * Called to allow this object to add in its own routes if desired. NucleusSite.createVueRouter() actually creates and\n * configures the router, so call it to do so and pass the result back.\n */\n createVueRouter() {\n return super.createVueRouter();\n }\n\n // #endregion\n}\n\nexport let store = null;\n","\n\n\n\n","import script from \"./CategoryFilter.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./CategoryFilter.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./CategoryFilter.vue?vue&type=style&index=0&id=91c7efca&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n\n\n","import script from \"./TimeoutModal.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./TimeoutModal.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./TimeoutModal.vue?vue&type=style&index=0&id=07aa0b33&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Store/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-07aa0b33\"]])\n\nexport default __exports__","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nexport default listCacheClear;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nexport default eq;\n","import eq from './eq.js';\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nexport default assocIndexOf;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nexport default listCacheDelete;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nexport default listCacheGet;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nexport default listCacheHas;\n","import assocIndexOf from './_assocIndexOf.js';\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nexport default listCacheSet;\n","import listCacheClear from './_listCacheClear.js';\nimport listCacheDelete from './_listCacheDelete.js';\nimport listCacheGet from './_listCacheGet.js';\nimport listCacheHas from './_listCacheHas.js';\nimport listCacheSet from './_listCacheSet.js';\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nexport default ListCache;\n","import ListCache from './_ListCache.js';\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nexport default stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nexport default stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nexport default stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nexport default stackHas;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nexport default freeGlobal;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nexport default root;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nexport default Symbol;\n","import Symbol from './_Symbol.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nexport default getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nexport default objectToString;\n","import Symbol from './_Symbol.js';\nimport getRawTag from './_getRawTag.js';\nimport objectToString from './_objectToString.js';\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nexport default baseGetTag;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nexport default isObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isObject from './isObject.js';\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nexport default isFunction;\n","import root from './_root.js';\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nexport default coreJsData;\n","import coreJsData from './_coreJsData.js';\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nexport default isMasked;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nexport default toSource;\n","import isFunction from './isFunction.js';\nimport isMasked from './_isMasked.js';\nimport isObject from './isObject.js';\nimport toSource from './_toSource.js';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nexport default baseIsNative;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nexport default getValue;\n","import baseIsNative from './_baseIsNative.js';\nimport getValue from './_getValue.js';\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nexport default getNative;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nexport default Map;\n","import getNative from './_getNative.js';\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nexport default nativeCreate;\n","import nativeCreate from './_nativeCreate.js';\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nexport default hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default hashDelete;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nexport default hashGet;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nexport default hashHas;\n","import nativeCreate from './_nativeCreate.js';\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nexport default hashSet;\n","import hashClear from './_hashClear.js';\nimport hashDelete from './_hashDelete.js';\nimport hashGet from './_hashGet.js';\nimport hashHas from './_hashHas.js';\nimport hashSet from './_hashSet.js';\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nexport default Hash;\n","import Hash from './_Hash.js';\nimport ListCache from './_ListCache.js';\nimport Map from './_Map.js';\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nexport default mapCacheClear;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nexport default isKeyable;\n","import isKeyable from './_isKeyable.js';\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nexport default getMapData;\n","import getMapData from './_getMapData.js';\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nexport default mapCacheDelete;\n","import getMapData from './_getMapData.js';\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nexport default mapCacheGet;\n","import getMapData from './_getMapData.js';\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nexport default mapCacheHas;\n","import getMapData from './_getMapData.js';\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nexport default mapCacheSet;\n","import mapCacheClear from './_mapCacheClear.js';\nimport mapCacheDelete from './_mapCacheDelete.js';\nimport mapCacheGet from './_mapCacheGet.js';\nimport mapCacheHas from './_mapCacheHas.js';\nimport mapCacheSet from './_mapCacheSet.js';\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nexport default MapCache;\n","import ListCache from './_ListCache.js';\nimport Map from './_Map.js';\nimport MapCache from './_MapCache.js';\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nexport default stackSet;\n","import ListCache from './_ListCache.js';\nimport stackClear from './_stackClear.js';\nimport stackDelete from './_stackDelete.js';\nimport stackGet from './_stackGet.js';\nimport stackHas from './_stackHas.js';\nimport stackSet from './_stackSet.js';\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nexport default Stack;\n","import getNative from './_getNative.js';\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nexport default defineProperty;\n","import defineProperty from './_defineProperty.js';\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nexport default baseAssignValue;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignMergeValue;\n","/**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nexport default createBaseFor;\n","import createBaseFor from './_createBaseFor.js';\n\n/**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nexport default baseFor;\n","import root from './_root.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nexport default cloneBuffer;\n","import root from './_root.js';\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nexport default Uint8Array;\n","import Uint8Array from './_Uint8Array.js';\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nexport default cloneArrayBuffer;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nexport default cloneTypedArray;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nexport default copyArray;\n","import isObject from './isObject.js';\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nexport default baseCreate;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nexport default overArg;\n","import overArg from './_overArg.js';\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nexport default getPrototype;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nexport default isPrototype;\n","import baseCreate from './_baseCreate.js';\nimport getPrototype from './_getPrototype.js';\nimport isPrototype from './_isPrototype.js';\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nexport default initCloneObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nexport default isObjectLike;\n","import baseGetTag from './_baseGetTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nexport default baseIsArguments;\n","import baseIsArguments from './_baseIsArguments.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nexport default isArguments;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nexport default isArray;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nexport default isLength;\n","import isFunction from './isFunction.js';\nimport isLength from './isLength.js';\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nexport default isArrayLike;\n","import isArrayLike from './isArrayLike.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\nexport default isArrayLikeObject;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nexport default stubFalse;\n","import root from './_root.js';\nimport stubFalse from './stubFalse.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nexport default isBuffer;\n","import baseGetTag from './_baseGetTag.js';\nimport getPrototype from './_getPrototype.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nexport default isPlainObject;\n","import baseGetTag from './_baseGetTag.js';\nimport isLength from './isLength.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nexport default baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nexport default baseUnary;\n","import freeGlobal from './_freeGlobal.js';\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nexport default nodeUtil;\n","import baseIsTypedArray from './_baseIsTypedArray.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nexport default isTypedArray;\n","/**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n}\n\nexport default safeGet;\n","import baseAssignValue from './_baseAssignValue.js';\nimport eq from './eq.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nexport default assignValue;\n","import assignValue from './_assignValue.js';\nimport baseAssignValue from './_baseAssignValue.js';\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nexport default copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nexport default baseTimes;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nexport default isIndex;\n","import baseTimes from './_baseTimes.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isIndex from './_isIndex.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default arrayLikeKeys;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default nativeKeysIn;\n","import isObject from './isObject.js';\nimport isPrototype from './_isPrototype.js';\nimport nativeKeysIn from './_nativeKeysIn.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeysIn;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeysIn from './_baseKeysIn.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nexport default keysIn;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return copyObject(value, keysIn(value));\n}\n\nexport default toPlainObject;\n","import assignMergeValue from './_assignMergeValue.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\nimport copyArray from './_copyArray.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArguments from './isArguments.js';\nimport isArray from './isArray.js';\nimport isArrayLikeObject from './isArrayLikeObject.js';\nimport isBuffer from './isBuffer.js';\nimport isFunction from './isFunction.js';\nimport isObject from './isObject.js';\nimport isPlainObject from './isPlainObject.js';\nimport isTypedArray from './isTypedArray.js';\nimport safeGet from './_safeGet.js';\nimport toPlainObject from './toPlainObject.js';\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n}\n\nexport default baseMergeDeep;\n","import Stack from './_Stack.js';\nimport assignMergeValue from './_assignMergeValue.js';\nimport baseFor from './_baseFor.js';\nimport baseMergeDeep from './_baseMergeDeep.js';\nimport isObject from './isObject.js';\nimport keysIn from './keysIn.js';\nimport safeGet from './_safeGet.js';\n\n/**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\nfunction baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n}\n\nexport default baseMerge;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nexport default identity;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nexport default apply;\n","import apply from './_apply.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nexport default overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nexport default constant;\n","import constant from './constant.js';\nimport defineProperty from './_defineProperty.js';\nimport identity from './identity.js';\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nexport default baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nexport default shortOut;\n","import baseSetToString from './_baseSetToString.js';\nimport shortOut from './_shortOut.js';\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nexport default setToString;\n","import identity from './identity.js';\nimport overRest from './_overRest.js';\nimport setToString from './_setToString.js';\n\n/**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\nfunction baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n}\n\nexport default baseRest;\n","import eq from './eq.js';\nimport isArrayLike from './isArrayLike.js';\nimport isIndex from './_isIndex.js';\nimport isObject from './isObject.js';\n\n/**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n}\n\nexport default isIterateeCall;\n","import baseRest from './_baseRest.js';\nimport isIterateeCall from './_isIterateeCall.js';\n\n/**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n}\n\nexport default createAssigner;\n","import baseMerge from './_baseMerge.js';\nimport createAssigner from './_createAssigner.js';\n\n/**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\nvar merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n});\n\nexport default merge;\n","var Scope = /* @__PURE__ */ ((Scope2) => (Scope2[Scope2.TYPE = 3] = \"TYPE\", Scope2[Scope2.LEVEL = 12] = \"LEVEL\", Scope2[Scope2.ATTRIBUTE = 13] = \"ATTRIBUTE\", Scope2[Scope2.BLOT = 14] = \"BLOT\", Scope2[Scope2.INLINE = 7] = \"INLINE\", Scope2[Scope2.BLOCK = 11] = \"BLOCK\", Scope2[Scope2.BLOCK_BLOT = 10] = \"BLOCK_BLOT\", Scope2[Scope2.INLINE_BLOT = 6] = \"INLINE_BLOT\", Scope2[Scope2.BLOCK_ATTRIBUTE = 9] = \"BLOCK_ATTRIBUTE\", Scope2[Scope2.INLINE_ATTRIBUTE = 5] = \"INLINE_ATTRIBUTE\", Scope2[Scope2.ANY = 15] = \"ANY\", Scope2))(Scope || {});\nclass Attributor {\n constructor(attrName, keyName, options = {}) {\n this.attrName = attrName, this.keyName = keyName;\n const attributeBit = Scope.TYPE & Scope.ATTRIBUTE;\n this.scope = options.scope != null ? (\n // Ignore type bits, force attribute bit\n options.scope & Scope.LEVEL | attributeBit\n ) : Scope.ATTRIBUTE, options.whitelist != null && (this.whitelist = options.whitelist);\n }\n static keys(node) {\n return Array.from(node.attributes).map((item) => item.name);\n }\n add(node, value) {\n return this.canAdd(node, value) ? (node.setAttribute(this.keyName, value), !0) : !1;\n }\n canAdd(_node, value) {\n return this.whitelist == null ? !0 : typeof value == \"string\" ? this.whitelist.indexOf(value.replace(/[\"']/g, \"\")) > -1 : this.whitelist.indexOf(value) > -1;\n }\n remove(node) {\n node.removeAttribute(this.keyName);\n }\n value(node) {\n const value = node.getAttribute(this.keyName);\n return this.canAdd(node, value) && value ? value : \"\";\n }\n}\nclass ParchmentError extends Error {\n constructor(message) {\n message = \"[Parchment] \" + message, super(message), this.message = message, this.name = this.constructor.name;\n }\n}\nconst _Registry = class _Registry {\n constructor() {\n this.attributes = {}, this.classes = {}, this.tags = {}, this.types = {};\n }\n static find(node, bubble = !1) {\n if (node == null)\n return null;\n if (this.blots.has(node))\n return this.blots.get(node) || null;\n if (bubble) {\n let parentNode = null;\n try {\n parentNode = node.parentNode;\n } catch {\n return null;\n }\n return this.find(parentNode, bubble);\n }\n return null;\n }\n create(scroll, input, value) {\n const match2 = this.query(input);\n if (match2 == null)\n throw new ParchmentError(`Unable to create ${input} blot`);\n const blotClass = match2, node = (\n // @ts-expect-error Fix me later\n input instanceof Node || input.nodeType === Node.TEXT_NODE ? input : blotClass.create(value)\n ), blot = new blotClass(scroll, node, value);\n return _Registry.blots.set(blot.domNode, blot), blot;\n }\n find(node, bubble = !1) {\n return _Registry.find(node, bubble);\n }\n query(query, scope = Scope.ANY) {\n let match2;\n return typeof query == \"string\" ? match2 = this.types[query] || this.attributes[query] : query instanceof Text || query.nodeType === Node.TEXT_NODE ? match2 = this.types.text : typeof query == \"number\" ? query & Scope.LEVEL & Scope.BLOCK ? match2 = this.types.block : query & Scope.LEVEL & Scope.INLINE && (match2 = this.types.inline) : query instanceof Element && ((query.getAttribute(\"class\") || \"\").split(/\\s+/).some((name) => (match2 = this.classes[name], !!match2)), match2 = match2 || this.tags[query.tagName]), match2 == null ? null : \"scope\" in match2 && scope & Scope.LEVEL & match2.scope && scope & Scope.TYPE & match2.scope ? match2 : null;\n }\n register(...definitions) {\n return definitions.map((definition) => {\n const isBlot = \"blotName\" in definition, isAttr = \"attrName\" in definition;\n if (!isBlot && !isAttr)\n throw new ParchmentError(\"Invalid definition\");\n if (isBlot && definition.blotName === \"abstract\")\n throw new ParchmentError(\"Cannot register abstract class\");\n const key = isBlot ? definition.blotName : isAttr ? definition.attrName : void 0;\n return this.types[key] = definition, isAttr ? typeof definition.keyName == \"string\" && (this.attributes[definition.keyName] = definition) : isBlot && (definition.className && (this.classes[definition.className] = definition), definition.tagName && (Array.isArray(definition.tagName) ? definition.tagName = definition.tagName.map((tagName) => tagName.toUpperCase()) : definition.tagName = definition.tagName.toUpperCase(), (Array.isArray(definition.tagName) ? definition.tagName : [definition.tagName]).forEach((tag) => {\n (this.tags[tag] == null || definition.className == null) && (this.tags[tag] = definition);\n }))), definition;\n });\n }\n};\n_Registry.blots = /* @__PURE__ */ new WeakMap();\nlet Registry = _Registry;\nfunction match(node, prefix) {\n return (node.getAttribute(\"class\") || \"\").split(/\\s+/).filter((name) => name.indexOf(`${prefix}-`) === 0);\n}\nclass ClassAttributor extends Attributor {\n static keys(node) {\n return (node.getAttribute(\"class\") || \"\").split(/\\s+/).map((name) => name.split(\"-\").slice(0, -1).join(\"-\"));\n }\n add(node, value) {\n return this.canAdd(node, value) ? (this.remove(node), node.classList.add(`${this.keyName}-${value}`), !0) : !1;\n }\n remove(node) {\n match(node, this.keyName).forEach((name) => {\n node.classList.remove(name);\n }), node.classList.length === 0 && node.removeAttribute(\"class\");\n }\n value(node) {\n const value = (match(node, this.keyName)[0] || \"\").slice(this.keyName.length + 1);\n return this.canAdd(node, value) ? value : \"\";\n }\n}\nconst ClassAttributor$1 = ClassAttributor;\nfunction camelize(name) {\n const parts = name.split(\"-\"), rest = parts.slice(1).map((part) => part[0].toUpperCase() + part.slice(1)).join(\"\");\n return parts[0] + rest;\n}\nclass StyleAttributor extends Attributor {\n static keys(node) {\n return (node.getAttribute(\"style\") || \"\").split(\";\").map((value) => value.split(\":\")[0].trim());\n }\n add(node, value) {\n return this.canAdd(node, value) ? (node.style[camelize(this.keyName)] = value, !0) : !1;\n }\n remove(node) {\n node.style[camelize(this.keyName)] = \"\", node.getAttribute(\"style\") || node.removeAttribute(\"style\");\n }\n value(node) {\n const value = node.style[camelize(this.keyName)];\n return this.canAdd(node, value) ? value : \"\";\n }\n}\nconst StyleAttributor$1 = StyleAttributor;\nclass AttributorStore {\n constructor(domNode) {\n this.attributes = {}, this.domNode = domNode, this.build();\n }\n attribute(attribute, value) {\n value ? attribute.add(this.domNode, value) && (attribute.value(this.domNode) != null ? this.attributes[attribute.attrName] = attribute : delete this.attributes[attribute.attrName]) : (attribute.remove(this.domNode), delete this.attributes[attribute.attrName]);\n }\n build() {\n this.attributes = {};\n const blot = Registry.find(this.domNode);\n if (blot == null)\n return;\n const attributes = Attributor.keys(this.domNode), classes = ClassAttributor$1.keys(this.domNode), styles = StyleAttributor$1.keys(this.domNode);\n attributes.concat(classes).concat(styles).forEach((name) => {\n const attr = blot.scroll.query(name, Scope.ATTRIBUTE);\n attr instanceof Attributor && (this.attributes[attr.attrName] = attr);\n });\n }\n copy(target) {\n Object.keys(this.attributes).forEach((key) => {\n const value = this.attributes[key].value(this.domNode);\n target.format(key, value);\n });\n }\n move(target) {\n this.copy(target), Object.keys(this.attributes).forEach((key) => {\n this.attributes[key].remove(this.domNode);\n }), this.attributes = {};\n }\n values() {\n return Object.keys(this.attributes).reduce(\n (attributes, name) => (attributes[name] = this.attributes[name].value(this.domNode), attributes),\n {}\n );\n }\n}\nconst AttributorStore$1 = AttributorStore, _ShadowBlot = class _ShadowBlot {\n constructor(scroll, domNode) {\n this.scroll = scroll, this.domNode = domNode, Registry.blots.set(domNode, this), this.prev = null, this.next = null;\n }\n static create(rawValue) {\n if (this.tagName == null)\n throw new ParchmentError(\"Blot definition missing tagName\");\n let node, value;\n return Array.isArray(this.tagName) ? (typeof rawValue == \"string\" ? (value = rawValue.toUpperCase(), parseInt(value, 10).toString() === value && (value = parseInt(value, 10))) : typeof rawValue == \"number\" && (value = rawValue), typeof value == \"number\" ? node = document.createElement(this.tagName[value - 1]) : value && this.tagName.indexOf(value) > -1 ? node = document.createElement(value) : node = document.createElement(this.tagName[0])) : node = document.createElement(this.tagName), this.className && node.classList.add(this.className), node;\n }\n // Hack for accessing inherited static methods\n get statics() {\n return this.constructor;\n }\n attach() {\n }\n clone() {\n const domNode = this.domNode.cloneNode(!1);\n return this.scroll.create(domNode);\n }\n detach() {\n this.parent != null && this.parent.removeChild(this), Registry.blots.delete(this.domNode);\n }\n deleteAt(index, length) {\n this.isolate(index, length).remove();\n }\n formatAt(index, length, name, value) {\n const blot = this.isolate(index, length);\n if (this.scroll.query(name, Scope.BLOT) != null && value)\n blot.wrap(name, value);\n else if (this.scroll.query(name, Scope.ATTRIBUTE) != null) {\n const parent = this.scroll.create(this.statics.scope);\n blot.wrap(parent), parent.format(name, value);\n }\n }\n insertAt(index, value, def) {\n const blot = def == null ? this.scroll.create(\"text\", value) : this.scroll.create(value, def), ref = this.split(index);\n this.parent.insertBefore(blot, ref || void 0);\n }\n isolate(index, length) {\n const target = this.split(index);\n if (target == null)\n throw new Error(\"Attempt to isolate at end\");\n return target.split(length), target;\n }\n length() {\n return 1;\n }\n offset(root = this.parent) {\n return this.parent == null || this === root ? 0 : this.parent.children.offset(this) + this.parent.offset(root);\n }\n optimize(_context) {\n this.statics.requiredContainer && !(this.parent instanceof this.statics.requiredContainer) && this.wrap(this.statics.requiredContainer.blotName);\n }\n remove() {\n this.domNode.parentNode != null && this.domNode.parentNode.removeChild(this.domNode), this.detach();\n }\n replaceWith(name, value) {\n const replacement = typeof name == \"string\" ? this.scroll.create(name, value) : name;\n return this.parent != null && (this.parent.insertBefore(replacement, this.next || void 0), this.remove()), replacement;\n }\n split(index, _force) {\n return index === 0 ? this : this.next;\n }\n update(_mutations, _context) {\n }\n wrap(name, value) {\n const wrapper = typeof name == \"string\" ? this.scroll.create(name, value) : name;\n if (this.parent != null && this.parent.insertBefore(wrapper, this.next || void 0), typeof wrapper.appendChild != \"function\")\n throw new ParchmentError(`Cannot wrap ${name}`);\n return wrapper.appendChild(this), wrapper;\n }\n};\n_ShadowBlot.blotName = \"abstract\";\nlet ShadowBlot = _ShadowBlot;\nconst _LeafBlot = class _LeafBlot extends ShadowBlot {\n /**\n * Returns the value represented by domNode if it is this Blot's type\n * No checking that domNode can represent this Blot type is required so\n * applications needing it should check externally before calling.\n */\n static value(_domNode) {\n return !0;\n }\n /**\n * Given location represented by node and offset from DOM Selection Range,\n * return index to that location.\n */\n index(node, offset) {\n return this.domNode === node || this.domNode.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY ? Math.min(offset, 1) : -1;\n }\n /**\n * Given index to location within blot, return node and offset representing\n * that location, consumable by DOM Selection Range\n */\n position(index, _inclusive) {\n let offset = Array.from(this.parent.domNode.childNodes).indexOf(this.domNode);\n return index > 0 && (offset += 1), [this.parent.domNode, offset];\n }\n /**\n * Return value represented by this blot\n * Should not change without interaction from API or\n * user change detectable by update()\n */\n value() {\n return {\n [this.statics.blotName]: this.statics.value(this.domNode) || !0\n };\n }\n};\n_LeafBlot.scope = Scope.INLINE_BLOT;\nlet LeafBlot = _LeafBlot;\nconst LeafBlot$1 = LeafBlot;\nclass LinkedList {\n constructor() {\n this.head = null, this.tail = null, this.length = 0;\n }\n append(...nodes) {\n if (this.insertBefore(nodes[0], null), nodes.length > 1) {\n const rest = nodes.slice(1);\n this.append(...rest);\n }\n }\n at(index) {\n const next = this.iterator();\n let cur = next();\n for (; cur && index > 0; )\n index -= 1, cur = next();\n return cur;\n }\n contains(node) {\n const next = this.iterator();\n let cur = next();\n for (; cur; ) {\n if (cur === node)\n return !0;\n cur = next();\n }\n return !1;\n }\n indexOf(node) {\n const next = this.iterator();\n let cur = next(), index = 0;\n for (; cur; ) {\n if (cur === node)\n return index;\n index += 1, cur = next();\n }\n return -1;\n }\n insertBefore(node, refNode) {\n node != null && (this.remove(node), node.next = refNode, refNode != null ? (node.prev = refNode.prev, refNode.prev != null && (refNode.prev.next = node), refNode.prev = node, refNode === this.head && (this.head = node)) : this.tail != null ? (this.tail.next = node, node.prev = this.tail, this.tail = node) : (node.prev = null, this.head = this.tail = node), this.length += 1);\n }\n offset(target) {\n let index = 0, cur = this.head;\n for (; cur != null; ) {\n if (cur === target)\n return index;\n index += cur.length(), cur = cur.next;\n }\n return -1;\n }\n remove(node) {\n this.contains(node) && (node.prev != null && (node.prev.next = node.next), node.next != null && (node.next.prev = node.prev), node === this.head && (this.head = node.next), node === this.tail && (this.tail = node.prev), this.length -= 1);\n }\n iterator(curNode = this.head) {\n return () => {\n const ret = curNode;\n return curNode != null && (curNode = curNode.next), ret;\n };\n }\n find(index, inclusive = !1) {\n const next = this.iterator();\n let cur = next();\n for (; cur; ) {\n const length = cur.length();\n if (index < length || inclusive && index === length && (cur.next == null || cur.next.length() !== 0))\n return [cur, index];\n index -= length, cur = next();\n }\n return [null, 0];\n }\n forEach(callback) {\n const next = this.iterator();\n let cur = next();\n for (; cur; )\n callback(cur), cur = next();\n }\n forEachAt(index, length, callback) {\n if (length <= 0)\n return;\n const [startNode, offset] = this.find(index);\n let curIndex = index - offset;\n const next = this.iterator(startNode);\n let cur = next();\n for (; cur && curIndex < index + length; ) {\n const curLength = cur.length();\n index > curIndex ? callback(\n cur,\n index - curIndex,\n Math.min(length, curIndex + curLength - index)\n ) : callback(cur, 0, Math.min(curLength, index + length - curIndex)), curIndex += curLength, cur = next();\n }\n }\n map(callback) {\n return this.reduce((memo, cur) => (memo.push(callback(cur)), memo), []);\n }\n reduce(callback, memo) {\n const next = this.iterator();\n let cur = next();\n for (; cur; )\n memo = callback(memo, cur), cur = next();\n return memo;\n }\n}\nfunction makeAttachedBlot(node, scroll) {\n const found = scroll.find(node);\n if (found)\n return found;\n try {\n return scroll.create(node);\n } catch {\n const blot = scroll.create(Scope.INLINE);\n return Array.from(node.childNodes).forEach((child) => {\n blot.domNode.appendChild(child);\n }), node.parentNode && node.parentNode.replaceChild(blot.domNode, node), blot.attach(), blot;\n }\n}\nconst _ParentBlot = class _ParentBlot extends ShadowBlot {\n constructor(scroll, domNode) {\n super(scroll, domNode), this.uiNode = null, this.build();\n }\n appendChild(other) {\n this.insertBefore(other);\n }\n attach() {\n super.attach(), this.children.forEach((child) => {\n child.attach();\n });\n }\n attachUI(node) {\n this.uiNode != null && this.uiNode.remove(), this.uiNode = node, _ParentBlot.uiClass && this.uiNode.classList.add(_ParentBlot.uiClass), this.uiNode.setAttribute(\"contenteditable\", \"false\"), this.domNode.insertBefore(this.uiNode, this.domNode.firstChild);\n }\n /**\n * Called during construction, should fill its own children LinkedList.\n */\n build() {\n this.children = new LinkedList(), Array.from(this.domNode.childNodes).filter((node) => node !== this.uiNode).reverse().forEach((node) => {\n try {\n const child = makeAttachedBlot(node, this.scroll);\n this.insertBefore(child, this.children.head || void 0);\n } catch (err) {\n if (err instanceof ParchmentError)\n return;\n throw err;\n }\n });\n }\n deleteAt(index, length) {\n if (index === 0 && length === this.length())\n return this.remove();\n this.children.forEachAt(index, length, (child, offset, childLength) => {\n child.deleteAt(offset, childLength);\n });\n }\n descendant(criteria, index = 0) {\n const [child, offset] = this.children.find(index);\n return criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria ? [child, offset] : child instanceof _ParentBlot ? child.descendant(criteria, offset) : [null, -1];\n }\n descendants(criteria, index = 0, length = Number.MAX_VALUE) {\n let descendants = [], lengthLeft = length;\n return this.children.forEachAt(\n index,\n length,\n (child, childIndex, childLength) => {\n (criteria.blotName == null && criteria(child) || criteria.blotName != null && child instanceof criteria) && descendants.push(child), child instanceof _ParentBlot && (descendants = descendants.concat(\n child.descendants(criteria, childIndex, lengthLeft)\n )), lengthLeft -= childLength;\n }\n ), descendants;\n }\n detach() {\n this.children.forEach((child) => {\n child.detach();\n }), super.detach();\n }\n enforceAllowedChildren() {\n let done = !1;\n this.children.forEach((child) => {\n done || this.statics.allowedChildren.some(\n (def) => child instanceof def\n ) || (child.statics.scope === Scope.BLOCK_BLOT ? (child.next != null && this.splitAfter(child), child.prev != null && this.splitAfter(child.prev), child.parent.unwrap(), done = !0) : child instanceof _ParentBlot ? child.unwrap() : child.remove());\n });\n }\n formatAt(index, length, name, value) {\n this.children.forEachAt(index, length, (child, offset, childLength) => {\n child.formatAt(offset, childLength, name, value);\n });\n }\n insertAt(index, value, def) {\n const [child, offset] = this.children.find(index);\n if (child)\n child.insertAt(offset, value, def);\n else {\n const blot = def == null ? this.scroll.create(\"text\", value) : this.scroll.create(value, def);\n this.appendChild(blot);\n }\n }\n insertBefore(childBlot, refBlot) {\n childBlot.parent != null && childBlot.parent.children.remove(childBlot);\n let refDomNode = null;\n this.children.insertBefore(childBlot, refBlot || null), childBlot.parent = this, refBlot != null && (refDomNode = refBlot.domNode), (this.domNode.parentNode !== childBlot.domNode || this.domNode.nextSibling !== refDomNode) && this.domNode.insertBefore(childBlot.domNode, refDomNode), childBlot.attach();\n }\n length() {\n return this.children.reduce((memo, child) => memo + child.length(), 0);\n }\n moveChildren(targetParent, refNode) {\n this.children.forEach((child) => {\n targetParent.insertBefore(child, refNode);\n });\n }\n optimize(context) {\n if (super.optimize(context), this.enforceAllowedChildren(), this.uiNode != null && this.uiNode !== this.domNode.firstChild && this.domNode.insertBefore(this.uiNode, this.domNode.firstChild), this.children.length === 0)\n if (this.statics.defaultChild != null) {\n const child = this.scroll.create(this.statics.defaultChild.blotName);\n this.appendChild(child);\n } else\n this.remove();\n }\n path(index, inclusive = !1) {\n const [child, offset] = this.children.find(index, inclusive), position = [[this, index]];\n return child instanceof _ParentBlot ? position.concat(child.path(offset, inclusive)) : (child != null && position.push([child, offset]), position);\n }\n removeChild(child) {\n this.children.remove(child);\n }\n replaceWith(name, value) {\n const replacement = typeof name == \"string\" ? this.scroll.create(name, value) : name;\n return replacement instanceof _ParentBlot && this.moveChildren(replacement), super.replaceWith(replacement);\n }\n split(index, force = !1) {\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n const after = this.clone();\n return this.parent && this.parent.insertBefore(after, this.next || void 0), this.children.forEachAt(index, this.length(), (child, offset, _length) => {\n const split = child.split(offset, force);\n split != null && after.appendChild(split);\n }), after;\n }\n splitAfter(child) {\n const after = this.clone();\n for (; child.next != null; )\n after.appendChild(child.next);\n return this.parent && this.parent.insertBefore(after, this.next || void 0), after;\n }\n unwrap() {\n this.parent && this.moveChildren(this.parent, this.next || void 0), this.remove();\n }\n update(mutations, _context) {\n const addedNodes = [], removedNodes = [];\n mutations.forEach((mutation) => {\n mutation.target === this.domNode && mutation.type === \"childList\" && (addedNodes.push(...mutation.addedNodes), removedNodes.push(...mutation.removedNodes));\n }), removedNodes.forEach((node) => {\n if (node.parentNode != null && // @ts-expect-error Fix me later\n node.tagName !== \"IFRAME\" && document.body.compareDocumentPosition(node) & Node.DOCUMENT_POSITION_CONTAINED_BY)\n return;\n const blot = this.scroll.find(node);\n blot != null && (blot.domNode.parentNode == null || blot.domNode.parentNode === this.domNode) && blot.detach();\n }), addedNodes.filter((node) => node.parentNode === this.domNode && node !== this.uiNode).sort((a, b) => a === b ? 0 : a.compareDocumentPosition(b) & Node.DOCUMENT_POSITION_FOLLOWING ? 1 : -1).forEach((node) => {\n let refBlot = null;\n node.nextSibling != null && (refBlot = this.scroll.find(node.nextSibling));\n const blot = makeAttachedBlot(node, this.scroll);\n (blot.next !== refBlot || blot.next == null) && (blot.parent != null && blot.parent.removeChild(this), this.insertBefore(blot, refBlot || void 0));\n }), this.enforceAllowedChildren();\n }\n};\n_ParentBlot.uiClass = \"\";\nlet ParentBlot = _ParentBlot;\nconst ParentBlot$1 = ParentBlot;\nfunction isEqual(obj1, obj2) {\n if (Object.keys(obj1).length !== Object.keys(obj2).length)\n return !1;\n for (const prop in obj1)\n if (obj1[prop] !== obj2[prop])\n return !1;\n return !0;\n}\nconst _InlineBlot = class _InlineBlot extends ParentBlot$1 {\n static create(value) {\n return super.create(value);\n }\n static formats(domNode, scroll) {\n const match2 = scroll.query(_InlineBlot.blotName);\n if (!(match2 != null && domNode.tagName === match2.tagName)) {\n if (typeof this.tagName == \"string\")\n return !0;\n if (Array.isArray(this.tagName))\n return domNode.tagName.toLowerCase();\n }\n }\n constructor(scroll, domNode) {\n super(scroll, domNode), this.attributes = new AttributorStore$1(this.domNode);\n }\n format(name, value) {\n if (name === this.statics.blotName && !value)\n this.children.forEach((child) => {\n child instanceof _InlineBlot || (child = child.wrap(_InlineBlot.blotName, !0)), this.attributes.copy(child);\n }), this.unwrap();\n else {\n const format = this.scroll.query(name, Scope.INLINE);\n if (format == null)\n return;\n format instanceof Attributor ? this.attributes.attribute(format, value) : value && (name !== this.statics.blotName || this.formats()[name] !== value) && this.replaceWith(name, value);\n }\n }\n formats() {\n const formats = this.attributes.values(), format = this.statics.formats(this.domNode, this.scroll);\n return format != null && (formats[this.statics.blotName] = format), formats;\n }\n formatAt(index, length, name, value) {\n this.formats()[name] != null || this.scroll.query(name, Scope.ATTRIBUTE) ? this.isolate(index, length).format(name, value) : super.formatAt(index, length, name, value);\n }\n optimize(context) {\n super.optimize(context);\n const formats = this.formats();\n if (Object.keys(formats).length === 0)\n return this.unwrap();\n const next = this.next;\n next instanceof _InlineBlot && next.prev === this && isEqual(formats, next.formats()) && (next.moveChildren(this), next.remove());\n }\n replaceWith(name, value) {\n const replacement = super.replaceWith(name, value);\n return this.attributes.copy(replacement), replacement;\n }\n update(mutations, context) {\n super.update(mutations, context), mutations.some(\n (mutation) => mutation.target === this.domNode && mutation.type === \"attributes\"\n ) && this.attributes.build();\n }\n wrap(name, value) {\n const wrapper = super.wrap(name, value);\n return wrapper instanceof _InlineBlot && this.attributes.move(wrapper), wrapper;\n }\n};\n_InlineBlot.allowedChildren = [_InlineBlot, LeafBlot$1], _InlineBlot.blotName = \"inline\", _InlineBlot.scope = Scope.INLINE_BLOT, _InlineBlot.tagName = \"SPAN\";\nlet InlineBlot = _InlineBlot;\nconst InlineBlot$1 = InlineBlot, _BlockBlot = class _BlockBlot extends ParentBlot$1 {\n static create(value) {\n return super.create(value);\n }\n static formats(domNode, scroll) {\n const match2 = scroll.query(_BlockBlot.blotName);\n if (!(match2 != null && domNode.tagName === match2.tagName)) {\n if (typeof this.tagName == \"string\")\n return !0;\n if (Array.isArray(this.tagName))\n return domNode.tagName.toLowerCase();\n }\n }\n constructor(scroll, domNode) {\n super(scroll, domNode), this.attributes = new AttributorStore$1(this.domNode);\n }\n format(name, value) {\n const format = this.scroll.query(name, Scope.BLOCK);\n format != null && (format instanceof Attributor ? this.attributes.attribute(format, value) : name === this.statics.blotName && !value ? this.replaceWith(_BlockBlot.blotName) : value && (name !== this.statics.blotName || this.formats()[name] !== value) && this.replaceWith(name, value));\n }\n formats() {\n const formats = this.attributes.values(), format = this.statics.formats(this.domNode, this.scroll);\n return format != null && (formats[this.statics.blotName] = format), formats;\n }\n formatAt(index, length, name, value) {\n this.scroll.query(name, Scope.BLOCK) != null ? this.format(name, value) : super.formatAt(index, length, name, value);\n }\n insertAt(index, value, def) {\n if (def == null || this.scroll.query(value, Scope.INLINE) != null)\n super.insertAt(index, value, def);\n else {\n const after = this.split(index);\n if (after != null) {\n const blot = this.scroll.create(value, def);\n after.parent.insertBefore(blot, after);\n } else\n throw new Error(\"Attempt to insertAt after block boundaries\");\n }\n }\n replaceWith(name, value) {\n const replacement = super.replaceWith(name, value);\n return this.attributes.copy(replacement), replacement;\n }\n update(mutations, context) {\n super.update(mutations, context), mutations.some(\n (mutation) => mutation.target === this.domNode && mutation.type === \"attributes\"\n ) && this.attributes.build();\n }\n};\n_BlockBlot.blotName = \"block\", _BlockBlot.scope = Scope.BLOCK_BLOT, _BlockBlot.tagName = \"P\", _BlockBlot.allowedChildren = [\n InlineBlot$1,\n _BlockBlot,\n LeafBlot$1\n];\nlet BlockBlot = _BlockBlot;\nconst BlockBlot$1 = BlockBlot, _ContainerBlot = class _ContainerBlot extends ParentBlot$1 {\n checkMerge() {\n return this.next !== null && this.next.statics.blotName === this.statics.blotName;\n }\n deleteAt(index, length) {\n super.deleteAt(index, length), this.enforceAllowedChildren();\n }\n formatAt(index, length, name, value) {\n super.formatAt(index, length, name, value), this.enforceAllowedChildren();\n }\n insertAt(index, value, def) {\n super.insertAt(index, value, def), this.enforceAllowedChildren();\n }\n optimize(context) {\n super.optimize(context), this.children.length > 0 && this.next != null && this.checkMerge() && (this.next.moveChildren(this), this.next.remove());\n }\n};\n_ContainerBlot.blotName = \"container\", _ContainerBlot.scope = Scope.BLOCK_BLOT;\nlet ContainerBlot = _ContainerBlot;\nconst ContainerBlot$1 = ContainerBlot;\nclass EmbedBlot extends LeafBlot$1 {\n static formats(_domNode, _scroll) {\n }\n format(name, value) {\n super.formatAt(0, this.length(), name, value);\n }\n formatAt(index, length, name, value) {\n index === 0 && length === this.length() ? this.format(name, value) : super.formatAt(index, length, name, value);\n }\n formats() {\n return this.statics.formats(this.domNode, this.scroll);\n }\n}\nconst EmbedBlot$1 = EmbedBlot, OBSERVER_CONFIG = {\n attributes: !0,\n characterData: !0,\n characterDataOldValue: !0,\n childList: !0,\n subtree: !0\n}, MAX_OPTIMIZE_ITERATIONS = 100, _ScrollBlot = class _ScrollBlot extends ParentBlot$1 {\n constructor(registry, node) {\n super(null, node), this.registry = registry, this.scroll = this, this.build(), this.observer = new MutationObserver((mutations) => {\n this.update(mutations);\n }), this.observer.observe(this.domNode, OBSERVER_CONFIG), this.attach();\n }\n create(input, value) {\n return this.registry.create(this, input, value);\n }\n find(node, bubble = !1) {\n const blot = this.registry.find(node, bubble);\n return blot ? blot.scroll === this ? blot : bubble ? this.find(blot.scroll.domNode.parentNode, !0) : null : null;\n }\n query(query, scope = Scope.ANY) {\n return this.registry.query(query, scope);\n }\n register(...definitions) {\n return this.registry.register(...definitions);\n }\n build() {\n this.scroll != null && super.build();\n }\n detach() {\n super.detach(), this.observer.disconnect();\n }\n deleteAt(index, length) {\n this.update(), index === 0 && length === this.length() ? this.children.forEach((child) => {\n child.remove();\n }) : super.deleteAt(index, length);\n }\n formatAt(index, length, name, value) {\n this.update(), super.formatAt(index, length, name, value);\n }\n insertAt(index, value, def) {\n this.update(), super.insertAt(index, value, def);\n }\n optimize(mutations = [], context = {}) {\n super.optimize(context);\n const mutationsMap = context.mutationsMap || /* @__PURE__ */ new WeakMap();\n let records = Array.from(this.observer.takeRecords());\n for (; records.length > 0; )\n mutations.push(records.pop());\n const mark = (blot, markParent = !0) => {\n blot == null || blot === this || blot.domNode.parentNode != null && (mutationsMap.has(blot.domNode) || mutationsMap.set(blot.domNode, []), markParent && mark(blot.parent));\n }, optimize = (blot) => {\n mutationsMap.has(blot.domNode) && (blot instanceof ParentBlot$1 && blot.children.forEach(optimize), mutationsMap.delete(blot.domNode), blot.optimize(context));\n };\n let remaining = mutations;\n for (let i = 0; remaining.length > 0; i += 1) {\n if (i >= MAX_OPTIMIZE_ITERATIONS)\n throw new Error(\"[Parchment] Maximum optimize iterations reached\");\n for (remaining.forEach((mutation) => {\n const blot = this.find(mutation.target, !0);\n blot != null && (blot.domNode === mutation.target && (mutation.type === \"childList\" ? (mark(this.find(mutation.previousSibling, !1)), Array.from(mutation.addedNodes).forEach((node) => {\n const child = this.find(node, !1);\n mark(child, !1), child instanceof ParentBlot$1 && child.children.forEach((grandChild) => {\n mark(grandChild, !1);\n });\n })) : mutation.type === \"attributes\" && mark(blot.prev)), mark(blot));\n }), this.children.forEach(optimize), remaining = Array.from(this.observer.takeRecords()), records = remaining.slice(); records.length > 0; )\n mutations.push(records.pop());\n }\n }\n update(mutations, context = {}) {\n mutations = mutations || this.observer.takeRecords();\n const mutationsMap = /* @__PURE__ */ new WeakMap();\n mutations.map((mutation) => {\n const blot = this.find(mutation.target, !0);\n return blot == null ? null : mutationsMap.has(blot.domNode) ? (mutationsMap.get(blot.domNode).push(mutation), null) : (mutationsMap.set(blot.domNode, [mutation]), blot);\n }).forEach((blot) => {\n blot != null && blot !== this && mutationsMap.has(blot.domNode) && blot.update(mutationsMap.get(blot.domNode) || [], context);\n }), context.mutationsMap = mutationsMap, mutationsMap.has(this.domNode) && super.update(mutationsMap.get(this.domNode), context), this.optimize(mutations, context);\n }\n};\n_ScrollBlot.blotName = \"scroll\", _ScrollBlot.defaultChild = BlockBlot$1, _ScrollBlot.allowedChildren = [BlockBlot$1, ContainerBlot$1], _ScrollBlot.scope = Scope.BLOCK_BLOT, _ScrollBlot.tagName = \"DIV\";\nlet ScrollBlot = _ScrollBlot;\nconst ScrollBlot$1 = ScrollBlot, _TextBlot = class _TextBlot extends LeafBlot$1 {\n static create(value) {\n return document.createTextNode(value);\n }\n static value(domNode) {\n return domNode.data;\n }\n constructor(scroll, node) {\n super(scroll, node), this.text = this.statics.value(this.domNode);\n }\n deleteAt(index, length) {\n this.domNode.data = this.text = this.text.slice(0, index) + this.text.slice(index + length);\n }\n index(node, offset) {\n return this.domNode === node ? offset : -1;\n }\n insertAt(index, value, def) {\n def == null ? (this.text = this.text.slice(0, index) + value + this.text.slice(index), this.domNode.data = this.text) : super.insertAt(index, value, def);\n }\n length() {\n return this.text.length;\n }\n optimize(context) {\n super.optimize(context), this.text = this.statics.value(this.domNode), this.text.length === 0 ? this.remove() : this.next instanceof _TextBlot && this.next.prev === this && (this.insertAt(this.length(), this.next.value()), this.next.remove());\n }\n position(index, _inclusive = !1) {\n return [this.domNode, index];\n }\n split(index, force = !1) {\n if (!force) {\n if (index === 0)\n return this;\n if (index === this.length())\n return this.next;\n }\n const after = this.scroll.create(this.domNode.splitText(index));\n return this.parent.insertBefore(after, this.next || void 0), this.text = this.statics.value(this.domNode), after;\n }\n update(mutations, _context) {\n mutations.some((mutation) => mutation.type === \"characterData\" && mutation.target === this.domNode) && (this.text = this.statics.value(this.domNode));\n }\n value() {\n return this.text;\n }\n};\n_TextBlot.blotName = \"text\", _TextBlot.scope = Scope.INLINE_BLOT;\nlet TextBlot = _TextBlot;\nconst TextBlot$1 = TextBlot;\nexport {\n Attributor,\n AttributorStore$1 as AttributorStore,\n BlockBlot$1 as BlockBlot,\n ClassAttributor$1 as ClassAttributor,\n ContainerBlot$1 as ContainerBlot,\n EmbedBlot$1 as EmbedBlot,\n InlineBlot$1 as InlineBlot,\n LeafBlot$1 as LeafBlot,\n ParentBlot$1 as ParentBlot,\n Registry,\n Scope,\n ScrollBlot$1 as ScrollBlot,\n StyleAttributor$1 as StyleAttributor,\n TextBlot$1 as TextBlot\n};\n//# sourceMappingURL=parchment.js.map\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nexport default arrayEach;\n","import overArg from './_overArg.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nexport default nativeKeys;\n","import isPrototype from './_isPrototype.js';\nimport nativeKeys from './_nativeKeys.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nexport default baseKeys;\n","import arrayLikeKeys from './_arrayLikeKeys.js';\nimport baseKeys from './_baseKeys.js';\nimport isArrayLike from './isArrayLike.js';\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nexport default keys;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nexport default arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nexport default stubArray;\n","import arrayFilter from './_arrayFilter.js';\nimport stubArray from './stubArray.js';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nexport default getSymbols;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nexport default arrayPush;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import arrayPush from './_arrayPush.js';\nimport isArray from './isArray.js';\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nexport default baseGetAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbols from './_getSymbols.js';\nimport keys from './keys.js';\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nexport default getAllKeys;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nexport default DataView;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nexport default Promise;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nexport default Set;\n","import getNative from './_getNative.js';\nimport root from './_root.js';\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nexport default WeakMap;\n","import DataView from './_DataView.js';\nimport Map from './_Map.js';\nimport Promise from './_Promise.js';\nimport Set from './_Set.js';\nimport WeakMap from './_WeakMap.js';\nimport baseGetTag from './_baseGetTag.js';\nimport toSource from './_toSource.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nexport default getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\nexport default setCacheAdd;\n","/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\nexport default setCacheHas;\n","import MapCache from './_MapCache.js';\nimport setCacheAdd from './_setCacheAdd.js';\nimport setCacheHas from './_setCacheHas.js';\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\nexport default SetCache;\n","/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\nexport default arraySome;\n","/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\nexport default cacheHas;\n","import SetCache from './_SetCache.js';\nimport arraySome from './_arraySome.js';\nimport cacheHas from './_cacheHas.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\nexport default equalArrays;\n","/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\nexport default mapToArray;\n","/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\nexport default setToArray;\n","import Symbol from './_Symbol.js';\nimport Uint8Array from './_Uint8Array.js';\nimport eq from './eq.js';\nimport equalArrays from './_equalArrays.js';\nimport mapToArray from './_mapToArray.js';\nimport setToArray from './_setToArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\nexport default equalByTag;\n","import getAllKeys from './_getAllKeys.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\nexport default equalObjects;\n","import Stack from './_Stack.js';\nimport equalArrays from './_equalArrays.js';\nimport equalByTag from './_equalByTag.js';\nimport equalObjects from './_equalObjects.js';\nimport getTag from './_getTag.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isTypedArray from './isTypedArray.js';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\nexport default baseIsEqualDeep;\n","import baseIsEqualDeep from './_baseIsEqualDeep.js';\nimport isObjectLike from './isObjectLike.js';\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\nexport default baseIsEqual;\n","import baseIsEqual from './_baseIsEqual.js';\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\nexport default isEqual;\n","import { EmbedBlot } from 'parchment';\nclass Break extends EmbedBlot {\n static value() {\n return undefined;\n }\n optimize() {\n if (this.prev || this.next) {\n this.remove();\n }\n }\n length() {\n return 0;\n }\n value() {\n return '';\n }\n}\nBreak.blotName = 'break';\nBreak.tagName = 'BR';\nexport default Break;\n//# sourceMappingURL=break.js.map","import { TextBlot } from 'parchment';\nclass Text extends TextBlot {}\nfunction escapeText(text) {\n return text.replace(/[&<>\"']/g, s => {\n // https://lodash.com/docs#escape\n const entityMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n return entityMap[s];\n });\n}\nexport { Text as default, escapeText };\n//# sourceMappingURL=text.js.map","import { EmbedBlot, InlineBlot, Scope } from 'parchment';\nimport Break from './break.js';\nimport Text from './text.js';\nclass Inline extends InlineBlot {\n static allowedChildren = [Inline, Break, EmbedBlot, Text];\n // Lower index means deeper in the DOM tree, since not found (-1) is for embeds\n static order = ['cursor', 'inline',\n // Must be lower\n 'link',\n // Chrome wants to be lower\n 'underline', 'strike', 'italic', 'bold', 'script', 'code' // Must be higher\n ];\n static compare(self, other) {\n const selfIndex = Inline.order.indexOf(self);\n const otherIndex = Inline.order.indexOf(other);\n if (selfIndex >= 0 || otherIndex >= 0) {\n return selfIndex - otherIndex;\n }\n if (self === other) {\n return 0;\n }\n if (self < other) {\n return -1;\n }\n return 1;\n }\n formatAt(index, length, name, value) {\n if (Inline.compare(this.statics.blotName, name) < 0 && this.scroll.query(name, Scope.BLOT)) {\n const blot = this.isolate(index, length);\n if (value) {\n blot.wrap(name, value);\n }\n } else {\n super.formatAt(index, length, name, value);\n }\n }\n optimize(context) {\n super.optimize(context);\n if (this.parent instanceof Inline && Inline.compare(this.statics.blotName, this.parent.statics.blotName) > 0) {\n const parent = this.parent.isolate(this.offset(), this.length());\n // @ts-expect-error TODO: make isolate generic\n this.moveChildren(parent);\n parent.wrap(this);\n }\n }\n}\nexport default Inline;\n//# sourceMappingURL=inline.js.map","import { AttributorStore, BlockBlot, EmbedBlot, LeafBlot, Scope } from 'parchment';\nimport Delta from 'quill-delta';\nimport Break from './break.js';\nimport Inline from './inline.js';\nimport TextBlot from './text.js';\nconst NEWLINE_LENGTH = 1;\nclass Block extends BlockBlot {\n cache = {};\n delta() {\n if (this.cache.delta == null) {\n this.cache.delta = blockDelta(this);\n }\n return this.cache.delta;\n }\n deleteAt(index, length) {\n super.deleteAt(index, length);\n this.cache = {};\n }\n formatAt(index, length, name, value) {\n if (length <= 0) return;\n if (this.scroll.query(name, Scope.BLOCK)) {\n if (index + length === this.length()) {\n this.format(name, value);\n }\n } else {\n super.formatAt(index, Math.min(length, this.length() - index - 1), name, value);\n }\n this.cache = {};\n }\n insertAt(index, value, def) {\n if (def != null) {\n super.insertAt(index, value, def);\n this.cache = {};\n return;\n }\n if (value.length === 0) return;\n const lines = value.split('\\n');\n const text = lines.shift();\n if (text.length > 0) {\n if (index < this.length() - 1 || this.children.tail == null) {\n super.insertAt(Math.min(index, this.length() - 1), text);\n } else {\n this.children.tail.insertAt(this.children.tail.length(), text);\n }\n this.cache = {};\n }\n // TODO: Fix this next time the file is edited.\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let block = this;\n lines.reduce((lineIndex, line) => {\n // @ts-expect-error Fix me later\n block = block.split(lineIndex, true);\n block.insertAt(0, line);\n return line.length;\n }, index + text.length);\n }\n insertBefore(blot, ref) {\n const {\n head\n } = this.children;\n super.insertBefore(blot, ref);\n if (head instanceof Break) {\n head.remove();\n }\n this.cache = {};\n }\n length() {\n if (this.cache.length == null) {\n this.cache.length = super.length() + NEWLINE_LENGTH;\n }\n return this.cache.length;\n }\n moveChildren(target, ref) {\n super.moveChildren(target, ref);\n this.cache = {};\n }\n optimize(context) {\n super.optimize(context);\n this.cache = {};\n }\n path(index) {\n return super.path(index, true);\n }\n removeChild(child) {\n super.removeChild(child);\n this.cache = {};\n }\n split(index) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (force && (index === 0 || index >= this.length() - NEWLINE_LENGTH)) {\n const clone = this.clone();\n if (index === 0) {\n this.parent.insertBefore(clone, this);\n return this;\n }\n this.parent.insertBefore(clone, this.next);\n return clone;\n }\n const next = super.split(index, force);\n this.cache = {};\n return next;\n }\n}\nBlock.blotName = 'block';\nBlock.tagName = 'P';\nBlock.defaultChild = Break;\nBlock.allowedChildren = [Break, Inline, EmbedBlot, TextBlot];\nclass BlockEmbed extends EmbedBlot {\n attach() {\n super.attach();\n this.attributes = new AttributorStore(this.domNode);\n }\n delta() {\n return new Delta().insert(this.value(), {\n ...this.formats(),\n ...this.attributes.values()\n });\n }\n format(name, value) {\n const attribute = this.scroll.query(name, Scope.BLOCK_ATTRIBUTE);\n if (attribute != null) {\n // @ts-expect-error TODO: Scroll#query() should return Attributor when scope is attribute\n this.attributes.attribute(attribute, value);\n }\n }\n formatAt(index, length, name, value) {\n this.format(name, value);\n }\n insertAt(index, value, def) {\n if (def != null) {\n super.insertAt(index, value, def);\n return;\n }\n const lines = value.split('\\n');\n const text = lines.pop();\n const blocks = lines.map(line => {\n const block = this.scroll.create(Block.blotName);\n block.insertAt(0, line);\n return block;\n });\n const ref = this.split(index);\n blocks.forEach(block => {\n this.parent.insertBefore(block, ref);\n });\n if (text) {\n this.parent.insertBefore(this.scroll.create('text', text), ref);\n }\n }\n}\nBlockEmbed.scope = Scope.BLOCK_BLOT;\n// It is important for cursor behavior BlockEmbeds use tags that are block level elements\n\nfunction blockDelta(blot) {\n let filter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return blot.descendants(LeafBlot).reduce((delta, leaf) => {\n if (leaf.length() === 0) {\n return delta;\n }\n return delta.insert(leaf.value(), bubbleFormats(leaf, {}, filter));\n }, new Delta()).insert('\\n', bubbleFormats(blot));\n}\nfunction bubbleFormats(blot) {\n let formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let filter = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n if (blot == null) return formats;\n if ('formats' in blot && typeof blot.formats === 'function') {\n formats = {\n ...formats,\n ...blot.formats()\n };\n if (filter) {\n // exclude syntax highlighting from deltas and getFormat()\n delete formats['code-token'];\n }\n }\n if (blot.parent == null || blot.parent.statics.blotName === 'scroll' || blot.parent.statics.scope !== blot.statics.scope) {\n return formats;\n }\n return bubbleFormats(blot.parent, formats, filter);\n}\nexport { blockDelta, bubbleFormats, BlockEmbed, Block as default };\n//# sourceMappingURL=block.js.map","import { EmbedBlot, Scope } from 'parchment';\nimport TextBlot from './text.js';\nclass Cursor extends EmbedBlot {\n static blotName = 'cursor';\n static className = 'ql-cursor';\n static tagName = 'span';\n static CONTENTS = '\\uFEFF'; // Zero width no break space\n\n static value() {\n return undefined;\n }\n constructor(scroll, domNode, selection) {\n super(scroll, domNode);\n this.selection = selection;\n this.textNode = document.createTextNode(Cursor.CONTENTS);\n this.domNode.appendChild(this.textNode);\n this.savedLength = 0;\n }\n detach() {\n // super.detach() will also clear domNode.__blot\n if (this.parent != null) this.parent.removeChild(this);\n }\n format(name, value) {\n if (this.savedLength !== 0) {\n super.format(name, value);\n return;\n }\n // TODO: Fix this next time the file is edited.\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n let target = this;\n let index = 0;\n while (target != null && target.statics.scope !== Scope.BLOCK_BLOT) {\n index += target.offset(target.parent);\n target = target.parent;\n }\n if (target != null) {\n this.savedLength = Cursor.CONTENTS.length;\n // @ts-expect-error TODO: allow empty context in Parchment\n target.optimize();\n target.formatAt(index, Cursor.CONTENTS.length, name, value);\n this.savedLength = 0;\n }\n }\n index(node, offset) {\n if (node === this.textNode) return 0;\n return super.index(node, offset);\n }\n length() {\n return this.savedLength;\n }\n position() {\n return [this.textNode, this.textNode.data.length];\n }\n remove() {\n super.remove();\n // @ts-expect-error Fix me later\n this.parent = null;\n }\n restore() {\n if (this.selection.composing || this.parent == null) return null;\n const range = this.selection.getNativeRange();\n // Browser may push down styles/nodes inside the cursor blot.\n // https://dvcs.w3.org/hg/editing/raw-file/tip/editing.html#push-down-values\n while (this.domNode.lastChild != null && this.domNode.lastChild !== this.textNode) {\n // @ts-expect-error Fix me later\n this.domNode.parentNode.insertBefore(this.domNode.lastChild, this.domNode);\n }\n const prevTextBlot = this.prev instanceof TextBlot ? this.prev : null;\n const prevTextLength = prevTextBlot ? prevTextBlot.length() : 0;\n const nextTextBlot = this.next instanceof TextBlot ? this.next : null;\n // @ts-expect-error TODO: make TextBlot.text public\n const nextText = nextTextBlot ? nextTextBlot.text : '';\n const {\n textNode\n } = this;\n // take text from inside this blot and reset it\n const newText = textNode.data.split(Cursor.CONTENTS).join('');\n textNode.data = Cursor.CONTENTS;\n\n // proactively merge TextBlots around cursor so that optimization\n // doesn't lose the cursor. the reason we are here in cursor.restore\n // could be that the user clicked in prevTextBlot or nextTextBlot, or\n // the user typed something.\n let mergedTextBlot;\n if (prevTextBlot) {\n mergedTextBlot = prevTextBlot;\n if (newText || nextTextBlot) {\n prevTextBlot.insertAt(prevTextBlot.length(), newText + nextText);\n if (nextTextBlot) {\n nextTextBlot.remove();\n }\n }\n } else if (nextTextBlot) {\n mergedTextBlot = nextTextBlot;\n nextTextBlot.insertAt(0, newText);\n } else {\n const newTextNode = document.createTextNode(newText);\n mergedTextBlot = this.scroll.create(newTextNode);\n this.parent.insertBefore(mergedTextBlot, this);\n }\n this.remove();\n if (range) {\n // calculate selection to restore\n const remapOffset = (node, offset) => {\n if (prevTextBlot && node === prevTextBlot.domNode) {\n return offset;\n }\n if (node === textNode) {\n return prevTextLength + offset - 1;\n }\n if (nextTextBlot && node === nextTextBlot.domNode) {\n return prevTextLength + newText.length + offset;\n }\n return null;\n };\n const start = remapOffset(range.start.node, range.start.offset);\n const end = remapOffset(range.end.node, range.end.offset);\n if (start !== null && end !== null) {\n return {\n startNode: mergedTextBlot.domNode,\n startOffset: start,\n endNode: mergedTextBlot.domNode,\n endOffset: end\n };\n }\n }\n return null;\n }\n update(mutations, context) {\n if (mutations.some(mutation => {\n return mutation.type === 'characterData' && mutation.target === this.textNode;\n })) {\n const range = this.restore();\n if (range) context.range = range;\n }\n }\n\n // Avoid .ql-cursor being a descendant of ``.\n // The reason is Safari pushes down `` on text insertion.\n // That will cause DOM nodes not sync with the model.\n //\n // For example ({I} is the caret), given the markup:\n // \\uFEFF{I}\n // When typing a char \"x\", `` will be pushed down inside the `` first:\n // \\uFEFF{I}\n // And then \"x\" will be inserted after ``:\n // \\uFEFFd{I}\n optimize(context) {\n // @ts-expect-error Fix me later\n super.optimize(context);\n let {\n parent\n } = this;\n while (parent) {\n if (parent.domNode.tagName === 'A') {\n this.savedLength = Cursor.CONTENTS.length;\n // @ts-expect-error TODO: make isolate generic\n parent.isolate(this.offset(parent), this.length()).unwrap();\n this.savedLength = 0;\n break;\n }\n parent = parent.parent;\n }\n }\n value() {\n return '';\n }\n}\nexport default Cursor;\n//# sourceMappingURL=cursor.js.map","export default new WeakMap();\n//# sourceMappingURL=instances.js.map","const levels = ['error', 'warn', 'log', 'info'];\nlet level = 'warn';\nfunction debug(method) {\n if (level) {\n if (levels.indexOf(method) <= levels.indexOf(level)) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n console[method](...args); // eslint-disable-line no-console\n }\n }\n}\nfunction namespace(ns) {\n return levels.reduce((logger, method) => {\n logger[method] = debug.bind(console, method, ns);\n return logger;\n }, {});\n}\nnamespace.level = newLevel => {\n level = newLevel;\n};\ndebug.level = namespace.level;\nexport default namespace;\n//# sourceMappingURL=logger.js.map","import { EventEmitter } from 'eventemitter3';\nimport instances from './instances.js';\nimport logger from './logger.js';\nconst debug = logger('quill:events');\nconst EVENTS = ['selectionchange', 'mousedown', 'mouseup', 'click'];\nEVENTS.forEach(eventName => {\n document.addEventListener(eventName, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n Array.from(document.querySelectorAll('.ql-container')).forEach(node => {\n const quill = instances.get(node);\n if (quill && quill.emitter) {\n quill.emitter.handleDOM(...args);\n }\n });\n });\n});\nclass Emitter extends EventEmitter {\n static events = {\n EDITOR_CHANGE: 'editor-change',\n SCROLL_BEFORE_UPDATE: 'scroll-before-update',\n SCROLL_BLOT_MOUNT: 'scroll-blot-mount',\n SCROLL_BLOT_UNMOUNT: 'scroll-blot-unmount',\n SCROLL_OPTIMIZE: 'scroll-optimize',\n SCROLL_UPDATE: 'scroll-update',\n SCROLL_EMBED_UPDATE: 'scroll-embed-update',\n SELECTION_CHANGE: 'selection-change',\n TEXT_CHANGE: 'text-change',\n COMPOSITION_BEFORE_START: 'composition-before-start',\n COMPOSITION_START: 'composition-start',\n COMPOSITION_BEFORE_END: 'composition-before-end',\n COMPOSITION_END: 'composition-end'\n };\n static sources = {\n API: 'api',\n SILENT: 'silent',\n USER: 'user'\n };\n constructor() {\n super();\n this.domListeners = {};\n this.on('error', debug.error);\n }\n emit() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n debug.log.call(debug, ...args);\n // @ts-expect-error\n return super.emit(...args);\n }\n handleDOM(event) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n (this.domListeners[event.type] || []).forEach(_ref => {\n let {\n node,\n handler\n } = _ref;\n if (event.target === node || node.contains(event.target)) {\n handler(event, ...args);\n }\n });\n }\n listenDOM(eventName, node, handler) {\n if (!this.domListeners[eventName]) {\n this.domListeners[eventName] = [];\n }\n this.domListeners[eventName].push({\n node,\n handler\n });\n }\n}\nexport default Emitter;\n//# sourceMappingURL=emitter.js.map","import { LeafBlot, Scope } from 'parchment';\nimport { cloneDeep, isEqual } from 'lodash-es';\nimport Emitter from './emitter.js';\nimport logger from './logger.js';\nconst debug = logger('quill:selection');\nexport class Range {\n constructor(index) {\n let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n this.index = index;\n this.length = length;\n }\n}\nclass Selection {\n constructor(scroll, emitter) {\n this.emitter = emitter;\n this.scroll = scroll;\n this.composing = false;\n this.mouseDown = false;\n this.root = this.scroll.domNode;\n // @ts-expect-error\n this.cursor = this.scroll.create('cursor', this);\n // savedRange is last non-null range\n this.savedRange = new Range(0, 0);\n this.lastRange = this.savedRange;\n this.lastNative = null;\n this.handleComposition();\n this.handleDragging();\n this.emitter.listenDOM('selectionchange', document, () => {\n if (!this.mouseDown && !this.composing) {\n setTimeout(this.update.bind(this, Emitter.sources.USER), 1);\n }\n });\n this.emitter.on(Emitter.events.SCROLL_BEFORE_UPDATE, () => {\n if (!this.hasFocus()) return;\n const native = this.getNativeRange();\n if (native == null) return;\n if (native.start.node === this.cursor.textNode) return; // cursor.restore() will handle\n this.emitter.once(Emitter.events.SCROLL_UPDATE, (source, mutations) => {\n try {\n if (this.root.contains(native.start.node) && this.root.contains(native.end.node)) {\n this.setNativeRange(native.start.node, native.start.offset, native.end.node, native.end.offset);\n }\n const triggeredByTyping = mutations.some(mutation => mutation.type === 'characterData' || mutation.type === 'childList' || mutation.type === 'attributes' && mutation.target === this.root);\n this.update(triggeredByTyping ? Emitter.sources.SILENT : source);\n } catch (ignored) {\n // ignore\n }\n });\n });\n this.emitter.on(Emitter.events.SCROLL_OPTIMIZE, (mutations, context) => {\n if (context.range) {\n const {\n startNode,\n startOffset,\n endNode,\n endOffset\n } = context.range;\n this.setNativeRange(startNode, startOffset, endNode, endOffset);\n this.update(Emitter.sources.SILENT);\n }\n });\n this.update(Emitter.sources.SILENT);\n }\n handleComposition() {\n this.emitter.on(Emitter.events.COMPOSITION_BEFORE_START, () => {\n this.composing = true;\n });\n this.emitter.on(Emitter.events.COMPOSITION_END, () => {\n this.composing = false;\n if (this.cursor.parent) {\n const range = this.cursor.restore();\n if (!range) return;\n setTimeout(() => {\n this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }, 1);\n }\n });\n }\n handleDragging() {\n this.emitter.listenDOM('mousedown', document.body, () => {\n this.mouseDown = true;\n });\n this.emitter.listenDOM('mouseup', document.body, () => {\n this.mouseDown = false;\n this.update(Emitter.sources.USER);\n });\n }\n focus() {\n if (this.hasFocus()) return;\n this.root.focus({\n preventScroll: true\n });\n this.setRange(this.savedRange);\n }\n format(format, value) {\n this.scroll.update();\n const nativeRange = this.getNativeRange();\n if (nativeRange == null || !nativeRange.native.collapsed || this.scroll.query(format, Scope.BLOCK)) return;\n if (nativeRange.start.node !== this.cursor.textNode) {\n const blot = this.scroll.find(nativeRange.start.node, false);\n if (blot == null) return;\n // TODO Give blot ability to not split\n if (blot instanceof LeafBlot) {\n const after = blot.split(nativeRange.start.offset);\n blot.parent.insertBefore(this.cursor, after);\n } else {\n // @ts-expect-error TODO: nativeRange.start.node doesn't seem to match function signature\n blot.insertBefore(this.cursor, nativeRange.start.node); // Should never happen\n }\n this.cursor.attach();\n }\n this.cursor.format(format, value);\n this.scroll.optimize();\n this.setNativeRange(this.cursor.textNode, this.cursor.textNode.data.length);\n this.update();\n }\n getBounds(index) {\n let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n const scrollLength = this.scroll.length();\n index = Math.min(index, scrollLength - 1);\n length = Math.min(index + length, scrollLength - 1) - index;\n let node;\n let [leaf, offset] = this.scroll.leaf(index);\n if (leaf == null) return null;\n if (length > 0 && offset === leaf.length()) {\n const [next] = this.scroll.leaf(index + 1);\n if (next) {\n const [line] = this.scroll.line(index);\n const [nextLine] = this.scroll.line(index + 1);\n if (line === nextLine) {\n leaf = next;\n offset = 0;\n }\n }\n }\n [node, offset] = leaf.position(offset, true);\n const range = document.createRange();\n if (length > 0) {\n range.setStart(node, offset);\n [leaf, offset] = this.scroll.leaf(index + length);\n if (leaf == null) return null;\n [node, offset] = leaf.position(offset, true);\n range.setEnd(node, offset);\n return range.getBoundingClientRect();\n }\n let side = 'left';\n let rect;\n if (node instanceof Text) {\n // Return null if the text node is empty because it is\n // not able to get a useful client rect:\n // https://github.com/w3c/csswg-drafts/issues/2514.\n // Empty text nodes are most likely caused by TextBlot#optimize()\n // not getting called when editor content changes.\n if (!node.data.length) {\n return null;\n }\n if (offset < node.data.length) {\n range.setStart(node, offset);\n range.setEnd(node, offset + 1);\n } else {\n range.setStart(node, offset - 1);\n range.setEnd(node, offset);\n side = 'right';\n }\n rect = range.getBoundingClientRect();\n } else {\n if (!(leaf.domNode instanceof Element)) return null;\n rect = leaf.domNode.getBoundingClientRect();\n if (offset > 0) side = 'right';\n }\n return {\n bottom: rect.top + rect.height,\n height: rect.height,\n left: rect[side],\n right: rect[side],\n top: rect.top,\n width: 0\n };\n }\n getNativeRange() {\n const selection = document.getSelection();\n if (selection == null || selection.rangeCount <= 0) return null;\n const nativeRange = selection.getRangeAt(0);\n if (nativeRange == null) return null;\n const range = this.normalizeNative(nativeRange);\n debug.info('getNativeRange', range);\n return range;\n }\n getRange() {\n const root = this.scroll.domNode;\n if ('isConnected' in root && !root.isConnected) {\n // document.getSelection() forces layout on Blink, so we trend to\n // not calling it.\n return [null, null];\n }\n const normalized = this.getNativeRange();\n if (normalized == null) return [null, null];\n const range = this.normalizedToRange(normalized);\n return [range, normalized];\n }\n hasFocus() {\n return document.activeElement === this.root || document.activeElement != null && contains(this.root, document.activeElement);\n }\n normalizedToRange(range) {\n const positions = [[range.start.node, range.start.offset]];\n if (!range.native.collapsed) {\n positions.push([range.end.node, range.end.offset]);\n }\n const indexes = positions.map(position => {\n const [node, offset] = position;\n const blot = this.scroll.find(node, true);\n // @ts-expect-error Fix me later\n const index = blot.offset(this.scroll);\n if (offset === 0) {\n return index;\n }\n if (blot instanceof LeafBlot) {\n return index + blot.index(node, offset);\n }\n // @ts-expect-error Fix me later\n return index + blot.length();\n });\n const end = Math.min(Math.max(...indexes), this.scroll.length() - 1);\n const start = Math.min(end, ...indexes);\n return new Range(start, end - start);\n }\n normalizeNative(nativeRange) {\n if (!contains(this.root, nativeRange.startContainer) || !nativeRange.collapsed && !contains(this.root, nativeRange.endContainer)) {\n return null;\n }\n const range = {\n start: {\n node: nativeRange.startContainer,\n offset: nativeRange.startOffset\n },\n end: {\n node: nativeRange.endContainer,\n offset: nativeRange.endOffset\n },\n native: nativeRange\n };\n [range.start, range.end].forEach(position => {\n let {\n node,\n offset\n } = position;\n while (!(node instanceof Text) && node.childNodes.length > 0) {\n if (node.childNodes.length > offset) {\n node = node.childNodes[offset];\n offset = 0;\n } else if (node.childNodes.length === offset) {\n // @ts-expect-error Fix me later\n node = node.lastChild;\n if (node instanceof Text) {\n offset = node.data.length;\n } else if (node.childNodes.length > 0) {\n // Container case\n offset = node.childNodes.length;\n } else {\n // Embed case\n offset = node.childNodes.length + 1;\n }\n } else {\n break;\n }\n }\n position.node = node;\n position.offset = offset;\n });\n return range;\n }\n rangeToNative(range) {\n const scrollLength = this.scroll.length();\n const getPosition = (index, inclusive) => {\n index = Math.min(scrollLength - 1, index);\n const [leaf, leafOffset] = this.scroll.leaf(index);\n return leaf ? leaf.position(leafOffset, inclusive) : [null, -1];\n };\n return [...getPosition(range.index, false), ...getPosition(range.index + range.length, true)];\n }\n setNativeRange(startNode, startOffset) {\n let endNode = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : startNode;\n let endOffset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : startOffset;\n let force = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n debug.info('setNativeRange', startNode, startOffset, endNode, endOffset);\n if (startNode != null && (this.root.parentNode == null || startNode.parentNode == null ||\n // @ts-expect-error Fix me later\n endNode.parentNode == null)) {\n return;\n }\n const selection = document.getSelection();\n if (selection == null) return;\n if (startNode != null) {\n if (!this.hasFocus()) this.root.focus({\n preventScroll: true\n });\n const {\n native\n } = this.getNativeRange() || {};\n if (native == null || force || startNode !== native.startContainer || startOffset !== native.startOffset || endNode !== native.endContainer || endOffset !== native.endOffset) {\n if (startNode instanceof Element && startNode.tagName === 'BR') {\n // @ts-expect-error Fix me later\n startOffset = Array.from(startNode.parentNode.childNodes).indexOf(startNode);\n startNode = startNode.parentNode;\n }\n if (endNode instanceof Element && endNode.tagName === 'BR') {\n // @ts-expect-error Fix me later\n endOffset = Array.from(endNode.parentNode.childNodes).indexOf(endNode);\n endNode = endNode.parentNode;\n }\n const range = document.createRange();\n // @ts-expect-error Fix me later\n range.setStart(startNode, startOffset);\n // @ts-expect-error Fix me later\n range.setEnd(endNode, endOffset);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n } else {\n selection.removeAllRanges();\n this.root.blur();\n }\n }\n setRange(range) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Emitter.sources.API;\n if (typeof force === 'string') {\n source = force;\n force = false;\n }\n debug.info('setRange', range);\n if (range != null) {\n const args = this.rangeToNative(range);\n this.setNativeRange(...args, force);\n } else {\n this.setNativeRange(null);\n }\n this.update(source);\n }\n update() {\n let source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Emitter.sources.USER;\n const oldRange = this.lastRange;\n const [lastRange, nativeRange] = this.getRange();\n this.lastRange = lastRange;\n this.lastNative = nativeRange;\n if (this.lastRange != null) {\n this.savedRange = this.lastRange;\n }\n if (!isEqual(oldRange, this.lastRange)) {\n if (!this.composing && nativeRange != null && nativeRange.native.collapsed && nativeRange.start.node !== this.cursor.textNode) {\n const range = this.cursor.restore();\n if (range) {\n this.setNativeRange(range.startNode, range.startOffset, range.endNode, range.endOffset);\n }\n }\n const args = [Emitter.events.SELECTION_CHANGE, cloneDeep(this.lastRange), cloneDeep(oldRange), source];\n this.emitter.emit(Emitter.events.EDITOR_CHANGE, ...args);\n if (source !== Emitter.sources.SILENT) {\n this.emitter.emit(...args);\n }\n }\n }\n}\nfunction contains(parent, descendant) {\n try {\n // Firefox inserts inaccessible nodes around video elements\n descendant.parentNode; // eslint-disable-line @typescript-eslint/no-unused-expressions\n } catch (e) {\n return false;\n }\n return parent.contains(descendant);\n}\nexport default Selection;\n//# sourceMappingURL=selection.js.map","import { cloneDeep, isEqual, merge } from 'lodash-es';\nimport { LeafBlot, EmbedBlot, Scope, ParentBlot } from 'parchment';\nimport Delta, { AttributeMap, Op } from 'quill-delta';\nimport Block, { BlockEmbed, bubbleFormats } from '../blots/block.js';\nimport Break from '../blots/break.js';\nimport CursorBlot from '../blots/cursor.js';\nimport TextBlot, { escapeText } from '../blots/text.js';\nimport { Range } from './selection.js';\nconst ASCII = /^[ -~]*$/;\nclass Editor {\n constructor(scroll) {\n this.scroll = scroll;\n this.delta = this.getDelta();\n }\n applyDelta(delta) {\n this.scroll.update();\n let scrollLength = this.scroll.length();\n this.scroll.batchStart();\n const normalizedDelta = normalizeDelta(delta);\n const deleteDelta = new Delta();\n const normalizedOps = splitOpLines(normalizedDelta.ops.slice());\n normalizedOps.reduce((index, op) => {\n const length = Op.length(op);\n let attributes = op.attributes || {};\n let isImplicitNewlinePrepended = false;\n let isImplicitNewlineAppended = false;\n if (op.insert != null) {\n deleteDelta.retain(length);\n if (typeof op.insert === 'string') {\n const text = op.insert;\n isImplicitNewlineAppended = !text.endsWith('\\n') && (scrollLength <= index || !!this.scroll.descendant(BlockEmbed, index)[0]);\n this.scroll.insertAt(index, text);\n const [line, offset] = this.scroll.line(index);\n let formats = merge({}, bubbleFormats(line));\n if (line instanceof Block) {\n const [leaf] = line.descendant(LeafBlot, offset);\n if (leaf) {\n formats = merge(formats, bubbleFormats(leaf));\n }\n }\n attributes = AttributeMap.diff(formats, attributes) || {};\n } else if (typeof op.insert === 'object') {\n const key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n const isInlineEmbed = this.scroll.query(key, Scope.INLINE) != null;\n if (isInlineEmbed) {\n if (scrollLength <= index || !!this.scroll.descendant(BlockEmbed, index)[0]) {\n isImplicitNewlineAppended = true;\n }\n } else if (index > 0) {\n const [leaf, offset] = this.scroll.descendant(LeafBlot, index - 1);\n if (leaf instanceof TextBlot) {\n const text = leaf.value();\n if (text[offset] !== '\\n') {\n isImplicitNewlinePrepended = true;\n }\n } else if (leaf instanceof EmbedBlot && leaf.statics.scope === Scope.INLINE_BLOT) {\n isImplicitNewlinePrepended = true;\n }\n }\n this.scroll.insertAt(index, key, op.insert[key]);\n if (isInlineEmbed) {\n const [leaf] = this.scroll.descendant(LeafBlot, index);\n if (leaf) {\n const formats = merge({}, bubbleFormats(leaf));\n attributes = AttributeMap.diff(formats, attributes) || {};\n }\n }\n }\n scrollLength += length;\n } else {\n deleteDelta.push(op);\n if (op.retain !== null && typeof op.retain === 'object') {\n const key = Object.keys(op.retain)[0];\n if (key == null) return index;\n this.scroll.updateEmbedAt(index, key, op.retain[key]);\n }\n }\n Object.keys(attributes).forEach(name => {\n this.scroll.formatAt(index, length, name, attributes[name]);\n });\n const prependedLength = isImplicitNewlinePrepended ? 1 : 0;\n const addedLength = isImplicitNewlineAppended ? 1 : 0;\n scrollLength += prependedLength + addedLength;\n deleteDelta.retain(prependedLength);\n deleteDelta.delete(addedLength);\n return index + length + prependedLength + addedLength;\n }, 0);\n deleteDelta.reduce((index, op) => {\n if (typeof op.delete === 'number') {\n this.scroll.deleteAt(index, op.delete);\n return index;\n }\n return index + Op.length(op);\n }, 0);\n this.scroll.batchEnd();\n this.scroll.optimize();\n return this.update(normalizedDelta);\n }\n deleteText(index, length) {\n this.scroll.deleteAt(index, length);\n return this.update(new Delta().retain(index).delete(length));\n }\n formatLine(index, length) {\n let formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.scroll.update();\n Object.keys(formats).forEach(format => {\n this.scroll.lines(index, Math.max(length, 1)).forEach(line => {\n line.format(format, formats[format]);\n });\n });\n this.scroll.optimize();\n const delta = new Delta().retain(index).retain(length, cloneDeep(formats));\n return this.update(delta);\n }\n formatText(index, length) {\n let formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Object.keys(formats).forEach(format => {\n this.scroll.formatAt(index, length, format, formats[format]);\n });\n const delta = new Delta().retain(index).retain(length, cloneDeep(formats));\n return this.update(delta);\n }\n getContents(index, length) {\n return this.delta.slice(index, index + length);\n }\n getDelta() {\n return this.scroll.lines().reduce((delta, line) => {\n return delta.concat(line.delta());\n }, new Delta());\n }\n getFormat(index) {\n let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let lines = [];\n let leaves = [];\n if (length === 0) {\n this.scroll.path(index).forEach(path => {\n const [blot] = path;\n if (blot instanceof Block) {\n lines.push(blot);\n } else if (blot instanceof LeafBlot) {\n leaves.push(blot);\n }\n });\n } else {\n lines = this.scroll.lines(index, length);\n leaves = this.scroll.descendants(LeafBlot, index, length);\n }\n const [lineFormats, leafFormats] = [lines, leaves].map(blots => {\n const blot = blots.shift();\n if (blot == null) return {};\n let formats = bubbleFormats(blot);\n while (Object.keys(formats).length > 0) {\n const blot = blots.shift();\n if (blot == null) return formats;\n formats = combineFormats(bubbleFormats(blot), formats);\n }\n return formats;\n });\n return {\n ...lineFormats,\n ...leafFormats\n };\n }\n getHTML(index, length) {\n const [line, lineOffset] = this.scroll.line(index);\n if (line) {\n const lineLength = line.length();\n const isWithinLine = line.length() >= lineOffset + length;\n if (isWithinLine && !(lineOffset === 0 && length === lineLength)) {\n return convertHTML(line, lineOffset, length, true);\n }\n return convertHTML(this.scroll, index, length, true);\n }\n return '';\n }\n getText(index, length) {\n return this.getContents(index, length).filter(op => typeof op.insert === 'string').map(op => op.insert).join('');\n }\n insertContents(index, contents) {\n const normalizedDelta = normalizeDelta(contents);\n const change = new Delta().retain(index).concat(normalizedDelta);\n this.scroll.insertContents(index, normalizedDelta);\n return this.update(change);\n }\n insertEmbed(index, embed, value) {\n this.scroll.insertAt(index, embed, value);\n return this.update(new Delta().retain(index).insert({\n [embed]: value\n }));\n }\n insertText(index, text) {\n let formats = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n text = text.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n this.scroll.insertAt(index, text);\n Object.keys(formats).forEach(format => {\n this.scroll.formatAt(index, text.length, format, formats[format]);\n });\n return this.update(new Delta().retain(index).insert(text, cloneDeep(formats)));\n }\n isBlank() {\n if (this.scroll.children.length === 0) return true;\n if (this.scroll.children.length > 1) return false;\n const blot = this.scroll.children.head;\n if (blot?.statics.blotName !== Block.blotName) return false;\n const block = blot;\n if (block.children.length > 1) return false;\n return block.children.head instanceof Break;\n }\n removeFormat(index, length) {\n const text = this.getText(index, length);\n const [line, offset] = this.scroll.line(index + length);\n let suffixLength = 0;\n let suffix = new Delta();\n if (line != null) {\n suffixLength = line.length() - offset;\n suffix = line.delta().slice(offset, offset + suffixLength - 1).insert('\\n');\n }\n const contents = this.getContents(index, length + suffixLength);\n const diff = contents.diff(new Delta().insert(text).concat(suffix));\n const delta = new Delta().retain(index).concat(diff);\n return this.applyDelta(delta);\n }\n update(change) {\n let mutations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];\n let selectionInfo = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n const oldDelta = this.delta;\n if (mutations.length === 1 && mutations[0].type === 'characterData' &&\n // @ts-expect-error Fix me later\n mutations[0].target.data.match(ASCII) && this.scroll.find(mutations[0].target)) {\n // Optimization for character changes\n const textBlot = this.scroll.find(mutations[0].target);\n const formats = bubbleFormats(textBlot);\n const index = textBlot.offset(this.scroll);\n // @ts-expect-error Fix me later\n const oldValue = mutations[0].oldValue.replace(CursorBlot.CONTENTS, '');\n const oldText = new Delta().insert(oldValue);\n // @ts-expect-error\n const newText = new Delta().insert(textBlot.value());\n const relativeSelectionInfo = selectionInfo && {\n oldRange: shiftRange(selectionInfo.oldRange, -index),\n newRange: shiftRange(selectionInfo.newRange, -index)\n };\n const diffDelta = new Delta().retain(index).concat(oldText.diff(newText, relativeSelectionInfo));\n change = diffDelta.reduce((delta, op) => {\n if (op.insert) {\n return delta.insert(op.insert, formats);\n }\n return delta.push(op);\n }, new Delta());\n this.delta = oldDelta.compose(change);\n } else {\n this.delta = this.getDelta();\n if (!change || !isEqual(oldDelta.compose(change), this.delta)) {\n change = oldDelta.diff(this.delta, selectionInfo);\n }\n }\n return change;\n }\n}\nfunction convertListHTML(items, lastIndent, types) {\n if (items.length === 0) {\n const [endTag] = getListType(types.pop());\n if (lastIndent <= 0) {\n return ``;\n }\n return `${convertListHTML([], lastIndent - 1, types)}`;\n }\n const [{\n child,\n offset,\n length,\n indent,\n type\n }, ...rest] = items;\n const [tag, attribute] = getListType(type);\n if (indent > lastIndent) {\n types.push(type);\n if (indent === lastIndent + 1) {\n return `<${tag}>${convertHTML(child, offset, length)}${convertListHTML(rest, indent, types)}`;\n }\n return `<${tag}>
  • ${convertListHTML(items, lastIndent + 1, types)}`;\n }\n const previousType = types[types.length - 1];\n if (indent === lastIndent && type === previousType) {\n return `
  • ${convertHTML(child, offset, length)}${convertListHTML(rest, indent, types)}`;\n }\n const [endTag] = getListType(types.pop());\n return `${convertListHTML(items, lastIndent - 1, types)}`;\n}\nfunction convertHTML(blot, index, length) {\n let isRoot = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n if ('html' in blot && typeof blot.html === 'function') {\n return blot.html(index, length);\n }\n if (blot instanceof TextBlot) {\n return escapeText(blot.value().slice(index, index + length));\n }\n if (blot instanceof ParentBlot) {\n // TODO fix API\n if (blot.statics.blotName === 'list-container') {\n const items = [];\n blot.children.forEachAt(index, length, (child, offset, childLength) => {\n const formats = 'formats' in child && typeof child.formats === 'function' ? child.formats() : {};\n items.push({\n child,\n offset,\n length: childLength,\n indent: formats.indent || 0,\n type: formats.list\n });\n });\n return convertListHTML(items, -1, []);\n }\n const parts = [];\n blot.children.forEachAt(index, length, (child, offset, childLength) => {\n parts.push(convertHTML(child, offset, childLength));\n });\n if (isRoot || blot.statics.blotName === 'list') {\n return parts.join('');\n }\n const {\n outerHTML,\n innerHTML\n } = blot.domNode;\n const [start, end] = outerHTML.split(`>${innerHTML}<`);\n // TODO cleanup\n if (start === '${parts.join('')}<${end}`;\n }\n return `${start}>${parts.join('')}<${end}`;\n }\n return blot.domNode instanceof Element ? blot.domNode.outerHTML : '';\n}\nfunction combineFormats(formats, combined) {\n return Object.keys(combined).reduce((merged, name) => {\n if (formats[name] == null) return merged;\n const combinedValue = combined[name];\n if (combinedValue === formats[name]) {\n merged[name] = combinedValue;\n } else if (Array.isArray(combinedValue)) {\n if (combinedValue.indexOf(formats[name]) < 0) {\n merged[name] = combinedValue.concat([formats[name]]);\n } else {\n // If style already exists, don't add to an array, but don't lose other styles\n merged[name] = combinedValue;\n }\n } else {\n merged[name] = [combinedValue, formats[name]];\n }\n return merged;\n }, {});\n}\nfunction getListType(type) {\n const tag = type === 'ordered' ? 'ol' : 'ul';\n switch (type) {\n case 'checked':\n return [tag, ' data-list=\"checked\"'];\n case 'unchecked':\n return [tag, ' data-list=\"unchecked\"'];\n default:\n return [tag, ''];\n }\n}\nfunction normalizeDelta(delta) {\n return delta.reduce((normalizedDelta, op) => {\n if (typeof op.insert === 'string') {\n const text = op.insert.replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n');\n return normalizedDelta.insert(text, op.attributes);\n }\n return normalizedDelta.push(op);\n }, new Delta());\n}\nfunction shiftRange(_ref, amount) {\n let {\n index,\n length\n } = _ref;\n return new Range(index + amount, length);\n}\nfunction splitOpLines(ops) {\n const split = [];\n ops.forEach(op => {\n if (typeof op.insert === 'string') {\n const lines = op.insert.split('\\n');\n lines.forEach((line, index) => {\n if (index) split.push({\n insert: '\\n',\n attributes: op.attributes\n });\n if (line) split.push({\n insert: line,\n attributes: op.attributes\n });\n });\n } else {\n split.push(op);\n }\n });\n return split;\n}\nexport default Editor;\n//# sourceMappingURL=editor.js.map","class Module {\n static DEFAULTS = {};\n constructor(quill) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.quill = quill;\n this.options = options;\n }\n}\nexport default Module;\n//# sourceMappingURL=module.js.map","import { EmbedBlot } from 'parchment';\nimport TextBlot from './text.js';\nconst GUARD_TEXT = '\\uFEFF';\nclass Embed extends EmbedBlot {\n constructor(scroll, node) {\n super(scroll, node);\n this.contentNode = document.createElement('span');\n this.contentNode.setAttribute('contenteditable', 'false');\n Array.from(this.domNode.childNodes).forEach(childNode => {\n this.contentNode.appendChild(childNode);\n });\n this.leftGuard = document.createTextNode(GUARD_TEXT);\n this.rightGuard = document.createTextNode(GUARD_TEXT);\n this.domNode.appendChild(this.leftGuard);\n this.domNode.appendChild(this.contentNode);\n this.domNode.appendChild(this.rightGuard);\n }\n index(node, offset) {\n if (node === this.leftGuard) return 0;\n if (node === this.rightGuard) return 1;\n return super.index(node, offset);\n }\n restore(node) {\n let range = null;\n let textNode;\n const text = node.data.split(GUARD_TEXT).join('');\n if (node === this.leftGuard) {\n if (this.prev instanceof TextBlot) {\n const prevLength = this.prev.length();\n this.prev.insertAt(prevLength, text);\n range = {\n startNode: this.prev.domNode,\n startOffset: prevLength + text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(this.scroll.create(textNode), this);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n } else if (node === this.rightGuard) {\n if (this.next instanceof TextBlot) {\n this.next.insertAt(0, text);\n range = {\n startNode: this.next.domNode,\n startOffset: text.length\n };\n } else {\n textNode = document.createTextNode(text);\n this.parent.insertBefore(this.scroll.create(textNode), this.next);\n range = {\n startNode: textNode,\n startOffset: text.length\n };\n }\n }\n node.data = GUARD_TEXT;\n return range;\n }\n update(mutations, context) {\n mutations.forEach(mutation => {\n if (mutation.type === 'characterData' && (mutation.target === this.leftGuard || mutation.target === this.rightGuard)) {\n const range = this.restore(mutation.target);\n if (range) context.range = range;\n }\n });\n }\n}\nexport default Embed;\n//# sourceMappingURL=embed.js.map","import Embed from '../blots/embed.js';\nimport Emitter from './emitter.js';\nclass Composition {\n isComposing = false;\n constructor(scroll, emitter) {\n this.scroll = scroll;\n this.emitter = emitter;\n this.setupListeners();\n }\n setupListeners() {\n this.scroll.domNode.addEventListener('compositionstart', event => {\n if (!this.isComposing) {\n this.handleCompositionStart(event);\n }\n });\n this.scroll.domNode.addEventListener('compositionend', event => {\n if (this.isComposing) {\n // Webkit makes DOM changes after compositionend, so we use microtask to\n // ensure the order.\n // https://bugs.webkit.org/show_bug.cgi?id=31902\n queueMicrotask(() => {\n this.handleCompositionEnd(event);\n });\n }\n });\n }\n handleCompositionStart(event) {\n const blot = event.target instanceof Node ? this.scroll.find(event.target, true) : null;\n if (blot && !(blot instanceof Embed)) {\n this.emitter.emit(Emitter.events.COMPOSITION_BEFORE_START, event);\n this.scroll.batchStart();\n this.emitter.emit(Emitter.events.COMPOSITION_START, event);\n this.isComposing = true;\n }\n }\n handleCompositionEnd(event) {\n this.emitter.emit(Emitter.events.COMPOSITION_BEFORE_END, event);\n this.scroll.batchEnd();\n this.emitter.emit(Emitter.events.COMPOSITION_END, event);\n this.isComposing = false;\n }\n}\nexport default Composition;\n//# sourceMappingURL=composition.js.map","class Theme {\n static DEFAULTS = {\n modules: {}\n };\n static themes = {\n default: Theme\n };\n modules = {};\n constructor(quill, options) {\n this.quill = quill;\n this.options = options;\n }\n init() {\n Object.keys(this.options.modules).forEach(name => {\n if (this.modules[name] == null) {\n this.addModule(name);\n }\n });\n }\n addModule(name) {\n // @ts-expect-error\n const ModuleClass = this.quill.constructor.import(`modules/${name}`);\n this.modules[name] = new ModuleClass(this.quill, this.options.modules[name] || {});\n return this.modules[name];\n }\n}\nexport default Theme;\n//# sourceMappingURL=theme.js.map","const getParentElement = element => element.parentElement || element.getRootNode().host || null;\nconst getElementRect = element => {\n const rect = element.getBoundingClientRect();\n const scaleX = 'offsetWidth' in element && Math.abs(rect.width) / element.offsetWidth || 1;\n const scaleY = 'offsetHeight' in element && Math.abs(rect.height) / element.offsetHeight || 1;\n return {\n top: rect.top,\n right: rect.left + element.clientWidth * scaleX,\n bottom: rect.top + element.clientHeight * scaleY,\n left: rect.left\n };\n};\nconst paddingValueToInt = value => {\n const number = parseInt(value, 10);\n return Number.isNaN(number) ? 0 : number;\n};\n\n// Follow the steps described in https://www.w3.org/TR/cssom-view-1/#element-scrolling-members,\n// assuming that the scroll option is set to 'nearest'.\nconst getScrollDistance = (targetStart, targetEnd, scrollStart, scrollEnd, scrollPaddingStart, scrollPaddingEnd) => {\n if (targetStart < scrollStart && targetEnd > scrollEnd) {\n return 0;\n }\n if (targetStart < scrollStart) {\n return -(scrollStart - targetStart + scrollPaddingStart);\n }\n if (targetEnd > scrollEnd) {\n return targetEnd - targetStart > scrollEnd - scrollStart ? targetStart + scrollPaddingStart - scrollStart : targetEnd - scrollEnd + scrollPaddingEnd;\n }\n return 0;\n};\nconst scrollRectIntoView = (root, targetRect) => {\n const document = root.ownerDocument;\n let rect = targetRect;\n let current = root;\n while (current) {\n const isDocumentBody = current === document.body;\n const bounding = isDocumentBody ? {\n top: 0,\n right: window.visualViewport?.width ?? document.documentElement.clientWidth,\n bottom: window.visualViewport?.height ?? document.documentElement.clientHeight,\n left: 0\n } : getElementRect(current);\n const style = getComputedStyle(current);\n const scrollDistanceX = getScrollDistance(rect.left, rect.right, bounding.left, bounding.right, paddingValueToInt(style.scrollPaddingLeft), paddingValueToInt(style.scrollPaddingRight));\n const scrollDistanceY = getScrollDistance(rect.top, rect.bottom, bounding.top, bounding.bottom, paddingValueToInt(style.scrollPaddingTop), paddingValueToInt(style.scrollPaddingBottom));\n if (scrollDistanceX || scrollDistanceY) {\n if (isDocumentBody) {\n document.defaultView?.scrollBy(scrollDistanceX, scrollDistanceY);\n } else {\n const {\n scrollLeft,\n scrollTop\n } = current;\n if (scrollDistanceY) {\n current.scrollTop += scrollDistanceY;\n }\n if (scrollDistanceX) {\n current.scrollLeft += scrollDistanceX;\n }\n const scrolledLeft = current.scrollLeft - scrollLeft;\n const scrolledTop = current.scrollTop - scrollTop;\n rect = {\n left: rect.left - scrolledLeft,\n top: rect.top - scrolledTop,\n right: rect.right - scrolledLeft,\n bottom: rect.bottom - scrolledTop\n };\n }\n }\n current = isDocumentBody || style.position === 'fixed' ? null : getParentElement(current);\n }\n};\nexport default scrollRectIntoView;\n//# sourceMappingURL=scrollRectIntoView.js.map","import { Registry } from 'parchment';\nconst MAX_REGISTER_ITERATIONS = 100;\nconst CORE_FORMATS = ['block', 'break', 'cursor', 'inline', 'scroll', 'text'];\nconst createRegistryWithFormats = (formats, sourceRegistry, debug) => {\n const registry = new Registry();\n CORE_FORMATS.forEach(name => {\n const coreBlot = sourceRegistry.query(name);\n if (coreBlot) registry.register(coreBlot);\n });\n formats.forEach(name => {\n let format = sourceRegistry.query(name);\n if (!format) {\n debug.error(`Cannot register \"${name}\" specified in \"formats\" config. Are you sure it was registered?`);\n }\n let iterations = 0;\n while (format) {\n registry.register(format);\n format = 'blotName' in format ? format.requiredContainer ?? null : null;\n iterations += 1;\n if (iterations > MAX_REGISTER_ITERATIONS) {\n debug.error(`Cycle detected in registering blot requiredContainer: \"${name}\"`);\n break;\n }\n }\n });\n return registry;\n};\nexport default createRegistryWithFormats;\n//# sourceMappingURL=createRegistryWithFormats.js.map","import { merge } from 'lodash-es';\nimport * as Parchment from 'parchment';\nimport Delta from 'quill-delta';\nimport Editor from './editor.js';\nimport Emitter from './emitter.js';\nimport instances from './instances.js';\nimport logger from './logger.js';\nimport Module from './module.js';\nimport Selection, { Range } from './selection.js';\nimport Composition from './composition.js';\nimport Theme from './theme.js';\nimport scrollRectIntoView from './utils/scrollRectIntoView.js';\nimport createRegistryWithFormats from './utils/createRegistryWithFormats.js';\nconst debug = logger('quill');\nconst globalRegistry = new Parchment.Registry();\nParchment.ParentBlot.uiClass = 'ql-ui';\n\n/**\n * Options for initializing a Quill instance\n */\n\n/**\n * Similar to QuillOptions, but with all properties expanded to their default values,\n * and all selectors resolved to HTMLElements.\n */\n\nclass Quill {\n static DEFAULTS = {\n bounds: null,\n modules: {\n clipboard: true,\n keyboard: true,\n history: true,\n uploader: true\n },\n placeholder: '',\n readOnly: false,\n registry: globalRegistry,\n theme: 'default'\n };\n static events = Emitter.events;\n static sources = Emitter.sources;\n static version = typeof \"2.0.2\" === 'undefined' ? 'dev' : \"2.0.2\";\n static imports = {\n delta: Delta,\n parchment: Parchment,\n 'core/module': Module,\n 'core/theme': Theme\n };\n static debug(limit) {\n if (limit === true) {\n limit = 'log';\n }\n logger.level(limit);\n }\n static find(node) {\n let bubble = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n return instances.get(node) || globalRegistry.find(node, bubble);\n }\n static import(name) {\n if (this.imports[name] == null) {\n debug.error(`Cannot import ${name}. Are you sure it was registered?`);\n }\n return this.imports[name];\n }\n static register() {\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) !== 'string') {\n const target = arguments.length <= 0 ? undefined : arguments[0];\n const overwrite = !!(arguments.length <= 1 ? undefined : arguments[1]);\n const name = 'attrName' in target ? target.attrName : target.blotName;\n if (typeof name === 'string') {\n // Shortcut for formats:\n // register(Blot | Attributor, overwrite)\n this.register(`formats/${name}`, target, overwrite);\n } else {\n Object.keys(target).forEach(key => {\n this.register(key, target[key], overwrite);\n });\n }\n } else {\n const path = arguments.length <= 0 ? undefined : arguments[0];\n const target = arguments.length <= 1 ? undefined : arguments[1];\n const overwrite = !!(arguments.length <= 2 ? undefined : arguments[2]);\n if (this.imports[path] != null && !overwrite) {\n debug.warn(`Overwriting ${path} with`, target);\n }\n this.imports[path] = target;\n if ((path.startsWith('blots/') || path.startsWith('formats/')) && target && typeof target !== 'boolean' && target.blotName !== 'abstract') {\n globalRegistry.register(target);\n }\n if (typeof target.register === 'function') {\n target.register(globalRegistry);\n }\n }\n }\n constructor(container) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.options = expandConfig(container, options);\n this.container = this.options.container;\n if (this.container == null) {\n debug.error('Invalid Quill container', container);\n return;\n }\n if (this.options.debug) {\n Quill.debug(this.options.debug);\n }\n const html = this.container.innerHTML.trim();\n this.container.classList.add('ql-container');\n this.container.innerHTML = '';\n instances.set(this.container, this);\n this.root = this.addContainer('ql-editor');\n this.root.classList.add('ql-blank');\n this.emitter = new Emitter();\n const scrollBlotName = Parchment.ScrollBlot.blotName;\n const ScrollBlot = this.options.registry.query(scrollBlotName);\n if (!ScrollBlot || !('blotName' in ScrollBlot)) {\n throw new Error(`Cannot initialize Quill without \"${scrollBlotName}\" blot`);\n }\n this.scroll = new ScrollBlot(this.options.registry, this.root, {\n emitter: this.emitter\n });\n this.editor = new Editor(this.scroll);\n this.selection = new Selection(this.scroll, this.emitter);\n this.composition = new Composition(this.scroll, this.emitter);\n this.theme = new this.options.theme(this, this.options); // eslint-disable-line new-cap\n this.keyboard = this.theme.addModule('keyboard');\n this.clipboard = this.theme.addModule('clipboard');\n this.history = this.theme.addModule('history');\n this.uploader = this.theme.addModule('uploader');\n this.theme.addModule('input');\n this.theme.addModule('uiNode');\n this.theme.init();\n this.emitter.on(Emitter.events.EDITOR_CHANGE, type => {\n if (type === Emitter.events.TEXT_CHANGE) {\n this.root.classList.toggle('ql-blank', this.editor.isBlank());\n }\n });\n this.emitter.on(Emitter.events.SCROLL_UPDATE, (source, mutations) => {\n const oldRange = this.selection.lastRange;\n const [newRange] = this.selection.getRange();\n const selectionInfo = oldRange && newRange ? {\n oldRange,\n newRange\n } : undefined;\n modify.call(this, () => this.editor.update(null, mutations, selectionInfo), source);\n });\n this.emitter.on(Emitter.events.SCROLL_EMBED_UPDATE, (blot, delta) => {\n const oldRange = this.selection.lastRange;\n const [newRange] = this.selection.getRange();\n const selectionInfo = oldRange && newRange ? {\n oldRange,\n newRange\n } : undefined;\n modify.call(this, () => {\n const change = new Delta().retain(blot.offset(this)).retain({\n [blot.statics.blotName]: delta\n });\n return this.editor.update(change, [], selectionInfo);\n }, Quill.sources.USER);\n });\n if (html) {\n const contents = this.clipboard.convert({\n html: `${html}


    `,\n text: '\\n'\n });\n this.setContents(contents);\n }\n this.history.clear();\n if (this.options.placeholder) {\n this.root.setAttribute('data-placeholder', this.options.placeholder);\n }\n if (this.options.readOnly) {\n this.disable();\n }\n this.allowReadOnlyEdits = false;\n }\n addContainer(container) {\n let refNode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (typeof container === 'string') {\n const className = container;\n container = document.createElement('div');\n container.classList.add(className);\n }\n this.container.insertBefore(container, refNode);\n return container;\n }\n blur() {\n this.selection.setRange(null);\n }\n deleteText(index, length, source) {\n // @ts-expect-error\n [index, length,, source] = overload(index, length, source);\n return modify.call(this, () => {\n return this.editor.deleteText(index, length);\n }, source, index, -1 * length);\n }\n disable() {\n this.enable(false);\n }\n editReadOnly(modifier) {\n this.allowReadOnlyEdits = true;\n const value = modifier();\n this.allowReadOnlyEdits = false;\n return value;\n }\n enable() {\n let enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.scroll.enable(enabled);\n this.container.classList.toggle('ql-disabled', !enabled);\n }\n focus() {\n let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.selection.focus();\n if (!options.preventScroll) {\n this.scrollSelectionIntoView();\n }\n }\n format(name, value) {\n let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Emitter.sources.API;\n return modify.call(this, () => {\n const range = this.getSelection(true);\n let change = new Delta();\n if (range == null) return change;\n if (this.scroll.query(name, Parchment.Scope.BLOCK)) {\n change = this.editor.formatLine(range.index, range.length, {\n [name]: value\n });\n } else if (range.length === 0) {\n this.selection.format(name, value);\n return change;\n } else {\n change = this.editor.formatText(range.index, range.length, {\n [name]: value\n });\n }\n this.setSelection(range, Emitter.sources.SILENT);\n return change;\n }, source);\n }\n formatLine(index, length, name, value, source) {\n let formats;\n // eslint-disable-next-line prefer-const\n [index, length, formats, source] = overload(index, length,\n // @ts-expect-error\n name, value, source);\n return modify.call(this, () => {\n return this.editor.formatLine(index, length, formats);\n }, source, index, 0);\n }\n formatText(index, length, name, value, source) {\n let formats;\n // eslint-disable-next-line prefer-const\n [index, length, formats, source] = overload(\n // @ts-expect-error\n index, length, name, value, source);\n return modify.call(this, () => {\n return this.editor.formatText(index, length, formats);\n }, source, index, 0);\n }\n getBounds(index) {\n let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n let bounds = null;\n if (typeof index === 'number') {\n bounds = this.selection.getBounds(index, length);\n } else {\n bounds = this.selection.getBounds(index.index, index.length);\n }\n if (!bounds) return null;\n const containerBounds = this.container.getBoundingClientRect();\n return {\n bottom: bounds.bottom - containerBounds.top,\n height: bounds.height,\n left: bounds.left - containerBounds.left,\n right: bounds.right - containerBounds.left,\n top: bounds.top - containerBounds.top,\n width: bounds.width\n };\n }\n getContents() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.getLength() - index;\n [index, length] = overload(index, length);\n return this.editor.getContents(index, length);\n }\n getFormat() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.getSelection(true);\n let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n if (typeof index === 'number') {\n return this.editor.getFormat(index, length);\n }\n return this.editor.getFormat(index.index, index.length);\n }\n getIndex(blot) {\n return blot.offset(this.scroll);\n }\n getLength() {\n return this.scroll.length();\n }\n getLeaf(index) {\n return this.scroll.leaf(index);\n }\n getLine(index) {\n return this.scroll.line(index);\n }\n getLines() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n if (typeof index !== 'number') {\n return this.scroll.lines(index.index, index.length);\n }\n return this.scroll.lines(index, length);\n }\n getModule(name) {\n return this.theme.modules[name];\n }\n getSelection() {\n let focus = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n if (focus) this.focus();\n this.update(); // Make sure we access getRange with editor in consistent state\n return this.selection.getRange()[0];\n }\n getSemanticHTML() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let length = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof index === 'number') {\n length = length ?? this.getLength() - index;\n }\n // @ts-expect-error\n [index, length] = overload(index, length);\n return this.editor.getHTML(index, length);\n }\n getText() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let length = arguments.length > 1 ? arguments[1] : undefined;\n if (typeof index === 'number') {\n length = length ?? this.getLength() - index;\n }\n // @ts-expect-error\n [index, length] = overload(index, length);\n return this.editor.getText(index, length);\n }\n hasFocus() {\n return this.selection.hasFocus();\n }\n insertEmbed(index, embed, value) {\n let source = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Quill.sources.API;\n return modify.call(this, () => {\n return this.editor.insertEmbed(index, embed, value);\n }, source, index);\n }\n insertText(index, text, name, value, source) {\n let formats;\n // eslint-disable-next-line prefer-const\n // @ts-expect-error\n [index,, formats, source] = overload(index, 0, name, value, source);\n return modify.call(this, () => {\n return this.editor.insertText(index, text, formats);\n }, source, index, text.length);\n }\n isEnabled() {\n return this.scroll.isEnabled();\n }\n off() {\n return this.emitter.off(...arguments);\n }\n on() {\n return this.emitter.on(...arguments);\n }\n once() {\n return this.emitter.once(...arguments);\n }\n removeFormat(index, length, source) {\n [index, length,, source] = overload(index, length, source);\n return modify.call(this, () => {\n return this.editor.removeFormat(index, length);\n }, source, index);\n }\n scrollRectIntoView(rect) {\n scrollRectIntoView(this.root, rect);\n }\n\n /**\n * @deprecated Use Quill#scrollSelectionIntoView() instead.\n */\n scrollIntoView() {\n console.warn('Quill#scrollIntoView() has been deprecated and will be removed in the near future. Please use Quill#scrollSelectionIntoView() instead.');\n this.scrollSelectionIntoView();\n }\n\n /**\n * Scroll the current selection into the visible area.\n * If the selection is already visible, no scrolling will occur.\n */\n scrollSelectionIntoView() {\n const range = this.selection.lastRange;\n const bounds = range && this.selection.getBounds(range.index, range.length);\n if (bounds) {\n this.scrollRectIntoView(bounds);\n }\n }\n setContents(delta) {\n let source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Emitter.sources.API;\n return modify.call(this, () => {\n delta = new Delta(delta);\n const length = this.getLength();\n // Quill will set empty editor to \\n\n const delete1 = this.editor.deleteText(0, length);\n const applied = this.editor.insertContents(0, delta);\n // Remove extra \\n from empty editor initialization\n const delete2 = this.editor.deleteText(this.getLength() - 1, 1);\n return delete1.compose(applied).compose(delete2);\n }, source);\n }\n setSelection(index, length, source) {\n if (index == null) {\n // @ts-expect-error https://github.com/microsoft/TypeScript/issues/22609\n this.selection.setRange(null, length || Quill.sources.API);\n } else {\n // @ts-expect-error\n [index, length,, source] = overload(index, length, source);\n this.selection.setRange(new Range(Math.max(0, index), length), source);\n if (source !== Emitter.sources.SILENT) {\n this.scrollSelectionIntoView();\n }\n }\n }\n setText(text) {\n let source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Emitter.sources.API;\n const delta = new Delta().insert(text);\n return this.setContents(delta, source);\n }\n update() {\n let source = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Emitter.sources.USER;\n const change = this.scroll.update(source); // Will update selection before selection.update() does if text changes\n this.selection.update(source);\n // TODO this is usually undefined\n return change;\n }\n updateContents(delta) {\n let source = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Emitter.sources.API;\n return modify.call(this, () => {\n delta = new Delta(delta);\n return this.editor.applyDelta(delta);\n }, source, true);\n }\n}\nfunction resolveSelector(selector) {\n return typeof selector === 'string' ? document.querySelector(selector) : selector;\n}\nfunction expandModuleConfig(config) {\n return Object.entries(config ?? {}).reduce((expanded, _ref) => {\n let [key, value] = _ref;\n return {\n ...expanded,\n [key]: value === true ? {} : value\n };\n }, {});\n}\nfunction omitUndefinedValuesFromOptions(obj) {\n return Object.fromEntries(Object.entries(obj).filter(entry => entry[1] !== undefined));\n}\nfunction expandConfig(containerOrSelector, options) {\n const container = resolveSelector(containerOrSelector);\n if (!container) {\n throw new Error('Invalid Quill container');\n }\n const shouldUseDefaultTheme = !options.theme || options.theme === Quill.DEFAULTS.theme;\n const theme = shouldUseDefaultTheme ? Theme : Quill.import(`themes/${options.theme}`);\n if (!theme) {\n throw new Error(`Invalid theme ${options.theme}. Did you register it?`);\n }\n const {\n modules: quillModuleDefaults,\n ...quillDefaults\n } = Quill.DEFAULTS;\n const {\n modules: themeModuleDefaults,\n ...themeDefaults\n } = theme.DEFAULTS;\n let userModuleOptions = expandModuleConfig(options.modules);\n // Special case toolbar shorthand\n if (userModuleOptions != null && userModuleOptions.toolbar && userModuleOptions.toolbar.constructor !== Object) {\n userModuleOptions = {\n ...userModuleOptions,\n toolbar: {\n container: userModuleOptions.toolbar\n }\n };\n }\n const modules = merge({}, expandModuleConfig(quillModuleDefaults), expandModuleConfig(themeModuleDefaults), userModuleOptions);\n const config = {\n ...quillDefaults,\n ...omitUndefinedValuesFromOptions(themeDefaults),\n ...omitUndefinedValuesFromOptions(options)\n };\n let registry = options.registry;\n if (registry) {\n if (options.formats) {\n debug.warn('Ignoring \"formats\" option because \"registry\" is specified');\n }\n } else {\n registry = options.formats ? createRegistryWithFormats(options.formats, config.registry, debug) : config.registry;\n }\n return {\n ...config,\n registry,\n container,\n theme,\n modules: Object.entries(modules).reduce((modulesWithDefaults, _ref2) => {\n let [name, value] = _ref2;\n if (!value) return modulesWithDefaults;\n const moduleClass = Quill.import(`modules/${name}`);\n if (moduleClass == null) {\n debug.error(`Cannot load ${name} module. Are you sure you registered it?`);\n return modulesWithDefaults;\n }\n return {\n ...modulesWithDefaults,\n // @ts-expect-error\n [name]: merge({}, moduleClass.DEFAULTS || {}, value)\n };\n }, {}),\n bounds: resolveSelector(config.bounds)\n };\n}\n\n// Handle selection preservation and TEXT_CHANGE emission\n// common to modification APIs\nfunction modify(modifier, source, index, shift) {\n if (!this.isEnabled() && source === Emitter.sources.USER && !this.allowReadOnlyEdits) {\n return new Delta();\n }\n let range = index == null ? null : this.getSelection();\n const oldDelta = this.editor.delta;\n const change = modifier();\n if (range != null) {\n if (index === true) {\n index = range.index; // eslint-disable-line prefer-destructuring\n }\n if (shift == null) {\n range = shiftRange(range, change, source);\n } else if (shift !== 0) {\n // @ts-expect-error index should always be number\n range = shiftRange(range, index, shift, source);\n }\n this.setSelection(range, Emitter.sources.SILENT);\n }\n if (change.length() > 0) {\n const args = [Emitter.events.TEXT_CHANGE, change, oldDelta, source];\n this.emitter.emit(Emitter.events.EDITOR_CHANGE, ...args);\n if (source !== Emitter.sources.SILENT) {\n this.emitter.emit(...args);\n }\n }\n return change;\n}\nfunction overload(index, length, name, value, source) {\n let formats = {};\n // @ts-expect-error\n if (typeof index.index === 'number' && typeof index.length === 'number') {\n // Allow for throwaway end (used by insertText/insertEmbed)\n if (typeof length !== 'number') {\n // @ts-expect-error\n source = value;\n value = name;\n name = length;\n // @ts-expect-error\n length = index.length; // eslint-disable-line prefer-destructuring\n // @ts-expect-error\n index = index.index; // eslint-disable-line prefer-destructuring\n } else {\n // @ts-expect-error\n length = index.length; // eslint-disable-line prefer-destructuring\n // @ts-expect-error\n index = index.index; // eslint-disable-line prefer-destructuring\n }\n } else if (typeof length !== 'number') {\n // @ts-expect-error\n source = value;\n value = name;\n name = length;\n length = 0;\n }\n // Handle format being object, two format name/value strings or excluded\n if (typeof name === 'object') {\n // @ts-expect-error Fix me later\n formats = name;\n // @ts-expect-error\n source = value;\n } else if (typeof name === 'string') {\n if (value != null) {\n formats[name] = value;\n } else {\n // @ts-expect-error\n source = name;\n }\n }\n // Handle optional source\n source = source || Emitter.sources.API;\n // @ts-expect-error\n return [index, length, formats, source];\n}\nfunction shiftRange(range, index, lengthOrSource, source) {\n const length = typeof lengthOrSource === 'number' ? lengthOrSource : 0;\n if (range == null) return null;\n let start;\n let end;\n // @ts-expect-error -- TODO: add a better type guard around `index`\n if (index && typeof index.transformPosition === 'function') {\n [start, end] = [range.index, range.index + range.length].map(pos =>\n // @ts-expect-error -- TODO: add a better type guard around `index`\n index.transformPosition(pos, source !== Emitter.sources.USER));\n } else {\n [start, end] = [range.index, range.index + range.length].map(pos => {\n // @ts-expect-error -- TODO: add a better type guard around `index`\n if (pos < index || pos === index && source === Emitter.sources.USER) return pos;\n if (length >= 0) {\n return pos + length;\n }\n // @ts-expect-error -- TODO: add a better type guard around `index`\n return Math.max(index, pos + length);\n });\n }\n return new Range(start, end - start);\n}\nexport { Parchment, Range };\nexport { globalRegistry, expandConfig, overload, Quill as default };\n//# sourceMappingURL=quill.js.map","import { ContainerBlot } from 'parchment';\nclass Container extends ContainerBlot {}\nexport default Container;\n//# sourceMappingURL=container.js.map","import { ContainerBlot, LeafBlot, Scope, ScrollBlot } from 'parchment';\nimport Delta, { AttributeMap, Op } from 'quill-delta';\nimport Emitter from '../core/emitter.js';\nimport Block, { BlockEmbed, bubbleFormats } from './block.js';\nimport Break from './break.js';\nimport Container from './container.js';\nfunction isLine(blot) {\n return blot instanceof Block || blot instanceof BlockEmbed;\n}\nfunction isUpdatable(blot) {\n return typeof blot.updateContent === 'function';\n}\nclass Scroll extends ScrollBlot {\n static blotName = 'scroll';\n static className = 'ql-editor';\n static tagName = 'DIV';\n static defaultChild = Block;\n static allowedChildren = [Block, BlockEmbed, Container];\n constructor(registry, domNode, _ref) {\n let {\n emitter\n } = _ref;\n super(registry, domNode);\n this.emitter = emitter;\n this.batch = false;\n this.optimize();\n this.enable();\n this.domNode.addEventListener('dragstart', e => this.handleDragStart(e));\n }\n batchStart() {\n if (!Array.isArray(this.batch)) {\n this.batch = [];\n }\n }\n batchEnd() {\n if (!this.batch) return;\n const mutations = this.batch;\n this.batch = false;\n this.update(mutations);\n }\n emitMount(blot) {\n this.emitter.emit(Emitter.events.SCROLL_BLOT_MOUNT, blot);\n }\n emitUnmount(blot) {\n this.emitter.emit(Emitter.events.SCROLL_BLOT_UNMOUNT, blot);\n }\n emitEmbedUpdate(blot, change) {\n this.emitter.emit(Emitter.events.SCROLL_EMBED_UPDATE, blot, change);\n }\n deleteAt(index, length) {\n const [first, offset] = this.line(index);\n const [last] = this.line(index + length);\n super.deleteAt(index, length);\n if (last != null && first !== last && offset > 0) {\n if (first instanceof BlockEmbed || last instanceof BlockEmbed) {\n this.optimize();\n return;\n }\n const ref = last.children.head instanceof Break ? null : last.children.head;\n // @ts-expect-error\n first.moveChildren(last, ref);\n // @ts-expect-error\n first.remove();\n }\n this.optimize();\n }\n enable() {\n let enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n this.domNode.setAttribute('contenteditable', enabled ? 'true' : 'false');\n }\n formatAt(index, length, format, value) {\n super.formatAt(index, length, format, value);\n this.optimize();\n }\n insertAt(index, value, def) {\n if (index >= this.length()) {\n if (def == null || this.scroll.query(value, Scope.BLOCK) == null) {\n const blot = this.scroll.create(this.statics.defaultChild.blotName);\n this.appendChild(blot);\n if (def == null && value.endsWith('\\n')) {\n blot.insertAt(0, value.slice(0, -1), def);\n } else {\n blot.insertAt(0, value, def);\n }\n } else {\n const embed = this.scroll.create(value, def);\n this.appendChild(embed);\n }\n } else {\n super.insertAt(index, value, def);\n }\n this.optimize();\n }\n insertBefore(blot, ref) {\n if (blot.statics.scope === Scope.INLINE_BLOT) {\n const wrapper = this.scroll.create(this.statics.defaultChild.blotName);\n wrapper.appendChild(blot);\n super.insertBefore(wrapper, ref);\n } else {\n super.insertBefore(blot, ref);\n }\n }\n insertContents(index, delta) {\n const renderBlocks = this.deltaToRenderBlocks(delta.concat(new Delta().insert('\\n')));\n const last = renderBlocks.pop();\n if (last == null) return;\n this.batchStart();\n const first = renderBlocks.shift();\n if (first) {\n const shouldInsertNewlineChar = first.type === 'block' && (first.delta.length() === 0 || !this.descendant(BlockEmbed, index)[0] && index < this.length());\n const delta = first.type === 'block' ? first.delta : new Delta().insert({\n [first.key]: first.value\n });\n insertInlineContents(this, index, delta);\n const newlineCharLength = first.type === 'block' ? 1 : 0;\n const lineEndIndex = index + delta.length() + newlineCharLength;\n if (shouldInsertNewlineChar) {\n this.insertAt(lineEndIndex - 1, '\\n');\n }\n const formats = bubbleFormats(this.line(index)[0]);\n const attributes = AttributeMap.diff(formats, first.attributes) || {};\n Object.keys(attributes).forEach(name => {\n this.formatAt(lineEndIndex - 1, 1, name, attributes[name]);\n });\n index = lineEndIndex;\n }\n let [refBlot, refBlotOffset] = this.children.find(index);\n if (renderBlocks.length) {\n if (refBlot) {\n refBlot = refBlot.split(refBlotOffset);\n refBlotOffset = 0;\n }\n renderBlocks.forEach(renderBlock => {\n if (renderBlock.type === 'block') {\n const block = this.createBlock(renderBlock.attributes, refBlot || undefined);\n insertInlineContents(block, 0, renderBlock.delta);\n } else {\n const blockEmbed = this.create(renderBlock.key, renderBlock.value);\n this.insertBefore(blockEmbed, refBlot || undefined);\n Object.keys(renderBlock.attributes).forEach(name => {\n blockEmbed.format(name, renderBlock.attributes[name]);\n });\n }\n });\n }\n if (last.type === 'block' && last.delta.length()) {\n const offset = refBlot ? refBlot.offset(refBlot.scroll) + refBlotOffset : this.length();\n insertInlineContents(this, offset, last.delta);\n }\n this.batchEnd();\n this.optimize();\n }\n isEnabled() {\n return this.domNode.getAttribute('contenteditable') === 'true';\n }\n leaf(index) {\n const last = this.path(index).pop();\n if (!last) {\n return [null, -1];\n }\n const [blot, offset] = last;\n return blot instanceof LeafBlot ? [blot, offset] : [null, -1];\n }\n line(index) {\n if (index === this.length()) {\n return this.line(index - 1);\n }\n // @ts-expect-error TODO: make descendant() generic\n return this.descendant(isLine, index);\n }\n lines() {\n let index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n let length = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.MAX_VALUE;\n const getLines = (blot, blotIndex, blotLength) => {\n let lines = [];\n let lengthLeft = blotLength;\n blot.children.forEachAt(blotIndex, blotLength, (child, childIndex, childLength) => {\n if (isLine(child)) {\n lines.push(child);\n } else if (child instanceof ContainerBlot) {\n lines = lines.concat(getLines(child, childIndex, lengthLeft));\n }\n lengthLeft -= childLength;\n });\n return lines;\n };\n return getLines(this, index, length);\n }\n optimize() {\n let mutations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (this.batch) return;\n super.optimize(mutations, context);\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_OPTIMIZE, mutations, context);\n }\n }\n path(index) {\n return super.path(index).slice(1); // Exclude self\n }\n remove() {\n // Never remove self\n }\n update(mutations) {\n if (this.batch) {\n if (Array.isArray(mutations)) {\n this.batch = this.batch.concat(mutations);\n }\n return;\n }\n let source = Emitter.sources.USER;\n if (typeof mutations === 'string') {\n source = mutations;\n }\n if (!Array.isArray(mutations)) {\n mutations = this.observer.takeRecords();\n }\n mutations = mutations.filter(_ref2 => {\n let {\n target\n } = _ref2;\n const blot = this.find(target, true);\n return blot && !isUpdatable(blot);\n });\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_BEFORE_UPDATE, source, mutations);\n }\n super.update(mutations.concat([])); // pass copy\n if (mutations.length > 0) {\n this.emitter.emit(Emitter.events.SCROLL_UPDATE, source, mutations);\n }\n }\n updateEmbedAt(index, key, change) {\n // Currently it only supports top-level embeds (BlockEmbed).\n // We can update `ParentBlot` in parchment to support inline embeds.\n const [blot] = this.descendant(b => b instanceof BlockEmbed, index);\n if (blot && blot.statics.blotName === key && isUpdatable(blot)) {\n blot.updateContent(change);\n }\n }\n handleDragStart(event) {\n event.preventDefault();\n }\n deltaToRenderBlocks(delta) {\n const renderBlocks = [];\n let currentBlockDelta = new Delta();\n delta.forEach(op => {\n const insert = op?.insert;\n if (!insert) return;\n if (typeof insert === 'string') {\n const splitted = insert.split('\\n');\n splitted.slice(0, -1).forEach(text => {\n currentBlockDelta.insert(text, op.attributes);\n renderBlocks.push({\n type: 'block',\n delta: currentBlockDelta,\n attributes: op.attributes ?? {}\n });\n currentBlockDelta = new Delta();\n });\n const last = splitted[splitted.length - 1];\n if (last) {\n currentBlockDelta.insert(last, op.attributes);\n }\n } else {\n const key = Object.keys(insert)[0];\n if (!key) return;\n if (this.query(key, Scope.INLINE)) {\n currentBlockDelta.push(op);\n } else {\n if (currentBlockDelta.length()) {\n renderBlocks.push({\n type: 'block',\n delta: currentBlockDelta,\n attributes: {}\n });\n }\n currentBlockDelta = new Delta();\n renderBlocks.push({\n type: 'blockEmbed',\n key,\n value: insert[key],\n attributes: op.attributes ?? {}\n });\n }\n }\n });\n if (currentBlockDelta.length()) {\n renderBlocks.push({\n type: 'block',\n delta: currentBlockDelta,\n attributes: {}\n });\n }\n return renderBlocks;\n }\n createBlock(attributes, refBlot) {\n let blotName;\n const formats = {};\n Object.entries(attributes).forEach(_ref3 => {\n let [key, value] = _ref3;\n const isBlockBlot = this.query(key, Scope.BLOCK & Scope.BLOT) != null;\n if (isBlockBlot) {\n blotName = key;\n } else {\n formats[key] = value;\n }\n });\n const block = this.create(blotName || this.statics.defaultChild.blotName, blotName ? attributes[blotName] : undefined);\n this.insertBefore(block, refBlot || undefined);\n const length = block.length();\n Object.entries(formats).forEach(_ref4 => {\n let [key, value] = _ref4;\n block.formatAt(0, length, key, value);\n });\n return block;\n }\n}\nfunction insertInlineContents(parent, index, inlineContents) {\n inlineContents.reduce((index, op) => {\n const length = Op.length(op);\n let attributes = op.attributes || {};\n if (op.insert != null) {\n if (typeof op.insert === 'string') {\n const text = op.insert;\n parent.insertAt(index, text);\n const [leaf] = parent.descendant(LeafBlot, index);\n const formats = bubbleFormats(leaf);\n attributes = AttributeMap.diff(formats, attributes) || {};\n } else if (typeof op.insert === 'object') {\n const key = Object.keys(op.insert)[0]; // There should only be one key\n if (key == null) return index;\n parent.insertAt(index, key, op.insert[key]);\n const isInlineEmbed = parent.scroll.query(key, Scope.INLINE) != null;\n if (isInlineEmbed) {\n const [leaf] = parent.descendant(LeafBlot, index);\n const formats = bubbleFormats(leaf);\n attributes = AttributeMap.diff(formats, attributes) || {};\n }\n }\n }\n Object.keys(attributes).forEach(key => {\n parent.formatAt(index, length, key, attributes[key]);\n });\n return index + length;\n }, index);\n}\nexport default Scroll;\n//# sourceMappingURL=scroll.js.map","import { Attributor, ClassAttributor, Scope, StyleAttributor } from 'parchment';\nconst config = {\n scope: Scope.BLOCK,\n whitelist: ['right', 'center', 'justify']\n};\nconst AlignAttribute = new Attributor('align', 'align', config);\nconst AlignClass = new ClassAttributor('align', 'ql-align', config);\nconst AlignStyle = new StyleAttributor('align', 'text-align', config);\nexport { AlignAttribute, AlignClass, AlignStyle };\n//# sourceMappingURL=align.js.map","import { ClassAttributor, Scope, StyleAttributor } from 'parchment';\nclass ColorAttributor extends StyleAttributor {\n value(domNode) {\n let value = super.value(domNode);\n if (!value.startsWith('rgb(')) return value;\n value = value.replace(/^[^\\d]+/, '').replace(/[^\\d]+$/, '');\n const hex = value.split(',').map(component => `00${parseInt(component, 10).toString(16)}`.slice(-2)).join('');\n return `#${hex}`;\n }\n}\nconst ColorClass = new ClassAttributor('color', 'ql-color', {\n scope: Scope.INLINE\n});\nconst ColorStyle = new ColorAttributor('color', 'color', {\n scope: Scope.INLINE\n});\nexport { ColorAttributor, ColorClass, ColorStyle };\n//# sourceMappingURL=color.js.map","import { ClassAttributor, Scope } from 'parchment';\nimport { ColorAttributor } from './color.js';\nconst BackgroundClass = new ClassAttributor('background', 'ql-bg', {\n scope: Scope.INLINE\n});\nconst BackgroundStyle = new ColorAttributor('background', 'background-color', {\n scope: Scope.INLINE\n});\nexport { BackgroundClass, BackgroundStyle };\n//# sourceMappingURL=background.js.map","import Block from '../blots/block.js';\nimport Break from '../blots/break.js';\nimport Cursor from '../blots/cursor.js';\nimport Inline from '../blots/inline.js';\nimport TextBlot, { escapeText } from '../blots/text.js';\nimport Container from '../blots/container.js';\nimport Quill from '../core/quill.js';\nclass CodeBlockContainer extends Container {\n static create(value) {\n const domNode = super.create(value);\n domNode.setAttribute('spellcheck', 'false');\n return domNode;\n }\n code(index, length) {\n return this.children\n // @ts-expect-error\n .map(child => child.length() <= 1 ? '' : child.domNode.innerText).join('\\n').slice(index, index + length);\n }\n html(index, length) {\n // `\\n`s are needed in order to support empty lines at the beginning and the end.\n // https://html.spec.whatwg.org/multipage/syntax.html#element-restrictions\n return `
    \\n${escapeText(this.code(index, length))}\\n
    `;\n }\n}\nclass CodeBlock extends Block {\n static TAB = ' ';\n static register() {\n Quill.register(CodeBlockContainer);\n }\n}\nclass Code extends Inline {}\nCode.blotName = 'code';\nCode.tagName = 'CODE';\nCodeBlock.blotName = 'code-block';\nCodeBlock.className = 'ql-code-block';\nCodeBlock.tagName = 'DIV';\nCodeBlockContainer.blotName = 'code-block-container';\nCodeBlockContainer.className = 'ql-code-block-container';\nCodeBlockContainer.tagName = 'DIV';\nCodeBlockContainer.allowedChildren = [CodeBlock];\nCodeBlock.allowedChildren = [TextBlot, Break, Cursor];\nCodeBlock.requiredContainer = CodeBlockContainer;\nexport { Code, CodeBlockContainer, CodeBlock as default };\n//# sourceMappingURL=code.js.map","import { Attributor, ClassAttributor, Scope, StyleAttributor } from 'parchment';\nconst config = {\n scope: Scope.BLOCK,\n whitelist: ['rtl']\n};\nconst DirectionAttribute = new Attributor('direction', 'dir', config);\nconst DirectionClass = new ClassAttributor('direction', 'ql-direction', config);\nconst DirectionStyle = new StyleAttributor('direction', 'direction', config);\nexport { DirectionAttribute, DirectionClass, DirectionStyle };\n//# sourceMappingURL=direction.js.map","import { ClassAttributor, Scope, StyleAttributor } from 'parchment';\nconst config = {\n scope: Scope.INLINE,\n whitelist: ['serif', 'monospace']\n};\nconst FontClass = new ClassAttributor('font', 'ql-font', config);\nclass FontStyleAttributor extends StyleAttributor {\n value(node) {\n return super.value(node).replace(/[\"']/g, '');\n }\n}\nconst FontStyle = new FontStyleAttributor('font', 'font-family', config);\nexport { FontStyle, FontClass };\n//# sourceMappingURL=font.js.map","import { ClassAttributor, Scope, StyleAttributor } from 'parchment';\nconst SizeClass = new ClassAttributor('size', 'ql-size', {\n scope: Scope.INLINE,\n whitelist: ['small', 'large', 'huge']\n});\nconst SizeStyle = new StyleAttributor('size', 'font-size', {\n scope: Scope.INLINE,\n whitelist: ['10px', '18px', '32px']\n});\nexport { SizeClass, SizeStyle };\n//# sourceMappingURL=size.js.map","import { cloneDeep, isEqual } from 'lodash-es';\nimport Delta, { AttributeMap } from 'quill-delta';\nimport { EmbedBlot, Scope, TextBlot } from 'parchment';\nimport Quill from '../core/quill.js';\nimport logger from '../core/logger.js';\nimport Module from '../core/module.js';\nconst debug = logger('quill:keyboard');\nconst SHORTKEY = /Mac/i.test(navigator.platform) ? 'metaKey' : 'ctrlKey';\nclass Keyboard extends Module {\n static match(evt, binding) {\n if (['altKey', 'ctrlKey', 'metaKey', 'shiftKey'].some(key => {\n return !!binding[key] !== evt[key] && binding[key] !== null;\n })) {\n return false;\n }\n return binding.key === evt.key || binding.key === evt.which;\n }\n constructor(quill, options) {\n super(quill, options);\n this.bindings = {};\n // @ts-expect-error Fix me later\n Object.keys(this.options.bindings).forEach(name => {\n // @ts-expect-error Fix me later\n if (this.options.bindings[name]) {\n // @ts-expect-error Fix me later\n this.addBinding(this.options.bindings[name]);\n }\n });\n this.addBinding({\n key: 'Enter',\n shiftKey: null\n }, this.handleEnter);\n this.addBinding({\n key: 'Enter',\n metaKey: null,\n ctrlKey: null,\n altKey: null\n }, () => {});\n if (/Firefox/i.test(navigator.userAgent)) {\n // Need to handle delete and backspace for Firefox in the general case #1171\n this.addBinding({\n key: 'Backspace'\n }, {\n collapsed: true\n }, this.handleBackspace);\n this.addBinding({\n key: 'Delete'\n }, {\n collapsed: true\n }, this.handleDelete);\n } else {\n this.addBinding({\n key: 'Backspace'\n }, {\n collapsed: true,\n prefix: /^.?$/\n }, this.handleBackspace);\n this.addBinding({\n key: 'Delete'\n }, {\n collapsed: true,\n suffix: /^.?$/\n }, this.handleDelete);\n }\n this.addBinding({\n key: 'Backspace'\n }, {\n collapsed: false\n }, this.handleDeleteRange);\n this.addBinding({\n key: 'Delete'\n }, {\n collapsed: false\n }, this.handleDeleteRange);\n this.addBinding({\n key: 'Backspace',\n altKey: null,\n ctrlKey: null,\n metaKey: null,\n shiftKey: null\n }, {\n collapsed: true,\n offset: 0\n }, this.handleBackspace);\n this.listen();\n }\n addBinding(keyBinding) {\n let context = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let handler = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const binding = normalize(keyBinding);\n if (binding == null) {\n debug.warn('Attempted to add invalid keyboard binding', binding);\n return;\n }\n if (typeof context === 'function') {\n context = {\n handler: context\n };\n }\n if (typeof handler === 'function') {\n handler = {\n handler\n };\n }\n const keys = Array.isArray(binding.key) ? binding.key : [binding.key];\n keys.forEach(key => {\n const singleBinding = {\n ...binding,\n key,\n ...context,\n ...handler\n };\n this.bindings[singleBinding.key] = this.bindings[singleBinding.key] || [];\n this.bindings[singleBinding.key].push(singleBinding);\n });\n }\n listen() {\n this.quill.root.addEventListener('keydown', evt => {\n if (evt.defaultPrevented || evt.isComposing) return;\n\n // evt.isComposing is false when pressing Enter/Backspace when composing in Safari\n // https://bugs.webkit.org/show_bug.cgi?id=165004\n const isComposing = evt.keyCode === 229 && (evt.key === 'Enter' || evt.key === 'Backspace');\n if (isComposing) return;\n const bindings = (this.bindings[evt.key] || []).concat(this.bindings[evt.which] || []);\n const matches = bindings.filter(binding => Keyboard.match(evt, binding));\n if (matches.length === 0) return;\n // @ts-expect-error\n const blot = Quill.find(evt.target, true);\n if (blot && blot.scroll !== this.quill.scroll) return;\n const range = this.quill.getSelection();\n if (range == null || !this.quill.hasFocus()) return;\n const [line, offset] = this.quill.getLine(range.index);\n const [leafStart, offsetStart] = this.quill.getLeaf(range.index);\n const [leafEnd, offsetEnd] = range.length === 0 ? [leafStart, offsetStart] : this.quill.getLeaf(range.index + range.length);\n const prefixText = leafStart instanceof TextBlot ? leafStart.value().slice(0, offsetStart) : '';\n const suffixText = leafEnd instanceof TextBlot ? leafEnd.value().slice(offsetEnd) : '';\n const curContext = {\n collapsed: range.length === 0,\n // @ts-expect-error Fix me later\n empty: range.length === 0 && line.length() <= 1,\n format: this.quill.getFormat(range),\n line,\n offset,\n prefix: prefixText,\n suffix: suffixText,\n event: evt\n };\n const prevented = matches.some(binding => {\n if (binding.collapsed != null && binding.collapsed !== curContext.collapsed) {\n return false;\n }\n if (binding.empty != null && binding.empty !== curContext.empty) {\n return false;\n }\n if (binding.offset != null && binding.offset !== curContext.offset) {\n return false;\n }\n if (Array.isArray(binding.format)) {\n // any format is present\n if (binding.format.every(name => curContext.format[name] == null)) {\n return false;\n }\n } else if (typeof binding.format === 'object') {\n // all formats must match\n if (!Object.keys(binding.format).every(name => {\n // @ts-expect-error Fix me later\n if (binding.format[name] === true) return curContext.format[name] != null;\n // @ts-expect-error Fix me later\n if (binding.format[name] === false) return curContext.format[name] == null;\n // @ts-expect-error Fix me later\n return isEqual(binding.format[name], curContext.format[name]);\n })) {\n return false;\n }\n }\n if (binding.prefix != null && !binding.prefix.test(curContext.prefix)) {\n return false;\n }\n if (binding.suffix != null && !binding.suffix.test(curContext.suffix)) {\n return false;\n }\n // @ts-expect-error Fix me later\n return binding.handler.call(this, range, curContext, binding) !== true;\n });\n if (prevented) {\n evt.preventDefault();\n }\n });\n }\n handleBackspace(range, context) {\n // Check for astral symbols\n const length = /[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]$/.test(context.prefix) ? 2 : 1;\n if (range.index === 0 || this.quill.getLength() <= 1) return;\n let formats = {};\n const [line] = this.quill.getLine(range.index);\n let delta = new Delta().retain(range.index - length).delete(length);\n if (context.offset === 0) {\n // Always deleting newline here, length always 1\n const [prev] = this.quill.getLine(range.index - 1);\n if (prev) {\n const isPrevLineEmpty = prev.statics.blotName === 'block' && prev.length() <= 1;\n if (!isPrevLineEmpty) {\n // @ts-expect-error Fix me later\n const curFormats = line.formats();\n const prevFormats = this.quill.getFormat(range.index - 1, 1);\n formats = AttributeMap.diff(curFormats, prevFormats) || {};\n if (Object.keys(formats).length > 0) {\n // line.length() - 1 targets \\n in line, another -1 for newline being deleted\n const formatDelta = new Delta()\n // @ts-expect-error Fix me later\n .retain(range.index + line.length() - 2).retain(1, formats);\n delta = delta.compose(formatDelta);\n }\n }\n }\n }\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.focus();\n }\n handleDelete(range, context) {\n // Check for astral symbols\n const length = /^[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/.test(context.suffix) ? 2 : 1;\n if (range.index >= this.quill.getLength() - length) return;\n let formats = {};\n const [line] = this.quill.getLine(range.index);\n let delta = new Delta().retain(range.index).delete(length);\n // @ts-expect-error Fix me later\n if (context.offset >= line.length() - 1) {\n const [next] = this.quill.getLine(range.index + 1);\n if (next) {\n // @ts-expect-error Fix me later\n const curFormats = line.formats();\n const nextFormats = this.quill.getFormat(range.index, 1);\n formats = AttributeMap.diff(curFormats, nextFormats) || {};\n if (Object.keys(formats).length > 0) {\n delta = delta.retain(next.length() - 1).retain(1, formats);\n }\n }\n }\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.focus();\n }\n handleDeleteRange(range) {\n deleteRange({\n range,\n quill: this.quill\n });\n this.quill.focus();\n }\n handleEnter(range, context) {\n const lineFormats = Object.keys(context.format).reduce((formats, format) => {\n if (this.quill.scroll.query(format, Scope.BLOCK) && !Array.isArray(context.format[format])) {\n formats[format] = context.format[format];\n }\n return formats;\n }, {});\n const delta = new Delta().retain(range.index).delete(range.length).insert('\\n', lineFormats);\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.focus();\n }\n}\nconst defaultOptions = {\n bindings: {\n bold: makeFormatHandler('bold'),\n italic: makeFormatHandler('italic'),\n underline: makeFormatHandler('underline'),\n indent: {\n // highlight tab or tab at beginning of list, indent or blockquote\n key: 'Tab',\n format: ['blockquote', 'indent', 'list'],\n handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '+1', Quill.sources.USER);\n return false;\n }\n },\n outdent: {\n key: 'Tab',\n shiftKey: true,\n format: ['blockquote', 'indent', 'list'],\n // highlight tab or tab at beginning of list, indent or blockquote\n handler(range, context) {\n if (context.collapsed && context.offset !== 0) return true;\n this.quill.format('indent', '-1', Quill.sources.USER);\n return false;\n }\n },\n 'outdent backspace': {\n key: 'Backspace',\n collapsed: true,\n shiftKey: null,\n metaKey: null,\n ctrlKey: null,\n altKey: null,\n format: ['indent', 'list'],\n offset: 0,\n handler(range, context) {\n if (context.format.indent != null) {\n this.quill.format('indent', '-1', Quill.sources.USER);\n } else if (context.format.list != null) {\n this.quill.format('list', false, Quill.sources.USER);\n }\n }\n },\n 'indent code-block': makeCodeBlockHandler(true),\n 'outdent code-block': makeCodeBlockHandler(false),\n 'remove tab': {\n key: 'Tab',\n shiftKey: true,\n collapsed: true,\n prefix: /\\t$/,\n handler(range) {\n this.quill.deleteText(range.index - 1, 1, Quill.sources.USER);\n }\n },\n tab: {\n key: 'Tab',\n handler(range, context) {\n if (context.format.table) return true;\n this.quill.history.cutoff();\n const delta = new Delta().retain(range.index).delete(range.length).insert('\\t');\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n return false;\n }\n },\n 'blockquote empty enter': {\n key: 'Enter',\n collapsed: true,\n format: ['blockquote'],\n empty: true,\n handler() {\n this.quill.format('blockquote', false, Quill.sources.USER);\n }\n },\n 'list empty enter': {\n key: 'Enter',\n collapsed: true,\n format: ['list'],\n empty: true,\n handler(range, context) {\n const formats = {\n list: false\n };\n if (context.format.indent) {\n formats.indent = false;\n }\n this.quill.formatLine(range.index, range.length, formats, Quill.sources.USER);\n }\n },\n 'checklist enter': {\n key: 'Enter',\n collapsed: true,\n format: {\n list: 'checked'\n },\n handler(range) {\n const [line, offset] = this.quill.getLine(range.index);\n const formats = {\n // @ts-expect-error Fix me later\n ...line.formats(),\n list: 'checked'\n };\n const delta = new Delta().retain(range.index).insert('\\n', formats)\n // @ts-expect-error Fix me later\n .retain(line.length() - offset - 1).retain(1, {\n list: 'unchecked'\n });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.scrollSelectionIntoView();\n }\n },\n 'header enter': {\n key: 'Enter',\n collapsed: true,\n format: ['header'],\n suffix: /^$/,\n handler(range, context) {\n const [line, offset] = this.quill.getLine(range.index);\n const delta = new Delta().retain(range.index).insert('\\n', context.format)\n // @ts-expect-error Fix me later\n .retain(line.length() - offset - 1).retain(1, {\n header: null\n });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT);\n this.quill.scrollSelectionIntoView();\n }\n },\n 'table backspace': {\n key: 'Backspace',\n format: ['table'],\n collapsed: true,\n offset: 0,\n handler() {}\n },\n 'table delete': {\n key: 'Delete',\n format: ['table'],\n collapsed: true,\n suffix: /^$/,\n handler() {}\n },\n 'table enter': {\n key: 'Enter',\n shiftKey: null,\n format: ['table'],\n handler(range) {\n const module = this.quill.getModule('table');\n if (module) {\n // @ts-expect-error\n const [table, row, cell, offset] = module.getTable(range);\n const shift = tableSide(table, row, cell, offset);\n if (shift == null) return;\n let index = table.offset();\n if (shift < 0) {\n const delta = new Delta().retain(index).insert('\\n');\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index + 1, range.length, Quill.sources.SILENT);\n } else if (shift > 0) {\n index += table.length();\n const delta = new Delta().retain(index).insert('\\n');\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(index, Quill.sources.USER);\n }\n }\n }\n },\n 'table tab': {\n key: 'Tab',\n shiftKey: null,\n format: ['table'],\n handler(range, context) {\n const {\n event,\n line: cell\n } = context;\n const offset = cell.offset(this.quill.scroll);\n if (event.shiftKey) {\n this.quill.setSelection(offset - 1, Quill.sources.USER);\n } else {\n this.quill.setSelection(offset + cell.length(), Quill.sources.USER);\n }\n }\n },\n 'list autofill': {\n key: ' ',\n shiftKey: null,\n collapsed: true,\n format: {\n 'code-block': false,\n blockquote: false,\n table: false\n },\n prefix: /^\\s*?(\\d+\\.|-|\\*|\\[ ?\\]|\\[x\\])$/,\n handler(range, context) {\n if (this.quill.scroll.query('list') == null) return true;\n const {\n length\n } = context.prefix;\n const [line, offset] = this.quill.getLine(range.index);\n if (offset > length) return true;\n let value;\n switch (context.prefix.trim()) {\n case '[]':\n case '[ ]':\n value = 'unchecked';\n break;\n case '[x]':\n value = 'checked';\n break;\n case '-':\n case '*':\n value = 'bullet';\n break;\n default:\n value = 'ordered';\n }\n this.quill.insertText(range.index, ' ', Quill.sources.USER);\n this.quill.history.cutoff();\n const delta = new Delta().retain(range.index - offset).delete(length + 1)\n // @ts-expect-error Fix me later\n .retain(line.length() - 2 - offset).retain(1, {\n list: value\n });\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.history.cutoff();\n this.quill.setSelection(range.index - length, Quill.sources.SILENT);\n return false;\n }\n },\n 'code exit': {\n key: 'Enter',\n collapsed: true,\n format: ['code-block'],\n prefix: /^$/,\n suffix: /^\\s*$/,\n handler(range) {\n const [line, offset] = this.quill.getLine(range.index);\n let numLines = 2;\n let cur = line;\n while (cur != null && cur.length() <= 1 && cur.formats()['code-block']) {\n // @ts-expect-error\n cur = cur.prev;\n numLines -= 1;\n // Requisite prev lines are empty\n if (numLines <= 0) {\n const delta = new Delta()\n // @ts-expect-error Fix me later\n .retain(range.index + line.length() - offset - 2).retain(1, {\n 'code-block': null\n }).delete(1);\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index - 1, Quill.sources.SILENT);\n return false;\n }\n }\n return true;\n }\n },\n 'embed left': makeEmbedArrowHandler('ArrowLeft', false),\n 'embed left shift': makeEmbedArrowHandler('ArrowLeft', true),\n 'embed right': makeEmbedArrowHandler('ArrowRight', false),\n 'embed right shift': makeEmbedArrowHandler('ArrowRight', true),\n 'table down': makeTableArrowHandler(false),\n 'table up': makeTableArrowHandler(true)\n }\n};\nKeyboard.DEFAULTS = defaultOptions;\nfunction makeCodeBlockHandler(indent) {\n return {\n key: 'Tab',\n shiftKey: !indent,\n format: {\n 'code-block': true\n },\n handler(range, _ref) {\n let {\n event\n } = _ref;\n const CodeBlock = this.quill.scroll.query('code-block');\n // @ts-expect-error\n const {\n TAB\n } = CodeBlock;\n if (range.length === 0 && !event.shiftKey) {\n this.quill.insertText(range.index, TAB, Quill.sources.USER);\n this.quill.setSelection(range.index + TAB.length, Quill.sources.SILENT);\n return;\n }\n const lines = range.length === 0 ? this.quill.getLines(range.index, 1) : this.quill.getLines(range);\n let {\n index,\n length\n } = range;\n lines.forEach((line, i) => {\n if (indent) {\n line.insertAt(0, TAB);\n if (i === 0) {\n index += TAB.length;\n } else {\n length += TAB.length;\n }\n // @ts-expect-error Fix me later\n } else if (line.domNode.textContent.startsWith(TAB)) {\n line.deleteAt(0, TAB.length);\n if (i === 0) {\n index -= TAB.length;\n } else {\n length -= TAB.length;\n }\n }\n });\n this.quill.update(Quill.sources.USER);\n this.quill.setSelection(index, length, Quill.sources.SILENT);\n }\n };\n}\nfunction makeEmbedArrowHandler(key, shiftKey) {\n const where = key === 'ArrowLeft' ? 'prefix' : 'suffix';\n return {\n key,\n shiftKey,\n altKey: null,\n [where]: /^$/,\n handler(range) {\n let {\n index\n } = range;\n if (key === 'ArrowRight') {\n index += range.length + 1;\n }\n const [leaf] = this.quill.getLeaf(index);\n if (!(leaf instanceof EmbedBlot)) return true;\n if (key === 'ArrowLeft') {\n if (shiftKey) {\n this.quill.setSelection(range.index - 1, range.length + 1, Quill.sources.USER);\n } else {\n this.quill.setSelection(range.index - 1, Quill.sources.USER);\n }\n } else if (shiftKey) {\n this.quill.setSelection(range.index, range.length + 1, Quill.sources.USER);\n } else {\n this.quill.setSelection(range.index + range.length + 1, Quill.sources.USER);\n }\n return false;\n }\n };\n}\nfunction makeFormatHandler(format) {\n return {\n key: format[0],\n shortKey: true,\n handler(range, context) {\n this.quill.format(format, !context.format[format], Quill.sources.USER);\n }\n };\n}\nfunction makeTableArrowHandler(up) {\n return {\n key: up ? 'ArrowUp' : 'ArrowDown',\n collapsed: true,\n format: ['table'],\n handler(range, context) {\n // TODO move to table module\n const key = up ? 'prev' : 'next';\n const cell = context.line;\n const targetRow = cell.parent[key];\n if (targetRow != null) {\n if (targetRow.statics.blotName === 'table-row') {\n // @ts-expect-error\n let targetCell = targetRow.children.head;\n let cur = cell;\n while (cur.prev != null) {\n // @ts-expect-error\n cur = cur.prev;\n targetCell = targetCell.next;\n }\n const index = targetCell.offset(this.quill.scroll) + Math.min(context.offset, targetCell.length() - 1);\n this.quill.setSelection(index, 0, Quill.sources.USER);\n }\n } else {\n // @ts-expect-error\n const targetLine = cell.table()[key];\n if (targetLine != null) {\n if (up) {\n this.quill.setSelection(targetLine.offset(this.quill.scroll) + targetLine.length() - 1, 0, Quill.sources.USER);\n } else {\n this.quill.setSelection(targetLine.offset(this.quill.scroll), 0, Quill.sources.USER);\n }\n }\n }\n return false;\n }\n };\n}\nfunction normalize(binding) {\n if (typeof binding === 'string' || typeof binding === 'number') {\n binding = {\n key: binding\n };\n } else if (typeof binding === 'object') {\n binding = cloneDeep(binding);\n } else {\n return null;\n }\n if (binding.shortKey) {\n binding[SHORTKEY] = binding.shortKey;\n delete binding.shortKey;\n }\n return binding;\n}\n\n// TODO: Move into quill.ts or editor.ts\nfunction deleteRange(_ref2) {\n let {\n quill,\n range\n } = _ref2;\n const lines = quill.getLines(range);\n let formats = {};\n if (lines.length > 1) {\n const firstFormats = lines[0].formats();\n const lastFormats = lines[lines.length - 1].formats();\n formats = AttributeMap.diff(lastFormats, firstFormats) || {};\n }\n quill.deleteText(range, Quill.sources.USER);\n if (Object.keys(formats).length > 0) {\n quill.formatLine(range.index, 1, formats, Quill.sources.USER);\n }\n quill.setSelection(range.index, Quill.sources.SILENT);\n}\nfunction tableSide(_table, row, cell, offset) {\n if (row.prev == null && row.next == null) {\n if (cell.prev == null && cell.next == null) {\n return offset === 0 ? -1 : 1;\n }\n return cell.prev == null ? -1 : 1;\n }\n if (row.prev == null) {\n return -1;\n }\n if (row.next == null) {\n return 1;\n }\n return null;\n}\nexport { Keyboard as default, SHORTKEY, normalize, deleteRange };\n//# sourceMappingURL=keyboard.js.map","const normalWeightRegexp = /font-weight:\\s*normal/;\nconst blockTagNames = ['P', 'OL', 'UL'];\nconst isBlockElement = element => {\n return element && blockTagNames.includes(element.tagName);\n};\nconst normalizeEmptyLines = doc => {\n Array.from(doc.querySelectorAll('br')).filter(br => isBlockElement(br.previousElementSibling) && isBlockElement(br.nextElementSibling)).forEach(br => {\n br.parentNode?.removeChild(br);\n });\n};\nconst normalizeFontWeight = doc => {\n Array.from(doc.querySelectorAll('b[style*=\"font-weight\"]')).filter(node => node.getAttribute('style')?.match(normalWeightRegexp)).forEach(node => {\n const fragment = doc.createDocumentFragment();\n fragment.append(...node.childNodes);\n node.parentNode?.replaceChild(fragment, node);\n });\n};\nexport default function normalize(doc) {\n if (doc.querySelector('[id^=\"docs-internal-guid-\"]')) {\n normalizeFontWeight(doc);\n normalizeEmptyLines(doc);\n }\n}\n//# sourceMappingURL=googleDocs.js.map","const ignoreRegexp = /\\bmso-list:[^;]*ignore/i;\nconst idRegexp = /\\bmso-list:[^;]*\\bl(\\d+)/i;\nconst indentRegexp = /\\bmso-list:[^;]*\\blevel(\\d+)/i;\nconst parseListItem = (element, html) => {\n const style = element.getAttribute('style');\n const idMatch = style?.match(idRegexp);\n if (!idMatch) {\n return null;\n }\n const id = Number(idMatch[1]);\n const indentMatch = style?.match(indentRegexp);\n const indent = indentMatch ? Number(indentMatch[1]) : 1;\n const typeRegexp = new RegExp(`@list l${id}:level${indent}\\\\s*\\\\{[^\\\\}]*mso-level-number-format:\\\\s*([\\\\w-]+)`, 'i');\n const typeMatch = html.match(typeRegexp);\n const type = typeMatch && typeMatch[1] === 'bullet' ? 'bullet' : 'ordered';\n return {\n id,\n indent,\n type,\n element\n };\n};\n\n// list items are represented as `p` tags with styles like `mso-list: l0 level1` where:\n// 1. \"0\" in \"l0\" means the list item id;\n// 2. \"1\" in \"level1\" means the indent level, starting from 1.\nconst normalizeListItem = doc => {\n const msoList = Array.from(doc.querySelectorAll('[style*=mso-list]'));\n const ignored = [];\n const others = [];\n msoList.forEach(node => {\n const shouldIgnore = (node.getAttribute('style') || '').match(ignoreRegexp);\n if (shouldIgnore) {\n ignored.push(node);\n } else {\n others.push(node);\n }\n });\n\n // Each list item contains a marker wrapped with \"mso-list: Ignore\".\n ignored.forEach(node => node.parentNode?.removeChild(node));\n\n // The list stype is not defined inline with the tag, instead, it's in the\n // style tag so we need to pass the html as a string.\n const html = doc.documentElement.innerHTML;\n const listItems = others.map(element => parseListItem(element, html)).filter(parsed => parsed);\n while (listItems.length) {\n const childListItems = [];\n let current = listItems.shift();\n // Group continuous items into the same group (aka \"ul\")\n while (current) {\n childListItems.push(current);\n current = listItems.length && listItems[0]?.element === current.element.nextElementSibling &&\n // Different id means the next item doesn't belong to this group.\n listItems[0].id === current.id ? listItems.shift() : null;\n }\n const ul = document.createElement('ul');\n childListItems.forEach(listItem => {\n const li = document.createElement('li');\n li.setAttribute('data-list', listItem.type);\n if (listItem.indent > 1) {\n li.setAttribute('class', `ql-indent-${listItem.indent - 1}`);\n }\n li.innerHTML = listItem.element.innerHTML;\n ul.appendChild(li);\n });\n const element = childListItems[0]?.element;\n const {\n parentNode\n } = element ?? {};\n if (element) {\n parentNode?.replaceChild(ul, element);\n }\n childListItems.slice(1).forEach(_ref => {\n let {\n element: e\n } = _ref;\n parentNode?.removeChild(e);\n });\n }\n};\nexport default function normalize(doc) {\n if (doc.documentElement.getAttribute('xmlns:w') === 'urn:schemas-microsoft-com:office:word') {\n normalizeListItem(doc);\n }\n}\n//# sourceMappingURL=msWord.js.map","import googleDocs from './normalizers/googleDocs.js';\nimport msWord from './normalizers/msWord.js';\nconst NORMALIZERS = [msWord, googleDocs];\nconst normalizeExternalHTML = doc => {\n if (doc.documentElement) {\n NORMALIZERS.forEach(normalize => {\n normalize(doc);\n });\n }\n};\nexport default normalizeExternalHTML;\n//# sourceMappingURL=index.js.map","import { Attributor, BlockBlot, ClassAttributor, EmbedBlot, Scope, StyleAttributor } from 'parchment';\nimport Delta from 'quill-delta';\nimport { BlockEmbed } from '../blots/block.js';\nimport logger from '../core/logger.js';\nimport Module from '../core/module.js';\nimport Quill from '../core/quill.js';\nimport { AlignAttribute, AlignStyle } from '../formats/align.js';\nimport { BackgroundStyle } from '../formats/background.js';\nimport CodeBlock from '../formats/code.js';\nimport { ColorStyle } from '../formats/color.js';\nimport { DirectionAttribute, DirectionStyle } from '../formats/direction.js';\nimport { FontStyle } from '../formats/font.js';\nimport { SizeStyle } from '../formats/size.js';\nimport { deleteRange } from './keyboard.js';\nimport normalizeExternalHTML from './normalizeExternalHTML/index.js';\nconst debug = logger('quill:clipboard');\nconst CLIPBOARD_CONFIG = [[Node.TEXT_NODE, matchText], [Node.TEXT_NODE, matchNewline], ['br', matchBreak], [Node.ELEMENT_NODE, matchNewline], [Node.ELEMENT_NODE, matchBlot], [Node.ELEMENT_NODE, matchAttributor], [Node.ELEMENT_NODE, matchStyles], ['li', matchIndent], ['ol, ul', matchList], ['pre', matchCodeBlock], ['tr', matchTable], ['b', createMatchAlias('bold')], ['i', createMatchAlias('italic')], ['strike', createMatchAlias('strike')], ['style', matchIgnore]];\nconst ATTRIBUTE_ATTRIBUTORS = [AlignAttribute, DirectionAttribute].reduce((memo, attr) => {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\nconst STYLE_ATTRIBUTORS = [AlignStyle, BackgroundStyle, ColorStyle, DirectionStyle, FontStyle, SizeStyle].reduce((memo, attr) => {\n memo[attr.keyName] = attr;\n return memo;\n}, {});\nclass Clipboard extends Module {\n static DEFAULTS = {\n matchers: []\n };\n constructor(quill, options) {\n super(quill, options);\n this.quill.root.addEventListener('copy', e => this.onCaptureCopy(e, false));\n this.quill.root.addEventListener('cut', e => this.onCaptureCopy(e, true));\n this.quill.root.addEventListener('paste', this.onCapturePaste.bind(this));\n this.matchers = [];\n CLIPBOARD_CONFIG.concat(this.options.matchers ?? []).forEach(_ref => {\n let [selector, matcher] = _ref;\n this.addMatcher(selector, matcher);\n });\n }\n addMatcher(selector, matcher) {\n this.matchers.push([selector, matcher]);\n }\n convert(_ref2) {\n let {\n html,\n text\n } = _ref2;\n let formats = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n if (formats[CodeBlock.blotName]) {\n return new Delta().insert(text || '', {\n [CodeBlock.blotName]: formats[CodeBlock.blotName]\n });\n }\n if (!html) {\n return new Delta().insert(text || '', formats);\n }\n const delta = this.convertHTML(html);\n // Remove trailing newline\n if (deltaEndsWith(delta, '\\n') && (delta.ops[delta.ops.length - 1].attributes == null || formats.table)) {\n return delta.compose(new Delta().retain(delta.length() - 1).delete(1));\n }\n return delta;\n }\n normalizeHTML(doc) {\n normalizeExternalHTML(doc);\n }\n convertHTML(html) {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n this.normalizeHTML(doc);\n const container = doc.body;\n const nodeMatches = new WeakMap();\n const [elementMatchers, textMatchers] = this.prepareMatching(container, nodeMatches);\n return traverse(this.quill.scroll, container, elementMatchers, textMatchers, nodeMatches);\n }\n dangerouslyPasteHTML(index, html) {\n let source = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Quill.sources.API;\n if (typeof index === 'string') {\n const delta = this.convert({\n html: index,\n text: ''\n });\n // @ts-expect-error\n this.quill.setContents(delta, html);\n this.quill.setSelection(0, Quill.sources.SILENT);\n } else {\n const paste = this.convert({\n html,\n text: ''\n });\n this.quill.updateContents(new Delta().retain(index).concat(paste), source);\n this.quill.setSelection(index + paste.length(), Quill.sources.SILENT);\n }\n }\n onCaptureCopy(e) {\n let isCut = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (e.defaultPrevented) return;\n e.preventDefault();\n const [range] = this.quill.selection.getRange();\n if (range == null) return;\n const {\n html,\n text\n } = this.onCopy(range, isCut);\n e.clipboardData?.setData('text/plain', text);\n e.clipboardData?.setData('text/html', html);\n if (isCut) {\n deleteRange({\n range,\n quill: this.quill\n });\n }\n }\n\n /*\n * https://www.iana.org/assignments/media-types/text/uri-list\n */\n normalizeURIList(urlList) {\n return urlList.split(/\\r?\\n/)\n // Ignore all comments\n .filter(url => url[0] !== '#').join('\\n');\n }\n onCapturePaste(e) {\n if (e.defaultPrevented || !this.quill.isEnabled()) return;\n e.preventDefault();\n const range = this.quill.getSelection(true);\n if (range == null) return;\n const html = e.clipboardData?.getData('text/html');\n let text = e.clipboardData?.getData('text/plain');\n if (!html && !text) {\n const urlList = e.clipboardData?.getData('text/uri-list');\n if (urlList) {\n text = this.normalizeURIList(urlList);\n }\n }\n const files = Array.from(e.clipboardData?.files || []);\n if (!html && files.length > 0) {\n this.quill.uploader.upload(range, files);\n return;\n }\n if (html && files.length > 0) {\n const doc = new DOMParser().parseFromString(html, 'text/html');\n if (doc.body.childElementCount === 1 && doc.body.firstElementChild?.tagName === 'IMG') {\n this.quill.uploader.upload(range, files);\n return;\n }\n }\n this.onPaste(range, {\n html,\n text\n });\n }\n onCopy(range) {\n const text = this.quill.getText(range);\n const html = this.quill.getSemanticHTML(range);\n return {\n html,\n text\n };\n }\n onPaste(range, _ref3) {\n let {\n text,\n html\n } = _ref3;\n const formats = this.quill.getFormat(range.index);\n const pastedDelta = this.convert({\n text,\n html\n }, formats);\n debug.log('onPaste', pastedDelta, {\n text,\n html\n });\n const delta = new Delta().retain(range.index).delete(range.length).concat(pastedDelta);\n this.quill.updateContents(delta, Quill.sources.USER);\n // range.length contributes to delta.length()\n this.quill.setSelection(delta.length() - range.length, Quill.sources.SILENT);\n this.quill.scrollSelectionIntoView();\n }\n prepareMatching(container, nodeMatches) {\n const elementMatchers = [];\n const textMatchers = [];\n this.matchers.forEach(pair => {\n const [selector, matcher] = pair;\n switch (selector) {\n case Node.TEXT_NODE:\n textMatchers.push(matcher);\n break;\n case Node.ELEMENT_NODE:\n elementMatchers.push(matcher);\n break;\n default:\n Array.from(container.querySelectorAll(selector)).forEach(node => {\n if (nodeMatches.has(node)) {\n const matches = nodeMatches.get(node);\n matches?.push(matcher);\n } else {\n nodeMatches.set(node, [matcher]);\n }\n });\n break;\n }\n });\n return [elementMatchers, textMatchers];\n }\n}\nfunction applyFormat(delta, format, value, scroll) {\n if (!scroll.query(format)) {\n return delta;\n }\n return delta.reduce((newDelta, op) => {\n if (!op.insert) return newDelta;\n if (op.attributes && op.attributes[format]) {\n return newDelta.push(op);\n }\n const formats = value ? {\n [format]: value\n } : {};\n return newDelta.insert(op.insert, {\n ...formats,\n ...op.attributes\n });\n }, new Delta());\n}\nfunction deltaEndsWith(delta, text) {\n let endText = '';\n for (let i = delta.ops.length - 1; i >= 0 && endText.length < text.length; --i // eslint-disable-line no-plusplus\n ) {\n const op = delta.ops[i];\n if (typeof op.insert !== 'string') break;\n endText = op.insert + endText;\n }\n return endText.slice(-1 * text.length) === text;\n}\nfunction isLine(node, scroll) {\n if (!(node instanceof Element)) return false;\n const match = scroll.query(node);\n // @ts-expect-error\n if (match && match.prototype instanceof EmbedBlot) return false;\n return ['address', 'article', 'blockquote', 'canvas', 'dd', 'div', 'dl', 'dt', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'header', 'iframe', 'li', 'main', 'nav', 'ol', 'output', 'p', 'pre', 'section', 'table', 'td', 'tr', 'ul', 'video'].includes(node.tagName.toLowerCase());\n}\nfunction isBetweenInlineElements(node, scroll) {\n return node.previousElementSibling && node.nextElementSibling && !isLine(node.previousElementSibling, scroll) && !isLine(node.nextElementSibling, scroll);\n}\nconst preNodes = new WeakMap();\nfunction isPre(node) {\n if (node == null) return false;\n if (!preNodes.has(node)) {\n // @ts-expect-error\n if (node.tagName === 'PRE') {\n preNodes.set(node, true);\n } else {\n preNodes.set(node, isPre(node.parentNode));\n }\n }\n return preNodes.get(node);\n}\nfunction traverse(scroll, node, elementMatchers, textMatchers, nodeMatches) {\n // Post-order\n if (node.nodeType === node.TEXT_NODE) {\n return textMatchers.reduce((delta, matcher) => {\n return matcher(node, delta, scroll);\n }, new Delta());\n }\n if (node.nodeType === node.ELEMENT_NODE) {\n return Array.from(node.childNodes || []).reduce((delta, childNode) => {\n let childrenDelta = traverse(scroll, childNode, elementMatchers, textMatchers, nodeMatches);\n if (childNode.nodeType === node.ELEMENT_NODE) {\n childrenDelta = elementMatchers.reduce((reducedDelta, matcher) => {\n return matcher(childNode, reducedDelta, scroll);\n }, childrenDelta);\n childrenDelta = (nodeMatches.get(childNode) || []).reduce((reducedDelta, matcher) => {\n return matcher(childNode, reducedDelta, scroll);\n }, childrenDelta);\n }\n return delta.concat(childrenDelta);\n }, new Delta());\n }\n return new Delta();\n}\nfunction createMatchAlias(format) {\n return (_node, delta, scroll) => {\n return applyFormat(delta, format, true, scroll);\n };\n}\nfunction matchAttributor(node, delta, scroll) {\n const attributes = Attributor.keys(node);\n const classes = ClassAttributor.keys(node);\n const styles = StyleAttributor.keys(node);\n const formats = {};\n attributes.concat(classes).concat(styles).forEach(name => {\n let attr = scroll.query(name, Scope.ATTRIBUTE);\n if (attr != null) {\n formats[attr.attrName] = attr.value(node);\n if (formats[attr.attrName]) return;\n }\n attr = ATTRIBUTE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n attr = STYLE_ATTRIBUTORS[name];\n if (attr != null && (attr.attrName === name || attr.keyName === name)) {\n attr = STYLE_ATTRIBUTORS[name];\n formats[attr.attrName] = attr.value(node) || undefined;\n }\n });\n return Object.entries(formats).reduce((newDelta, _ref4) => {\n let [name, value] = _ref4;\n return applyFormat(newDelta, name, value, scroll);\n }, delta);\n}\nfunction matchBlot(node, delta, scroll) {\n const match = scroll.query(node);\n if (match == null) return delta;\n // @ts-expect-error\n if (match.prototype instanceof EmbedBlot) {\n const embed = {};\n // @ts-expect-error\n const value = match.value(node);\n if (value != null) {\n // @ts-expect-error\n embed[match.blotName] = value;\n // @ts-expect-error\n return new Delta().insert(embed, match.formats(node, scroll));\n }\n } else {\n // @ts-expect-error\n if (match.prototype instanceof BlockBlot && !deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n if ('blotName' in match && 'formats' in match && typeof match.formats === 'function') {\n return applyFormat(delta, match.blotName, match.formats(node, scroll), scroll);\n }\n }\n return delta;\n}\nfunction matchBreak(node, delta) {\n if (!deltaEndsWith(delta, '\\n')) {\n delta.insert('\\n');\n }\n return delta;\n}\nfunction matchCodeBlock(node, delta, scroll) {\n const match = scroll.query('code-block');\n const language = match && 'formats' in match && typeof match.formats === 'function' ? match.formats(node, scroll) : true;\n return applyFormat(delta, 'code-block', language, scroll);\n}\nfunction matchIgnore() {\n return new Delta();\n}\nfunction matchIndent(node, delta, scroll) {\n const match = scroll.query(node);\n if (match == null ||\n // @ts-expect-error\n match.blotName !== 'list' || !deltaEndsWith(delta, '\\n')) {\n return delta;\n }\n let indent = -1;\n let parent = node.parentNode;\n while (parent != null) {\n // @ts-expect-error\n if (['OL', 'UL'].includes(parent.tagName)) {\n indent += 1;\n }\n parent = parent.parentNode;\n }\n if (indent <= 0) return delta;\n return delta.reduce((composed, op) => {\n if (!op.insert) return composed;\n if (op.attributes && typeof op.attributes.indent === 'number') {\n return composed.push(op);\n }\n return composed.insert(op.insert, {\n indent,\n ...(op.attributes || {})\n });\n }, new Delta());\n}\nfunction matchList(node, delta, scroll) {\n const element = node;\n let list = element.tagName === 'OL' ? 'ordered' : 'bullet';\n const checkedAttr = element.getAttribute('data-checked');\n if (checkedAttr) {\n list = checkedAttr === 'true' ? 'checked' : 'unchecked';\n }\n return applyFormat(delta, 'list', list, scroll);\n}\nfunction matchNewline(node, delta, scroll) {\n if (!deltaEndsWith(delta, '\\n')) {\n if (isLine(node, scroll) && (node.childNodes.length > 0 || node instanceof HTMLParagraphElement)) {\n return delta.insert('\\n');\n }\n if (delta.length() > 0 && node.nextSibling) {\n let nextSibling = node.nextSibling;\n while (nextSibling != null) {\n if (isLine(nextSibling, scroll)) {\n return delta.insert('\\n');\n }\n const match = scroll.query(nextSibling);\n // @ts-expect-error\n if (match && match.prototype instanceof BlockEmbed) {\n return delta.insert('\\n');\n }\n nextSibling = nextSibling.firstChild;\n }\n }\n }\n return delta;\n}\nfunction matchStyles(node, delta, scroll) {\n const formats = {};\n const style = node.style || {};\n if (style.fontStyle === 'italic') {\n formats.italic = true;\n }\n if (style.textDecoration === 'underline') {\n formats.underline = true;\n }\n if (style.textDecoration === 'line-through') {\n formats.strike = true;\n }\n if (style.fontWeight?.startsWith('bold') ||\n // @ts-expect-error Fix me later\n parseInt(style.fontWeight, 10) >= 700) {\n formats.bold = true;\n }\n delta = Object.entries(formats).reduce((newDelta, _ref5) => {\n let [name, value] = _ref5;\n return applyFormat(newDelta, name, value, scroll);\n }, delta);\n // @ts-expect-error\n if (parseFloat(style.textIndent || 0) > 0) {\n // Could be 0.5in\n return new Delta().insert('\\t').concat(delta);\n }\n return delta;\n}\nfunction matchTable(node, delta, scroll) {\n const table = node.parentElement?.tagName === 'TABLE' ? node.parentElement : node.parentElement?.parentElement;\n if (table != null) {\n const rows = Array.from(table.querySelectorAll('tr'));\n const row = rows.indexOf(node) + 1;\n return applyFormat(delta, 'table', row, scroll);\n }\n return delta;\n}\nfunction matchText(node, delta, scroll) {\n // @ts-expect-error\n let text = node.data;\n // Word represents empty line with  \n if (node.parentElement?.tagName === 'O:P') {\n return delta.insert(text.trim());\n }\n if (!isPre(node)) {\n if (text.trim().length === 0 && text.includes('\\n') && !isBetweenInlineElements(node, scroll)) {\n return delta;\n }\n const replacer = (collapse, match) => {\n const replaced = match.replace(/[^\\u00a0]/g, ''); // \\u00a0 is nbsp;\n return replaced.length < 1 && collapse ? ' ' : replaced;\n };\n text = text.replace(/\\r\\n/g, ' ').replace(/\\n/g, ' ');\n text = text.replace(/\\s\\s+/g, replacer.bind(replacer, true)); // collapse whitespace\n if (node.previousSibling == null && node.parentElement != null && isLine(node.parentElement, scroll) || node.previousSibling instanceof Element && isLine(node.previousSibling, scroll)) {\n text = text.replace(/^\\s+/, replacer.bind(replacer, false));\n }\n if (node.nextSibling == null && node.parentElement != null && isLine(node.parentElement, scroll) || node.nextSibling instanceof Element && isLine(node.nextSibling, scroll)) {\n text = text.replace(/\\s+$/, replacer.bind(replacer, false));\n }\n }\n return delta.insert(text);\n}\nexport { Clipboard as default, matchAttributor, matchBlot, matchNewline, matchText, traverse };\n//# sourceMappingURL=clipboard.js.map","import { Scope } from 'parchment';\nimport Module from '../core/module.js';\nimport Quill from '../core/quill.js';\nclass History extends Module {\n static DEFAULTS = {\n delay: 1000,\n maxStack: 100,\n userOnly: false\n };\n lastRecorded = 0;\n ignoreChange = false;\n stack = {\n undo: [],\n redo: []\n };\n currentRange = null;\n constructor(quill, options) {\n super(quill, options);\n this.quill.on(Quill.events.EDITOR_CHANGE, (eventName, value, oldValue, source) => {\n if (eventName === Quill.events.SELECTION_CHANGE) {\n if (value && source !== Quill.sources.SILENT) {\n this.currentRange = value;\n }\n } else if (eventName === Quill.events.TEXT_CHANGE) {\n if (!this.ignoreChange) {\n if (!this.options.userOnly || source === Quill.sources.USER) {\n this.record(value, oldValue);\n } else {\n this.transform(value);\n }\n }\n this.currentRange = transformRange(this.currentRange, value);\n }\n });\n this.quill.keyboard.addBinding({\n key: 'z',\n shortKey: true\n }, this.undo.bind(this));\n this.quill.keyboard.addBinding({\n key: ['z', 'Z'],\n shortKey: true,\n shiftKey: true\n }, this.redo.bind(this));\n if (/Win/i.test(navigator.platform)) {\n this.quill.keyboard.addBinding({\n key: 'y',\n shortKey: true\n }, this.redo.bind(this));\n }\n this.quill.root.addEventListener('beforeinput', event => {\n if (event.inputType === 'historyUndo') {\n this.undo();\n event.preventDefault();\n } else if (event.inputType === 'historyRedo') {\n this.redo();\n event.preventDefault();\n }\n });\n }\n change(source, dest) {\n if (this.stack[source].length === 0) return;\n const item = this.stack[source].pop();\n if (!item) return;\n const base = this.quill.getContents();\n const inverseDelta = item.delta.invert(base);\n this.stack[dest].push({\n delta: inverseDelta,\n range: transformRange(item.range, inverseDelta)\n });\n this.lastRecorded = 0;\n this.ignoreChange = true;\n this.quill.updateContents(item.delta, Quill.sources.USER);\n this.ignoreChange = false;\n this.restoreSelection(item);\n }\n clear() {\n this.stack = {\n undo: [],\n redo: []\n };\n }\n cutoff() {\n this.lastRecorded = 0;\n }\n record(changeDelta, oldDelta) {\n if (changeDelta.ops.length === 0) return;\n this.stack.redo = [];\n let undoDelta = changeDelta.invert(oldDelta);\n let undoRange = this.currentRange;\n const timestamp = Date.now();\n if (\n // @ts-expect-error Fix me later\n this.lastRecorded + this.options.delay > timestamp && this.stack.undo.length > 0) {\n const item = this.stack.undo.pop();\n if (item) {\n undoDelta = undoDelta.compose(item.delta);\n undoRange = item.range;\n }\n } else {\n this.lastRecorded = timestamp;\n }\n if (undoDelta.length() === 0) return;\n this.stack.undo.push({\n delta: undoDelta,\n range: undoRange\n });\n // @ts-expect-error Fix me later\n if (this.stack.undo.length > this.options.maxStack) {\n this.stack.undo.shift();\n }\n }\n redo() {\n this.change('redo', 'undo');\n }\n transform(delta) {\n transformStack(this.stack.undo, delta);\n transformStack(this.stack.redo, delta);\n }\n undo() {\n this.change('undo', 'redo');\n }\n restoreSelection(stackItem) {\n if (stackItem.range) {\n this.quill.setSelection(stackItem.range, Quill.sources.USER);\n } else {\n const index = getLastChangeIndex(this.quill.scroll, stackItem.delta);\n this.quill.setSelection(index, Quill.sources.USER);\n }\n }\n}\nfunction transformStack(stack, delta) {\n let remoteDelta = delta;\n for (let i = stack.length - 1; i >= 0; i -= 1) {\n const oldItem = stack[i];\n stack[i] = {\n delta: remoteDelta.transform(oldItem.delta, true),\n range: oldItem.range && transformRange(oldItem.range, remoteDelta)\n };\n remoteDelta = oldItem.delta.transform(remoteDelta);\n if (stack[i].delta.length() === 0) {\n stack.splice(i, 1);\n }\n }\n}\nfunction endsWithNewlineChange(scroll, delta) {\n const lastOp = delta.ops[delta.ops.length - 1];\n if (lastOp == null) return false;\n if (lastOp.insert != null) {\n return typeof lastOp.insert === 'string' && lastOp.insert.endsWith('\\n');\n }\n if (lastOp.attributes != null) {\n return Object.keys(lastOp.attributes).some(attr => {\n return scroll.query(attr, Scope.BLOCK) != null;\n });\n }\n return false;\n}\nfunction getLastChangeIndex(scroll, delta) {\n const deleteLength = delta.reduce((length, op) => {\n return length + (op.delete || 0);\n }, 0);\n let changeIndex = delta.length() - deleteLength;\n if (endsWithNewlineChange(scroll, delta)) {\n changeIndex -= 1;\n }\n return changeIndex;\n}\nfunction transformRange(range, delta) {\n if (!range) return range;\n const start = delta.transformPosition(range.index);\n const end = delta.transformPosition(range.index + range.length);\n return {\n index: start,\n length: end - start\n };\n}\nexport { History as default, getLastChangeIndex };\n//# sourceMappingURL=history.js.map","import Delta from 'quill-delta';\nimport Emitter from '../core/emitter.js';\nimport Module from '../core/module.js';\nclass Uploader extends Module {\n constructor(quill, options) {\n super(quill, options);\n quill.root.addEventListener('drop', e => {\n e.preventDefault();\n let native = null;\n if (document.caretRangeFromPoint) {\n native = document.caretRangeFromPoint(e.clientX, e.clientY);\n // @ts-expect-error\n } else if (document.caretPositionFromPoint) {\n // @ts-expect-error\n const position = document.caretPositionFromPoint(e.clientX, e.clientY);\n native = document.createRange();\n native.setStart(position.offsetNode, position.offset);\n native.setEnd(position.offsetNode, position.offset);\n }\n const normalized = native && quill.selection.normalizeNative(native);\n if (normalized) {\n const range = quill.selection.normalizedToRange(normalized);\n if (e.dataTransfer?.files) {\n this.upload(range, e.dataTransfer.files);\n }\n }\n });\n }\n upload(range, files) {\n const uploads = [];\n Array.from(files).forEach(file => {\n if (file && this.options.mimetypes?.includes(file.type)) {\n uploads.push(file);\n }\n });\n if (uploads.length > 0) {\n // @ts-expect-error Fix me later\n this.options.handler.call(this, range, uploads);\n }\n }\n}\nUploader.DEFAULTS = {\n mimetypes: ['image/png', 'image/jpeg'],\n handler(range, files) {\n if (!this.quill.scroll.query('image')) {\n return;\n }\n const promises = files.map(file => {\n return new Promise(resolve => {\n const reader = new FileReader();\n reader.onload = () => {\n resolve(reader.result);\n };\n reader.readAsDataURL(file);\n });\n });\n Promise.all(promises).then(images => {\n const update = images.reduce((delta, image) => {\n return delta.insert({\n image\n });\n }, new Delta().retain(range.index).delete(range.length));\n this.quill.updateContents(update, Emitter.sources.USER);\n this.quill.setSelection(range.index + images.length, Emitter.sources.SILENT);\n });\n }\n};\nexport default Uploader;\n//# sourceMappingURL=uploader.js.map","import Delta from 'quill-delta';\nimport Module from '../core/module.js';\nimport Quill from '../core/quill.js';\nimport { deleteRange } from './keyboard.js';\nconst INSERT_TYPES = ['insertText', 'insertReplacementText'];\nclass Input extends Module {\n constructor(quill, options) {\n super(quill, options);\n quill.root.addEventListener('beforeinput', event => {\n this.handleBeforeInput(event);\n });\n\n // Gboard with English input on Android triggers `compositionstart` sometimes even\n // users are not going to type anything.\n if (!/Android/i.test(navigator.userAgent)) {\n quill.on(Quill.events.COMPOSITION_BEFORE_START, () => {\n this.handleCompositionStart();\n });\n }\n }\n deleteRange(range) {\n deleteRange({\n range,\n quill: this.quill\n });\n }\n replaceText(range) {\n let text = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n if (range.length === 0) return false;\n if (text) {\n // Follow the native behavior that inherits the formats of the first character\n const formats = this.quill.getFormat(range.index, 1);\n this.deleteRange(range);\n this.quill.updateContents(new Delta().retain(range.index).insert(text, formats), Quill.sources.USER);\n } else {\n this.deleteRange(range);\n }\n this.quill.setSelection(range.index + text.length, 0, Quill.sources.SILENT);\n return true;\n }\n handleBeforeInput(event) {\n if (this.quill.composition.isComposing || event.defaultPrevented || !INSERT_TYPES.includes(event.inputType)) {\n return;\n }\n const staticRange = event.getTargetRanges ? event.getTargetRanges()[0] : null;\n if (!staticRange || staticRange.collapsed === true) {\n return;\n }\n const text = getPlainTextFromInputEvent(event);\n if (text == null) {\n return;\n }\n const normalized = this.quill.selection.normalizeNative(staticRange);\n const range = normalized ? this.quill.selection.normalizedToRange(normalized) : null;\n if (range && this.replaceText(range, text)) {\n event.preventDefault();\n }\n }\n handleCompositionStart() {\n const range = this.quill.getSelection();\n if (range) {\n this.replaceText(range);\n }\n }\n}\nfunction getPlainTextFromInputEvent(event) {\n // When `inputType` is \"insertText\":\n // - `event.data` should be string (Safari uses `event.dataTransfer`).\n // - `event.dataTransfer` should be null.\n // When `inputType` is \"insertReplacementText\":\n // - `event.data` should be null.\n // - `event.dataTransfer` should contain \"text/plain\" data.\n\n if (typeof event.data === 'string') {\n return event.data;\n }\n if (event.dataTransfer?.types.includes('text/plain')) {\n return event.dataTransfer.getData('text/plain');\n }\n return null;\n}\nexport default Input;\n//# sourceMappingURL=input.js.map","import { ParentBlot } from 'parchment';\nimport Module from '../core/module.js';\nimport Quill from '../core/quill.js';\nconst isMac = /Mac/i.test(navigator.platform);\n\n// Export for testing\nexport const TTL_FOR_VALID_SELECTION_CHANGE = 100;\n\n// A loose check to determine if the shortcut can move the caret before a UI node:\n// [CARET]
    [CONTENT]
    \nconst canMoveCaretBeforeUINode = event => {\n if (event.key === 'ArrowLeft' || event.key === 'ArrowRight' ||\n // RTL scripts or moving from the end of the previous line\n event.key === 'ArrowUp' || event.key === 'ArrowDown' || event.key === 'Home') {\n return true;\n }\n if (isMac && event.key === 'a' && event.ctrlKey === true) {\n return true;\n }\n return false;\n};\nclass UINode extends Module {\n isListening = false;\n selectionChangeDeadline = 0;\n constructor(quill, options) {\n super(quill, options);\n this.handleArrowKeys();\n this.handleNavigationShortcuts();\n }\n handleArrowKeys() {\n this.quill.keyboard.addBinding({\n key: ['ArrowLeft', 'ArrowRight'],\n offset: 0,\n shiftKey: null,\n handler(range, _ref) {\n let {\n line,\n event\n } = _ref;\n if (!(line instanceof ParentBlot) || !line.uiNode) {\n return true;\n }\n const isRTL = getComputedStyle(line.domNode)['direction'] === 'rtl';\n if (isRTL && event.key !== 'ArrowRight' || !isRTL && event.key !== 'ArrowLeft') {\n return true;\n }\n this.quill.setSelection(range.index - 1, range.length + (event.shiftKey ? 1 : 0), Quill.sources.USER);\n return false;\n }\n });\n }\n handleNavigationShortcuts() {\n this.quill.root.addEventListener('keydown', event => {\n if (!event.defaultPrevented && canMoveCaretBeforeUINode(event)) {\n this.ensureListeningToSelectionChange();\n }\n });\n }\n\n /**\n * We only listen to the `selectionchange` event when\n * there is an intention of moving the caret to the beginning using shortcuts.\n * This is primarily implemented to prevent infinite loops, as we are changing\n * the selection within the handler of a `selectionchange` event.\n */\n ensureListeningToSelectionChange() {\n this.selectionChangeDeadline = Date.now() + TTL_FOR_VALID_SELECTION_CHANGE;\n if (this.isListening) return;\n this.isListening = true;\n const listener = () => {\n this.isListening = false;\n if (Date.now() <= this.selectionChangeDeadline) {\n this.handleSelectionChange();\n }\n };\n document.addEventListener('selectionchange', listener, {\n once: true\n });\n }\n handleSelectionChange() {\n const selection = document.getSelection();\n if (!selection) return;\n const range = selection.getRangeAt(0);\n if (range.collapsed !== true || range.startOffset !== 0) return;\n const line = this.quill.scroll.find(range.startContainer);\n if (!(line instanceof ParentBlot) || !line.uiNode) return;\n const newRange = document.createRange();\n newRange.setStartAfter(line.uiNode);\n newRange.setEndAfter(line.uiNode);\n selection.removeAllRanges();\n selection.addRange(newRange);\n }\n}\nexport default UINode;\n//# sourceMappingURL=uiNode.js.map","import Quill, { Parchment, Range } from './core/quill.js';\nimport Block, { BlockEmbed } from './blots/block.js';\nimport Break from './blots/break.js';\nimport Container from './blots/container.js';\nimport Cursor from './blots/cursor.js';\nimport Embed from './blots/embed.js';\nimport Inline from './blots/inline.js';\nimport Scroll from './blots/scroll.js';\nimport TextBlot from './blots/text.js';\nimport Clipboard from './modules/clipboard.js';\nimport History from './modules/history.js';\nimport Keyboard from './modules/keyboard.js';\nimport Uploader from './modules/uploader.js';\nimport Delta, { Op, OpIterator, AttributeMap } from 'quill-delta';\nimport Input from './modules/input.js';\nimport UINode from './modules/uiNode.js';\nexport { default as Module } from './core/module.js';\nexport { Delta, Op, OpIterator, AttributeMap, Parchment, Range };\nQuill.register({\n 'blots/block': Block,\n 'blots/block/embed': BlockEmbed,\n 'blots/break': Break,\n 'blots/container': Container,\n 'blots/cursor': Cursor,\n 'blots/embed': Embed,\n 'blots/inline': Inline,\n 'blots/scroll': Scroll,\n 'blots/text': TextBlot,\n 'modules/clipboard': Clipboard,\n 'modules/history': History,\n 'modules/keyboard': Keyboard,\n 'modules/uploader': Uploader,\n 'modules/input': Input,\n 'modules/uiNode': UINode\n});\nexport default Quill;\n//# sourceMappingURL=core.js.map","import { ClassAttributor, Scope } from 'parchment';\nclass IndentAttributor extends ClassAttributor {\n add(node, value) {\n let normalizedValue = 0;\n if (value === '+1' || value === '-1') {\n const indent = this.value(node) || 0;\n normalizedValue = value === '+1' ? indent + 1 : indent - 1;\n } else if (typeof value === 'number') {\n normalizedValue = value;\n }\n if (normalizedValue === 0) {\n this.remove(node);\n return true;\n }\n return super.add(node, normalizedValue.toString());\n }\n canAdd(node, value) {\n return super.canAdd(node, value) || super.canAdd(node, parseInt(value, 10));\n }\n value(node) {\n return parseInt(super.value(node), 10) || undefined; // Don't return NaN\n }\n}\nconst IndentClass = new IndentAttributor('indent', 'ql-indent', {\n scope: Scope.BLOCK,\n // @ts-expect-error\n whitelist: [1, 2, 3, 4, 5, 6, 7, 8]\n});\nexport default IndentClass;\n//# sourceMappingURL=indent.js.map","import Block from '../blots/block.js';\nclass Blockquote extends Block {\n static blotName = 'blockquote';\n static tagName = 'blockquote';\n}\nexport default Blockquote;\n//# sourceMappingURL=blockquote.js.map","import Block from '../blots/block.js';\nclass Header extends Block {\n static blotName = 'header';\n static tagName = ['H1', 'H2', 'H3', 'H4', 'H5', 'H6'];\n static formats(domNode) {\n return this.tagName.indexOf(domNode.tagName) + 1;\n }\n}\nexport default Header;\n//# sourceMappingURL=header.js.map","import Block from '../blots/block.js';\nimport Container from '../blots/container.js';\nimport Quill from '../core/quill.js';\nclass ListContainer extends Container {}\nListContainer.blotName = 'list-container';\nListContainer.tagName = 'OL';\nclass ListItem extends Block {\n static create(value) {\n const node = super.create();\n node.setAttribute('data-list', value);\n return node;\n }\n static formats(domNode) {\n return domNode.getAttribute('data-list') || undefined;\n }\n static register() {\n Quill.register(ListContainer);\n }\n constructor(scroll, domNode) {\n super(scroll, domNode);\n const ui = domNode.ownerDocument.createElement('span');\n const listEventHandler = e => {\n if (!scroll.isEnabled()) return;\n const format = this.statics.formats(domNode, scroll);\n if (format === 'checked') {\n this.format('list', 'unchecked');\n e.preventDefault();\n } else if (format === 'unchecked') {\n this.format('list', 'checked');\n e.preventDefault();\n }\n };\n ui.addEventListener('mousedown', listEventHandler);\n ui.addEventListener('touchstart', listEventHandler);\n this.attachUI(ui);\n }\n format(name, value) {\n if (name === this.statics.blotName && value) {\n this.domNode.setAttribute('data-list', value);\n } else {\n super.format(name, value);\n }\n }\n}\nListItem.blotName = 'list';\nListItem.tagName = 'LI';\nListContainer.allowedChildren = [ListItem];\nListItem.requiredContainer = ListContainer;\nexport { ListContainer, ListItem as default };\n//# sourceMappingURL=list.js.map","import Inline from '../blots/inline.js';\nclass Bold extends Inline {\n static blotName = 'bold';\n static tagName = ['STRONG', 'B'];\n static create() {\n return super.create();\n }\n static formats() {\n return true;\n }\n optimize(context) {\n super.optimize(context);\n if (this.domNode.tagName !== this.statics.tagName[0]) {\n this.replaceWith(this.statics.blotName);\n }\n }\n}\nexport default Bold;\n//# sourceMappingURL=bold.js.map","import Bold from './bold.js';\nclass Italic extends Bold {\n static blotName = 'italic';\n static tagName = ['EM', 'I'];\n}\nexport default Italic;\n//# sourceMappingURL=italic.js.map","import Inline from '../blots/inline.js';\nclass Link extends Inline {\n static blotName = 'link';\n static tagName = 'A';\n static SANITIZED_URL = 'about:blank';\n static PROTOCOL_WHITELIST = ['http', 'https', 'mailto', 'tel', 'sms'];\n static create(value) {\n const node = super.create(value);\n node.setAttribute('href', this.sanitize(value));\n node.setAttribute('rel', 'noopener noreferrer');\n node.setAttribute('target', '_blank');\n return node;\n }\n static formats(domNode) {\n return domNode.getAttribute('href');\n }\n static sanitize(url) {\n return sanitize(url, this.PROTOCOL_WHITELIST) ? url : this.SANITIZED_URL;\n }\n format(name, value) {\n if (name !== this.statics.blotName || !value) {\n super.format(name, value);\n } else {\n // @ts-expect-error\n this.domNode.setAttribute('href', this.constructor.sanitize(value));\n }\n }\n}\nfunction sanitize(url, protocols) {\n const anchor = document.createElement('a');\n anchor.href = url;\n const protocol = anchor.href.slice(0, anchor.href.indexOf(':'));\n return protocols.indexOf(protocol) > -1;\n}\nexport { Link as default, sanitize };\n//# sourceMappingURL=link.js.map","import Inline from '../blots/inline.js';\nclass Script extends Inline {\n static blotName = 'script';\n static tagName = ['SUB', 'SUP'];\n static create(value) {\n if (value === 'super') {\n return document.createElement('sup');\n }\n if (value === 'sub') {\n return document.createElement('sub');\n }\n return super.create(value);\n }\n static formats(domNode) {\n if (domNode.tagName === 'SUB') return 'sub';\n if (domNode.tagName === 'SUP') return 'super';\n return undefined;\n }\n}\nexport default Script;\n//# sourceMappingURL=script.js.map","import Bold from './bold.js';\nclass Strike extends Bold {\n static blotName = 'strike';\n static tagName = ['S', 'STRIKE'];\n}\nexport default Strike;\n//# sourceMappingURL=strike.js.map","import Inline from '../blots/inline.js';\nclass Underline extends Inline {\n static blotName = 'underline';\n static tagName = 'U';\n}\nexport default Underline;\n//# sourceMappingURL=underline.js.map","import Embed from '../blots/embed.js';\nclass Formula extends Embed {\n static blotName = 'formula';\n static className = 'ql-formula';\n static tagName = 'SPAN';\n static create(value) {\n // @ts-expect-error\n if (window.katex == null) {\n throw new Error('Formula module requires KaTeX.');\n }\n const node = super.create(value);\n if (typeof value === 'string') {\n // @ts-expect-error\n window.katex.render(value, node, {\n throwOnError: false,\n errorColor: '#f00'\n });\n node.setAttribute('data-value', value);\n }\n return node;\n }\n static value(domNode) {\n return domNode.getAttribute('data-value');\n }\n html() {\n const {\n formula\n } = this.value();\n return `${formula}`;\n }\n}\nexport default Formula;\n//# sourceMappingURL=formula.js.map","import { EmbedBlot } from 'parchment';\nimport { sanitize } from './link.js';\nconst ATTRIBUTES = ['alt', 'height', 'width'];\nclass Image extends EmbedBlot {\n static blotName = 'image';\n static tagName = 'IMG';\n static create(value) {\n const node = super.create(value);\n if (typeof value === 'string') {\n node.setAttribute('src', this.sanitize(value));\n }\n return node;\n }\n static formats(domNode) {\n return ATTRIBUTES.reduce((formats, attribute) => {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n static match(url) {\n return /\\.(jpe?g|gif|png)$/.test(url) || /^data:image\\/.+;base64/.test(url);\n }\n static sanitize(url) {\n return sanitize(url, ['http', 'https', 'data']) ? url : '//:0';\n }\n static value(domNode) {\n return domNode.getAttribute('src');\n }\n format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n super.format(name, value);\n }\n }\n}\nexport default Image;\n//# sourceMappingURL=image.js.map","import { BlockEmbed } from '../blots/block.js';\nimport Link from './link.js';\nconst ATTRIBUTES = ['height', 'width'];\nclass Video extends BlockEmbed {\n static blotName = 'video';\n static className = 'ql-video';\n static tagName = 'IFRAME';\n static create(value) {\n const node = super.create(value);\n node.setAttribute('frameborder', '0');\n node.setAttribute('allowfullscreen', 'true');\n node.setAttribute('src', this.sanitize(value));\n return node;\n }\n static formats(domNode) {\n return ATTRIBUTES.reduce((formats, attribute) => {\n if (domNode.hasAttribute(attribute)) {\n formats[attribute] = domNode.getAttribute(attribute);\n }\n return formats;\n }, {});\n }\n static sanitize(url) {\n return Link.sanitize(url);\n }\n static value(domNode) {\n return domNode.getAttribute('src');\n }\n format(name, value) {\n if (ATTRIBUTES.indexOf(name) > -1) {\n if (value) {\n this.domNode.setAttribute(name, value);\n } else {\n this.domNode.removeAttribute(name);\n }\n } else {\n super.format(name, value);\n }\n }\n html() {\n const {\n video\n } = this.value();\n return `${video}`;\n }\n}\nexport default Video;\n//# sourceMappingURL=video.js.map","import Delta from 'quill-delta';\nimport { ClassAttributor, Scope } from 'parchment';\nimport Inline from '../blots/inline.js';\nimport Quill from '../core/quill.js';\nimport Module from '../core/module.js';\nimport { blockDelta } from '../blots/block.js';\nimport BreakBlot from '../blots/break.js';\nimport CursorBlot from '../blots/cursor.js';\nimport TextBlot, { escapeText } from '../blots/text.js';\nimport CodeBlock, { CodeBlockContainer } from '../formats/code.js';\nimport { traverse } from './clipboard.js';\nconst TokenAttributor = new ClassAttributor('code-token', 'hljs', {\n scope: Scope.INLINE\n});\nclass CodeToken extends Inline {\n static formats(node, scroll) {\n while (node != null && node !== scroll.domNode) {\n if (node.classList && node.classList.contains(CodeBlock.className)) {\n // @ts-expect-error\n return super.formats(node, scroll);\n }\n // @ts-expect-error\n node = node.parentNode;\n }\n return undefined;\n }\n constructor(scroll, domNode, value) {\n // @ts-expect-error\n super(scroll, domNode, value);\n TokenAttributor.add(this.domNode, value);\n }\n format(format, value) {\n if (format !== CodeToken.blotName) {\n super.format(format, value);\n } else if (value) {\n TokenAttributor.add(this.domNode, value);\n } else {\n TokenAttributor.remove(this.domNode);\n this.domNode.classList.remove(this.statics.className);\n }\n }\n optimize() {\n // @ts-expect-error\n super.optimize(...arguments);\n if (!TokenAttributor.value(this.domNode)) {\n this.unwrap();\n }\n }\n}\nCodeToken.blotName = 'code-token';\nCodeToken.className = 'ql-token';\nclass SyntaxCodeBlock extends CodeBlock {\n static create(value) {\n const domNode = super.create(value);\n if (typeof value === 'string') {\n domNode.setAttribute('data-language', value);\n }\n return domNode;\n }\n static formats(domNode) {\n // @ts-expect-error\n return domNode.getAttribute('data-language') || 'plain';\n }\n static register() {} // Syntax module will register\n\n format(name, value) {\n if (name === this.statics.blotName && value) {\n // @ts-expect-error\n this.domNode.setAttribute('data-language', value);\n } else {\n super.format(name, value);\n }\n }\n replaceWith(name, value) {\n this.formatAt(0, this.length(), CodeToken.blotName, false);\n return super.replaceWith(name, value);\n }\n}\nclass SyntaxCodeBlockContainer extends CodeBlockContainer {\n attach() {\n super.attach();\n this.forceNext = false;\n // @ts-expect-error\n this.scroll.emitMount(this);\n }\n format(name, value) {\n if (name === SyntaxCodeBlock.blotName) {\n this.forceNext = true;\n this.children.forEach(child => {\n // @ts-expect-error\n child.format(name, value);\n });\n }\n }\n formatAt(index, length, name, value) {\n if (name === SyntaxCodeBlock.blotName) {\n this.forceNext = true;\n }\n super.formatAt(index, length, name, value);\n }\n highlight(highlight) {\n let forced = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.children.head == null) return;\n const nodes = Array.from(this.domNode.childNodes).filter(node => node !== this.uiNode);\n const text = `${nodes.map(node => node.textContent).join('\\n')}\\n`;\n const language = SyntaxCodeBlock.formats(this.children.head.domNode);\n if (forced || this.forceNext || this.cachedText !== text) {\n if (text.trim().length > 0 || this.cachedText == null) {\n const oldDelta = this.children.reduce((delta, child) => {\n // @ts-expect-error\n return delta.concat(blockDelta(child, false));\n }, new Delta());\n const delta = highlight(text, language);\n oldDelta.diff(delta).reduce((index, _ref) => {\n let {\n retain,\n attributes\n } = _ref;\n // Should be all retains\n if (!retain) return index;\n if (attributes) {\n Object.keys(attributes).forEach(format => {\n if ([SyntaxCodeBlock.blotName, CodeToken.blotName].includes(format)) {\n // @ts-expect-error\n this.formatAt(index, retain, format, attributes[format]);\n }\n });\n }\n // @ts-expect-error\n return index + retain;\n }, 0);\n }\n this.cachedText = text;\n this.forceNext = false;\n }\n }\n html(index, length) {\n const [codeBlock] = this.children.find(index);\n const language = codeBlock ? SyntaxCodeBlock.formats(codeBlock.domNode) : 'plain';\n return `
    \\n${escapeText(this.code(index, length))}\\n
    `;\n }\n optimize(context) {\n super.optimize(context);\n if (this.parent != null && this.children.head != null && this.uiNode != null) {\n const language = SyntaxCodeBlock.formats(this.children.head.domNode);\n // @ts-expect-error\n if (language !== this.uiNode.value) {\n // @ts-expect-error\n this.uiNode.value = language;\n }\n }\n }\n}\nSyntaxCodeBlockContainer.allowedChildren = [SyntaxCodeBlock];\nSyntaxCodeBlock.requiredContainer = SyntaxCodeBlockContainer;\nSyntaxCodeBlock.allowedChildren = [CodeToken, CursorBlot, TextBlot, BreakBlot];\nconst highlight = (lib, language, text) => {\n if (typeof lib.versionString === 'string') {\n const majorVersion = lib.versionString.split('.')[0];\n if (parseInt(majorVersion, 10) >= 11) {\n return lib.highlight(text, {\n language\n }).value;\n }\n }\n return lib.highlight(language, text).value;\n};\nclass Syntax extends Module {\n static register() {\n Quill.register(CodeToken, true);\n Quill.register(SyntaxCodeBlock, true);\n Quill.register(SyntaxCodeBlockContainer, true);\n }\n constructor(quill, options) {\n super(quill, options);\n if (this.options.hljs == null) {\n throw new Error('Syntax module requires highlight.js. Please include the library on the page before Quill.');\n }\n // @ts-expect-error Fix me later\n this.languages = this.options.languages.reduce((memo, _ref2) => {\n let {\n key\n } = _ref2;\n memo[key] = true;\n return memo;\n }, {});\n this.highlightBlot = this.highlightBlot.bind(this);\n this.initListener();\n this.initTimer();\n }\n initListener() {\n this.quill.on(Quill.events.SCROLL_BLOT_MOUNT, blot => {\n if (!(blot instanceof SyntaxCodeBlockContainer)) return;\n const select = this.quill.root.ownerDocument.createElement('select');\n // @ts-expect-error Fix me later\n this.options.languages.forEach(_ref3 => {\n let {\n key,\n label\n } = _ref3;\n const option = select.ownerDocument.createElement('option');\n option.textContent = label;\n option.setAttribute('value', key);\n select.appendChild(option);\n });\n select.addEventListener('change', () => {\n blot.format(SyntaxCodeBlock.blotName, select.value);\n this.quill.root.focus(); // Prevent scrolling\n this.highlight(blot, true);\n });\n if (blot.uiNode == null) {\n blot.attachUI(select);\n if (blot.children.head) {\n select.value = SyntaxCodeBlock.formats(blot.children.head.domNode);\n }\n }\n });\n }\n initTimer() {\n let timer = null;\n this.quill.on(Quill.events.SCROLL_OPTIMIZE, () => {\n if (timer) {\n clearTimeout(timer);\n }\n timer = setTimeout(() => {\n this.highlight();\n timer = null;\n }, this.options.interval);\n });\n }\n highlight() {\n let blot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (this.quill.selection.composing) return;\n this.quill.update(Quill.sources.USER);\n const range = this.quill.getSelection();\n const blots = blot == null ? this.quill.scroll.descendants(SyntaxCodeBlockContainer) : [blot];\n blots.forEach(container => {\n container.highlight(this.highlightBlot, force);\n });\n this.quill.update(Quill.sources.SILENT);\n if (range != null) {\n this.quill.setSelection(range, Quill.sources.SILENT);\n }\n }\n highlightBlot(text) {\n let language = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'plain';\n language = this.languages[language] ? language : 'plain';\n if (language === 'plain') {\n return escapeText(text).split('\\n').reduce((delta, line, i) => {\n if (i !== 0) {\n delta.insert('\\n', {\n [CodeBlock.blotName]: language\n });\n }\n return delta.insert(line);\n }, new Delta());\n }\n const container = this.quill.root.ownerDocument.createElement('div');\n container.classList.add(CodeBlock.className);\n container.innerHTML = highlight(this.options.hljs, language, text);\n return traverse(this.quill.scroll, container, [(node, delta) => {\n // @ts-expect-error\n const value = TokenAttributor.value(node);\n if (value) {\n return delta.compose(new Delta().retain(delta.length(), {\n [CodeToken.blotName]: value\n }));\n }\n return delta;\n }], [(node, delta) => {\n // @ts-expect-error\n return node.data.split('\\n').reduce((memo, nodeText, i) => {\n if (i !== 0) memo.insert('\\n', {\n [CodeBlock.blotName]: language\n });\n return memo.insert(nodeText);\n }, delta);\n }], new WeakMap());\n }\n}\nSyntax.DEFAULTS = {\n hljs: (() => {\n return window.hljs;\n })(),\n interval: 1000,\n languages: [{\n key: 'plain',\n label: 'Plain'\n }, {\n key: 'bash',\n label: 'Bash'\n }, {\n key: 'cpp',\n label: 'C++'\n }, {\n key: 'cs',\n label: 'C#'\n }, {\n key: 'css',\n label: 'CSS'\n }, {\n key: 'diff',\n label: 'Diff'\n }, {\n key: 'xml',\n label: 'HTML/XML'\n }, {\n key: 'java',\n label: 'Java'\n }, {\n key: 'javascript',\n label: 'JavaScript'\n }, {\n key: 'markdown',\n label: 'Markdown'\n }, {\n key: 'php',\n label: 'PHP'\n }, {\n key: 'python',\n label: 'Python'\n }, {\n key: 'ruby',\n label: 'Ruby'\n }, {\n key: 'sql',\n label: 'SQL'\n }]\n};\nexport { SyntaxCodeBlock as CodeBlock, CodeToken, Syntax as default };\n//# sourceMappingURL=syntax.js.map","import Block from '../blots/block.js';\nimport Container from '../blots/container.js';\nclass TableCell extends Block {\n static blotName = 'table';\n static tagName = 'TD';\n static create(value) {\n const node = super.create();\n if (value) {\n node.setAttribute('data-row', value);\n } else {\n node.setAttribute('data-row', tableId());\n }\n return node;\n }\n static formats(domNode) {\n if (domNode.hasAttribute('data-row')) {\n return domNode.getAttribute('data-row');\n }\n return undefined;\n }\n cellOffset() {\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n return -1;\n }\n format(name, value) {\n if (name === TableCell.blotName && value) {\n this.domNode.setAttribute('data-row', value);\n } else {\n super.format(name, value);\n }\n }\n row() {\n return this.parent;\n }\n rowOffset() {\n if (this.row()) {\n return this.row().rowOffset();\n }\n return -1;\n }\n table() {\n return this.row() && this.row().table();\n }\n}\nclass TableRow extends Container {\n static blotName = 'table-row';\n static tagName = 'TR';\n checkMerge() {\n // @ts-expect-error\n if (super.checkMerge() && this.next.children.head != null) {\n // @ts-expect-error\n const thisHead = this.children.head.formats();\n // @ts-expect-error\n const thisTail = this.children.tail.formats();\n // @ts-expect-error\n const nextHead = this.next.children.head.formats();\n // @ts-expect-error\n const nextTail = this.next.children.tail.formats();\n return thisHead.table === thisTail.table && thisHead.table === nextHead.table && thisHead.table === nextTail.table;\n }\n return false;\n }\n optimize(context) {\n super.optimize(context);\n this.children.forEach(child => {\n if (child.next == null) return;\n const childFormats = child.formats();\n const nextFormats = child.next.formats();\n if (childFormats.table !== nextFormats.table) {\n const next = this.splitAfter(child);\n if (next) {\n // @ts-expect-error TODO: parameters of optimize() should be a optional\n next.optimize();\n }\n // We might be able to merge with prev now\n if (this.prev) {\n // @ts-expect-error TODO: parameters of optimize() should be a optional\n this.prev.optimize();\n }\n }\n });\n }\n rowOffset() {\n if (this.parent) {\n return this.parent.children.indexOf(this);\n }\n return -1;\n }\n table() {\n return this.parent && this.parent.parent;\n }\n}\nclass TableBody extends Container {\n static blotName = 'table-body';\n static tagName = 'TBODY';\n}\nclass TableContainer extends Container {\n static blotName = 'table-container';\n static tagName = 'TABLE';\n balanceCells() {\n const rows = this.descendants(TableRow);\n const maxColumns = rows.reduce((max, row) => {\n return Math.max(row.children.length, max);\n }, 0);\n rows.forEach(row => {\n new Array(maxColumns - row.children.length).fill(0).forEach(() => {\n let value;\n if (row.children.head != null) {\n value = TableCell.formats(row.children.head.domNode);\n }\n const blot = this.scroll.create(TableCell.blotName, value);\n row.appendChild(blot);\n // @ts-expect-error TODO: parameters of optimize() should be a optional\n blot.optimize(); // Add break blot\n });\n });\n }\n cells(column) {\n return this.rows().map(row => row.children.at(column));\n }\n deleteColumn(index) {\n // @ts-expect-error\n const [body] = this.descendant(TableBody);\n if (body == null || body.children.head == null) return;\n body.children.forEach(row => {\n const cell = row.children.at(index);\n if (cell != null) {\n cell.remove();\n }\n });\n }\n insertColumn(index) {\n // @ts-expect-error\n const [body] = this.descendant(TableBody);\n if (body == null || body.children.head == null) return;\n body.children.forEach(row => {\n const ref = row.children.at(index);\n // @ts-expect-error\n const value = TableCell.formats(row.children.head.domNode);\n const cell = this.scroll.create(TableCell.blotName, value);\n row.insertBefore(cell, ref);\n });\n }\n insertRow(index) {\n // @ts-expect-error\n const [body] = this.descendant(TableBody);\n if (body == null || body.children.head == null) return;\n const id = tableId();\n const row = this.scroll.create(TableRow.blotName);\n body.children.head.children.forEach(() => {\n const cell = this.scroll.create(TableCell.blotName, id);\n row.appendChild(cell);\n });\n const ref = body.children.at(index);\n body.insertBefore(row, ref);\n }\n rows() {\n const body = this.children.head;\n if (body == null) return [];\n return body.children.map(row => row);\n }\n}\nTableContainer.allowedChildren = [TableBody];\nTableBody.requiredContainer = TableContainer;\nTableBody.allowedChildren = [TableRow];\nTableRow.requiredContainer = TableBody;\nTableRow.allowedChildren = [TableCell];\nTableCell.requiredContainer = TableRow;\nfunction tableId() {\n const id = Math.random().toString(36).slice(2, 6);\n return `row-${id}`;\n}\nexport { TableCell, TableRow, TableBody, TableContainer, tableId };\n//# sourceMappingURL=table.js.map","import Delta from 'quill-delta';\nimport Quill from '../core/quill.js';\nimport Module from '../core/module.js';\nimport { TableCell, TableRow, TableBody, TableContainer, tableId } from '../formats/table.js';\nclass Table extends Module {\n static register() {\n Quill.register(TableCell);\n Quill.register(TableRow);\n Quill.register(TableBody);\n Quill.register(TableContainer);\n }\n constructor() {\n super(...arguments);\n this.listenBalanceCells();\n }\n balanceTables() {\n this.quill.scroll.descendants(TableContainer).forEach(table => {\n table.balanceCells();\n });\n }\n deleteColumn() {\n const [table,, cell] = this.getTable();\n if (cell == null) return;\n // @ts-expect-error\n table.deleteColumn(cell.cellOffset());\n this.quill.update(Quill.sources.USER);\n }\n deleteRow() {\n const [, row] = this.getTable();\n if (row == null) return;\n row.remove();\n this.quill.update(Quill.sources.USER);\n }\n deleteTable() {\n const [table] = this.getTable();\n if (table == null) return;\n // @ts-expect-error\n const offset = table.offset();\n // @ts-expect-error\n table.remove();\n this.quill.update(Quill.sources.USER);\n this.quill.setSelection(offset, Quill.sources.SILENT);\n }\n getTable() {\n let range = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.quill.getSelection();\n if (range == null) return [null, null, null, -1];\n const [cell, offset] = this.quill.getLine(range.index);\n if (cell == null || cell.statics.blotName !== TableCell.blotName) {\n return [null, null, null, -1];\n }\n const row = cell.parent;\n const table = row.parent.parent;\n // @ts-expect-error\n return [table, row, cell, offset];\n }\n insertColumn(offset) {\n const range = this.quill.getSelection();\n if (!range) return;\n const [table, row, cell] = this.getTable(range);\n if (cell == null) return;\n const column = cell.cellOffset();\n table.insertColumn(column + offset);\n this.quill.update(Quill.sources.USER);\n let shift = row.rowOffset();\n if (offset === 0) {\n shift += 1;\n }\n this.quill.setSelection(range.index + shift, range.length, Quill.sources.SILENT);\n }\n insertColumnLeft() {\n this.insertColumn(0);\n }\n insertColumnRight() {\n this.insertColumn(1);\n }\n insertRow(offset) {\n const range = this.quill.getSelection();\n if (!range) return;\n const [table, row, cell] = this.getTable(range);\n if (cell == null) return;\n const index = row.rowOffset();\n table.insertRow(index + offset);\n this.quill.update(Quill.sources.USER);\n if (offset > 0) {\n this.quill.setSelection(range, Quill.sources.SILENT);\n } else {\n this.quill.setSelection(range.index + row.children.length, range.length, Quill.sources.SILENT);\n }\n }\n insertRowAbove() {\n this.insertRow(0);\n }\n insertRowBelow() {\n this.insertRow(1);\n }\n insertTable(rows, columns) {\n const range = this.quill.getSelection();\n if (range == null) return;\n const delta = new Array(rows).fill(0).reduce(memo => {\n const text = new Array(columns).fill('\\n').join('');\n return memo.insert(text, {\n table: tableId()\n });\n }, new Delta().retain(range.index));\n this.quill.updateContents(delta, Quill.sources.USER);\n this.quill.setSelection(range.index, Quill.sources.SILENT);\n this.balanceTables();\n }\n listenBalanceCells() {\n this.quill.on(Quill.events.SCROLL_OPTIMIZE, mutations => {\n mutations.some(mutation => {\n if (['TD', 'TR', 'TBODY', 'TABLE'].includes(mutation.target.tagName)) {\n this.quill.once(Quill.events.TEXT_CHANGE, (delta, old, source) => {\n if (source !== Quill.sources.USER) return;\n this.balanceTables();\n });\n return true;\n }\n return false;\n });\n });\n }\n}\nexport default Table;\n//# sourceMappingURL=table.js.map","import Delta from 'quill-delta';\nimport { EmbedBlot, Scope } from 'parchment';\nimport Quill from '../core/quill.js';\nimport logger from '../core/logger.js';\nimport Module from '../core/module.js';\nconst debug = logger('quill:toolbar');\nclass Toolbar extends Module {\n constructor(quill, options) {\n super(quill, options);\n if (Array.isArray(this.options.container)) {\n const container = document.createElement('div');\n container.setAttribute('role', 'toolbar');\n addControls(container, this.options.container);\n quill.container?.parentNode?.insertBefore(container, quill.container);\n this.container = container;\n } else if (typeof this.options.container === 'string') {\n this.container = document.querySelector(this.options.container);\n } else {\n this.container = this.options.container;\n }\n if (!(this.container instanceof HTMLElement)) {\n debug.error('Container required for toolbar', this.options);\n return;\n }\n this.container.classList.add('ql-toolbar');\n this.controls = [];\n this.handlers = {};\n if (this.options.handlers) {\n Object.keys(this.options.handlers).forEach(format => {\n const handler = this.options.handlers?.[format];\n if (handler) {\n this.addHandler(format, handler);\n }\n });\n }\n Array.from(this.container.querySelectorAll('button, select')).forEach(input => {\n // @ts-expect-error\n this.attach(input);\n });\n this.quill.on(Quill.events.EDITOR_CHANGE, () => {\n const [range] = this.quill.selection.getRange(); // quill.getSelection triggers update\n this.update(range);\n });\n }\n addHandler(format, handler) {\n this.handlers[format] = handler;\n }\n attach(input) {\n let format = Array.from(input.classList).find(className => {\n return className.indexOf('ql-') === 0;\n });\n if (!format) return;\n format = format.slice('ql-'.length);\n if (input.tagName === 'BUTTON') {\n input.setAttribute('type', 'button');\n }\n if (this.handlers[format] == null && this.quill.scroll.query(format) == null) {\n debug.warn('ignoring attaching to nonexistent format', format, input);\n return;\n }\n const eventName = input.tagName === 'SELECT' ? 'change' : 'click';\n input.addEventListener(eventName, e => {\n let value;\n if (input.tagName === 'SELECT') {\n // @ts-expect-error\n if (input.selectedIndex < 0) return;\n // @ts-expect-error\n const selected = input.options[input.selectedIndex];\n if (selected.hasAttribute('selected')) {\n value = false;\n } else {\n value = selected.value || false;\n }\n } else {\n if (input.classList.contains('ql-active')) {\n value = false;\n } else {\n // @ts-expect-error\n value = input.value || !input.hasAttribute('value');\n }\n e.preventDefault();\n }\n this.quill.focus();\n const [range] = this.quill.selection.getRange();\n if (this.handlers[format] != null) {\n this.handlers[format].call(this, value);\n } else if (\n // @ts-expect-error\n this.quill.scroll.query(format).prototype instanceof EmbedBlot) {\n value = prompt(`Enter ${format}`); // eslint-disable-line no-alert\n if (!value) return;\n this.quill.updateContents(new Delta()\n // @ts-expect-error Fix me later\n .retain(range.index)\n // @ts-expect-error Fix me later\n .delete(range.length).insert({\n [format]: value\n }), Quill.sources.USER);\n } else {\n this.quill.format(format, value, Quill.sources.USER);\n }\n this.update(range);\n });\n this.controls.push([format, input]);\n }\n update(range) {\n const formats = range == null ? {} : this.quill.getFormat(range);\n this.controls.forEach(pair => {\n const [format, input] = pair;\n if (input.tagName === 'SELECT') {\n let option = null;\n if (range == null) {\n option = null;\n } else if (formats[format] == null) {\n option = input.querySelector('option[selected]');\n } else if (!Array.isArray(formats[format])) {\n let value = formats[format];\n if (typeof value === 'string') {\n value = value.replace(/\"/g, '\\\\\"');\n }\n option = input.querySelector(`option[value=\"${value}\"]`);\n }\n if (option == null) {\n // @ts-expect-error TODO fix me later\n input.value = ''; // TODO make configurable?\n // @ts-expect-error TODO fix me later\n input.selectedIndex = -1;\n } else {\n option.selected = true;\n }\n } else if (range == null) {\n input.classList.remove('ql-active');\n input.setAttribute('aria-pressed', 'false');\n } else if (input.hasAttribute('value')) {\n // both being null should match (default values)\n // '1' should match with 1 (headers)\n const value = formats[format];\n const isActive = value === input.getAttribute('value') || value != null && value.toString() === input.getAttribute('value') || value == null && !input.getAttribute('value');\n input.classList.toggle('ql-active', isActive);\n input.setAttribute('aria-pressed', isActive.toString());\n } else {\n const isActive = formats[format] != null;\n input.classList.toggle('ql-active', isActive);\n input.setAttribute('aria-pressed', isActive.toString());\n }\n });\n }\n}\nToolbar.DEFAULTS = {};\nfunction addButton(container, format, value) {\n const input = document.createElement('button');\n input.setAttribute('type', 'button');\n input.classList.add(`ql-${format}`);\n input.setAttribute('aria-pressed', 'false');\n if (value != null) {\n input.value = value;\n input.setAttribute('aria-label', `${format}: ${value}`);\n } else {\n input.setAttribute('aria-label', format);\n }\n container.appendChild(input);\n}\nfunction addControls(container, groups) {\n if (!Array.isArray(groups[0])) {\n // @ts-expect-error\n groups = [groups];\n }\n groups.forEach(controls => {\n const group = document.createElement('span');\n group.classList.add('ql-formats');\n controls.forEach(control => {\n if (typeof control === 'string') {\n addButton(group, control);\n } else {\n const format = Object.keys(control)[0];\n const value = control[format];\n if (Array.isArray(value)) {\n addSelect(group, format, value);\n } else {\n addButton(group, format, value);\n }\n }\n });\n container.appendChild(group);\n });\n}\nfunction addSelect(container, format, values) {\n const input = document.createElement('select');\n input.classList.add(`ql-${format}`);\n values.forEach(value => {\n const option = document.createElement('option');\n if (value !== false) {\n option.setAttribute('value', String(value));\n } else {\n option.setAttribute('selected', 'selected');\n }\n input.appendChild(option);\n });\n container.appendChild(input);\n}\nToolbar.DEFAULTS = {\n container: null,\n handlers: {\n clean() {\n const range = this.quill.getSelection();\n if (range == null) return;\n if (range.length === 0) {\n const formats = this.quill.getFormat();\n Object.keys(formats).forEach(name => {\n // Clean functionality in existing apps only clean inline formats\n if (this.quill.scroll.query(name, Scope.INLINE) != null) {\n this.quill.format(name, false, Quill.sources.USER);\n }\n });\n } else {\n this.quill.removeFormat(range.index, range.length, Quill.sources.USER);\n }\n },\n direction(value) {\n const {\n align\n } = this.quill.getFormat();\n if (value === 'rtl' && align == null) {\n this.quill.format('align', 'right', Quill.sources.USER);\n } else if (!value && align === 'right') {\n this.quill.format('align', false, Quill.sources.USER);\n }\n this.quill.format('direction', value, Quill.sources.USER);\n },\n indent(value) {\n const range = this.quill.getSelection();\n // @ts-expect-error\n const formats = this.quill.getFormat(range);\n // @ts-expect-error\n const indent = parseInt(formats.indent || 0, 10);\n if (value === '+1' || value === '-1') {\n let modifier = value === '+1' ? 1 : -1;\n if (formats.direction === 'rtl') modifier *= -1;\n this.quill.format('indent', indent + modifier, Quill.sources.USER);\n }\n },\n link(value) {\n if (value === true) {\n value = prompt('Enter link URL:'); // eslint-disable-line no-alert\n }\n this.quill.format('link', value, Quill.sources.USER);\n },\n list(value) {\n const range = this.quill.getSelection();\n // @ts-expect-error\n const formats = this.quill.getFormat(range);\n if (value === 'check') {\n if (formats.list === 'checked' || formats.list === 'unchecked') {\n this.quill.format('list', false, Quill.sources.USER);\n } else {\n this.quill.format('list', 'unchecked', Quill.sources.USER);\n }\n } else {\n this.quill.format('list', value, Quill.sources.USER);\n }\n }\n }\n};\nexport { Toolbar as default, addControls };\n//# sourceMappingURL=toolbar.js.map","const alignLeftIcon = \"\";\nconst alignCenterIcon = \"\";\nconst alignRightIcon = \"\";\nconst alignJustifyIcon = \"\";\nconst backgroundIcon = \"\";\nconst blockquoteIcon = \"\";\nconst boldIcon = \"\";\nconst cleanIcon = \"\";\nconst codeIcon = \"\";\nconst colorIcon = \"\";\nconst directionLeftToRightIcon = \"\";\nconst directionRightToLeftIcon = \"\";\nconst formulaIcon = \"\";\nconst headerIcon = \"\";\nconst header2Icon = \"\";\nconst header3Icon = \"\";\nconst header4Icon = \"\";\nconst header5Icon = \"\";\nconst header6Icon = \"\";\nconst italicIcon = \"\";\nconst imageIcon = \"\";\nconst indentIcon = \"\";\nconst outdentIcon = \"\";\nconst linkIcon = \"\";\nconst listBulletIcon = \"\";\nconst listCheckIcon = \"\";\nconst listOrderedIcon = \"\";\nconst subscriptIcon = \"\";\nconst superscriptIcon = \"\";\nconst strikeIcon = \"\";\nconst tableIcon = \"\";\nconst underlineIcon = \"\";\nconst videoIcon = \"\";\nexport default {\n align: {\n '': alignLeftIcon,\n center: alignCenterIcon,\n right: alignRightIcon,\n justify: alignJustifyIcon\n },\n background: backgroundIcon,\n blockquote: blockquoteIcon,\n bold: boldIcon,\n clean: cleanIcon,\n code: codeIcon,\n 'code-block': codeIcon,\n color: colorIcon,\n direction: {\n '': directionLeftToRightIcon,\n rtl: directionRightToLeftIcon\n },\n formula: formulaIcon,\n header: {\n '1': headerIcon,\n '2': header2Icon,\n '3': header3Icon,\n '4': header4Icon,\n '5': header5Icon,\n '6': header6Icon\n },\n italic: italicIcon,\n image: imageIcon,\n indent: {\n '+1': indentIcon,\n '-1': outdentIcon\n },\n link: linkIcon,\n list: {\n bullet: listBulletIcon,\n check: listCheckIcon,\n ordered: listOrderedIcon\n },\n script: {\n sub: subscriptIcon,\n super: superscriptIcon\n },\n strike: strikeIcon,\n table: tableIcon,\n underline: underlineIcon,\n video: videoIcon\n};\n//# sourceMappingURL=icons.js.map","const DropdownIcon = \"\";\nlet optionsCounter = 0;\nfunction toggleAriaAttribute(element, attribute) {\n element.setAttribute(attribute, `${!(element.getAttribute(attribute) === 'true')}`);\n}\nclass Picker {\n constructor(select) {\n this.select = select;\n this.container = document.createElement('span');\n this.buildPicker();\n this.select.style.display = 'none';\n // @ts-expect-error Fix me later\n this.select.parentNode.insertBefore(this.container, this.select);\n this.label.addEventListener('mousedown', () => {\n this.togglePicker();\n });\n this.label.addEventListener('keydown', event => {\n switch (event.key) {\n case 'Enter':\n this.togglePicker();\n break;\n case 'Escape':\n this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n this.select.addEventListener('change', this.update.bind(this));\n }\n togglePicker() {\n this.container.classList.toggle('ql-expanded');\n // Toggle aria-expanded and aria-hidden to make the picker accessible\n toggleAriaAttribute(this.label, 'aria-expanded');\n // @ts-expect-error\n toggleAriaAttribute(this.options, 'aria-hidden');\n }\n buildItem(option) {\n const item = document.createElement('span');\n // @ts-expect-error\n item.tabIndex = '0';\n item.setAttribute('role', 'button');\n item.classList.add('ql-picker-item');\n const value = option.getAttribute('value');\n if (value) {\n item.setAttribute('data-value', value);\n }\n if (option.textContent) {\n item.setAttribute('data-label', option.textContent);\n }\n item.addEventListener('click', () => {\n this.selectItem(item, true);\n });\n item.addEventListener('keydown', event => {\n switch (event.key) {\n case 'Enter':\n this.selectItem(item, true);\n event.preventDefault();\n break;\n case 'Escape':\n this.escape();\n event.preventDefault();\n break;\n default:\n }\n });\n return item;\n }\n buildLabel() {\n const label = document.createElement('span');\n label.classList.add('ql-picker-label');\n label.innerHTML = DropdownIcon;\n // @ts-expect-error\n label.tabIndex = '0';\n label.setAttribute('role', 'button');\n label.setAttribute('aria-expanded', 'false');\n this.container.appendChild(label);\n return label;\n }\n buildOptions() {\n const options = document.createElement('span');\n options.classList.add('ql-picker-options');\n\n // Don't want screen readers to read this until options are visible\n options.setAttribute('aria-hidden', 'true');\n // @ts-expect-error\n options.tabIndex = '-1';\n\n // Need a unique id for aria-controls\n options.id = `ql-picker-options-${optionsCounter}`;\n optionsCounter += 1;\n this.label.setAttribute('aria-controls', options.id);\n\n // @ts-expect-error\n this.options = options;\n Array.from(this.select.options).forEach(option => {\n const item = this.buildItem(option);\n options.appendChild(item);\n if (option.selected === true) {\n this.selectItem(item);\n }\n });\n this.container.appendChild(options);\n }\n buildPicker() {\n Array.from(this.select.attributes).forEach(item => {\n this.container.setAttribute(item.name, item.value);\n });\n this.container.classList.add('ql-picker');\n this.label = this.buildLabel();\n this.buildOptions();\n }\n escape() {\n // Close menu and return focus to trigger label\n this.close();\n // Need setTimeout for accessibility to ensure that the browser executes\n // focus on the next process thread and after any DOM content changes\n setTimeout(() => this.label.focus(), 1);\n }\n close() {\n this.container.classList.remove('ql-expanded');\n this.label.setAttribute('aria-expanded', 'false');\n // @ts-expect-error\n this.options.setAttribute('aria-hidden', 'true');\n }\n selectItem(item) {\n let trigger = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n const selected = this.container.querySelector('.ql-selected');\n if (item === selected) return;\n if (selected != null) {\n selected.classList.remove('ql-selected');\n }\n if (item == null) return;\n item.classList.add('ql-selected');\n // @ts-expect-error Fix me later\n this.select.selectedIndex = Array.from(item.parentNode.children).indexOf(item);\n if (item.hasAttribute('data-value')) {\n // @ts-expect-error Fix me later\n this.label.setAttribute('data-value', item.getAttribute('data-value'));\n } else {\n this.label.removeAttribute('data-value');\n }\n if (item.hasAttribute('data-label')) {\n // @ts-expect-error Fix me later\n this.label.setAttribute('data-label', item.getAttribute('data-label'));\n } else {\n this.label.removeAttribute('data-label');\n }\n if (trigger) {\n this.select.dispatchEvent(new Event('change'));\n this.close();\n }\n }\n update() {\n let option;\n if (this.select.selectedIndex > -1) {\n const item =\n // @ts-expect-error Fix me later\n this.container.querySelector('.ql-picker-options').children[this.select.selectedIndex];\n option = this.select.options[this.select.selectedIndex];\n // @ts-expect-error\n this.selectItem(item);\n } else {\n this.selectItem(null);\n }\n const isActive = option != null && option !== this.select.querySelector('option[selected]');\n this.label.classList.toggle('ql-active', isActive);\n }\n}\nexport default Picker;\n//# sourceMappingURL=picker.js.map","import Picker from './picker.js';\nclass ColorPicker extends Picker {\n constructor(select, label) {\n super(select);\n this.label.innerHTML = label;\n this.container.classList.add('ql-color-picker');\n Array.from(this.container.querySelectorAll('.ql-picker-item')).slice(0, 7).forEach(item => {\n item.classList.add('ql-primary');\n });\n }\n buildItem(option) {\n const item = super.buildItem(option);\n item.style.backgroundColor = option.getAttribute('value') || '';\n return item;\n }\n selectItem(item, trigger) {\n super.selectItem(item, trigger);\n const colorLabel = this.label.querySelector('.ql-color-label');\n const value = item ? item.getAttribute('data-value') || '' : '';\n if (colorLabel) {\n if (colorLabel.tagName === 'line') {\n colorLabel.style.stroke = value;\n } else {\n colorLabel.style.fill = value;\n }\n }\n }\n}\nexport default ColorPicker;\n//# sourceMappingURL=color-picker.js.map","import Picker from './picker.js';\nclass IconPicker extends Picker {\n constructor(select, icons) {\n super(select);\n this.container.classList.add('ql-icon-picker');\n Array.from(this.container.querySelectorAll('.ql-picker-item')).forEach(item => {\n item.innerHTML = icons[item.getAttribute('data-value') || ''];\n });\n this.defaultItem = this.container.querySelector('.ql-selected');\n this.selectItem(this.defaultItem);\n }\n selectItem(target, trigger) {\n super.selectItem(target, trigger);\n const item = target || this.defaultItem;\n if (item != null) {\n if (this.label.innerHTML === item.innerHTML) return;\n this.label.innerHTML = item.innerHTML;\n }\n }\n}\nexport default IconPicker;\n//# sourceMappingURL=icon-picker.js.map","const isScrollable = el => {\n const {\n overflowY\n } = getComputedStyle(el, null);\n return overflowY !== 'visible' && overflowY !== 'clip';\n};\nclass Tooltip {\n constructor(quill, boundsContainer) {\n this.quill = quill;\n this.boundsContainer = boundsContainer || document.body;\n this.root = quill.addContainer('ql-tooltip');\n // @ts-expect-error\n this.root.innerHTML = this.constructor.TEMPLATE;\n if (isScrollable(this.quill.root)) {\n this.quill.root.addEventListener('scroll', () => {\n this.root.style.marginTop = `${-1 * this.quill.root.scrollTop}px`;\n });\n }\n this.hide();\n }\n hide() {\n this.root.classList.add('ql-hidden');\n }\n position(reference) {\n const left = reference.left + reference.width / 2 - this.root.offsetWidth / 2;\n // root.scrollTop should be 0 if scrollContainer !== root\n const top = reference.bottom + this.quill.root.scrollTop;\n this.root.style.left = `${left}px`;\n this.root.style.top = `${top}px`;\n this.root.classList.remove('ql-flip');\n const containerBounds = this.boundsContainer.getBoundingClientRect();\n const rootBounds = this.root.getBoundingClientRect();\n let shift = 0;\n if (rootBounds.right > containerBounds.right) {\n shift = containerBounds.right - rootBounds.right;\n this.root.style.left = `${left + shift}px`;\n }\n if (rootBounds.left < containerBounds.left) {\n shift = containerBounds.left - rootBounds.left;\n this.root.style.left = `${left + shift}px`;\n }\n if (rootBounds.bottom > containerBounds.bottom) {\n const height = rootBounds.bottom - rootBounds.top;\n const verticalShift = reference.bottom - reference.top + height;\n this.root.style.top = `${top - verticalShift}px`;\n this.root.classList.add('ql-flip');\n }\n return shift;\n }\n show() {\n this.root.classList.remove('ql-editing');\n this.root.classList.remove('ql-hidden');\n }\n}\nexport default Tooltip;\n//# sourceMappingURL=tooltip.js.map","import { merge } from 'lodash-es';\nimport Emitter from '../core/emitter.js';\nimport Theme from '../core/theme.js';\nimport ColorPicker from '../ui/color-picker.js';\nimport IconPicker from '../ui/icon-picker.js';\nimport Picker from '../ui/picker.js';\nimport Tooltip from '../ui/tooltip.js';\nconst ALIGNS = [false, 'center', 'right', 'justify'];\nconst COLORS = ['#000000', '#e60000', '#ff9900', '#ffff00', '#008a00', '#0066cc', '#9933ff', '#ffffff', '#facccc', '#ffebcc', '#ffffcc', '#cce8cc', '#cce0f5', '#ebd6ff', '#bbbbbb', '#f06666', '#ffc266', '#ffff66', '#66b966', '#66a3e0', '#c285ff', '#888888', '#a10000', '#b26b00', '#b2b200', '#006100', '#0047b2', '#6b24b2', '#444444', '#5c0000', '#663d00', '#666600', '#003700', '#002966', '#3d1466'];\nconst FONTS = [false, 'serif', 'monospace'];\nconst HEADERS = ['1', '2', '3', false];\nconst SIZES = ['small', false, 'large', 'huge'];\nclass BaseTheme extends Theme {\n constructor(quill, options) {\n super(quill, options);\n const listener = e => {\n if (!document.body.contains(quill.root)) {\n document.body.removeEventListener('click', listener);\n return;\n }\n if (this.tooltip != null &&\n // @ts-expect-error\n !this.tooltip.root.contains(e.target) &&\n // @ts-expect-error\n document.activeElement !== this.tooltip.textbox && !this.quill.hasFocus()) {\n this.tooltip.hide();\n }\n if (this.pickers != null) {\n this.pickers.forEach(picker => {\n // @ts-expect-error\n if (!picker.container.contains(e.target)) {\n picker.close();\n }\n });\n }\n };\n quill.emitter.listenDOM('click', document.body, listener);\n }\n addModule(name) {\n const module = super.addModule(name);\n if (name === 'toolbar') {\n // @ts-expect-error\n this.extendToolbar(module);\n }\n return module;\n }\n buildButtons(buttons, icons) {\n Array.from(buttons).forEach(button => {\n const className = button.getAttribute('class') || '';\n className.split(/\\s+/).forEach(name => {\n if (!name.startsWith('ql-')) return;\n name = name.slice('ql-'.length);\n if (icons[name] == null) return;\n if (name === 'direction') {\n // @ts-expect-error\n button.innerHTML = icons[name][''] + icons[name].rtl;\n } else if (typeof icons[name] === 'string') {\n // @ts-expect-error\n button.innerHTML = icons[name];\n } else {\n // @ts-expect-error\n const value = button.value || '';\n // @ts-expect-error\n if (value != null && icons[name][value]) {\n // @ts-expect-error\n button.innerHTML = icons[name][value];\n }\n }\n });\n });\n }\n buildPickers(selects, icons) {\n this.pickers = Array.from(selects).map(select => {\n if (select.classList.contains('ql-align')) {\n if (select.querySelector('option') == null) {\n fillSelect(select, ALIGNS);\n }\n if (typeof icons.align === 'object') {\n return new IconPicker(select, icons.align);\n }\n }\n if (select.classList.contains('ql-background') || select.classList.contains('ql-color')) {\n const format = select.classList.contains('ql-background') ? 'background' : 'color';\n if (select.querySelector('option') == null) {\n fillSelect(select, COLORS, format === 'background' ? '#ffffff' : '#000000');\n }\n return new ColorPicker(select, icons[format]);\n }\n if (select.querySelector('option') == null) {\n if (select.classList.contains('ql-font')) {\n fillSelect(select, FONTS);\n } else if (select.classList.contains('ql-header')) {\n fillSelect(select, HEADERS);\n } else if (select.classList.contains('ql-size')) {\n fillSelect(select, SIZES);\n }\n }\n return new Picker(select);\n });\n const update = () => {\n this.pickers.forEach(picker => {\n picker.update();\n });\n };\n this.quill.on(Emitter.events.EDITOR_CHANGE, update);\n }\n}\nBaseTheme.DEFAULTS = merge({}, Theme.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n formula() {\n this.quill.theme.tooltip.edit('formula');\n },\n image() {\n let fileInput = this.container.querySelector('input.ql-image[type=file]');\n if (fileInput == null) {\n fileInput = document.createElement('input');\n fileInput.setAttribute('type', 'file');\n fileInput.setAttribute('accept', this.quill.uploader.options.mimetypes.join(', '));\n fileInput.classList.add('ql-image');\n fileInput.addEventListener('change', () => {\n const range = this.quill.getSelection(true);\n this.quill.uploader.upload(range, fileInput.files);\n fileInput.value = '';\n });\n this.container.appendChild(fileInput);\n }\n fileInput.click();\n },\n video() {\n this.quill.theme.tooltip.edit('video');\n }\n }\n }\n }\n});\nclass BaseTooltip extends Tooltip {\n constructor(quill, boundsContainer) {\n super(quill, boundsContainer);\n this.textbox = this.root.querySelector('input[type=\"text\"]');\n this.listen();\n }\n listen() {\n // @ts-expect-error Fix me later\n this.textbox.addEventListener('keydown', event => {\n if (event.key === 'Enter') {\n this.save();\n event.preventDefault();\n } else if (event.key === 'Escape') {\n this.cancel();\n event.preventDefault();\n }\n });\n }\n cancel() {\n this.hide();\n this.restoreFocus();\n }\n edit() {\n let mode = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'link';\n let preview = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n this.root.classList.remove('ql-hidden');\n this.root.classList.add('ql-editing');\n if (this.textbox == null) return;\n if (preview != null) {\n this.textbox.value = preview;\n } else if (mode !== this.root.getAttribute('data-mode')) {\n this.textbox.value = '';\n }\n const bounds = this.quill.getBounds(this.quill.selection.savedRange);\n if (bounds != null) {\n this.position(bounds);\n }\n this.textbox.select();\n this.textbox.setAttribute('placeholder', this.textbox.getAttribute(`data-${mode}`) || '');\n this.root.setAttribute('data-mode', mode);\n }\n restoreFocus() {\n this.quill.focus({\n preventScroll: true\n });\n }\n save() {\n // @ts-expect-error Fix me later\n let {\n value\n } = this.textbox;\n switch (this.root.getAttribute('data-mode')) {\n case 'link':\n {\n const {\n scrollTop\n } = this.quill.root;\n if (this.linkRange) {\n this.quill.formatText(this.linkRange, 'link', value, Emitter.sources.USER);\n delete this.linkRange;\n } else {\n this.restoreFocus();\n this.quill.format('link', value, Emitter.sources.USER);\n }\n this.quill.root.scrollTop = scrollTop;\n break;\n }\n case 'video':\n {\n value = extractVideoUrl(value);\n }\n // eslint-disable-next-line no-fallthrough\n case 'formula':\n {\n if (!value) break;\n const range = this.quill.getSelection(true);\n if (range != null) {\n const index = range.index + range.length;\n this.quill.insertEmbed(index,\n // @ts-expect-error Fix me later\n this.root.getAttribute('data-mode'), value, Emitter.sources.USER);\n if (this.root.getAttribute('data-mode') === 'formula') {\n this.quill.insertText(index + 1, ' ', Emitter.sources.USER);\n }\n this.quill.setSelection(index + 2, Emitter.sources.USER);\n }\n break;\n }\n default:\n }\n // @ts-expect-error Fix me later\n this.textbox.value = '';\n this.hide();\n }\n}\nfunction extractVideoUrl(url) {\n let match = url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtube\\.com\\/watch.*v=([a-zA-Z0-9_-]+)/) || url.match(/^(?:(https?):\\/\\/)?(?:(?:www|m)\\.)?youtu\\.be\\/([a-zA-Z0-9_-]+)/);\n if (match) {\n return `${match[1] || 'https'}://www.youtube.com/embed/${match[2]}?showinfo=0`;\n }\n // eslint-disable-next-line no-cond-assign\n if (match = url.match(/^(?:(https?):\\/\\/)?(?:www\\.)?vimeo\\.com\\/(\\d+)/)) {\n return `${match[1] || 'https'}://player.vimeo.com/video/${match[2]}/`;\n }\n return url;\n}\nfunction fillSelect(select, values) {\n let defaultValue = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n values.forEach(value => {\n const option = document.createElement('option');\n if (value === defaultValue) {\n option.setAttribute('selected', 'selected');\n } else {\n option.setAttribute('value', String(value));\n }\n select.appendChild(option);\n });\n}\nexport { BaseTooltip, BaseTheme as default };\n//# sourceMappingURL=base.js.map","import { merge } from 'lodash-es';\nimport Emitter from '../core/emitter.js';\nimport BaseTheme, { BaseTooltip } from './base.js';\nimport { Range } from '../core/selection.js';\nimport icons from '../ui/icons.js';\nimport Quill from '../core/quill.js';\nconst TOOLBAR_CONFIG = [['bold', 'italic', 'link'], [{\n header: 1\n}, {\n header: 2\n}, 'blockquote']];\nclass BubbleTooltip extends BaseTooltip {\n static TEMPLATE = ['', '
    ', '', '', '
    '].join('');\n constructor(quill, bounds) {\n super(quill, bounds);\n this.quill.on(Emitter.events.EDITOR_CHANGE, (type, range, oldRange, source) => {\n if (type !== Emitter.events.SELECTION_CHANGE) return;\n if (range != null && range.length > 0 && source === Emitter.sources.USER) {\n this.show();\n // Lock our width so we will expand beyond our offsetParent boundaries\n this.root.style.left = '0px';\n this.root.style.width = '';\n this.root.style.width = `${this.root.offsetWidth}px`;\n const lines = this.quill.getLines(range.index, range.length);\n if (lines.length === 1) {\n const bounds = this.quill.getBounds(range);\n if (bounds != null) {\n this.position(bounds);\n }\n } else {\n const lastLine = lines[lines.length - 1];\n const index = this.quill.getIndex(lastLine);\n const length = Math.min(lastLine.length() - 1, range.index + range.length - index);\n const indexBounds = this.quill.getBounds(new Range(index, length));\n if (indexBounds != null) {\n this.position(indexBounds);\n }\n }\n } else if (document.activeElement !== this.textbox && this.quill.hasFocus()) {\n this.hide();\n }\n });\n }\n listen() {\n super.listen();\n // @ts-expect-error Fix me later\n this.root.querySelector('.ql-close').addEventListener('click', () => {\n this.root.classList.remove('ql-editing');\n });\n this.quill.on(Emitter.events.SCROLL_OPTIMIZE, () => {\n // Let selection be restored by toolbar handlers before repositioning\n setTimeout(() => {\n if (this.root.classList.contains('ql-hidden')) return;\n const range = this.quill.getSelection();\n if (range != null) {\n const bounds = this.quill.getBounds(range);\n if (bounds != null) {\n this.position(bounds);\n }\n }\n }, 1);\n });\n }\n cancel() {\n this.show();\n }\n position(reference) {\n const shift = super.position(reference);\n const arrow = this.root.querySelector('.ql-tooltip-arrow');\n // @ts-expect-error\n arrow.style.marginLeft = '';\n if (shift !== 0) {\n // @ts-expect-error\n arrow.style.marginLeft = `${-1 * shift - arrow.offsetWidth / 2}px`;\n }\n return shift;\n }\n}\nclass BubbleTheme extends BaseTheme {\n constructor(quill, options) {\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n super(quill, options);\n this.quill.container.classList.add('ql-bubble');\n }\n extendToolbar(toolbar) {\n // @ts-expect-error\n this.tooltip = new BubbleTooltip(this.quill, this.options.bounds);\n if (toolbar.container != null) {\n this.tooltip.root.appendChild(toolbar.container);\n this.buildButtons(toolbar.container.querySelectorAll('button'), icons);\n this.buildPickers(toolbar.container.querySelectorAll('select'), icons);\n }\n }\n}\nBubbleTheme.DEFAULTS = merge({}, BaseTheme.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link(value) {\n if (!value) {\n this.quill.format('link', false, Quill.sources.USER);\n } else {\n // @ts-expect-error\n this.quill.theme.tooltip.edit();\n }\n }\n }\n }\n }\n});\nexport { BubbleTooltip, BubbleTheme as default };\n//# sourceMappingURL=bubble.js.map","import { merge } from 'lodash-es';\nimport Emitter from '../core/emitter.js';\nimport BaseTheme, { BaseTooltip } from './base.js';\nimport LinkBlot from '../formats/link.js';\nimport { Range } from '../core/selection.js';\nimport icons from '../ui/icons.js';\nimport Quill from '../core/quill.js';\nconst TOOLBAR_CONFIG = [[{\n header: ['1', '2', '3', false]\n}], ['bold', 'italic', 'underline', 'link'], [{\n list: 'ordered'\n}, {\n list: 'bullet'\n}], ['clean']];\nclass SnowTooltip extends BaseTooltip {\n static TEMPLATE = ['', '', '', ''].join('');\n preview = this.root.querySelector('a.ql-preview');\n listen() {\n super.listen();\n // @ts-expect-error Fix me later\n this.root.querySelector('a.ql-action').addEventListener('click', event => {\n if (this.root.classList.contains('ql-editing')) {\n this.save();\n } else {\n // @ts-expect-error Fix me later\n this.edit('link', this.preview.textContent);\n }\n event.preventDefault();\n });\n // @ts-expect-error Fix me later\n this.root.querySelector('a.ql-remove').addEventListener('click', event => {\n if (this.linkRange != null) {\n const range = this.linkRange;\n this.restoreFocus();\n this.quill.formatText(range, 'link', false, Emitter.sources.USER);\n delete this.linkRange;\n }\n event.preventDefault();\n this.hide();\n });\n this.quill.on(Emitter.events.SELECTION_CHANGE, (range, oldRange, source) => {\n if (range == null) return;\n if (range.length === 0 && source === Emitter.sources.USER) {\n const [link, offset] = this.quill.scroll.descendant(LinkBlot, range.index);\n if (link != null) {\n this.linkRange = new Range(range.index - offset, link.length());\n const preview = LinkBlot.formats(link.domNode);\n // @ts-expect-error Fix me later\n this.preview.textContent = preview;\n // @ts-expect-error Fix me later\n this.preview.setAttribute('href', preview);\n this.show();\n const bounds = this.quill.getBounds(this.linkRange);\n if (bounds != null) {\n this.position(bounds);\n }\n return;\n }\n } else {\n delete this.linkRange;\n }\n this.hide();\n });\n }\n show() {\n super.show();\n this.root.removeAttribute('data-mode');\n }\n}\nclass SnowTheme extends BaseTheme {\n constructor(quill, options) {\n if (options.modules.toolbar != null && options.modules.toolbar.container == null) {\n options.modules.toolbar.container = TOOLBAR_CONFIG;\n }\n super(quill, options);\n this.quill.container.classList.add('ql-snow');\n }\n extendToolbar(toolbar) {\n if (toolbar.container != null) {\n toolbar.container.classList.add('ql-snow');\n this.buildButtons(toolbar.container.querySelectorAll('button'), icons);\n this.buildPickers(toolbar.container.querySelectorAll('select'), icons);\n // @ts-expect-error\n this.tooltip = new SnowTooltip(this.quill, this.options.bounds);\n if (toolbar.container.querySelector('.ql-link')) {\n this.quill.keyboard.addBinding({\n key: 'k',\n shortKey: true\n }, (_range, context) => {\n toolbar.handlers.link.call(toolbar, !context.format.link);\n });\n }\n }\n }\n}\nSnowTheme.DEFAULTS = merge({}, BaseTheme.DEFAULTS, {\n modules: {\n toolbar: {\n handlers: {\n link(value) {\n if (value) {\n const range = this.quill.getSelection();\n if (range == null || range.length === 0) return;\n let preview = this.quill.getText(range);\n if (/^\\S+@\\S+\\.\\S+$/.test(preview) && preview.indexOf('mailto:') !== 0) {\n preview = `mailto:${preview}`;\n }\n // @ts-expect-error\n const {\n tooltip\n } = this.quill.theme;\n tooltip.edit('link', preview);\n } else {\n this.quill.format('link', false, Quill.sources.USER);\n }\n }\n }\n }\n }\n});\nexport default SnowTheme;\n//# sourceMappingURL=snow.js.map","import Quill, { Parchment, Range } from './core.js';\nimport { AlignClass, AlignStyle } from './formats/align.js';\nimport { DirectionAttribute, DirectionClass, DirectionStyle } from './formats/direction.js';\nimport Indent from './formats/indent.js';\nimport Blockquote from './formats/blockquote.js';\nimport Header from './formats/header.js';\nimport List from './formats/list.js';\nimport { BackgroundClass, BackgroundStyle } from './formats/background.js';\nimport { ColorClass, ColorStyle } from './formats/color.js';\nimport { FontClass, FontStyle } from './formats/font.js';\nimport { SizeClass, SizeStyle } from './formats/size.js';\nimport Bold from './formats/bold.js';\nimport Italic from './formats/italic.js';\nimport Link from './formats/link.js';\nimport Script from './formats/script.js';\nimport Strike from './formats/strike.js';\nimport Underline from './formats/underline.js';\nimport Formula from './formats/formula.js';\nimport Image from './formats/image.js';\nimport Video from './formats/video.js';\nimport CodeBlock, { Code as InlineCode } from './formats/code.js';\nimport Syntax from './modules/syntax.js';\nimport Table from './modules/table.js';\nimport Toolbar from './modules/toolbar.js';\nimport Icons from './ui/icons.js';\nimport Picker from './ui/picker.js';\nimport ColorPicker from './ui/color-picker.js';\nimport IconPicker from './ui/icon-picker.js';\nimport Tooltip from './ui/tooltip.js';\nimport BubbleTheme from './themes/bubble.js';\nimport SnowTheme from './themes/snow.js';\nQuill.register({\n 'attributors/attribute/direction': DirectionAttribute,\n 'attributors/class/align': AlignClass,\n 'attributors/class/background': BackgroundClass,\n 'attributors/class/color': ColorClass,\n 'attributors/class/direction': DirectionClass,\n 'attributors/class/font': FontClass,\n 'attributors/class/size': SizeClass,\n 'attributors/style/align': AlignStyle,\n 'attributors/style/background': BackgroundStyle,\n 'attributors/style/color': ColorStyle,\n 'attributors/style/direction': DirectionStyle,\n 'attributors/style/font': FontStyle,\n 'attributors/style/size': SizeStyle\n}, true);\nQuill.register({\n 'formats/align': AlignClass,\n 'formats/direction': DirectionClass,\n 'formats/indent': Indent,\n 'formats/background': BackgroundStyle,\n 'formats/color': ColorStyle,\n 'formats/font': FontClass,\n 'formats/size': SizeClass,\n 'formats/blockquote': Blockquote,\n 'formats/code-block': CodeBlock,\n 'formats/header': Header,\n 'formats/list': List,\n 'formats/bold': Bold,\n 'formats/code': InlineCode,\n 'formats/italic': Italic,\n 'formats/link': Link,\n 'formats/script': Script,\n 'formats/strike': Strike,\n 'formats/underline': Underline,\n 'formats/formula': Formula,\n 'formats/image': Image,\n 'formats/video': Video,\n 'modules/syntax': Syntax,\n 'modules/table': Table,\n 'modules/toolbar': Toolbar,\n 'themes/bubble': BubbleTheme,\n 'themes/snow': SnowTheme,\n 'ui/icons': Icons,\n 'ui/picker': Picker,\n 'ui/icon-picker': IconPicker,\n 'ui/color-picker': ColorPicker,\n 'ui/tooltip': Tooltip\n}, true);\nexport { Module } from './core.js';\nexport { Parchment, Range };\nexport default Quill;\n//# sourceMappingURL=quill.js.map","// Imports ----\nimport { Form } from '@dd-nucleus/nucleus-vue';\nimport { store } from '../services/NucleusStore';\nimport api from '../../base/services/api';\n\nexport default class MFAForm extends Form {\n\n // Constructor\n constructor(router) {\n // Pass our model to the base class\n super(\n {\n token: '', // OTP Received from the mail\n username: '',\n keepSignedIn: false\n });\n\n this.router = router;\n\n this.validator.fields.token.isRequired = true;\n this.validator.fields.username.isRequired = true;\n this.validator.fields.token.maxLength = 6;\n this.api = new api();\n this.validate();\n }\n\n onValidate() {\n super.onValidate();\n }\n\n async onValidateAsync() {\n super.onValidateAsync();\n }\n\n async onSubmit() {\n const response = await store.signInWithOTP(this.model.username, this.model.token, this.router)\n if (!response.isSignedIn) {\n this.validator.addError(response.message);\n }\n }\n\n async onReSend() {\n const response = await store.generateOTP(this.model.username)\n if (response.isSignedIn) {\n this.validator.addOk(response.message);\n } else {\n this.validator.addError(response.message);\n }\n }\n\n // Call Add Token API to generate new token and invalidate older ones if any.\n async addToken() {\n await this.api.POST(`/api/asp-net-auth/add-token`);\n }\n}","\n\n\n\n","import script from \"./MFA.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./MFA.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./MFA.vue?vue&type=style&index=0&id=0986accb&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import script from \"./CarouselContainer.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./CarouselContainer.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./CarouselContainer.vue?vue&type=style&index=0&id=c98b0a02&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Store/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-c98b0a02\"]])\n\nexport default __exports__","\n\n\n\n\n","import script from \"./Carousel.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./Carousel.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./Carousel.vue?vue&type=style&index=0&id=71a3a908&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Store/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-71a3a908\"]])\n\nexport default __exports__","import script from \"./LoadingScreen.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./LoadingScreen.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./LoadingScreen.vue?vue&type=style&index=0&id=27f5b392&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Store/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-27f5b392\"]])\n\nexport default __exports__","\n\n\n\n\n\n","import script from \"./ReportView.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ReportView.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ReportView.vue?vue&type=style&index=0&id=02c3cef9&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Store/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-02c3cef9\"]])\n\nexport default __exports__","import script from \"./ReportViewTitle.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ReportViewTitle.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ReportViewTitle.vue?vue&type=style&index=0&id=6f189f19&lang=scss&scoped=true\"\n\nimport exportComponent from \"/home/vsts/work/1/s/Store/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6f189f19\"]])\n\nexport default __exports__","\n\n\n\n\n\n","import script from \"./ReportList.vue?vue&type=script&setup=true&lang=js\"\nexport * from \"./ReportList.vue?vue&type=script&setup=true&lang=js\"\n\nimport \"./ReportList.vue?vue&type=style&index=0&id=5d9bf925&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n// AddToCartForm\n// Implements the form that allows a user to specify quantity and add to cart.\n\n// Imports ----\nimport { store } from '../services/NucleusStore';\nimport Form from '../../base/classes/Form';\nimport { isUndefinedOrNull, isDefinedAndNonNull } from '../../base/util';\n\nexport default class AddToCartForm extends Form {\n\n // Constructor\n /**\n * Creates a new form to add to the cart with the specified product Id.\n * @param {Guid} product - product that will be added when submitted.\n */\n constructor(product, quantity = '', outOfStockMessage = null, allowBackorders = false) {\n // Pass our model to the base class\n super(\n {\n quantity: quantity\n });\n\n\n this.defaultQuantity = quantity || 1;\n this.model.quantity = this.defaultQuantity;\n\n this.product = product;\n this.limits = null;\n this.isStockExceeded = null;\n this.isLimitExceeded = null;\n\n this.stockExceededMessage = outOfStockMessage ?? \"Out of Stock\";\n this.allowBackorders = allowBackorders;\n\n this.validator.fields.quantity.fieldName = 'quantity';\n this.validator.fields.quantity.isNumber = true; // NOTE: Do not also set isRequired in this case. It gets checked.\n this.validator.fields.quantity.minNumber = 1;\n this.validator.fields.quantity.maxNumber = 100000;\n this.validator.fields.quantity.enforceRange = false;\n\n // If we want the form to validate immediately based on automatic validations (e.g. to disable a button), do so here\n this.validate();\n\n }\n\n onValidate() {\n super.onValidate();\n }\n\n async onValidateAsync() {\n this.isLimitExceeded = false;\n\n if (isDefinedAndNonNull(this.limits)) {\n const isBeyondLimit = this.limits?.find(t => t?.allowOrderBeyondLimit === true)?.allowOrderBeyondLimit;\n if (isBeyondLimit) return;\n }\n // Load limits if needed, and set maximum quantity if appropriate.\n\n if (isUndefinedOrNull(this.limits)) {\n const limits = await store.products.getProductLimits(this.product);\n this.limits = limits;\n for (let i = 0; i < this.limits.length; i++) {\n if (this.limits[i]?.allowOrderBeyondLimit === true) return;\n if (this.validator.fields.quantity.maxNumber > this.limits.available)\n this.validator.fields.quantity.maxNumber = this.limits.available;\n }\n }\n\n const inCart = store.cart.getQuantityInCart(this.product.id);\n\n for (let i = 0; i < this.limits.length; i++) {\n // TODO: Also include quantity already in the cart\n if (this.model.quantity + inCart > this.limits[i].available) {\n let message = null;\n this.isLimitExceeded = true\n if (inCart > 0) {\n message = `${this.limits[i].limitText} allowed (${inCart} in cart)`;\n }\n else {\n message = `Limit of ${this.limits[i].limitText} exceeded`;\n }\n // TODO:Validation messages are getting added multiple times as the validate method is getting called from root Form, AddtoCartForm and the OrderItemTile forms. \n // All these forms are calling the validate method in thier constructors and from the modelchange event of Form.\n // Removing these mutiple validate method calls has impact on other client store applications and would require fix and through testing for other store applications as well,\n // Hence this check is applied here for now which will fix the multiple validation messgaes issue but It further can be further fixed by removing the multiple validate methods call\n // check if limit message already exists\n if (!this.validator.messages.some(m => m.text == message)) {\n this.validator.addError(message);\n }\n\n }\n }\n\n\n if (this.model.quantity > this.product.quantityAvailable && !this.allowBackorders) {\n this.isStockExceeded = true\n if (inCart > 0) {\n let message = null;\n if (this.product.quantityAvailable == null) {\n // check if out of stock error already exists\n if (!this.validator.messages.some(m => m.text == this.stockExceededMessage)) {\n message = this.stockExceededMessage;\n this.validator.addError(message);\n }\n }\n else {\n message = `Only ${this.product.quantityAvailable} in stock (${inCart} in cart)`;\n this.validator.addError(message);\n }\n }\n else {\n let message = null;\n if (this.product.quantityAvailable == null) {\n // check if out of stock error already exists\n if (!this.validator.messages.some(m => m.text == this.stockExceededMessage)) {\n message = this.stockExceededMessage;\n this.validator.addError(message);\n }\n }\n else {\n message = `Only ${this.product.quantityAvailable} in stock`;\n this.validator.addError(message);\n }\n }\n } else {\n this.isStockExceeded = false;\n }\n }\n\n async onSubmit() {\n if (await store.cart.addProduct(this.product.id, this.itemNumber, this.model.quantity, this.validator)) {\n this.model.quantity = this.defaultQuantity;\n return true;\n }\n else {\n if (this.validator.messages.length > 0) {\n const stockExcpetionMessage = this.validator.messages.find(message => { return message.messageId === \"DD.Nucleus.Storefront.Validation.NotEnoughStock\" })\n if (stockExcpetionMessage) {\n store.toast.error(`${stockExcpetionMessage.text}`);\n } else {\n store.toast.error(`${this.validator.messages[0]?.text}`);\n }\n }\n return false;\n }\n\n }\n}","\n// ShippingAddressForm\n// Used for adding or editing a shipping address for the user.\n\n// Imports ----\nimport Form from '../../base/classes/Form';\nimport { store } from '../services/NucleusStore';\nimport { isNotEmpty } from '../../base/util';\n\n// TODO: Figure out enums\nconst ADDRESS_TYPE_SHIPPING = 2;\nconst DEFAULT_MODEL = {\n id: '',\n contactId: '',\n name: '', // NOTE: Not individual's name, name of the address, e.g. \"Home\"\n addressee: '',\n addressLine1: '',\n addressLine2: '',\n addressLine3: '',\n addressLine4: '',\n city: '',\n state: '',\n province: '',\n postalCode: '',\n countryCode: '',\n companyName: '',\n isResidential: false,\n addressType: ADDRESS_TYPE_SHIPPING,\n isDefault: false\n};\n\nexport default class ShippingAddressForm extends Form {\n // Constructor\n constructor(model = {}, id = null, addressConfig = null, IsPOBoxNotAllowed = true) {\n super({\n ...DEFAULT_MODEL,\n id: id,\n ...model\n })\n\n // Set required fields\n this.validator.fields.addressLine1.isRequired = true;\n this.validator.fields.city.isRequired = true;\n this.validator.fields.state.isRequired = true;\n this.validator.fields.postalCode.isRequired = true;\n this.validator.fields.countryCode.isRequired = true;\n this.validator.fields.province.isRequired = false;\n\n this.validator.fields.companyName.isRequired = addressConfig?.companyName?.isRequired || false;\n\n // Set maximum lengths\n // TODO: Expose these numbers from the backend somehow\n this.validator.fields.name.maxLength = addressConfig?.firstName?.maxLength || 50;\n this.validator.fields.addressLine1.maxLength = addressConfig?.addressLine1?.maxLength || 100;\n this.validator.fields.addressLine2.maxLength = addressConfig?.addressLine2?.maxLength || 100;\n this.validator.fields.addressLine3.maxLength = addressConfig?.addressLine3?.maxLength || 100;\n this.validator.fields.addressLine4.maxLength = addressConfig?.addressLine4?.maxLength || 100;\n this.validator.fields.city.maxLength = addressConfig?.city?.maxLength || 50;\n this.validator.fields.state.maxLength = addressConfig?.state?.maxLength || 2;\n this.validator.fields.province.maxLength = addressConfig?.province?.maxLength || 50;\n this.validator.fields.postalCode.maxLength = addressConfig?.postalCode?.maxLength || 20;\n this.validator.fields.countryCode.maxLength = addressConfig?.countryCode?.maxLength || 2;\n this.validator.fields.companyName.maxLength = addressConfig?.companyName?.maxLength || 100;\n\n // No PO boxes\n this.validator.fields.addressLine1.noPoBox = IsPOBoxNotAllowed;\n\n // Force an immediate validation (e.g. for buttons disabled until valid)\n this.validate();\n }\n\n onValidate() {\n //Set the dynamicValidator call before super.\n this.setDynamicValidator();\n\n super.onValidate();\n\n if (isNotEmpty(this.model.addressLine3))\n this.validator.fields.addressLine3.addWarning('Not used for shipping labels');\n\n if (isNotEmpty(this.model.addressLine4))\n this.validator.fields.addressLine4.addWarning('Not used for shipping labels');\n }\n\n async onValidateAsync() {\n super.onValidateAsync();\n }\n\n async reset() {\n this.model = {\n ...this.model,\n ...DEFAULT_MODEL,\n id: this.model.id\n };\n\n this.validator.reset();\n }\n\n async onSubmit() {\n this.model.contactId = store.user.contactId;\n\n if (await store.shipping.saveAddress(this.model, false, this.validator))\n return true;\n else\n return false;\n }\n setDynamicValidator() {\n const country = store.config?.store?.countries?.find(c => c.id == this.model.countryCode);\n if (country?.states?.length > 0) {\n this.validator.fields.state.isRequired = true;\n this.validator.fields.province.isRequired = false;\n } else if (country?.divisions?.length > 0) {\n this.validator.fields.state.isRequired = false;\n this.validator.fields.province.isRequired = true;\n } else {\n this.validator.fields.state.isRequired = false;\n this.validator.fields.province.isRequired = false;\n }\n }\n}","\n// UpdateCartQtyForm\n// Implements the form that updates the quantity in the cart.\n// NOTE: This extends AddToCartForm with the only difference being what it does when the form is submitted. So all validation is identical.\n\n// Imports ----\nimport { store } from '../services/NucleusStore';\nimport AddToCartForm from './AddToCartForm';\n\nexport default class UpdateCartItemQtyForm extends AddToCartForm {\n\n // Constructor\n constructor(item) {\n super(item.product, item.quantity);\n\n this.item = item;\n this.stockExceededMessage = \"\";\n }\n\n async onValidateAsync() {\n this.isLimitExceeded = false;\n\n // Load limits if needed, and set maximum quantity if appropriate.\n if (this.limits === null || typeof this.limits === 'undefined') {\n await store.products.getProductLimits(this.product);\n this.limits = this.product.limits;\n for (let i = 0; i < this.limits.length; i++) {\n if (this.validator.fields.quantity.maxNumber > this.limits.available)\n this.validator.fields.quantity.maxNumber = this.limits.available;\n }\n }\n\n this.validator.reset();\n for (let i = 0; i < this.limits.length; i++) {\n\n if (this.model.quantity > this.limits[i].available) {\n this.isLimitExceeded = true\n\n this.validator.addError(`Limit of ${this.limits[i].limitText} exceeded`);\n }\n }\n\n if (this.model.quantity > this.product.quantityAvailable) {\n const message = `Only ${this.product.quantityAvailable} in stock`;\n this.isStockExceeded = true\n this.stockExceededMessage = message;\n this.validator.addError(message);\n } else {\n this.stockExceededMessage = null;\n this.isStockExceeded = false;\n }\n\n }\n\n async onSubmit() {\n if (store.cart.setItemQuantity(this.item.id, this.model.quantity))\n return true;\n else\n return false;\n }\n}","function E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\n","import { extend, isArray, isMap, isIntegerKey, hasOwn, isSymbol, isObject, hasChanged, makeMap, capitalize, toRawType, def, isFunction, NOOP } from '@vue/shared';\n\nfunction warn(msg, ...args) {\r\n console.warn(`[Vue warn] ${msg}`, ...args);\r\n}\n\nlet activeEffectScope;\r\nclass EffectScope {\r\n constructor(detached = false) {\r\n /**\r\n * @internal\r\n */\r\n this.active = true;\r\n /**\r\n * @internal\r\n */\r\n this.effects = [];\r\n /**\r\n * @internal\r\n */\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n run(fn) {\r\n if (this.active) {\r\n const currentEffectScope = activeEffectScope;\r\n try {\r\n activeEffectScope = this;\r\n return fn();\r\n }\r\n finally {\r\n activeEffectScope = currentEffectScope;\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`cannot run an inactive effect scope.`);\r\n }\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n on() {\r\n activeEffectScope = this;\r\n }\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n off() {\r\n activeEffectScope = this.parent;\r\n }\r\n stop(fromParent) {\r\n if (this.active) {\r\n let i, l;\r\n for (i = 0, l = this.effects.length; i < l; i++) {\r\n this.effects[i].stop();\r\n }\r\n for (i = 0, l = this.cleanups.length; i < l; i++) {\r\n this.cleanups[i]();\r\n }\r\n if (this.scopes) {\r\n for (i = 0, l = this.scopes.length; i < l; i++) {\r\n this.scopes[i].stop(true);\r\n }\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n const last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\nfunction recordEffectScope(effect, scope = activeEffectScope) {\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`onScopeDispose() is called when there is no active effect scope` +\r\n ` to be associated with.`);\r\n }\r\n}\n\nconst createDep = (effects) => {\r\n const dep = new Set(effects);\r\n dep.w = 0;\r\n dep.n = 0;\r\n return dep;\r\n};\r\nconst wasTracked = (dep) => (dep.w & trackOpBit) > 0;\r\nconst newTracked = (dep) => (dep.n & trackOpBit) > 0;\r\nconst initDepMarkers = ({ deps }) => {\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].w |= trackOpBit; // set was tracked\r\n }\r\n }\r\n};\r\nconst finalizeDepMarkers = (effect) => {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n let ptr = 0;\r\n for (let i = 0; i < deps.length; i++) {\r\n const dep = deps[i];\r\n if (wasTracked(dep) && !newTracked(dep)) {\r\n dep.delete(effect);\r\n }\r\n else {\r\n deps[ptr++] = dep;\r\n }\r\n // clear bits\r\n dep.w &= ~trackOpBit;\r\n dep.n &= ~trackOpBit;\r\n }\r\n deps.length = ptr;\r\n }\r\n};\n\nconst targetMap = new WeakMap();\r\n// The number of effects currently being tracked recursively.\r\nlet effectTrackDepth = 0;\r\nlet trackOpBit = 1;\r\n/**\r\n * The bitwise track markers support at most 30 levels of recursion.\r\n * This value is chosen to enable modern JS engines to use a SMI on all platforms.\r\n * When recursion depth is greater, fall back to using a full cleanup.\r\n */\r\nconst maxMarkerBits = 30;\r\nlet activeEffect;\r\nconst ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'iterate' : '');\r\nconst MAP_KEY_ITERATE_KEY = Symbol((process.env.NODE_ENV !== 'production') ? 'Map key iterate' : '');\r\nclass ReactiveEffect {\r\n constructor(fn, scheduler = null, scope) {\r\n this.fn = fn;\r\n this.scheduler = scheduler;\r\n this.active = true;\r\n this.deps = [];\r\n this.parent = undefined;\r\n recordEffectScope(this, scope);\r\n }\r\n run() {\r\n if (!this.active) {\r\n return this.fn();\r\n }\r\n let parent = activeEffect;\r\n let lastShouldTrack = shouldTrack;\r\n while (parent) {\r\n if (parent === this) {\r\n return;\r\n }\r\n parent = parent.parent;\r\n }\r\n try {\r\n this.parent = activeEffect;\r\n activeEffect = this;\r\n shouldTrack = true;\r\n trackOpBit = 1 << ++effectTrackDepth;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n initDepMarkers(this);\r\n }\r\n else {\r\n cleanupEffect(this);\r\n }\r\n return this.fn();\r\n }\r\n finally {\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n finalizeDepMarkers(this);\r\n }\r\n trackOpBit = 1 << --effectTrackDepth;\r\n activeEffect = this.parent;\r\n shouldTrack = lastShouldTrack;\r\n this.parent = undefined;\r\n if (this.deferStop) {\r\n this.stop();\r\n }\r\n }\r\n }\r\n stop() {\r\n // stopped while running itself - defer the cleanup\r\n if (activeEffect === this) {\r\n this.deferStop = true;\r\n }\r\n else if (this.active) {\r\n cleanupEffect(this);\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n this.active = false;\r\n }\r\n }\r\n}\r\nfunction cleanupEffect(effect) {\r\n const { deps } = effect;\r\n if (deps.length) {\r\n for (let i = 0; i < deps.length; i++) {\r\n deps[i].delete(effect);\r\n }\r\n deps.length = 0;\r\n }\r\n}\r\nfunction effect(fn, options) {\r\n if (fn.effect) {\r\n fn = fn.effect.fn;\r\n }\r\n const _effect = new ReactiveEffect(fn);\r\n if (options) {\r\n extend(_effect, options);\r\n if (options.scope)\r\n recordEffectScope(_effect, options.scope);\r\n }\r\n if (!options || !options.lazy) {\r\n _effect.run();\r\n }\r\n const runner = _effect.run.bind(_effect);\r\n runner.effect = _effect;\r\n return runner;\r\n}\r\nfunction stop(runner) {\r\n runner.effect.stop();\r\n}\r\nlet shouldTrack = true;\r\nconst trackStack = [];\r\nfunction pauseTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = false;\r\n}\r\nfunction enableTracking() {\r\n trackStack.push(shouldTrack);\r\n shouldTrack = true;\r\n}\r\nfunction resetTracking() {\r\n const last = trackStack.pop();\r\n shouldTrack = last === undefined ? true : last;\r\n}\r\nfunction track(target, type, key) {\r\n if (shouldTrack && activeEffect) {\r\n let depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n targetMap.set(target, (depsMap = new Map()));\r\n }\r\n let dep = depsMap.get(key);\r\n if (!dep) {\r\n depsMap.set(key, (dep = createDep()));\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { effect: activeEffect, target, type, key }\r\n : undefined;\r\n trackEffects(dep, eventInfo);\r\n }\r\n}\r\nfunction trackEffects(dep, debuggerEventExtraInfo) {\r\n let shouldTrack = false;\r\n if (effectTrackDepth <= maxMarkerBits) {\r\n if (!newTracked(dep)) {\r\n dep.n |= trackOpBit; // set newly tracked\r\n shouldTrack = !wasTracked(dep);\r\n }\r\n }\r\n else {\r\n // Full cleanup mode.\r\n shouldTrack = !dep.has(activeEffect);\r\n }\r\n if (shouldTrack) {\r\n dep.add(activeEffect);\r\n activeEffect.deps.push(dep);\r\n if ((process.env.NODE_ENV !== 'production') && activeEffect.onTrack) {\r\n activeEffect.onTrack(Object.assign({ effect: activeEffect }, debuggerEventExtraInfo));\r\n }\r\n }\r\n}\r\nfunction trigger(target, type, key, newValue, oldValue, oldTarget) {\r\n const depsMap = targetMap.get(target);\r\n if (!depsMap) {\r\n // never been tracked\r\n return;\r\n }\r\n let deps = [];\r\n if (type === \"clear\" /* CLEAR */) {\r\n // collection being cleared\r\n // trigger all effects for target\r\n deps = [...depsMap.values()];\r\n }\r\n else if (key === 'length' && isArray(target)) {\r\n depsMap.forEach((dep, key) => {\r\n if (key === 'length' || key >= newValue) {\r\n deps.push(dep);\r\n }\r\n });\r\n }\r\n else {\r\n // schedule runs for SET | ADD | DELETE\r\n if (key !== void 0) {\r\n deps.push(depsMap.get(key));\r\n }\r\n // also run for iteration key on ADD | DELETE | Map.SET\r\n switch (type) {\r\n case \"add\" /* ADD */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n else if (isIntegerKey(key)) {\r\n // new index added to array -> length changes\r\n deps.push(depsMap.get('length'));\r\n }\r\n break;\r\n case \"delete\" /* DELETE */:\r\n if (!isArray(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(MAP_KEY_ITERATE_KEY));\r\n }\r\n }\r\n break;\r\n case \"set\" /* SET */:\r\n if (isMap(target)) {\r\n deps.push(depsMap.get(ITERATE_KEY));\r\n }\r\n break;\r\n }\r\n }\r\n const eventInfo = (process.env.NODE_ENV !== 'production')\r\n ? { target, type, key, newValue, oldValue, oldTarget }\r\n : undefined;\r\n if (deps.length === 1) {\r\n if (deps[0]) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(deps[0], eventInfo);\r\n }\r\n else {\r\n triggerEffects(deps[0]);\r\n }\r\n }\r\n }\r\n else {\r\n const effects = [];\r\n for (const dep of deps) {\r\n if (dep) {\r\n effects.push(...dep);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(createDep(effects), eventInfo);\r\n }\r\n else {\r\n triggerEffects(createDep(effects));\r\n }\r\n }\r\n}\r\nfunction triggerEffects(dep, debuggerEventExtraInfo) {\r\n // spread into array for stabilization\r\n const effects = isArray(dep) ? dep : [...dep];\r\n for (const effect of effects) {\r\n if (effect.computed) {\r\n triggerEffect(effect, debuggerEventExtraInfo);\r\n }\r\n }\r\n for (const effect of effects) {\r\n if (!effect.computed) {\r\n triggerEffect(effect, debuggerEventExtraInfo);\r\n }\r\n }\r\n}\r\nfunction triggerEffect(effect, debuggerEventExtraInfo) {\r\n if (effect !== activeEffect || effect.allowRecurse) {\r\n if ((process.env.NODE_ENV !== 'production') && effect.onTrigger) {\r\n effect.onTrigger(extend({ effect }, debuggerEventExtraInfo));\r\n }\r\n if (effect.scheduler) {\r\n effect.scheduler();\r\n }\r\n else {\r\n effect.run();\r\n }\r\n }\r\n}\n\nconst isNonTrackableKeys = /*#__PURE__*/ makeMap(`__proto__,__v_isRef,__isVue`);\r\nconst builtInSymbols = new Set(\r\n/*#__PURE__*/\r\nObject.getOwnPropertyNames(Symbol)\r\n // ios10.x Object.getOwnPropertyNames(Symbol) can enumerate 'arguments' and 'caller'\r\n // but accessing them on Symbol leads to TypeError because Symbol is a strict mode\r\n // function\r\n .filter(key => key !== 'arguments' && key !== 'caller')\r\n .map(key => Symbol[key])\r\n .filter(isSymbol));\r\nconst get = /*#__PURE__*/ createGetter();\r\nconst shallowGet = /*#__PURE__*/ createGetter(false, true);\r\nconst readonlyGet = /*#__PURE__*/ createGetter(true);\r\nconst shallowReadonlyGet = /*#__PURE__*/ createGetter(true, true);\r\nconst arrayInstrumentations = /*#__PURE__*/ createArrayInstrumentations();\r\nfunction createArrayInstrumentations() {\r\n const instrumentations = {};\r\n ['includes', 'indexOf', 'lastIndexOf'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n const arr = toRaw(this);\r\n for (let i = 0, l = this.length; i < l; i++) {\r\n track(arr, \"get\" /* GET */, i + '');\r\n }\r\n // we run the method using the original args first (which may be reactive)\r\n const res = arr[key](...args);\r\n if (res === -1 || res === false) {\r\n // if that didn't work, run it again using raw values.\r\n return arr[key](...args.map(toRaw));\r\n }\r\n else {\r\n return res;\r\n }\r\n };\r\n });\r\n ['push', 'pop', 'shift', 'unshift', 'splice'].forEach(key => {\r\n instrumentations[key] = function (...args) {\r\n pauseTracking();\r\n const res = toRaw(this)[key].apply(this, args);\r\n resetTracking();\r\n return res;\r\n };\r\n });\r\n return instrumentations;\r\n}\r\nfunction createGetter(isReadonly = false, shallow = false) {\r\n return function get(target, key, receiver) {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_isShallow\" /* IS_SHALLOW */) {\r\n return shallow;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */ &&\r\n receiver ===\r\n (isReadonly\r\n ? shallow\r\n ? shallowReadonlyMap\r\n : readonlyMap\r\n : shallow\r\n ? shallowReactiveMap\r\n : reactiveMap).get(target)) {\r\n return target;\r\n }\r\n const targetIsArray = isArray(target);\r\n if (!isReadonly && targetIsArray && hasOwn(arrayInstrumentations, key)) {\r\n return Reflect.get(arrayInstrumentations, key, receiver);\r\n }\r\n const res = Reflect.get(target, key, receiver);\r\n if (isSymbol(key) ? builtInSymbols.has(key) : isNonTrackableKeys(key)) {\r\n return res;\r\n }\r\n if (!isReadonly) {\r\n track(target, \"get\" /* GET */, key);\r\n }\r\n if (shallow) {\r\n return res;\r\n }\r\n if (isRef(res)) {\r\n // ref unwrapping - skip unwrap for Array + integer key.\r\n return targetIsArray && isIntegerKey(key) ? res : res.value;\r\n }\r\n if (isObject(res)) {\r\n // Convert returned value into a proxy as well. we do the isObject check\r\n // here to avoid invalid value warning. Also need to lazy access readonly\r\n // and reactive here to avoid circular dependency.\r\n return isReadonly ? readonly(res) : reactive(res);\r\n }\r\n return res;\r\n };\r\n}\r\nconst set = /*#__PURE__*/ createSetter();\r\nconst shallowSet = /*#__PURE__*/ createSetter(true);\r\nfunction createSetter(shallow = false) {\r\n return function set(target, key, value, receiver) {\r\n let oldValue = target[key];\r\n if (isReadonly(oldValue) && isRef(oldValue) && !isRef(value)) {\r\n return false;\r\n }\r\n if (!shallow && !isReadonly(value)) {\r\n if (!isShallow(value)) {\r\n value = toRaw(value);\r\n oldValue = toRaw(oldValue);\r\n }\r\n if (!isArray(target) && isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n }\r\n const hadKey = isArray(target) && isIntegerKey(key)\r\n ? Number(key) < target.length\r\n : hasOwn(target, key);\r\n const result = Reflect.set(target, key, value, receiver);\r\n // don't trigger if target is something up in the prototype chain of original\r\n if (target === toRaw(receiver)) {\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n }\r\n return result;\r\n };\r\n}\r\nfunction deleteProperty(target, key) {\r\n const hadKey = hasOwn(target, key);\r\n const oldValue = target[key];\r\n const result = Reflect.deleteProperty(target, key);\r\n if (result && hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction has(target, key) {\r\n const result = Reflect.has(target, key);\r\n if (!isSymbol(key) || !builtInSymbols.has(key)) {\r\n track(target, \"has\" /* HAS */, key);\r\n }\r\n return result;\r\n}\r\nfunction ownKeys(target) {\r\n track(target, \"iterate\" /* ITERATE */, isArray(target) ? 'length' : ITERATE_KEY);\r\n return Reflect.ownKeys(target);\r\n}\r\nconst mutableHandlers = {\r\n get,\r\n set,\r\n deleteProperty,\r\n has,\r\n ownKeys\r\n};\r\nconst readonlyHandlers = {\r\n get: readonlyGet,\r\n set(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Set operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n },\r\n deleteProperty(target, key) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`Delete operation on key \"${String(key)}\" failed: target is readonly.`, target);\r\n }\r\n return true;\r\n }\r\n};\r\nconst shallowReactiveHandlers = /*#__PURE__*/ extend({}, mutableHandlers, {\r\n get: shallowGet,\r\n set: shallowSet\r\n});\r\n// Props handlers are special in the sense that it should not unwrap top-level\r\n// refs (in order to allow refs to be explicitly passed down), but should\r\n// retain the reactivity of the normal readonly object.\r\nconst shallowReadonlyHandlers = /*#__PURE__*/ extend({}, readonlyHandlers, {\r\n get: shallowReadonlyGet\r\n});\n\nconst toShallow = (value) => value;\r\nconst getProto = (v) => Reflect.getPrototypeOf(v);\r\nfunction get$1(target, key, isReadonly = false, isShallow = false) {\r\n // #1772: readonly(reactive(Map)) should return readonly + reactive version\r\n // of the value\r\n target = target[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (key !== rawKey) {\r\n track(rawTarget, \"get\" /* GET */, key);\r\n }\r\n track(rawTarget, \"get\" /* GET */, rawKey);\r\n }\r\n const { has } = getProto(rawTarget);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n if (has.call(rawTarget, key)) {\r\n return wrap(target.get(key));\r\n }\r\n else if (has.call(rawTarget, rawKey)) {\r\n return wrap(target.get(rawKey));\r\n }\r\n else if (target !== rawTarget) {\r\n // #3602 readonly(reactive(Map))\r\n // ensure that the nested reactive `Map` can do tracking for itself\r\n target.get(key);\r\n }\r\n}\r\nfunction has$1(key, isReadonly = false) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const rawKey = toRaw(key);\r\n if (!isReadonly) {\r\n if (key !== rawKey) {\r\n track(rawTarget, \"has\" /* HAS */, key);\r\n }\r\n track(rawTarget, \"has\" /* HAS */, rawKey);\r\n }\r\n return key === rawKey\r\n ? target.has(key)\r\n : target.has(key) || target.has(rawKey);\r\n}\r\nfunction size(target, isReadonly = false) {\r\n target = target[\"__v_raw\" /* RAW */];\r\n !isReadonly && track(toRaw(target), \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return Reflect.get(target, 'size', target);\r\n}\r\nfunction add(value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const proto = getProto(target);\r\n const hadKey = proto.has.call(target, value);\r\n if (!hadKey) {\r\n target.add(value);\r\n trigger(target, \"add\" /* ADD */, value, value);\r\n }\r\n return this;\r\n}\r\nfunction set$1(key, value) {\r\n value = toRaw(value);\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get.call(target, key);\r\n target.set(key, value);\r\n if (!hadKey) {\r\n trigger(target, \"add\" /* ADD */, key, value);\r\n }\r\n else if (hasChanged(value, oldValue)) {\r\n trigger(target, \"set\" /* SET */, key, value, oldValue);\r\n }\r\n return this;\r\n}\r\nfunction deleteEntry(key) {\r\n const target = toRaw(this);\r\n const { has, get } = getProto(target);\r\n let hadKey = has.call(target, key);\r\n if (!hadKey) {\r\n key = toRaw(key);\r\n hadKey = has.call(target, key);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n checkIdentityKeys(target, has, key);\r\n }\r\n const oldValue = get ? get.call(target, key) : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.delete(key);\r\n if (hadKey) {\r\n trigger(target, \"delete\" /* DELETE */, key, undefined, oldValue);\r\n }\r\n return result;\r\n}\r\nfunction clear() {\r\n const target = toRaw(this);\r\n const hadItems = target.size !== 0;\r\n const oldTarget = (process.env.NODE_ENV !== 'production')\r\n ? isMap(target)\r\n ? new Map(target)\r\n : new Set(target)\r\n : undefined;\r\n // forward the operation before queueing reactions\r\n const result = target.clear();\r\n if (hadItems) {\r\n trigger(target, \"clear\" /* CLEAR */, undefined, undefined, oldTarget);\r\n }\r\n return result;\r\n}\r\nfunction createForEach(isReadonly, isShallow) {\r\n return function forEach(callback, thisArg) {\r\n const observed = this;\r\n const target = observed[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly && track(rawTarget, \"iterate\" /* ITERATE */, ITERATE_KEY);\r\n return target.forEach((value, key) => {\r\n // important: make sure the callback is\r\n // 1. invoked with the reactive map as `this` and 3rd arg\r\n // 2. the value received should be a corresponding reactive/readonly.\r\n return callback.call(thisArg, wrap(value), wrap(key), observed);\r\n });\r\n };\r\n}\r\nfunction createIterableMethod(method, isReadonly, isShallow) {\r\n return function (...args) {\r\n const target = this[\"__v_raw\" /* RAW */];\r\n const rawTarget = toRaw(target);\r\n const targetIsMap = isMap(rawTarget);\r\n const isPair = method === 'entries' || (method === Symbol.iterator && targetIsMap);\r\n const isKeyOnly = method === 'keys' && targetIsMap;\r\n const innerIterator = target[method](...args);\r\n const wrap = isShallow ? toShallow : isReadonly ? toReadonly : toReactive;\r\n !isReadonly &&\r\n track(rawTarget, \"iterate\" /* ITERATE */, isKeyOnly ? MAP_KEY_ITERATE_KEY : ITERATE_KEY);\r\n // return a wrapped iterator which returns observed versions of the\r\n // values emitted from the real iterator\r\n return {\r\n // iterator protocol\r\n next() {\r\n const { value, done } = innerIterator.next();\r\n return done\r\n ? { value, done }\r\n : {\r\n value: isPair ? [wrap(value[0]), wrap(value[1])] : wrap(value),\r\n done\r\n };\r\n },\r\n // iterable protocol\r\n [Symbol.iterator]() {\r\n return this;\r\n }\r\n };\r\n };\r\n}\r\nfunction createReadonlyMethod(type) {\r\n return function (...args) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const key = args[0] ? `on key \"${args[0]}\" ` : ``;\r\n console.warn(`${capitalize(type)} operation ${key}failed: target is readonly.`, toRaw(this));\r\n }\r\n return type === \"delete\" /* DELETE */ ? false : this;\r\n };\r\n}\r\nfunction createInstrumentations() {\r\n const mutableInstrumentations = {\r\n get(key) {\r\n return get$1(this, key);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, false)\r\n };\r\n const shallowInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, false, true);\r\n },\r\n get size() {\r\n return size(this);\r\n },\r\n has: has$1,\r\n add,\r\n set: set$1,\r\n delete: deleteEntry,\r\n clear,\r\n forEach: createForEach(false, true)\r\n };\r\n const readonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, false)\r\n };\r\n const shallowReadonlyInstrumentations = {\r\n get(key) {\r\n return get$1(this, key, true, true);\r\n },\r\n get size() {\r\n return size(this, true);\r\n },\r\n has(key) {\r\n return has$1.call(this, key, true);\r\n },\r\n add: createReadonlyMethod(\"add\" /* ADD */),\r\n set: createReadonlyMethod(\"set\" /* SET */),\r\n delete: createReadonlyMethod(\"delete\" /* DELETE */),\r\n clear: createReadonlyMethod(\"clear\" /* CLEAR */),\r\n forEach: createForEach(true, true)\r\n };\r\n const iteratorMethods = ['keys', 'values', 'entries', Symbol.iterator];\r\n iteratorMethods.forEach(method => {\r\n mutableInstrumentations[method] = createIterableMethod(method, false, false);\r\n readonlyInstrumentations[method] = createIterableMethod(method, true, false);\r\n shallowInstrumentations[method] = createIterableMethod(method, false, true);\r\n shallowReadonlyInstrumentations[method] = createIterableMethod(method, true, true);\r\n });\r\n return [\r\n mutableInstrumentations,\r\n readonlyInstrumentations,\r\n shallowInstrumentations,\r\n shallowReadonlyInstrumentations\r\n ];\r\n}\r\nconst [mutableInstrumentations, readonlyInstrumentations, shallowInstrumentations, shallowReadonlyInstrumentations] = /* #__PURE__*/ createInstrumentations();\r\nfunction createInstrumentationGetter(isReadonly, shallow) {\r\n const instrumentations = shallow\r\n ? isReadonly\r\n ? shallowReadonlyInstrumentations\r\n : shallowInstrumentations\r\n : isReadonly\r\n ? readonlyInstrumentations\r\n : mutableInstrumentations;\r\n return (target, key, receiver) => {\r\n if (key === \"__v_isReactive\" /* IS_REACTIVE */) {\r\n return !isReadonly;\r\n }\r\n else if (key === \"__v_isReadonly\" /* IS_READONLY */) {\r\n return isReadonly;\r\n }\r\n else if (key === \"__v_raw\" /* RAW */) {\r\n return target;\r\n }\r\n return Reflect.get(hasOwn(instrumentations, key) && key in target\r\n ? instrumentations\r\n : target, key, receiver);\r\n };\r\n}\r\nconst mutableCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, false)\r\n};\r\nconst shallowCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(false, true)\r\n};\r\nconst readonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, false)\r\n};\r\nconst shallowReadonlyCollectionHandlers = {\r\n get: /*#__PURE__*/ createInstrumentationGetter(true, true)\r\n};\r\nfunction checkIdentityKeys(target, has, key) {\r\n const rawKey = toRaw(key);\r\n if (rawKey !== key && has.call(target, rawKey)) {\r\n const type = toRawType(target);\r\n console.warn(`Reactive ${type} contains both the raw and reactive ` +\r\n `versions of the same object${type === `Map` ? ` as keys` : ``}, ` +\r\n `which can lead to inconsistencies. ` +\r\n `Avoid differentiating between the raw and reactive versions ` +\r\n `of an object and only use the reactive version if possible.`);\r\n }\r\n}\n\nconst reactiveMap = new WeakMap();\r\nconst shallowReactiveMap = new WeakMap();\r\nconst readonlyMap = new WeakMap();\r\nconst shallowReadonlyMap = new WeakMap();\r\nfunction targetTypeMap(rawType) {\r\n switch (rawType) {\r\n case 'Object':\r\n case 'Array':\r\n return 1 /* COMMON */;\r\n case 'Map':\r\n case 'Set':\r\n case 'WeakMap':\r\n case 'WeakSet':\r\n return 2 /* COLLECTION */;\r\n default:\r\n return 0 /* INVALID */;\r\n }\r\n}\r\nfunction getTargetType(value) {\r\n return value[\"__v_skip\" /* SKIP */] || !Object.isExtensible(value)\r\n ? 0 /* INVALID */\r\n : targetTypeMap(toRawType(value));\r\n}\r\nfunction reactive(target) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (isReadonly(target)) {\r\n return target;\r\n }\r\n return createReactiveObject(target, false, mutableHandlers, mutableCollectionHandlers, reactiveMap);\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n return createReactiveObject(target, false, shallowReactiveHandlers, shallowCollectionHandlers, shallowReactiveMap);\r\n}\r\n/**\r\n * Creates a readonly copy of the original object. Note the returned copy is not\r\n * made reactive, but `readonly` can be called on an already reactive object.\r\n */\r\nfunction readonly(target) {\r\n return createReactiveObject(target, true, readonlyHandlers, readonlyCollectionHandlers, readonlyMap);\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReactiveObject(target, true, shallowReadonlyHandlers, shallowReadonlyCollectionHandlers, shallowReadonlyMap);\r\n}\r\nfunction createReactiveObject(target, isReadonly, baseHandlers, collectionHandlers, proxyMap) {\r\n if (!isObject(target)) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n console.warn(`value cannot be made reactive: ${String(target)}`);\r\n }\r\n return target;\r\n }\r\n // target is already a Proxy, return it.\r\n // exception: calling readonly() on a reactive object\r\n if (target[\"__v_raw\" /* RAW */] &&\r\n !(isReadonly && target[\"__v_isReactive\" /* IS_REACTIVE */])) {\r\n return target;\r\n }\r\n // target already has corresponding Proxy\r\n const existingProxy = proxyMap.get(target);\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n // only specific value types can be observed.\r\n const targetType = getTargetType(target);\r\n if (targetType === 0 /* INVALID */) {\r\n return target;\r\n }\r\n const proxy = new Proxy(target, targetType === 2 /* COLLECTION */ ? collectionHandlers : baseHandlers);\r\n proxyMap.set(target, proxy);\r\n return proxy;\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* RAW */]);\r\n }\r\n return !!(value && value[\"__v_isReactive\" /* IS_REACTIVE */]);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value[\"__v_isReadonly\" /* IS_READONLY */]);\r\n}\r\nfunction isShallow(value) {\r\n return !!(value && value[\"__v_isShallow\" /* IS_SHALLOW */]);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n const raw = observed && observed[\"__v_raw\" /* RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* SKIP */, true);\r\n return value;\r\n}\r\nconst toReactive = (value) => isObject(value) ? reactive(value) : value;\r\nconst toReadonly = (value) => isObject(value) ? readonly(value) : value;\n\nfunction trackRefValue(ref) {\r\n if (shouldTrack && activeEffect) {\r\n ref = toRaw(ref);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n trackEffects(ref.dep || (ref.dep = createDep()), {\r\n target: ref,\r\n type: \"get\" /* GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n trackEffects(ref.dep || (ref.dep = createDep()));\r\n }\r\n }\r\n}\r\nfunction triggerRefValue(ref, newVal) {\r\n ref = toRaw(ref);\r\n if (ref.dep) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n triggerEffects(ref.dep, {\r\n target: ref,\r\n type: \"set\" /* SET */,\r\n key: 'value',\r\n newValue: newVal\r\n });\r\n }\r\n else {\r\n triggerEffects(ref.dep);\r\n }\r\n }\r\n}\r\nfunction isRef(r) {\r\n return !!(r && r.__v_isRef === true);\r\n}\r\nfunction ref(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n return new RefImpl(rawValue, shallow);\r\n}\r\nclass RefImpl {\r\n constructor(value, __v_isShallow) {\r\n this.__v_isShallow = __v_isShallow;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._rawValue = __v_isShallow ? value : toRaw(value);\r\n this._value = __v_isShallow ? value : toReactive(value);\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n return this._value;\r\n }\r\n set value(newVal) {\r\n newVal = this.__v_isShallow ? newVal : toRaw(newVal);\r\n if (hasChanged(newVal, this._rawValue)) {\r\n this._rawValue = newVal;\r\n this._value = this.__v_isShallow ? newVal : toReactive(newVal);\r\n triggerRefValue(this, newVal);\r\n }\r\n }\r\n}\r\nfunction triggerRef(ref) {\r\n triggerRefValue(ref, (process.env.NODE_ENV !== 'production') ? ref.value : void 0);\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nconst shallowUnwrapHandlers = {\r\n get: (target, key, receiver) => unref(Reflect.get(target, key, receiver)),\r\n set: (target, key, value, receiver) => {\r\n const oldValue = target[key];\r\n if (isRef(oldValue) && !isRef(value)) {\r\n oldValue.value = value;\r\n return true;\r\n }\r\n else {\r\n return Reflect.set(target, key, value, receiver);\r\n }\r\n }\r\n};\r\nfunction proxyRefs(objectWithRefs) {\r\n return isReactive(objectWithRefs)\r\n ? objectWithRefs\r\n : new Proxy(objectWithRefs, shallowUnwrapHandlers);\r\n}\r\nclass CustomRefImpl {\r\n constructor(factory) {\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n const { get, set } = factory(() => trackRefValue(this), () => triggerRefValue(this));\r\n this._get = get;\r\n this._set = set;\r\n }\r\n get value() {\r\n return this._get();\r\n }\r\n set value(newVal) {\r\n this._set(newVal);\r\n }\r\n}\r\nfunction customRef(factory) {\r\n return new CustomRefImpl(factory);\r\n}\r\nfunction toRefs(object) {\r\n if ((process.env.NODE_ENV !== 'production') && !isProxy(object)) {\r\n console.warn(`toRefs() expects a reactive object but received a plain one.`);\r\n }\r\n const ret = isArray(object) ? new Array(object.length) : {};\r\n for (const key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nclass ObjectRefImpl {\r\n constructor(_object, _key, _defaultValue) {\r\n this._object = _object;\r\n this._key = _key;\r\n this._defaultValue = _defaultValue;\r\n this.__v_isRef = true;\r\n }\r\n get value() {\r\n const val = this._object[this._key];\r\n return val === undefined ? this._defaultValue : val;\r\n }\r\n set value(newVal) {\r\n this._object[this._key] = newVal;\r\n }\r\n}\r\nfunction toRef(object, key, defaultValue) {\r\n const val = object[key];\r\n return isRef(val)\r\n ? val\r\n : new ObjectRefImpl(object, key, defaultValue);\r\n}\n\nclass ComputedRefImpl {\r\n constructor(getter, _setter, isReadonly, isSSR) {\r\n this._setter = _setter;\r\n this.dep = undefined;\r\n this.__v_isRef = true;\r\n this._dirty = true;\r\n this.effect = new ReactiveEffect(getter, () => {\r\n if (!this._dirty) {\r\n this._dirty = true;\r\n triggerRefValue(this);\r\n }\r\n });\r\n this.effect.computed = this;\r\n this.effect.active = this._cacheable = !isSSR;\r\n this[\"__v_isReadonly\" /* IS_READONLY */] = isReadonly;\r\n }\r\n get value() {\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n const self = toRaw(this);\r\n trackRefValue(self);\r\n if (self._dirty || !self._cacheable) {\r\n self._dirty = false;\r\n self._value = self.effect.run();\r\n }\r\n return self._value;\r\n }\r\n set value(newValue) {\r\n this._setter(newValue);\r\n }\r\n}\r\nfunction computed(getterOrOptions, debugOptions, isSSR = false) {\r\n let getter;\r\n let setter;\r\n const onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = (process.env.NODE_ENV !== 'production')\r\n ? () => {\r\n console.warn('Write operation failed: computed value is readonly');\r\n }\r\n : NOOP;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n const cRef = new ComputedRefImpl(getter, setter, onlyGetter || !setter, isSSR);\r\n if ((process.env.NODE_ENV !== 'production') && debugOptions && !isSSR) {\r\n cRef.effect.onTrack = debugOptions.onTrack;\r\n cRef.effect.onTrigger = debugOptions.onTrigger;\r\n }\r\n return cRef;\r\n}\n\nvar _a;\r\nconst tick = /*#__PURE__*/ Promise.resolve();\r\nconst queue = [];\r\nlet queued = false;\r\nconst scheduler = (fn) => {\r\n queue.push(fn);\r\n if (!queued) {\r\n queued = true;\r\n tick.then(flush);\r\n }\r\n};\r\nconst flush = () => {\r\n for (let i = 0; i < queue.length; i++) {\r\n queue[i]();\r\n }\r\n queue.length = 0;\r\n queued = false;\r\n};\r\nclass DeferredComputedRefImpl {\r\n constructor(getter) {\r\n this.dep = undefined;\r\n this._dirty = true;\r\n this.__v_isRef = true;\r\n this[_a] = true;\r\n let compareTarget;\r\n let hasCompareTarget = false;\r\n let scheduled = false;\r\n this.effect = new ReactiveEffect(getter, (computedTrigger) => {\r\n if (this.dep) {\r\n if (computedTrigger) {\r\n compareTarget = this._value;\r\n hasCompareTarget = true;\r\n }\r\n else if (!scheduled) {\r\n const valueToCompare = hasCompareTarget ? compareTarget : this._value;\r\n scheduled = true;\r\n hasCompareTarget = false;\r\n scheduler(() => {\r\n if (this.effect.active && this._get() !== valueToCompare) {\r\n triggerRefValue(this);\r\n }\r\n scheduled = false;\r\n });\r\n }\r\n // chained upstream computeds are notified synchronously to ensure\r\n // value invalidation in case of sync access; normal effects are\r\n // deferred to be triggered in scheduler.\r\n for (const e of this.dep) {\r\n if (e.computed instanceof DeferredComputedRefImpl) {\r\n e.scheduler(true /* computedTrigger */);\r\n }\r\n }\r\n }\r\n this._dirty = true;\r\n });\r\n this.effect.computed = this;\r\n }\r\n _get() {\r\n if (this._dirty) {\r\n this._dirty = false;\r\n return (this._value = this.effect.run());\r\n }\r\n return this._value;\r\n }\r\n get value() {\r\n trackRefValue(this);\r\n // the computed ref may get wrapped by other proxies e.g. readonly() #3376\r\n return toRaw(this)._get();\r\n }\r\n}\r\n_a = \"__v_isReadonly\" /* IS_READONLY */;\r\nfunction deferredComputed(getter) {\r\n return new DeferredComputedRefImpl(getter);\r\n}\n\nexport { EffectScope, ITERATE_KEY, ReactiveEffect, computed, customRef, deferredComputed, effect, effectScope, enableTracking, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, pauseTracking, proxyRefs, reactive, readonly, ref, resetTracking, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, track, trigger, triggerRef, unref };\n","import { pauseTracking, resetTracking, isRef, toRaw, isShallow as isShallow$1, isReactive, ReactiveEffect, ref, shallowReadonly, track, reactive, shallowReactive, trigger, isProxy, EffectScope, markRaw, proxyRefs, computed as computed$1, isReadonly } from '@vue/reactivity';\nexport { EffectScope, ReactiveEffect, customRef, effect, effectScope, getCurrentScope, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, onScopeDispose, proxyRefs, reactive, readonly, ref, shallowReactive, shallowReadonly, shallowRef, stop, toRaw, toRef, toRefs, triggerRef, unref } from '@vue/reactivity';\nimport { isString, isFunction, isPromise, isArray, NOOP, getGlobalThis, extend, EMPTY_OBJ, toHandlerKey, toNumber, hyphenate, camelize, isOn, hasOwn, isModelListener, hasChanged, remove, isObject, isSet, isMap, isPlainObject, invokeArrayFns, isBuiltInDirective, capitalize, isGloballyWhitelisted, def, isReservedProp, EMPTY_ARR, toRawType, makeMap, NO, normalizeClass, normalizeStyle } from '@vue/shared';\nexport { camelize, capitalize, normalizeClass, normalizeProps, normalizeStyle, toDisplayString, toHandlerKey } from '@vue/shared';\n\nconst stack = [];\r\nfunction pushWarningContext(vnode) {\r\n stack.push(vnode);\r\n}\r\nfunction popWarningContext() {\r\n stack.pop();\r\n}\r\nfunction warn(msg, ...args) {\r\n // avoid props formatting or warn handler tracking deps that might be mutated\r\n // during patch, leading to infinite recursion.\r\n pauseTracking();\r\n const instance = stack.length ? stack[stack.length - 1].component : null;\r\n const appWarnHandler = instance && instance.appContext.config.warnHandler;\r\n const trace = getComponentTrace();\r\n if (appWarnHandler) {\r\n callWithErrorHandling(appWarnHandler, instance, 11 /* APP_WARN_HANDLER */, [\r\n msg + args.join(''),\r\n instance && instance.proxy,\r\n trace\r\n .map(({ vnode }) => `at <${formatComponentName(instance, vnode.type)}>`)\r\n .join('\\n'),\r\n trace\r\n ]);\r\n }\r\n else {\r\n const warnArgs = [`[Vue warn]: ${msg}`, ...args];\r\n /* istanbul ignore if */\r\n if (trace.length &&\r\n // avoid spamming console during tests\r\n !false) {\r\n warnArgs.push(`\\n`, ...formatTrace(trace));\r\n }\r\n console.warn(...warnArgs);\r\n }\r\n resetTracking();\r\n}\r\nfunction getComponentTrace() {\r\n let currentVNode = stack[stack.length - 1];\r\n if (!currentVNode) {\r\n return [];\r\n }\r\n // we can't just use the stack because it will be incomplete during updates\r\n // that did not start from the root. Re-construct the parent chain using\r\n // instance parent pointers.\r\n const normalizedStack = [];\r\n while (currentVNode) {\r\n const last = normalizedStack[0];\r\n if (last && last.vnode === currentVNode) {\r\n last.recurseCount++;\r\n }\r\n else {\r\n normalizedStack.push({\r\n vnode: currentVNode,\r\n recurseCount: 0\r\n });\r\n }\r\n const parentInstance = currentVNode.component && currentVNode.component.parent;\r\n currentVNode = parentInstance && parentInstance.vnode;\r\n }\r\n return normalizedStack;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatTrace(trace) {\r\n const logs = [];\r\n trace.forEach((entry, i) => {\r\n logs.push(...(i === 0 ? [] : [`\\n`]), ...formatTraceEntry(entry));\r\n });\r\n return logs;\r\n}\r\nfunction formatTraceEntry({ vnode, recurseCount }) {\r\n const postfix = recurseCount > 0 ? `... (${recurseCount} recursive calls)` : ``;\r\n const isRoot = vnode.component ? vnode.component.parent == null : false;\r\n const open = ` at <${formatComponentName(vnode.component, vnode.type, isRoot)}`;\r\n const close = `>` + postfix;\r\n return vnode.props\r\n ? [open, ...formatProps(vnode.props), close]\r\n : [open + close];\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProps(props) {\r\n const res = [];\r\n const keys = Object.keys(props);\r\n keys.slice(0, 3).forEach(key => {\r\n res.push(...formatProp(key, props[key]));\r\n });\r\n if (keys.length > 3) {\r\n res.push(` ...`);\r\n }\r\n return res;\r\n}\r\n/* istanbul ignore next */\r\nfunction formatProp(key, value, raw) {\r\n if (isString(value)) {\r\n value = JSON.stringify(value);\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (typeof value === 'number' ||\r\n typeof value === 'boolean' ||\r\n value == null) {\r\n return raw ? value : [`${key}=${value}`];\r\n }\r\n else if (isRef(value)) {\r\n value = formatProp(key, toRaw(value.value), true);\r\n return raw ? value : [`${key}=Ref<`, value, `>`];\r\n }\r\n else if (isFunction(value)) {\r\n return [`${key}=fn${value.name ? `<${value.name}>` : ``}`];\r\n }\r\n else {\r\n value = toRaw(value);\r\n return raw ? value : [`${key}=`, value];\r\n }\r\n}\n\nconst ErrorTypeStrings = {\r\n [\"sp\" /* SERVER_PREFETCH */]: 'serverPrefetch hook',\r\n [\"bc\" /* BEFORE_CREATE */]: 'beforeCreate hook',\r\n [\"c\" /* CREATED */]: 'created hook',\r\n [\"bm\" /* BEFORE_MOUNT */]: 'beforeMount hook',\r\n [\"m\" /* MOUNTED */]: 'mounted hook',\r\n [\"bu\" /* BEFORE_UPDATE */]: 'beforeUpdate hook',\r\n [\"u\" /* UPDATED */]: 'updated',\r\n [\"bum\" /* BEFORE_UNMOUNT */]: 'beforeUnmount hook',\r\n [\"um\" /* UNMOUNTED */]: 'unmounted hook',\r\n [\"a\" /* ACTIVATED */]: 'activated hook',\r\n [\"da\" /* DEACTIVATED */]: 'deactivated hook',\r\n [\"ec\" /* ERROR_CAPTURED */]: 'errorCaptured hook',\r\n [\"rtc\" /* RENDER_TRACKED */]: 'renderTracked hook',\r\n [\"rtg\" /* RENDER_TRIGGERED */]: 'renderTriggered hook',\r\n [0 /* SETUP_FUNCTION */]: 'setup function',\r\n [1 /* RENDER_FUNCTION */]: 'render function',\r\n [2 /* WATCH_GETTER */]: 'watcher getter',\r\n [3 /* WATCH_CALLBACK */]: 'watcher callback',\r\n [4 /* WATCH_CLEANUP */]: 'watcher cleanup function',\r\n [5 /* NATIVE_EVENT_HANDLER */]: 'native event handler',\r\n [6 /* COMPONENT_EVENT_HANDLER */]: 'component event handler',\r\n [7 /* VNODE_HOOK */]: 'vnode hook',\r\n [8 /* DIRECTIVE_HOOK */]: 'directive hook',\r\n [9 /* TRANSITION_HOOK */]: 'transition hook',\r\n [10 /* APP_ERROR_HANDLER */]: 'app errorHandler',\r\n [11 /* APP_WARN_HANDLER */]: 'app warnHandler',\r\n [12 /* FUNCTION_REF */]: 'ref function',\r\n [13 /* ASYNC_COMPONENT_LOADER */]: 'async component loader',\r\n [14 /* SCHEDULER */]: 'scheduler flush. This is likely a Vue internals bug. ' +\r\n 'Please open an issue at https://new-issue.vuejs.org/?repo=vuejs/core'\r\n};\r\nfunction callWithErrorHandling(fn, instance, type, args) {\r\n let res;\r\n try {\r\n res = args ? fn(...args) : fn();\r\n }\r\n catch (err) {\r\n handleError(err, instance, type);\r\n }\r\n return res;\r\n}\r\nfunction callWithAsyncErrorHandling(fn, instance, type, args) {\r\n if (isFunction(fn)) {\r\n const res = callWithErrorHandling(fn, instance, type, args);\r\n if (res && isPromise(res)) {\r\n res.catch(err => {\r\n handleError(err, instance, type);\r\n });\r\n }\r\n return res;\r\n }\r\n const values = [];\r\n for (let i = 0; i < fn.length; i++) {\r\n values.push(callWithAsyncErrorHandling(fn[i], instance, type, args));\r\n }\r\n return values;\r\n}\r\nfunction handleError(err, instance, type, throwInDev = true) {\r\n const contextVNode = instance ? instance.vnode : null;\r\n if (instance) {\r\n let cur = instance.parent;\r\n // the exposed instance is the render proxy to keep it consistent with 2.x\r\n const exposedInstance = instance.proxy;\r\n // in production the hook receives only the error code\r\n const errorInfo = (process.env.NODE_ENV !== 'production') ? ErrorTypeStrings[type] : type;\r\n while (cur) {\r\n const errorCapturedHooks = cur.ec;\r\n if (errorCapturedHooks) {\r\n for (let i = 0; i < errorCapturedHooks.length; i++) {\r\n if (errorCapturedHooks[i](err, exposedInstance, errorInfo) === false) {\r\n return;\r\n }\r\n }\r\n }\r\n cur = cur.parent;\r\n }\r\n // app-level handling\r\n const appErrorHandler = instance.appContext.config.errorHandler;\r\n if (appErrorHandler) {\r\n callWithErrorHandling(appErrorHandler, null, 10 /* APP_ERROR_HANDLER */, [err, exposedInstance, errorInfo]);\r\n return;\r\n }\r\n }\r\n logError(err, type, contextVNode, throwInDev);\r\n}\r\nfunction logError(err, type, contextVNode, throwInDev = true) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const info = ErrorTypeStrings[type];\r\n if (contextVNode) {\r\n pushWarningContext(contextVNode);\r\n }\r\n warn(`Unhandled error${info ? ` during execution of ${info}` : ``}`);\r\n if (contextVNode) {\r\n popWarningContext();\r\n }\r\n // crash in dev by default so it's more noticeable\r\n if (throwInDev) {\r\n throw err;\r\n }\r\n else {\r\n console.error(err);\r\n }\r\n }\r\n else {\r\n // recover in prod to reduce the impact on end-user\r\n console.error(err);\r\n }\r\n}\n\nlet isFlushing = false;\r\nlet isFlushPending = false;\r\nconst queue = [];\r\nlet flushIndex = 0;\r\nconst pendingPreFlushCbs = [];\r\nlet activePreFlushCbs = null;\r\nlet preFlushIndex = 0;\r\nconst pendingPostFlushCbs = [];\r\nlet activePostFlushCbs = null;\r\nlet postFlushIndex = 0;\r\nconst resolvedPromise = /*#__PURE__*/ Promise.resolve();\r\nlet currentFlushPromise = null;\r\nlet currentPreFlushParentJob = null;\r\nconst RECURSION_LIMIT = 100;\r\nfunction nextTick(fn) {\r\n const p = currentFlushPromise || resolvedPromise;\r\n return fn ? p.then(this ? fn.bind(this) : fn) : p;\r\n}\r\n// #2768\r\n// Use binary-search to find a suitable position in the queue,\r\n// so that the queue maintains the increasing order of job's id,\r\n// which can prevent the job from being skipped and also can avoid repeated patching.\r\nfunction findInsertionIndex(id) {\r\n // the start index should be `flushIndex + 1`\r\n let start = flushIndex + 1;\r\n let end = queue.length;\r\n while (start < end) {\r\n const middle = (start + end) >>> 1;\r\n const middleJobId = getId(queue[middle]);\r\n middleJobId < id ? (start = middle + 1) : (end = middle);\r\n }\r\n return start;\r\n}\r\nfunction queueJob(job) {\r\n // the dedupe search uses the startIndex argument of Array.includes()\r\n // by default the search index includes the current job that is being run\r\n // so it cannot recursively trigger itself again.\r\n // if the job is a watch() callback, the search will start with a +1 index to\r\n // allow it recursively trigger itself - it is the user's responsibility to\r\n // ensure it doesn't end up in an infinite loop.\r\n if ((!queue.length ||\r\n !queue.includes(job, isFlushing && job.allowRecurse ? flushIndex + 1 : flushIndex)) &&\r\n job !== currentPreFlushParentJob) {\r\n if (job.id == null) {\r\n queue.push(job);\r\n }\r\n else {\r\n queue.splice(findInsertionIndex(job.id), 0, job);\r\n }\r\n queueFlush();\r\n }\r\n}\r\nfunction queueFlush() {\r\n if (!isFlushing && !isFlushPending) {\r\n isFlushPending = true;\r\n currentFlushPromise = resolvedPromise.then(flushJobs);\r\n }\r\n}\r\nfunction invalidateJob(job) {\r\n const i = queue.indexOf(job);\r\n if (i > flushIndex) {\r\n queue.splice(i, 1);\r\n }\r\n}\r\nfunction queueCb(cb, activeQueue, pendingQueue, index) {\r\n if (!isArray(cb)) {\r\n if (!activeQueue ||\r\n !activeQueue.includes(cb, cb.allowRecurse ? index + 1 : index)) {\r\n pendingQueue.push(cb);\r\n }\r\n }\r\n else {\r\n // if cb is an array, it is a component lifecycle hook which can only be\r\n // triggered by a job, which is already deduped in the main queue, so\r\n // we can skip duplicate check here to improve perf\r\n pendingQueue.push(...cb);\r\n }\r\n queueFlush();\r\n}\r\nfunction queuePreFlushCb(cb) {\r\n queueCb(cb, activePreFlushCbs, pendingPreFlushCbs, preFlushIndex);\r\n}\r\nfunction queuePostFlushCb(cb) {\r\n queueCb(cb, activePostFlushCbs, pendingPostFlushCbs, postFlushIndex);\r\n}\r\nfunction flushPreFlushCbs(seen, parentJob = null) {\r\n if (pendingPreFlushCbs.length) {\r\n currentPreFlushParentJob = parentJob;\r\n activePreFlushCbs = [...new Set(pendingPreFlushCbs)];\r\n pendingPreFlushCbs.length = 0;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n for (preFlushIndex = 0; preFlushIndex < activePreFlushCbs.length; preFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePreFlushCbs[preFlushIndex])) {\r\n continue;\r\n }\r\n activePreFlushCbs[preFlushIndex]();\r\n }\r\n activePreFlushCbs = null;\r\n preFlushIndex = 0;\r\n currentPreFlushParentJob = null;\r\n // recursively flush until it drains\r\n flushPreFlushCbs(seen, parentJob);\r\n }\r\n}\r\nfunction flushPostFlushCbs(seen) {\r\n // flush any pre cbs queued during the flush (e.g. pre watchers)\r\n flushPreFlushCbs();\r\n if (pendingPostFlushCbs.length) {\r\n const deduped = [...new Set(pendingPostFlushCbs)];\r\n pendingPostFlushCbs.length = 0;\r\n // #1947 already has active queue, nested flushPostFlushCbs call\r\n if (activePostFlushCbs) {\r\n activePostFlushCbs.push(...deduped);\r\n return;\r\n }\r\n activePostFlushCbs = deduped;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n activePostFlushCbs.sort((a, b) => getId(a) - getId(b));\r\n for (postFlushIndex = 0; postFlushIndex < activePostFlushCbs.length; postFlushIndex++) {\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n checkRecursiveUpdates(seen, activePostFlushCbs[postFlushIndex])) {\r\n continue;\r\n }\r\n activePostFlushCbs[postFlushIndex]();\r\n }\r\n activePostFlushCbs = null;\r\n postFlushIndex = 0;\r\n }\r\n}\r\nconst getId = (job) => job.id == null ? Infinity : job.id;\r\nfunction flushJobs(seen) {\r\n isFlushPending = false;\r\n isFlushing = true;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n seen = seen || new Map();\r\n }\r\n flushPreFlushCbs(seen);\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child so its render effect will have smaller\r\n // priority number)\r\n // 2. If a component is unmounted during a parent component's update,\r\n // its update can be skipped.\r\n queue.sort((a, b) => getId(a) - getId(b));\r\n // conditional usage of checkRecursiveUpdate must be determined out of\r\n // try ... catch block since Rollup by default de-optimizes treeshaking\r\n // inside try-catch. This can leave all warning code unshaked. Although\r\n // they would get eventually shaken by a minifier like terser, some minifiers\r\n // would fail to do that (e.g. https://github.com/evanw/esbuild/issues/1610)\r\n const check = (process.env.NODE_ENV !== 'production')\r\n ? (job) => checkRecursiveUpdates(seen, job)\r\n : NOOP;\r\n try {\r\n for (flushIndex = 0; flushIndex < queue.length; flushIndex++) {\r\n const job = queue[flushIndex];\r\n if (job && job.active !== false) {\r\n if ((process.env.NODE_ENV !== 'production') && check(job)) {\r\n continue;\r\n }\r\n // console.log(`running:`, job.id)\r\n callWithErrorHandling(job, null, 14 /* SCHEDULER */);\r\n }\r\n }\r\n }\r\n finally {\r\n flushIndex = 0;\r\n queue.length = 0;\r\n flushPostFlushCbs(seen);\r\n isFlushing = false;\r\n currentFlushPromise = null;\r\n // some postFlushCb queued jobs!\r\n // keep flushing until it drains.\r\n if (queue.length ||\r\n pendingPreFlushCbs.length ||\r\n pendingPostFlushCbs.length) {\r\n flushJobs(seen);\r\n }\r\n }\r\n}\r\nfunction checkRecursiveUpdates(seen, fn) {\r\n if (!seen.has(fn)) {\r\n seen.set(fn, 1);\r\n }\r\n else {\r\n const count = seen.get(fn);\r\n if (count > RECURSION_LIMIT) {\r\n const instance = fn.ownerInstance;\r\n const componentName = instance && getComponentName(instance.type);\r\n warn(`Maximum recursive updates exceeded${componentName ? ` in component <${componentName}>` : ``}. ` +\r\n `This means you have a reactive effect that is mutating its own ` +\r\n `dependencies and thus recursively triggering itself. Possible sources ` +\r\n `include component template, render function, updated hook or ` +\r\n `watcher source function.`);\r\n return true;\r\n }\r\n else {\r\n seen.set(fn, count + 1);\r\n }\r\n }\r\n}\n\n/* eslint-disable no-restricted-globals */\r\nlet isHmrUpdating = false;\r\nconst hmrDirtyComponents = new Set();\r\n// Expose the HMR runtime on the global object\r\n// This makes it entirely tree-shakable without polluting the exports and makes\r\n// it easier to be used in toolings like vue-loader\r\n// Note: for a component to be eligible for HMR it also needs the __hmrId option\r\n// to be set so that its instances can be registered / removed.\r\nif ((process.env.NODE_ENV !== 'production')) {\r\n getGlobalThis().__VUE_HMR_RUNTIME__ = {\r\n createRecord: tryWrap(createRecord),\r\n rerender: tryWrap(rerender),\r\n reload: tryWrap(reload)\r\n };\r\n}\r\nconst map = new Map();\r\nfunction registerHMR(instance) {\r\n const id = instance.type.__hmrId;\r\n let record = map.get(id);\r\n if (!record) {\r\n createRecord(id, instance.type);\r\n record = map.get(id);\r\n }\r\n record.instances.add(instance);\r\n}\r\nfunction unregisterHMR(instance) {\r\n map.get(instance.type.__hmrId).instances.delete(instance);\r\n}\r\nfunction createRecord(id, initialDef) {\r\n if (map.has(id)) {\r\n return false;\r\n }\r\n map.set(id, {\r\n initialDef: normalizeClassComponent(initialDef),\r\n instances: new Set()\r\n });\r\n return true;\r\n}\r\nfunction normalizeClassComponent(component) {\r\n return isClassComponent(component) ? component.__vccOpts : component;\r\n}\r\nfunction rerender(id, newRender) {\r\n const record = map.get(id);\r\n if (!record) {\r\n return;\r\n }\r\n // update initial record (for not-yet-rendered component)\r\n record.initialDef.render = newRender;\r\n [...record.instances].forEach(instance => {\r\n if (newRender) {\r\n instance.render = newRender;\r\n normalizeClassComponent(instance.type).render = newRender;\r\n }\r\n instance.renderCache = [];\r\n // this flag forces child components with slot content to update\r\n isHmrUpdating = true;\r\n instance.update();\r\n isHmrUpdating = false;\r\n });\r\n}\r\nfunction reload(id, newComp) {\r\n const record = map.get(id);\r\n if (!record)\r\n return;\r\n newComp = normalizeClassComponent(newComp);\r\n // update initial def (for not-yet-rendered components)\r\n updateComponentDef(record.initialDef, newComp);\r\n // create a snapshot which avoids the set being mutated during updates\r\n const instances = [...record.instances];\r\n for (const instance of instances) {\r\n const oldComp = normalizeClassComponent(instance.type);\r\n if (!hmrDirtyComponents.has(oldComp)) {\r\n // 1. Update existing comp definition to match new one\r\n if (oldComp !== record.initialDef) {\r\n updateComponentDef(oldComp, newComp);\r\n }\r\n // 2. mark definition dirty. This forces the renderer to replace the\r\n // component on patch.\r\n hmrDirtyComponents.add(oldComp);\r\n }\r\n // 3. invalidate options resolution cache\r\n instance.appContext.optionsCache.delete(instance.type);\r\n // 4. actually update\r\n if (instance.ceReload) {\r\n // custom element\r\n hmrDirtyComponents.add(oldComp);\r\n instance.ceReload(newComp.styles);\r\n hmrDirtyComponents.delete(oldComp);\r\n }\r\n else if (instance.parent) {\r\n // 4. Force the parent instance to re-render. This will cause all updated\r\n // components to be unmounted and re-mounted. Queue the update so that we\r\n // don't end up forcing the same parent to re-render multiple times.\r\n queueJob(instance.parent.update);\r\n // instance is the inner component of an async custom element\r\n // invoke to reset styles\r\n if (instance.parent.type.__asyncLoader &&\r\n instance.parent.ceReload) {\r\n instance.parent.ceReload(newComp.styles);\r\n }\r\n }\r\n else if (instance.appContext.reload) {\r\n // root instance mounted via createApp() has a reload method\r\n instance.appContext.reload();\r\n }\r\n else if (typeof window !== 'undefined') {\r\n // root instance inside tree created via raw render(). Force reload.\r\n window.location.reload();\r\n }\r\n else {\r\n console.warn('[HMR] Root or manually mounted instance modified. Full reload required.');\r\n }\r\n }\r\n // 5. make sure to cleanup dirty hmr components after update\r\n queuePostFlushCb(() => {\r\n for (const instance of instances) {\r\n hmrDirtyComponents.delete(normalizeClassComponent(instance.type));\r\n }\r\n });\r\n}\r\nfunction updateComponentDef(oldComp, newComp) {\r\n extend(oldComp, newComp);\r\n for (const key in oldComp) {\r\n if (key !== '__file' && !(key in newComp)) {\r\n delete oldComp[key];\r\n }\r\n }\r\n}\r\nfunction tryWrap(fn) {\r\n return (id, arg) => {\r\n try {\r\n return fn(id, arg);\r\n }\r\n catch (e) {\r\n console.error(e);\r\n console.warn(`[HMR] Something went wrong during Vue component hot-reload. ` +\r\n `Full reload required.`);\r\n }\r\n };\r\n}\n\nlet devtools;\r\nlet buffer = [];\r\nlet devtoolsNotInstalled = false;\r\nfunction emit(event, ...args) {\r\n if (devtools) {\r\n devtools.emit(event, ...args);\r\n }\r\n else if (!devtoolsNotInstalled) {\r\n buffer.push({ event, args });\r\n }\r\n}\r\nfunction setDevtoolsHook(hook, target) {\r\n var _a, _b;\r\n devtools = hook;\r\n if (devtools) {\r\n devtools.enabled = true;\r\n buffer.forEach(({ event, args }) => devtools.emit(event, ...args));\r\n buffer = [];\r\n }\r\n else if (\r\n // handle late devtools injection - only do this if we are in an actual\r\n // browser environment to avoid the timer handle stalling test runner exit\r\n // (#4815)\r\n typeof window !== 'undefined' &&\r\n // some envs mock window but not fully\r\n window.HTMLElement &&\r\n // also exclude jsdom\r\n !((_b = (_a = window.navigator) === null || _a === void 0 ? void 0 : _a.userAgent) === null || _b === void 0 ? void 0 : _b.includes('jsdom'))) {\r\n const replay = (target.__VUE_DEVTOOLS_HOOK_REPLAY__ =\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ || []);\r\n replay.push((newHook) => {\r\n setDevtoolsHook(newHook, target);\r\n });\r\n // clear buffer after 3s - the user probably doesn't have devtools installed\r\n // at all, and keeping the buffer will cause memory leaks (#4738)\r\n setTimeout(() => {\r\n if (!devtools) {\r\n target.__VUE_DEVTOOLS_HOOK_REPLAY__ = null;\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n }, 3000);\r\n }\r\n else {\r\n // non-browser env, assume not installed\r\n devtoolsNotInstalled = true;\r\n buffer = [];\r\n }\r\n}\r\nfunction devtoolsInitApp(app, version) {\r\n emit(\"app:init\" /* APP_INIT */, app, version, {\r\n Fragment,\r\n Text,\r\n Comment,\r\n Static\r\n });\r\n}\r\nfunction devtoolsUnmountApp(app) {\r\n emit(\"app:unmount\" /* APP_UNMOUNT */, app);\r\n}\r\nconst devtoolsComponentAdded = /*#__PURE__*/ createDevtoolsComponentHook(\"component:added\" /* COMPONENT_ADDED */);\r\nconst devtoolsComponentUpdated = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:updated\" /* COMPONENT_UPDATED */);\r\nconst devtoolsComponentRemoved = \r\n/*#__PURE__*/ createDevtoolsComponentHook(\"component:removed\" /* COMPONENT_REMOVED */);\r\nfunction createDevtoolsComponentHook(hook) {\r\n return (component) => {\r\n emit(hook, component.appContext.app, component.uid, component.parent ? component.parent.uid : undefined, component);\r\n };\r\n}\r\nconst devtoolsPerfStart = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:start\" /* PERFORMANCE_START */);\r\nconst devtoolsPerfEnd = /*#__PURE__*/ createDevtoolsPerformanceHook(\"perf:end\" /* PERFORMANCE_END */);\r\nfunction createDevtoolsPerformanceHook(hook) {\r\n return (component, type, time) => {\r\n emit(hook, component.appContext.app, component.uid, component, type, time);\r\n };\r\n}\r\nfunction devtoolsComponentEmit(component, event, params) {\r\n emit(\"component:emit\" /* COMPONENT_EMIT */, component.appContext.app, component, event, params);\r\n}\n\nfunction emit$1(instance, event, ...rawArgs) {\r\n if (instance.isUnmounted)\r\n return;\r\n const props = instance.vnode.props || EMPTY_OBJ;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const { emitsOptions, propsOptions: [propsOptions] } = instance;\r\n if (emitsOptions) {\r\n if (!(event in emitsOptions) &&\r\n !(false )) {\r\n if (!propsOptions || !(toHandlerKey(event) in propsOptions)) {\r\n warn(`Component emitted event \"${event}\" but it is neither declared in ` +\r\n `the emits option nor as an \"${toHandlerKey(event)}\" prop.`);\r\n }\r\n }\r\n else {\r\n const validator = emitsOptions[event];\r\n if (isFunction(validator)) {\r\n const isValid = validator(...rawArgs);\r\n if (!isValid) {\r\n warn(`Invalid event arguments: event validation failed for event \"${event}\".`);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n let args = rawArgs;\r\n const isModelListener = event.startsWith('update:');\r\n // for v-model update:xxx events, apply modifiers on args\r\n const modelArg = isModelListener && event.slice(7);\r\n if (modelArg && modelArg in props) {\r\n const modifiersKey = `${modelArg === 'modelValue' ? 'model' : modelArg}Modifiers`;\r\n const { number, trim } = props[modifiersKey] || EMPTY_OBJ;\r\n if (trim) {\r\n args = rawArgs.map(a => a.trim());\r\n }\r\n if (number) {\r\n args = rawArgs.map(toNumber);\r\n }\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentEmit(instance, event, args);\r\n }\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n const lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && props[toHandlerKey(lowerCaseEvent)]) {\r\n warn(`Event \"${lowerCaseEvent}\" is emitted in component ` +\r\n `${formatComponentName(instance, instance.type)} but the handler is registered for \"${event}\". ` +\r\n `Note that HTML attributes are case-insensitive and you cannot use ` +\r\n `v-on to listen to camelCase events when using in-DOM templates. ` +\r\n `You should probably use \"${hyphenate(event)}\" instead of \"${event}\".`);\r\n }\r\n }\r\n let handlerName;\r\n let handler = props[(handlerName = toHandlerKey(event))] ||\r\n // also try camelCase event handler (#2249)\r\n props[(handlerName = toHandlerKey(camelize(event)))];\r\n // for v-model update:xxx events, also trigger kebab-case equivalent\r\n // for props passed via kebab-case\r\n if (!handler && isModelListener) {\r\n handler = props[(handlerName = toHandlerKey(hyphenate(event)))];\r\n }\r\n if (handler) {\r\n callWithAsyncErrorHandling(handler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n const onceHandler = props[handlerName + `Once`];\r\n if (onceHandler) {\r\n if (!instance.emitted) {\r\n instance.emitted = {};\r\n }\r\n else if (instance.emitted[handlerName]) {\r\n return;\r\n }\r\n instance.emitted[handlerName] = true;\r\n callWithAsyncErrorHandling(onceHandler, instance, 6 /* COMPONENT_EVENT_HANDLER */, args);\r\n }\r\n}\r\nfunction normalizeEmitsOptions(comp, appContext, asMixin = false) {\r\n const cache = appContext.emitsCache;\r\n const cached = cache.get(comp);\r\n if (cached !== undefined) {\r\n return cached;\r\n }\r\n const raw = comp.emits;\r\n let normalized = {};\r\n // apply mixin/extends props\r\n let hasExtends = false;\r\n if (__VUE_OPTIONS_API__ && !isFunction(comp)) {\r\n const extendEmits = (raw) => {\r\n const normalizedFromExtend = normalizeEmitsOptions(raw, appContext, true);\r\n if (normalizedFromExtend) {\r\n hasExtends = true;\r\n extend(normalized, normalizedFromExtend);\r\n }\r\n };\r\n if (!asMixin && appContext.mixins.length) {\r\n appContext.mixins.forEach(extendEmits);\r\n }\r\n if (comp.extends) {\r\n extendEmits(comp.extends);\r\n }\r\n if (comp.mixins) {\r\n comp.mixins.forEach(extendEmits);\r\n }\r\n }\r\n if (!raw && !hasExtends) {\r\n cache.set(comp, null);\r\n return null;\r\n }\r\n if (isArray(raw)) {\r\n raw.forEach(key => (normalized[key] = null));\r\n }\r\n else {\r\n extend(normalized, raw);\r\n }\r\n cache.set(comp, normalized);\r\n return normalized;\r\n}\r\n// Check if an incoming prop key is a declared emit event listener.\r\n// e.g. With `emits: { click: null }`, props named `onClick` and `onclick` are\r\n// both considered matched listeners.\r\nfunction isEmitListener(options, key) {\r\n if (!options || !isOn(key)) {\r\n return false;\r\n }\r\n key = key.slice(2).replace(/Once$/, '');\r\n return (hasOwn(options, key[0].toLowerCase() + key.slice(1)) ||\r\n hasOwn(options, hyphenate(key)) ||\r\n hasOwn(options, key));\r\n}\n\n/**\r\n * mark the current rendering instance for asset resolution (e.g.\r\n * resolveComponent, resolveDirective) during render\r\n */\r\nlet currentRenderingInstance = null;\r\nlet currentScopeId = null;\r\n/**\r\n * Note: rendering calls maybe nested. The function returns the parent rendering\r\n * instance if present, which should be restored after the render is done:\r\n *\r\n * ```js\r\n * const prev = setCurrentRenderingInstance(i)\r\n * // ...render\r\n * setCurrentRenderingInstance(prev)\r\n * ```\r\n */\r\nfunction setCurrentRenderingInstance(instance) {\r\n const prev = currentRenderingInstance;\r\n currentRenderingInstance = instance;\r\n currentScopeId = (instance && instance.type.__scopeId) || null;\r\n return prev;\r\n}\r\n/**\r\n * Set scope id when creating hoisted vnodes.\r\n * @private compiler helper\r\n */\r\nfunction pushScopeId(id) {\r\n currentScopeId = id;\r\n}\r\n/**\r\n * Technically we no longer need this after 3.0.8 but we need to keep the same\r\n * API for backwards compat w/ code generated by compilers.\r\n * @private\r\n */\r\nfunction popScopeId() {\r\n currentScopeId = null;\r\n}\r\n/**\r\n * Only for backwards compat\r\n * @private\r\n */\r\nconst withScopeId = (_id) => withCtx;\r\n/**\r\n * Wrap a slot function to memoize current rendering instance\r\n * @private compiler helper\r\n */\r\nfunction withCtx(fn, ctx = currentRenderingInstance, isNonScopedSlot // false only\r\n) {\r\n if (!ctx)\r\n return fn;\r\n // already normalized\r\n if (fn._n) {\r\n return fn;\r\n }\r\n const renderFnWithContext = (...args) => {\r\n // If a user calls a compiled slot inside a template expression (#1745), it\r\n // can mess up block tracking, so by default we disable block tracking and\r\n // force bail out when invoking a compiled slot (indicated by the ._d flag).\r\n // This isn't necessary if rendering a compiled ``, so we flip the\r\n // ._d flag off when invoking the wrapped fn inside `renderSlot`.\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(-1);\r\n }\r\n const prevInstance = setCurrentRenderingInstance(ctx);\r\n const res = fn(...args);\r\n setCurrentRenderingInstance(prevInstance);\r\n if (renderFnWithContext._d) {\r\n setBlockTracking(1);\r\n }\r\n if ((process.env.NODE_ENV !== 'production') || __VUE_PROD_DEVTOOLS__) {\r\n devtoolsComponentUpdated(ctx);\r\n }\r\n return res;\r\n };\r\n // mark normalized to avoid duplicated wrapping\r\n renderFnWithContext._n = true;\r\n // mark this as compiled by default\r\n // this is used in vnode.ts -> normalizeChildren() to set the slot\r\n // rendering flag.\r\n renderFnWithContext._c = true;\r\n // disable block tracking by default\r\n renderFnWithContext._d = true;\r\n return renderFnWithContext;\r\n}\n\n/**\r\n * dev only flag to track whether $attrs was used during render.\r\n * If $attrs was used during render then the warning for failed attrs\r\n * fallthrough can be suppressed.\r\n */\r\nlet accessedAttrs = false;\r\nfunction markAttrsAccessed() {\r\n accessedAttrs = true;\r\n}\r\nfunction renderComponentRoot(instance) {\r\n const { type: Component, vnode, proxy, withProxy, props, propsOptions: [propsOptions], slots, attrs, emit, render, renderCache, data, setupState, ctx, inheritAttrs } = instance;\r\n let result;\r\n let fallthroughAttrs;\r\n const prev = setCurrentRenderingInstance(instance);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n accessedAttrs = false;\r\n }\r\n try {\r\n if (vnode.shapeFlag & 4 /* STATEFUL_COMPONENT */) {\r\n // withProxy is a proxy with a different `has` trap only for\r\n // runtime-compiled render functions using `with` block.\r\n const proxyToUse = withProxy || proxy;\r\n result = normalizeVNode(render.call(proxyToUse, proxyToUse, renderCache, props, setupState, data, ctx));\r\n fallthroughAttrs = attrs;\r\n }\r\n else {\r\n // functional\r\n const render = Component;\r\n // in dev, mark attrs accessed if optional props (attrs === props)\r\n if ((process.env.NODE_ENV !== 'production') && attrs === props) {\r\n markAttrsAccessed();\r\n }\r\n result = normalizeVNode(render.length > 1\r\n ? render(props, (process.env.NODE_ENV !== 'production')\r\n ? {\r\n get attrs() {\r\n markAttrsAccessed();\r\n return attrs;\r\n },\r\n slots,\r\n emit\r\n }\r\n : { attrs, slots, emit })\r\n : render(props, null /* we know it doesn't need it */));\r\n fallthroughAttrs = Component.props\r\n ? attrs\r\n : getFunctionalFallthrough(attrs);\r\n }\r\n }\r\n catch (err) {\r\n blockStack.length = 0;\r\n handleError(err, instance, 1 /* RENDER_FUNCTION */);\r\n result = createVNode(Comment);\r\n }\r\n // attr merging\r\n // in dev mode, comments are preserved, and it's possible for a template\r\n // to have comments along side the root element which makes it a fragment\r\n let root = result;\r\n let setRoot = undefined;\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n result.patchFlag > 0 &&\r\n result.patchFlag & 2048 /* DEV_ROOT_FRAGMENT */) {\r\n [root, setRoot] = getChildRoot(result);\r\n }\r\n if (fallthroughAttrs && inheritAttrs !== false) {\r\n const keys = Object.keys(fallthroughAttrs);\r\n const { shapeFlag } = root;\r\n if (keys.length) {\r\n if (shapeFlag & (1 /* ELEMENT */ | 6 /* COMPONENT */)) {\r\n if (propsOptions && keys.some(isModelListener)) {\r\n // If a v-model listener (onUpdate:xxx) has a corresponding declared\r\n // prop, it indicates this component expects to handle v-model and\r\n // it should not fallthrough.\r\n // related: #1543, #1643, #1989\r\n fallthroughAttrs = filterModelListeners(fallthroughAttrs, propsOptions);\r\n }\r\n root = cloneVNode(root, fallthroughAttrs);\r\n }\r\n else if ((process.env.NODE_ENV !== 'production') && !accessedAttrs && root.type !== Comment) {\r\n const allAttrs = Object.keys(attrs);\r\n const eventAttrs = [];\r\n const extraAttrs = [];\r\n for (let i = 0, l = allAttrs.length; i < l; i++) {\r\n const key = allAttrs[i];\r\n if (isOn(key)) {\r\n // ignore v-model handlers when they fail to fallthrough\r\n if (!isModelListener(key)) {\r\n // remove `on`, lowercase first letter to reflect event casing\r\n // accurately\r\n eventAttrs.push(key[2].toLowerCase() + key.slice(3));\r\n }\r\n }\r\n else {\r\n extraAttrs.push(key);\r\n }\r\n }\r\n if (extraAttrs.length) {\r\n warn(`Extraneous non-props attributes (` +\r\n `${extraAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes.`);\r\n }\r\n if (eventAttrs.length) {\r\n warn(`Extraneous non-emits event listeners (` +\r\n `${eventAttrs.join(', ')}) ` +\r\n `were passed to component but could not be automatically inherited ` +\r\n `because component renders fragment or text root nodes. ` +\r\n `If the listener is intended to be a component custom event listener only, ` +\r\n `declare it using the \"emits\" option.`);\r\n }\r\n }\r\n }\r\n }\r\n // inherit directives\r\n if (vnode.dirs) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Runtime directive used on component with non-element root node. ` +\r\n `The directives will not function as intended.`);\r\n }\r\n // clone before mutating since the root may be a hoisted vnode\r\n root = cloneVNode(root);\r\n root.dirs = root.dirs ? root.dirs.concat(vnode.dirs) : vnode.dirs;\r\n }\r\n // inherit transition data\r\n if (vnode.transition) {\r\n if ((process.env.NODE_ENV !== 'production') && !isElementRoot(root)) {\r\n warn(`Component inside renders non-element root node ` +\r\n `that cannot be animated.`);\r\n }\r\n root.transition = vnode.transition;\r\n }\r\n if ((process.env.NODE_ENV !== 'production') && setRoot) {\r\n setRoot(root);\r\n }\r\n else {\r\n result = root;\r\n }\r\n setCurrentRenderingInstance(prev);\r\n return result;\r\n}\r\n/**\r\n * dev only\r\n * In dev mode, template root level comments are rendered, which turns the\r\n * template into a fragment root, but we need to locate the single element\r\n * root for attrs and scope id processing.\r\n */\r\nconst getChildRoot = (vnode) => {\r\n const rawChildren = vnode.children;\r\n const dynamicChildren = vnode.dynamicChildren;\r\n const childRoot = filterSingleRoot(rawChildren);\r\n if (!childRoot) {\r\n return [vnode, undefined];\r\n }\r\n const index = rawChildren.indexOf(childRoot);\r\n const dynamicIndex = dynamicChildren ? dynamicChildren.indexOf(childRoot) : -1;\r\n const setRoot = (updatedRoot) => {\r\n rawChildren[index] = updatedRoot;\r\n if (dynamicChildren) {\r\n if (dynamicIndex > -1) {\r\n dynamicChildren[dynamicIndex] = updatedRoot;\r\n }\r\n else if (updatedRoot.patchFlag > 0) {\r\n vnode.dynamicChildren = [...dynamicChildren, updatedRoot];\r\n }\r\n }\r\n };\r\n return [normalizeVNode(childRoot), setRoot];\r\n};\r\nfunction filterSingleRoot(children) {\r\n let singleRoot;\r\n for (let i = 0; i < children.length; i++) {\r\n const child = children[i];\r\n if (isVNode(child)) {\r\n // ignore user comment\r\n if (child.type !== Comment || child.children === 'v-if') {\r\n if (singleRoot) {\r\n // has more than 1 non-comment child, return now\r\n return;\r\n }\r\n else {\r\n singleRoot = child;\r\n }\r\n }\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n return singleRoot;\r\n}\r\nconst getFunctionalFallthrough = (attrs) => {\r\n let res;\r\n for (const key in attrs) {\r\n if (key === 'class' || key === 'style' || isOn(key)) {\r\n (res || (res = {}))[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst filterModelListeners = (attrs, props) => {\r\n const res = {};\r\n for (const key in attrs) {\r\n if (!isModelListener(key) || !(key.slice(9) in props)) {\r\n res[key] = attrs[key];\r\n }\r\n }\r\n return res;\r\n};\r\nconst isElementRoot = (vnode) => {\r\n return (vnode.shapeFlag & (6 /* COMPONENT */ | 1 /* ELEMENT */) ||\r\n vnode.type === Comment // potential v-if branch switch\r\n );\r\n};\r\nfunction shouldUpdateComponent(prevVNode, nextVNode, optimized) {\r\n const { props: prevProps, children: prevChildren, component } = prevVNode;\r\n const { props: nextProps, children: nextChildren, patchFlag } = nextVNode;\r\n const emits = component.emitsOptions;\r\n // Parent component's render function was hot-updated. Since this may have\r\n // caused the child component's slots content to have changed, we need to\r\n // force the child to update as well.\r\n if ((process.env.NODE_ENV !== 'production') && (prevChildren || nextChildren) && isHmrUpdating) {\r\n return true;\r\n }\r\n // force child update for runtime directive or transition on component vnode.\r\n if (nextVNode.dirs || nextVNode.transition) {\r\n return true;\r\n }\r\n if (optimized && patchFlag >= 0) {\r\n if (patchFlag & 1024 /* DYNAMIC_SLOTS */) {\r\n // slot content that references values that might have changed,\r\n // e.g. in a v-for\r\n return true;\r\n }\r\n if (patchFlag & 16 /* FULL_PROPS */) {\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n // presence of this flag indicates props are always non-null\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n else if (patchFlag & 8 /* PROPS */) {\r\n const dynamicProps = nextVNode.dynamicProps;\r\n for (let i = 0; i < dynamicProps.length; i++) {\r\n const key = dynamicProps[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emits, key)) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n // this path is only taken by manually written render functions\r\n // so presence of any children leads to a forced update\r\n if (prevChildren || nextChildren) {\r\n if (!nextChildren || !nextChildren.$stable) {\r\n return true;\r\n }\r\n }\r\n if (prevProps === nextProps) {\r\n return false;\r\n }\r\n if (!prevProps) {\r\n return !!nextProps;\r\n }\r\n if (!nextProps) {\r\n return true;\r\n }\r\n return hasPropsChanged(prevProps, nextProps, emits);\r\n }\r\n return false;\r\n}\r\nfunction hasPropsChanged(prevProps, nextProps, emitsOptions) {\r\n const nextKeys = Object.keys(nextProps);\r\n if (nextKeys.length !== Object.keys(prevProps).length) {\r\n return true;\r\n }\r\n for (let i = 0; i < nextKeys.length; i++) {\r\n const key = nextKeys[i];\r\n if (nextProps[key] !== prevProps[key] &&\r\n !isEmitListener(emitsOptions, key)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\nfunction updateHOCHostEl({ vnode, parent }, el // HostNode\r\n) {\r\n while (parent && parent.subTree === vnode) {\r\n (vnode = parent.vnode).el = el;\r\n parent = parent.parent;\r\n }\r\n}\n\nconst isSuspense = (type) => type.__isSuspense;\r\n// Suspense exposes a component-like API, and is treated like a component\r\n// in the compiler, but internally it's a special built-in type that hooks\r\n// directly into the renderer.\r\nconst SuspenseImpl = {\r\n name: 'Suspense',\r\n // In order to make Suspense tree-shakable, we need to avoid importing it\r\n // directly in the renderer. The renderer checks for the __isSuspense flag\r\n // on a vnode's type and calls the `process` method, passing in renderer\r\n // internals.\r\n __isSuspense: true,\r\n process(n1, n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, \r\n // platform-specific impl passed from renderer\r\n rendererInternals) {\r\n if (n1 == null) {\r\n mountSuspense(n2, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n else {\r\n patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, rendererInternals);\r\n }\r\n },\r\n hydrate: hydrateSuspense,\r\n create: createSuspenseBoundary,\r\n normalize: normalizeSuspenseChildren\r\n};\r\n// Force-casted public typing for h and TSX props inference\r\nconst Suspense = (SuspenseImpl );\r\nfunction triggerEvent(vnode, name) {\r\n const eventListener = vnode.props && vnode.props[name];\r\n if (isFunction(eventListener)) {\r\n eventListener();\r\n }\r\n}\r\nfunction mountSuspense(vnode, container, anchor, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals) {\r\n const { p: patch, o: { createElement } } = rendererInternals;\r\n const hiddenContainer = createElement('div');\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals));\r\n // start mounting the content subtree in an off-dom container\r\n patch(null, (suspense.pendingBranch = vnode.ssContent), hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds);\r\n // now check if we have encountered any async deps\r\n if (suspense.deps > 0) {\r\n // has async\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onPending');\r\n triggerEvent(vnode, 'onFallback');\r\n // mount the fallback tree\r\n patch(null, vnode.ssFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds);\r\n setActiveBranch(suspense, vnode.ssFallback);\r\n }\r\n else {\r\n // Suspense has no async deps. Just resolve.\r\n suspense.resolve();\r\n }\r\n}\r\nfunction patchSuspense(n1, n2, container, anchor, parentComponent, isSVG, slotScopeIds, optimized, { p: patch, um: unmount, o: { createElement } }) {\r\n const suspense = (n2.suspense = n1.suspense);\r\n suspense.vnode = n2;\r\n n2.el = n1.el;\r\n const newBranch = n2.ssContent;\r\n const newFallback = n2.ssFallback;\r\n const { activeBranch, pendingBranch, isInFallback, isHydrating } = suspense;\r\n if (pendingBranch) {\r\n suspense.pendingBranch = newBranch;\r\n if (isSameVNodeType(newBranch, pendingBranch)) {\r\n // same root type but content may have changed.\r\n patch(pendingBranch, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else if (isInFallback) {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else {\r\n // toggled before pending tree is resolved\r\n suspense.pendingId++;\r\n if (isHydrating) {\r\n // if toggled before hydration is finished, the current DOM tree is\r\n // no longer valid. set it as the active branch so it will be unmounted\r\n // when resolved\r\n suspense.isHydrating = false;\r\n suspense.activeBranch = pendingBranch;\r\n }\r\n else {\r\n unmount(pendingBranch, parentComponent, suspense);\r\n }\r\n // increment pending ID. this is used to invalidate async callbacks\r\n // reset suspense state\r\n suspense.deps = 0;\r\n // discard effects from pending branch\r\n suspense.effects.length = 0;\r\n // discard previous container\r\n suspense.hiddenContainer = createElement('div');\r\n if (isInFallback) {\r\n // already in fallback state\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n else {\r\n patch(activeBranch, newFallback, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newFallback);\r\n }\r\n }\r\n else if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // toggled \"back\" to current active branch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n // force resolve\r\n suspense.resolve(true);\r\n }\r\n else {\r\n // switched to a 3rd branch\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n suspense.resolve();\r\n }\r\n }\r\n }\r\n }\r\n else {\r\n if (activeBranch && isSameVNodeType(newBranch, activeBranch)) {\r\n // root did not change, just normal patch\r\n patch(activeBranch, newBranch, container, anchor, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, newBranch);\r\n }\r\n else {\r\n // root node toggled\r\n // invoke @pending event\r\n triggerEvent(n2, 'onPending');\r\n // mount pending branch in off-dom container\r\n suspense.pendingBranch = newBranch;\r\n suspense.pendingId++;\r\n patch(null, newBranch, suspense.hiddenContainer, null, parentComponent, suspense, isSVG, slotScopeIds, optimized);\r\n if (suspense.deps <= 0) {\r\n // incoming branch has no async deps, resolve now.\r\n suspense.resolve();\r\n }\r\n else {\r\n const { timeout, pendingId } = suspense;\r\n if (timeout > 0) {\r\n setTimeout(() => {\r\n if (suspense.pendingId === pendingId) {\r\n suspense.fallback(newFallback);\r\n }\r\n }, timeout);\r\n }\r\n else if (timeout === 0) {\r\n suspense.fallback(newFallback);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nlet hasWarned = false;\r\nfunction createSuspenseBoundary(vnode, parent, parentComponent, container, hiddenContainer, anchor, isSVG, slotScopeIds, optimized, rendererInternals, isHydrating = false) {\r\n /* istanbul ignore if */\r\n if ((process.env.NODE_ENV !== 'production') && !false && !hasWarned) {\r\n hasWarned = true;\r\n // @ts-ignore `console.info` cannot be null error\r\n console[console.info ? 'info' : 'log'](` is an experimental feature and its API will likely change.`);\r\n }\r\n const { p: patch, m: move, um: unmount, n: next, o: { parentNode, remove } } = rendererInternals;\r\n const timeout = toNumber(vnode.props && vnode.props.timeout);\r\n const suspense = {\r\n vnode,\r\n parent,\r\n parentComponent,\r\n isSVG,\r\n container,\r\n hiddenContainer,\r\n anchor,\r\n deps: 0,\r\n pendingId: 0,\r\n timeout: typeof timeout === 'number' ? timeout : -1,\r\n activeBranch: null,\r\n pendingBranch: null,\r\n isInFallback: true,\r\n isHydrating,\r\n isUnmounted: false,\r\n effects: [],\r\n resolve(resume = false) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n if (!resume && !suspense.pendingBranch) {\r\n throw new Error(`suspense.resolve() is called without a pending branch.`);\r\n }\r\n if (suspense.isUnmounted) {\r\n throw new Error(`suspense.resolve() is called on an already unmounted suspense boundary.`);\r\n }\r\n }\r\n const { vnode, activeBranch, pendingBranch, pendingId, effects, parentComponent, container } = suspense;\r\n if (suspense.isHydrating) {\r\n suspense.isHydrating = false;\r\n }\r\n else if (!resume) {\r\n const delayEnter = activeBranch &&\r\n pendingBranch.transition &&\r\n pendingBranch.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = () => {\r\n if (pendingId === suspense.pendingId) {\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n };\r\n }\r\n // this is initial anchor on mount\r\n let { anchor } = suspense;\r\n // unmount current active tree\r\n if (activeBranch) {\r\n // if the fallback tree was mounted, it may have been moved\r\n // as part of a parent suspense. get the latest anchor for insertion\r\n anchor = next(activeBranch);\r\n unmount(activeBranch, parentComponent, suspense, true);\r\n }\r\n if (!delayEnter) {\r\n // move content from off-dom container to actual container\r\n move(pendingBranch, container, anchor, 0 /* ENTER */);\r\n }\r\n }\r\n setActiveBranch(suspense, pendingBranch);\r\n suspense.pendingBranch = null;\r\n suspense.isInFallback = false;\r\n // flush buffered effects\r\n // check if there is a pending parent suspense\r\n let parent = suspense.parent;\r\n let hasUnresolvedAncestor = false;\r\n while (parent) {\r\n if (parent.pendingBranch) {\r\n // found a pending parent suspense, merge buffered post jobs\r\n // into that parent\r\n parent.effects.push(...effects);\r\n hasUnresolvedAncestor = true;\r\n break;\r\n }\r\n parent = parent.parent;\r\n }\r\n // no pending parent suspense, flush all jobs\r\n if (!hasUnresolvedAncestor) {\r\n queuePostFlushCb(effects);\r\n }\r\n suspense.effects = [];\r\n // invoke @resolve event\r\n triggerEvent(vnode, 'onResolve');\r\n },\r\n fallback(fallbackVNode) {\r\n if (!suspense.pendingBranch) {\r\n return;\r\n }\r\n const { vnode, activeBranch, parentComponent, container, isSVG } = suspense;\r\n // invoke @fallback event\r\n triggerEvent(vnode, 'onFallback');\r\n const anchor = next(activeBranch);\r\n const mountFallback = () => {\r\n if (!suspense.isInFallback) {\r\n return;\r\n }\r\n // mount the fallback tree\r\n patch(null, fallbackVNode, container, anchor, parentComponent, null, // fallback tree will not have suspense context\r\n isSVG, slotScopeIds, optimized);\r\n setActiveBranch(suspense, fallbackVNode);\r\n };\r\n const delayEnter = fallbackVNode.transition && fallbackVNode.transition.mode === 'out-in';\r\n if (delayEnter) {\r\n activeBranch.transition.afterLeave = mountFallback;\r\n }\r\n suspense.isInFallback = true;\r\n // unmount current active branch\r\n unmount(activeBranch, parentComponent, null, // no suspense so unmount hooks fire now\r\n true // shouldRemove\r\n );\r\n if (!delayEnter) {\r\n mountFallback();\r\n }\r\n },\r\n move(container, anchor, type) {\r\n suspense.activeBranch &&\r\n move(suspense.activeBranch, container, anchor, type);\r\n suspense.container = container;\r\n },\r\n next() {\r\n return suspense.activeBranch && next(suspense.activeBranch);\r\n },\r\n registerDep(instance, setupRenderEffect) {\r\n const isInPendingSuspense = !!suspense.pendingBranch;\r\n if (isInPendingSuspense) {\r\n suspense.deps++;\r\n }\r\n const hydratedEl = instance.vnode.el;\r\n instance\r\n .asyncDep.catch(err => {\r\n handleError(err, instance, 0 /* SETUP_FUNCTION */);\r\n })\r\n .then(asyncSetupResult => {\r\n // retry when the setup() promise resolves.\r\n // component may have been unmounted before resolve.\r\n if (instance.isUnmounted ||\r\n suspense.isUnmounted ||\r\n suspense.pendingId !== instance.suspenseId) {\r\n return;\r\n }\r\n // retry from this component\r\n instance.asyncResolved = true;\r\n const { vnode } = instance;\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n pushWarningContext(vnode);\r\n }\r\n handleSetupResult(instance, asyncSetupResult, false);\r\n if (hydratedEl) {\r\n // vnode may have been replaced if an update happened before the\r\n // async dep is resolved.\r\n vnode.el = hydratedEl;\r\n }\r\n const placeholder = !hydratedEl && instance.subTree.el;\r\n setupRenderEffect(instance, vnode, \r\n // component may have been moved before resolve.\r\n // if this is not a hydration, instance.subTree will be the comment\r\n // placeholder.\r\n parentNode(hydratedEl || instance.subTree.el), \r\n // anchor will not be used if this is hydration, so only need to\r\n // consider the comment placeholder case.\r\n hydratedEl ? null : next(instance.subTree), suspense, isSVG, optimized);\r\n if (placeholder) {\r\n remove(placeholder);\r\n }\r\n updateHOCHostEl(instance, vnode.el);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n popWarningContext();\r\n }\r\n // only decrease deps count if suspense is not already resolved\r\n if (isInPendingSuspense && --suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n });\r\n },\r\n unmount(parentSuspense, doRemove) {\r\n suspense.isUnmounted = true;\r\n if (suspense.activeBranch) {\r\n unmount(suspense.activeBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n if (suspense.pendingBranch) {\r\n unmount(suspense.pendingBranch, parentComponent, parentSuspense, doRemove);\r\n }\r\n }\r\n };\r\n return suspense;\r\n}\r\nfunction hydrateSuspense(node, vnode, parentComponent, parentSuspense, isSVG, slotScopeIds, optimized, rendererInternals, hydrateNode) {\r\n /* eslint-disable no-restricted-globals */\r\n const suspense = (vnode.suspense = createSuspenseBoundary(vnode, parentSuspense, parentComponent, node.parentNode, document.createElement('div'), null, isSVG, slotScopeIds, optimized, rendererInternals, true /* hydrating */));\r\n // there are two possible scenarios for server-rendered suspense:\r\n // - success: ssr content should be fully resolved\r\n // - failure: ssr content should be the fallback branch.\r\n // however, on the client we don't really know if it has failed or not\r\n // attempt to hydrate the DOM assuming it has succeeded, but we still\r\n // need to construct a suspense boundary first\r\n const result = hydrateNode(node, (suspense.pendingBranch = vnode.ssContent), parentComponent, suspense, slotScopeIds, optimized);\r\n if (suspense.deps === 0) {\r\n suspense.resolve();\r\n }\r\n return result;\r\n /* eslint-enable no-restricted-globals */\r\n}\r\nfunction normalizeSuspenseChildren(vnode) {\r\n const { shapeFlag, children } = vnode;\r\n const isSlotChildren = shapeFlag & 32 /* SLOTS_CHILDREN */;\r\n vnode.ssContent = normalizeSuspenseSlot(isSlotChildren ? children.default : children);\r\n vnode.ssFallback = isSlotChildren\r\n ? normalizeSuspenseSlot(children.fallback)\r\n : createVNode(Comment);\r\n}\r\nfunction normalizeSuspenseSlot(s) {\r\n let block;\r\n if (isFunction(s)) {\r\n const trackBlock = isBlockTreeEnabled && s._c;\r\n if (trackBlock) {\r\n // disableTracking: false\r\n // allow block tracking for compiled slots\r\n // (see ./componentRenderContext.ts)\r\n s._d = false;\r\n openBlock();\r\n }\r\n s = s();\r\n if (trackBlock) {\r\n s._d = true;\r\n block = currentBlock;\r\n closeBlock();\r\n }\r\n }\r\n if (isArray(s)) {\r\n const singleChild = filterSingleRoot(s);\r\n if ((process.env.NODE_ENV !== 'production') && !singleChild) {\r\n warn(` slots expect a single root node.`);\r\n }\r\n s = singleChild;\r\n }\r\n s = normalizeVNode(s);\r\n if (block && !s.dynamicChildren) {\r\n s.dynamicChildren = block.filter(c => c !== s);\r\n }\r\n return s;\r\n}\r\nfunction queueEffectWithSuspense(fn, suspense) {\r\n if (suspense && suspense.pendingBranch) {\r\n if (isArray(fn)) {\r\n suspense.effects.push(...fn);\r\n }\r\n else {\r\n suspense.effects.push(fn);\r\n }\r\n }\r\n else {\r\n queuePostFlushCb(fn);\r\n }\r\n}\r\nfunction setActiveBranch(suspense, branch) {\r\n suspense.activeBranch = branch;\r\n const { vnode, parentComponent } = suspense;\r\n const el = (vnode.el = branch.el);\r\n // in case suspense is the root node of a component,\r\n // recursively update the HOC el\r\n if (parentComponent && parentComponent.subTree === vnode) {\r\n parentComponent.vnode.el = el;\r\n updateHOCHostEl(parentComponent, el);\r\n }\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`provide() can only be used inside setup().`);\r\n }\r\n }\r\n else {\r\n let provides = currentInstance.provides;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n const parentProvides = currentInstance.parent && currentInstance.parent.provides;\r\n if (parentProvides === provides) {\r\n provides = currentInstance.provides = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory = false) {\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n const instance = currentInstance || currentRenderingInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the instance is at root\r\n const provides = instance.parent == null\r\n ? instance.vnode.appContext && instance.vnode.appContext.provides\r\n : instance.parent.provides;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance.proxy)\r\n : defaultValue;\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`injection \"${String(key)}\" not found.`);\r\n }\r\n }\r\n else if ((process.env.NODE_ENV !== 'production')) {\r\n warn(`inject() can only be used inside setup() or functional components.`);\r\n }\r\n}\n\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\nfunction watchPostEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'post' }) : { flush: 'post' }));\r\n}\r\nfunction watchSyncEffect(effect, options) {\r\n return doWatch(effect, null, ((process.env.NODE_ENV !== 'production')\r\n ? Object.assign(Object.assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nconst INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if ((process.env.NODE_ENV !== 'production') && !isFunction(cb)) {\r\n warn(`\\`watch(fn, options?)\\` signature has been moved to a separate API. ` +\r\n `Use \\`watchEffect(fn, options?)\\` instead. \\`watch\\` now only ` +\r\n `supports \\`watch(source, cb, options?) signature.`);\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, { immediate, deep, flush, onTrack, onTrigger } = EMPTY_OBJ) {\r\n if ((process.env.NODE_ENV !== 'production') && !cb) {\r\n if (immediate !== undefined) {\r\n warn(`watch() \"immediate\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n if (deep !== undefined) {\r\n warn(`watch() \"deep\" option is only respected when using the ` +\r\n `watch(source, callback, options?) signature.`);\r\n }\r\n }\r\n const warnInvalidSource = (s) => {\r\n warn(`Invalid watch source: `, s, `A watch source can only be a getter/effect function, a ref, ` +\r\n `a reactive object, or an array of these types.`);\r\n };\r\n const instance = currentInstance;\r\n let getter;\r\n let forceTrigger = false;\r\n let isMultiSource = false;\r\n if (isRef(source)) {\r\n getter = () => source.value;\r\n forceTrigger = isShallow$1(source);\r\n }\r\n else if (isReactive(source)) {\r\n getter = () => source;\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n isMultiSource = true;\r\n forceTrigger = source.some(s => isReactive(s) || isShallow$1(s));\r\n getter = () => source.map(s => {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return callWithErrorHandling(s, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(s);\r\n }\r\n });\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = () => callWithErrorHandling(source, instance, 2 /* WATCH_GETTER */);\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = () => {\r\n if (instance && instance.isUnmounted) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return callWithAsyncErrorHandling(source, instance, 3 /* WATCH_CALLBACK */, [onCleanup]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = NOOP;\r\n (process.env.NODE_ENV !== 'production') && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n let cleanup;\r\n let onCleanup = (fn) => {\r\n cleanup = effect.onStop = () => {\r\n callWithErrorHandling(fn, instance, 4 /* WATCH_CLEANUP */);\r\n };\r\n };\r\n // in SSR there is no need to setup an actual effect, and it should be noop\r\n // unless it's eager\r\n if (isInSSRComponentSetup) {\r\n // we will also not call the invalidate callback (+ runner is not set up)\r\n onCleanup = NOOP;\r\n if (!cb) {\r\n getter();\r\n }\r\n else if (immediate) {\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n getter(),\r\n isMultiSource ? [] : undefined,\r\n onCleanup\r\n ]);\r\n }\r\n return NOOP;\r\n }\r\n let oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\r\n const job = () => {\r\n if (!effect.active) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n const newValue = effect.run();\r\n if (deep ||\r\n forceTrigger ||\r\n (isMultiSource\r\n ? newValue.some((v, i) => hasChanged(v, oldValue[i]))\r\n : hasChanged(newValue, oldValue)) ||\r\n (false )) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n callWithAsyncErrorHandling(cb, instance, 3 /* WATCH_CALLBACK */, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onCleanup\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n effect.run();\r\n }\r\n };\r\n // important: mark the job as a watcher callback so that scheduler knows\r\n // it is allowed to self-trigger (#1727)\r\n job.allowRecurse = !!cb;\r\n let scheduler;\r\n if (flush === 'sync') {\r\n scheduler = job; // the scheduler function gets called directly\r\n }\r\n else if (flush === 'post') {\r\n scheduler = () => queuePostRenderEffect(job, instance && instance.suspense);\r\n }\r\n else {\r\n // default: 'pre'\r\n scheduler = () => queuePreFlushCb(job);\r\n }\r\n const effect = new ReactiveEffect(getter, scheduler);\r\n if ((process.env.NODE_ENV !== 'production')) {\r\n effect.onTrack = onTrack;\r\n effect.onTrigger = onTrigger;\r\n }\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n job();\r\n }\r\n else {\r\n oldValue = effect.run();\r\n }\r\n }\r\n else if (flush === 'post') {\r\n queuePostRenderEffect(effect.run.bind(effect), instance && instance.suspense);\r\n }\r\n else {\r\n effect.run();\r\n }\r\n return () => {\r\n effect.stop();\r\n if (instance && instance.scope) {\r\n remove(instance.scope.effects, effect);\r\n }\r\n };\r\n}\r\n// this.$watch\r\nfunction instanceWatch(source, value, options) {\r\n const publicThis = this.proxy;\r\n const getter = isString(source)\r\n ? source.includes('.')\r\n ? createPathGetter(publicThis, source)\r\n : () => publicThis[source]\r\n : source.bind(publicThis, publicThis);\r\n let cb;\r\n if (isFunction(value)) {\r\n cb = value;\r\n }\r\n else {\r\n cb = value.handler;\r\n options = value;\r\n }\r\n const cur = currentInstance;\r\n setCurrentInstance(this);\r\n const res = doWatch(getter, cb.bind(publicThis), options);\r\n if (cur) {\r\n setCurrentInstance(cur);\r\n }\r\n else {\r\n unsetCurrentInstance();\r\n }\r\n return res;\r\n}\r\nfunction createPathGetter(ctx, path) {\r\n const segments = path.split('.');\r\n return () => {\r\n let cur = ctx;\r\n for (let i = 0; i < segments.length && cur; i++) {\r\n cur = cur[segments[i]];\r\n }\r\n return cur;\r\n };\r\n}\r\nfunction traverse(value, seen) {\r\n if (!isObject(value) || value[\"__v_skip\" /* SKIP */]) {\r\n return value;\r\n }\r\n seen = seen || new Set();\r\n if (seen.has(value)) {\r\n return value;\r\n }\r\n seen.add(value);\r\n if (isRef(value)) {\r\n traverse(value.value, seen);\r\n }\r\n else if (isArray(value)) {\r\n for (let i = 0; i < value.length; i++) {\r\n traverse(value[i], seen);\r\n }\r\n }\r\n else if (isSet(value) || isMap(value)) {\r\n value.forEach((v) => {\r\n traverse(v, seen);\r\n });\r\n }\r\n else if (isPlainObject(value)) {\r\n for (const key in value) {\r\n traverse(value[key], seen);\r\n }\r\n }\r\n return value;\r\n}\n\nfunction useTransitionState() {\r\n const state = {\r\n isMounted: false,\r\n isLeaving: false,\r\n isUnmounting: false,\r\n leavingVNodes: new Map()\r\n };\r\n onMounted(() => {\r\n state.isMounted = true;\r\n });\r\n onBeforeUnmount(() => {\r\n state.isUnmounting = true;\r\n });\r\n return state;\r\n}\r\nconst TransitionHookValidator = [Function, Array];\r\nconst BaseTransitionImpl = {\r\n name: `BaseTransition`,\r\n props: {\r\n mode: String,\r\n appear: Boolean,\r\n persisted: Boolean,\r\n // enter\r\n onBeforeEnter: TransitionHookValidator,\r\n onEnter: TransitionHookValidator,\r\n onAfterEnter: TransitionHookValidator,\r\n onEnterCancelled: TransitionHookValidator,\r\n // leave\r\n onBeforeLeave: TransitionHookValidator,\r\n onLeave: TransitionHookValidator,\r\n onAfterLeave: TransitionHookValidator,\r\n onLeaveCancelled: TransitionHookValidator,\r\n // appear\r\n onBeforeAppear: TransitionHookValidator,\r\n onAppear: TransitionHookValidator,\r\n onAfterAppear: TransitionHookValidator,\r\n onAppearCancelled: TransitionHookValidator\r\n },\r\n setup(props, { slots }) {\r\n const instance = getCurrentInstance();\r\n const state = useTransitionState();\r\n let prevTransitionKey;\r\n return () => {\r\n const children = slots.default && getTransitionRawChildren(slots.default(), true);\r\n if (!children || !children.length) {\r\n return;\r\n }\r\n let child = children[0];\r\n if (children.length > 1) {\r\n let hasFound = false;\r\n // locate first non-comment child\r\n for (const c of children) {\r\n if (c.type !== Comment) {\r\n if ((process.env.NODE_ENV !== 'production') && hasFound) {\r\n // warn more than one non-comment child\r\n warn(' can only be used on a single element or component. ' +\r\n 'Use for lists.');\r\n break;\r\n }\r\n child = c;\r\n hasFound = true;\r\n if (!(process.env.NODE_ENV !== 'production'))\r\n break;\r\n }\r\n }\r\n }\r\n // there's no need to track reactivity for these props so use the raw\r\n // props for a bit better perf\r\n const rawProps = toRaw(props);\r\n const { mode } = rawProps;\r\n // check mode\r\n if ((process.env.NODE_ENV !== 'production') &&\r\n mode &&\r\n mode !== 'in-out' &&\r\n mode !== 'out-in' &&\r\n mode !== 'default') {\r\n warn(`invalid mode: ${mode}`);\r\n }\r\n if (state.isLeaving) {\r\n return emptyPlaceholder(child);\r\n }\r\n // in the case of , we need to\r\n // compare the type of the kept-alive children.\r\n const innerChild = getKeepAliveChild(child);\r\n if (!innerChild) {\r\n return emptyPlaceholder(child);\r\n }\r\n const enterHooks = resolveTransitionHooks(innerChild, rawProps, state, instance);\r\n setTransitionHooks(innerChild, enterHooks);\r\n const oldChild = instance.subTree;\r\n const oldInnerChild = oldChild && getKeepAliveChild(oldChild);\r\n let transitionKeyChanged = false;\r\n const { getTransitionKey } = innerChild.type;\r\n if (getTransitionKey) {\r\n const key = getTransitionKey();\r\n if (prevTransitionKey === undefined) {\r\n prevTransitionKey = key;\r\n }\r\n else if (key !== prevTransitionKey) {\r\n prevTransitionKey = key;\r\n transitionKeyChanged = true;\r\n }\r\n }\r\n // handle mode\r\n if (oldInnerChild &&\r\n oldInnerChild.type !== Comment &&\r\n (!isSameVNodeType(innerChild, oldInnerChild) || transitionKeyChanged)) {\r\n const leavingHooks = resolveTransitionHooks(oldInnerChild, rawProps, state, instance);\r\n // update old tree's hooks in case of dynamic transition\r\n setTransitionHooks(oldInnerChild, leavingHooks);\r\n // switching between different views\r\n if (mode === 'out-in') {\r\n state.isLeaving = true;\r\n // return placeholder node and queue update when leave finishes\r\n leavingHooks.afterLeave = () => {\r\n state.isLeaving = false;\r\n instance.update();\r\n };\r\n return emptyPlaceholder(child);\r\n }\r\n else if (mode === 'in-out' && innerChild.type !== Comment) {\r\n leavingHooks.delayLeave = (el, earlyRemove, delayedLeave) => {\r\n const leavingVNodesCache = getLeavingNodesForType(state, oldInnerChild);\r\n leavingVNodesCache[String(oldInnerChild.key)] = oldInnerChild;\r\n // early removal callback\r\n el._leaveCb = () => {\r\n earlyRemove();\r\n el._leaveCb = undefined;\r\n delete enterHooks.delayedLeave;\r\n };\r\n enterHooks.delayedLeave = delayedLeave;\r\n };\r\n }\r\n }\r\n return child;\r\n };\r\n }\r\n};\r\n// export the public type for h/tsx inference\r\n// also to avoid inline import() in generated d.ts files\r\nconst BaseTransition = BaseTransitionImpl;\r\nfunction getLeavingNodesForType(state, vnode) {\r\n const { leavingVNodes } = state;\r\n let leavingVNodesCache = leavingVNodes.get(vnode.type);\r\n if (!leavingVNodesCache) {\r\n leavingVNodesCache = Object.create(null);\r\n leavingVNodes.set(vnode.type, leavingVNodesCache);\r\n }\r\n return leavingVNodesCache;\r\n}\r\n// The transition hooks are attached to the vnode as vnode.transition\r\n// and will be called at appropriate timing in the renderer.\r\nfunction resolveTransitionHooks(vnode, props, state, instance) {\r\n const { appear, mode, persisted = false, onBeforeEnter, onEnter, onAfterEnter, onEnterCancelled, onBeforeLeave, onLeave, onAfterLeave, onLeaveCancelled, onBeforeAppear, onAppear, onAfterAppear, onAppearCancelled } = props;\r\n const key = String(vnode.key);\r\n const leavingVNodesCache = getLeavingNodesForType(state, vnode);\r\n const callHook = (hook, args) => {\r\n hook &&\r\n callWithAsyncErrorHandling(hook, instance, 9 /* TRANSITION_HOOK */, args);\r\n };\r\n const callAsyncHook = (hook, args) => {\r\n const done = args[1];\r\n callHook(hook, args);\r\n if (isArray(hook)) {\r\n if (hook.every(hook => hook.length <= 1))\r\n done();\r\n }\r\n else if (hook.length <= 1) {\r\n done();\r\n }\r\n };\r\n const hooks = {\r\n mode,\r\n persisted,\r\n beforeEnter(el) {\r\n let hook = onBeforeEnter;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onBeforeAppear || onBeforeEnter;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n // for same element (v-show)\r\n if (el._leaveCb) {\r\n el._leaveCb(true /* cancelled */);\r\n }\r\n // for toggled element with same key (v-if)\r\n const leavingVNode = leavingVNodesCache[key];\r\n if (leavingVNode &&\r\n isSameVNodeType(vnode, leavingVNode) &&\r\n leavingVNode.el._leaveCb) {\r\n // force early removal (not cancelled)\r\n leavingVNode.el._leaveCb();\r\n }\r\n callHook(hook, [el]);\r\n },\r\n enter(el) {\r\n let hook = onEnter;\r\n let afterHook = onAfterEnter;\r\n let cancelHook = onEnterCancelled;\r\n if (!state.isMounted) {\r\n if (appear) {\r\n hook = onAppear || onEnter;\r\n afterHook = onAfterAppear || onAfterEnter;\r\n cancelHook = onAppearCancelled || onEnterCancelled;\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n let called = false;\r\n const done = (el._enterCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n if (cancelled) {\r\n callHook(cancelHook, [el]);\r\n }\r\n else {\r\n callHook(afterHook, [el]);\r\n }\r\n if (hooks.delayedLeave) {\r\n hooks.delayedLeave();\r\n }\r\n el._enterCb = undefined;\r\n });\r\n if (hook) {\r\n callAsyncHook(hook, [el, done]);\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n leave(el, remove) {\r\n const key = String(vnode.key);\r\n if (el._enterCb) {\r\n el._enterCb(true /* cancelled */);\r\n }\r\n if (state.isUnmounting) {\r\n return remove();\r\n }\r\n callHook(onBeforeLeave, [el]);\r\n let called = false;\r\n const done = (el._leaveCb = (cancelled) => {\r\n if (called)\r\n return;\r\n called = true;\r\n remove();\r\n if (cancelled) {\r\n callHook(onLeaveCancelled, [el]);\r\n }\r\n else {\r\n callHook(onAfterLeave, [el]);\r\n }\r\n el._leaveCb = undefined;\r\n if (leavingVNodesCache[key] === vnode) {\r\n delete leavingVNodesCache[key];\r\n }\r\n });\r\n leavingVNodesCache[key] = vnode;\r\n if (onLeave) {\r\n callAsyncHook(onLeave, [el, done]);\r\n }\r\n else {\r\n done();\r\n }\r\n },\r\n clone(vnode) {\r\n return resolveTransitionHooks(vnode, props, state, instance);\r\n }\r\n };\r\n return hooks;\r\n}\r\n// the placeholder really only handles one special case: KeepAlive\r\n// in the case of a KeepAlive in a leave phase we need to return a KeepAlive\r\n// placeholder with empty content to avoid the KeepAlive instance from being\r\n// unmounted.\r\nfunction emptyPlaceholder(vnode) {\r\n if (isKeepAlive(vnode)) {\r\n vnode = cloneVNode(vnode);\r\n vnode.children = null;\r\n return vnode;\r\n }\r\n}\r\nfunction getKeepAliveChild(vnode) {\r\n return isKeepAlive(vnode)\r\n ? vnode.children\r\n ? vnode.children[0]\r\n : undefined\r\n : vnode;\r\n}\r\nfunction setTransitionHooks(vnode, hooks) {\r\n if (vnode.shapeFlag & 6 /* COMPONENT */ && vnode.component) {\r\n setTransitionHooks(vnode.component.subTree, hooks);\r\n }\r\n else if (vnode.shapeFlag & 128 /* SUSPENSE */) {\r\n vnode.ssContent.transition = hooks.clone(vnode.ssContent);\r\n vnode.ssFallback.transition = hooks.clone(vnode.ssFallback);\r\n }\r\n else {\r\n vnode.transition = hooks;\r\n }\r\n}\r\nfunction getTransitionRawChildren(children, keepComment = false, parentKey) {\r\n let ret = [];\r\n let keyedFragmentCount = 0;\r\n for (let i = 0; i < children.length; i++) {\r\n let child = children[i];\r\n // #5360 inherit parent key in case of