posthog-js 1.104.2 → 1.104.4

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.
@@ -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,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"]}
1
+ {"version":3,"file":"globals.js","sourceRoot":"","sources":["../../../src/utils/globals.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,iDAAiD;AACjD,IAAM,GAAG,GAA6C,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;AAExG,IAAM,MAAM,GAAkC,OAAO,UAAU,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAA;AAElG,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;AAE/C,IAAM,SAAS,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,SAAS,CAAA;AACnC,MAAM,CAAC,IAAM,QAAQ,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAA;AACxC,MAAM,CAAC,IAAM,QAAQ,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,QAAQ,CAAA;AACxC,MAAM,CAAC,IAAM,KAAK,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,CAAA;AAClC,MAAM,CAAC,IAAM,cAAc,GAAG,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,cAAc,CAAA;AACpD,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 * Global helpers to protect access to browser globals in a way that is safer for different targets\n * like DOM, SSR, Web workers etc.\n *\n * NOTE: Typically we want the \"window\" but globalThis works for both the typical browser context as\n * well as other contexts such as the web worker context. Window is still exported for any bits that explicitly require it.\n * If in doubt - export the global you need from this file and use that as an optional value. This way the code path is forced\n * to handle the case where the global is not available.\n */\n\n// eslint-disable-next-line no-restricted-globals\nconst win: (Window & typeof globalThis) | undefined = typeof window !== 'undefined' ? window : undefined\n\nconst global: typeof globalThis | undefined = typeof globalThis !== 'undefined' ? globalThis : win\n\nexport const ArrayProto = Array.prototype\nexport const nativeForEach = ArrayProto.forEach\nexport const nativeIndexOf = ArrayProto.indexOf\n\nconst navigator = global?.navigator\nexport const document = global?.document\nexport const location = global?.location\nexport const fetch = global?.fetch\nexport const XMLHttpRequest = global?.XMLHttpRequest\nexport const userAgent = navigator?.userAgent\nexport const assignableWindow: Window & typeof globalThis & Record<string, any> = win ?? ({} as any)\n\nexport { win as window }\n"]}
@@ -1,5 +1,4 @@
1
1
  export declare const SUPPORTS_XHR: boolean;
2
- export declare const SUPPORTS_FETCH: boolean;
3
2
  export declare const SUPPORTS_REQUEST: boolean;
