{"version":3,"file":"pagetracking.14ee75e638b577789b4c.js","mappings":"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","sources":["webpack://raygun-website/./scripts/snowplow/pageTracking/constants/global.ts","webpack://raygun-website/./scripts/snowplow/pageTracking/crashReporting/errorInstance/utils.ts","webpack://raygun-website/./scripts/snowplow/pageTracking/crashReporting/errorInstance/index.ts","webpack://raygun-website/./scripts/snowplow/pageTracking/index.ts","webpack://raygun-website/./scripts/snowplow/pageTracking/utils/pathname.ts","webpack://raygun-website/./scripts/snowplow/pageTracking/utils/queryString.ts"],"sourcesContent":["/** @format **/\n\nimport { Global } from '../types';\n\nexport const global: Global = (window as unknown) as Global;\n","/** @format **/\n\n/**\n * Encode the integration and summary favorite options to decrease the length of the URL\n * The dictionary lookup functions will throw if the input is an unknown value\n * NOTE: This will need to be decoded in the snowplow ingestion pipeline\n */\n\nexport const integrationDictionary: { [integrationName: string]: number } = {\n YouTrack: 0,\n Github: 1,\n FogBugz: 2,\n Trello: 3,\n Sprintly: 4,\n JIRA: 5,\n Bitbucket: 6,\n PivotalTracker: 7,\n BugHerd: 8,\n VisualStudioOnline: 9,\n Lighthouse: 10,\n Asana: 11,\n Intercom: 12,\n Zendesk: 13,\n Assembla: 15,\n GitLab: 16,\n Targetprocess: 17,\n AmazonSQS: 18,\n AzureServiceBus: 19,\n};\n\nexport const summaryFavoritesDictionary: { [summaryFavoriteName: string]: number } = {\n OccurredOn: 0,\n MachineName: 1,\n Version: 2,\n 'Error-Message': 3,\n 'Error-ClassName': 4,\n 'Environment-LocalTime': 5,\n 'Error-ErrorId': 6,\n StackTrace: 7,\n 'Request-HttpMethod': 8,\n 'Request-HostName': 9,\n 'Request-IPAddress': 10,\n 'Request-Url': 11,\n 'Request-UserAgent': 12,\n 'Request-QueryString': 13,\n 'Request-ParamValues': 14,\n 'Request-CookieValues': 15,\n 'Request-HeaderValues': 16,\n 'Request-FormValues': 17,\n 'Request-ServerVariables': 18,\n 'Environment-OSVersion': 19,\n 'Environment-ProcessorCount': 20,\n 'Environment-OS': 21,\n 'Environment-Browser': 22,\n 'Environment-Locale': 23,\n Tags: 24,\n Breadcrumb: 25,\n 'Response-StatusCode': 26,\n 'Error-Data': 27,\n 'Environment-Model': 28,\n 'Environment-CPU': 29,\n 'Request-RawRequestData': 30,\n 'Request-Referer': 31,\n 'Request-NetworkConnectivityState': 32,\n 'Custom-Data': 33,\n 'Environment-Architecture': 34,\n 'Environment-AvailablePhysicalMemory': 35,\n 'Environment-BrowserHeight': 36,\n 'Environment-DeviceManufacturer': 37,\n 'Environment-DeviceName': 38,\n 'Response-StatusDescription': 39,\n 'Request-SessionValues': 40,\n 'Environment-TotalPhysicalMemory': 41,\n 'Environment-AvailableVirtualMemory': 42,\n 'Environment-CurrentOrientation': 43,\n 'Environment-BrowserWidth': 44,\n 'Environment-TotalVirtualMemory': 45,\n 'Environment-ScreenWidth': 46,\n 'Environment-ScreenHeight': 47,\n};\n\nexport function getIntegrationIdByName(name: string): number {\n if (!integrationDictionary.hasOwnProperty(name)) {\n throw new TypeError(`Invalid integration name: ${name}`);\n }\n\n return integrationDictionary[name];\n}\n\nexport function getSummaryFavoriteIdByName(name: string): number {\n if (!summaryFavoritesDictionary.hasOwnProperty(name)) {\n throw new TypeError(`Invalid summary favorite name: ${name}`);\n }\n\n return summaryFavoritesDictionary[name];\n}\n","/** @format **/\n\nimport { global, staticSchema } from '../../constants';\nimport { RaygunConfiguration, StaticData, PageContext } from '../../types';\n\nimport { SummaryFavoriteDatum } from './types';\nimport { getIntegrationIdByName, getSummaryFavoriteIdByName } from './utils';\n\nexport function getEnabledIntegrations(config: RaygunConfiguration): number[] {\n const integrationsCollection = !!config && config.ErrorDashboardPlugins;\n const enabledIntegrations = [];\n\n if (integrationsCollection != null && integrationsCollection.length > 0) {\n for (let i = 0; i < integrationsCollection.length; i++) {\n const integration = integrationsCollection[i];\n\n if (integration != null) {\n enabledIntegrations.push(getIntegrationIdByName(integration.Name));\n }\n }\n }\n\n return enabledIntegrations;\n}\n\nexport function getSummaryFavorites(config: RaygunConfiguration): number[] {\n const summaryFavoritesJson = !!config && config.SummaryFavourites;\n\n if (summaryFavoritesJson == null || summaryFavoritesJson.length === 0) {\n return [];\n }\n\n const summaryFavorites = [];\n\n const summaryFavoritesCollection: SummaryFavoriteDatum[] = JSON.parse(summaryFavoritesJson);\n\n // These items are either permanently favorited, duplicated, or are headings for sections\n const excludedItems = [\n 'Request',\n 'Error',\n 'User',\n 'Message',\n 'ClassName',\n 'User-Identifier',\n 'User-Email',\n 'User-FullName',\n 'User-FirstName',\n 'WrapRawData',\n ];\n\n for (let j = 0; j < summaryFavoritesCollection.length; j++) {\n const summaryFavorite = summaryFavoritesCollection[j];\n\n if (\n summaryFavorite != null &&\n summaryFavorite.Value &&\n excludedItems.indexOf(summaryFavorite.Key) === -1\n ) {\n summaryFavorites.push(getSummaryFavoriteIdByName(summaryFavorite.Key));\n }\n }\n\n return summaryFavorites;\n}\n\nexport function errorInstanceViewData(): StaticData {\n const config = global.RaygunConfiguration;\n\n return {\n enabledIntegrations: getEnabledIntegrations(config),\n summaryFavorites: getSummaryFavorites(config),\n };\n}\n\nexport function errorInstanceViewContext(): PageContext[] {\n const staticPageData: PageContext[] = [];\n\n staticPageData.push({\n schema: staticSchema,\n data: errorInstanceViewData(),\n });\n\n return staticPageData;\n}\n","/** @format **/\n\nimport { errorInstanceViewData } from './crashReporting/errorInstance';\n\nimport { global } from './constants';\nimport * as Utils from './utils';\n\nexport function sendPageDataToSnowplow() {\n const queryStringData: string[] = [];\n\n // Performance concern: only add view-specific data if that view is being rendered\n if (Utils.isCrashReportingInstanceView()) {\n queryStringData.push(Utils.dataToQueryString(errorInstanceViewData()));\n }\n\n const originalUrl = global.location.toString();\n const queryStringDataString = queryStringData.join('&');\n\n // NOTE: Send the data as part of the URL query string - the context is not currently being ingested in the snowplow ingestion pipeline\n\n // Set the URL to send to snowplow, then switch it back to the original URL, and only if there is data to be sent\n if (queryStringDataString.length > 0) {\n global.raygunSnowplow('setCustomUrl', Utils.addQueryStringToUrl(queryStringDataString));\n }\n\n // Always send the trackPageView data\n global.raygunSnowplow('trackPageView', null);\n\n if (queryStringDataString.length > 0) {\n global.raygunSnowplow('setCustomUrl', originalUrl);\n }\n}\n\nglobal.addEventListener('load', sendPageDataToSnowplow);\n","/** @format **/\n\nimport { global } from '../constants';\n\nexport function isCrashReportingInstanceView(pathName: string = global.location.pathname): boolean {\n const pattern = /^\\/crashreporting\\/[\\w]+\\/errors\\/[0-9]+/;\n\n return pattern.test(pathName);\n}\n","/** @format **/\n\nimport { StaticData } from '../types';\nimport { global } from '../constants';\n\nexport function dataToQueryString(data: StaticData) {\n const queryStringArray = [];\n\n for (const key in data) {\n if (data.hasOwnProperty(key) && data[key as keyof StaticData].length > 0) {\n const dataString = JSON.stringify(data[key as keyof StaticData]);\n queryStringArray.push(`${key}=${dataString}`);\n }\n }\n\n return queryStringArray.join('&');\n}\n\nexport function addQueryStringToUrl(\n queryString: string,\n origin: string = global.location.origin,\n pathName: string = global.location.pathname,\n) {\n const rootUrl = origin + pathName;\n\n if (queryString == null || queryString.length === 0) {\n return rootUrl;\n }\n\n return `${rootUrl}?${queryString}`;\n}\n"],"names":["global","window","integrationDictionary","YouTrack","Github","FogBugz","Trello","Sprintly","JIRA","Bitbucket","PivotalTracker","BugHerd","VisualStudioOnline","Lighthouse","Asana","Intercom","Zendesk","Assembla","GitLab","Targetprocess","AmazonSQS","AzureServiceBus","summaryFavoritesDictionary","OccurredOn","MachineName","Version","StackTrace","Tags","Breadcrumb","getIntegrationIdByName","name","hasOwnProperty","TypeError","getSummaryFavoriteIdByName","getEnabledIntegrations","config","integrationsCollection","ErrorDashboardPlugins","enabledIntegrations","length","i","integration","push","Name","getSummaryFavorites","summaryFavoritesJson","SummaryFavourites","summaryFavorites","summaryFavoritesCollection","JSON","parse","excludedItems","j","summaryFavorite","Value","indexOf","Key","addEventListener","pathName","queryStringData","location","pathname","test","data","queryStringArray","key","dataString","stringify","join","RaygunConfiguration","originalUrl","toString","queryStringDataString","raygunSnowplow","queryString","origin","rootUrl"],"sourceRoot":""}