{"version":3,"file":"static/chunks/7019-9b0a918601cca468.js","mappings":"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","sources":["webpack://_N_E/./components/modules/ads/displayAds/slices/providers/constants.ts","webpack://_N_E/./components/modules/ads/displayAds/slices/providers/displayAdRenderingManager.ts","webpack://_N_E/./components/modules/ads/displayAds/slices/providers/displayAdsBaseProvider.ts","webpack://_N_E/./components/modules/ads/displayAds/slices/providers/adConfigsProvider.ts","webpack://_N_E/./components/modules/ads/displayAds/slices/reduxConnect/adConfigsThunks.ts","webpack://_N_E/./components/modules/ads/displayAds/slices/reduxConnect/adRenderingActionCreators.ts","webpack://_N_E/./components/modules/ads/displayAds/slices/reduxConnect/adRenderingThunks.ts","webpack://_N_E/./components/modules/ads/displayAds/slices/providers/configureDisplayAdsProvider.ts","webpack://_N_E/./components/modules/ads/displayAds/slices/reduxConnect/configureDisplayAdsThunks.ts","webpack://_N_E/./components/modules/ads/displayAds/slices/reduxConnect/constants.ts","webpack://_N_E/./components/modules/ads/displayAds/slices/reduxConnect/displayAdSlice.ts","webpack://_N_E/./lib/utils/common/constants.ts","webpack://_N_E/./lib/errors/customErrors/baseCustomError.ts","webpack://_N_E/./lib/errors/customErrors/configurationLoaderError.ts","webpack://_N_E/./lib/errors/customErrors/ec2MetadataError.ts","webpack://_N_E/./lib/errors/customErrors/fetchError.ts","webpack://_N_E/./lib/errors/customErrors/guardUtilError.ts","webpack://_N_E/./lib/errors/customErrors/http/httpError.ts","webpack://_N_E/./lib/utils/constants/httpStatusCodes.ts","webpack://_N_E/./lib/errors/customErrors/methodNotAllowedError.ts","webpack://_N_E/./lib/errors/customErrors/s3ClientError.ts","webpack://_N_E/./lib/errors/customErrors/serviceError.ts","webpack://_N_E/./lib/errors/customErrors/singletonFactoryError.ts","webpack://_N_E/./lib/errors/customErrors/parseError.ts","webpack://_N_E/./lib/errors/errorHandler.ts","webpack://_N_E/./lib/errors/index.ts","webpack://_N_E/./lib/utils/guardUtils/guardUtils.ts","webpack://_N_E/./store/redux/common/dataLayer/appConfig/slices/appConfigSlice.ts","webpack://_N_E/./store/redux/common/dataLayer/appConfig/slices/appConfigThunks.ts","webpack://_N_E/./store/redux/common/dataLayer/appConfig/slices/constants.ts","webpack://_N_E/./store/redux/common/dataLayer/user/slices/constants.ts","webpack://_N_E/./store/redux/common/dataLayer/user/slices/userSlice.ts","webpack://_N_E/./store/redux/common/dataLayer/user/slices/userThunks.ts","webpack://_N_E/./store/redux/middlewares/listenerMiddleware.ts","webpack://_N_E/./store/redux/storeHooks/hooks.ts"],"sourcesContent":["export const GET_AD_CONFIG_URI = 'web2/api/ads/config/displayads';\nexport const GET_AD_CONFIG_CACHE_KEY = 'getAdConfig';\nexport const defaultPreBidTimeout = 1000;\nexport const pulseApiHttpClientTimeout = 5000;\nexport const validPriceGranularityValues = ['low', 'medium', 'high', 'auto', 'dense'];\n","/* eslint-disable operator-linebreak */\n/* eslint-disable no-extra-parens */\n\nimport type { AdSlot, DisplayAdsConfigs, InfiniteScrollAdSlot, RefreshAdType, Sizes, Slot } from './types';\n\nimport { DisplayAdsBaseProvider } from './displayAdsBaseProvider';\n\nexport class DisplayAdRenderingManager extends DisplayAdsBaseProvider {\n constructor() {\n super();\n }\n\n async renderDisplayAdForSlot(slotId: string): Promise {\n this.appNexus.anq.push(() => {\n this.appNexus.showTag(slotId);\n });\n }\n\n async clearAdRequest(): Promise {\n this.appNexus.anq.push(() => {\n this.appNexus.clearRequest();\n this.preBid?.removeAdUnit?.();\n });\n }\n\n async refreshAd({\n slotId,\n pageId,\n globalAdConfig,\n isInfiniteScrollAd,\n infiniteScrollAdDivId\n }: RefreshAdType): Promise<{\n pageId: string;\n registeredSlotId: string;\n }> {\n return await new Promise((resolve, reject) => {\n try {\n let adserverRefreshRequestSent = false;\n let isAdServerRefreshFailSafe = false;\n const slotMap: Array = [];\n const pageAdConfig = globalAdConfig?.PageAdConfigs?.find(\n (pageConfig) => pageConfig?.PageId?.toLowerCase() === pageId?.toLowerCase()\n );\n if (pageAdConfig) {\n const infiniteAdSlotIdExclusionSet = new Set(globalAdConfig.baseInfiniteScrollAdSlotIds);\n const adElement = pageAdConfig?.Slots?.find((element) => {\n const isAdSlotInConfigs =\n element?.SlotId === slotId &&\n // eslint-disable-next-line prettier/prettier\n (!infiniteAdSlotIdExclusionSet.has(element?.SlotId) ||\n (isInfiniteScrollAd && infiniteAdSlotIdExclusionSet.has(element?.SlotId)));\n return isAdSlotInConfigs;\n });\n\n if (!adElement) {\n reject(`Ad refresh failed for slotId: ${slotId}. Reason: Invalid SlotId`);\n return;\n }\n const adSlot =\n isInfiniteScrollAd && infiniteScrollAdDivId\n ? { name: adElement.SlotId, divId: infiniteScrollAdDivId, sizes: [] as Sizes[] }\n : { name: adElement.SlotId, sizes: [] as Sizes[] };\n\n const registeredSlotId =\n isInfiniteScrollAd && infiniteScrollAdDivId ? infiniteScrollAdDivId : slotId;\n\n adElement?.AdProviderConfig?.sizes?.forEach(function (size) {\n adSlot.sizes.push({ w: size[0], h: size[1] });\n });\n\n slotMap.push(adSlot);\n\n if (isInfiniteScrollAd) {\n const adSlotData = pageAdConfig?.Slots?.find((slot) => slot.SlotId === slotId);\n if (adSlotData) {\n this.defineAdSlotTag(adSlotData, globalAdConfig, registeredSlotId);\n }\n } else {\n this.defineAdSlotTag(adElement, globalAdConfig);\n }\n\n const callAdServer = (bidResponses?: Record) => {\n if (\n (isAdServerRefreshFailSafe && adserverRefreshRequestSent) ||\n (!isAdServerRefreshFailSafe &&\n adserverRefreshRequestSent &&\n bidResponses &&\n typeof bidResponses === 'object' &&\n Object.keys(bidResponses)?.length > 0)\n ) {\n return;\n }\n adserverRefreshRequestSent = true;\n this.preBid?.setTargetingForAst?.(registeredSlotId);\n this.appNexus?.refresh?.(registeredSlotId);\n resolve({ pageId, registeredSlotId });\n };\n\n if (\n globalAdConfig.enablePreBid &&\n !globalAdConfig?.disablePrebidOnPagesWithIds?.includes?.(pageId)\n ) {\n this.preBid.que.push(() => {\n this.preBid.rp.requestBids({\n slotMap: slotMap,\n callback: callAdServer\n });\n });\n\n // failsafe in case PBJS doesn't load\n setTimeout(() => {\n isAdServerRefreshFailSafe = true;\n callAdServer();\n }, 3500);\n } else {\n this.appNexus.anq.push(() => {\n this.appNexus.refresh([registeredSlotId]);\n resolve({ registeredSlotId, pageId });\n });\n }\n } else {\n reject(`Invalid pageAdConfig supplied for refreshAd request on pageId: ${pageId}`);\n }\n } catch (error) {\n reject(error);\n }\n });\n }\n\n displayInfiniteScrollAdAction(slotId: string, adConfig: Slot, globalAdConfig: DisplayAdsConfigs) {\n return new Promise((resolve, reject) => {\n this.appNexus.anq.push(() => {\n try {\n // The slotMap property contains the array of slot objects to be sent to Demand Manager;\n // if the slot objects in the slotMap are matched to the Ad Unit Patterns within the Demand Manager wrapper,\n // the relevant ad units are constructed and sent to the header bidding auction.\n //\n // IMPORTANT:\n // Because these are infinite scroll ads, the adSlot should include the divId property,\n // This is an optional property: divId (string) which tells Demand Manager\n // to use the divId as the Prebid Ad Unit Code instead of the name property;\n // this can be useful for situations where we do not have unique slotMap name properties.\n // - Our infinite scroll ads append an incrementing number each time to the ad slot configured on Magnite's Demand Manager.\n // The above must be considered because the default behavior for Demand Manager is to match the value of each name i.e const adSlot = { name: adConfig.slotId }\n // property against the Slot Patterns defined within the Ad Unit Pattern in the wrapper, and use the name as the Prebid Ad Unit Code for bid requests\n\n const slotMap: InfiniteScrollAdSlot[] = [];\n const adSlot: InfiniteScrollAdSlot = { name: adConfig.SlotId, divId: slotId, sizes: [] };\n adConfig.AdProviderConfig.sizes.forEach(function (size) {\n adSlot.sizes.push({ w: size[0], h: size[1] });\n });\n\n slotMap.push(adSlot);\n this.defineAdSlotTag(adConfig, globalAdConfig, slotId);\n\n // The adserverRequestSent flag will ensure the ad server isn’t called an additional time when the Failsafe Timeout time is realized.\n let adserverRequestSent = false;\n\n const callAdServerForInfiniteScroll = () => {\n // Because we are using a custom callback function and the failsafe timeout,\n // We need to ensure we defend against running inadvertent refreshes by checking the adserverRequestSent variable.\n if (adserverRequestSent) {\n return;\n }\n adserverRequestSent = true;\n this.preBid.que.push(() => {\n this.appNexus.anq.push(() => {\n this.preBid.setTargetingForAst();\n this.appNexus.loadTags([slotId]);\n this.renderDisplayAdForSlot(slotId);\n resolve(slotId);\n });\n });\n };\n\n if (globalAdConfig.enablePreBid) {\n this.preBid.que.push(() => {\n this.preBid.rp.requestBids({\n slotMap: slotMap,\n callback: callAdServerForInfiniteScroll\n });\n });\n\n // IMPORTANT: The failsafe timeout provides a fallback method to request ads in the event Prebid fails to load or execute.\n // This function should rarely be utilized, as the Prebid auction timeout will close the auction at the allotted time,\n // submitting all available bids to the ad server.\n setTimeout(function () {\n callAdServerForInfiniteScroll();\n }, 3500);\n } else {\n this.appNexus.loadTags();\n this.renderDisplayAdForSlot(slotId);\n resolve(slotId);\n }\n } catch (error) {\n reject(error);\n }\n });\n });\n }\n}\n","import type { DisplayAdsConfigs, Slot, TagDefinition } from './types';\n\nexport class DisplayAdsBaseProvider {\n protected appNexus: typeof window.apntag;\n protected preBid: typeof window.pbjs;\n\n constructor() {\n this.appNexus = window.apntag;\n this.preBid = window.pbjs || {};\n this.preBid.que = window.pbjs?.que || [];\n }\n\n protected defineAdSlotTag(element: Slot, globalAdConfig: DisplayAdsConfigs, slotId?: string) {\n const tagDefinition: TagDefinition = {\n ...element.AdProviderConfig\n } as TagDefinition;\n\n tagDefinition.mediaTypes = {\n banner: {\n sizes: [...element.AdProviderConfig.sizes]\n }\n };\n tagDefinition.targetId = slotId || element.SlotId;\n tagDefinition.tagId = element.TagId;\n\n if (tagDefinition.enableSafeFrame === undefined) {\n tagDefinition.enableSafeFrame = globalAdConfig.defaultEnableIndividualAdSafeFrame;\n }\n\n if (tagDefinition.enableSafeFrame && !tagDefinition.safeframeConfig) {\n tagDefinition.safeframeConfig = {\n allowExpansionByPush: globalAdConfig.allowSafeFrameExpansionByPush || false,\n allowExpansionByOverlay: globalAdConfig.allowSafeFrameExpansionByOverlay || false\n };\n }\n this.appNexus?.defineTag?.(tagDefinition);\n }\n}\n","/* eslint-disable operator-linebreak */\nimport type {\n PulseApiHttpClientRetryOptions,\n PulseApiProviderOptions,\n PulseBaseProviderParams,\n PulseHttpClientInstanceType,\n PulseProviderParams,\n PulseStorageManagerInstanceType\n} from '@weatherbug/common-v2';\nimport { PulseBaseProvider } from '@weatherbug/common-v2';\nimport {\n GET_AD_CONFIG_CACHE_KEY,\n GET_AD_CONFIG_URI,\n pulseApiHttpClientTimeout,\n validPriceGranularityValues\n} from './constants';\nimport type { DisplayAdsConfigs, GetAdConfigSyncerParams, SyncParams } from './types';\n\nexport class AdConfigsProvider extends PulseBaseProvider {\n #pulseStorageManager: PulseStorageManagerInstanceType;\n #pulseApiHttpClient: PulseHttpClientInstanceType;\n\n constructor(adConfigsProviderCtorParams: PulseProviderParams) {\n const { pulseApiHttpClient, pulseStorageManager, options, logger } = adConfigsProviderCtorParams;\n\n const pulseProviderOptions: PulseApiProviderOptions = {\n timeout: pulseApiHttpClientTimeout,\n retryOptions: options?.retryOptions as PulseApiHttpClientRetryOptions,\n emToken: options?.emToken\n };\n const pulseBaseProviderCtorParams: PulseBaseProviderParams = {\n pulseApiHttpClient,\n pulseStorage: pulseStorageManager.getStorageInstance(),\n options: pulseProviderOptions,\n logger\n };\n super(pulseBaseProviderCtorParams);\n this.#pulseApiHttpClient = pulseApiHttpClient;\n this.#pulseStorageManager = pulseStorageManager;\n\n // TODO: Address TS related stuff in common-js so we don't have to do the ts-ignore below\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore: Object is possibly 'undefined'.\n this.pulseStorage.sync[GET_AD_CONFIG_CACHE_KEY] = this.getAdConfigSyncer.bind(this);\n }\n\n async getAdConfigSyncer(params: GetAdConfigSyncerParams): Promise {\n const { id, syncParams, reject, resolve } = params;\n const { pulseApi, key } = syncParams;\n\n const queryParams = {};\n\n const responseValidator = (response: DisplayAdsConfigs) => {\n return !!response;\n };\n\n return (await super.syncData({\n key,\n id,\n queryParams,\n uri: GET_AD_CONFIG_URI,\n resolve,\n reject,\n responseValidationFunction: responseValidator,\n pulseApi\n })) as unknown as Promise;\n }\n\n async getAdConfig(): Promise {\n const syncParams: Partial = {\n priceGranularity: validPriceGranularityValues\n };\n const id = JSON.stringify(syncParams);\n\n syncParams.pulseApi = this.#pulseApiHttpClient;\n\n const autoSync = true;\n const syncInBackground = false;\n return await this.#pulseStorageManager.loadFromStorage(\n GET_AD_CONFIG_CACHE_KEY,\n id,\n syncParams,\n autoSync,\n syncInBackground\n );\n }\n}\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport { PulseProviderBuilder } from '@weatherbug/common-v2';\n\nimport { AdConfigsProvider } from '../providers/adConfigsProvider';\nimport { GET_AD_CONFIG } from './constants';\nimport type { GetAdConfigActionParams } from './types';\n\nexport const getAdConfig = createAsyncThunk(\n GET_AD_CONFIG,\n async ({ baseUrl, secret, authId }: GetAdConfigActionParams, { rejectWithValue }) => {\n try {\n const adConfigsProvider = new PulseProviderBuilder()\n .withPulseProviderArguments({ baseUrl, authId, secret })\n .build(AdConfigsProvider);\n\n const globalAdConfigs = await adConfigsProvider.getAdConfig();\n return globalAdConfigs;\n } catch (error) {\n return rejectWithValue(error);\n }\n }\n);\n","import { createAction } from '@reduxjs/toolkit';\n\nimport type { DisplayAdsConfigs, Slot } from '../providers/types';\nimport {\n CONFIGURE_CMP,\n DISPLAY_INFINITE_SCROLL_AD,\n GET_DISPLAY_AD_FOR_SLOT,\n REFRESH_AD,\n UPDATE_CONFIGURED_PAGE_AD_LOCATION\n} from './constants';\n\n// Ad Rendering\nexport const refreshAd = createAction(\n REFRESH_AD,\n function prepare(\n slotId: string,\n pageId: string,\n globalAdConfig: DisplayAdsConfigs,\n isInfiniteScrollAd?: boolean,\n infiniteScrollAdDivId?: string\n ) {\n return {\n payload: {\n slotId,\n pageId,\n globalAdConfig,\n isInfiniteScrollAd,\n infiniteScrollAdDivId\n }\n };\n }\n);\n\nexport const displayInfiniteScrollAd = createAction(\n DISPLAY_INFINITE_SCROLL_AD,\n function prepare(slotId: string, adConfig: Slot, globalAdConfig: DisplayAdsConfigs) {\n return {\n payload: {\n slotId,\n adConfig,\n globalAdConfig\n }\n };\n }\n);\n\nexport const renderDisplayAdForSlot = createAction(GET_DISPLAY_AD_FOR_SLOT, function prepare(slotId: string) {\n return {\n payload: slotId\n };\n});\n\nexport const configureCMP = createAction(CONFIGURE_CMP);\n\nexport const updateConfiguredPageAdLocation = createAction(\n UPDATE_CONFIGURED_PAGE_AD_LOCATION,\n function prepare(latitude: number, longitude: number) {\n return {\n payload: {\n latitude,\n longitude\n }\n };\n }\n);\n","import { createAsyncThunk } from '@reduxjs/toolkit';\n\nimport { DisplayAdRenderingManager } from '../providers/displayAdRenderingManager';\nimport { CLEAR_AD_REQUEST } from './constants';\n\nexport const clearAdRequest = createAsyncThunk(CLEAR_AD_REQUEST, async (_, { rejectWithValue }) => {\n try {\n const displayAdRenderingManager = new DisplayAdRenderingManager();\n await displayAdRenderingManager.clearAdRequest();\n\n // not returning any meaningful value here as are just going to reset state values for ad configs\n return { success: true };\n } catch (error) {\n return rejectWithValue(error);\n }\n});\n","/* eslint-disable operator-linebreak */\n/* eslint-disable no-extra-parens */\nimport { genderEnum, genderUnits } from '../../../../../../lib/utils/common/constants';\n\nimport type {\n AdConfig,\n AdSlot,\n ConfigureAdsParams,\n ConfigureAdsReturnType,\n ConfigurePageSlotsParams,\n ConfigurePageSlotsReturnType,\n DisplayAdsConfigs,\n PageOptions,\n PrebidConfig,\n PriceGranularityWithBucket,\n SizeConfig\n} from './types';\n\nimport {\n isValidArray,\n isValidBoolean,\n isValidNumber,\n isValidPlainObject,\n isValidString\n} from '../../../../../../lib/utils/guardUtils/guardUtils';\nimport { validPriceGranularityValues } from './constants';\nimport { DisplayAdsBaseProvider } from './displayAdsBaseProvider';\n\nexport class ConfigureDisplayAdsProvider extends DisplayAdsBaseProvider {\n constructor() {\n super();\n }\n\n async configureAds({\n globalAdConfig,\n adConfig,\n enableAdDebugging,\n enablePrebidAdDebugging\n }: ConfigureAdsParams): Promise {\n return new Promise((resolve) => {\n this.#configureUsPrivacyOnPrebid(adConfig);\n this.#configureBidderLevelFirstPartyDataOnPrebid(adConfig, globalAdConfig);\n this.#configureAdServerDebugging(\n globalAdConfig.enableDebug,\n globalAdConfig.enablePreBid,\n enableAdDebugging,\n enablePrebidAdDebugging\n );\n\n this.appNexus.anq.push(() => {\n this.appNexus.clearRequest();\n this.preBid.removeAdUnit();\n\n if (globalAdConfig.endPoint) {\n this.appNexus.setEndpoint(globalAdConfig.endPoint);\n }\n\n const pageOptions = this.#generatePageOptions(globalAdConfig, adConfig);\n\n this.appNexus.setPageOpts(pageOptions);\n\n if (globalAdConfig.enableSafeFrame) {\n this.appNexus.setSafeFrameConfig({\n allowExpansionByPush: globalAdConfig.allowSafeFrameExpansionByPush || false,\n allowExpansionByOverlay: globalAdConfig.allowSafeFrameExpansionByOverlay || false\n });\n }\n\n resolve({ globalAdConfig, adConfig });\n });\n });\n }\n\n async configurePageSlots({\n pageId,\n pageAdConfig,\n globalAdConfig,\n latitude,\n longitude,\n currentScreenSize,\n cameraId\n }: ConfigurePageSlotsParams): Promise {\n return new Promise((resolve, reject) => {\n this.appNexus.anq.push(() => {\n try {\n if (pageAdConfig) {\n // The slotMap property contains the array of slot objects to be sent to Demand Manager;\n // if the slot objects in the slotMap are matched to the Ad Unit Patterns within the Demand Manager wrapper,\n // the relevant ad units are constructed and sent to the header bidding auction.\n // So it is safe to use: const adSlot = { name: element.slotId, sizes: [] }; to configure SlotIds on a page.\n const slotMap: AdSlot[] = [];\n const infiniteAdSlotIdExclusionSet = new Set(globalAdConfig.baseInfiniteScrollAdSlotIds);\n pageAdConfig.Slots.forEach((element) => {\n if (element.ScreenSizes.includes(currentScreenSize)) {\n if (\n (pageId === 'news' && globalAdConfig.newsDetailTagIds.includes(element.TagId)) ||\n (pageId === 'newsstory' && globalAdConfig.newsTagIds.includes(element.TagId)) ||\n (pageId === 'weatherlandingcamera' &&\n !cameraId &&\n globalAdConfig.weatherCamDetailTagIds.includes(element.TagId)) ||\n (pageId === 'weatherlandingcamera' &&\n cameraId &&\n globalAdConfig.weatherCamTagIds.includes(element.TagId)) ||\n (pageId === 'trafficlandingcamera' &&\n !cameraId &&\n globalAdConfig.trafficCamDetailTagIds.includes(element.TagId)) ||\n (pageId === 'trafficlandingcamera' &&\n cameraId &&\n globalAdConfig.trafficCamTagIds.includes(element.TagId))\n ) {\n return;\n }\n const adSlot = {\n name: element.SlotId,\n sizes: [] as any[]\n };\n element.AdProviderConfig.sizes.forEach(function (size) {\n adSlot.sizes.push({ w: size[0], h: size[1] });\n });\n if (!infiniteAdSlotIdExclusionSet.has(element.SlotId)) {\n slotMap.push(adSlot);\n this.defineAdSlotTag(element, globalAdConfig);\n }\n }\n });\n\n this.preBid.adserverRequestSent = false;\n /**\n * The callback function is invoked once the header bidding auction is complete,\n * with all of the Prebid bidResponses (as well as a timedOut flag and unique Prebid auctionId) accessible within its parameters\n * @param {*} bidResponses\n * @param {*} timedOut\n * @param {*} auctionId\n * @returns\n */\n const callAdServer = (bidResponses?: Record) => {\n if (\n this.preBid.adserverRequestSent &&\n bidResponses &&\n typeof bidResponses === 'object' &&\n Object.keys(bidResponses)?.length > 0\n ) {\n return;\n }\n this.preBid.adserverRequestSent = true;\n this.preBid.que.push(() => {\n this.appNexus.anq.push(() => {\n const adSlotIds = pageAdConfig.Slots.map((x) => x.SlotId);\n this.preBid?.setTargetingForAst?.(adSlotIds);\n this.appNexus?.loadTags?.();\n resolve({ pageId, pageAdConfig, latitude, longitude });\n });\n });\n };\n\n if (globalAdConfig.enablePreBid) {\n this.preBid.que.push(() => {\n this.preBid.rp.requestBids({\n slotMap: slotMap,\n callback: callAdServer\n });\n });\n\n // fail safe in case PBJS doesn't load\n setTimeout(function () {\n callAdServer();\n }, 3500);\n } else {\n this.appNexus.anq.push(() => {\n this.appNexus.loadTags();\n resolve({ pageId, pageAdConfig, latitude, longitude });\n });\n }\n } else {\n reject(`No pageAdConfig supplied for configurePageSlots request on pageId: ${pageId}`);\n }\n } catch (error) {\n reject(error);\n }\n });\n });\n }\n\n configurePreBid(globalAdConfig: DisplayAdsConfigs) {\n const {\n adapterConfigs,\n mediaTypePriceGranularity,\n overrideBidderSequence,\n priceGranularity,\n publisherDomain,\n s2sConfig,\n sizeConfig\n } = globalAdConfig.preBid.moduleConfig;\n\n const config: PrebidConfig = {};\n\n if (overrideBidderSequence && isValidBoolean(overrideBidderSequence)) {\n config.bidderSequence = 'fixed';\n }\n\n if (isValidString(publisherDomain)) {\n config.publisherDomain = publisherDomain;\n }\n\n if (mediaTypePriceGranularity && isValidPlainObject(mediaTypePriceGranularity)) {\n if (\n mediaTypePriceGranularity.video ||\n mediaTypePriceGranularity.banner ||\n mediaTypePriceGranularity.native\n ) {\n config.mediaTypePriceGranularity = mediaTypePriceGranularity;\n }\n }\n\n if (isValidString(priceGranularity as string)) {\n if (validPriceGranularityValues.includes((priceGranularity as string).toLowerCase().trim())) {\n config.priceGranularity = priceGranularity;\n }\n } else if (isValidPlainObject(priceGranularity)) {\n const priceGranularityWithBucket = (priceGranularity as PriceGranularityWithBucket)?.buckets;\n if (isValidArray(priceGranularityWithBucket) && priceGranularityWithBucket.length > 0) {\n config.priceGranularity = priceGranularity;\n }\n }\n\n if (\n isValidString(s2sConfig?.accountId) &&\n isValidString(s2sConfig?.adapter) &&\n isValidString(s2sConfig?.endpoint) &&\n isValidString(s2sConfig?.syncEndpoint) &&\n isValidNumber(s2sConfig?.timeout)\n ) {\n config.s2sConfig = s2sConfig;\n }\n\n if (Array.isArray(sizeConfig) && sizeConfig.length > 0) {\n config.sizeConfig = [];\n\n sizeConfig.forEach((element) => {\n if (\n isValidPlainObject(element) &&\n isValidString(element.mediaQuery) &&\n isValidArray(element.sizesSupported) &&\n element.sizesSupported.length > 0 &&\n isValidArray(element.sizesSupported[0]) &&\n element.sizesSupported[0].length > 0\n ) {\n (config.sizeConfig as SizeConfig[]).push(element);\n }\n });\n }\n\n if (adapterConfigs && isValidArray(adapterConfigs) && adapterConfigs.length > 0) {\n adapterConfigs.forEach((element) => {\n const { name, value } = element;\n\n if (name && value && isValidString(name) && isValidString(value)) {\n config[name] = value;\n }\n });\n }\n\n this.preBid.setConfig(config);\n }\n\n #configureUsPrivacyOnPrebid(adConfig: AdConfig) {\n const targetingParameters = adConfig?.keywords ?? {};\n if (targetingParameters.us_privacy) {\n this.preBid.setConfig({\n consentManagement: {\n usp: {\n cmpApi: 'static',\n consentData: {\n getUSPData: {\n uspString: targetingParameters.us_privacy?.[0]\n }\n }\n }\n }\n });\n }\n }\n\n #configureBidderLevelFirstPartyDataOnPrebid(adConfig: AdConfig, globalAdConfig: DisplayAdsConfigs) {\n // set Bidder-level first party data (in-house custom ad targeting params) on page.\n if (\n globalAdConfig.enableBidderLevelFirstPartyData &&\n globalAdConfig.firstPartyDataSupportedBidders?.length &&\n Array.isArray(globalAdConfig.firstPartyDataSupportedBidders) &&\n adConfig.keywords &&\n typeof adConfig?.keywords === 'object' &&\n Object.keys(adConfig?.keywords || {})?.length > 0\n ) {\n this.preBid.setBidderConfig({\n // specify which bidders can access the first party data\n bidders: globalAdConfig.firstPartyDataSupportedBidders,\n config: {\n ortb2: {\n site: {\n ext: {\n data: {\n // Inventory data sent to bidders listed above\n ...adConfig?.keywords\n }\n }\n }\n }\n }\n });\n }\n }\n\n #configureAdServerDebugging(\n enableDebugFromConfigs: boolean,\n enablePrebidFromConfig: boolean,\n forceEnableAdDebugging?: boolean,\n forceEnablePrebidAdDebugging?: boolean\n ) {\n if (enableDebugFromConfigs || forceEnableAdDebugging) {\n if (enablePrebidFromConfig || forceEnablePrebidAdDebugging) {\n this.appNexus.anq.push(() => {\n this.preBid.setConfig({ debug: true });\n this.appNexus.enableDebug();\n });\n } else {\n this.appNexus.anq.push(() => {\n this.appNexus.enableDebug();\n });\n }\n }\n }\n\n #isAdBlockRecoveryEngaged(admiralStorageKey: string): boolean {\n const adBlockRecoveryData = localStorage.getItem(admiralStorageKey);\n if (!adBlockRecoveryData) {\n return false;\n }\n const adBlockRecoveryNum = adBlockRecoveryData?.split(',')?.[4];\n return parseFloat(adBlockRecoveryNum) > 0;\n }\n\n #generatePageOptions(globalAdConfig: DisplayAdsConfigs, adConfig: AdConfig): PageOptions {\n const isAdBlockRecoveryEngaged = this.#isAdBlockRecoveryEngaged(globalAdConfig.admiralAdBlockerStorageKey);\n const keywords = adConfig.keywords;\n const apnxSetPageKeywords = isAdBlockRecoveryEngaged\n ? { ...keywords, 'admiral-engaged': `${isAdBlockRecoveryEngaged}` }\n : keywords;\n\n let pageOptions: PageOptions = {\n member: globalAdConfig.memberId,\n publisherId: globalAdConfig.publisherId,\n disablePsa: globalAdConfig.disablePsa || true,\n debug: globalAdConfig.enableDebug || false,\n enableSafeFrame: globalAdConfig.enableSafeFrame,\n supplyType: 'web',\n app: {\n appid: adConfig.appId\n },\n keywords: apnxSetPageKeywords,\n user: {\n //age: adConfig.age,\n gender: this.#getGender(adConfig.userGender),\n language: adConfig.languageCode,\n dnt: adConfig.doNotTrack || false\n },\n device: {\n devTime: Math.round(new Date().getTime() / 1000),\n useragent: adConfig.useragent,\n os: adConfig.os,\n osVersion: adConfig.osVersion,\n geo: {\n lat: adConfig.latitude,\n lng: adConfig.longitude,\n country: adConfig.country,\n region: adConfig.region,\n city: adConfig.city,\n zip: adConfig.zip,\n state: adConfig.state\n }\n },\n consentManagement: {\n disabled: true\n }\n };\n\n if (adConfig?.keywords?.us_privacy?.length) {\n // eslint-disable-next-line camelcase\n pageOptions = { ...pageOptions, us_privacy: adConfig?.keywords?.us_privacy?.[0] };\n }\n\n return pageOptions;\n }\n\n #getGender(gender: number) {\n switch (gender) {\n case genderEnum.MALE: {\n return genderUnits.male;\n }\n case genderEnum.FEMALE: {\n return genderUnits.female;\n }\n default: {\n return genderUnits.unknown;\n }\n }\n }\n}\n","import { createAsyncThunk, unwrapResult } from '@reduxjs/toolkit';\n\nimport { getAdTargetingParameters } from '@weatherbug/common-v2';\nimport { ConfigureDisplayAdsProvider } from '../providers/configureDisplayAdsProvider';\nimport type { AdConfig, Keywords } from '../providers/types';\nimport { CONFIGURE_ADS, CONFIGURE_PAGE_AD_SLOTS } from './constants';\nimport type { ConfigureAdsActionParams, ConfigurePageSlotsActionParams } from './types';\n\nexport const configurePageAdSlots = createAsyncThunk(\n CONFIGURE_PAGE_AD_SLOTS,\n async (\n {\n pageId,\n pageAdConfig,\n globalAdConfig,\n latitude,\n longitude,\n currentScreenSize\n }: ConfigurePageSlotsActionParams,\n { rejectWithValue }\n ) => {\n try {\n const configureDisplayAdsProvider = new ConfigureDisplayAdsProvider();\n const configuredPageData = await configureDisplayAdsProvider.configurePageSlots({\n pageId,\n pageAdConfig,\n globalAdConfig,\n latitude,\n longitude,\n currentScreenSize\n });\n return configuredPageData;\n } catch (error) {\n return rejectWithValue(error);\n }\n }\n);\n\nexport const configureAds = createAsyncThunk(\n CONFIGURE_ADS,\n async (\n {\n globalAdConfig,\n adConfig,\n latitude,\n longitude,\n stationId,\n providerId,\n adServer,\n units,\n authId,\n secret,\n stdParameters,\n adTargetingBaseUrl,\n enableAdDebugging,\n enablePrebidAdDebugging\n }: ConfigureAdsActionParams,\n { rejectWithValue, dispatch }\n ) => {\n try {\n const verbose = false;\n const wrappedParamsResult = await dispatch(\n getAdTargetingParameters({\n baseUrl: adTargetingBaseUrl,\n authId,\n secret,\n verbose,\n stdParameters: stdParameters as unknown as Record,\n latitude,\n longitude,\n stationId: stationId || '',\n providerId: providerId || '',\n adServer,\n units\n })\n );\n\n const paramsResult = unwrapResult(wrappedParamsResult);\n const targetingParameters = paramsResult?.tp || {};\n\n const keywords = adConfig.keywords || {};\n\n const clonedAdConfig: AdConfig = {\n ...adConfig,\n keywords: {\n ...keywords\n }\n };\n\n clonedAdConfig.keywords = { ...adConfig.keywords, ...targetingParameters } as unknown as Keywords;\n\n const configureDisplayAdsProvider = new ConfigureDisplayAdsProvider();\n const configuredAdsData = await configureDisplayAdsProvider.configureAds({\n globalAdConfig,\n adConfig: clonedAdConfig,\n enableAdDebugging,\n enablePrebidAdDebugging\n });\n\n return configuredAdsData;\n } catch (error) {\n return rejectWithValue(error);\n }\n }\n);\n","// Ad Rendering constants\nexport const DISPLAY_INFINITE_SCROLL_AD = 'DISPLAY_INFINITE_SCROLL_AD';\nexport const CLEAR_AD_REQUEST = 'CLEAR_AD_REQUEST';\nexport const REFRESH_AD = 'REFRESH_AD';\nexport const GET_DISPLAY_AD_FOR_SLOT = 'GET_DISPLAY_AD_FOR_SLOT';\nexport const UPDATE_CONFIGURED_PAGE_AD_LOCATION = 'UPDATE_CONFIGURED_PAGE_AD_LOCATION';\n\n// Ad Configuration constants\nexport const GET_AD_CONFIG = 'GET_AD_CONFIG';\nexport const CONFIGURE_PAGE_AD_SLOTS = 'CONFIGURE_PAGE_AD_SLOTS';\nexport const CONFIGURE_ADS_BASE = 'CONFIGURE_ADS_BASE';\nexport const CONFIGURE_ADS = 'CONFIGURE_ADS';\nexport const CONFIGURE_CMP = 'CONFIGURE_CMP';\n","import { startAppListening } from '../../../../../../store/redux/middlewares/listenerMiddleware';\nimport { DisplayAdRenderingManager } from '../providers/displayAdRenderingManager';\n\nimport { createReducer } from '@reduxjs/toolkit';\nimport { configureCMP, renderDisplayAdForSlot, updateConfiguredPageAdLocation } from './adRenderingActionCreators';\n\nimport type { RootStateType } from '../../../../../../store/redux/store';\nimport { getAdConfig } from './adConfigsThunks';\nimport { displayInfiniteScrollAd, refreshAd } from './adRenderingActionCreators';\nimport { clearAdRequest } from './adRenderingThunks';\nimport { configureAds, configurePageAdSlots } from './configureDisplayAdsThunks';\nimport type { DisplayAdSliceState } from './types';\n\nconst initialState: DisplayAdSliceState = {\n adConfigIsFetching: false,\n pageAdsConfigured: false,\n adsConfigured: false,\n isCmpReady: false\n};\n\n// Reducers\nexport const displayAdReducer = createReducer(initialState, (builder) => {\n builder.addCase(refreshAd, () => {\n // no state update here\n });\n builder.addCase(clearAdRequest.pending, (state) => {\n state.adConfig = null;\n state.pageAdsConfigured = false;\n });\n builder.addCase(clearAdRequest.fulfilled, (state) => {\n // TODO:\n // Verify the need for this state update in later stages of ad logic migration\n state.adConfig = null;\n state.pageAdsConfigured = false;\n });\n builder.addCase(displayInfiniteScrollAd, () => {\n // no state update here\n });\n builder.addCase(getAdConfig.pending, (state) => {\n state.adConfigIsFetching = true;\n });\n builder.addCase(getAdConfig.fulfilled, (state, action) => {\n state.adConfigIsFetching = false;\n state.adConfig = action.payload;\n });\n builder.addCase(getAdConfig.rejected, (state, action) => {\n state.adConfigIsFetching = false;\n state.adConfigLoadError = action.error;\n });\n builder.addCase(configurePageAdSlots.pending, (state) => {\n state.pageAdsConfigured = false;\n });\n builder.addCase(configurePageAdSlots.fulfilled, (state, action) => {\n state.pageAdsConfigured = true;\n state.currentConfiguredPageId = action.payload.pageId;\n state.currentConfiguredLatitude = action.payload.latitude;\n state.currentConfiguredLongitude = action.payload.longitude;\n });\n builder.addCase(configureAds.pending, (state) => {\n state.adsConfigured = false;\n });\n builder.addCase(configureAds.fulfilled, (state) => {\n state.adsConfigured = true;\n });\n builder.addCase(updateConfiguredPageAdLocation, (state, action) => {\n state.pageAdsConfigured = true;\n state.currentConfiguredLatitude = action.payload.latitude;\n state.currentConfiguredLongitude = action.payload.longitude;\n });\n builder.addCase(configureCMP, (state) => {\n state.isCmpReady = true;\n });\n});\n\nstartAppListening({\n actionCreator: refreshAd,\n effect: async (action) => {\n // perform side-effects outside of reducers/component\n // as we do not update state with results or return any data from these calls\n const displayAdRenderingManager = new DisplayAdRenderingManager();\n await displayAdRenderingManager.refreshAd(action.payload);\n }\n});\n\nstartAppListening({\n actionCreator: displayInfiniteScrollAd,\n effect: async (action) => {\n const { slotId, adConfig, globalAdConfig } = action.payload;\n // perform side-effects outside of reducers/component\n // as we do not update state with results or return any data from these calls\n const displayAdRenderingManager = new DisplayAdRenderingManager();\n await displayAdRenderingManager.displayInfiniteScrollAdAction(slotId, adConfig, globalAdConfig);\n }\n});\n\nstartAppListening({\n actionCreator: renderDisplayAdForSlot,\n effect: async (action) => {\n // perform side-effects outside of reducers/component\n // as we do not update state with results or return any data from these calls\n // NOTE: Web 1 tries to update state, but this is inaccurate, as we have several ad units per page hence state updates simply\n // means overriding existing state values over and over.\n // A side effect should be enough to cover this use case\n // NOTE - 2: Review Ad rendering to see if we need to spawn child task to handle rendering of ad units concurrently.\n // The current listener will perform one operation at a time\n const displayAdRenderingManager = new DisplayAdRenderingManager();\n await displayAdRenderingManager.renderDisplayAdForSlot(action.payload);\n }\n});\n\n// Selectors\nexport const selectDisplayAds = (state: RootStateType) => state.displayAd;\n","export const pressureUnits = {\n inches: 1,\n millibars: 2\n} as const;\n\nexport const genderUnits = {\n unknown: 'UNKNOWN',\n male: 'MALE',\n female: 'FEMALE'\n} as const;\n\nexport const genderEnum = {\n UNKNOWN: 0,\n MALE: 1,\n FEMALE: 2\n} as const;\n\nexport const windUnits = {\n mph: 1,\n kph: 2,\n knots: 3,\n mps: 4\n} as const;\n\nexport const temperatureUnits = {\n fahrenheit: 1,\n celsius: 2\n} as const;\n\nexport const unitSystemType = {\n english: 1,\n metric: 2\n} as const;\n\nexport const UserInfoDefaultLanguage = 'en-us' as const;\nexport const Unknown = 'unknown' as const;\n\nexport const CompactVerboseKeys = {\n CompactKey: 'compact',\n VerboseKey: 'verbose'\n} as const;\n\nexport const requestHeaderItemKeysFromMiddleware = {\n isBot: 'isbot',\n osVersion: 'osversion',\n osName: 'osname',\n isWebAppView: 'iswebappview',\n xCorrelationId: 'x-correlation-id',\n currentAppRouterDynamicRequestPath: 'x-request-path',\n reqLocationSearchParam: 'location',\n reqStationSearchParam: 'station',\n reqTemperatureSearchParam: 'tu',\n reqPressureSearchParam: 'pu',\n reqWindSpeedSearchParam: 'wsu'\n} as const;\n\nexport const supportedEnvironment = {\n local: 'LOCAL',\n dc: 'DC',\n sc: 'SC',\n pc: 'PC'\n} as const;\n\n// Note that EM setting API was developed long before we added specific settings to forecast and Obs so units are represented differently.\n// More details on the user settings mapping here:\n// https://groundtruth.atlassian.net/wiki/spaces/WBUG/pages/1874410823/Entity+Management+API#EntityManagementAPI-GetSettingsforthespecifiedAppInstance/User\nexport const entityManagementSettingValues = {\n /**\n * Language default: en\n */\n Language: {\n en: 'en',\n es: 'es'\n },\n /**\n * UnitType default: English\n */\n UnitType: {\n English: 'English',\n Metric: 'Metric'\n },\n /**\n * WindUnitType default: m/h\n */\n WindUnitType: {\n mph: 'm/h',\n kph: 'km/h',\n mps: 'm/s',\n knots: 'Knots'\n },\n /**\n * PressureUnitType default: Inches\n */\n PressureUnitType: {\n Inches: 'Inches',\n mb: 'mb'\n },\n /**\n * TemperatureUnit default:\n * fDeg if older UnitType=English or UnitType not defined\n * cDeg if legacy UnitType=Metric\n */\n TemperatureUnit: {\n fahrenheit: 'fDeg',\n celsius: 'cDeg'\n },\n /**\n * DistanceUnit default: mi\n */\n DistanceUnit: {\n miles: 'mi',\n kilometre: 'km'\n },\n /**\n * PrecipitationUnit default: in\n */\n PrecipitationUnit: {\n inches: 'in',\n centimetre: 'cm',\n millimetre: 'mm'\n },\n /**\n * SpeedUnit default:\n * mph if older WindUnitType is not defined.\n * Otherwise it is based on WindUnitType value\n */\n SpeedUnit: {\n milesPerHour: 'mph',\n kilometresPerHour: 'kph',\n knots: 'kn',\n milesPerSecond: 'mps'\n },\n /**\n * PressureUnit default:\n * inHg if older PressureUnitType is not defined.\n * Otherwise it is based on older PressureUnitType value.\n */\n PressureUnit: {\n inchesOfMercury: 'inHg',\n millibars: 'mb'\n },\n /**\n * DirectionUnit default: deg\n */\n DirectionUnit: {\n degree: 'deg',\n radian: 'rad'\n }\n} as const;\n\nexport const PrecipitationRateUnit = {\n /* Inches per Hour */\n InchesPerHour: 'inph',\n /* Millimeters per Hour */\n MillimetersPerHour: 'mmph',\n /* Centimeters per Hour */\n CentimetersPerHour: 'cmph'\n} as const;\n\nexport const DEFAULT_CULTURE_CODE = 'en-US';\n","import { DateTime } from 'luxon';\n\nexport class BaseCustomError extends Error {\n public readonly name: string;\n public readonly isOperationalError: boolean;\n public readonly timestamp: string;\n public readonly errorSource: string;\n public readonly statusCode: number | undefined;\n\n constructor(\n errorName: string,\n errorSource: string,\n description: string,\n isOperationalError: boolean,\n statusCode?: number\n ) {\n super(description);\n this.name = errorName;\n this.errorSource = errorSource;\n this.isOperationalError = isOperationalError;\n this.timestamp = DateTime.now().toString();\n this.statusCode = statusCode;\n\n Error.captureStackTrace(this, this.constructor);\n }\n}\n","import { BaseCustomError } from './baseCustomError';\n\nexport class ConfigurationsLoaderError extends BaseCustomError {\n constructor(errorSource: string, description: string, isOperationalError = false) {\n super('ConfigurationsLoaderError', errorSource, description, isOperationalError);\n }\n}\n","import { BaseCustomError } from './baseCustomError';\n\nexport class EC2MetatdataError extends BaseCustomError {\n constructor(errorSource: string, description: string, isOperationalError: boolean) {\n super('EC2MetatdataError', errorSource, description, isOperationalError);\n }\n}\n","import { HTTPStatusCodeType } from '../../../types/httpStatusCodes';\nimport { BaseCustomError } from './baseCustomError';\n\nexport class FetchError extends BaseCustomError {\n constructor(\n errorSource: string,\n description: string,\n isOperationalError = true,\n httpStatusCode: HTTPStatusCodeType\n ) {\n super('FetchError', errorSource, `StatusCode: ${httpStatusCode} ${description}`, isOperationalError);\n }\n}\n","import { BaseCustomError } from './baseCustomError';\n\nexport class GuardUtilError extends BaseCustomError {\n constructor(errorSource: string, description: string, isOperationalError: boolean) {\n super('GuardUtilError', errorSource, description, isOperationalError);\n }\n}\n","import { HTTPStatusCodeType } from '../../../../types/httpStatusCodes';\nimport { BaseCustomError } from '../baseCustomError';\n\nexport class HttpError extends BaseCustomError {\n constructor(\n errName: string,\n errorSource: string,\n description: string,\n isOperationalError = true,\n httpStatusCode: HTTPStatusCodeType\n ) {\n super(errName ?? 'HttpError', errorSource, description, isOperationalError, httpStatusCode);\n }\n}\n","export const TransientHTTPStatusCodes = {\n REQUEST_TIMEOUT: 408,\n LOCKED: 423,\n TOO_MANY_REQUESTS: 429,\n INTERNAL_SERVER_ERROR: 500,\n BADGATEWAY: 502,\n SERVICE_UNAVAILABLE: 503,\n GATEWAY_TIMEOUT: 504\n} as const;\n\nexport const HttpStatusCode = {\n OK: 200,\n CREATED: 201,\n NO_CONTENT: 204,\n BAD_REQUEST: 400,\n UNPROCESSABLE_ENTITY: 422,\n NOT_FOUND: 404,\n METHOD_NOT_ALLOWED: 405,\n ...TransientHTTPStatusCodes\n} as const;\n","import { HttpStatusCode } from '../../utils/constants/httpStatusCodes';\nimport { HttpError } from './http/httpError';\n\nexport class MethodNotAllowedError extends HttpError {\n constructor(errorSource: string, requestedMethod?: string) {\n super(\n 'MethodNotAllowedError',\n errorSource,\n `Method ${requestedMethod} not allowed`,\n true,\n HttpStatusCode.METHOD_NOT_ALLOWED\n );\n }\n}\n","import { BaseCustomError } from './baseCustomError';\n\nexport class S3ClientServiceError extends BaseCustomError {\n constructor(errorSource: string, description: string, isOperationalError: boolean) {\n super('S3ClientServiceError', errorSource, description, isOperationalError);\n }\n}\n","import { BaseCustomError } from './baseCustomError';\n\nexport class ServiceError extends BaseCustomError {\n constructor(errorSource: string, description: string, isOperationalError: boolean) {\n super('ServiceError', errorSource, description, isOperationalError);\n }\n}\n","import { BaseCustomError } from './baseCustomError';\n\nexport class SingletonFactoryError extends BaseCustomError {\n constructor(errorSource: string, description: string, isOperationalError: boolean) {\n super('SingletonFactory', errorSource, description, isOperationalError);\n }\n}\n","import { BaseCustomError } from './baseCustomError';\n\nexport class ParseError extends BaseCustomError {\n constructor(errorSource: string, description: string, isOperationalError: boolean) {\n super('ParseError', errorSource, description, isOperationalError);\n }\n}\n","import { Logger } from 'pino';\nimport { ConfigurationsLoaderError } from './customErrors/configurationLoaderError';\nimport { EC2MetatdataError } from './customErrors/ec2MetadataError';\nimport { FetchError } from './customErrors/fetchError';\nimport { GuardUtilError } from './customErrors/guardUtilError';\nimport { MethodNotAllowedError } from './customErrors/methodNotAllowedError';\nimport { ParseError } from './customErrors/parseError';\nimport { S3ClientServiceError } from './customErrors/s3ClientError';\nimport { SingletonFactoryError } from './customErrors/singletonFactoryError';\n\nclass ErrorHandler {\n #errorTypes = [\n ConfigurationsLoaderError,\n EC2MetatdataError,\n EC2MetatdataError,\n FetchError,\n GuardUtilError,\n ParseError,\n S3ClientServiceError,\n SingletonFactoryError,\n MethodNotAllowedError\n ];\n\n async handle(error: Error | unknown, logger: Logger, errorHandlerCb?: () => void) {\n const isKnownError = this.#errorTypes.some((errType) => error instanceof errType);\n this.#errorObjectFormatter(error, isKnownError, logger);\n errorHandlerCb?.();\n }\n\n #errorObjectFormatter(error: any, isKnownError: boolean, logger: Logger) {\n if (isKnownError) {\n const formattedErrorMessage = `A ${error.name} occurred in ${error.errorSource} at ${error.timestamp}: Reason: ${error.message}`;\n logger?.error({ message: formattedErrorMessage, stack: error?.stack });\n } else {\n const errMessage = error?.message || 'An unknown error occurred';\n logger?.error({ message: errMessage, stack: error?.stack });\n }\n }\n}\n\nexport const errorHandlerInstance = new ErrorHandler();\n","export * from './customErrors/configurationLoaderError';\nexport * from './customErrors/ec2MetadataError';\nexport * from './customErrors/fetchError';\nexport * from './customErrors/guardUtilError';\nexport * from './customErrors/http/httpError';\nexport * from './customErrors/methodNotAllowedError';\nexport * from './customErrors/s3ClientError';\nexport * from './customErrors/serviceError';\nexport * from './customErrors/singletonFactoryError';\nexport * from './errorHandler';\n","/* eslint-disable no-extra-parens */\n/* eslint-disable operator-linebreak */\nimport { DateTime } from 'luxon';\nimport { User } from '../../../store/userStore/user';\nimport { ConfigurationType } from '../../configurationsLoader/types/configuration';\nimport { GuardUtilError } from '../../errors';\nimport {\n EnvConfigurationsType,\n ObjectStorage,\n ServiceClass\n} from '../../services/envConfigService/environmentConfigsProvider/types/environmentConfig';\nimport { FavoriteLocation, UserLocation } from '../../services/locationDataService/types';\nimport { safeStringify } from '../serializationHelpers/safeStringify';\n\nexport const ThrowIfInvalidEnvironmentConfig = (envConfig: ConfigurationType) => {\n const { ApplicationDetails, PageConfigService, AdsConfigService, StationsService } = envConfig || {};\n if (\n !ApplicationDetails?.Environment &&\n !(PageConfigService && Object.keys(PageConfigService).length > 0) &&\n !(AdsConfigService && Object.keys(AdsConfigService).length > 0) &&\n !(StationsService && Object.keys(StationsService).length > 0)\n ) {\n throw new GuardUtilError('ThrowIfInvalidEnvironmentConfig', 'Invalid environment configs.', false);\n }\n};\n\nconst validateCommonServiceProperties = (config: ServiceClass) => {\n const {\n ErrorRetryIntervalSeconds,\n NoDataRetryIntervalSeconds,\n ErrorMaxRetries,\n NoDataMaxRetries,\n RefreshIntervalHours\n } = config || {};\n\n return (\n Number.isInteger(ErrorRetryIntervalSeconds) &&\n Number.isInteger(NoDataRetryIntervalSeconds) &&\n Number.isInteger(ErrorMaxRetries) &&\n Number.isInteger(NoDataMaxRetries) &&\n Number.isInteger(RefreshIntervalHours)\n );\n};\n\nconst validateConfigObjectStorage = (objectStorage: ObjectStorage) => {\n return objectStorage?.RootContainer && objectStorage?.Path && objectStorage?.StorageFilter?.Extensions?.length;\n};\n\nexport const ThrowIfInvalidObjectStorage = (config: ServiceClass) => {\n const { ObjectStorage } = config || {};\n if (!validateConfigObjectStorage(ObjectStorage)) {\n throw new GuardUtilError('ThrowIfInvalidObjectStorage', 'Invalid Config Object Storage.', false);\n }\n};\n\nexport const ThrowIfInvalidServiceConfig = (serviceConfig: ServiceClass) => {\n if (!validateCommonServiceProperties(serviceConfig)) {\n throw new GuardUtilError('ThrowIfInvalidServiceConfig', 'Invalid Service configs.', false);\n }\n};\n\nexport const isValidString = (str?: string): str is string => {\n return typeof str === 'string' && str.trim() !== '';\n};\n\nexport const isValidNumber = (num: unknown): num is number => {\n return typeof num === 'number' && !isNaN(num);\n};\n\nexport const isValidBoolean = (value: unknown): value is boolean => {\n return typeof value === 'boolean';\n};\n\nexport const isValidDateTime = (value: unknown): value is DateTime => {\n return value instanceof DateTime;\n};\n\nexport const isValidPlainObject = (value?: any) => {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n};\n\nexport const isValidArray = (value?: any) => {\n return Array.isArray(value);\n};\n\nexport const isValidUserLocation = (userLocation: any): userLocation is UserLocation => {\n return (\n isValidPlainObject(userLocation) &&\n isValidString(userLocation?.Id) &&\n isValidPlainObject(userLocation?.Locality)\n );\n};\n\nexport const isValidFavoriteLocation = (favLocation: any): favLocation is FavoriteLocation => {\n return (\n isValidPlainObject(favLocation) &&\n isValidString(favLocation?.Id) &&\n isValidNumber(favLocation?.Position) &&\n isValidPlainObject(favLocation?.Location)\n );\n};\n\nexport const isValidUserType = (user: any): user is User => {\n return (\n isValidString(user?.Id) &&\n isValidNumber(user?.Units) &&\n isValidNumber(user?.TempUnit) &&\n isValidNumber(user?.WindUnit) &&\n isValidNumber(user?.PressureUnit) &&\n isValidString(user?.DeviceId)\n );\n};\n\nexport function throwIfInvalidArgument any>(\n validatorFn: T,\n parameterToBeValidated: object | number | string | boolean,\n parameterName: string,\n parameterType: string,\n serviceName: string,\n callerName?: string\n) {\n if (!validatorFn(parameterToBeValidated)) {\n throw new GuardUtilError(\n `${serviceName}:throwIfInvalidArgument:${callerName}`,\n `Invalid value provided for ${parameterName}. Expected an type: ${parameterType} but recieved ${safeStringify(\n parameterToBeValidated\n )}`,\n false\n );\n }\n}\n\nexport const isValidBasin = (basin: string) => {\n return basin === 'at' || basin === 'ep' || basin === 'cp';\n};\n\nexport const hasHyphen = (str: string): boolean => {\n if (!isValidString(str)) {\n return false;\n }\n\n return str.indexOf('-') !== -1;\n};\n\nexport const hasWhiteSpace = (str: string): boolean => {\n if (!isValidString(str)) {\n return false;\n }\n\n return str.includes(' ') || str.includes('%20');\n};\n","/* eslint-disable camelcase */\n/* eslint-disable operator-linebreak */\nimport { createAction, createReducer } from '@reduxjs/toolkit';\nimport type { PageRouteInfo, StdParameters } from '../../../../../../components/types';\nimport type { RootStateType } from '../../../../store';\nimport { getAppConfig } from './appConfigThunks';\nimport {\n APP_FORM_FACTOR,\n DEFAULT_APPLICATION_NAME,\n SET_APP_STD_PARAMETERS,\n SET_PAGE_ROUTE_INFO,\n STAGING_ENVIRONMENT,\n TOGGLE_AD_DISPLAY_CONFIG\n} from './constants';\nimport type { AppConfigSliceState, PlatformType, SetAdsCookieDisplayActionParams, TaboolaInfo } from './types';\n\nconst userInitialState: AppConfigSliceState = {\n isFetchingAppConfig: false,\n enableAds: false,\n enableNotifications: false,\n enableTaboola: false,\n enableTermsAndConditionsNotification: false,\n enableUseOfCookiesNotification: false\n};\n\nexport const setAdsCookieDisplay = createAction(\n TOGGLE_AD_DISPLAY_CONFIG,\n function prepare({\n enableAds,\n enableNotifications,\n enableTaboola,\n enableTermsAndConditionsNotification,\n enableUseOfCookiesNotification,\n adTarget,\n sourceProviderId\n }: SetAdsCookieDisplayActionParams) {\n return {\n payload: {\n enableAds,\n enableNotifications,\n enableTaboola,\n enableTermsAndConditionsNotification,\n enableUseOfCookiesNotification,\n adTarget,\n sourceProviderId\n }\n };\n }\n);\n\nexport const setAppStdParameters = createAction(SET_APP_STD_PARAMETERS, function prepare(stdParameters: StdParameters) {\n return {\n payload: {\n stdParameters\n }\n };\n});\n\nexport const setPageRouteInfo = createAction(SET_PAGE_ROUTE_INFO, function prepare(pageRouteInfo: PageRouteInfo) {\n return {\n payload: {\n pageRouteInfo\n }\n };\n});\n\nexport const appConfigReducer = createReducer(userInitialState, (builder) => {\n builder.addCase(getAppConfig.pending, (state) => {\n state.isFetchingAppConfig = true;\n state.error = undefined;\n });\n builder.addCase(getAppConfig.fulfilled, (state, action) => {\n const {\n WB_AppKey,\n AndroidAppDownloadLink,\n AndroidSmartAppBannerURL,\n ApplicationName,\n AppVersion,\n BaseURLs,\n BotAppInstanceId,\n DesktopAppDownloadLink,\n EducationVideoPageURL,\n EnableDesktopAppDownloadLink,\n Environment,\n DefaultAdRefeshIntervalSeconds,\n FeaturedVideoPrerollPlacementId,\n ForecastIconContent,\n HurricaneOutlookDetailsImages,\n PageContentDoesNotRequireActiveLocationData,\n PageContentDoesNotRequireActiveLocationData2,\n IOSAppDownloadLink,\n IosSmartAppBannerURL,\n KochavaClickURL,\n MacosAppDownloadLink,\n NationalOutlookVideoPrerollPlacementId,\n Pulse,\n SparkMap,\n StoriesVideoPrerollPlacementId,\n SupportEmailAddress,\n Taboola,\n TaboolaInfo,\n VideoAdRules,\n VideoPrerollAdClient,\n VideoPrerollAutoplayAdsMuted,\n VideoPrerollOffset,\n VideoPrerollSkipOffset,\n VideoPreRollUrls,\n VideoPrerollVPaidControls,\n PressLinkActive,\n EnableNewFooterUIWithCMPIntegration,\n EnableNewHourlyForecastLinksOn10DayPage,\n UsPrivacyManagerId,\n SourcePointCMPAccountId,\n SourcePointCMPPropertyId,\n SourcePointCMPPropertyHref,\n SourcePointCMPBaseEndpoint,\n SourcePointCMPCampaignEnv,\n AirQualityAttributionUrl,\n DisclosureRequestEmail,\n DeletionRequestEmail,\n PrivacyRightsEmail,\n CcpaInfoEmail,\n PrivacyRightsLink,\n PrivacyStatement,\n MyIdfaLink,\n AuthClientSettings,\n NewPrivacyPolicyMockData,\n IsComplianceApiV3Enabled,\n GTMediaCampaign,\n Platform,\n Mapbox,\n PollingTimes,\n DisableAds,\n adBlockDetectionEnabled,\n FouAnalytics,\n Persistent320x50AdForMobileWeb,\n GoogleTagManager,\n Boltive,\n Firebase\n } = action.payload;\n const authId = Pulse.ID;\n const secret = Pulse.Secret;\n const adTargetingBaseUrl =\n Environment === STAGING_ENVIRONMENT ? BaseURLs.AdTargeting.Stage : BaseURLs.AdTargeting.Prod;\n const alertsBaseUrl = BaseURLs.Alerts.Prod;\n const outdoorSportsBaseUrl = BaseURLs.OutdoorSports.Prod;\n const notificationsBaseUrl =\n Environment === STAGING_ENVIRONMENT ? BaseURLs.Notifications.Stage : BaseURLs.Notifications.Prod;\n const aqiBaseUrl = BaseURLs.AQI.Prod;\n const hurricaneBaseUrl =\n Environment === STAGING_ENVIRONMENT ? BaseURLs.Hurricane.Stage : BaseURLs.Hurricane.Prod;\n const hurricaneOutlookBaseUrl = BaseURLs.HurricaneOutlook.Prod;\n const forecastBaseUrl = BaseURLs.Forecast.Prod;\n const locationBaseUrl = BaseURLs.Locations.Prod;\n const fireBaseUrl = BaseURLs.Fire.Prod;\n const obsBaseUrl = BaseURLs.Observations.Prod;\n const pollenBaseUrl = BaseURLs.Pollen.Prod;\n const lightningBaseUrl = BaseURLs.Lightning.Prod;\n const loggingBaseUrl = BaseURLs.Logging.Prod;\n const uvBaseUrl = BaseURLs.UV.Prod;\n const almanacBaseUrl = BaseURLs.Almanac.Prod;\n const mapBaseUrl = BaseURLs.GivMetadata;\n const tileBaseUrl = BaseURLs.Giv;\n const contentMgmtBaseUrl = BaseURLs.Content.Prod;\n const legalBaseUrl = BaseURLs.Legal.Prod;\n const storiesBaseUrl = BaseURLs.Stories.Prod;\n const snowSkiBaseUrl = BaseURLs.SnowSki.Prod;\n const videoBaseUrl = BaseURLs.Video.Prod;\n const feedbackBaseUrl = BaseURLs.Feedback.Prod;\n const sparkMapBaseUrl = SparkMap.Prod;\n const emLoginUrl = BaseURLs.EmLogin;\n const mapboxAccessToken = Mapbox.PublicKey;\n const appId = ApplicationName || DEFAULT_APPLICATION_NAME;\n const appVersion = AppVersion;\n const educationVideoPageURL = EducationVideoPageURL;\n const kochavaClickURL = KochavaClickURL;\n const iosSmartAppBannerURL = IosSmartAppBannerURL;\n const androidSmartAppBannerURL = AndroidSmartAppBannerURL;\n const formFactor = APP_FORM_FACTOR;\n const doNotTrack = navigator.doNotTrack;\n const forecastIconResourceList = ForecastIconContent.IconContentResourceList;\n const forecastIconSize = ForecastIconContent.ForecastIconSize;\n const forecastIconSet = ForecastIconContent.ForecastIconSet;\n const pressLinkActive = PressLinkActive;\n const airQualityAttributionUrl = AirQualityAttributionUrl;\n const disclosureRequestEmail = DisclosureRequestEmail;\n const deletionRequestEmail = DeletionRequestEmail;\n const privacyRightsEmail = PrivacyRightsEmail;\n const ccpaInfoEmail = CcpaInfoEmail;\n const privacyRightsLink = PrivacyRightsLink;\n const privacyStatement = PrivacyStatement;\n const myIdfaLink = MyIdfaLink;\n const authClientSettings = AuthClientSettings;\n const pageIdsToSupportLocationChanges = PageContentDoesNotRequireActiveLocationData;\n const pageIdsToSupportLocationChanges2 = PageContentDoesNotRequireActiveLocationData2;\n const newPrivacyPolicyMockData = NewPrivacyPolicyMockData;\n const isComplianceApiV3Enabled = IsComplianceApiV3Enabled;\n const gTMediaCampaignIsEnabled = GTMediaCampaign.IsEnabled;\n const homePagePixelImgSourceUrl = GTMediaCampaign.HomePagePixelImgSourceUrl;\n const appDownloadPagePixelImgSourceUrl = GTMediaCampaign.AppDownloadPagePixelImgSourceUrl;\n const platform = Platform as PlatformType;\n const hurricaneOutlookDetailsImages = HurricaneOutlookDetailsImages;\n\n const alertsPollerDelaySeconds = PollingTimes?.Alerts;\n const hourlyPollerDelaySeconds = PollingTimes?.HourlyForecast;\n const dailyForecastPollerDelaySeconds = PollingTimes?.DailyForecast;\n\n const config = {\n appId,\n appVersion,\n authId,\n fireBaseUrl,\n formFactor,\n adTargetingBaseUrl,\n hurricaneBaseUrl,\n hurricaneOutlookBaseUrl,\n alertsBaseUrl,\n outdoorSportsBaseUrl,\n notificationsBaseUrl,\n lightningBaseUrl,\n loggingBaseUrl,\n aqiBaseUrl,\n forecastBaseUrl,\n locationBaseUrl,\n obsBaseUrl,\n pollenBaseUrl,\n almanacBaseUrl,\n uvBaseUrl,\n contentMgmtBaseUrl,\n legalBaseUrl,\n storiesBaseUrl,\n snowSkiBaseUrl,\n videoBaseUrl,\n feedbackBaseUrl,\n sparkMapBaseUrl,\n forecastIconResourceList,\n forecastIconSize,\n forecastIconSet,\n mapBaseUrl,\n mapboxAccessToken,\n secret,\n tileBaseUrl,\n doNotTrack,\n defaultAdRefeshIntervalSeconds: DefaultAdRefeshIntervalSeconds || 300, //Default value is 300 seconds (5 minutes)\n videoPreRollUrls: VideoPreRollUrls,\n videoPrerollAdClient: VideoPrerollAdClient,\n videoPrerollOffset: VideoPrerollOffset,\n videoPrerollSkipOffset: VideoPrerollSkipOffset,\n videoPrerollVPaidControls: VideoPrerollVPaidControls,\n videoPrerollAutoplayAdsMuted: VideoPrerollAutoplayAdsMuted,\n featuredVideoPrerollPlacementId: FeaturedVideoPrerollPlacementId,\n nationalOutlookVideoPrerollPlacementId: NationalOutlookVideoPrerollPlacementId,\n storiesVideoPrerollPlacementId: StoriesVideoPrerollPlacementId,\n botAppInstanceId: BotAppInstanceId,\n educationVideoPageURL,\n iosAppDownloadLink: IOSAppDownloadLink,\n macosAppDownloadLink: MacosAppDownloadLink,\n androidAppDownloadLink: AndroidAppDownloadLink,\n desktopAppDownloadLink: DesktopAppDownloadLink,\n enableDesktopAppDownloadLink: EnableDesktopAppDownloadLink,\n supportEmailAddress: SupportEmailAddress,\n taboolaInfo: TaboolaInfo as unknown as TaboolaInfo[],\n taboola: Taboola,\n kochavaClickURL,\n iosSmartAppBannerURL,\n androidSmartAppBannerURL,\n videoAdRules: VideoAdRules,\n emLoginUrl,\n appKey: WB_AppKey,\n alertsPollerDelaySeconds,\n hourlyPollerDelaySeconds,\n pressLinkActive,\n dailyForecastPollerDelaySeconds,\n airQualityAttributionUrl,\n disclosureRequestEmail,\n deletionRequestEmail,\n privacyRightsEmail,\n ccpaInfoEmail,\n privacyRightsLink,\n privacyStatement,\n myIdfaLink,\n pageIdsToSupportLocationChanges,\n pageIdsToSupportLocationChanges2,\n authClientSettings,\n newPrivacyPolicyMockData,\n isComplianceApiV3Enabled,\n gTMediaCampaignIsEnabled,\n platform,\n homePagePixelImgSourceUrl,\n appDownloadPagePixelImgSourceUrl,\n hurricaneOutlookDetailsImages,\n disableAds: DisableAds,\n adBlockDetectionEnabled,\n fouAnalytics: FouAnalytics,\n googleTagManager: GoogleTagManager,\n enableNewFooterUIWithCMPIntegration: EnableNewFooterUIWithCMPIntegration,\n enableNewHourlyForecastLinksOn10DayPage: EnableNewHourlyForecastLinksOn10DayPage,\n usPrivacyManagerId: UsPrivacyManagerId,\n sourcePointCMPAccountId: SourcePointCMPAccountId,\n sourcePointCMPPropertyId: SourcePointCMPPropertyId,\n sourcePointCMPPropertyHref: SourcePointCMPPropertyHref,\n sourcePointCMPBaseEndpoint: SourcePointCMPBaseEndpoint,\n sourcePointCMPCampaignEnv: SourcePointCMPCampaignEnv,\n boltive: Boltive,\n firebase: Firebase,\n persistent320x50AdForMobileWeb: Persistent320x50AdForMobileWeb\n };\n\n state.config = config;\n state.isFetchingAppConfig = false;\n state.error = undefined;\n });\n builder.addCase(getAppConfig.rejected, (state, action) => {\n state.isFetchingAppConfig = false;\n state.error = action.error;\n });\n builder.addCase(setAdsCookieDisplay, (state, action) => {\n state.enableAds = action.payload.enableAds;\n state.enableNotifications = action.payload.enableNotifications;\n state.enableTaboola = action.payload.enableTaboola;\n state.enableTermsAndConditionsNotification = action.payload.enableTermsAndConditionsNotification;\n state.enableUseOfCookiesNotification = action.payload.enableUseOfCookiesNotification;\n state.adTarget = action.payload.adTarget;\n state.sourceProviderId = action.payload.sourceProviderId;\n });\n builder.addCase(setAppStdParameters, (state, action) => {\n state.stdParameters = action.payload.stdParameters;\n });\n builder.addCase(setPageRouteInfo, (state, action) => {\n state.pageRouteInfo = action.payload.pageRouteInfo;\n });\n});\n\n// selectors\nexport const selectAppConfig = (state: RootStateType) => state.appConfig;\nexport const selectPageRouteInfo = (state: RootStateType) => state.appConfig.pageRouteInfo;\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport axios from 'axios';\n\nimport type { EnvConfigurationsType } from '../../../../../../lib/services/envConfigService/environmentConfigsProvider/types/environmentConfig';\nimport { GET_APP_CONFIG, GET_APP_CONFIG_API_PATH } from './constants';\n\nexport const getAppConfig = createAsyncThunk(GET_APP_CONFIG, async (_, { rejectWithValue }) => {\n try {\n const userData = await axios.get(GET_APP_CONFIG_API_PATH);\n\n return {\n ...userData.data.Publishable,\n adBlockDetectionEnabled: userData.data.AdBlockDetectionEnabled\n };\n } catch (error) {\n return rejectWithValue(error);\n }\n});\n","export const GET_APP_CONFIG = 'GET_APP_CONFIG';\nexport const TOGGLE_AD_DISPLAY_CONFIG = 'TOGGLE_AD_DISPLAY_CONFIG';\nexport const SET_APP_STD_PARAMETERS = 'SET_APP_STD_PARAMETERS';\nexport const SET_PAGE_ROUTE_INFO = 'SET_PAGE_ROUTE_INFO';\n\nexport const GET_APP_CONFIG_API_PATH = '/web2/api/configuration';\nexport const DEFAULT_APPLICATION_NAME = 'wbweb';\nexport const APP_FORM_FACTOR = 'website';\nexport const STAGING_ENVIRONMENT = 'Staging';\n","export const GET_USER_PROFILE = 'GET_USER_PROFILE';\nexport const UPDATE_USER_ACTIVE_LOCATION = 'UPDATE_USER_ACTIVE_LOCATION';\nexport const SET_INITIAL_USER_PROFILE = 'SET_INITIAL_USER_PROFILE';\nexport const GET_USER_PROFILE_API_PATH = '/web2/api/user/profile';\n","import { createAction, createReducer } from '@reduxjs/toolkit';\nimport { type UserType } from '../../../../../userStore/types';\nimport type { RootStateType } from '../../../../store';\nimport { SET_INITIAL_USER_PROFILE } from './constants';\nimport type { UserSliceState } from './types';\nimport { getUserProfile } from './userThunks';\n\nconst userInitialState: UserSliceState = {\n isFetchingUser: false\n};\n\nexport const setInitialUserProfile = createAction(SET_INITIAL_USER_PROFILE, function prepare(userProfile: UserType) {\n return {\n payload: userProfile\n };\n});\n\nexport const userReducer = createReducer(userInitialState, (builder) => {\n builder.addCase(getUserProfile.pending, (state) => {\n state.isFetchingUser = true;\n state.error = undefined;\n });\n builder.addCase(getUserProfile.fulfilled, (state, action) => {\n state.userProfile = { ...action.payload };\n state.isFetchingUser = false;\n state.error = undefined;\n });\n builder.addCase(getUserProfile.rejected, (state, action) => {\n state.isFetchingUser = false;\n state.error = action.error;\n });\n builder.addCase(setInitialUserProfile, (state, action) => {\n state.userProfile = action.payload;\n });\n});\n\n// selectors\nexport const selectUserProfile = (state: RootStateType) => state.user;\n","import { createAsyncThunk } from '@reduxjs/toolkit';\n\nimport axios from 'axios';\nimport type { UserType } from '../../../../../userStore/types';\nimport { GET_USER_PROFILE, GET_USER_PROFILE_API_PATH } from './constants';\nimport type { GetUserProfileActionParams } from './types';\n\nexport const getUserProfile = createAsyncThunk(\n GET_USER_PROFILE,\n async ({ locationSlugName, stationInfo }: GetUserProfileActionParams, { rejectWithValue }) => {\n try {\n const userProfile = await axios.get<{\n user: UserType;\n }>(GET_USER_PROFILE_API_PATH, {\n params: {\n location: locationSlugName,\n station: stationInfo\n }\n });\n\n return userProfile.data.user;\n } catch (error) {\n return rejectWithValue(error);\n }\n }\n);\n","import type { TypedAddListener, TypedStartListening } from '@reduxjs/toolkit';\nimport { addListener, createListenerMiddleware } from '@reduxjs/toolkit';\n\nimport type { AppDispatch, RootStateType } from '../store';\n\nexport const listenerMiddleware = createListenerMiddleware();\n\nexport type AppStartListening = TypedStartListening;\n\nexport const startAppListening = listenerMiddleware.startListening as AppStartListening;\n\nexport const addAppListener = addListener as TypedAddListener;\n","import type { TypedUseSelectorHook } from 'react-redux';\nimport { useDispatch, useSelector } from 'react-redux';\nimport type { AppDispatch, RootStateType } from '../store';\n\n// Use throughout your app instead of plain 'useDispatch' and 'useSelector'\nexport const useAppDispatch: () => AppDispatch = useDispatch;\nexport const useAppSelector: TypedUseSelectorHook = useSelector;\n"],"names":["GET_AD_CONFIG_URI","GET_AD_CONFIG_CACHE_KEY","pulseApiHttpClientTimeout","validPriceGranularityValues","DisplayAdRenderingManager","DisplayAdsBaseProvider","renderDisplayAdForSlot","slotId","appNexus","anq","push","showTag","clearAdRequest","_this_preBid_removeAdUnit","_this_preBid","clearRequest","preBid","removeAdUnit","call","refreshAd","param","pageId","globalAdConfig","isInfiniteScrollAd","infiniteScrollAdDivId","Promise","resolve","reject","pageAdConfig","adElement","adserverRefreshRequestSent","isAdServerRefreshFailSafe","slotMap","PageAdConfigs","find","pageConfig","PageId","toLowerCase","infiniteAdSlotIdExclusionSet","Set","baseInfiniteScrollAdSlotIds","Slots","element","SlotId","has","concat","adSlot","name","divId","sizes","registeredSlotId","AdProviderConfig","forEach","size","w","h","adSlotData","slot","defineAdSlotTag","callAdServer","Object","_this_preBid_setTargetingForAst","_this_appNexus_refresh","_this_appNexus","bidResponses","keys","length","setTargetingForAst","refresh","enablePreBid","disablePrebidOnPagesWithIds","includes","que","rp","requestBids","callback","setTimeout","error","displayInfiniteScrollAdAction","adConfig","adserverRequestSent","callAdServerForInfiniteScroll","loadTags","constructor","_this_appNexus_defineTag","tagDefinition","mediaTypes","banner","targetId","tagId","TagId","undefined","enableSafeFrame","defaultEnableIndividualAdSafeFrame","safeframeConfig","allowExpansionByPush","allowSafeFrameExpansionByPush","allowExpansionByOverlay","allowSafeFrameExpansionByOverlay","defineTag","window","apntag","pbjs","_pulseStorageManager","WeakMap","_pulseApiHttpClient","AdConfigsProvider","PulseBaseProvider","getAdConfigSyncer","params","id","syncParams","pulseApi","key","syncData","queryParams","uri","responseValidationFunction","response","getAdConfig","priceGranularity","JSON","stringify","_class_private_field_get","_","pulseApiHttpClient","pulseStorageManager","loadFromStorage","adConfigsProviderCtorParams","options","logger","pulseStorage","getStorageInstance","timeout","retryOptions","emToken","_class_private_field_init","sync","bind","createAsyncThunk","GET_AD_CONFIG","param1","baseUrl","secret","authId","rejectWithValue","adConfigsProvider","PulseProviderBuilder","withPulseProviderArguments","build","createAction","REFRESH_AD","payload","displayInfiniteScrollAd","DISPLAY_INFINITE_SCROLL_AD","GET_DISPLAY_AD_FOR_SLOT","configureCMP","CONFIGURE_CMP","updateConfiguredPageAdLocation","UPDATE_CONFIGURED_PAGE_AD_LOCATION","latitude","longitude","CLEAR_AD_REQUEST","displayAdRenderingManager","success","_configureUsPrivacyOnPrebid","WeakSet","_configureBidderLevelFirstPartyDataOnPrebid","_configureAdServerDebugging","_isAdBlockRecoveryEngaged","_generatePageOptions","_getGender","ConfigureDisplayAdsProvider","configureAds","enableAdDebugging","enablePrebidAdDebugging","_class_private_method_get","configureUsPrivacyOnPrebid","configureBidderLevelFirstPartyDataOnPrebid","configureAdServerDebugging","enableDebug","endPoint","setEndpoint","pageOptions","generatePageOptions","setPageOpts","setSafeFrameConfig","configurePageSlots","currentScreenSize","cameraId","ScreenSizes","newsDetailTagIds","newsTagIds","weatherCamDetailTagIds","weatherCamTagIds","trafficCamDetailTagIds","trafficCamTagIds","_this_appNexus_loadTags","adSlotIds","map","x","configurePreBid","adapterConfigs","mediaTypePriceGranularity","overrideBidderSequence","publisherDomain","s2sConfig","sizeConfig","moduleConfig","config","isValidBoolean","bidderSequence","isValidString","isValidPlainObject","video","native","trim","priceGranularityWithBucket","buckets","isValidArray","accountId","adapter","endpoint","syncEndpoint","isValidNumber","Array","isArray","mediaQuery","sizesSupported","value","setConfig","_class_private_method_init","targetingParameters","keywords","us_privacy","consentManagement","usp","cmpApi","consentData","getUSPData","uspString","enableBidderLevelFirstPartyData","firstPartyDataSupportedBidders","setBidderConfig","bidders","ortb2","site","ext","data","enableDebugFromConfigs","enablePrebidFromConfig","forceEnableAdDebugging","forceEnablePrebidAdDebugging","debug","isAdBlockRecoveryEngaged","admiralStorageKey","adBlockRecoveryData","localStorage","getItem","parseFloat","split","admiralAdBlockerStorageKey","apnxSetPageKeywords","member","memberId","publisherId","disablePsa","supplyType","app","appid","appId","user","gender","getGender","userGender","language","languageCode","dnt","doNotTrack","device","devTime","Math","round","Date","getTime","useragent","os","osVersion","geo","lat","lng","country","region","city","zip","state","disabled","genderEnum","MALE","genderUnits","male","FEMALE","female","unknown","configurePageAdSlots","CONFIGURE_PAGE_AD_SLOTS","configureDisplayAdsProvider","CONFIGURE_ADS","stationId","providerId","adServer","units","stdParameters","adTargetingBaseUrl","dispatch","wrappedParamsResult","getAdTargetingParameters","verbose","paramsResult","unwrapResult","tp","clonedAdConfig","displayAdReducer","createReducer","adConfigIsFetching","pageAdsConfigured","adsConfigured","isCmpReady","builder","addCase","pending","fulfilled","action","rejected","adConfigLoadError","currentConfiguredPageId","currentConfiguredLatitude","currentConfiguredLongitude","startAppListening","actionCreator","effect","selectDisplayAds","displayAd","UNKNOWN","entityManagementSettingValues","Language","en","es","UnitType","English","Metric","WindUnitType","mph","kph","mps","knots","PressureUnitType","Inches","mb","TemperatureUnit","fahrenheit","celsius","DistanceUnit","miles","kilometre","PrecipitationUnit","inches","centimetre","millimetre","SpeedUnit","milesPerHour","kilometresPerHour","milesPerSecond","PressureUnit","inchesOfMercury","millibars","DirectionUnit","degree","radian","PrecipitationRateUnit","InchesPerHour","MillimetersPerHour","CentimetersPerHour","BaseCustomError","Error","errorName","errorSource","description","isOperationalError","statusCode","timestamp","DateTime","now","toString","captureStackTrace","ConfigurationsLoaderError","EC2MetatdataError","FetchError","httpStatusCode","GuardUtilError","HttpError","errName","MethodNotAllowedError","requestedMethod","S3ClientServiceError","SingletonFactoryError","ParseError","_errorTypes","_errorObjectFormatter","ErrorHandler","handle","errorHandlerCb","isKnownError","errorTypes","some","errType","errorObjectFormatter","formattedErrorMessage","message","stack","errMessage","str","num","isNaN","setAdsCookieDisplay","TOGGLE_AD_DISPLAY_CONFIG","enableAds","enableNotifications","enableTaboola","enableTermsAndConditionsNotification","enableUseOfCookiesNotification","adTarget","sourceProviderId","setAppStdParameters","SET_APP_STD_PARAMETERS","setPageRouteInfo","SET_PAGE_ROUTE_INFO","pageRouteInfo","appConfigReducer","isFetchingAppConfig","getAppConfig","WB_AppKey","AndroidAppDownloadLink","AndroidSmartAppBannerURL","ApplicationName","AppVersion","BaseURLs","BotAppInstanceId","DesktopAppDownloadLink","EducationVideoPageURL","EnableDesktopAppDownloadLink","Environment","DefaultAdRefeshIntervalSeconds","FeaturedVideoPrerollPlacementId","ForecastIconContent","HurricaneOutlookDetailsImages","PageContentDoesNotRequireActiveLocationData","PageContentDoesNotRequireActiveLocationData2","IOSAppDownloadLink","IosSmartAppBannerURL","KochavaClickURL","MacosAppDownloadLink","NationalOutlookVideoPrerollPlacementId","Pulse","SparkMap","StoriesVideoPrerollPlacementId","SupportEmailAddress","Taboola","TaboolaInfo","VideoAdRules","VideoPrerollAdClient","VideoPrerollAutoplayAdsMuted","VideoPrerollOffset","VideoPrerollSkipOffset","VideoPreRollUrls","VideoPrerollVPaidControls","PressLinkActive","EnableNewFooterUIWithCMPIntegration","EnableNewHourlyForecastLinksOn10DayPage","UsPrivacyManagerId","SourcePointCMPAccountId","SourcePointCMPPropertyId","SourcePointCMPPropertyHref","SourcePointCMPBaseEndpoint","SourcePointCMPCampaignEnv","AirQualityAttributionUrl","DisclosureRequestEmail","DeletionRequestEmail","PrivacyRightsEmail","CcpaInfoEmail","PrivacyRightsLink","PrivacyStatement","MyIdfaLink","AuthClientSettings","NewPrivacyPolicyMockData","IsComplianceApiV3Enabled","GTMediaCampaign","Platform","Mapbox","PollingTimes","DisableAds","adBlockDetectionEnabled","FouAnalytics","Persistent320x50AdForMobileWeb","GoogleTagManager","Boltive","Firebase","ID","Secret","STAGING_ENVIRONMENT","AdTargeting","Stage","Prod","alertsBaseUrl","Alerts","outdoorSportsBaseUrl","OutdoorSports","notificationsBaseUrl","Notifications","aqiBaseUrl","AQI","hurricaneBaseUrl","Hurricane","hurricaneOutlookBaseUrl","HurricaneOutlook","forecastBaseUrl","Forecast","locationBaseUrl","Locations","fireBaseUrl","Fire","obsBaseUrl","Observations","pollenBaseUrl","Pollen","lightningBaseUrl","Lightning","loggingBaseUrl","Logging","uvBaseUrl","UV","almanacBaseUrl","Almanac","mapBaseUrl","GivMetadata","tileBaseUrl","Giv","contentMgmtBaseUrl","Content","legalBaseUrl","Legal","storiesBaseUrl","Stories","snowSkiBaseUrl","SnowSki","videoBaseUrl","Video","feedbackBaseUrl","Feedback","sparkMapBaseUrl","emLoginUrl","EmLogin","mapboxAccessToken","PublicKey","DEFAULT_APPLICATION_NAME","formFactor","APP_FORM_FACTOR","navigator","forecastIconResourceList","IconContentResourceList","forecastIconSize","ForecastIconSize","forecastIconSet","ForecastIconSet","gTMediaCampaignIsEnabled","IsEnabled","homePagePixelImgSourceUrl","HomePagePixelImgSourceUrl","appDownloadPagePixelImgSourceUrl","AppDownloadPagePixelImgSourceUrl","alertsPollerDelaySeconds","hourlyPollerDelaySeconds","HourlyForecast","dailyForecastPollerDelaySeconds","DailyForecast","appVersion","defaultAdRefeshIntervalSeconds","videoPreRollUrls","videoPrerollAdClient","videoPrerollOffset","videoPrerollSkipOffset","videoPrerollVPaidControls","videoPrerollAutoplayAdsMuted","featuredVideoPrerollPlacementId","nationalOutlookVideoPrerollPlacementId","storiesVideoPrerollPlacementId","botAppInstanceId","educationVideoPageURL","iosAppDownloadLink","macosAppDownloadLink","androidAppDownloadLink","desktopAppDownloadLink","enableDesktopAppDownloadLink","supportEmailAddress","taboolaInfo","taboola","kochavaClickURL","iosSmartAppBannerURL","androidSmartAppBannerURL","videoAdRules","appKey","pressLinkActive","airQualityAttributionUrl","disclosureRequestEmail","deletionRequestEmail","privacyRightsEmail","ccpaInfoEmail","privacyRightsLink","privacyStatement","myIdfaLink","pageIdsToSupportLocationChanges","pageIdsToSupportLocationChanges2","authClientSettings","newPrivacyPolicyMockData","isComplianceApiV3Enabled","platform","hurricaneOutlookDetailsImages","disableAds","fouAnalytics","googleTagManager","enableNewFooterUIWithCMPIntegration","enableNewHourlyForecastLinksOn10DayPage","usPrivacyManagerId","sourcePointCMPAccountId","sourcePointCMPPropertyId","sourcePointCMPPropertyHref","sourcePointCMPBaseEndpoint","sourcePointCMPCampaignEnv","boltive","firebase","persistent320x50AdForMobileWeb","selectAppConfig","appConfig","selectPageRouteInfo","GET_APP_CONFIG","userData","axios","get","GET_APP_CONFIG_API_PATH","Publishable","AdBlockDetectionEnabled","GET_USER_PROFILE","SET_INITIAL_USER_PROFILE","GET_USER_PROFILE_API_PATH","setInitialUserProfile","userProfile","userReducer","isFetchingUser","getUserProfile","selectUserProfile","locationSlugName","stationInfo","location","station","listenerMiddleware","createListenerMiddleware","startListening","useAppDispatch","useDispatch","useAppSelector","useSelector"],"sourceRoot":""}