@cloudcare/browser-core 3.2.26 → 3.2.29
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/cjs/browser/asyncClocks.js +0 -4
- package/cjs/browser/asyncClocks.js.map +1 -1
- package/cjs/configuration/configuration.js +1 -1
- package/cjs/configuration/configuration.js.map +1 -1
- package/cjs/configuration/remoteConfiguration.js +0 -85
- package/cjs/configuration/remoteConfiguration.js.map +1 -1
- package/cjs/configuration/transportConfiguration.js +0 -2
- package/cjs/configuration/transportConfiguration.js.map +1 -1
- package/cjs/dataMap.js +1 -2
- package/cjs/dataMap.js.map +1 -1
- package/cjs/helper/deviceInfo.js +2 -41
- package/cjs/helper/deviceInfo.js.map +1 -1
- package/cjs/helper/mobileUtil.js +2 -2
- package/cjs/helper/mobileUtil.js.map +1 -1
- package/cjs/helper/serialisation/rowData.js +0 -1
- package/cjs/helper/serialisation/rowData.js.map +1 -1
- package/cjs/helper/tools.js +6 -21
- package/cjs/helper/tools.js.map +1 -1
- package/cjs/index.js +7 -0
- package/cjs/index.js.map +1 -1
- package/cjs/session/sessionConstants.js +5 -1
- package/cjs/session/sessionConstants.js.map +1 -1
- package/cjs/session/sessionInCookie.js +1 -1
- package/cjs/session/sessionInCookie.js.map +1 -1
- package/cjs/session/sessionInLocalStorage.js +1 -1
- package/cjs/session/sessionInLocalStorage.js.map +1 -1
- package/cjs/session/sessionStore.js +18 -5
- package/cjs/session/sessionStore.js.map +1 -1
- package/cjs/session/sessionStoreOperations.js +34 -8
- package/cjs/session/sessionStoreOperations.js.map +1 -1
- package/cjs/transport/batch.js +9 -11
- package/cjs/transport/batch.js.map +1 -1
- package/cjs/transport/httpRequest.js +40 -6
- package/cjs/transport/httpRequest.js.map +1 -1
- package/esm/browser/asyncClocks.js +0 -4
- package/esm/browser/asyncClocks.js.map +1 -1
- package/esm/configuration/configuration.js +1 -1
- package/esm/configuration/configuration.js.map +1 -1
- package/esm/configuration/remoteConfiguration.js +0 -85
- package/esm/configuration/remoteConfiguration.js.map +1 -1
- package/esm/configuration/transportConfiguration.js +0 -2
- package/esm/configuration/transportConfiguration.js.map +1 -1
- package/esm/dataMap.js +1 -2
- package/esm/dataMap.js.map +1 -1
- package/esm/helper/deviceInfo.js +2 -41
- package/esm/helper/deviceInfo.js.map +1 -1
- package/esm/helper/mobileUtil.js +2 -2
- package/esm/helper/mobileUtil.js.map +1 -1
- package/esm/helper/serialisation/rowData.js +0 -1
- package/esm/helper/serialisation/rowData.js.map +1 -1
- package/esm/helper/tools.js +6 -21
- package/esm/helper/tools.js.map +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/session/sessionConstants.js +4 -0
- package/esm/session/sessionConstants.js.map +1 -1
- package/esm/session/sessionInCookie.js +2 -2
- package/esm/session/sessionInCookie.js.map +1 -1
- package/esm/session/sessionInLocalStorage.js +2 -2
- package/esm/session/sessionInLocalStorage.js.map +1 -1
- package/esm/session/sessionStore.js +18 -5
- package/esm/session/sessionStore.js.map +1 -1
- package/esm/session/sessionStoreOperations.js +34 -9
- package/esm/session/sessionStoreOperations.js.map +1 -1
- package/esm/transport/batch.js +9 -11
- package/esm/transport/batch.js.map +1 -1
- package/esm/transport/httpRequest.js +40 -6
- package/esm/transport/httpRequest.js.map +1 -1
- package/package.json +23 -24
- package/src/browser/asyncClocks.js +0 -3
- package/src/configuration/configuration.js +1 -1
- package/src/configuration/remoteConfiguration.js +0 -84
- package/src/configuration/transportConfiguration.js +0 -2
- package/src/dataMap.js +2 -2
- package/src/helper/deviceInfo.js +9 -37
- package/src/helper/mobileUtil.js +2 -2
- package/src/helper/serialisation/rowData.js +0 -1
- package/src/helper/tools.js +6 -23
- package/src/index.js +2 -1
- package/src/session/sessionConstants.js +4 -0
- package/src/session/sessionInCookie.js +3 -2
- package/src/session/sessionInLocalStorage.js +4 -2
- package/src/session/sessionStore.js +27 -8
- package/src/session/sessionStoreOperations.js +31 -13
- package/src/transport/batch.js +9 -11
- package/src/transport/httpRequest.js +53 -14
- package/types/index.d.ts +72 -58
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpRequest.js","names":["newRetryState","sendWithRetryStrategy","addEventListener","monitor","addTelemetryError","addBatchPrecision","url","encoding","indexOf","createHttpRequest","endpointUrl","bytesLimit","retryMaxSize","reportError","undefined","retryState","sendStrategyForRetry","payload","onResponse","fetchKeepAliveStrategy","send","sendOnExit","sendBeaconStrategy","data","bytesCount","canUseBeacon","navigator","sendBeacon","beaconData","type","Blob","isQueued","e","reportBeaconError","sendXHR","hasReportedBeaconError","canUseKeepAlive","isKeepAliveSupported","fetchOption","method","body","keepalive","mode","headers","fetch","then","response","status","window","Request","_unused","request","XMLHttpRequest","open","setRequestHeader","once"],"sources":["../../src/transport/httpRequest.js"],"sourcesContent":["import { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy'\nimport { addEventListener } from '../browser/addEventListener'\nimport { monitor } from '../helper/monitor'\nimport { addTelemetryError } from '../telemetry/telemetry'\n/**\n * Use POST request without content type to:\n * - avoid CORS preflight requests\n * - allow usage of sendBeacon\n *\n * multiple elements are sent separated by \\n in order\n * to be parsed correctly without content type header\n */\nfunction addBatchPrecision(url, encoding) {\n if (!url) return url\n url = url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms'\n if (encoding) {\n url = url + '&encoding=' + encoding\n }\n return url\n}\nexport function createHttpRequest(\n endpointUrl,\n bytesLimit,\n retryMaxSize,\n reportError\n) {\n if (retryMaxSize === undefined) {\n retryMaxSize = -1\n }\n var retryState = newRetryState(retryMaxSize)\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse)\n }\n\n return {\n send: function (payload) {\n sendWithRetryStrategy(\n payload,\n retryState,\n sendStrategyForRetry,\n endpointUrl,\n reportError\n )\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(endpointUrl, bytesLimit, payload)\n }\n }\n}\n\nfunction sendBeaconStrategy(endpointUrl, bytesLimit, payload) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit\n if (canUseBeacon) {\n try {\n var beaconData\n if (payload.type) {\n beaconData = new Blob([data], {\n type: payload.type\n })\n } else {\n beaconData = data\n }\n\n var isQueued = navigator.sendBeacon(url, beaconData)\n\n if (isQueued) {\n return\n }\n } catch (e) {\n reportBeaconError(e)\n }\n }\n sendXHR(url, payload)\n}\nvar hasReportedBeaconError = false\n\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true\n addTelemetryError(e)\n }\n}\nexport function fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n payload,\n onResponse\n) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit\n if (canUseKeepAlive) {\n var fetchOption = {\n method: 'POST',\n body: data,\n keepalive: true,\n mode: 'cors'\n }\n if (payload.type) {\n fetchOption.headers = {\n 'Content-Type': payload.type\n }\n }\n fetch(url, fetchOption).then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n }),\n monitor(function () {\n // failed to queue the request\n sendXHR(url, payload, onResponse)\n })\n )\n } else {\n sendXHR(url, payload, onResponse)\n }\n}\n\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a')\n } catch {\n return false\n }\n}\n\nfunction sendXHR(url, payload, onResponse) {\n const data = payload.data\n const request = new XMLHttpRequest()\n request.open('POST', url, true)\n if (data instanceof Blob) {\n request.setRequestHeader('Content-Type', data.type)\n } else if (payload.type) {\n request.setRequestHeader('Content-Type', payload.type)\n }\n\n addEventListener(\n request,\n 'loadend',\n function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: request.status })\n }\n },\n {\n once: true\n }\n )\n request.send(data)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"httpRequest.js","names":["newRetryState","sendWithRetryStrategy","addEventListener","monitor","addTelemetryError","addBatchPrecision","url","encoding","indexOf","createHttpRequest","endpointUrl","bytesLimit","retryMaxSize","reportError","undefined","retryState","sendStrategyForRetry","payload","onResponse","fetchKeepAliveStrategy","send","sendOnExit","sendBeaconStrategy","data","bytesCount","canUseBeacon","navigator","sendBeacon","beaconData","type","Blob","isQueued","e","reportBeaconError","sendXHR","hasReportedBeaconError","canUseKeepAlive","isKeepAliveSupported","fetchOption","method","body","keepalive","mode","headers","outputBase64Head","outputBase64Tail","Object","keys","length","fetch","then","response","status","fetchStrategy","window","Request","_unused","request","XMLHttpRequest","open","setRequestHeader","once"],"sources":["../../src/transport/httpRequest.js"],"sourcesContent":["import { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy'\nimport { addEventListener } from '../browser/addEventListener'\nimport { monitor } from '../helper/monitor'\nimport { addTelemetryError } from '../telemetry/telemetry'\n/**\n * Use POST request without content type to:\n * - avoid CORS preflight requests\n * - allow usage of sendBeacon\n *\n * multiple elements are sent separated by \\n in order\n * to be parsed correctly without content type header\n */\nfunction addBatchPrecision(url, encoding) {\n if (!url) return url\n url = url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms'\n if (encoding) {\n url = url + '&encoding=' + encoding\n }\n return url\n}\nexport function createHttpRequest(\n endpointUrl,\n bytesLimit,\n retryMaxSize,\n reportError\n) {\n if (retryMaxSize === undefined) {\n retryMaxSize = -1\n }\n var retryState = newRetryState(retryMaxSize)\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse)\n }\n\n return {\n send: function (payload) {\n sendWithRetryStrategy(\n payload,\n retryState,\n sendStrategyForRetry,\n endpointUrl,\n reportError\n )\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(endpointUrl, bytesLimit, payload)\n }\n }\n}\n\nfunction sendBeaconStrategy(endpointUrl, bytesLimit, payload) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit\n if (canUseBeacon) {\n try {\n var beaconData\n if (payload.type) {\n beaconData = new Blob([data], {\n type: payload.type\n })\n } else {\n beaconData = data\n }\n\n var isQueued = navigator.sendBeacon(url, beaconData)\n\n if (isQueued) {\n return\n }\n } catch (e) {\n reportBeaconError(e)\n }\n }\n sendXHR(url, payload)\n}\nvar hasReportedBeaconError = false\n\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true\n addTelemetryError(e)\n }\n}\nexport function fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n payload,\n onResponse\n) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit\n if (canUseKeepAlive) {\n var fetchOption = {\n method: 'POST',\n body: data,\n keepalive: true,\n mode: 'cors'\n }\n const headers = {}\n\n if (payload.type) {\n headers['Content-Type'] = payload.type\n }\n if (payload.outputBase64Head) {\n headers['x-base64-head'] = payload.outputBase64Head\n }\n if (payload.outputBase64Tail) {\n headers['x-base64-tail'] = payload.outputBase64Tail\n }\n if (Object.keys(headers).length) {\n fetchOption.headers = headers\n }\n fetch(url, fetchOption)\n .then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n })\n )\n .catch(\n monitor(function () {\n fetchStrategy(url, payload, onResponse)\n })\n )\n } else {\n sendXHR(url, payload, onResponse)\n }\n}\n\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a')\n } catch {\n return false\n }\n}\n\nfunction sendXHR(url, payload, onResponse) {\n const data = payload.data\n const request = new XMLHttpRequest()\n request.open('POST', url, true)\n if (data instanceof Blob) {\n request.setRequestHeader('Content-Type', data.type)\n } else if (payload.type) {\n request.setRequestHeader('Content-Type', payload.type)\n }\n\n addEventListener(\n request,\n 'loadend',\n function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: request.status })\n }\n },\n {\n once: true\n }\n )\n request.send(data)\n}\nfunction fetchStrategy(url, payload, onResponse) {\n const fetchOption = {\n method: 'POST',\n body: payload.data,\n keepalive: true,\n mode: 'cors'\n }\n if (payload.type) {\n fetchOption.headers = {\n 'Content-Type': payload.type\n }\n }\n fetch(url, fetchOption)\n .then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n })\n )\n .catch(\n monitor(function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: 0 })\n }\n })\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
"gitHead": "47b153d6be140f8570f3ec597831f09b1a164dd2"
|
|
2
|
+
"name": "@cloudcare/browser-core",
|
|
3
|
+
"version": "3.2.29",
|
|
4
|
+
"main": "cjs/index.js",
|
|
5
|
+
"module": "esm/index.js",
|
|
6
|
+
"types": "types/index.d.ts",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"build": "run-p build:cjs build:esm",
|
|
9
|
+
"build:cjs": "rm -rf cjs && babel --config-file ./babel.cjs.json --out-dir cjs ./src",
|
|
10
|
+
"build:esm": "rm -rf esm && babel --config-file ./babel.esm.json --out-dir esm ./src "
|
|
11
|
+
},
|
|
12
|
+
"keywords": [
|
|
13
|
+
"dataflux",
|
|
14
|
+
"logs",
|
|
15
|
+
"sdk"
|
|
16
|
+
],
|
|
17
|
+
"repository": {
|
|
18
|
+
"url": "https://github.com/DataFlux-cn/datakit-js",
|
|
19
|
+
"type": "git",
|
|
20
|
+
"directory": "packages/core"
|
|
21
|
+
},
|
|
22
|
+
"author": "dataflux",
|
|
23
|
+
"license": "MIT",
|
|
24
|
+
"gitHead": "c00a63dc2a909293f5001ed01ed11ce1d92383df"
|
|
26
25
|
}
|
|
@@ -14,7 +14,6 @@ function applyRemoteClocks(serverTimestamp, rtt) {
|
|
|
14
14
|
const estimatedClientTime =
|
|
15
15
|
performance.timing.navigationStart + start + rtt / 2
|
|
16
16
|
|
|
17
|
-
// 计算时间偏移
|
|
18
17
|
const offset = serverTimestamp - estimatedClientTime
|
|
19
18
|
return offset
|
|
20
19
|
}
|
|
@@ -45,7 +44,6 @@ export function buildEndpoint(configuration) {
|
|
|
45
44
|
configuration.datakitUrl ||
|
|
46
45
|
configuration.site
|
|
47
46
|
if (url.indexOf('/') === 0) {
|
|
48
|
-
// 绝对路径这种 /xxx
|
|
49
47
|
url = location.origin + trim(url)
|
|
50
48
|
}
|
|
51
49
|
var endpoint = url
|
|
@@ -54,7 +52,6 @@ export function buildEndpoint(configuration) {
|
|
|
54
52
|
} else {
|
|
55
53
|
endpoint = trim(url) + '/v1/env_variable'
|
|
56
54
|
}
|
|
57
|
-
// 这里需要加上token和app_id
|
|
58
55
|
endpoint += '?app_id=' + configuration.applicationId
|
|
59
56
|
//testing-openway.dataflux.cn/v1/env_variable?token=a47fb0cdddaa4561a90d941317cdbc0b&app_id=d1b454d0_22eb_11ef_9b66_95ca11aa2c6c&to_headless=true
|
|
60
57
|
if (configuration.site && configuration.clientToken) {
|
|
@@ -87,7 +87,7 @@ export function validateAndBuildConfiguration(initConfiguration) {
|
|
|
87
87
|
messageBytesLimit: 256 * ONE_KIBI_BYTE,
|
|
88
88
|
resourceUrlLimit: 5 * ONE_KIBI_BYTE,
|
|
89
89
|
storeContextsToLocal: !!initConfiguration.storeContextsToLocal,
|
|
90
|
-
//
|
|
90
|
+
// localstorage key ,default auto gen
|
|
91
91
|
storeContextsKey: initConfiguration.storeContextsKey,
|
|
92
92
|
sendContentTypeByJson: !!initConfiguration.sendContentTypeByJson,
|
|
93
93
|
retryMaxSize: isNullUndefinedDefaultValue(
|
|
@@ -9,88 +9,6 @@ export function fetchAndApplyRemoteConfiguration(initConfiguration, callback) {
|
|
|
9
9
|
)
|
|
10
10
|
})
|
|
11
11
|
}
|
|
12
|
-
/**
|
|
13
|
-
* 数据上报采样率,100 表示全收集;0 表示不收集。默认 100
|
|
14
|
-
*/
|
|
15
|
-
// sessionSampleRate?: number | undefined
|
|
16
|
-
// telemetrySampleRate?: number | undefined
|
|
17
|
-
// silentMultipleInit?: boolean | undefined
|
|
18
|
-
|
|
19
|
-
// service?: string | undefined
|
|
20
|
-
// /** Web 应用当前环境,如 prod:线上环境;gray:灰度环境;pre:预发布环境;common:日常环境;local:本地环境。 */
|
|
21
|
-
// env?: string | undefined
|
|
22
|
-
// /** Web 应用的版本号。 */
|
|
23
|
-
// version?: string | undefined
|
|
24
|
-
// /** 链路数据采样百分比:100 表示全收集;0 表示不收集。 */
|
|
25
|
-
// tracingSampleRate?: number | undefined
|
|
26
|
-
// /**
|
|
27
|
-
// * @deprecated use usePartitionedCrossSiteSessionCookie instead
|
|
28
|
-
// */
|
|
29
|
-
// useCrossSiteSessionCookie?: boolean | undefined
|
|
30
|
-
// /**
|
|
31
|
-
// * 是否使用跨域 cookie,开启第三方 cookie 跨分区实现。默认不允许跨域,例如嵌套跨域 iframe 的情况。
|
|
32
|
-
// */
|
|
33
|
-
// usePartitionedCrossSiteSessionCookie?: boolean | undefined
|
|
34
|
-
// useSecureSessionCookie?: boolean | undefined
|
|
35
|
-
// trackSessionAcrossSubdomains?: boolean | undefined
|
|
36
|
-
// /**
|
|
37
|
-
// * 是否把公共数据存储到localstorage,默认不存储
|
|
38
|
-
// */
|
|
39
|
-
// storeContextsToLocal?: boolean | undefined
|
|
40
|
-
// /**
|
|
41
|
-
// * 定义存储到 localstorage 的 key ,默认不填,自动生成, 该参数主要是为了区分在同一个域名下,不同子路径共用store 的问题
|
|
42
|
-
// */
|
|
43
|
-
// storeContextsKey?: string | undefined
|
|
44
|
-
// /**
|
|
45
|
-
// * 数据以 application/json 的发送方式,默认text
|
|
46
|
-
// */
|
|
47
|
-
// sendContentTypeByJson?: boolean | undefined
|
|
48
|
-
// /**
|
|
49
|
-
// * 在 cookie 不可用的情况下,可以开启该选项,把数据储存到 localstorage
|
|
50
|
-
// */
|
|
51
|
-
// allowFallbackToLocalStorage ?: boolean | undefined
|
|
52
|
-
// /**
|
|
53
|
-
// * 错误会话补偿采样率:
|
|
54
|
-
// * - 当会话未被 `sessionSampleRate` 采样时,若会话期间发生错误,则按此比例采集
|
|
55
|
-
// * 此类会话将在错误发生时开始记录事件,并持续记录直到会话结束。
|
|
56
|
-
// * - 取值范围 0-100,100 表示全采错误会话,0 表示忽略错误会话
|
|
57
|
-
// */
|
|
58
|
-
// sessionOnErrorSampleRate?: number | undefined
|
|
59
|
-
|
|
60
|
-
// /**
|
|
61
|
-
// * Session Replay 全量采集采样率:
|
|
62
|
-
// * - 用于控制所有会话重放的全量数据采集比例
|
|
63
|
-
// * - 取值范围 0-100,100 表示全量采集,0 表示不采集
|
|
64
|
-
// **/
|
|
65
|
-
// sessionReplaySampleRate?: number | undefined
|
|
66
|
-
|
|
67
|
-
// /** 错误会话重放补偿采样率:
|
|
68
|
-
// * - 当会话未被 `sessionReplaySampleRate` 采样时,若会话期间发生错误,则按此比例采集
|
|
69
|
-
// * 此类回放将记录错误发生前最多一分钟的事件,并持续记录直到会话结束。
|
|
70
|
-
// 100 表示全收集;0 表示不收集。
|
|
71
|
-
// */
|
|
72
|
-
// sessionReplayOnErrorSampleRate?: number | undefined
|
|
73
|
-
// /**
|
|
74
|
-
// * 是否开启用户行为采集。
|
|
75
|
-
// */
|
|
76
|
-
// trackUserInteractions?: boolean | undefined
|
|
77
|
-
// /**
|
|
78
|
-
// * 指定 action 数据 name 获取方式,默认自动获取,可以指定元素特定属性名称,alt,name,title,aria-labelledby,aria-label,data-guance-action-name 这些属性
|
|
79
|
-
// */
|
|
80
|
-
// actionNameAttribute?: string | undefined
|
|
81
|
-
// trackViewsManually?: boolean | undefined
|
|
82
|
-
// /**
|
|
83
|
-
// * sessionReplay 和 compressIntakeRequests数据压缩都是在 webwork 线程中完成,所以默认情况下,需要在开启csp 安全访问的情况下,允许 worker-src blob:; workerUrl 配置允许自行托管 worker 地址
|
|
84
|
-
// */
|
|
85
|
-
// workerUrl?: string
|
|
86
|
-
// /**
|
|
87
|
-
// * 压缩 RUM 数据请求内容,以减少发送大量数据时的带宽使用量。压缩在 Worker 线程中完成。
|
|
88
|
-
// */
|
|
89
|
-
// compressIntakeRequests ?: boolean | undefined
|
|
90
|
-
// /**
|
|
91
|
-
// * 配置链路追踪工具类型,如果不配置默认为 ddtrace。目前支持 ddtrace、zipkin、skywalking_v3、jaeger、zipkin_single_header、w3c_traceparent 6 种数据类型。
|
|
92
|
-
// */
|
|
93
|
-
// traceType?: TraceType
|
|
94
12
|
|
|
95
13
|
const modifiableFieldPaths = {
|
|
96
14
|
sessionSampleRate: 'number',
|
|
@@ -189,7 +107,6 @@ export function buildEndpoint(configuration) {
|
|
|
189
107
|
configuration.datakitUrl ||
|
|
190
108
|
configuration.site
|
|
191
109
|
if (url.indexOf('/') === 0) {
|
|
192
|
-
// 绝对路径这种 /xxx
|
|
193
110
|
url = location.origin + trim(url)
|
|
194
111
|
}
|
|
195
112
|
var endpoint = url
|
|
@@ -198,7 +115,6 @@ export function buildEndpoint(configuration) {
|
|
|
198
115
|
} else {
|
|
199
116
|
endpoint = trim(url) + '/v1/env_variable'
|
|
200
117
|
}
|
|
201
|
-
// 这里需要加上token和app_id
|
|
202
118
|
endpoint += '?app_id=' + configuration.applicationId
|
|
203
119
|
//testing-openway.dataflux.cn/v1/env_variable?token=a47fb0cdddaa4561a90d941317cdbc0b&app_id=d1b454d0_22eb_11ef_9b66_95ca11aa2c6c&to_headless=true
|
|
204
120
|
if (configuration.site && configuration.clientToken) {
|
|
@@ -14,7 +14,6 @@ function getEndPointUrl(configuration, type) {
|
|
|
14
14
|
configuration.datakitUrl ||
|
|
15
15
|
configuration.site
|
|
16
16
|
if (url.indexOf('/') === 0) {
|
|
17
|
-
// 绝对路径这种 /xxx
|
|
18
17
|
url = location.origin + trim(url)
|
|
19
18
|
}
|
|
20
19
|
var endpoint = url
|
|
@@ -71,7 +70,6 @@ export function isIntakeRequest(url, configuration) {
|
|
|
71
70
|
if (configuration.sessionReplayEndPoint) {
|
|
72
71
|
notTakeRequest.push(configuration.sessionReplayEndPoint)
|
|
73
72
|
}
|
|
74
|
-
// datakit 地址,log 地址,以及客户自定义过滤方法定义url
|
|
75
73
|
return (
|
|
76
74
|
some(notTakeRequest, function (takeUrl) {
|
|
77
75
|
return url.indexOf(takeUrl) === 0
|
package/src/dataMap.js
CHANGED
|
@@ -29,7 +29,7 @@ export var commonTags = {
|
|
|
29
29
|
view_url: 'view.url',
|
|
30
30
|
view_host: 'view.host',
|
|
31
31
|
view_path: 'view.path',
|
|
32
|
-
view_name: 'view.name',
|
|
32
|
+
view_name: 'view.name',
|
|
33
33
|
view_path_group: 'view.path_group'
|
|
34
34
|
}
|
|
35
35
|
export var commonFields = {
|
|
@@ -49,7 +49,6 @@ export var commonFields = {
|
|
|
49
49
|
'_gc.configuration.session_replay_on_error_sample_rate',
|
|
50
50
|
drift: '_gc.drift'
|
|
51
51
|
}
|
|
52
|
-
// 需要用双引号将字符串类型的field value括起来, 这里有数组标示[string, path]
|
|
53
52
|
export var dataMap = {
|
|
54
53
|
view: {
|
|
55
54
|
type: RumEventType.VIEW,
|
|
@@ -59,6 +58,7 @@ export var dataMap = {
|
|
|
59
58
|
view_privacy_replay_level: 'privacy.replay_level'
|
|
60
59
|
},
|
|
61
60
|
fields: {
|
|
61
|
+
view_update_time: '_gc.view_update_time',
|
|
62
62
|
sampled_for_replay: 'session.sampled_for_replay',
|
|
63
63
|
sampled_for_error_replay: 'session.sampled_for_error_replay',
|
|
64
64
|
sampled_for_error_session: 'session.sampled_for_error_session',
|
package/src/helper/deviceInfo.js
CHANGED
|
@@ -5,7 +5,6 @@ var VariableLibrary = {
|
|
|
5
5
|
typeof window !== 'undefined' && typeof window.navigator != 'undefined'
|
|
6
6
|
? window.navigator
|
|
7
7
|
: {},
|
|
8
|
-
// 信息map
|
|
9
8
|
infoMap: {
|
|
10
9
|
engine: ['WebKit', 'Trident', 'Gecko', 'Presto'],
|
|
11
10
|
browser: [
|
|
@@ -78,17 +77,13 @@ var VariableLibrary = {
|
|
|
78
77
|
device: ['Mobile', 'Tablet', 'iPad']
|
|
79
78
|
}
|
|
80
79
|
}
|
|
81
|
-
// 方法库
|
|
82
80
|
var MethodLibrary = {
|
|
83
|
-
// 获取匹配库
|
|
84
81
|
getMatchMap: monitor(function (u) {
|
|
85
82
|
return {
|
|
86
|
-
// 内核
|
|
87
83
|
Trident: u.indexOf('Trident') > -1 || u.indexOf('NET CLR') > -1,
|
|
88
84
|
Presto: u.indexOf('Presto') > -1,
|
|
89
85
|
WebKit: u.indexOf('AppleWebKit') > -1,
|
|
90
86
|
Gecko: u.indexOf('Gecko/') > -1,
|
|
91
|
-
// 浏览器
|
|
92
87
|
Safari: u.indexOf('Safari') > -1,
|
|
93
88
|
Chrome: u.indexOf('Chrome') > -1 || u.indexOf('CriOS') > -1,
|
|
94
89
|
IE: u.indexOf('MSIE') > -1 || u.indexOf('Trident') > -1,
|
|
@@ -131,7 +126,6 @@ var MethodLibrary = {
|
|
|
131
126
|
Douban: u.indexOf('com.douban.frodo') > -1,
|
|
132
127
|
Suning: u.indexOf('SNEBUY-APP') > -1,
|
|
133
128
|
iQiYi: u.indexOf('IqiyiApp') > -1,
|
|
134
|
-
// 系统或平台
|
|
135
129
|
Windows: u.indexOf('Windows') > -1,
|
|
136
130
|
Linux: u.indexOf('Linux') > -1 || u.indexOf('X11') > -1,
|
|
137
131
|
'Mac OS': u.indexOf('Macintosh') > -1,
|
|
@@ -147,7 +141,6 @@ var MethodLibrary = {
|
|
|
147
141
|
iOS: u.indexOf('like Mac OS X') > -1,
|
|
148
142
|
'Chrome OS': u.indexOf('CrOS') > -1,
|
|
149
143
|
WebOS: u.indexOf('hpwOS') > -1,
|
|
150
|
-
// 设备
|
|
151
144
|
Mobile:
|
|
152
145
|
u.indexOf('Mobi') > -1 ||
|
|
153
146
|
u.indexOf('iPh') > -1 ||
|
|
@@ -156,7 +149,6 @@ var MethodLibrary = {
|
|
|
156
149
|
iPad: u.indexOf('iPad') > -1
|
|
157
150
|
}
|
|
158
151
|
}),
|
|
159
|
-
// 在信息map和匹配库中进行匹配
|
|
160
152
|
matchInfoMap: monitor(function (_this) {
|
|
161
153
|
var u = VariableLibrary.navigator.userAgent || ''
|
|
162
154
|
var match = MethodLibrary.getMatchMap(u)
|
|
@@ -169,19 +161,16 @@ var MethodLibrary = {
|
|
|
169
161
|
}
|
|
170
162
|
}
|
|
171
163
|
}),
|
|
172
|
-
// 获取当前操作系统
|
|
173
164
|
getOS: monitor(function () {
|
|
174
165
|
var _this = this
|
|
175
166
|
MethodLibrary.matchInfoMap(_this)
|
|
176
167
|
return _this.os || 'Unknown'
|
|
177
168
|
}),
|
|
178
|
-
// 获取操作系统版本
|
|
179
169
|
getOSVersion: monitor(function () {
|
|
180
170
|
var _this = this
|
|
181
171
|
var u = VariableLibrary.navigator.userAgent || ''
|
|
182
172
|
_this.osVersion = ''
|
|
183
173
|
_this.osMajor = ''
|
|
184
|
-
// 系统版本信息
|
|
185
174
|
var osVersion = {
|
|
186
175
|
Windows: function () {
|
|
187
176
|
var v = u.replace(/^.*Windows NT ([\d.]+);.*$/, '$1')
|
|
@@ -231,25 +220,13 @@ var MethodLibrary = {
|
|
|
231
220
|
osMajor: _this.osMajor
|
|
232
221
|
}
|
|
233
222
|
}),
|
|
234
|
-
|
|
235
|
-
getOrientationStatu: monitor(function () {
|
|
236
|
-
var orientationStatus = ''
|
|
237
|
-
var orientation = window.matchMedia('(orientation: portrait)')
|
|
238
|
-
if (orientation.matches) {
|
|
239
|
-
orientationStatus = '竖屏'
|
|
240
|
-
} else {
|
|
241
|
-
orientationStatus = '横屏'
|
|
242
|
-
}
|
|
243
|
-
return orientationStatus
|
|
244
|
-
}),
|
|
245
|
-
// 获取设备类型
|
|
223
|
+
|
|
246
224
|
getDeviceType: monitor(function () {
|
|
247
225
|
var _this = this
|
|
248
226
|
_this.device = 'PC'
|
|
249
227
|
MethodLibrary.matchInfoMap(_this)
|
|
250
228
|
return _this.device
|
|
251
229
|
}),
|
|
252
|
-
// 获取网络状态
|
|
253
230
|
getNetwork: monitor(function () {
|
|
254
231
|
var connection =
|
|
255
232
|
window.navigator.connection ||
|
|
@@ -291,7 +268,6 @@ var MethodLibrary = {
|
|
|
291
268
|
}
|
|
292
269
|
return result
|
|
293
270
|
}),
|
|
294
|
-
// 获取当前语言
|
|
295
271
|
getLanguage: monitor(function () {
|
|
296
272
|
var _this = this
|
|
297
273
|
_this.language = (function () {
|
|
@@ -311,7 +287,6 @@ var MethodLibrary = {
|
|
|
311
287
|
const timeZone = Intl.DateTimeFormat().resolvedOptions().timeZone
|
|
312
288
|
return timeZone
|
|
313
289
|
}),
|
|
314
|
-
// 浏览器信息
|
|
315
290
|
getBrowserInfo: monitor(function () {
|
|
316
291
|
var _this = this
|
|
317
292
|
MethodLibrary.matchInfoMap(_this)
|
|
@@ -362,22 +337,22 @@ var MethodLibrary = {
|
|
|
362
337
|
if (match['IE'] || match['Edge']) {
|
|
363
338
|
var navigator_top = window.screenTop - window.screenY
|
|
364
339
|
switch (navigator_top) {
|
|
365
|
-
case 71:
|
|
340
|
+
case 71:
|
|
366
341
|
break
|
|
367
|
-
case 74:
|
|
342
|
+
case 74:
|
|
368
343
|
break
|
|
369
|
-
case 99:
|
|
344
|
+
case 99:
|
|
370
345
|
break
|
|
371
|
-
case 102:
|
|
346
|
+
case 102:
|
|
372
347
|
match['360EE'] = true
|
|
373
348
|
break
|
|
374
|
-
case 75:
|
|
349
|
+
case 75:
|
|
375
350
|
break
|
|
376
|
-
case 74:
|
|
351
|
+
case 74:
|
|
377
352
|
break
|
|
378
|
-
case 105:
|
|
353
|
+
case 105:
|
|
379
354
|
break
|
|
380
|
-
case 104:
|
|
355
|
+
case 104:
|
|
381
356
|
match['360SE'] = true
|
|
382
357
|
break
|
|
383
358
|
default:
|
|
@@ -596,16 +571,13 @@ var MethodLibrary = {
|
|
|
596
571
|
browserMajor: _this.browserMajor
|
|
597
572
|
}
|
|
598
573
|
}),
|
|
599
|
-
// 获取地理位置
|
|
600
574
|
getGeoPostion: monitor(function (callback) {
|
|
601
575
|
navigator &&
|
|
602
576
|
navigator.geolocation &&
|
|
603
577
|
navigator.geolocation.getCurrentPosition(
|
|
604
|
-
// 位置获取成功
|
|
605
578
|
function (position) {
|
|
606
579
|
callback(position)
|
|
607
580
|
},
|
|
608
|
-
// 位置获取失败
|
|
609
581
|
function (error) {
|
|
610
582
|
display.warn(error)
|
|
611
583
|
}
|
package/src/helper/mobileUtil.js
CHANGED
|
@@ -66,7 +66,7 @@ JsBirdge.prototype = {
|
|
|
66
66
|
}
|
|
67
67
|
} catch (err) {}
|
|
68
68
|
} else {
|
|
69
|
-
callback({ error: '
|
|
69
|
+
callback({ error: 'please input event name' })
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
addEventListener: function (params, callback) {
|
|
@@ -94,7 +94,7 @@ JsBirdge.prototype = {
|
|
|
94
94
|
}
|
|
95
95
|
} catch (err) {}
|
|
96
96
|
} else {
|
|
97
|
-
callback({ error: '
|
|
97
|
+
callback({ error: 'please input event name' })
|
|
98
98
|
}
|
|
99
99
|
}
|
|
100
100
|
}
|
package/src/helper/tools.js
CHANGED
|
@@ -352,7 +352,7 @@ export var getScreenOrientation = function () {
|
|
|
352
352
|
screen.msOrientation ||
|
|
353
353
|
screen.mozOrientation ||
|
|
354
354
|
(screen.orientation || {}).type
|
|
355
|
-
var screenOrientation = '
|
|
355
|
+
var screenOrientation = 'unknown'
|
|
356
356
|
if (screenOrientationAPI) {
|
|
357
357
|
screenOrientation =
|
|
358
358
|
screenOrientationAPI.indexOf('landscape') > -1 ? 'landscape' : 'portrait'
|
|
@@ -466,14 +466,7 @@ export var formatJsonString = function (obj) {
|
|
|
466
466
|
return JSON.stringify(obj)
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
|
-
|
|
470
|
-
// if (str.length > MAX_STRING_LENGTH) {
|
|
471
|
-
// sd.log('字符串长度超过限制,已经做截取--' + str)
|
|
472
|
-
// return str.slice(0, MAX_STRING_LENGTH)
|
|
473
|
-
// } else {
|
|
474
|
-
// return str
|
|
475
|
-
// }
|
|
476
|
-
// }
|
|
469
|
+
|
|
477
470
|
export var searchObjString = function (o) {
|
|
478
471
|
if (isObject(o)) {
|
|
479
472
|
each(o, function (a, b) {
|
|
@@ -619,7 +612,6 @@ export function UUID(placeholder) {
|
|
|
619
612
|
: `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, UUID)
|
|
620
613
|
}
|
|
621
614
|
|
|
622
|
-
// 替换url包含数字的路由
|
|
623
615
|
export function replaceNumberCharByPath(path) {
|
|
624
616
|
var pathGroup = ''
|
|
625
617
|
if (path) {
|
|
@@ -962,7 +954,7 @@ export var loadScript = function (para) {
|
|
|
962
954
|
}
|
|
963
955
|
export var getHostname = function (url, defaultValue) {
|
|
964
956
|
if (!defaultValue || typeof defaultValue !== 'string') {
|
|
965
|
-
defaultValue = 'hostname
|
|
957
|
+
defaultValue = 'hostname expception!'
|
|
966
958
|
}
|
|
967
959
|
var hostname = null
|
|
968
960
|
try {
|
|
@@ -1104,9 +1096,9 @@ export function deepClone(value) {
|
|
|
1104
1096
|
export var getCurrentDomain = function (url) {
|
|
1105
1097
|
var cookieTopLevelDomain = getCookieTopLevelDomain()
|
|
1106
1098
|
if (url === '') {
|
|
1107
|
-
return '
|
|
1099
|
+
return 'URL parsing failed'
|
|
1108
1100
|
} else if (cookieTopLevelDomain === '') {
|
|
1109
|
-
return '
|
|
1101
|
+
return 'URL parsing failed'
|
|
1110
1102
|
} else {
|
|
1111
1103
|
return cookieTopLevelDomain
|
|
1112
1104
|
}
|
|
@@ -1187,19 +1179,12 @@ export var strip_sa_properties = function (p) {
|
|
|
1187
1179
|
if (isString(arrv)) {
|
|
1188
1180
|
temp.push(arrv)
|
|
1189
1181
|
} else {
|
|
1190
|
-
console.log(
|
|
1191
|
-
'您的数据-',
|
|
1192
|
-
k,
|
|
1193
|
-
v,
|
|
1194
|
-
'的数组里的值必须是字符串,已经将其删除'
|
|
1195
|
-
)
|
|
1196
1182
|
}
|
|
1197
1183
|
})
|
|
1198
1184
|
if (temp.length !== 0) {
|
|
1199
1185
|
p[k] = temp
|
|
1200
1186
|
} else {
|
|
1201
1187
|
delete p[k]
|
|
1202
|
-
console.log('已经删除空的数组')
|
|
1203
1188
|
}
|
|
1204
1189
|
}
|
|
1205
1190
|
if (
|
|
@@ -1213,7 +1198,6 @@ export var strip_sa_properties = function (p) {
|
|
|
1213
1198
|
k === '$option'
|
|
1214
1199
|
)
|
|
1215
1200
|
) {
|
|
1216
|
-
console.log('您的数据-', k, v, '-格式不满足要求,我们已经将其删除')
|
|
1217
1201
|
delete p[k]
|
|
1218
1202
|
}
|
|
1219
1203
|
})
|
|
@@ -1229,7 +1213,7 @@ export var searchConfigData = function (data) {
|
|
|
1229
1213
|
return {}
|
|
1230
1214
|
}
|
|
1231
1215
|
}
|
|
1232
|
-
|
|
1216
|
+
|
|
1233
1217
|
// abcd=1&b=1&c=3;
|
|
1234
1218
|
// abdc=1;b=1;a=3;
|
|
1235
1219
|
export var stringSplice = function (src, k, e, sp) {
|
|
@@ -1255,7 +1239,6 @@ export function getStatusGroup(status) {
|
|
|
1255
1239
|
export var getReferrer = function () {
|
|
1256
1240
|
var ref = document.referrer.toLowerCase()
|
|
1257
1241
|
var re = /^[^\?&#]*.swf([\?#])?/
|
|
1258
|
-
// 如果页面 Referer 为空,从 URL 中获取
|
|
1259
1242
|
if (ref === '' || ref.match(re)) {
|
|
1260
1243
|
ref = stringSplice(window.location.href, 'ref', '&', '')
|
|
1261
1244
|
if (ref !== '') {
|
package/src/index.js
CHANGED
|
@@ -45,7 +45,8 @@ export {
|
|
|
45
45
|
} from './session/sessionManagement'
|
|
46
46
|
export {
|
|
47
47
|
SESSION_TIME_OUT_DELAY,
|
|
48
|
-
SESSION_STORE_KEY
|
|
48
|
+
SESSION_STORE_KEY,
|
|
49
|
+
SessionPersistence
|
|
49
50
|
} from './session/sessionConstants'
|
|
50
51
|
export { STORAGE_POLL_DELAY } from './session/sessionStore'
|
|
51
52
|
export * from './transport'
|
|
@@ -2,3 +2,7 @@ import { ONE_HOUR, ONE_MINUTE } from '../helper/tools'
|
|
|
2
2
|
export var SESSION_TIME_OUT_DELAY = 4 * ONE_HOUR
|
|
3
3
|
export var SESSION_EXPIRATION_DELAY = 15 * ONE_MINUTE
|
|
4
4
|
export var SESSION_STORE_KEY = '_gc_s'
|
|
5
|
+
export const SessionPersistence = {
|
|
6
|
+
COOKIE: 'cookie',
|
|
7
|
+
LOCAL_STORAGE: 'local-storage'
|
|
8
|
+
}
|
|
@@ -8,7 +8,8 @@ import {
|
|
|
8
8
|
import {
|
|
9
9
|
SESSION_EXPIRATION_DELAY,
|
|
10
10
|
SESSION_TIME_OUT_DELAY,
|
|
11
|
-
SESSION_STORE_KEY
|
|
11
|
+
SESSION_STORE_KEY,
|
|
12
|
+
SessionPersistence
|
|
12
13
|
} from './sessionConstants'
|
|
13
14
|
import {
|
|
14
15
|
toSessionString,
|
|
@@ -19,7 +20,7 @@ import {
|
|
|
19
20
|
export function selectCookieStrategy(initConfiguration) {
|
|
20
21
|
const cookieOptions = buildCookieOptions(initConfiguration)
|
|
21
22
|
return areCookiesAuthorized(cookieOptions)
|
|
22
|
-
? { type:
|
|
23
|
+
? { type: SessionPersistence.COOKIE, cookieOptions }
|
|
23
24
|
: undefined
|
|
24
25
|
}
|
|
25
26
|
|
|
@@ -5,7 +5,7 @@ import {
|
|
|
5
5
|
getExpiredSessionState
|
|
6
6
|
} from './sessionState'
|
|
7
7
|
|
|
8
|
-
import { SESSION_STORE_KEY } from './sessionConstants'
|
|
8
|
+
import { SESSION_STORE_KEY, SessionPersistence } from './sessionConstants'
|
|
9
9
|
|
|
10
10
|
const LOCAL_STORAGE_TEST_KEY = '_gc_test_'
|
|
11
11
|
|
|
@@ -16,7 +16,9 @@ export function selectLocalStorageStrategy() {
|
|
|
16
16
|
localStorage.setItem(testKey, id)
|
|
17
17
|
const retrievedId = localStorage.getItem(testKey)
|
|
18
18
|
localStorage.removeItem(testKey)
|
|
19
|
-
return id === retrievedId
|
|
19
|
+
return id === retrievedId
|
|
20
|
+
? { type: SessionPersistence.LOCAL_STORAGE }
|
|
21
|
+
: undefined
|
|
20
22
|
} catch (e) {
|
|
21
23
|
return undefined
|
|
22
24
|
}
|