4
3
  /**
5
4
  * IE11 doesn't support `new URL`
@@ -1,11 +1,11 @@
1
1
  import { _each, _isValidRegex } from './';
2
- import { _isArray, _isFunction, _isUndefined } from './type-utils';
2
+ import { _isArray, _isUndefined } from './type-utils';
3
3
  import { logger } from './logger';
4
- import { document, window } from './globals';
4
+ import { document, fetch, XMLHttpRequest } from './globals';
5
5
  var localDomains = ['localhost', '127.0.0.1'];
6
- export var SUPPORTS_XHR = !!((window === null || window === void 0 ? void 0 : window.XMLHttpRequest) && 'withCredentials' in new XMLHttpRequest());
7
- export var SUPPORTS_FETCH = !!((window === null || window === void 0 ? void 0 : window.fetch) && _isFunction(window === null || window === void 0 ? void 0 : window.fetch));
8
- export var SUPPORTS_REQUEST = SUPPORTS_XHR || SUPPORTS_FETCH;
6
+ export var SUPPORTS_XHR = !!(XMLHttpRequest && 'withCredentials' in new XMLHttpRequest());
7
+ // eslint-disable-next-line compat/compat
8
+ export var SUPPORTS_REQUEST = SUPPORTS_XHR || !!fetch;
9
9
  /**
10
10
  * IE11 doesn't support `new URL`
11
11
  * so we can create an anchor element and use that to parse the URL
@@ -1 +1 @@
1
- {"version":3,"file":"request-utils.js","sourceRoot":"","sources":["../../../src/utils/request-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { _each, _isValidRegex } from './'\n\nimport { _isArray, _isFunction, _isUndefined } from './type-utils'\nimport { logger } from './logger'\nimport { document, window } from './globals'\n\nconst localDomains = ['localhost', '127.0.0.1']\n\nexport const SUPPORTS_XHR = !!(window?.XMLHttpRequest && 'withCredentials' in new XMLHttpRequest())\nexport const SUPPORTS_FETCH = !!(window?.fetch && _isFunction(window?.fetch))\nexport const SUPPORTS_REQUEST = SUPPORTS_XHR || SUPPORTS_FETCH\n\n/**\n * IE11 doesn't support `new URL`\n * so we can create an anchor element and use that to parse the URL\n * there's a lot of overlap between HTMLHyperlinkElementUtils and URL\n * meaning useful properties like `pathname` are available on both\n */\nexport const convertToURL = (url: string): HTMLAnchorElement | null => {\n const location = document?.createElement('a')\n if (_isUndefined(location)) {\n return null\n }\n\n location.href = url\n return location\n}\n\nexport const _isUrlMatchingRegex = function (url: string, pattern: string): boolean {\n if (!_isValidRegex(pattern)) return false\n return new RegExp(pattern).test(url)\n}\n\nexport const _HTTPBuildQuery = function (formdata: Record<string, any>, arg_separator = '&'): string {\n let use_val: string\n let use_key: string\n const tph_arr: string[] = []\n\n _each(formdata, function (val, key) {\n // the key might be literally the string undefined for e.g. if {undefined: 'something'}\n if (_isUndefined(val) || _isUndefined(key) || key === 'undefined') {\n return\n }\n\n use_val = encodeURIComponent(val.toString())\n use_key = encodeURIComponent(key)\n tph_arr[tph_arr.length] = use_key + '=' + use_val\n })\n\n return tph_arr.join(arg_separator)\n}\n\nexport const _getQueryParam = function (url: string, param: string): string {\n const withoutHash: string = url.split('#')[0] || ''\n const queryParams: string = withoutHash.split('?')[1] || ''\n\n const queryParts = queryParams.split('&')\n let keyValuePair\n\n for (let i = 0; i < queryParts.length; i++) {\n const parts = queryParts[i].split('=')\n if (parts[0] === param) {\n keyValuePair = parts\n break\n }\n }\n\n if (!_isArray(keyValuePair) || keyValuePair.length < 2) {\n return ''\n } else {\n let result = keyValuePair[1]\n try {\n result = decodeURIComponent(result)\n } catch (err) {\n logger.error('Skipping decoding for malformed query param: ' + result)\n }\n return result.replace(/\\+/g, ' ')\n }\n}\n\nexport const _getHashParam = function (hash: string, param: string): string | null {\n const matches = hash.match(new RegExp(param + '=([^&]*)'))\n return matches ? matches[1] : null\n}\n\nexport const isLocalhost = (): boolean => {\n return localDomains.includes(location.hostname)\n}\n"]}
1
+ {"version":3,"file":"request-utils.js","sourceRoot":"","sources":["../../../src/utils/request-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { _each, _isValidRegex } from './'\n\nimport { _isArray, _isUndefined } from './type-utils'\nimport { logger } from './logger'\nimport { document, fetch, XMLHttpRequest } from './globals'\n\nconst localDomains = ['localhost', '127.0.0.1']\n\nexport const SUPPORTS_XHR = !!(XMLHttpRequest && 'withCredentials' in new XMLHttpRequest())\n// eslint-disable-next-line compat/compat\nexport const SUPPORTS_REQUEST = SUPPORTS_XHR || !!fetch\n\n/**\n * IE11 doesn't support `new URL`\n * so we can create an anchor element and use that to parse the URL\n * there's a lot of overlap between HTMLHyperlinkElementUtils and URL\n * meaning useful properties like `pathname` are available on both\n */\nexport const convertToURL = (url: string): HTMLAnchorElement | null => {\n const location = document?.createElement('a')\n if (_isUndefined(location)) {\n return null\n }\n\n location.href = url\n return location\n}\n\nexport const _isUrlMatchingRegex = function (url: string, pattern: string): boolean {\n if (!_isValidRegex(pattern)) return false\n return new RegExp(pattern).test(url)\n}\n\nexport const _HTTPBuildQuery = function (formdata: Record<string, any>, arg_separator = '&'): string {\n let use_val: string\n let use_key: string\n const tph_arr: string[] = []\n\n _each(formdata, function (val, key) {\n // the key might be literally the string undefined for e.g. if {undefined: 'something'}\n if (_isUndefined(val) || _isUndefined(key) || key === 'undefined') {\n return\n }\n\n use_val = encodeURIComponent(val.toString())\n use_key = encodeURIComponent(key)\n tph_arr[tph_arr.length] = use_key + '=' + use_val\n })\n\n return tph_arr.join(arg_separator)\n}\n\nexport const _getQueryParam = function (url: string, param: string): string {\n const withoutHash: string = url.split('#')[0] || ''\n const queryParams: string = withoutHash.split('?')[1] || ''\n\n const queryParts = queryParams.split('&')\n let keyValuePair\n\n for (let i = 0; i < queryParts.length; i++) {\n const parts = queryParts[i].split('=')\n if (parts[0] === param) {\n keyValuePair = parts\n break\n }\n }\n\n if (!_isArray(keyValuePair) || keyValuePair.length < 2) {\n return ''\n } else {\n let result = keyValuePair[1]\n try {\n result = decodeURIComponent(result)\n } catch (err) {\n logger.error('Skipping decoding for malformed query param: ' + result)\n }\n return result.replace(/\\+/g, ' ')\n }\n}\n\nexport const _getHashParam = function (hash: string, param: string): string | null {\n const matches = hash.match(new RegExp(param + '=([^&]*)'))\n return matches ? matches[1] : null\n}\n\nexport const isLocalhost = (): boolean => {\n return localDomains.includes(location.hostname)\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "posthog-js",
3
- "version": "1.104.2",
3
+ "version": "1.104.4",
4
4
  "description": "Posthog-js allows you to automatically capture usage and send events to PostHog.",
5
5
  "repository": "https://github.com/PostHog/posthog-js",
6
6
  "author": "hey@posthog.com",