posthog-js 1.90.2 → 1.91.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.js +1 -1
- package/dist/array.full.js.map +1 -1
- package/dist/array.js +1 -1
- package/dist/array.js.map +1 -1
- package/dist/es.js +1 -1
- package/dist/es.js.map +1 -1
- package/dist/exception-autocapture.js +1 -1
- package/dist/exception-autocapture.js.map +1 -1
- package/dist/module.d.ts +3 -4
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/dist/recorder-v2.js +1 -1
- package/dist/recorder-v2.js.map +1 -1
- package/dist/recorder.js +1 -1
- package/dist/recorder.js.map +1 -1
- package/dist/surveys.js +1 -1
- package/dist/surveys.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/src/autocapture-utils.js +2 -1
- package/lib/src/autocapture-utils.js.map +1 -1
- package/lib/src/autocapture.js +11 -4
- package/lib/src/autocapture.js.map +1 -1
- package/lib/src/decide.js +2 -1
- package/lib/src/decide.js.map +1 -1
- package/lib/src/extensions/exception-autocapture/index.js +6 -3
- package/lib/src/extensions/exception-autocapture/index.js.map +1 -1
- package/lib/src/extensions/replay/sessionrecording.js +8 -8
- package/lib/src/extensions/replay/sessionrecording.js.map +1 -1
- package/lib/src/extensions/replay/web-performance.js +1 -0
- package/lib/src/extensions/replay/web-performance.js.map +1 -1
- package/lib/src/extensions/surveys.js +10 -2
- package/lib/src/extensions/surveys.js.map +1 -1
- package/lib/src/extensions/toolbar.d.ts +2 -2
- package/lib/src/extensions/toolbar.js +16 -13
- package/lib/src/extensions/toolbar.js.map +1 -1
- package/lib/src/gdpr-utils.js +2 -2
- package/lib/src/gdpr-utils.js.map +1 -1
- package/lib/src/loader-exception-autocapture.js +4 -3
- package/lib/src/loader-exception-autocapture.js.map +1 -1
- package/lib/src/loader-recorder-v2.js +7 -4
- package/lib/src/loader-recorder-v2.js.map +1 -1
- package/lib/src/loader-recorder.js +6 -6
- package/lib/src/loader-recorder.js.map +1 -1
- package/lib/src/loader-surveys.js +5 -3
- package/lib/src/loader-surveys.js.map +1 -1
- package/lib/src/page-view.js +14 -11
- package/lib/src/page-view.js.map +1 -1
- package/lib/src/posthog-core.js +21 -22
- package/lib/src/posthog-core.js.map +1 -1
- package/lib/src/posthog-surveys.js +7 -4
- package/lib/src/posthog-surveys.js.map +1 -1
- package/lib/src/retry-queue.js +2 -1
- package/lib/src/retry-queue.js.map +1 -1
- package/lib/src/session-props.d.ts +1 -2
- package/lib/src/session-props.js +2 -2
- package/lib/src/session-props.js.map +1 -1
- package/lib/src/sessionid.js +1 -1
- package/lib/src/sessionid.js.map +1 -1
- package/lib/src/storage.d.ts +1 -1
- package/lib/src/storage.js +18 -8
- package/lib/src/storage.js.map +1 -1
- package/lib/src/utils/event-utils.js +16 -10
- package/lib/src/utils/event-utils.js.map +1 -1
- package/lib/src/utils/globals.d.ts +5 -4
- package/lib/src/utils/globals.js +7 -5
- package/lib/src/utils/globals.js.map +1 -1
- package/lib/src/utils/index.js +7 -4
- package/lib/src/utils/index.js.map +1 -1
- package/lib/src/utils/logger.js +5 -2
- package/lib/src/utils/logger.js.map +1 -1
- package/lib/src/uuidv7.js +1 -1
- package/lib/src/uuidv7.js.map +1 -1
- package/package.json +1 -1
|
@@ -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 } from './request-utils'\nimport { _isNull, _isUndefined } from './type-utils'\nimport { Properties } from '../types'\nimport Config from '../config'\nimport { _each, _extend, _includes, _strip_empty_properties, _timestamp } from './index'\nimport { document, userAgent } from './globals'\n\n/**\n * Safari detection turns out to be complicted. For e.g. https://stackoverflow.com/a/29696509\n * We can be slightly loose because some options have been ruled out (e.g. firefox on iOS)\n * before this check is made\n */\nfunction isSafari(userAgent: string): boolean {\n return _includes(userAgent, 'Safari') && !_includes(userAgent, 'Chrome') && !_includes(userAgent, 'Android')\n}\n\nexport const _info = {\n campaignParams: function (customParams?: string[]): Record<string, any> {\n const campaign_keywords = [\n 'utm_source',\n 'utm_medium',\n 'utm_campaign',\n 'utm_content',\n 'utm_term',\n 'gclid',\n 'fbclid',\n 'msclkid',\n ].concat(customParams || [])\n\n const params: Record<string, any> = {}\n _each(campaign_keywords, function (kwkey) {\n const kw = _getQueryParam(document.URL, kwkey)\n if (kw.length) {\n params[kwkey] = kw\n }\n })\n\n return params\n },\n\n searchEngine: function (): string | null {\n const referrer = document.referrer\n if (!referrer) {\n return null\n } else if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\n return 'google'\n } else if (referrer.search('https?://(.*)bing.com') === 0) {\n return 'bing'\n } else if (referrer.search('https?://(.*)yahoo.com') === 0) {\n return 'yahoo'\n } else if (referrer.search('https?://(.*)duckduckgo.com') === 0) {\n return 'duckduckgo'\n } else {\n return null\n }\n },\n\n searchInfo: function (): Record<string, any> {\n const search = _info.searchEngine(),\n param = search != 'yahoo' ? 'q' : 'p',\n ret: Record<string, any> = {}\n\n if (!_isNull(search)) {\n ret['$search_engine'] = search\n\n const keyword = _getQueryParam(document.referrer, param)\n if (keyword.length) {\n ret['ph_keyword'] = keyword\n }\n }\n\n return ret\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 key words used in later checks.\n */\n browser: function (user_agent: string, vendor: string | undefined, opera?: any): string {\n vendor = vendor || '' // vendor is undefined for at least IE9\n if (opera || _includes(user_agent, ' OPR/')) {\n if (_includes(user_agent, 'Mini')) {\n return 'Opera Mini'\n }\n return 'Opera'\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry'\n } else if (_includes(user_agent, 'IEMobile') || _includes(user_agent, 'WPDesktop')) {\n return 'Internet Explorer Mobile'\n } else if (_includes(user_agent, 'SamsungBrowser/')) {\n // https://developer.samsung.com/internet/user-agent-string-format\n return 'Samsung Internet'\n } else if (_includes(user_agent, 'Edge') || _includes(user_agent, 'Edg/')) {\n return 'Microsoft Edge'\n } else if (_includes(user_agent, 'FBIOS')) {\n return 'Facebook Mobile'\n } else if (_includes(user_agent, 'Chrome')) {\n return 'Chrome'\n } else if (_includes(user_agent, 'CriOS')) {\n return 'Chrome iOS'\n } else if (_includes(user_agent, 'UCWEB') || _includes(user_agent, 'UCBrowser')) {\n return 'UC Browser'\n } else if (_includes(user_agent, 'FxiOS')) {\n return 'Firefox iOS'\n } else if (_includes(vendor, 'Apple') || isSafari(user_agent)) {\n if (_includes(user_agent, 'Mobile')) {\n return 'Mobile Safari'\n }\n return 'Safari'\n } else if (_includes(user_agent, 'Android')) {\n return 'Android Mobile'\n } else if (_includes(user_agent, 'Konqueror') || _includes(user_agent, 'konqueror')) {\n return 'Konqueror'\n } else if (_includes(user_agent, 'Firefox')) {\n return 'Firefox'\n } else if (_includes(user_agent, 'MSIE') || _includes(user_agent, 'Trident/')) {\n return 'Internet Explorer'\n } else if (_includes(user_agent, 'Gecko')) {\n return 'Mozilla'\n } else {\n return ''\n }\n },\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: function (userAgent: string, vendor: string | undefined, opera: string): number | null {\n const browser = _info.browser(userAgent, vendor, opera)\n const versionRegexes: Record<string, RegExp[]> = {\n 'Internet Explorer Mobile': [/rv:(\\d+(\\.\\d+)?)/],\n 'Microsoft Edge': [/Edge?\\/(\\d+(\\.\\d+)?)/],\n Chrome: [/Chrome\\/(\\d+(\\.\\d+)?)/],\n 'Chrome iOS': [/CriOS\\/(\\d+(\\.\\d+)?)/],\n 'UC Browser': [/(UCBrowser|UCWEB)\\/(\\d+(\\.\\d+)?)/],\n Safari: [/Version\\/(\\d+(\\.\\d+)?)/],\n 'Mobile Safari': [/Version\\/(\\d+(\\.\\d+)?)/],\n Opera: [/(Opera|OPR)\\/(\\d+(\\.\\d+)?)/],\n Firefox: [/Firefox\\/(\\d+(\\.\\d+)?)/],\n 'Firefox iOS': [/FxiOS\\/(\\d+(\\.\\d+)?)/],\n Konqueror: [/Konqueror[:/]?(\\d+(\\.\\d+)?)/i],\n // not every blackberry user agent has the version after the name\n BlackBerry: [/BlackBerry (\\d+(\\.\\d+)?)/, /Version\\/(\\d+(\\.\\d+)?)/],\n 'Android Mobile': [/android\\s(\\d+(\\.\\d+)?)/],\n 'Samsung Internet': [/SamsungBrowser\\/(\\d+(\\.\\d+)?)/],\n 'Internet Explorer': [/(rv:|MSIE )(\\d+(\\.\\d+)?)/],\n Mozilla: [/rv:(\\d+(\\.\\d+)?)/],\n }\n const regexes: RegExp[] | undefined = versionRegexes[browser as keyof typeof versionRegexes]\n if (_isUndefined(regexes)) {\n return null\n }\n\n for (let i = 0; i < regexes.length; i++) {\n const regex = regexes[i]\n const matches = userAgent.match(regex)\n if (matches) {\n return parseFloat(matches[matches.length - 2])\n }\n }\n return null\n },\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: function (user_agent: string): { os_name: string; os_version: string } {\n if (/Windows/i.test(user_agent)) {\n if (/Phone/.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return { os_name: 'Windows Phone', os_version: '' }\n }\n const match = /Windows NT ([0-9.]+)/i.exec(user_agent)\n if (match && match[1]) {\n const version = match[1]\n return { os_name: 'Windows', os_version: version }\n }\n return { os_name: 'Windows', os_version: '' }\n } else if (/(iPhone|iPad|iPod)/.test(user_agent)) {\n const match = /OS (\\d+)_(\\d+)_?(\\d+)?/i.exec(user_agent)\n if (match && match[1]) {\n const versionParts = [match[1], match[2], match[3] || '0']\n return { os_name: 'iOS', os_version: versionParts.join('.') }\n }\n return { os_name: 'iOS', os_version: '' }\n } else if (/Android/.test(user_agent)) {\n const match = /Android (\\d+)\\.(\\d+)\\.?(\\d+)?/i.exec(user_agent)\n if (match && match[1]) {\n const versionParts = [match[1], match[2], match[3] || '0']\n return { os_name: 'Android', os_version: versionParts.join('.') }\n }\n return { os_name: 'Android', os_version: '' }\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return { os_name: 'BlackBerry', os_version: '' }\n } else if (/Mac/i.test(user_agent)) {\n const match = /Mac OS X (\\d+)[_.](\\d+)[_.]?(\\d+)?/i.exec(user_agent)\n if (match && match[1]) {\n const versionParts = [match[1], match[2], match[3] || '0']\n return { os_name: 'Mac OS X', os_version: versionParts.join('.') }\n }\n return { os_name: 'Mac OS X', os_version: '' }\n } else if (/Linux/.test(user_agent)) {\n return { os_name: 'Linux', os_version: '' }\n } else if (/CrOS/.test(user_agent)) {\n return { os_name: 'Chrome OS', os_version: '' }\n } else {\n return { os_name: '', os_version: '' }\n }\n },\n\n device: function (user_agent: string): string {\n if (/Windows Phone/i.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return 'Windows Phone'\n } else if (/iPad/.test(user_agent)) {\n return 'iPad'\n } else if (/iPod/.test(user_agent)) {\n return 'iPod Touch'\n } else if (/iPhone/.test(user_agent)) {\n return 'iPhone'\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry'\n } else if (/Android/.test(user_agent) && !/Mobile/.test(user_agent)) {\n return 'Android Tablet'\n } else if (/Android/.test(user_agent)) {\n return 'Android'\n } else {\n return ''\n }\n },\n\n deviceType: function (user_agent: string): string {\n const device = this.device(user_agent)\n if (device === 'iPad' || device === 'Android Tablet') {\n return 'Tablet'\n } else if (device) {\n return 'Mobile'\n } else {\n return 'Desktop'\n }\n },\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 const parser = document.createElement('a') // Unfortunately we cannot use new URL due to IE11\n parser.href = document.referrer\n return parser.host\n },\n\n properties: function (): Properties {\n const { os_name, os_version } = _info.os(userAgent)\n return _extend(\n _strip_empty_properties({\n $os: os_name,\n $os_version: os_version,\n $browser: _info.browser(userAgent, navigator.vendor, (window as any).opera),\n $device: _info.device(userAgent),\n $device_type: _info.deviceType(userAgent),\n }),\n {\n $current_url: window?.location.href,\n $host: window?.location.host,\n $pathname: window?.location.pathname,\n $raw_user_agent: userAgent.length > 1000 ? userAgent.substring(0, 997) + '...' : userAgent,\n $browser_version: _info.browserVersion(userAgent, navigator.vendor, (window as any).opera),\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: _timestamp() / 1000, // epoch time in seconds\n }\n )\n },\n\n people_properties: function (): Properties {\n const { os_name, os_version } = _info.os(userAgent)\n return _extend(\n _strip_empty_properties({\n $os: os_name,\n $os_version: os_version,\n $browser: _info.browser(userAgent, navigator.vendor, (window as any).opera),\n }),\n {\n $browser_version: _info.browserVersion(userAgent, navigator.vendor, (window as any).opera),\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 } from './request-utils'\nimport { _isNull, _isUndefined } from './type-utils'\nimport { Properties } from '../types'\nimport Config from '../config'\nimport { _each, _extend, _includes, _strip_empty_properties, _timestamp } from './index'\nimport { document, window, userAgent, assignableWindow } from './globals'\n\n/**\n * Safari detection turns out to be complicted. For e.g. https://stackoverflow.com/a/29696509\n * We can be slightly loose because some options have been ruled out (e.g. firefox on iOS)\n * before this check is made\n */\nfunction isSafari(userAgent: string): boolean {\n return _includes(userAgent, 'Safari') && !_includes(userAgent, 'Chrome') && !_includes(userAgent, 'Android')\n}\n\nexport const _info = {\n campaignParams: function (customParams?: string[]): Record<string, any> {\n const campaign_keywords = [\n 'utm_source',\n 'utm_medium',\n 'utm_campaign',\n 'utm_content',\n 'utm_term',\n 'gclid',\n 'fbclid',\n 'msclkid',\n ].concat(customParams || [])\n\n const params: Record<string, any> = {}\n _each(campaign_keywords, function (kwkey) {\n const kw = document ? _getQueryParam(document.URL, kwkey) : ''\n if (kw.length) {\n params[kwkey] = kw\n }\n })\n\n return params\n },\n\n searchEngine: function (): string | null {\n const referrer = document?.referrer\n if (!referrer) {\n return null\n } else if (referrer.search('https?://(.*)google.([^/?]*)') === 0) {\n return 'google'\n } else if (referrer.search('https?://(.*)bing.com') === 0) {\n return 'bing'\n } else if (referrer.search('https?://(.*)yahoo.com') === 0) {\n return 'yahoo'\n } else if (referrer.search('https?://(.*)duckduckgo.com') === 0) {\n return 'duckduckgo'\n } else {\n return null\n }\n },\n\n searchInfo: function (): Record<string, any> {\n const search = _info.searchEngine(),\n param = search != 'yahoo' ? 'q' : 'p',\n 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 /**\n * This function detects which browser is running this script.\n * The order of the checks are important since many user agents\n * include key words used in later checks.\n */\n browser: function (user_agent: string, vendor: string | undefined, opera?: any): string {\n vendor = vendor || '' // vendor is undefined for at least IE9\n if (opera || _includes(user_agent, ' OPR/')) {\n if (_includes(user_agent, 'Mini')) {\n return 'Opera Mini'\n }\n return 'Opera'\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry'\n } else if (_includes(user_agent, 'IEMobile') || _includes(user_agent, 'WPDesktop')) {\n return 'Internet Explorer Mobile'\n } else if (_includes(user_agent, 'SamsungBrowser/')) {\n // https://developer.samsung.com/internet/user-agent-string-format\n return 'Samsung Internet'\n } else if (_includes(user_agent, 'Edge') || _includes(user_agent, 'Edg/')) {\n return 'Microsoft Edge'\n } else if (_includes(user_agent, 'FBIOS')) {\n return 'Facebook Mobile'\n } else if (_includes(user_agent, 'Chrome')) {\n return 'Chrome'\n } else if (_includes(user_agent, 'CriOS')) {\n return 'Chrome iOS'\n } else if (_includes(user_agent, 'UCWEB') || _includes(user_agent, 'UCBrowser')) {\n return 'UC Browser'\n } else if (_includes(user_agent, 'FxiOS')) {\n return 'Firefox iOS'\n } else if (_includes(vendor, 'Apple') || isSafari(user_agent)) {\n if (_includes(user_agent, 'Mobile')) {\n return 'Mobile Safari'\n }\n return 'Safari'\n } else if (_includes(user_agent, 'Android')) {\n return 'Android Mobile'\n } else if (_includes(user_agent, 'Konqueror') || _includes(user_agent, 'konqueror')) {\n return 'Konqueror'\n } else if (_includes(user_agent, 'Firefox')) {\n return 'Firefox'\n } else if (_includes(user_agent, 'MSIE') || _includes(user_agent, 'Trident/')) {\n return 'Internet Explorer'\n } else if (_includes(user_agent, 'Gecko')) {\n return 'Mozilla'\n } else {\n return ''\n }\n },\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: function (userAgent: string, vendor: string | undefined, opera: string): number | null {\n const browser = _info.browser(userAgent, vendor, opera)\n const versionRegexes: Record<string, RegExp[]> = {\n 'Internet Explorer Mobile': [/rv:(\\d+(\\.\\d+)?)/],\n 'Microsoft Edge': [/Edge?\\/(\\d+(\\.\\d+)?)/],\n Chrome: [/Chrome\\/(\\d+(\\.\\d+)?)/],\n 'Chrome iOS': [/CriOS\\/(\\d+(\\.\\d+)?)/],\n 'UC Browser': [/(UCBrowser|UCWEB)\\/(\\d+(\\.\\d+)?)/],\n Safari: [/Version\\/(\\d+(\\.\\d+)?)/],\n 'Mobile Safari': [/Version\\/(\\d+(\\.\\d+)?)/],\n Opera: [/(Opera|OPR)\\/(\\d+(\\.\\d+)?)/],\n Firefox: [/Firefox\\/(\\d+(\\.\\d+)?)/],\n 'Firefox iOS': [/FxiOS\\/(\\d+(\\.\\d+)?)/],\n Konqueror: [/Konqueror[:/]?(\\d+(\\.\\d+)?)/i],\n // not every blackberry user agent has the version after the name\n BlackBerry: [/BlackBerry (\\d+(\\.\\d+)?)/, /Version\\/(\\d+(\\.\\d+)?)/],\n 'Android Mobile': [/android\\s(\\d+(\\.\\d+)?)/],\n 'Samsung Internet': [/SamsungBrowser\\/(\\d+(\\.\\d+)?)/],\n 'Internet Explorer': [/(rv:|MSIE )(\\d+(\\.\\d+)?)/],\n Mozilla: [/rv:(\\d+(\\.\\d+)?)/],\n }\n const regexes: RegExp[] | undefined = versionRegexes[browser as keyof typeof versionRegexes]\n if (_isUndefined(regexes)) {\n return null\n }\n\n for (let i = 0; i < regexes.length; i++) {\n const regex = regexes[i]\n const matches = userAgent.match(regex)\n if (matches) {\n return parseFloat(matches[matches.length - 2])\n }\n }\n return null\n },\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: function (user_agent: string): { os_name: string; os_version: string } {\n if (/Windows/i.test(user_agent)) {\n if (/Phone/.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return { os_name: 'Windows Phone', os_version: '' }\n }\n const match = /Windows NT ([0-9.]+)/i.exec(user_agent)\n if (match && match[1]) {\n const version = match[1]\n return { os_name: 'Windows', os_version: version }\n }\n return { os_name: 'Windows', os_version: '' }\n } else if (/(iPhone|iPad|iPod)/.test(user_agent)) {\n const match = /OS (\\d+)_(\\d+)_?(\\d+)?/i.exec(user_agent)\n if (match && match[1]) {\n const versionParts = [match[1], match[2], match[3] || '0']\n return { os_name: 'iOS', os_version: versionParts.join('.') }\n }\n return { os_name: 'iOS', os_version: '' }\n } else if (/Android/.test(user_agent)) {\n const match = /Android (\\d+)\\.(\\d+)\\.?(\\d+)?/i.exec(user_agent)\n if (match && match[1]) {\n const versionParts = [match[1], match[2], match[3] || '0']\n return { os_name: 'Android', os_version: versionParts.join('.') }\n }\n return { os_name: 'Android', os_version: '' }\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return { os_name: 'BlackBerry', os_version: '' }\n } else if (/Mac/i.test(user_agent)) {\n const match = /Mac OS X (\\d+)[_.](\\d+)[_.]?(\\d+)?/i.exec(user_agent)\n if (match && match[1]) {\n const versionParts = [match[1], match[2], match[3] || '0']\n return { os_name: 'Mac OS X', os_version: versionParts.join('.') }\n }\n return { os_name: 'Mac OS X', os_version: '' }\n } else if (/Linux/.test(user_agent)) {\n return { os_name: 'Linux', os_version: '' }\n } else if (/CrOS/.test(user_agent)) {\n return { os_name: 'Chrome OS', os_version: '' }\n } else {\n return { os_name: '', os_version: '' }\n }\n },\n\n device: function (user_agent: string): string {\n if (/Windows Phone/i.test(user_agent) || /WPDesktop/.test(user_agent)) {\n return 'Windows Phone'\n } else if (/iPad/.test(user_agent)) {\n return 'iPad'\n } else if (/iPod/.test(user_agent)) {\n return 'iPod Touch'\n } else if (/iPhone/.test(user_agent)) {\n return 'iPhone'\n } else if (/(BlackBerry|PlayBook|BB10)/i.test(user_agent)) {\n return 'BlackBerry'\n } else if (/Android/.test(user_agent) && !/Mobile/.test(user_agent)) {\n return 'Android Tablet'\n } else if (/Android/.test(user_agent)) {\n return 'Android'\n } else {\n return ''\n }\n },\n\n deviceType: function (user_agent: string): string {\n const device = this.device(user_agent)\n if (device === 'iPad' || device === 'Android Tablet') {\n return 'Tablet'\n } else if (device) {\n return 'Mobile'\n } else {\n return 'Desktop'\n }\n },\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 const parser = document.createElement('a') // Unfortunately we cannot use new URL due to IE11\n parser.href = document.referrer\n return parser.host\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 _strip_empty_properties({\n $os: os_name,\n $os_version: os_version,\n $browser: _info.browser(userAgent, navigator.vendor, assignableWindow.opera),\n $device: _info.device(userAgent),\n $device_type: _info.deviceType(userAgent),\n }),\n {\n $current_url: window?.location.href,\n $host: window?.location.host,\n $pathname: window?.location.pathname,\n $raw_user_agent: userAgent.length > 1000 ? userAgent.substring(0, 997) + '...' : userAgent,\n $browser_version: _info.browserVersion(userAgent, navigator.vendor, assignableWindow.opera),\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: _timestamp() / 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 _strip_empty_properties({\n $os: os_name,\n $os_version: os_version,\n $browser: _info.browser(userAgent, navigator.vendor, assignableWindow.opera),\n }),\n {\n $browser_version: _info.browserVersion(userAgent, navigator.vendor, assignableWindow.opera),\n }\n )\n },\n}\n"]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export declare const ArrayProto: any[];
|
|
2
2
|
export declare const nativeForEach: (callbackfn: (value: any, index: number, array: any[]) => void, thisArg?: any) => void;
|
|
3
3
|
export declare const nativeIndexOf: (searchElement: any, fromIndex?: number | undefined) => number;
|
|
4
|
-
export declare const win: Window & typeof globalThis;
|
|
5
|
-
declare const document: Document;
|
|
6
|
-
declare const userAgent: string;
|
|
7
|
-
export
|
|
4
|
+
export declare const win: (Window & typeof globalThis) | undefined;
|
|
5
|
+
export declare const document: Document | undefined;
|
|
6
|
+
export declare const userAgent: string | undefined;
|
|
7
|
+
export declare const assignableWindow: Window & typeof globalThis & Record<string, any>;
|
|
8
|
+
export { win as window };
|
package/lib/src/utils/globals.js
CHANGED
|
@@ -4,9 +4,11 @@
|
|
|
4
4
|
export var ArrayProto = Array.prototype;
|
|
5
5
|
export var nativeForEach = ArrayProto.forEach;
|
|
6
6
|
export var nativeIndexOf = ArrayProto.indexOf;
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
export
|
|
7
|
+
// eslint-disable-next-line no-restricted-globals
|
|
8
|
+
export var win = typeof window !== 'undefined' ? window : undefined;
|
|
9
|
+
var navigator = win === null || win === void 0 ? void 0 : win.navigator;
|
|
10
|
+
export var document = win === null || win === void 0 ? void 0 : win.document;
|
|
11
|
+
export var userAgent = navigator === null || navigator === void 0 ? void 0 : navigator.userAgent;
|
|
12
|
+
export var assignableWindow = win !== null && win !== void 0 ? win : {};
|
|
13
|
+
export { win as window };
|
|
12
14
|
//# sourceMappingURL=globals.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../../../src/utils/globals.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,IAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAA;AACzC,MAAM,CAAC,IAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAA;AAC/C,MAAM,CAAC,IAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAA;AAC/C,MAAM,CAAC,IAAM,GAAG,
|
|
1
|
+
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../../../src/utils/globals.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,IAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAA;AACzC,MAAM,CAAC,IAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAA;AAC/C,MAAM,CAAC,IAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAA;AAC/C,iDAAiD;AACjD,MAAM,CAAC,IAAM,GAAG,GAA6C,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AAC/G,IAAM,SAAS,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,CAAA;AAChC,MAAM,CAAC,IAAM,QAAQ,GAAG,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,QAAQ,CAAA;AACrC,MAAM,CAAC,IAAM,SAAS,GAAG,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,CAAA;AAC7C,MAAM,CAAC,IAAM,gBAAgB,GAAqD,GAAG,aAAH,GAAG,cAAH,GAAG,GAAK,EAAU,CAAA;AAEpG,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,CAAA","sourcesContent":["/*\n * Saved references to long variable names, so that bundling can minimize file size.\n */\nexport const ArrayProto = Array.prototype\nexport const nativeForEach = ArrayProto.forEach\nexport const nativeIndexOf = ArrayProto.indexOf\n// eslint-disable-next-line no-restricted-globals\nexport const win: (Window & typeof globalThis) | undefined = typeof window !== 'undefined' ? window : undefined\nconst navigator = win?.navigator\nexport const document = win?.document\nexport const userAgent = navigator?.userAgent\nexport const assignableWindow: Window & typeof globalThis & Record<string, any> = win ?? ({} as any)\n\nexport { win as window }\n"]}
|
package/lib/src/utils/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { _isArray, _isDate, _isFunction, _isNull, _isObject, _isString, _isUndefined, hasOwnProperty, } from './type-utils';
|
|
2
2
|
import { logger } from './logger';
|
|
3
|
-
import { document, nativeForEach, nativeIndexOf } from './globals';
|
|
3
|
+
import { window, document, nativeForEach, nativeIndexOf } from './globals';
|
|
4
4
|
var breaker = {};
|
|
5
5
|
// UNDERSCORE
|
|
6
6
|
// Embed part of the Underscore Library
|
|
@@ -388,7 +388,7 @@ export var _register_event = (function () {
|
|
|
388
388
|
};
|
|
389
389
|
function makeHandler(element, new_handler, old_handlers) {
|
|
390
390
|
return function (event) {
|
|
391
|
-
event = event || fixEvent(window.event);
|
|
391
|
+
event = event || fixEvent(window === null || window === void 0 ? void 0 : window.event);
|
|
392
392
|
// this basically happens in firefox whenever another script
|
|
393
393
|
// overwrites the onload callback and doesn't pass the event
|
|
394
394
|
// object to previously defined callbacks. All the browsers
|
|
@@ -429,6 +429,9 @@ export var _register_event = (function () {
|
|
|
429
429
|
export function loadScript(scriptUrlToLoad, callback) {
|
|
430
430
|
var addScript = function () {
|
|
431
431
|
var _a;
|
|
432
|
+
if (!document) {
|
|
433
|
+
return callback('document not found');
|
|
434
|
+
}
|
|
432
435
|
var scriptTag = document.createElement('script');
|
|
433
436
|
scriptTag.type = 'text/javascript';
|
|
434
437
|
scriptTag.src = scriptUrlToLoad;
|
|
@@ -443,11 +446,11 @@ export function loadScript(scriptUrlToLoad, callback) {
|
|
|
443
446
|
document.body.appendChild(scriptTag);
|
|
444
447
|
}
|
|
445
448
|
};
|
|
446
|
-
if (document.body) {
|
|
449
|
+
if (document === null || document === void 0 ? void 0 : document.body) {
|
|
447
450
|
addScript();
|
|
448
451
|
}
|
|
449
452
|
else {
|
|
450
|
-
document.addEventListener('DOMContentLoaded', addScript);
|
|
453
|
+
document === null || document === void 0 ? void 0 : document.addEventListener('DOMContentLoaded', addScript);
|
|
451
454
|
}
|
|
452
455
|
}
|
|
453
456
|
export function isCrossDomainCookie(documentLocation) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Breaker, EventHandler, Properties } from '../types'\nimport {\n _isArray,\n _isDate,\n _isFunction,\n _isNull,\n _isObject,\n _isString,\n _isUndefined,\n hasOwnProperty,\n} from './type-utils'\nimport { logger } from './logger'\nimport { document, nativeForEach, nativeIndexOf } from './globals'\n\nconst breaker: Breaker = {}\n\n// UNDERSCORE\n// Embed part of the Underscore Library\nexport const _trim = function (str: string): string {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '')\n}\n\nexport const _bind_instance_methods = function (obj: Record<string, any>): void {\n for (const func in obj) {\n if (_isFunction(obj[func])) {\n obj[func] = obj[func].bind(obj)\n }\n }\n}\n\nexport function _eachArray<E = any>(\n obj: E[] | null | undefined,\n iterator: (value: E, key: number) => void | Breaker,\n thisArg?: any\n): void {\n if (_isArray(obj)) {\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, thisArg)\n } else if ('length' in obj && obj.length === +obj.length) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(thisArg, obj[i], i) === breaker) {\n return\n }\n }\n }\n }\n}\n\n/**\n * @param {*=} obj\n * @param {function(...*)=} iterator\n * @param {Object=} thisArg\n */\nexport function _each(obj: any, iterator: (value: any, key: any) => void | Breaker, thisArg?: any): void {\n if (_isNull(obj) || _isUndefined(obj)) {\n return\n }\n if (_isArray(obj)) {\n return _eachArray(obj, iterator, thisArg)\n }\n for (const key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n if (iterator.call(thisArg, obj[key], key) === breaker) {\n return\n }\n }\n }\n}\n\nexport const _extend = function (obj: Record<string, any>, ...args: Record<string, any>[]): Record<string, any> {\n _eachArray(args, function (source) {\n for (const prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop]\n }\n }\n })\n return obj\n}\n\nexport const _include = function (\n obj: null | string | Array<any> | Record<string, any>,\n target: any\n): boolean | Breaker {\n let found = false\n if (_isNull(obj)) {\n return found\n }\n if (nativeIndexOf && obj.indexOf === nativeIndexOf) {\n return obj.indexOf(target) != -1\n }\n _each(obj, function (value) {\n if (found || (found = value === target)) {\n return breaker\n }\n return\n })\n return found\n}\n\nexport function _includes<T = any>(str: T[] | string, needle: T): boolean {\n return (str as any).indexOf(needle) !== -1\n}\n\n/**\n * Object.entries() polyfill\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n */\nexport function _entries<T = any>(obj: Record<string, T>): [string, T][] {\n const ownProps = Object.keys(obj)\n let i = ownProps.length\n const resArray = new Array(i) // preallocate the Array\n\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]]\n }\n return resArray\n}\n\nexport const _isValidRegex = function (str: string): boolean {\n try {\n new RegExp(str)\n } catch (error) {\n return false\n }\n return true\n}\n\nexport const _encodeDates = function (obj: Properties): Properties {\n _each(obj, function (v, k) {\n if (_isDate(v)) {\n obj[k] = _formatDate(v)\n } else if (_isObject(v)) {\n obj[k] = _encodeDates(v) // recurse\n }\n })\n return obj\n}\n\nexport const _timestamp = function (): number {\n Date.now =\n Date.now ||\n function () {\n return +new Date()\n }\n return Date.now()\n}\n\nexport const _formatDate = function (d: Date): string {\n // YYYY-MM-DDTHH:MM:SS in UTC\n function pad(n: number) {\n return n < 10 ? '0' + n : n\n }\n return (\n d.getUTCFullYear() +\n '-' +\n pad(d.getUTCMonth() + 1) +\n '-' +\n pad(d.getUTCDate()) +\n 'T' +\n pad(d.getUTCHours()) +\n ':' +\n pad(d.getUTCMinutes()) +\n ':' +\n pad(d.getUTCSeconds())\n )\n}\n\nexport const _try = function <T>(fn: () => T): T | undefined {\n try {\n return fn()\n } catch (e) {\n return undefined\n }\n}\n\nexport const _safewrap = function <F extends (...args: any[]) => any = (...args: any[]) => any>(f: F): F {\n return function (...args) {\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return f.apply(this, args)\n } catch (e) {\n logger.critical('Implementation error. Please turn on debug and contact support@posthog.com.')\n logger.critical(e)\n }\n } as F\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const _safewrap_class = function (klass: Function, functions: string[]): void {\n for (let i = 0; i < functions.length; i++) {\n klass.prototype[functions[i]] = _safewrap(klass.prototype[functions[i]])\n }\n}\n\nexport const _safewrap_instance_methods = function (obj: Record<string, any>): void {\n for (const func in obj) {\n if (_isFunction(obj[func])) {\n obj[func] = _safewrap(obj[func])\n }\n }\n}\n\nexport const _strip_empty_properties = function (p: Properties): Properties {\n const ret: Properties = {}\n _each(p, function (v, k) {\n if (_isString(v) && v.length > 0) {\n ret[k] = v\n }\n })\n return ret\n}\n\n/**\n * Deep copies an object.\n * It handles cycles by replacing all references to them with `undefined`\n * Also supports customizing native values\n *\n * @param value\n * @param customizer\n * @returns {{}|undefined|*}\n */\nfunction deepCircularCopy<T extends Record<string, any> = Record<string, any>>(\n value: T,\n customizer?: <K extends keyof T = keyof T>(value: T[K], key?: K) => T[K]\n): T | undefined {\n const COPY_IN_PROGRESS_SET = new Set()\n\n function internalDeepCircularCopy(value: T, key?: string): T | undefined {\n if (value !== Object(value)) return customizer ? customizer(value as any, key) : value // primitive value\n\n if (COPY_IN_PROGRESS_SET.has(value)) return undefined\n COPY_IN_PROGRESS_SET.add(value)\n let result: T\n\n if (_isArray(value)) {\n result = [] as any as T\n _eachArray(value, (it) => {\n result.push(internalDeepCircularCopy(it))\n })\n } else {\n result = {} as T\n _each(value, (val, key) => {\n if (!COPY_IN_PROGRESS_SET.has(val)) {\n ;(result as any)[key] = internalDeepCircularCopy(val, key)\n }\n })\n }\n return result\n }\n return internalDeepCircularCopy(value)\n}\n\nconst LONG_STRINGS_ALLOW_LIST = ['$performance_raw']\n\nexport function _copyAndTruncateStrings<T extends Record<string, any> = Record<string, any>>(\n object: T,\n maxStringLength: number | null\n): T {\n return deepCircularCopy(object, (value: any, key) => {\n if (key && LONG_STRINGS_ALLOW_LIST.indexOf(key as string) > -1) {\n return value\n }\n if (_isString(value) && !_isNull(maxStringLength)) {\n return (value as string).slice(0, maxStringLength)\n }\n return value\n }) as T\n}\n\nexport function _base64Encode(data: null): null\nexport function _base64Encode(data: undefined): undefined\nexport function _base64Encode(data: string): string\nexport function _base64Encode(data: string | null | undefined): string | null | undefined {\n const b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n let o1,\n o2,\n o3,\n h1,\n h2,\n h3,\n h4,\n bits,\n i = 0,\n ac = 0,\n enc = ''\n const tmp_arr: string[] = []\n\n if (!data) {\n return data\n }\n\n data = _utf8Encode(data)\n\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++)\n o2 = data.charCodeAt(i++)\n o3 = data.charCodeAt(i++)\n\n bits = (o1 << 16) | (o2 << 8) | o3\n\n h1 = (bits >> 18) & 0x3f\n h2 = (bits >> 12) & 0x3f\n h3 = (bits >> 6) & 0x3f\n h4 = bits & 0x3f\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4)\n } while (i < data.length)\n\n enc = tmp_arr.join('')\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '=='\n break\n case 2:\n enc = enc.slice(0, -1) + '='\n break\n }\n\n return enc\n}\n\nexport const _utf8Encode = function (string: string): string {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n')\n\n let utftext = '',\n start,\n end\n let stringl = 0,\n n\n\n start = end = 0\n stringl = string.length\n\n for (n = 0; n < stringl; n++) {\n const c1 = string.charCodeAt(n)\n let enc = null\n\n if (c1 < 128) {\n end++\n } else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128)\n } else {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128)\n }\n if (!_isNull(enc)) {\n if (end > start) {\n utftext += string.substring(start, end)\n }\n utftext += enc\n start = end = n + 1\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length)\n }\n\n return utftext\n}\n\nexport const DEFAULT_BLOCKED_UA_STRS = [\n 'ahrefsbot',\n 'applebot',\n 'baiduspider',\n 'bingbot',\n 'bingpreview',\n 'bot.htm',\n 'bot.php',\n 'crawler',\n 'duckduckbot',\n 'facebookexternal',\n 'facebookcatalog',\n 'gptbot',\n 'hubspot',\n 'linkedinbot',\n 'mj12bot',\n 'petalbot',\n 'pinterest',\n 'prerender',\n 'rogerbot',\n 'screaming frog',\n 'semrushbot',\n 'sitebulb',\n 'twitterbot',\n 'yahoo! slurp',\n 'yandexbot',\n\n // a whole bunch of goog-specific crawlers\n // https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers\n 'adsbot-google',\n 'apis-google',\n 'duplexweb-google',\n 'feedfetcher-google',\n 'google favicon',\n 'google web preview',\n 'google-read-aloud',\n 'googlebot',\n 'googleweblight',\n 'mediapartners-google',\n 'storebot-google',\n]\n\n// _.isBlockedUA()\n// This is to block various web spiders from executing our JS and\n// sending false capturing data\nexport const _isBlockedUA = function (ua: string, customBlockedUserAgents: string[]): boolean {\n if (!ua) {\n return false\n }\n const uaLower = ua.toLowerCase()\n return DEFAULT_BLOCKED_UA_STRS.concat(customBlockedUserAgents || []).some((blockedUA) => {\n const blockedUaLower = blockedUA.toLowerCase()\n if (uaLower.includes) {\n return uaLower.includes(blockedUaLower)\n } else {\n // IE 11 :/\n return uaLower.indexOf(blockedUaLower) !== -1\n }\n })\n}\n\nexport const _register_event = (function () {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from PostHog\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n const register_event = function (\n element: Element | Window | Document | Node,\n type: string,\n handler: EventHandler,\n oldSchool?: boolean,\n useCapture?: boolean\n ) {\n if (!element) {\n logger.error('No valid element provided to register_event')\n return\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture)\n } else {\n const ontype = 'on' + type\n const old_handler = (element as any)[ontype] // can be undefined\n ;(element as any)[ontype] = makeHandler(element, handler, old_handler)\n }\n }\n\n function makeHandler(\n element: Element | Window | Document | Node,\n new_handler: EventHandler,\n old_handlers: EventHandler\n ) {\n return function (event: Event): boolean | void {\n event = event || fixEvent(window.event)\n\n // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n if (!event) {\n return undefined\n }\n\n let ret = true\n let old_result: any\n\n if (_isFunction(old_handlers)) {\n old_result = old_handlers(event)\n }\n const new_result = new_handler.call(element, event)\n\n if (false === old_result || false === new_result) {\n ret = false\n }\n\n return ret\n }\n }\n\n function fixEvent(event: Event | undefined): Event | undefined {\n if (event) {\n event.preventDefault = fixEvent.preventDefault\n event.stopPropagation = fixEvent.stopPropagation\n }\n return event\n }\n fixEvent.preventDefault = function () {\n ;(this as any as Event).returnValue = false\n }\n fixEvent.stopPropagation = function () {\n ;(this as any as Event).cancelBubble = true\n }\n\n return register_event\n})()\n\nexport function loadScript(scriptUrlToLoad: string, callback: (error?: string | Event, event?: Event) => void): void {\n const addScript = () => {\n const scriptTag = document.createElement('script')\n scriptTag.type = 'text/javascript'\n scriptTag.src = scriptUrlToLoad\n scriptTag.onload = (event) => callback(undefined, event)\n scriptTag.onerror = (error) => callback(error)\n\n const scripts = document.querySelectorAll('body > script')\n if (scripts.length > 0) {\n scripts[0].parentNode?.insertBefore(scriptTag, scripts[0])\n } else {\n // In exceptional situations this call might load before the DOM is fully ready.\n document.body.appendChild(scriptTag)\n }\n }\n\n if (document.body) {\n addScript()\n } else {\n document.addEventListener('DOMContentLoaded', addScript)\n }\n}\n\nexport function isCrossDomainCookie(documentLocation: Location | undefined) {\n const hostname = documentLocation?.hostname\n\n if (!_isString(hostname)) {\n return false\n }\n // split and slice isn't a great way to match arbitrary domains,\n // but it's good enough for ensuring we only match herokuapp.com when it is the TLD\n // for the hostname\n return hostname.split('.').slice(-2).join('.') !== 'herokuapp.com'\n}\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"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","sourcesContent":["import { Breaker, EventHandler, Properties } from '../types'\nimport {\n _isArray,\n _isDate,\n _isFunction,\n _isNull,\n _isObject,\n _isString,\n _isUndefined,\n hasOwnProperty,\n} from './type-utils'\nimport { logger } from './logger'\nimport { window, document, nativeForEach, nativeIndexOf } from './globals'\n\nconst breaker: Breaker = {}\n\n// UNDERSCORE\n// Embed part of the Underscore Library\nexport const _trim = function (str: string): string {\n return str.replace(/^[\\s\\uFEFF\\xA0]+|[\\s\\uFEFF\\xA0]+$/g, '')\n}\n\nexport const _bind_instance_methods = function (obj: Record<string, any>): void {\n for (const func in obj) {\n if (_isFunction(obj[func])) {\n obj[func] = obj[func].bind(obj)\n }\n }\n}\n\nexport function _eachArray<E = any>(\n obj: E[] | null | undefined,\n iterator: (value: E, key: number) => void | Breaker,\n thisArg?: any\n): void {\n if (_isArray(obj)) {\n if (nativeForEach && obj.forEach === nativeForEach) {\n obj.forEach(iterator, thisArg)\n } else if ('length' in obj && obj.length === +obj.length) {\n for (let i = 0, l = obj.length; i < l; i++) {\n if (i in obj && iterator.call(thisArg, obj[i], i) === breaker) {\n return\n }\n }\n }\n }\n}\n\n/**\n * @param {*=} obj\n * @param {function(...*)=} iterator\n * @param {Object=} thisArg\n */\nexport function _each(obj: any, iterator: (value: any, key: any) => void | Breaker, thisArg?: any): void {\n if (_isNull(obj) || _isUndefined(obj)) {\n return\n }\n if (_isArray(obj)) {\n return _eachArray(obj, iterator, thisArg)\n }\n for (const key in obj) {\n if (hasOwnProperty.call(obj, key)) {\n if (iterator.call(thisArg, obj[key], key) === breaker) {\n return\n }\n }\n }\n}\n\nexport const _extend = function (obj: Record<string, any>, ...args: Record<string, any>[]): Record<string, any> {\n _eachArray(args, function (source) {\n for (const prop in source) {\n if (source[prop] !== void 0) {\n obj[prop] = source[prop]\n }\n }\n })\n return obj\n}\n\nexport const _include = function (\n obj: null | string | Array<any> | Record<string, any>,\n target: any\n): boolean | Breaker {\n let found = false\n if (_isNull(obj)) {\n return found\n }\n if (nativeIndexOf && obj.indexOf === nativeIndexOf) {\n return obj.indexOf(target) != -1\n }\n _each(obj, function (value) {\n if (found || (found = value === target)) {\n return breaker\n }\n return\n })\n return found\n}\n\nexport function _includes<T = any>(str: T[] | string, needle: T): boolean {\n return (str as any).indexOf(needle) !== -1\n}\n\n/**\n * Object.entries() polyfill\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/entries\n */\nexport function _entries<T = any>(obj: Record<string, T>): [string, T][] {\n const ownProps = Object.keys(obj)\n let i = ownProps.length\n const resArray = new Array(i) // preallocate the Array\n\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]]\n }\n return resArray\n}\n\nexport const _isValidRegex = function (str: string): boolean {\n try {\n new RegExp(str)\n } catch (error) {\n return false\n }\n return true\n}\n\nexport const _encodeDates = function (obj: Properties): Properties {\n _each(obj, function (v, k) {\n if (_isDate(v)) {\n obj[k] = _formatDate(v)\n } else if (_isObject(v)) {\n obj[k] = _encodeDates(v) // recurse\n }\n })\n return obj\n}\n\nexport const _timestamp = function (): number {\n Date.now =\n Date.now ||\n function () {\n return +new Date()\n }\n return Date.now()\n}\n\nexport const _formatDate = function (d: Date): string {\n // YYYY-MM-DDTHH:MM:SS in UTC\n function pad(n: number) {\n return n < 10 ? '0' + n : n\n }\n return (\n d.getUTCFullYear() +\n '-' +\n pad(d.getUTCMonth() + 1) +\n '-' +\n pad(d.getUTCDate()) +\n 'T' +\n pad(d.getUTCHours()) +\n ':' +\n pad(d.getUTCMinutes()) +\n ':' +\n pad(d.getUTCSeconds())\n )\n}\n\nexport const _try = function <T>(fn: () => T): T | undefined {\n try {\n return fn()\n } catch (e) {\n return undefined\n }\n}\n\nexport const _safewrap = function <F extends (...args: any[]) => any = (...args: any[]) => any>(f: F): F {\n return function (...args) {\n try {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return f.apply(this, args)\n } catch (e) {\n logger.critical('Implementation error. Please turn on debug and contact support@posthog.com.')\n logger.critical(e)\n }\n } as F\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const _safewrap_class = function (klass: Function, functions: string[]): void {\n for (let i = 0; i < functions.length; i++) {\n klass.prototype[functions[i]] = _safewrap(klass.prototype[functions[i]])\n }\n}\n\nexport const _safewrap_instance_methods = function (obj: Record<string, any>): void {\n for (const func in obj) {\n if (_isFunction(obj[func])) {\n obj[func] = _safewrap(obj[func])\n }\n }\n}\n\nexport const _strip_empty_properties = function (p: Properties): Properties {\n const ret: Properties = {}\n _each(p, function (v, k) {\n if (_isString(v) && v.length > 0) {\n ret[k] = v\n }\n })\n return ret\n}\n\n/**\n * Deep copies an object.\n * It handles cycles by replacing all references to them with `undefined`\n * Also supports customizing native values\n *\n * @param value\n * @param customizer\n * @returns {{}|undefined|*}\n */\nfunction deepCircularCopy<T extends Record<string, any> = Record<string, any>>(\n value: T,\n customizer?: <K extends keyof T = keyof T>(value: T[K], key?: K) => T[K]\n): T | undefined {\n const COPY_IN_PROGRESS_SET = new Set()\n\n function internalDeepCircularCopy(value: T, key?: string): T | undefined {\n if (value !== Object(value)) return customizer ? customizer(value as any, key) : value // primitive value\n\n if (COPY_IN_PROGRESS_SET.has(value)) return undefined\n COPY_IN_PROGRESS_SET.add(value)\n let result: T\n\n if (_isArray(value)) {\n result = [] as any as T\n _eachArray(value, (it) => {\n result.push(internalDeepCircularCopy(it))\n })\n } else {\n result = {} as T\n _each(value, (val, key) => {\n if (!COPY_IN_PROGRESS_SET.has(val)) {\n ;(result as any)[key] = internalDeepCircularCopy(val, key)\n }\n })\n }\n return result\n }\n return internalDeepCircularCopy(value)\n}\n\nconst LONG_STRINGS_ALLOW_LIST = ['$performance_raw']\n\nexport function _copyAndTruncateStrings<T extends Record<string, any> = Record<string, any>>(\n object: T,\n maxStringLength: number | null\n): T {\n return deepCircularCopy(object, (value: any, key) => {\n if (key && LONG_STRINGS_ALLOW_LIST.indexOf(key as string) > -1) {\n return value\n }\n if (_isString(value) && !_isNull(maxStringLength)) {\n return (value as string).slice(0, maxStringLength)\n }\n return value\n }) as T\n}\n\nexport function _base64Encode(data: null): null\nexport function _base64Encode(data: undefined): undefined\nexport function _base64Encode(data: string): string\nexport function _base64Encode(data: string | null | undefined): string | null | undefined {\n const b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='\n let o1,\n o2,\n o3,\n h1,\n h2,\n h3,\n h4,\n bits,\n i = 0,\n ac = 0,\n enc = ''\n const tmp_arr: string[] = []\n\n if (!data) {\n return data\n }\n\n data = _utf8Encode(data)\n\n do {\n // pack three octets into four hexets\n o1 = data.charCodeAt(i++)\n o2 = data.charCodeAt(i++)\n o3 = data.charCodeAt(i++)\n\n bits = (o1 << 16) | (o2 << 8) | o3\n\n h1 = (bits >> 18) & 0x3f\n h2 = (bits >> 12) & 0x3f\n h3 = (bits >> 6) & 0x3f\n h4 = bits & 0x3f\n\n // use hexets to index into b64, and append result to encoded string\n tmp_arr[ac++] = b64.charAt(h1) + b64.charAt(h2) + b64.charAt(h3) + b64.charAt(h4)\n } while (i < data.length)\n\n enc = tmp_arr.join('')\n\n switch (data.length % 3) {\n case 1:\n enc = enc.slice(0, -2) + '=='\n break\n case 2:\n enc = enc.slice(0, -1) + '='\n break\n }\n\n return enc\n}\n\nexport const _utf8Encode = function (string: string): string {\n string = (string + '').replace(/\\r\\n/g, '\\n').replace(/\\r/g, '\\n')\n\n let utftext = '',\n start,\n end\n let stringl = 0,\n n\n\n start = end = 0\n stringl = string.length\n\n for (n = 0; n < stringl; n++) {\n const c1 = string.charCodeAt(n)\n let enc = null\n\n if (c1 < 128) {\n end++\n } else if (c1 > 127 && c1 < 2048) {\n enc = String.fromCharCode((c1 >> 6) | 192, (c1 & 63) | 128)\n } else {\n enc = String.fromCharCode((c1 >> 12) | 224, ((c1 >> 6) & 63) | 128, (c1 & 63) | 128)\n }\n if (!_isNull(enc)) {\n if (end > start) {\n utftext += string.substring(start, end)\n }\n utftext += enc\n start = end = n + 1\n }\n }\n\n if (end > start) {\n utftext += string.substring(start, string.length)\n }\n\n return utftext\n}\n\nexport const DEFAULT_BLOCKED_UA_STRS = [\n 'ahrefsbot',\n 'applebot',\n 'baiduspider',\n 'bingbot',\n 'bingpreview',\n 'bot.htm',\n 'bot.php',\n 'crawler',\n 'duckduckbot',\n 'facebookexternal',\n 'facebookcatalog',\n 'gptbot',\n 'hubspot',\n 'linkedinbot',\n 'mj12bot',\n 'petalbot',\n 'pinterest',\n 'prerender',\n 'rogerbot',\n 'screaming frog',\n 'semrushbot',\n 'sitebulb',\n 'twitterbot',\n 'yahoo! slurp',\n 'yandexbot',\n\n // a whole bunch of goog-specific crawlers\n // https://developers.google.com/search/docs/advanced/crawling/overview-google-crawlers\n 'adsbot-google',\n 'apis-google',\n 'duplexweb-google',\n 'feedfetcher-google',\n 'google favicon',\n 'google web preview',\n 'google-read-aloud',\n 'googlebot',\n 'googleweblight',\n 'mediapartners-google',\n 'storebot-google',\n]\n\n// _.isBlockedUA()\n// This is to block various web spiders from executing our JS and\n// sending false capturing data\nexport const _isBlockedUA = function (ua: string, customBlockedUserAgents: string[]): boolean {\n if (!ua) {\n return false\n }\n const uaLower = ua.toLowerCase()\n return DEFAULT_BLOCKED_UA_STRS.concat(customBlockedUserAgents || []).some((blockedUA) => {\n const blockedUaLower = blockedUA.toLowerCase()\n if (uaLower.includes) {\n return uaLower.includes(blockedUaLower)\n } else {\n // IE 11 :/\n return uaLower.indexOf(blockedUaLower) !== -1\n }\n })\n}\n\nexport const _register_event = (function () {\n // written by Dean Edwards, 2005\n // with input from Tino Zijdel - crisp@xs4all.nl\n // with input from Carl Sverre - mail@carlsverre.com\n // with input from PostHog\n // http://dean.edwards.name/weblog/2005/10/add-event/\n // https://gist.github.com/1930440\n\n /**\n * @param {Object} element\n * @param {string} type\n * @param {function(...*)} handler\n * @param {boolean=} oldSchool\n * @param {boolean=} useCapture\n */\n const register_event = function (\n element: Element | Window | Document | Node,\n type: string,\n handler: EventHandler,\n oldSchool?: boolean,\n useCapture?: boolean\n ) {\n if (!element) {\n logger.error('No valid element provided to register_event')\n return\n }\n\n if (element.addEventListener && !oldSchool) {\n element.addEventListener(type, handler, !!useCapture)\n } else {\n const ontype = 'on' + type\n const old_handler = (element as any)[ontype] // can be undefined\n ;(element as any)[ontype] = makeHandler(element, handler, old_handler)\n }\n }\n\n function makeHandler(\n element: Element | Window | Document | Node,\n new_handler: EventHandler,\n old_handlers: EventHandler\n ) {\n return function (event: Event): boolean | void {\n event = event || fixEvent(window?.event)\n\n // this basically happens in firefox whenever another script\n // overwrites the onload callback and doesn't pass the event\n // object to previously defined callbacks. All the browsers\n // that don't define window.event implement addEventListener\n // so the dom_loaded handler will still be fired as usual.\n if (!event) {\n return undefined\n }\n\n let ret = true\n let old_result: any\n\n if (_isFunction(old_handlers)) {\n old_result = old_handlers(event)\n }\n const new_result = new_handler.call(element, event)\n\n if (false === old_result || false === new_result) {\n ret = false\n }\n\n return ret\n }\n }\n\n function fixEvent(event: Event | undefined): Event | undefined {\n if (event) {\n event.preventDefault = fixEvent.preventDefault\n event.stopPropagation = fixEvent.stopPropagation\n }\n return event\n }\n fixEvent.preventDefault = function () {\n ;(this as any as Event).returnValue = false\n }\n fixEvent.stopPropagation = function () {\n ;(this as any as Event).cancelBubble = true\n }\n\n return register_event\n})()\n\nexport function loadScript(scriptUrlToLoad: string, callback: (error?: string | Event, event?: Event) => void): void {\n const addScript = () => {\n if (!document) {\n return callback('document not found')\n }\n const scriptTag = document.createElement('script')\n scriptTag.type = 'text/javascript'\n scriptTag.src = scriptUrlToLoad\n scriptTag.onload = (event) => callback(undefined, event)\n scriptTag.onerror = (error) => callback(error)\n\n const scripts = document.querySelectorAll('body > script')\n if (scripts.length > 0) {\n scripts[0].parentNode?.insertBefore(scriptTag, scripts[0])\n } else {\n // In exceptional situations this call might load before the DOM is fully ready.\n document.body.appendChild(scriptTag)\n }\n }\n\n if (document?.body) {\n addScript()\n } else {\n document?.addEventListener('DOMContentLoaded', addScript)\n }\n}\n\nexport function isCrossDomainCookie(documentLocation: Location | undefined) {\n const hostname = documentLocation?.hostname\n\n if (!_isString(hostname)) {\n return false\n }\n // split and slice isn't a great way to match arbitrary domains,\n // but it's good enough for ensuring we only match herokuapp.com when it is the TLD\n // for the hostname\n return hostname.split('.').slice(-2).join('.') !== 'herokuapp.com'\n}\n"]}
|
package/lib/src/utils/logger.js
CHANGED
|
@@ -25,7 +25,7 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
|
25
25
|
};
|
|
26
26
|
import Config from '../config';
|
|
27
27
|
import { _isUndefined } from './type-utils';
|
|
28
|
-
import { window } from './globals';
|
|
28
|
+
import { assignableWindow, window } from './globals';
|
|
29
29
|
var LOGGER_PREFIX = '[PostHog.js]';
|
|
30
30
|
export var logger = {
|
|
31
31
|
_log: function (level) {
|
|
@@ -33,7 +33,10 @@ export var logger = {
|
|
|
33
33
|
for (var _i = 1; _i < arguments.length; _i++) {
|
|
34
34
|
args[_i - 1] = arguments[_i];
|
|
35
35
|
}
|
|
36
|
-
if (
|
|
36
|
+
if (window &&
|
|
37
|
+
(Config.DEBUG || assignableWindow.POSTHOG_DEBUG) &&
|
|
38
|
+
!_isUndefined(window.console) &&
|
|
39
|
+
window.console) {
|
|
37
40
|
var consoleLog = '__rrweb_original__' in window.console[level]
|
|
38
41
|
? window.console[level]['__rrweb_original__']
|
|
39
42
|
: window.console[level];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,MAAM,MAAM,WAAW,CAAA;AAC9B,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3C,OAAO,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAEpD,IAAM,aAAa,GAAG,cAAc,CAAA;AACpC,MAAM,CAAC,IAAM,MAAM,GAAG;IAClB,IAAI,EAAE,UAAC,KAA+B;QAAE,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,6BAAc;;QAClD,IACI,MAAM;YACN,CAAC,MAAM,CAAC,KAAK,IAAI,gBAAgB,CAAC,aAAa,CAAC;YAChD,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC;YAC7B,MAAM,CAAC,OAAO,EAChB;YACE,IAAM,UAAU,GACZ,oBAAoB,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;gBACzC,CAAC,CAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAS,CAAC,oBAAoB,CAAC;gBACtD,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YAE/B,sCAAsC;YACtC,UAAU,8BAAC,aAAa,UAAK,IAAI,WAAC;SACrC;IACL,CAAC;IAED,IAAI,EAAE;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACjB,MAAM,CAAC,IAAI,OAAX,MAAM,iBAAM,KAAK,UAAK,IAAI,WAAC;IAC/B,CAAC;IAED,IAAI,EAAE;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACjB,MAAM,CAAC,IAAI,OAAX,MAAM,iBAAM,MAAM,UAAK,IAAI,WAAC;IAChC,CAAC;IAED,KAAK,EAAE;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAClB,MAAM,CAAC,IAAI,OAAX,MAAM,iBAAM,OAAO,UAAK,IAAI,WAAC;IACjC,CAAC;IAED,QAAQ,EAAE;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QACrB,mDAAmD;QACnD,sCAAsC;QACtC,OAAO,CAAC,KAAK,OAAb,OAAO,iBAAO,aAAa,UAAK,IAAI,WAAC;IACzC,CAAC;IAED,oBAAoB,EAAE,UAAC,UAAkB;QACrC,MAAM,CAAC,KAAK,CAAC,qDAA8C,UAAU,CAAE,CAAC,CAAA;IAC5E,CAAC;CACJ,CAAA","sourcesContent":["import Config from '../config'\nimport { _isUndefined } from './type-utils'\nimport { assignableWindow, window } from './globals'\n\nconst LOGGER_PREFIX = '[PostHog.js]'\nexport const logger = {\n _log: (level: 'log' | 'warn' | 'error', ...args: any[]) => {\n if (\n window &&\n (Config.DEBUG || assignableWindow.POSTHOG_DEBUG) &&\n !_isUndefined(window.console) &&\n window.console\n ) {\n const consoleLog =\n '__rrweb_original__' in window.console[level]\n ? (window.console[level] as any)['__rrweb_original__']\n : window.console[level]\n\n // eslint-disable-next-line no-console\n consoleLog(LOGGER_PREFIX, ...args)\n }\n },\n\n info: (...args: any[]) => {\n logger._log('log', ...args)\n },\n\n warn: (...args: any[]) => {\n logger._log('warn', ...args)\n },\n\n error: (...args: any[]) => {\n logger._log('error', ...args)\n },\n\n critical: (...args: any[]) => {\n // Critical errors are always logged to the console\n // eslint-disable-next-line no-console\n console.error(LOGGER_PREFIX, ...args)\n },\n\n uninitializedWarning: (methodName: string) => {\n logger.error(`You must initialize PostHog before calling ${methodName}`)\n },\n}\n"]}
|
package/lib/src/uuidv7.js
CHANGED
|
@@ -196,7 +196,7 @@ var getRandomValues = function (buffer) {
|
|
|
196
196
|
return buffer;
|
|
197
197
|
};
|
|
198
198
|
// detect Web Crypto API
|
|
199
|
-
if (!_isUndefined(window.crypto) && crypto.getRandomValues) {
|
|
199
|
+
if (window && !_isUndefined(window.crypto) && crypto.getRandomValues) {
|
|
200
200
|
getRandomValues = function (buffer) { return crypto.getRandomValues(buffer); };
|
|
201
201
|
}
|
|
202
202
|
/**
|
package/lib/src/uuidv7.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"uuidv7.js","sourceRoot":"","sources":["../../src/uuidv7.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * uuidv7: An experimental implementation of the proposed UUID Version 7\n *\n * @license Apache-2.0\n * @copyright 2021-2023 LiosK\n * @packageDocumentation\n *\n * from https://github.com/LiosK/uuidv7/blob/e501462ea3d23241de13192ceae726956f9b3b7d/src/index.ts\n */\n\n// polyfill for IE11\nimport { window } from './utils/globals'\n\nimport { _isNumber, _isUndefined } from './utils/type-utils'\n\nif (!Math.trunc) {\n Math.trunc = function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v)\n }\n}\n\n// polyfill for IE11\nif (!Number.isInteger) {\n Number.isInteger = function (value) {\n return _isNumber(value) && isFinite(value) && Math.floor(value) === value\n }\n}\n\nconst DIGITS = '0123456789abcdef'\n\n/** Represents a UUID as a 16-byte byte array. */\nexport class UUID {\n /** @param bytes - The 16-byte byte array representation. */\n constructor(readonly bytes: Readonly<Uint8Array>) {\n if (bytes.length !== 16) {\n throw new TypeError('not 128-bit length')\n }\n }\n\n /**\n * Builds a byte array from UUIDv7 field values.\n *\n * @param unixTsMs - A 48-bit `unix_ts_ms` field value.\n * @param randA - A 12-bit `rand_a` field value.\n * @param randBHi - The higher 30 bits of 62-bit `rand_b` field value.\n * @param randBLo - The lower 32 bits of 62-bit `rand_b` field value.\n */\n static fromFieldsV7(unixTsMs: number, randA: number, randBHi: number, randBLo: number): UUID {\n if (\n !Number.isInteger(unixTsMs) ||\n !Number.isInteger(randA) ||\n !Number.isInteger(randBHi) ||\n !Number.isInteger(randBLo) ||\n unixTsMs < 0 ||\n randA < 0 ||\n randBHi < 0 ||\n randBLo < 0 ||\n unixTsMs > 0xffff_ffff_ffff ||\n randA > 0xfff ||\n randBHi > 0x3fff_ffff ||\n randBLo > 0xffff_ffff\n ) {\n throw new RangeError('invalid field value')\n }\n\n const bytes = new Uint8Array(16)\n bytes[0] = unixTsMs / 2 ** 40\n bytes[1] = unixTsMs / 2 ** 32\n bytes[2] = unixTsMs / 2 ** 24\n bytes[3] = unixTsMs / 2 ** 16\n bytes[4] = unixTsMs / 2 ** 8\n bytes[5] = unixTsMs\n bytes[6] = 0x70 | (randA >>> 8)\n bytes[7] = randA\n bytes[8] = 0x80 | (randBHi >>> 24)\n bytes[9] = randBHi >>> 16\n bytes[10] = randBHi >>> 8\n bytes[11] = randBHi\n bytes[12] = randBLo >>> 24\n bytes[13] = randBLo >>> 16\n bytes[14] = randBLo >>> 8\n bytes[15] = randBLo\n return new UUID(bytes)\n }\n\n /** @returns The 8-4-4-4-12 canonical hexadecimal string representation. */\n toString(): string {\n let text = ''\n for (let i = 0; i < this.bytes.length; i++) {\n text = text + DIGITS.charAt(this.bytes[i] >>> 4) + DIGITS.charAt(this.bytes[i] & 0xf)\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n text += '-'\n }\n }\n\n if (text.length !== 36) {\n // We saw one customer whose bundling code was mangling the UUID generation\n // rather than accept a bad UUID, we throw an error here.\n throw new Error('Invalid UUIDv7 was generated')\n }\n return text\n }\n\n /** Creates an object from `this`. */\n clone(): UUID {\n return new UUID(this.bytes.slice(0))\n }\n\n /** Returns true if `this` is equivalent to `other`. */\n equals(other: UUID): boolean {\n return this.compareTo(other) === 0\n }\n\n /**\n * Returns a negative integer, zero, or positive integer if `this` is less\n * than, equal to, or greater than `other`, respectively.\n */\n compareTo(other: UUID): number {\n for (let i = 0; i < 16; i++) {\n const diff = this.bytes[i] - other.bytes[i]\n if (diff !== 0) {\n return Math.sign(diff)\n }\n }\n return 0\n }\n}\n\n/** Encapsulates the monotonic counter state. */\nclass V7Generator {\n private timestamp = 0\n private counter = 0\n private readonly random = new DefaultRandom()\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or resets the\n * generator upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method resets the generator and returns a new\n * UUID based on the current timestamp.\n */\n generate(): UUID {\n const value = this.generateOrAbort()\n if (!_isUndefined(value)) {\n return value\n } else {\n // reset state and resume\n this.timestamp = 0\n const valueAfterReset = this.generateOrAbort()\n if (_isUndefined(valueAfterReset)) {\n throw new Error('Could not generate UUID after timestamp reset')\n }\n return valueAfterReset\n }\n }\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or returns\n * `undefined` upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method aborts and returns `undefined`.\n */\n generateOrAbort(): UUID | undefined {\n const MAX_COUNTER = 0x3ff_ffff_ffff\n const ROLLBACK_ALLOWANCE = 10_000 // 10 seconds\n\n const ts = Date.now()\n if (ts > this.timestamp) {\n this.timestamp = ts\n this.resetCounter()\n } else if (ts + ROLLBACK_ALLOWANCE > this.timestamp) {\n // go on with previous timestamp if new one is not much smaller\n this.counter++\n if (this.counter > MAX_COUNTER) {\n // increment timestamp at counter overflow\n this.timestamp++\n this.resetCounter()\n }\n } else {\n // abort if clock went backwards to unbearable extent\n return undefined\n }\n\n return UUID.fromFieldsV7(\n this.timestamp,\n Math.trunc(this.counter / 2 ** 30),\n this.counter & (2 ** 30 - 1),\n this.random.nextUint32()\n )\n }\n\n /** Initializes the counter at a 42-bit random integer. */\n private resetCounter(): void {\n this.counter = this.random.nextUint32() * 0x400 + (this.random.nextUint32() & 0x3ff)\n }\n}\n\n/** A global flag to force use of cryptographically strong RNG. */\ndeclare const UUIDV7_DENY_WEAK_RNG: boolean\n\n/** Stores `crypto.getRandomValues()` available in the environment. */\nlet getRandomValues: <T extends Uint8Array | Uint32Array>(buffer: T) => T = (buffer) => {\n // fall back on Math.random() unless the flag is set to true\n // TRICKY: don't use the _isUndefined method here as can't pass the reference\n if (typeof UUIDV7_DENY_WEAK_RNG !== 'undefined' && UUIDV7_DENY_WEAK_RNG) {\n throw new Error('no cryptographically strong RNG available')\n }\n\n for (let i = 0; i < buffer.length; i++) {\n buffer[i] = Math.trunc(Math.random() * 0x1_0000) * 0x1_0000 + Math.trunc(Math.random() * 0x1_0000)\n }\n return buffer\n}\n\n// detect Web Crypto API\nif (!_isUndefined(window.crypto) && crypto.getRandomValues) {\n getRandomValues = (buffer) => crypto.getRandomValues(buffer)\n}\n\n/**\n * Wraps `crypto.getRandomValues()` and compatibles to enable buffering; this\n * uses a small buffer by default to avoid unbearable throughput decline in some\n * environments as well as the waste of time and space for unused values.\n */\nclass DefaultRandom {\n private readonly buffer = new Uint32Array(8)\n private cursor = Infinity\n nextUint32(): number {\n if (this.cursor >= this.buffer.length) {\n getRandomValues(this.buffer)\n this.cursor = 0\n }\n return this.buffer[this.cursor++]\n }\n}\n\nlet defaultGenerator: V7Generator | undefined\n\n/**\n * Generates a UUIDv7 string.\n *\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\").\n */\nexport const uuidv7 = (): string => uuidv7obj().toString()\n\n/** Generates a UUIDv7 object. */\nconst uuidv7obj = (): UUID => (defaultGenerator || (defaultGenerator = new V7Generator())).generate()\n"]}
|
|
1
|
+
{"version":3,"file":"uuidv7.js","sourceRoot":"","sources":["../../src/uuidv7.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * uuidv7: An experimental implementation of the proposed UUID Version 7\n *\n * @license Apache-2.0\n * @copyright 2021-2023 LiosK\n * @packageDocumentation\n *\n * from https://github.com/LiosK/uuidv7/blob/e501462ea3d23241de13192ceae726956f9b3b7d/src/index.ts\n */\n\n// polyfill for IE11\nimport { window } from './utils/globals'\n\nimport { _isNumber, _isUndefined } from './utils/type-utils'\n\nif (!Math.trunc) {\n Math.trunc = function (v) {\n return v < 0 ? Math.ceil(v) : Math.floor(v)\n }\n}\n\n// polyfill for IE11\nif (!Number.isInteger) {\n Number.isInteger = function (value) {\n return _isNumber(value) && isFinite(value) && Math.floor(value) === value\n }\n}\n\nconst DIGITS = '0123456789abcdef'\n\n/** Represents a UUID as a 16-byte byte array. */\nexport class UUID {\n /** @param bytes - The 16-byte byte array representation. */\n constructor(readonly bytes: Readonly<Uint8Array>) {\n if (bytes.length !== 16) {\n throw new TypeError('not 128-bit length')\n }\n }\n\n /**\n * Builds a byte array from UUIDv7 field values.\n *\n * @param unixTsMs - A 48-bit `unix_ts_ms` field value.\n * @param randA - A 12-bit `rand_a` field value.\n * @param randBHi - The higher 30 bits of 62-bit `rand_b` field value.\n * @param randBLo - The lower 32 bits of 62-bit `rand_b` field value.\n */\n static fromFieldsV7(unixTsMs: number, randA: number, randBHi: number, randBLo: number): UUID {\n if (\n !Number.isInteger(unixTsMs) ||\n !Number.isInteger(randA) ||\n !Number.isInteger(randBHi) ||\n !Number.isInteger(randBLo) ||\n unixTsMs < 0 ||\n randA < 0 ||\n randBHi < 0 ||\n randBLo < 0 ||\n unixTsMs > 0xffff_ffff_ffff ||\n randA > 0xfff ||\n randBHi > 0x3fff_ffff ||\n randBLo > 0xffff_ffff\n ) {\n throw new RangeError('invalid field value')\n }\n\n const bytes = new Uint8Array(16)\n bytes[0] = unixTsMs / 2 ** 40\n bytes[1] = unixTsMs / 2 ** 32\n bytes[2] = unixTsMs / 2 ** 24\n bytes[3] = unixTsMs / 2 ** 16\n bytes[4] = unixTsMs / 2 ** 8\n bytes[5] = unixTsMs\n bytes[6] = 0x70 | (randA >>> 8)\n bytes[7] = randA\n bytes[8] = 0x80 | (randBHi >>> 24)\n bytes[9] = randBHi >>> 16\n bytes[10] = randBHi >>> 8\n bytes[11] = randBHi\n bytes[12] = randBLo >>> 24\n bytes[13] = randBLo >>> 16\n bytes[14] = randBLo >>> 8\n bytes[15] = randBLo\n return new UUID(bytes)\n }\n\n /** @returns The 8-4-4-4-12 canonical hexadecimal string representation. */\n toString(): string {\n let text = ''\n for (let i = 0; i < this.bytes.length; i++) {\n text = text + DIGITS.charAt(this.bytes[i] >>> 4) + DIGITS.charAt(this.bytes[i] & 0xf)\n if (i === 3 || i === 5 || i === 7 || i === 9) {\n text += '-'\n }\n }\n\n if (text.length !== 36) {\n // We saw one customer whose bundling code was mangling the UUID generation\n // rather than accept a bad UUID, we throw an error here.\n throw new Error('Invalid UUIDv7 was generated')\n }\n return text\n }\n\n /** Creates an object from `this`. */\n clone(): UUID {\n return new UUID(this.bytes.slice(0))\n }\n\n /** Returns true if `this` is equivalent to `other`. */\n equals(other: UUID): boolean {\n return this.compareTo(other) === 0\n }\n\n /**\n * Returns a negative integer, zero, or positive integer if `this` is less\n * than, equal to, or greater than `other`, respectively.\n */\n compareTo(other: UUID): number {\n for (let i = 0; i < 16; i++) {\n const diff = this.bytes[i] - other.bytes[i]\n if (diff !== 0) {\n return Math.sign(diff)\n }\n }\n return 0\n }\n}\n\n/** Encapsulates the monotonic counter state. */\nclass V7Generator {\n private timestamp = 0\n private counter = 0\n private readonly random = new DefaultRandom()\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or resets the\n * generator upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method resets the generator and returns a new\n * UUID based on the current timestamp.\n */\n generate(): UUID {\n const value = this.generateOrAbort()\n if (!_isUndefined(value)) {\n return value\n } else {\n // reset state and resume\n this.timestamp = 0\n const valueAfterReset = this.generateOrAbort()\n if (_isUndefined(valueAfterReset)) {\n throw new Error('Could not generate UUID after timestamp reset')\n }\n return valueAfterReset\n }\n }\n\n /**\n * Generates a new UUIDv7 object from the current timestamp, or returns\n * `undefined` upon significant timestamp rollback.\n *\n * This method returns monotonically increasing UUIDs unless the up-to-date\n * timestamp is significantly (by ten seconds or more) smaller than the one\n * embedded in the immediately preceding UUID. If such a significant clock\n * rollback is detected, this method aborts and returns `undefined`.\n */\n generateOrAbort(): UUID | undefined {\n const MAX_COUNTER = 0x3ff_ffff_ffff\n const ROLLBACK_ALLOWANCE = 10_000 // 10 seconds\n\n const ts = Date.now()\n if (ts > this.timestamp) {\n this.timestamp = ts\n this.resetCounter()\n } else if (ts + ROLLBACK_ALLOWANCE > this.timestamp) {\n // go on with previous timestamp if new one is not much smaller\n this.counter++\n if (this.counter > MAX_COUNTER) {\n // increment timestamp at counter overflow\n this.timestamp++\n this.resetCounter()\n }\n } else {\n // abort if clock went backwards to unbearable extent\n return undefined\n }\n\n return UUID.fromFieldsV7(\n this.timestamp,\n Math.trunc(this.counter / 2 ** 30),\n this.counter & (2 ** 30 - 1),\n this.random.nextUint32()\n )\n }\n\n /** Initializes the counter at a 42-bit random integer. */\n private resetCounter(): void {\n this.counter = this.random.nextUint32() * 0x400 + (this.random.nextUint32() & 0x3ff)\n }\n}\n\n/** A global flag to force use of cryptographically strong RNG. */\ndeclare const UUIDV7_DENY_WEAK_RNG: boolean\n\n/** Stores `crypto.getRandomValues()` available in the environment. */\nlet getRandomValues: <T extends Uint8Array | Uint32Array>(buffer: T) => T = (buffer) => {\n // fall back on Math.random() unless the flag is set to true\n // TRICKY: don't use the _isUndefined method here as can't pass the reference\n if (typeof UUIDV7_DENY_WEAK_RNG !== 'undefined' && UUIDV7_DENY_WEAK_RNG) {\n throw new Error('no cryptographically strong RNG available')\n }\n\n for (let i = 0; i < buffer.length; i++) {\n buffer[i] = Math.trunc(Math.random() * 0x1_0000) * 0x1_0000 + Math.trunc(Math.random() * 0x1_0000)\n }\n return buffer\n}\n\n// detect Web Crypto API\nif (window && !_isUndefined(window.crypto) && crypto.getRandomValues) {\n getRandomValues = (buffer) => crypto.getRandomValues(buffer)\n}\n\n/**\n * Wraps `crypto.getRandomValues()` and compatibles to enable buffering; this\n * uses a small buffer by default to avoid unbearable throughput decline in some\n * environments as well as the waste of time and space for unused values.\n */\nclass DefaultRandom {\n private readonly buffer = new Uint32Array(8)\n private cursor = Infinity\n nextUint32(): number {\n if (this.cursor >= this.buffer.length) {\n getRandomValues(this.buffer)\n this.cursor = 0\n }\n return this.buffer[this.cursor++]\n }\n}\n\nlet defaultGenerator: V7Generator | undefined\n\n/**\n * Generates a UUIDv7 string.\n *\n * @returns The 8-4-4-4-12 canonical hexadecimal string representation\n * (\"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx\").\n */\nexport const uuidv7 = (): string => uuidv7obj().toString()\n\n/** Generates a UUIDv7 object. */\nconst uuidv7obj = (): UUID => (defaultGenerator || (defaultGenerator = new V7Generator())).generate()\n"]}
|
package/package.json
CHANGED