posthog-js 1.232.0 → 1.232.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "posthog-js",
3
- "version": "1.232.0",
3
+ "version": "1.232.1",
4
4
  "description": "Posthog-js allows you to automatically capture usage and send events to PostHog.",
5
5
  "repository": "https://github.com/PostHog/posthog-js",
6
6
  "author": "hey@posthog.com",
@@ -68,6 +68,11 @@ export var EVENT_TO_PERSON_PROPERTIES = [
68
68
  '$os_version',
69
69
  '$referring_domain',
70
70
  '$referrer',
71
+ '$screen_height',
72
+ '$screen_width',
73
+ '$viewport_height',
74
+ '$viewport_width',
75
+ '$raw_user_agent',
71
76
  ];
72
77
  export var MASKED = '<masked>';
73
78
  export var Info = {
@@ -1 +1 @@
1
- {"version":3,"file":"event-utils.js","sourceRoot":"","sources":["../../../src/utils/event-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { getQueryParam, convertToURL, maskQueryParams } from './request-utils'\nimport { isNull } from './type-utils'\nimport { Properties } from '../types'\nimport Config from '../config'\nimport { each, extend, extendArray, stripEmptyProperties } from './index'\nimport { document, location, userAgent, window } from './globals'\nimport { detectBrowser, detectBrowserVersion, detectDevice, detectDeviceType, detectOS } from './user-agent-utils'\nimport { stripLeadingDollar } from './string-utils'\n\nconst URL_REGEX_PREFIX = 'https?://(.*)'\n\n// CAMPAIGN_PARAMS and EVENT_TO_PERSON_PROPERTIES should be kept in sync with\n// https://github.com/PostHog/posthog/blob/master/plugin-server/src/utils/db/utils.ts#L60\n\n// The list of campaign parameters that could be considered personal data under e.g. GDPR.\n// These can be masked in URLs and properties before being sent to posthog.\nexport const PERSONAL_DATA_CAMPAIGN_PARAMS = [\n 'gclid', // google ads\n 'gclsrc', // google ads 360\n 'dclid', // google display ads\n 'gbraid', // google ads, web to app\n 'wbraid', // google ads, app to web\n 'fbclid', // facebook\n 'msclkid', // microsoft\n 'twclid', // twitter\n 'li_fat_id', // linkedin\n 'igshid', // instagram\n 'ttclid', // tiktok\n 'rdt_cid', // reddit\n 'irclid', // impact\n '_kx', // klaviyo\n]\n\nexport const CAMPAIGN_PARAMS = extendArray(\n [\n 'utm_source',\n 'utm_medium',\n 'utm_campaign',\n 'utm_content',\n 'utm_term',\n 'gad_source', // google ads source\n 'mc_cid', // mailchimp campaign id\n ],\n PERSONAL_DATA_CAMPAIGN_PARAMS\n)\n\nexport const EVENT_TO_PERSON_PROPERTIES = [\n // mobile params\n '$app_build',\n '$app_name',\n '$app_namespace',\n '$app_version',\n // web params\n '$browser',\n '$browser_version',\n '$device_type',\n '$current_url',\n '$pathname',\n '$os',\n '$os_name', // $os_name is a special case, it's treated as an alias of $os!\n '$os_version',\n '$referring_domain',\n '$referrer',\n]\n\nexport const MASKED = '<masked>'\n\nexport const Info = {\n campaignParams: function ({\n customTrackedParams,\n maskPersonalDataProperties,\n customPersonalDataProperties,\n }: {\n customTrackedParams?: string[]\n maskPersonalDataProperties?: boolean\n customPersonalDataProperties?: string[] | undefined\n } = {}): Record<string, string> {\n if (!document) {\n return {}\n }\n\n const paramsToMask = maskPersonalDataProperties\n ? extendArray([], PERSONAL_DATA_CAMPAIGN_PARAMS, customPersonalDataProperties || [])\n : []\n\n return this._campaignParamsFromUrl(maskQueryParams(document.URL, paramsToMask, MASKED), customTrackedParams)\n },\n\n _campaignParamsFromUrl: function (url: string, customParams?: string[]): Record<string, string> {\n const campaign_keywords = CAMPAIGN_PARAMS.concat(customParams || [])\n\n const params: Record<string, any> = {}\n each(campaign_keywords, function (kwkey) {\n const kw = getQueryParam(url, kwkey)\n params[kwkey] = kw ? kw : null\n })\n\n return params\n },\n\n _searchEngine: function (referrer: string): string | null {\n if (!referrer) {\n return null\n } else {\n if (referrer.search(URL_REGEX_PREFIX + 'google.([^/?]*)') === 0) {\n return 'google'\n } else if (referrer.search(URL_REGEX_PREFIX + 'bing.com') === 0) {\n return 'bing'\n } else if (referrer.search(URL_REGEX_PREFIX + 'yahoo.com') === 0) {\n return 'yahoo'\n } else if (referrer.search(URL_REGEX_PREFIX + 'duckduckgo.com') === 0) {\n return 'duckduckgo'\n } else {\n return null\n }\n }\n },\n\n _searchInfoFromReferrer: function (referrer: string): Record<string, any> {\n const search = Info._searchEngine(referrer)\n const param = search != 'yahoo' ? 'q' : 'p'\n const ret: Record<string, any> = {}\n\n if (!isNull(search)) {\n ret['$search_engine'] = search\n\n const keyword = document ? getQueryParam(document.referrer, param) : ''\n if (keyword.length) {\n ret['ph_keyword'] = keyword\n }\n }\n\n return ret\n },\n\n searchInfo: function (): Record<string, any> {\n const referrer = document?.referrer\n if (!referrer) {\n return {}\n }\n return this._searchInfoFromReferrer(referrer)\n },\n\n /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include keywords used in later checks.\n */\n browser: detectBrowser,\n\n /**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n *\n * `navigator.vendor` is passed in and used to help with detecting certain browsers\n * NB `navigator.vendor` is deprecated and not present in every browser\n */\n browserVersion: detectBrowserVersion,\n\n browserLanguage: function (): string | undefined {\n return (\n navigator.language || // Any modern browser\n (navigator as Record<string, any>).userLanguage // IE11\n )\n },\n\n browserLanguagePrefix: function (): string | undefined {\n const browserLanguage = this.browserLanguage()\n return typeof browserLanguage === 'string' ? browserLanguage.split('-')[0] : undefined\n },\n\n os: detectOS,\n\n device: detectDevice,\n\n deviceType: detectDeviceType,\n\n referrer: function (): string {\n return document?.referrer || '$direct'\n },\n\n referringDomain: function (): string {\n if (!document?.referrer) {\n return '$direct'\n }\n return convertToURL(document.referrer)?.host || '$direct'\n },\n\n referrerInfo: function (): Record<string, any> {\n return {\n $referrer: this.referrer(),\n $referring_domain: this.referringDomain(),\n }\n },\n\n personInfo: function ({\n maskPersonalDataProperties,\n customPersonalDataProperties,\n }: {\n maskPersonalDataProperties?: boolean\n customPersonalDataProperties?: string[]\n } = {}) {\n const paramsToMask = maskPersonalDataProperties\n ? extendArray([], PERSONAL_DATA_CAMPAIGN_PARAMS, customPersonalDataProperties || [])\n : []\n const url = location?.href.substring(0, 1000)\n // we're being a bit more economical with bytes here because this is stored in the cookie\n return {\n r: this.referrer().substring(0, 1000),\n u: url ? maskQueryParams(url, paramsToMask, MASKED) : undefined,\n }\n },\n\n personPropsFromInfo: function (info: Record<string, any>): Record<string, any> {\n const { r: referrer, u: url } = info\n const referring_domain =\n referrer == null ? undefined : referrer == '$direct' ? '$direct' : convertToURL(referrer)?.host\n\n const props: Record<string, string | undefined> = {\n $referrer: referrer,\n $referring_domain: referring_domain,\n }\n if (url) {\n props['$current_url'] = url\n const location = convertToURL(url)\n props['$host'] = location?.host\n props['$pathname'] = location?.pathname\n const campaignParams = this._campaignParamsFromUrl(url)\n extend(props, campaignParams)\n }\n if (referrer) {\n const searchInfo = this._searchInfoFromReferrer(referrer)\n extend(props, searchInfo)\n }\n return props\n },\n\n initialPersonPropsFromInfo: function (info: Record<string, any>): Record<string, any> {\n const personProps = this.personPropsFromInfo(info)\n const props: Record<string, any> = {}\n each(personProps, function (val: any, key: string) {\n props[`$initial_${stripLeadingDollar(key)}`] = val\n })\n return props\n },\n\n timezone: function (): string | undefined {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone\n } catch {\n return undefined\n }\n },\n\n timezoneOffset: function (): number | undefined {\n try {\n return new Date().getTimezoneOffset()\n } catch {\n return undefined\n }\n },\n\n properties: function ({\n maskPersonalDataProperties,\n customPersonalDataProperties,\n }: {\n maskPersonalDataProperties?: boolean\n customPersonalDataProperties?: string[]\n } = {}): Properties {\n if (!userAgent) {\n return {}\n }\n const paramsToMask = maskPersonalDataProperties\n ? extendArray([], PERSONAL_DATA_CAMPAIGN_PARAMS, customPersonalDataProperties || [])\n : []\n const [os_name, os_version] = Info.os(userAgent)\n return extend(\n stripEmptyProperties({\n $os: os_name,\n $os_version: os_version,\n $browser: Info.browser(userAgent, navigator.vendor),\n $device: Info.device(userAgent),\n $device_type: Info.deviceType(userAgent),\n $timezone: Info.timezone(),\n $timezone_offset: Info.timezoneOffset(),\n }),\n {\n $current_url: maskQueryParams(location?.href, paramsToMask, MASKED),\n $host: location?.host,\n $pathname: location?.pathname,\n $raw_user_agent: userAgent.length > 1000 ? userAgent.substring(0, 997) + '...' : userAgent,\n $browser_version: Info.browserVersion(userAgent, navigator.vendor),\n $browser_language: Info.browserLanguage(),\n $browser_language_prefix: Info.browserLanguagePrefix(),\n $screen_height: window?.screen.height,\n $screen_width: window?.screen.width,\n $viewport_height: window?.innerHeight,\n $viewport_width: window?.innerWidth,\n $lib: 'web',\n $lib_version: Config.LIB_VERSION,\n $insert_id: Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10),\n $time: Date.now() / 1000, // epoch time in seconds\n }\n )\n },\n\n people_properties: function (): Properties {\n if (!userAgent) {\n return {}\n }\n\n const [os_name, os_version] = Info.os(userAgent)\n return extend(\n stripEmptyProperties({\n $os: os_name,\n $os_version: os_version,\n $browser: Info.browser(userAgent, navigator.vendor),\n }),\n {\n $browser_version: Info.browserVersion(userAgent, navigator.vendor),\n }\n )\n },\n}\n"]}
1
+ {"version":3,"file":"event-utils.js","sourceRoot":"","sources":["../../../src/utils/event-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { getQueryParam, convertToURL, maskQueryParams } from './request-utils'\nimport { isNull } from './type-utils'\nimport { Properties } from '../types'\nimport Config from '../config'\nimport { each, extend, extendArray, stripEmptyProperties } from './index'\nimport { document, location, userAgent, window } from './globals'\nimport { detectBrowser, detectBrowserVersion, detectDevice, detectDeviceType, detectOS } from './user-agent-utils'\nimport { stripLeadingDollar } from './string-utils'\n\nconst URL_REGEX_PREFIX = 'https?://(.*)'\n\n// CAMPAIGN_PARAMS and EVENT_TO_PERSON_PROPERTIES should be kept in sync with\n// https://github.com/PostHog/posthog/blob/master/plugin-server/src/utils/db/utils.ts#L60\n\n// The list of campaign parameters that could be considered personal data under e.g. GDPR.\n// These can be masked in URLs and properties before being sent to posthog.\nexport const PERSONAL_DATA_CAMPAIGN_PARAMS = [\n 'gclid', // google ads\n 'gclsrc', // google ads 360\n 'dclid', // google display ads\n 'gbraid', // google ads, web to app\n 'wbraid', // google ads, app to web\n 'fbclid', // facebook\n 'msclkid', // microsoft\n 'twclid', // twitter\n 'li_fat_id', // linkedin\n 'igshid', // instagram\n 'ttclid', // tiktok\n 'rdt_cid', // reddit\n 'irclid', // impact\n '_kx', // klaviyo\n]\n\nexport const CAMPAIGN_PARAMS = extendArray(\n [\n 'utm_source',\n 'utm_medium',\n 'utm_campaign',\n 'utm_content',\n 'utm_term',\n 'gad_source', // google ads source\n 'mc_cid', // mailchimp campaign id\n ],\n PERSONAL_DATA_CAMPAIGN_PARAMS\n)\n\nexport const EVENT_TO_PERSON_PROPERTIES = [\n // mobile params\n '$app_build',\n '$app_name',\n '$app_namespace',\n '$app_version',\n // web params\n '$browser',\n '$browser_version',\n '$device_type',\n '$current_url',\n '$pathname',\n '$os',\n '$os_name', // $os_name is a special case, it's treated as an alias of $os!\n '$os_version',\n '$referring_domain',\n '$referrer',\n '$screen_height',\n '$screen_width',\n '$viewport_height',\n '$viewport_width',\n '$raw_user_agent',\n]\n\nexport const MASKED = '<masked>'\n\nexport const Info = {\n campaignParams: function ({\n customTrackedParams,\n maskPersonalDataProperties,\n customPersonalDataProperties,\n }: {\n customTrackedParams?: string[]\n maskPersonalDataProperties?: boolean\n customPersonalDataProperties?: string[] | undefined\n } = {}): Record<string, string> {\n if (!document) {\n return {}\n }\n\n const paramsToMask = maskPersonalDataProperties\n ? extendArray([], PERSONAL_DATA_CAMPAIGN_PARAMS, customPersonalDataProperties || [])\n : []\n\n return this._campaignParamsFromUrl(maskQueryParams(document.URL, paramsToMask, MASKED), customTrackedParams)\n },\n\n _campaignParamsFromUrl: function (url: string, customParams?: string[]): Record<string, string> {\n const campaign_keywords = CAMPAIGN_PARAMS.concat(customParams || [])\n\n const params: Record<string, any> = {}\n each(campaign_keywords, function (kwkey) {\n const kw = getQueryParam(url, kwkey)\n params[kwkey] = kw ? kw : null\n })\n\n return params\n },\n\n _searchEngine: function (referrer: string): string | null {\n if (!referrer) {\n return null\n } else {\n if (referrer.search(URL_REGEX_PREFIX + 'google.([^/?]*)') === 0) {\n return 'google'\n } else if (referrer.search(URL_REGEX_PREFIX + 'bing.com') === 0) {\n return 'bing'\n } else if (referrer.search(URL_REGEX_PREFIX + 'yahoo.com') === 0) {\n return 'yahoo'\n } else if (referrer.search(URL_REGEX_PREFIX + 'duckduckgo.com') === 0) {\n return 'duckduckgo'\n } else {\n return null\n }\n }\n },\n\n _searchInfoFromReferrer: function (referrer: string): Record<string, any> {\n const search = Info._searchEngine(referrer)\n const param = search != 'yahoo' ? 'q' : 'p'\n const ret: Record<string, any> = {}\n\n if (!isNull(search)) {\n ret['$search_engine'] = search\n\n const keyword = document ? getQueryParam(document.referrer, param) : ''\n if (keyword.length) {\n ret['ph_keyword'] = keyword\n }\n }\n\n return ret\n },\n\n searchInfo: function (): Record<string, any> {\n const referrer = document?.referrer\n if (!referrer) {\n return {}\n }\n return this._searchInfoFromReferrer(referrer)\n },\n\n /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include keywords used in later checks.\n */\n browser: detectBrowser,\n\n /**\n * This function detects which browser version is running this script,\n * parsing major and minor version (e.g., 42.1). User agent strings from:\n * http://www.useragentstring.com/pages/useragentstring.php\n *\n * `navigator.vendor` is passed in and used to help with detecting certain browsers\n * NB `navigator.vendor` is deprecated and not present in every browser\n */\n browserVersion: detectBrowserVersion,\n\n browserLanguage: function (): string | undefined {\n return (\n navigator.language || // Any modern browser\n (navigator as Record<string, any>).userLanguage // IE11\n )\n },\n\n browserLanguagePrefix: function (): string | undefined {\n const browserLanguage = this.browserLanguage()\n return typeof browserLanguage === 'string' ? browserLanguage.split('-')[0] : undefined\n },\n\n os: detectOS,\n\n device: detectDevice,\n\n deviceType: detectDeviceType,\n\n referrer: function (): string {\n return document?.referrer || '$direct'\n },\n\n referringDomain: function (): string {\n if (!document?.referrer) {\n return '$direct'\n }\n return convertToURL(document.referrer)?.host || '$direct'\n },\n\n referrerInfo: function (): Record<string, any> {\n return {\n $referrer: this.referrer(),\n $referring_domain: this.referringDomain(),\n }\n },\n\n personInfo: function ({\n maskPersonalDataProperties,\n customPersonalDataProperties,\n }: {\n maskPersonalDataProperties?: boolean\n customPersonalDataProperties?: string[]\n } = {}) {\n const paramsToMask = maskPersonalDataProperties\n ? extendArray([], PERSONAL_DATA_CAMPAIGN_PARAMS, customPersonalDataProperties || [])\n : []\n const url = location?.href.substring(0, 1000)\n // we're being a bit more economical with bytes here because this is stored in the cookie\n return {\n r: this.referrer().substring(0, 1000),\n u: url ? maskQueryParams(url, paramsToMask, MASKED) : undefined,\n }\n },\n\n personPropsFromInfo: function (info: Record<string, any>): Record<string, any> {\n const { r: referrer, u: url } = info\n const referring_domain =\n referrer == null ? undefined : referrer == '$direct' ? '$direct' : convertToURL(referrer)?.host\n\n const props: Record<string, string | undefined> = {\n $referrer: referrer,\n $referring_domain: referring_domain,\n }\n if (url) {\n props['$current_url'] = url\n const location = convertToURL(url)\n props['$host'] = location?.host\n props['$pathname'] = location?.pathname\n const campaignParams = this._campaignParamsFromUrl(url)\n extend(props, campaignParams)\n }\n if (referrer) {\n const searchInfo = this._searchInfoFromReferrer(referrer)\n extend(props, searchInfo)\n }\n return props\n },\n\n initialPersonPropsFromInfo: function (info: Record<string, any>): Record<string, any> {\n const personProps = this.personPropsFromInfo(info)\n const props: Record<string, any> = {}\n each(personProps, function (val: any, key: string) {\n props[`$initial_${stripLeadingDollar(key)}`] = val\n })\n return props\n },\n\n timezone: function (): string | undefined {\n try {\n return Intl.DateTimeFormat().resolvedOptions().timeZone\n } catch {\n return undefined\n }\n },\n\n timezoneOffset: function (): number | undefined {\n try {\n return new Date().getTimezoneOffset()\n } catch {\n return undefined\n }\n },\n\n properties: function ({\n maskPersonalDataProperties,\n customPersonalDataProperties,\n }: {\n maskPersonalDataProperties?: boolean\n customPersonalDataProperties?: string[]\n } = {}): Properties {\n if (!userAgent) {\n return {}\n }\n const paramsToMask = maskPersonalDataProperties\n ? extendArray([], PERSONAL_DATA_CAMPAIGN_PARAMS, customPersonalDataProperties || [])\n : []\n const [os_name, os_version] = Info.os(userAgent)\n return extend(\n stripEmptyProperties({\n $os: os_name,\n $os_version: os_version,\n $browser: Info.browser(userAgent, navigator.vendor),\n $device: Info.device(userAgent),\n $device_type: Info.deviceType(userAgent),\n $timezone: Info.timezone(),\n $timezone_offset: Info.timezoneOffset(),\n }),\n {\n $current_url: maskQueryParams(location?.href, paramsToMask, MASKED),\n $host: location?.host,\n $pathname: location?.pathname,\n $raw_user_agent: userAgent.length > 1000 ? userAgent.substring(0, 997) + '...' : userAgent,\n $browser_version: Info.browserVersion(userAgent, navigator.vendor),\n $browser_language: Info.browserLanguage(),\n $browser_language_prefix: Info.browserLanguagePrefix(),\n $screen_height: window?.screen.height,\n $screen_width: window?.screen.width,\n $viewport_height: window?.innerHeight,\n $viewport_width: window?.innerWidth,\n $lib: 'web',\n $lib_version: Config.LIB_VERSION,\n $insert_id: Math.random().toString(36).substring(2, 10) + Math.random().toString(36).substring(2, 10),\n $time: Date.now() / 1000, // epoch time in seconds\n }\n )\n },\n\n people_properties: function (): Properties {\n if (!userAgent) {\n return {}\n }\n\n const [os_name, os_version] = Info.os(userAgent)\n return extend(\n stripEmptyProperties({\n $os: os_name,\n $os_version: os_version,\n $browser: Info.browser(userAgent, navigator.vendor),\n }),\n {\n $browser_version: Info.browserVersion(userAgent, navigator.vendor),\n }\n )\n },\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "posthog-js",
3
- "version": "1.232.0",
3
+ "version": "1.232.1",
4
4
  "description": "Posthog-js allows you to automatically capture usage and send events to PostHog.",
5
5
  "repository": "https://github.com/PostHog/posthog-js",
6
6
  "author": "hey@posthog.com",