posthog-js 1.155.0 → 1.155.2
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/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/module.js +1 -1
- package/dist/module.js.map +1 -1
- package/lib/package.json +1 -1
- package/lib/src/posthog-core.js +1 -1
- package/lib/src/posthog-core.js.map +1 -1
- package/lib/src/request.js +1 -1
- package/lib/src/request.js.map +1 -1
- package/package.json +1 -1
package/lib/src/request.js
CHANGED
|
@@ -118,7 +118,7 @@ var _fetch = function (options) {
|
|
|
118
118
|
var _b = (_a = encodePostData(options)) !== null && _a !== void 0 ? _a : {}, contentType = _b.contentType, body = _b.body;
|
|
119
119
|
// eslint-disable-next-line compat/compat
|
|
120
120
|
var headers = new Headers();
|
|
121
|
-
each(headers, function (headerValue, headerName) {
|
|
121
|
+
each(options.headers, function (headerValue, headerName) {
|
|
122
122
|
headers.append(headerName, headerValue);
|
|
123
123
|
});
|
|
124
124
|
if (contentType) {
|
package/lib/src/request.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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","sourcesContent":["import { _base64Encode, each, find } from './utils'\nimport Config from './config'\nimport { Compression, RequestOptions, RequestResponse } from './types'\nimport { formDataToQuery } from './utils/request-utils'\n\nimport { logger } from './utils/logger'\nimport { fetch, XMLHttpRequest, AbortController, navigator } from './utils/globals'\nimport { gzipSync, strToU8 } from 'fflate'\n\n// eslint-disable-next-line compat/compat\nexport const SUPPORTS_REQUEST = !!XMLHttpRequest || !!fetch\n\nconst CONTENT_TYPE_PLAIN = 'text/plain'\nconst CONTENT_TYPE_JSON = 'application/json'\nconst CONTENT_TYPE_FORM = 'application/x-www-form-urlencoded'\n\ntype EncodedBody = {\n contentType: string\n body: string | BlobPart\n}\n\nexport const extendURLParams = (url: string, params: Record<string, any>): string => {\n const [baseUrl, search] = url.split('?')\n const newParams = { ...params }\n\n search?.split('&').forEach((pair) => {\n const [key] = pair.split('=')\n delete newParams[key]\n })\n\n let newSearch = formDataToQuery(newParams)\n newSearch = newSearch ? (search ? search + '&' : '') + newSearch : search\n\n return `${baseUrl}?${newSearch}`\n}\n\nconst encodeToDataString = (data: string | Record<string, any>): string => {\n return 'data=' + encodeURIComponent(typeof data === 'string' ? data : JSON.stringify(data))\n}\n\nconst encodePostData = ({ data, compression }: RequestOptions): EncodedBody | undefined => {\n if (!data) {\n return\n }\n\n if (compression === Compression.GZipJS) {\n const gzipData = gzipSync(strToU8(JSON.stringify(data)), { mtime: 0 })\n return {\n contentType: CONTENT_TYPE_PLAIN,\n body: new Blob([gzipData], { type: CONTENT_TYPE_PLAIN }),\n }\n }\n\n if (compression === Compression.Base64) {\n const b64data = _base64Encode(JSON.stringify(data))\n\n return {\n contentType: CONTENT_TYPE_FORM,\n body: encodeToDataString(b64data),\n }\n }\n\n return {\n contentType: CONTENT_TYPE_JSON,\n body: JSON.stringify(data),\n }\n}\n\nconst xhr = (options: RequestOptions) => {\n const req = new XMLHttpRequest!()\n req.open(options.method || 'GET', options.url, true)\n const { contentType, body } = encodePostData(options) ?? {}\n\n each(options.headers, function (headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue)\n })\n\n if (contentType) {\n req.setRequestHeader('Content-Type', contentType)\n }\n\n if (options.timeout) {\n req.timeout = options.timeout\n }\n // send the ph_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n req.withCredentials = true\n req.onreadystatechange = () => {\n // XMLHttpRequest.DONE == 4, except in safari 4\n if (req.readyState === 4) {\n const response: RequestResponse = {\n statusCode: req.status,\n text: req.responseText,\n }\n if (req.status === 200) {\n try {\n response.json = JSON.parse(req.responseText)\n } catch (e) {\n // logger.error(e)\n }\n }\n\n options.callback?.(response)\n }\n }\n req.send(body)\n}\n\nconst _fetch = (options: RequestOptions) => {\n const { contentType, body } = encodePostData(options) ?? {}\n\n // eslint-disable-next-line compat/compat\n const headers = new Headers()\n each(headers, function (headerValue, headerName) {\n headers.append(headerName, headerValue)\n })\n\n if (contentType) {\n headers.append('Content-Type', contentType)\n }\n\n const url = options.url\n let aborter: { signal: any; timeout: ReturnType<typeof setTimeout> } | null = null\n\n if (AbortController) {\n const controller = new AbortController()\n aborter = {\n signal: controller.signal,\n timeout: setTimeout(() => controller.abort(), options.timeout),\n }\n }\n\n fetch!(url, {\n method: options?.method || 'GET',\n headers,\n keepalive: options.method === 'POST',\n body,\n signal: aborter?.signal,\n })\n .then((response) => {\n return response.text().then((responseText) => {\n const res: RequestResponse = {\n statusCode: response.status,\n text: responseText,\n }\n\n if (response.status === 200) {\n try {\n res.json = JSON.parse(responseText)\n } catch (e) {\n logger.error(e)\n }\n }\n\n options.callback?.(res)\n })\n })\n .catch((error) => {\n logger.error(error)\n options.callback?.({ statusCode: 0, text: error })\n })\n .finally(() => (aborter ? clearTimeout(aborter.timeout) : null))\n\n return\n}\n\nconst _sendBeacon = (options: RequestOptions) => {\n // beacon documentation https://w3c.github.io/beacon/\n // beacons format the message and use the type property\n\n const url = extendURLParams(options.url, {\n beacon: '1',\n })\n\n try {\n const { contentType, body } = encodePostData(options) ?? {}\n // sendBeacon requires a blob so we convert it\n const sendBeaconBody = typeof body === 'string' ? new Blob([body], { type: contentType }) : body\n navigator!.sendBeacon!(url, sendBeaconBody)\n } catch (e) {\n // send beacon is a best-effort, fire-and-forget mechanism on page unload,\n // we don't want to throw errors here\n }\n}\n\nconst AVAILABLE_TRANSPORTS: { transport: RequestOptions['transport']; method: (options: RequestOptions) => void }[] = []\n\n// We add the transports in order of preference\n\nif (XMLHttpRequest) {\n AVAILABLE_TRANSPORTS.push({\n transport: 'XHR',\n method: xhr,\n })\n}\n\nif (fetch) {\n AVAILABLE_TRANSPORTS.push({\n transport: 'fetch',\n method: _fetch,\n })\n}\n\nif (navigator?.sendBeacon) {\n AVAILABLE_TRANSPORTS.push({\n transport: 'sendBeacon',\n method: _sendBeacon,\n })\n}\n\n// This is the entrypoint. It takes care of sanitizing the options and then calls the appropriate request method.\nexport const request = (_options: RequestOptions) => {\n // Clone the options so we don't modify the original object\n const options = { ..._options }\n options.timeout = options.timeout || 60000\n\n options.url = extendURLParams(options.url, {\n _: new Date().getTime().toString(),\n ver: Config.LIB_VERSION,\n compression: options.compression,\n })\n\n const transport = options.transport ?? 'XHR'\n\n const transportMethod =\n find(AVAILABLE_TRANSPORTS, (t) => t.transport === transport)?.method ?? AVAILABLE_TRANSPORTS[0].method\n\n if (!transportMethod) {\n throw new Error('No available transport method')\n }\n\n transportMethod(options)\n}\n"]}
|
|
1
|
+
{"version":3,"file":"request.js","sourceRoot":"","sources":["../../src/request.ts"],"names":[],"mappings":"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","sourcesContent":["import { _base64Encode, each, find } from './utils'\nimport Config from './config'\nimport { Compression, RequestOptions, RequestResponse } from './types'\nimport { formDataToQuery } from './utils/request-utils'\n\nimport { logger } from './utils/logger'\nimport { fetch, XMLHttpRequest, AbortController, navigator } from './utils/globals'\nimport { gzipSync, strToU8 } from 'fflate'\n\n// eslint-disable-next-line compat/compat\nexport const SUPPORTS_REQUEST = !!XMLHttpRequest || !!fetch\n\nconst CONTENT_TYPE_PLAIN = 'text/plain'\nconst CONTENT_TYPE_JSON = 'application/json'\nconst CONTENT_TYPE_FORM = 'application/x-www-form-urlencoded'\n\ntype EncodedBody = {\n contentType: string\n body: string | BlobPart\n}\n\nexport const extendURLParams = (url: string, params: Record<string, any>): string => {\n const [baseUrl, search] = url.split('?')\n const newParams = { ...params }\n\n search?.split('&').forEach((pair) => {\n const [key] = pair.split('=')\n delete newParams[key]\n })\n\n let newSearch = formDataToQuery(newParams)\n newSearch = newSearch ? (search ? search + '&' : '') + newSearch : search\n\n return `${baseUrl}?${newSearch}`\n}\n\nconst encodeToDataString = (data: string | Record<string, any>): string => {\n return 'data=' + encodeURIComponent(typeof data === 'string' ? data : JSON.stringify(data))\n}\n\nconst encodePostData = ({ data, compression }: RequestOptions): EncodedBody | undefined => {\n if (!data) {\n return\n }\n\n if (compression === Compression.GZipJS) {\n const gzipData = gzipSync(strToU8(JSON.stringify(data)), { mtime: 0 })\n return {\n contentType: CONTENT_TYPE_PLAIN,\n body: new Blob([gzipData], { type: CONTENT_TYPE_PLAIN }),\n }\n }\n\n if (compression === Compression.Base64) {\n const b64data = _base64Encode(JSON.stringify(data))\n\n return {\n contentType: CONTENT_TYPE_FORM,\n body: encodeToDataString(b64data),\n }\n }\n\n return {\n contentType: CONTENT_TYPE_JSON,\n body: JSON.stringify(data),\n }\n}\n\nconst xhr = (options: RequestOptions) => {\n const req = new XMLHttpRequest!()\n req.open(options.method || 'GET', options.url, true)\n const { contentType, body } = encodePostData(options) ?? {}\n\n each(options.headers, function (headerValue, headerName) {\n req.setRequestHeader(headerName, headerValue)\n })\n\n if (contentType) {\n req.setRequestHeader('Content-Type', contentType)\n }\n\n if (options.timeout) {\n req.timeout = options.timeout\n }\n // send the ph_optout cookie\n // withCredentials cannot be modified until after calling .open on Android and Mobile Safari\n req.withCredentials = true\n req.onreadystatechange = () => {\n // XMLHttpRequest.DONE == 4, except in safari 4\n if (req.readyState === 4) {\n const response: RequestResponse = {\n statusCode: req.status,\n text: req.responseText,\n }\n if (req.status === 200) {\n try {\n response.json = JSON.parse(req.responseText)\n } catch (e) {\n // logger.error(e)\n }\n }\n\n options.callback?.(response)\n }\n }\n req.send(body)\n}\n\nconst _fetch = (options: RequestOptions) => {\n const { contentType, body } = encodePostData(options) ?? {}\n\n // eslint-disable-next-line compat/compat\n const headers = new Headers()\n each(options.headers, function (headerValue, headerName) {\n headers.append(headerName, headerValue)\n })\n\n if (contentType) {\n headers.append('Content-Type', contentType)\n }\n\n const url = options.url\n let aborter: { signal: any; timeout: ReturnType<typeof setTimeout> } | null = null\n\n if (AbortController) {\n const controller = new AbortController()\n aborter = {\n signal: controller.signal,\n timeout: setTimeout(() => controller.abort(), options.timeout),\n }\n }\n\n fetch!(url, {\n method: options?.method || 'GET',\n headers,\n keepalive: options.method === 'POST',\n body,\n signal: aborter?.signal,\n })\n .then((response) => {\n return response.text().then((responseText) => {\n const res: RequestResponse = {\n statusCode: response.status,\n text: responseText,\n }\n\n if (response.status === 200) {\n try {\n res.json = JSON.parse(responseText)\n } catch (e) {\n logger.error(e)\n }\n }\n\n options.callback?.(res)\n })\n })\n .catch((error) => {\n logger.error(error)\n options.callback?.({ statusCode: 0, text: error })\n })\n .finally(() => (aborter ? clearTimeout(aborter.timeout) : null))\n\n return\n}\n\nconst _sendBeacon = (options: RequestOptions) => {\n // beacon documentation https://w3c.github.io/beacon/\n // beacons format the message and use the type property\n\n const url = extendURLParams(options.url, {\n beacon: '1',\n })\n\n try {\n const { contentType, body } = encodePostData(options) ?? {}\n // sendBeacon requires a blob so we convert it\n const sendBeaconBody = typeof body === 'string' ? new Blob([body], { type: contentType }) : body\n navigator!.sendBeacon!(url, sendBeaconBody)\n } catch (e) {\n // send beacon is a best-effort, fire-and-forget mechanism on page unload,\n // we don't want to throw errors here\n }\n}\n\nconst AVAILABLE_TRANSPORTS: { transport: RequestOptions['transport']; method: (options: RequestOptions) => void }[] = []\n\n// We add the transports in order of preference\n\nif (XMLHttpRequest) {\n AVAILABLE_TRANSPORTS.push({\n transport: 'XHR',\n method: xhr,\n })\n}\n\nif (fetch) {\n AVAILABLE_TRANSPORTS.push({\n transport: 'fetch',\n method: _fetch,\n })\n}\n\nif (navigator?.sendBeacon) {\n AVAILABLE_TRANSPORTS.push({\n transport: 'sendBeacon',\n method: _sendBeacon,\n })\n}\n\n// This is the entrypoint. It takes care of sanitizing the options and then calls the appropriate request method.\nexport const request = (_options: RequestOptions) => {\n // Clone the options so we don't modify the original object\n const options = { ..._options }\n options.timeout = options.timeout || 60000\n\n options.url = extendURLParams(options.url, {\n _: new Date().getTime().toString(),\n ver: Config.LIB_VERSION,\n compression: options.compression,\n })\n\n const transport = options.transport ?? 'XHR'\n\n const transportMethod =\n find(AVAILABLE_TRANSPORTS, (t) => t.transport === transport)?.method ?? AVAILABLE_TRANSPORTS[0].method\n\n if (!transportMethod) {\n throw new Error('No available transport method')\n }\n\n transportMethod(options)\n}\n"]}
|
package/package.json
CHANGED