@cloudcare/browser-core 3.1.13 → 3.1.15

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":"sessionManagement.js","names":["relativeNow","clocksOrigin","ONE_MINUTE","each","addEventListeners","addEventListener","ContextHistory","startSessionStore","SESSION_TIME_OUT_DELAY","DOM_EVENT","clearInterval","setInterval","Observable","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","stopCallbacks","startSessionManager","options","productKey","computeSessionState","renewObservable","expireObservable","sessionStore","push","stop","sessionContextHistory","subscribe","add","buildSessionContext","notify","closeActive","expandOrRenewSession","relative","trackActivity","trackVisibility","expandSession","id","getSession","trackingType","findActiveSession","startTime","find","expire","stopSessionManager","e","_addEventListeners","window","CLICK","TOUCH_START","KEY_DOWN","SCROLL","capture","passive","expandSessionWhenVisible","document","visibilityState","_addEventListener","VISIBILITY_CHANGE","visibilityCheckInterval"],"sources":["../../src/session/sessionManagement.js"],"sourcesContent":["import { relativeNow, clocksOrigin, ONE_MINUTE, each } from '../helper/tools'\nimport {\n addEventListeners,\n addEventListener\n} from '../browser/addEventListener'\nimport { ContextHistory } from '../helper/contextHistory'\nimport { startSessionStore } from './sessionStore'\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants'\nimport { DOM_EVENT } from '../helper/enums'\nimport { clearInterval, setInterval } from '../helper/timer'\nimport { Observable } from '../helper/observable'\nexport var VISIBILITY_CHECK_DELAY = ONE_MINUTE\nvar SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY\nvar stopCallbacks = []\n\nexport var startSessionManager = function (\n options,\n productKey,\n computeSessionState\n) {\n var renewObservable = new Observable()\n var expireObservable = new Observable()\n var sessionStore = startSessionStore(options, productKey, computeSessionState)\n stopCallbacks.push(function () {\n return sessionStore.stop()\n })\n\n var sessionContextHistory = new ContextHistory(SESSION_CONTEXT_TIMEOUT_DELAY)\n stopCallbacks.push(function () {\n return sessionContextHistory.stop()\n })\n\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow())\n renewObservable.notify()\n })\n sessionStore.expireObservable.subscribe(function () {\n expireObservable.notify()\n sessionContextHistory.closeActive(relativeNow())\n })\n\n sessionStore.expandOrRenewSession()\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative)\n\n trackActivity(function () {\n return sessionStore.expandOrRenewSession()\n })\n trackVisibility(function () {\n return sessionStore.expandSession()\n })\n\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey]\n }\n }\n\n return {\n findActiveSession: function (startTime) {\n return sessionContextHistory.find(startTime)\n },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: sessionStore.expire\n }\n}\n\nexport function stopSessionManager() {\n each(stopCallbacks, function (e) {\n return e()\n })\n stopCallbacks = []\n}\n\nfunction trackActivity(expandOrRenewSession) {\n var _addEventListeners = addEventListeners(\n window,\n [\n DOM_EVENT.CLICK,\n DOM_EVENT.TOUCH_START,\n DOM_EVENT.KEY_DOWN,\n DOM_EVENT.SCROLL\n ],\n expandOrRenewSession,\n { capture: true, passive: true }\n )\n stopCallbacks.push(_addEventListeners.stop)\n}\n\nfunction trackVisibility(expandSession) {\n var expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession()\n }\n }\n var _addEventListener = addEventListener(\n document,\n DOM_EVENT.VISIBILITY_CHANGE,\n expandSessionWhenVisible\n )\n stopCallbacks.push(_addEventListener.stop)\n\n var visibilityCheckInterval = setInterval(\n expandSessionWhenVisible,\n VISIBILITY_CHECK_DELAY\n )\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval)\n })\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"sessionManagement.js","names":["relativeNow","clocksOrigin","ONE_MINUTE","each","addEventListeners","addEventListener","ContextHistory","startSessionStore","SESSION_TIME_OUT_DELAY","DOM_EVENT","clearInterval","setInterval","Observable","VISIBILITY_CHECK_DELAY","SESSION_CONTEXT_TIMEOUT_DELAY","stopCallbacks","startSessionManager","options","productKey","computeSessionState","renewObservable","expireObservable","sessionStore","push","stop","sessionContextHistory","subscribe","add","buildSessionContext","notify","closeActive","expandOrRenewSession","relative","trackActivity","trackVisibility","expandSession","id","getSession","trackingType","findActiveSession","startTime","find","expire","stopSessionManager","e","_addEventListeners","window","CLICK","TOUCH_START","KEY_DOWN","SCROLL","capture","passive","expandSessionWhenVisible","document","visibilityState","_addEventListener","VISIBILITY_CHANGE","visibilityCheckInterval","trackResume","cb","RESUME"],"sources":["../../src/session/sessionManagement.js"],"sourcesContent":["import { relativeNow, clocksOrigin, ONE_MINUTE, each } from '../helper/tools'\nimport {\n addEventListeners,\n addEventListener\n} from '../browser/addEventListener'\nimport { ContextHistory } from '../helper/contextHistory'\nimport { startSessionStore } from './sessionStore'\nimport { SESSION_TIME_OUT_DELAY } from './sessionConstants'\nimport { DOM_EVENT } from '../helper/enums'\nimport { clearInterval, setInterval } from '../helper/timer'\nimport { Observable } from '../helper/observable'\nexport var VISIBILITY_CHECK_DELAY = ONE_MINUTE\nvar SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY\nvar stopCallbacks = []\n\nexport var startSessionManager = function (\n options,\n productKey,\n computeSessionState\n) {\n var renewObservable = new Observable()\n var expireObservable = new Observable()\n var sessionStore = startSessionStore(options, productKey, computeSessionState)\n stopCallbacks.push(function () {\n return sessionStore.stop()\n })\n\n var sessionContextHistory = new ContextHistory(SESSION_CONTEXT_TIMEOUT_DELAY)\n stopCallbacks.push(function () {\n return sessionContextHistory.stop()\n })\n\n sessionStore.renewObservable.subscribe(function () {\n sessionContextHistory.add(buildSessionContext(), relativeNow())\n renewObservable.notify()\n })\n sessionStore.expireObservable.subscribe(function () {\n expireObservable.notify()\n sessionContextHistory.closeActive(relativeNow())\n })\n\n sessionStore.expandOrRenewSession()\n sessionContextHistory.add(buildSessionContext(), clocksOrigin().relative)\n\n trackActivity(function () {\n return sessionStore.expandOrRenewSession()\n })\n trackVisibility(function () {\n return sessionStore.expandSession()\n })\n // trackResume(function () {\n // return sessionStore.expandSession()\n // })\n\n function buildSessionContext() {\n return {\n id: sessionStore.getSession().id,\n trackingType: sessionStore.getSession()[productKey]\n }\n }\n\n return {\n findActiveSession: function (startTime) {\n return sessionContextHistory.find(startTime)\n },\n renewObservable: renewObservable,\n expireObservable: expireObservable,\n expire: sessionStore.expire\n }\n}\n\nexport function stopSessionManager() {\n each(stopCallbacks, function (e) {\n return e()\n })\n stopCallbacks = []\n}\n\nfunction trackActivity(expandOrRenewSession) {\n var _addEventListeners = addEventListeners(\n window,\n [\n DOM_EVENT.CLICK,\n DOM_EVENT.TOUCH_START,\n DOM_EVENT.KEY_DOWN,\n DOM_EVENT.SCROLL\n ],\n expandOrRenewSession,\n { capture: true, passive: true }\n )\n stopCallbacks.push(_addEventListeners.stop)\n}\n\nfunction trackVisibility(expandSession) {\n var expandSessionWhenVisible = function () {\n if (document.visibilityState === 'visible') {\n expandSession()\n }\n }\n var _addEventListener = addEventListener(\n document,\n DOM_EVENT.VISIBILITY_CHANGE,\n expandSessionWhenVisible\n )\n stopCallbacks.push(_addEventListener.stop)\n\n var visibilityCheckInterval = setInterval(\n expandSessionWhenVisible,\n VISIBILITY_CHECK_DELAY\n )\n stopCallbacks.push(function () {\n clearInterval(visibilityCheckInterval)\n })\n}\nfunction trackResume(cb) {\n var _addEventListener = addEventListener(window, DOM_EVENT.RESUME, cb, {\n capture: true\n })\n stopCallbacks.push(_addEventListener.stop)\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudcare/browser-core",
3
- "version": "3.1.13",
3
+ "version": "3.1.15",
4
4
  "main": "cjs/index.js",
