posthog-js 1.184.2 → 1.185.0
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/dist/array.full.es5.js +1 -1
- package/dist/array.full.es5.js.map +1 -1
- package/dist/array.full.js +1 -1
- package/dist/array.full.js.map +1 -1
- package/dist/array.full.no-external.js +1 -1
- package/dist/array.full.no-external.js.map +1 -1
- package/dist/array.js +1 -1
- package/dist/array.js.map +1 -1
- package/dist/array.no-external.js +1 -1
- package/dist/array.no-external.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/module.full.js +1 -1
- package/dist/module.full.js.map +1 -1
- package/dist/module.full.no-external.js +1 -1
- package/dist/module.full.no-external.js.map +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/module.no-external.js +1 -1
- package/dist/module.no-external.js.map +1 -1
- package/dist/src/customizations/setAllPersonProfilePropertiesAsPersonPropertiesForFlags.d.ts +2 -0
- package/dist/src/utils/event-utils.d.ts +1 -0
- package/lib/package.json +1 -1
- package/lib/src/config.js +2 -2
- package/lib/src/config.js.map +1 -1
- package/lib/src/customizations/setAllPersonProfilePropertiesAsPersonPropertiesForFlags.d.ts +2 -0
- package/lib/src/customizations/setAllPersonProfilePropertiesAsPersonPropertiesForFlags.js +13 -0
- package/lib/src/customizations/setAllPersonProfilePropertiesAsPersonPropertiesForFlags.js.map +1 -0
- package/lib/src/utils/event-utils.d.ts +1 -0
- package/lib/src/utils/event-utils.js +18 -0
- package/lib/src/utils/event-utils.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Properties } from '../types';
|
|
2
2
|
export declare const CAMPAIGN_PARAMS: string[];
|
|
3
|
+
export declare const EVENT_TO_PERSON_PROPERTIES: string[];
|
|
3
4
|
export declare const Info: {
|
|
4
5
|
campaignParams: (customParams?: string[]) => Record<string, string>;
|
|
5
6
|
_campaignParamsFromUrl: (url: string, customParams?: string[]) => Record<string, string>;
|
package/lib/package.json
CHANGED
package/lib/src/config.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import
|
|
1
|
+
import packageInfo from '../package.json';
|
|
2
2
|
// overridden in posthog-core,
|
|
3
3
|
// e.g. Config.DEBUG = Config.DEBUG || instance.config.debug
|
|
4
4
|
var Config = {
|
|
5
5
|
DEBUG: false,
|
|
6
|
-
LIB_VERSION: version,
|
|
6
|
+
LIB_VERSION: packageInfo.version,
|
|
7
7
|
};
|
|
8
8
|
export default Config;
|
|
9
9
|
//# sourceMappingURL=config.js.map
|
package/lib/src/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,iBAAiB,CAAA;AAEzC,8BAA8B;AAC9B,gEAAgE;AAChE,IAAM,MAAM,GAAG;IACX,KAAK,EAAE,KAAK;IACZ,WAAW,EAAE,WAAW,CAAC,OAAO;CACnC,CAAA;AAED,eAAe,MAAM,CAAA","sourcesContent":["import packageInfo from '../package.json'\n\n// overridden in posthog-core,\n// e.g. Config.DEBUG = Config.DEBUG || instance.config.debug\nconst Config = {\n DEBUG: false,\n LIB_VERSION: packageInfo.version,\n}\n\nexport default Config\n"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CAMPAIGN_PARAMS, EVENT_TO_PERSON_PROPERTIES, Info } from '../utils/event-utils';
|
|
2
|
+
import { each, extend, includes } from '../utils';
|
|
3
|
+
export var setAllPersonProfilePropertiesAsPersonPropertiesForFlags = function (posthog) {
|
|
4
|
+
var allProperties = extend({}, Info.properties(), Info.campaignParams(), Info.referrerInfo());
|
|
5
|
+
var personProperties = {};
|
|
6
|
+
each(allProperties, function (v, k) {
|
|
7
|
+
if (includes(CAMPAIGN_PARAMS, k) || includes(EVENT_TO_PERSON_PROPERTIES, k)) {
|
|
8
|
+
personProperties[k] = v;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
posthog.setPersonPropertiesForFlags(personProperties);
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=setAllPersonProfilePropertiesAsPersonPropertiesForFlags.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setAllPersonProfilePropertiesAsPersonPropertiesForFlags.js","sourceRoot":"","sources":["../../../src/customizations/setAllPersonProfilePropertiesAsPersonPropertiesForFlags.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,0BAA0B,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAA;AACxF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,CAAC,IAAM,uDAAuD,GAAG,UAAC,OAAgB;IACpF,IAAM,aAAa,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,IAAI,CAAC,cAAc,EAAE,EAAE,IAAI,CAAC,YAAY,EAAE,CAAC,CAAA;IAC/F,IAAM,gBAAgB,GAA2B,EAAE,CAAA;IACnD,IAAI,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,CAAS;QACtC,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC,CAAC,IAAI,QAAQ,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,CAAC;YAC1E,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;QAC3B,CAAC;IACL,CAAC,CAAC,CAAA;IAEF,OAAO,CAAC,2BAA2B,CAAC,gBAAgB,CAAC,CAAA;AACzD,CAAC,CAAA","sourcesContent":["import { PostHog } from '../posthog-core'\nimport { CAMPAIGN_PARAMS, EVENT_TO_PERSON_PROPERTIES, Info } from '../utils/event-utils'\nimport { each, extend, includes } from '../utils'\n\nexport const setAllPersonProfilePropertiesAsPersonPropertiesForFlags = (posthog: PostHog): void => {\n const allProperties = extend({}, Info.properties(), Info.campaignParams(), Info.referrerInfo())\n const personProperties: Record<string, string> = {}\n each(allProperties, function (v, k: string) {\n if (includes(CAMPAIGN_PARAMS, k) || includes(EVENT_TO_PERSON_PROPERTIES, k)) {\n personProperties[k] = v\n }\n })\n\n posthog.setPersonPropertiesForFlags(personProperties)\n}\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Properties } from '../types';
|
|
2
2
|
export declare const CAMPAIGN_PARAMS: string[];
|
|
3
|
+
export declare const EVENT_TO_PERSON_PROPERTIES: string[];
|
|
3
4
|
export declare const Info: {
|
|
4
5
|
campaignParams: (customParams?: string[]) => Record<string, string>;
|
|
5
6
|
_campaignParamsFromUrl: (url: string, customParams?: string[]) => Record<string, string>;
|
|
@@ -43,6 +43,24 @@ export var CAMPAIGN_PARAMS = [
|
|
|
43
43
|
'ttclid', // tiktok
|
|
44
44
|
'rdt_cid', // reddit
|
|
45
45
|
];
|
|
46
|
+
export var EVENT_TO_PERSON_PROPERTIES = [
|
|
47
|
+
// mobile params
|
|
48
|
+
'$app_build',
|
|
49
|
+
'$app_name',
|
|
50
|
+
'$app_namespace',
|
|
51
|
+
'$app_version',
|
|
52
|
+
// web params
|
|
53
|
+
'$browser',
|
|
54
|
+
'$browser_version',
|
|
55
|
+
'$device_type',
|
|
56
|
+
'$current_url',
|
|
57
|
+
'$pathname',
|
|
58
|
+
'$os',
|
|
59
|
+
'$os_name', // $os_name is a special case, it's treated as an alias of $os!
|
|
60
|
+
'$os_version',
|
|
61
|
+
'$referring_domain',
|
|
62
|
+
'$referrer',
|
|
63
|
+
];
|
|
46
64
|
export var Info = {
|
|
47
65
|
campaignParams: function (customParams) {
|
|
48
66
|
if (!document) {
|
|
@@ -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 } from './request-utils'\nimport { isNull } from './type-utils'\nimport { Properties } from '../types'\nimport Config from '../config'\nimport { each, extend, stripEmptyProperties, stripLeadingDollar } from './index'\nimport { document, location, userAgent, window } from './globals'\nimport { detectBrowser, detectBrowserVersion, detectDevice, detectDeviceType, detectOS } from './user-agent-utils'\n\nconst URL_REGEX_PREFIX = 'https?://(.*)'\n\n// Should be kept in sync with https://github.com/PostHog/posthog/blob/master/plugin-server/src/utils/db/utils.ts#L60\nexport const CAMPAIGN_PARAMS = [\n 'utm_source',\n 'utm_medium',\n 'utm_campaign',\n 'utm_content',\n 'utm_term',\n 'gclid', // google ads\n 'gad_source', // 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 'mc_cid', // mailchimp campaign id\n 'igshid', // instagram\n 'ttclid', // tiktok\n 'rdt_cid', // reddit\n]\n\nexport const Info = {\n campaignParams: function (customParams?: string[]): Record<string, string> {\n if (!document) {\n return {}\n }\n return this._campaignParamsFromUrl(document.URL, customParams)\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 {\n return (\n navigator.language || // Any modern browser\n (navigator as Record<string, any>).userLanguage // IE11\n )\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 initialPersonInfo: function (): Record<string, any> {\n // we're being a bit more economical with bytes here because this is stored in the cookie\n return {\n r: this.referrer(),\n u: location?.href,\n }\n },\n\n initialPersonPropsFromInfo: function (info: Record<string, any>): Record<string, any> {\n const { r: initial_referrer, u: initial_current_url } = info\n const referring_domain =\n initial_referrer == null\n ? undefined\n : initial_referrer == '$direct'\n ? '$direct'\n : convertToURL(initial_referrer)?.host\n\n const props: Record<string, string | undefined> = {\n $initial_referrer: initial_referrer,\n $initial_referring_domain: referring_domain,\n }\n if (initial_current_url) {\n props['$initial_current_url'] = initial_current_url\n const location = convertToURL(initial_current_url)\n props['$initial_host'] = location?.host\n props['$initial_pathname'] = location?.pathname\n const campaignParams = this._campaignParamsFromUrl(initial_current_url)\n each(campaignParams, function (v, k: string) {\n props['$initial_' + stripLeadingDollar(k)] = v\n })\n }\n if (initial_referrer) {\n const searchInfo = this._searchInfoFromReferrer(initial_referrer)\n each(searchInfo, function (v, k: string) {\n props['$initial_' + stripLeadingDollar(k)] = v\n })\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 properties: function (): Properties {\n if (!userAgent) {\n return {}\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 }),\n {\n $current_url: location?.href,\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 $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":";;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AAErC,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA;AAChF,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,YAAY,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAA;AAElH,IAAM,gBAAgB,GAAG,eAAe,CAAA;AAExC,qHAAqH;AACrH,MAAM,CAAC,IAAM,eAAe,GAAG;IAC3B,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,aAAa;IACb,UAAU;IACV,OAAO,EAAE,aAAa;IACtB,YAAY,EAAE,aAAa;IAC3B,QAAQ,EAAE,iBAAiB;IAC3B,OAAO,EAAE,qBAAqB;IAC9B,QAAQ,EAAE,yBAAyB;IACnC,QAAQ,EAAE,yBAAyB;IACnC,QAAQ,EAAE,WAAW;IACrB,SAAS,EAAE,YAAY;IACvB,QAAQ,EAAE,UAAU;IACpB,WAAW,EAAE,WAAW;IACxB,QAAQ,EAAE,wBAAwB;IAClC,QAAQ,EAAE,YAAY;IACtB,QAAQ,EAAE,SAAS;IACnB,SAAS,EAAE,SAAS;CACvB,CAAA;AAED,MAAM,CAAC,IAAM,0BAA0B,GAAG;IACtC,gBAAgB;IAChB,YAAY;IACZ,WAAW;IACX,gBAAgB;IAChB,cAAc;IACd,aAAa;IACb,UAAU;IACV,kBAAkB;IAClB,cAAc;IACd,cAAc;IACd,WAAW;IACX,KAAK;IACL,UAAU,EAAE,+DAA+D;IAC3E,aAAa;IACb,mBAAmB;IACnB,WAAW;CACd,CAAA;AAED,MAAM,CAAC,IAAM,IAAI,GAAG;IAChB,cAAc,EAAE,UAAU,YAAuB;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,EAAE,CAAA;QACb,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,GAAG,EAAE,YAAY,CAAC,CAAA;IAClE,CAAC;IAED,sBAAsB,EAAE,UAAU,GAAW,EAAE,YAAuB;QAClE,IAAM,iBAAiB,GAAG,eAAe,CAAC,MAAM,CAAC,YAAY,IAAI,EAAE,CAAC,CAAA;QAEpE,IAAM,MAAM,GAAwB,EAAE,CAAA;QACtC,IAAI,CAAC,iBAAiB,EAAE,UAAU,KAAK;YACnC,IAAM,EAAE,GAAG,aAAa,CAAC,GAAG,EAAE,KAAK,CAAC,CAAA;YACpC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QAClC,CAAC,CAAC,CAAA;QAEF,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,aAAa,EAAE,UAAU,QAAgB;QACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,IAAI,CAAA;QACf,CAAC;aAAM,CAAC;YACJ,IAAI,QAAQ,CAAC,MAAM,CAAC,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,OAAO,QAAQ,CAAA;YACnB,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,gBAAgB,GAAG,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC9D,OAAO,MAAM,CAAA;YACjB,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,gBAAgB,GAAG,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC/D,OAAO,OAAO,CAAA;YAClB,CAAC;iBAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,gBAAgB,GAAG,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpE,OAAO,YAAY,CAAA;YACvB,CAAC;iBAAM,CAAC;gBACJ,OAAO,IAAI,CAAA;YACf,CAAC;QACL,CAAC;IACL,CAAC;IAED,uBAAuB,EAAE,UAAU,QAAgB;QAC/C,IAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;QAC3C,IAAM,KAAK,GAAG,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAA;QAC3C,IAAM,GAAG,GAAwB,EAAE,CAAA;QAEnC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;YAClB,GAAG,CAAC,gBAAgB,CAAC,GAAG,MAAM,CAAA;YAE9B,IAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;YACvE,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACjB,GAAG,CAAC,YAAY,CAAC,GAAG,OAAO,CAAA;YAC/B,CAAC;QACL,CAAC;QAED,OAAO,GAAG,CAAA;IACd,CAAC;IAED,UAAU,EAAE;QACR,IAAM,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAA;QACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,OAAO,EAAE,CAAA;QACb,CAAC;QACD,OAAO,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAA;IACjD,CAAC;IAED;;;;OAIG;IACH,OAAO,EAAE,aAAa;IAEtB;;;;;;;OAOG;IACH,cAAc,EAAE,oBAAoB;IAEpC,eAAe,EAAE;QACb,OAAO,CACH,SAAS,CAAC,QAAQ,IAAI,qBAAqB;YAC1C,SAAiC,CAAC,YAAY,CAAC,OAAO;SAC1D,CAAA;IACL,CAAC;IAED,EAAE,EAAE,QAAQ;IAEZ,MAAM,EAAE,YAAY;IAEpB,UAAU,EAAE,gBAAgB;IAE5B,QAAQ,EAAE;QACN,OAAO,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,KAAI,SAAS,CAAA;IAC1C,CAAC;IAED,eAAe,EAAE;;QACb,IAAI,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAA,EAAE,CAAC;YACtB,OAAO,SAAS,CAAA;QACpB,CAAC;QACD,OAAO,CAAA,MAAA,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC,0CAAE,IAAI,KAAI,SAAS,CAAA;IAC7D,CAAC;IAED,YAAY,EAAE;QACV,OAAO;YACH,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;YAC1B,iBAAiB,EAAE,IAAI,CAAC,eAAe,EAAE;SAC5C,CAAA;IACL,CAAC;IAED,iBAAiB,EAAE;QACf,yFAAyF;QACzF,OAAO;YACH,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE;YAClB,CAAC,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;SACpB,CAAA;IACL,CAAC;IAED,0BAA0B,EAAE,UAAU,IAAyB;;QACnD,IAAG,gBAAgB,GAA6B,IAAI,EAAjC,EAAK,mBAAmB,GAAK,IAAI,EAAT,CAAS;QAC5D,IAAM,gBAAgB,GAClB,gBAAgB,IAAI,IAAI;YACpB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,gBAAgB,IAAI,SAAS;gBAC/B,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,MAAA,YAAY,CAAC,gBAAgB,CAAC,0CAAE,IAAI,CAAA;QAE9C,IAAM,KAAK,GAAuC;YAC9C,iBAAiB,EAAE,gBAAgB;YACnC,yBAAyB,EAAE,gBAAgB;SAC9C,CAAA;QACD,IAAI,mBAAmB,EAAE,CAAC;YACtB,KAAK,CAAC,sBAAsB,CAAC,GAAG,mBAAmB,CAAA;YACnD,IAAM,UAAQ,GAAG,YAAY,CAAC,mBAAmB,CAAC,CAAA;YAClD,KAAK,CAAC,eAAe,CAAC,GAAG,UAAQ,aAAR,UAAQ,uBAAR,UAAQ,CAAE,IAAI,CAAA;YACvC,KAAK,CAAC,mBAAmB,CAAC,GAAG,UAAQ,aAAR,UAAQ,uBAAR,UAAQ,CAAE,QAAQ,CAAA;YAC/C,IAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,CAAA;YACvE,IAAI,CAAC,cAAc,EAAE,UAAU,CAAC,EAAE,CAAS;gBACvC,KAAK,CAAC,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAClD,CAAC,CAAC,CAAA;QACN,CAAC;QACD,IAAI,gBAAgB,EAAE,CAAC;YACnB,IAAM,UAAU,GAAG,IAAI,CAAC,uBAAuB,CAAC,gBAAgB,CAAC,CAAA;YACjE,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,EAAE,CAAS;gBACnC,KAAK,CAAC,WAAW,GAAG,kBAAkB,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YAClD,CAAC,CAAC,CAAA;QACN,CAAC;QACD,OAAO,KAAK,CAAA;IAChB,CAAC;IAED,QAAQ,EAAE;QACN,IAAI,CAAC;YACD,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC,eAAe,EAAE,CAAC,QAAQ,CAAA;QAC3D,CAAC;QAAC,WAAM,CAAC;YACL,OAAO,SAAS,CAAA;QACpB,CAAC;IACL,CAAC;IAED,UAAU,EAAE;QACR,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,CAAA;QACb,CAAC;QACK,IAAA,KAAA,OAAwB,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAA,EAAzC,OAAO,QAAA,EAAE,UAAU,QAAsB,CAAA;QAChD,OAAO,MAAM,CACT,oBAAoB,CAAC;YACjB,GAAG,EAAE,OAAO;YACZ,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC;YACnD,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;YAC/B,YAAY,EAAE,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;YACxC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;SAC7B,CAAC,EACF;YACI,YAAY,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;YAC5B,KAAK,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,IAAI;YACrB,SAAS,EAAE,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ;YAC7B,eAAe,EAAE,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,SAAS;YAC1F,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC;YAClE,iBAAiB,EAAE,IAAI,CAAC,eAAe,EAAE;YACzC,cAAc,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,MAAM;YACrC,aAAa,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,MAAM,CAAC,KAAK;YACnC,gBAAgB,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW;YACrC,eAAe,EAAE,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,UAAU;YACnC,IAAI,EAAE,KAAK;YACX,YAAY,EAAE,MAAM,CAAC,WAAW;YAChC,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;YACrG,KAAK,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,wBAAwB;SACrD,CACJ,CAAA;IACL,CAAC;IAED,iBAAiB,EAAE;QACf,IAAI,CAAC,SAAS,EAAE,CAAC;YACb,OAAO,EAAE,CAAA;QACb,CAAC;QAEK,IAAA,KAAA,OAAwB,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAA,EAAzC,OAAO,QAAA,EAAE,UAAU,QAAsB,CAAA;QAChD,OAAO,MAAM,CACT,oBAAoB,CAAC;YACjB,GAAG,EAAE,OAAO;YACZ,WAAW,EAAE,UAAU;YACvB,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC;SACtD,CAAC,EACF;YACI,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC;SACrE,CACJ,CAAA;IACL,CAAC;CACJ,CAAA","sourcesContent":["import { getQueryParam, convertToURL } from './request-utils'\nimport { isNull } from './type-utils'\nimport { Properties } from '../types'\nimport Config from '../config'\nimport { each, extend, stripEmptyProperties, stripLeadingDollar } from './index'\nimport { document, location, userAgent, window } from './globals'\nimport { detectBrowser, detectBrowserVersion, detectDevice, detectDeviceType, detectOS } from './user-agent-utils'\n\nconst URL_REGEX_PREFIX = 'https?://(.*)'\n\n// Should be kept in sync with https://github.com/PostHog/posthog/blob/master/plugin-server/src/utils/db/utils.ts#L60\nexport const CAMPAIGN_PARAMS = [\n 'utm_source',\n 'utm_medium',\n 'utm_campaign',\n 'utm_content',\n 'utm_term',\n 'gclid', // google ads\n 'gad_source', // 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 'mc_cid', // mailchimp campaign id\n 'igshid', // instagram\n 'ttclid', // tiktok\n 'rdt_cid', // reddit\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 Info = {\n campaignParams: function (customParams?: string[]): Record<string, string> {\n if (!document) {\n return {}\n }\n return this._campaignParamsFromUrl(document.URL, customParams)\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 {\n return (\n navigator.language || // Any modern browser\n (navigator as Record<string, any>).userLanguage // IE11\n )\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 initialPersonInfo: function (): Record<string, any> {\n // we're being a bit more economical with bytes here because this is stored in the cookie\n return {\n r: this.referrer(),\n u: location?.href,\n }\n },\n\n initialPersonPropsFromInfo: function (info: Record<string, any>): Record<string, any> {\n const { r: initial_referrer, u: initial_current_url } = info\n const referring_domain =\n initial_referrer == null\n ? undefined\n : initial_referrer == '$direct'\n ? '$direct'\n : convertToURL(initial_referrer)?.host\n\n const props: Record<string, string | undefined> = {\n $initial_referrer: initial_referrer,\n $initial_referring_domain: referring_domain,\n }\n if (initial_current_url) {\n props['$initial_current_url'] = initial_current_url\n const location = convertToURL(initial_current_url)\n props['$initial_host'] = location?.host\n props['$initial_pathname'] = location?.pathname\n const campaignParams = this._campaignParamsFromUrl(initial_current_url)\n each(campaignParams, function (v, k: string) {\n props['$initial_' + stripLeadingDollar(k)] = v\n })\n }\n if (initial_referrer) {\n const searchInfo = this._searchInfoFromReferrer(initial_referrer)\n each(searchInfo, function (v, k: string) {\n props['$initial_' + stripLeadingDollar(k)] = v\n })\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 properties: function (): Properties {\n if (!userAgent) {\n return {}\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 }),\n {\n $current_url: location?.href,\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 $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