5
5
  "module": "esm/index.js",
6
6
  "types": "types/index.d.ts",
@@ -22,5 +22,5 @@
22
22
  "author": "dataflux",
23
23
  "license": "MIT",
24
24
  "description": "DataFlux RUM Web 端数据指标监控",
25
- "gitHead": "f7180bcedb58d06418d937389efee132b995af2b"
25
+ "gitHead": "cb4832f8dad9c9ea3116cb5a0bd32a0ac2db67ff"
26
26
  }
package/src/dataMap.js CHANGED
@@ -6,6 +6,7 @@ export var commonTags = {
6
6
  env: 'env',
7
7
  service: 'service',
8
8
  version: 'version',
9
+ source: 'source',
9
10
  userid: 'user.id',
10
11
  user_email: 'user.email',
11
12
  user_name: 'user.name',
@@ -0,0 +1,20 @@
1
+ // ie11 supports WeakMap but not WeakSet
2
+ var PLACEHOLDER = 1
3
+ export function WeakSet(initialValues) {
4
+ this.map = new WeakMap()
5
+ if (initialValues) {
6
+ initialValues.forEach(function (value) {
7
+ this.map.set(value, PLACEHOLDER)
8
+ })
9
+ }
10
+ }
11
+ WeakSet.prototype.add = function (value) {
12
+ this.map.set(value, PLACEHOLDER)
13
+ return this
14
+ }
15
+ WeakSet.prototype.delete = function (value) {
16
+ return this.map.delete(value)
17
+ }
18
+ WeakSet.prototype.has = function (value) {
19
+ return this.map.has(value)
20
+ }
@@ -1747,3 +1747,7 @@ export function getPathFromHash(hash) {
1747
1747
  var index = hash.indexOf('?')
1748
1748
  return index < 0 ? hash : hash.slice(0, index)
1749
1749
  }
1750
+
1751
+ export function discardNegativeDuration(duration) {
1752
+ return isNumber(duration) && duration < 0 ? undefined : duration
1753
+ }
package/src/index.js CHANGED
@@ -49,5 +49,6 @@ export * from './helper/serialisation/jsonStringify'
49
49
  export * from './helper/serialisation/rowData'
50
50
  export * from './helper/serialisation/storedContextManager'
51
51
  export * from './user'
52
-
52
+ export * from './helper/polyfills'
53
53
  export * from './telemetry/telemetry'
54
+ export * from './helper/catchUserErrors'
@@ -48,6 +48,9 @@ export var startSessionManager = function (
48
48
  trackVisibility(function () {
49
49
  return sessionStore.expandSession()
50
50
  })
51
+ // trackResume(function () {
52
+ // return sessionStore.expandSession()
53
+ // })
51
54
 
52
55
  function buildSessionContext() {
53
56
  return {
@@ -109,3 +112,9 @@ function trackVisibility(expandSession) {
109
112
  clearInterval(visibilityCheckInterval)
110
113
  })
111
114
  }
115
+ function trackResume(cb) {
116
+ var _addEventListener = addEventListener(window, DOM_EVENT.RESUME, cb, {
117
+ capture: true
118
+ })
119
+ stopCallbacks.push(_addEventListener.stop)
120
+ }
package/types/index.d.ts CHANGED
@@ -22,11 +22,28 @@ export declare const RawReportType: {
22
22
  readonly cspViolation: 'csp_violation'
23
23
  }
24
24
  export type RawReportType = (typeof RawReportType)[keyof typeof RawReportType]
25
- export interface InitConfiguration {
25
+
26
+ export interface SiteInitConfiguration {
26
27
  /**
27
28
  * 以openway 方式上报数据令牌,从观测云控制台获取,必填
28
29
  */
29
- clientToken?: string | undefined
30
+ clientToken: string | undefined
31
+
32
+ /**
33
+ * 以 公共openway 方式上报数据地址,从观测云控制台获取,必填
34
+ */
35
+ site: string | undefined
36
+ }
37
+ export interface DatakitInitConfiguration {
38
+ /** DataKit 数据上报 Origin 注释:
39
+ * 协议(包括://),域名(或IP地址)[和端口号]
40
+ * 例如:
41
+ * https://www.datakit.com;
42
+ * http://100.20.34.3:8088。
43
+ */
44
+ datakitOrigin: string
45
+ }
46
+ export interface InitConfiguration {
30
47
  /**
31
48
  * 数据发送前的的拦截器
32
49
  * @param event 事件内容
@@ -40,17 +57,7 @@ export interface InitConfiguration {
40
57
  sessionSampleRate?: number | undefined
41
58
  telemetrySampleRate?: number | undefined
42
59
  silentMultipleInit?: boolean | undefined
43
- /**
44
- * 以 公共openway 方式上报数据地址,从观测云控制台获取,必填
45
- */
46
- site?: string | undefined
47
- /** DataKit 数据上报 Origin 注释:
48
- * 协议(包括://),域名(或IP地址)[和端口号]
49
- * 例如:
50
- * https://www.datakit.com;
51
- * http://100.20.34.3:8088。
52
- */
53
- datakitOrigin: string
60
+
54
61
  service?: string | undefined
55
62
  /** Web 应用当前环境,如 prod:线上环境;gray:灰度环境;pre:预发布环境;common:日常环境;local:本地环境。 */
56
63
  env?: string | undefined
@@ -112,7 +119,7 @@ export declare function matchList(
112
119
  useStartsWith?: boolean
113
120
  ): boolean
114
121
 
115
- export interface RumInitConfiguration extends InitConfiguration {
122
+ export interface RumBaseInitConfiguration extends InitConfiguration {
116
123
  /**从观测云创建的应用 ID */
117
124
  applicationId: string
118
125
  /**
@@ -136,7 +143,7 @@ export interface RumInitConfiguration extends InitConfiguration {
136
143
  */
137
144
  trackUserInteractions?: boolean | undefined
138
145
  /**
139
- * 指定 action 数据 name 获取方式,默认自动获取,可以指定元素特定属性名称
146
+ * 指定 action 数据 name 获取方式,默认自动获取,可以指定元素特定属性名称,alt,name,title,aria-labelledby,aria-label,data-guance-action-name 这些属性
140
147
  */
141
148
  actionNameAttribute?: string | undefined
142
149
  trackViewsManually?: boolean | undefined
@@ -148,4 +155,18 @@ export interface RumInitConfiguration extends InitConfiguration {
148
155
  * 是否以 128 字节的方式生成 traceID,与 traceType 对应,目前支持类型 zipkin、jaeger。
149
156
  */
150
157
  traceId128Bit?: boolean | undefined
158
+ /**
159
+ * Fetch/Xhr 拦截之后,往请求 header 添加额外 header-key,受 allowedTracingUrls 影响
160
+ * @param context 事件额外属性 { traceId:string; spanId:string; traceSampled: number}
161
+ * @returns 返回 key: value 对象, 请求添加的额外 key
162
+ */
163
+ injectTraceHeader?: (context?: {
164
+ traceId: string
165
+ spanId: string
166
+ traceSampled: number
167
+ }) => { [key: string]: string } | undefined
151
168
  }
169
+ export type RumInitConfiguration = RumBaseInitConfiguration &
170
+ DatakitInitConfiguration
171
+ export type RumSiteInitConfiguration = RumBaseInitConfiguration &
172
+ SiteInitConfiguration