@cloudcare/browser-core 3.1.7 → 3.1.8
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/fetchObservable.js +11 -3
- package/cjs/browser/fetchObservable.js.map +1 -1
- package/cjs/browser/pageExitObservable.js +1 -2
- package/cjs/browser/pageExitObservable.js.map +1 -1
- package/cjs/browser/xhrObservable.js +2 -3
- package/cjs/browser/xhrObservable.js.map +1 -1
- package/cjs/console/consoleObservable.js +1 -1
- package/cjs/console/consoleObservable.js.map +1 -1
- package/cjs/dataMap.js +4 -1
- package/cjs/dataMap.js.map +1 -1
- package/cjs/helper/observable.js +2 -3
- package/cjs/helper/observable.js.map +1 -1
- package/cjs/report/reportObservable.js +2 -2
- package/cjs/report/reportObservable.js.map +1 -1
- package/esm/browser/fetchObservable.js +11 -3
- package/esm/browser/fetchObservable.js.map +1 -1
- package/esm/browser/pageExitObservable.js +1 -2
- package/esm/browser/pageExitObservable.js.map +1 -1
- package/esm/browser/xhrObservable.js +2 -3
- package/esm/browser/xhrObservable.js.map +1 -1
- package/esm/console/consoleObservable.js +1 -1
- package/esm/console/consoleObservable.js.map +1 -1
- package/esm/dataMap.js +4 -1
- package/esm/dataMap.js.map +1 -1
- package/esm/helper/observable.js +2 -3
- package/esm/helper/observable.js.map +1 -1
- package/esm/report/reportObservable.js +2 -2
- package/esm/report/reportObservable.js.map +1 -1
- package/package.json +2 -2
- package/src/browser/fetchObservable.js +15 -4
- package/src/browser/pageExitObservable.js +1 -3
- package/src/browser/xhrObservable.js +2 -3
- package/src/console/consoleObservable.js +1 -1
- package/src/dataMap.js +4 -1
- package/src/helper/observable.js +2 -3
- package/src/report/reportObservable.js +2 -2
|
@@ -17,7 +17,7 @@ function initFetchObservable() {
|
|
|
17
17
|
return fetchObservable;
|
|
18
18
|
}
|
|
19
19
|
function createFetchObservable() {
|
|
20
|
-
|
|
20
|
+
return new _observable.Observable(function (observable) {
|
|
21
21
|
if (!window.fetch) {
|
|
22
22
|
return;
|
|
23
23
|
}
|
|
@@ -36,10 +36,18 @@ function createFetchObservable() {
|
|
|
36
36
|
});
|
|
37
37
|
return fetchMethod.stop;
|
|
38
38
|
});
|
|
39
|
-
return observable;
|
|
40
39
|
}
|
|
41
40
|
function beforeSend(observable, input, init) {
|
|
42
|
-
var method =
|
|
41
|
+
// var method =
|
|
42
|
+
// (init && init.method) || (input instanceof Request && input.method) || 'GET'
|
|
43
|
+
// const methodFromParams =
|
|
44
|
+
// (init && init.method) || (input instanceof Request && input.method)
|
|
45
|
+
// const method = methodFromParams ? methodFromParams.toUpperCase() : 'GET'
|
|
46
|
+
var methodFromParams = init && init.method;
|
|
47
|
+
if (methodFromParams === undefined && input instanceof Request) {
|
|
48
|
+
methodFromParams = input.method;
|
|
49
|
+
}
|
|
50
|
+
var method = methodFromParams !== undefined ? String(methodFromParams).toUpperCase() : 'GET';
|
|
43
51
|
var url = input instanceof Request ? input.url : (0, _urlPolyfill.normalizeUrl)(String(input));
|
|
44
52
|
var startClocks = (0, _tools.clocksNow)();
|
|
45
53
|
var context = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchObservable.js","names":["_instrumentMethod","require","_observable","_tools","_monitor","_urlPolyfill","fetchObservable","initFetchObservable","createFetchObservable","
|
|
1
|
+
{"version":3,"file":"fetchObservable.js","names":["_instrumentMethod","require","_observable","_tools","_monitor","_urlPolyfill","fetchObservable","initFetchObservable","createFetchObservable","Observable","observable","window","fetch","fetchMethod","instrumentMethod","originalFetch","input","init","responsePromise","context","callMonitored","beforeSend","call","afterSend","stop","methodFromParams","method","undefined","Request","String","toUpperCase","url","normalizeUrl","startClocks","clocksNow","state","notify","startContext","reportFetch","response","Error","status","isAborted","DOMException","code","ABORT_ERR","error","responseType","constructor","Response","type","err","then","monitor"],"sources":["../../src/browser/fetchObservable.js"],"sourcesContent":["import { instrumentMethod } from '../helper/instrumentMethod'\nimport { Observable } from '../helper/observable'\nimport { clocksNow } from '../helper/tools'\nimport { monitor, callMonitored } from '../helper/monitor'\nimport { normalizeUrl } from '../helper/urlPolyfill'\n\nvar fetchObservable\n\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable()\n }\n return fetchObservable\n}\n\nfunction createFetchObservable() {\n return new Observable(function (observable) {\n if (!window.fetch) {\n return\n }\n\n var fetchMethod = instrumentMethod(\n window,\n 'fetch',\n function (originalFetch) {\n return function (input, init) {\n var responsePromise\n var context = callMonitored(beforeSend, null, [\n observable,\n input,\n init\n ])\n if (context) {\n responsePromise = originalFetch.call(\n this,\n context.input,\n context.init\n )\n callMonitored(afterSend, null, [\n observable,\n responsePromise,\n context\n ])\n } else {\n responsePromise = originalFetch.call(this, input, init)\n }\n return responsePromise\n }\n }\n )\n return fetchMethod.stop\n })\n}\n\nfunction beforeSend(observable, input, init) {\n // var method =\n // (init && init.method) || (input instanceof Request && input.method) || 'GET'\n // const methodFromParams =\n // (init && init.method) || (input instanceof Request && input.method)\n // const method = methodFromParams ? methodFromParams.toUpperCase() : 'GET'\n var methodFromParams = init && init.method\n\n if (methodFromParams === undefined && input instanceof Request) {\n methodFromParams = input.method\n }\n\n var method =\n methodFromParams !== undefined\n ? String(methodFromParams).toUpperCase()\n : 'GET'\n var url = input instanceof Request ? input.url : normalizeUrl(String(input))\n\n var startClocks = clocksNow()\n\n var context = {\n state: 'start',\n init: init,\n input: input,\n method: method,\n startClocks: startClocks,\n url: url\n }\n\n observable.notify(context)\n\n return context\n}\n\nfunction afterSend(observable, responsePromise, startContext) {\n var reportFetch = function (response) {\n var context = startContext\n context.state = 'resolve'\n // context.duration = elapsed(context.startClocks.timeStamp, timeStampNow())\n if ('stack' in response || response instanceof Error) {\n context.status = 0\n context.isAborted =\n response instanceof DOMException &&\n response.code === DOMException.ABORT_ERR\n context.error = response\n } else if ('status' in response) {\n context.response = response\n try {\n context.responseType =\n (response.constructor === Response && response.type) || '' // issue The Response type getter can only be used on instances of Response\n } catch (err) {\n context.responseType = ''\n }\n\n context.status = response.status\n context.isAborted = false\n }\n observable.notify(context)\n }\n responsePromise.then(monitor(reportFetch), monitor(reportFetch))\n}\n"],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ var PageExitReason = {
|
|
|
18
18
|
};
|
|
19
19
|
exports.PageExitReason = PageExitReason;
|
|
20
20
|
function createPageExitObservable() {
|
|
21
|
-
|
|
21
|
+
return new _observable.Observable(function (observable) {
|
|
22
22
|
/**
|
|
23
23
|
* Only event that guarantee to fire on mobile devices when the page transitions to background state
|
|
24
24
|
* (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.
|
|
@@ -60,7 +60,6 @@ function createPageExitObservable() {
|
|
|
60
60
|
beforeUnloadListener.stop();
|
|
61
61
|
};
|
|
62
62
|
});
|
|
63
|
-
return observable;
|
|
64
63
|
}
|
|
65
64
|
function isPageExitReason(reason) {
|
|
66
65
|
return (0, _tools.includes)((0, _tools.values)(PageExitReason), reason);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pageExitObservable.js","names":["_observable","require","_tools","_enums","_addEventListener","PageExitReason","HIDDEN","UNLOADING","PAGEHIDE","FROZEN","exports","createPageExitObservable","
|
|
1
|
+
{"version":3,"file":"pageExitObservable.js","names":["_observable","require","_tools","_enums","_addEventListener","PageExitReason","HIDDEN","UNLOADING","PAGEHIDE","FROZEN","exports","createPageExitObservable","Observable","observable","visibilityChangeListener","addEventListeners","document","DOM_EVENT","VISIBILITY_CHANGE","FREEZE","PAGE_HIDE","event","type","visibilityState","notify","reason","capture","beforeUnloadListener","addEventListener","window","BEFORE_UNLOAD","stop","isPageExitReason","includes","values"],"sources":["../../src/browser/pageExitObservable.js"],"sourcesContent":["import { Observable } from '../helper/observable'\nimport { includes, values } from '../helper/tools'\nimport { DOM_EVENT } from '../helper/enums'\nimport {\n addEventListener,\n addEventListeners\n} from '../browser/addEventListener'\nexport var PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen'\n}\n\nexport function createPageExitObservable() {\n return new Observable(function (observable) {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n var visibilityChangeListener = addEventListeners(\n document,\n [DOM_EVENT.VISIBILITY_CHANGE, DOM_EVENT.FREEZE, DOM_EVENT.PAGE_HIDE],\n function (event) {\n if (\n event.type === DOM_EVENT.VISIBILITY_CHANGE &&\n document.visibilityState === 'hidden'\n ) {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN })\n } else if (event.type === DOM_EVENT.FREEZE) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN })\n }\n },\n { capture: true }\n )\n\n /**\n * Safari does not support yet to send a request during:\n * - a visibility change during doc unload (cf: https://bugs.webkit.org/show_bug.cgi?id=194897)\n * - a page hide transition (cf: https://bugs.webkit.org/show_bug.cgi?id=188329)\n */\n var beforeUnloadListener = addEventListener(\n window,\n DOM_EVENT.BEFORE_UNLOAD,\n function () {\n observable.notify({ reason: PageExitReason.UNLOADING })\n }\n )\n\n return function () {\n visibilityChangeListener.stop()\n beforeUnloadListener.stop()\n }\n })\n}\n\nexport function isPageExitReason(reason) {\n return includes(values(PageExitReason), reason)\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AACA,IAAAE,MAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AAIO,IAAII,cAAc,GAAG;EAC1BC,MAAM,EAAE,mBAAmB;EAC3BC,SAAS,EAAE,eAAe;EAC1BC,QAAQ,EAAE,WAAW;EACrBC,MAAM,EAAE;AACV,CAAC;AAAAC,OAAA,CAAAL,cAAA,GAAAA,cAAA;AAEM,SAASM,wBAAwBA,CAAA,EAAG;EACzC,OAAO,IAAIC,sBAAU,CAAC,UAAUC,UAAU,EAAE;IAC1C;AACJ;AACA;AACA;IACI,IAAIC,wBAAwB,GAAG,IAAAC,mCAAiB,EAC9CC,QAAQ,EACR,CAACC,gBAAS,CAACC,iBAAiB,EAAED,gBAAS,CAACE,MAAM,EAAEF,gBAAS,CAACG,SAAS,CAAC,EACpE,UAAUC,KAAK,EAAE;MACf,IACEA,KAAK,CAACC,IAAI,KAAKL,gBAAS,CAACC,iBAAiB,IAC1CF,QAAQ,CAACO,eAAe,KAAK,QAAQ,EACrC;QACA;AACV;AACA;AACA;QACUV,UAAU,CAACW,MAAM,CAAC;UAAEC,MAAM,EAAEpB,cAAc,CAACC;QAAO,CAAC,CAAC;MACtD,CAAC,MAAM,IAAIe,KAAK,CAACC,IAAI,KAAKL,gBAAS,CAACE,MAAM,EAAE;QAC1C;AACV;AACA;AACA;QACUN,UAAU,CAACW,MAAM,CAAC;UAAEC,MAAM,EAAEpB,cAAc,CAACI;QAAO,CAAC,CAAC;MACtD;IACF,CAAC,EACD;MAAEiB,OAAO,EAAE;IAAK,CAClB,CAAC;;IAED;AACJ;AACA;AACA;AACA;IACI,IAAIC,oBAAoB,GAAG,IAAAC,kCAAgB,EACzCC,MAAM,EACNZ,gBAAS,CAACa,aAAa,EACvB,YAAY;MACVjB,UAAU,CAACW,MAAM,CAAC;QAAEC,MAAM,EAAEpB,cAAc,CAACE;MAAU,CAAC,CAAC;IACzD,CACF,CAAC;IAED,OAAO,YAAY;MACjBO,wBAAwB,CAACiB,IAAI,CAAC,CAAC;MAC/BJ,oBAAoB,CAACI,IAAI,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,CAAC;AACJ;AAEO,SAASC,gBAAgBA,CAACP,MAAM,EAAE;EACvC,OAAO,IAAAQ,eAAQ,EAAC,IAAAC,aAAM,EAAC7B,cAAc,CAAC,EAAEoB,MAAM,CAAC;AACjD"}
|
|
@@ -19,7 +19,7 @@ function initXhrObservable() {
|
|
|
19
19
|
return xhrObservable;
|
|
20
20
|
}
|
|
21
21
|
function createXhrObservable() {
|
|
22
|
-
|
|
22
|
+
return new _observable.Observable(function (observable) {
|
|
23
23
|
var openInstrumentMethod = (0, _instrumentMethod.instrumentMethodAndCallOriginal)(XMLHttpRequest.prototype, 'open', {
|
|
24
24
|
before: openXhr
|
|
25
25
|
});
|
|
@@ -37,14 +37,13 @@ function createXhrObservable() {
|
|
|
37
37
|
abortInstrumentMethod.stop();
|
|
38
38
|
};
|
|
39
39
|
});
|
|
40
|
-
return observable;
|
|
41
40
|
}
|
|
42
41
|
function openXhr(method, url) {
|
|
43
42
|
var requestUUID = this[DATA_FLUX_REQUEST_ID_KEY] || (0, _tools.UUID)();
|
|
44
43
|
this[DATA_FLUX_REQUEST_ID_KEY] = requestUUID;
|
|
45
44
|
xhrContexts[requestUUID] = {
|
|
46
45
|
state: 'open',
|
|
47
|
-
method: method,
|
|
46
|
+
method: String(method).toUpperCase(),
|
|
48
47
|
url: (0, _urlPolyfill.normalizeUrl)(String(url))
|
|
49
48
|
};
|
|
50
49
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xhrObservable.js","names":["_instrumentMethod","require","_observable","_urlPolyfill","_tools","_addEventListener","xhrObservable","xhrContexts","DATA_FLUX_REQUEST_ID_KEY","initXhrObservable","createXhrObservable","
|
|
1
|
+
{"version":3,"file":"xhrObservable.js","names":["_instrumentMethod","require","_observable","_urlPolyfill","_tools","_addEventListener","xhrObservable","xhrContexts","DATA_FLUX_REQUEST_ID_KEY","initXhrObservable","createXhrObservable","Observable","observable","openInstrumentMethod","instrumentMethodAndCallOriginal","XMLHttpRequest","prototype","before","openXhr","sendInstrumentMethod","sendXhr","call","abortInstrumentMethod","abortXhr","stop","method","url","requestUUID","UUID","state","String","toUpperCase","normalizeUrl","context","startContext","startTime","relativeNow","startClocks","clocksNow","isAborted","xhr","hasBeenReported","stopInstrumentingOnReadyStateChange","readyState","DONE","onEnd","unsubscribeLoadEndListener","completeContext","duration","elapsed","timeStamp","timeStampNow","status","notify","shallowClone","clearRequestId","addEventListener"],"sources":["../../src/browser/xhrObservable.js"],"sourcesContent":["import { instrumentMethodAndCallOriginal } from '../helper/instrumentMethod'\nimport { Observable } from '../helper/observable'\nimport { normalizeUrl } from '../helper/urlPolyfill'\nimport {\n shallowClone,\n elapsed,\n relativeNow,\n clocksNow,\n timeStampNow,\n UUID\n} from '../helper/tools'\nimport { addEventListener } from '../browser/addEventListener'\nvar xhrObservable\nvar xhrContexts = {}\nvar DATA_FLUX_REQUEST_ID_KEY = '_DATAFLUX_REQUEST_UUID'\nexport function initXhrObservable() {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable()\n }\n return xhrObservable\n}\n\nfunction createXhrObservable() {\n return new Observable(function (observable) {\n var openInstrumentMethod = instrumentMethodAndCallOriginal(\n XMLHttpRequest.prototype,\n 'open',\n {\n before: openXhr\n }\n )\n\n var sendInstrumentMethod = instrumentMethodAndCallOriginal(\n XMLHttpRequest.prototype,\n 'send',\n {\n before: function () {\n sendXhr.call(this, observable)\n }\n }\n )\n\n var abortInstrumentMethod = instrumentMethodAndCallOriginal(\n XMLHttpRequest.prototype,\n 'abort',\n {\n before: abortXhr\n }\n )\n\n return function () {\n openInstrumentMethod.stop()\n sendInstrumentMethod.stop()\n abortInstrumentMethod.stop()\n }\n })\n}\n\nfunction openXhr(method, url) {\n var requestUUID = this[DATA_FLUX_REQUEST_ID_KEY] || UUID()\n this[DATA_FLUX_REQUEST_ID_KEY] = requestUUID\n xhrContexts[requestUUID] = {\n state: 'open',\n method: String(method).toUpperCase(),\n url: normalizeUrl(String(url))\n }\n}\n\nfunction sendXhr(observable) {\n var context = xhrContexts[this[DATA_FLUX_REQUEST_ID_KEY]]\n if (!context) {\n return\n }\n var startContext = context\n startContext.state = 'start'\n startContext.startTime = relativeNow()\n startContext.startClocks = clocksNow()\n startContext.isAborted = false\n startContext.xhr = this\n var hasBeenReported = false\n var stopInstrumentingOnReadyStateChange = instrumentMethodAndCallOriginal(\n this,\n 'onreadystatechange',\n {\n before: function () {\n if (this.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during a onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd.call(this)\n }\n }\n }\n ).stop\n\n var onEnd = function () {\n unsubscribeLoadEndListener()\n stopInstrumentingOnReadyStateChange()\n if (hasBeenReported) {\n return\n }\n hasBeenReported = true\n var completeContext = context\n completeContext.state = 'complete'\n completeContext.duration = elapsed(\n startContext.startClocks.timeStamp,\n timeStampNow()\n )\n completeContext.status = this.status\n observable.notify(shallowClone(completeContext))\n clearRequestId.call(this)\n }\n var unsubscribeLoadEndListener = addEventListener(this, 'loadend', onEnd).stop\n observable.notify(startContext)\n}\nfunction clearRequestId() {\n delete xhrContexts[this[DATA_FLUX_REQUEST_ID_KEY]]\n delete this[DATA_FLUX_REQUEST_ID_KEY]\n}\nfunction abortXhr() {\n var context = xhrContexts[this[DATA_FLUX_REQUEST_ID_KEY]]\n if (context) {\n context.isAborted = true\n }\n}\n"],"mappings":"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"}
|
|
@@ -24,7 +24,7 @@ function initConsoleObservable(apis) {
|
|
|
24
24
|
|
|
25
25
|
/* eslint-disable no-console */
|
|
26
26
|
function createConsoleObservable(api) {
|
|
27
|
-
|
|
27
|
+
return new _observable.Observable(function (observable) {
|
|
28
28
|
var originalConsoleApi = console[api];
|
|
29
29
|
console[api] = function () {
|
|
30
30
|
var params = [].slice.call(arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleObservable.js","names":["_tracekit","require","_errorTools","_observable","_tools","_jsonStringify","_display","_monitor","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","map","api","createConsoleObservable","mergeObservables","apply","
|
|
1
|
+
{"version":3,"file":"consoleObservable.js","names":["_tracekit","require","_errorTools","_observable","_tools","_jsonStringify","_display","_monitor","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","map","api","createConsoleObservable","mergeObservables","apply","Observable","observable","originalConsoleApi","console","params","slice","call","arguments","handlingStack","createHandlingStack","callMonitored","notify","buildConsoleLog","message","param","formatConsoleParameters","join","stack","ConsoleApiName","error","firstErrorParam","find","Error","toStackTraceString","computeStackTrace","undefined","formatErrorMessage","jsonStringify"],"sources":["../../src/console/consoleObservable.js"],"sourcesContent":["import { computeStackTrace } from '../tracekit'\nimport {\n createHandlingStack,\n formatErrorMessage,\n toStackTraceString\n} from '../helper/errorTools'\nimport { mergeObservables, Observable } from '../helper/observable'\nimport { find, map } from '../helper/tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { ConsoleApiName } from '../helper/display'\nimport { callMonitored } from '../helper/monitor'\nvar consoleObservablesByApi = {}\n\nexport function initConsoleObservable(apis) {\n var consoleObservables = map(apis, function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api)\n }\n return consoleObservablesByApi[api]\n })\n\n return mergeObservables.apply(this, consoleObservables)\n}\n\n/* eslint-disable no-console */\nfunction createConsoleObservable(api) {\n return new Observable(function (observable) {\n var originalConsoleApi = console[api]\n console[api] = function () {\n var params = [].slice.call(arguments)\n originalConsoleApi.apply(console, arguments)\n var handlingStack = createHandlingStack()\n callMonitored(function () {\n observable.notify(buildConsoleLog(params, api, handlingStack))\n })\n }\n return function () {\n console[api] = originalConsoleApi\n }\n })\n return observable\n}\n\nfunction buildConsoleLog(params, api, handlingStack) {\n // Todo: remove console error prefix in the next major version\n var message = map(params, function (param) {\n return formatConsoleParameters(param)\n }).join(' ')\n var stack\n\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, function (param) {\n return param instanceof Error\n })\n stack = firstErrorParam\n ? toStackTraceString(computeStackTrace(firstErrorParam))\n : undefined\n message = 'console error: ' + message\n }\n\n return {\n api: api,\n message: message,\n stack: stack,\n handlingStack: handlingStack\n }\n}\n\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return param\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param))\n }\n return jsonStringify(param, undefined, 2)\n}\n"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAKA,IAAAE,WAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAIO,uBAAuB,GAAG,CAAC,CAAC;AAEzB,SAASC,qBAAqBA,CAACC,IAAI,EAAE;EAC1C,IAAIC,kBAAkB,GAAG,IAAAC,UAAG,EAACF,IAAI,EAAE,UAAUG,GAAG,EAAE;IAChD,IAAI,CAACL,uBAAuB,CAACK,GAAG,CAAC,EAAE;MACjCL,uBAAuB,CAACK,GAAG,CAAC,GAAGC,uBAAuB,CAACD,GAAG,CAAC;IAC7D;IACA,OAAOL,uBAAuB,CAACK,GAAG,CAAC;EACrC,CAAC,CAAC;EAEF,OAAOE,4BAAgB,CAACC,KAAK,CAAC,IAAI,EAAEL,kBAAkB,CAAC;AACzD;;AAEA;AACA,SAASG,uBAAuBA,CAACD,GAAG,EAAE;EACpC,OAAO,IAAII,sBAAU,CAAC,UAAUC,UAAU,EAAE;IAC1C,IAAIC,kBAAkB,GAAGC,OAAO,CAACP,GAAG,CAAC;IACrCO,OAAO,CAACP,GAAG,CAAC,GAAG,YAAY;MACzB,IAAIQ,MAAM,GAAG,EAAE,CAACC,KAAK,CAACC,IAAI,CAACC,SAAS,CAAC;MACrCL,kBAAkB,CAACH,KAAK,CAACI,OAAO,EAAEI,SAAS,CAAC;MAC5C,IAAIC,aAAa,GAAG,IAAAC,+BAAmB,EAAC,CAAC;MACzC,IAAAC,sBAAa,EAAC,YAAY;QACxBT,UAAU,CAACU,MAAM,CAACC,eAAe,CAACR,MAAM,EAAER,GAAG,EAAEY,aAAa,CAAC,CAAC;MAChE,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,YAAY;MACjBL,OAAO,CAACP,GAAG,CAAC,GAAGM,kBAAkB;IACnC,CAAC;EACH,CAAC,CAAC;EACF,OAAOD,UAAU;AACnB;AAEA,SAASW,eAAeA,CAACR,MAAM,EAAER,GAAG,EAAEY,aAAa,EAAE;EACnD;EACA,IAAIK,OAAO,GAAG,IAAAlB,UAAG,EAACS,MAAM,EAAE,UAAUU,KAAK,EAAE;IACzC,OAAOC,uBAAuB,CAACD,KAAK,CAAC;EACvC,CAAC,CAAC,CAACE,IAAI,CAAC,GAAG,CAAC;EACZ,IAAIC,KAAK;EAET,IAAIrB,GAAG,KAAKsB,uBAAc,CAACC,KAAK,EAAE;IAChC,IAAIC,eAAe,GAAG,IAAAC,WAAI,EAACjB,MAAM,EAAE,UAAUU,KAAK,EAAE;MAClD,OAAOA,KAAK,YAAYQ,KAAK;IAC/B,CAAC,CAAC;IACFL,KAAK,GAAGG,eAAe,GACnB,IAAAG,8BAAkB,EAAC,IAAAC,2BAAiB,EAACJ,eAAe,CAAC,CAAC,GACtDK,SAAS;IACbZ,OAAO,GAAG,iBAAiB,GAAGA,OAAO;EACvC;EAEA,OAAO;IACLjB,GAAG,EAAEA,GAAG;IACRiB,OAAO,EAAEA,OAAO;IAChBI,KAAK,EAAEA,KAAK;IACZT,aAAa,EAAEA;EACjB,CAAC;AACH;AAEA,SAASO,uBAAuBA,CAACD,KAAK,EAAE;EACtC,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC7B,OAAOA,KAAK;EACd;EACA,IAAIA,KAAK,YAAYQ,KAAK,EAAE;IAC1B,OAAO,IAAAI,8BAAkB,EAAC,IAAAF,2BAAiB,EAACV,KAAK,CAAC,CAAC;EACrD;EACA,OAAO,IAAAa,4BAAa,EAACb,KAAK,EAAEW,SAAS,EAAE,CAAC,CAAC;AAC3C"}
|
package/cjs/dataMap.js
CHANGED
|
@@ -46,7 +46,9 @@ var commonFields = {
|
|
|
46
46
|
display: 'display',
|
|
47
47
|
session_has_replay: 'session.has_replay',
|
|
48
48
|
is_login: 'user.is_login',
|
|
49
|
-
page_states: '_gc.page_states'
|
|
49
|
+
page_states: '_gc.page_states',
|
|
50
|
+
session_sample_rate: '_gc.configuration.session_sample_rate',
|
|
51
|
+
session_replay_sample_rate: '_gc.configuration.session_replay_sample_rate'
|
|
50
52
|
};
|
|
51
53
|
// 需要用双引号将字符串类型的field value括起来, 这里有数组标示[string, path]
|
|
52
54
|
exports.commonFields = commonFields;
|
|
@@ -59,6 +61,7 @@ var dataMap = {
|
|
|
59
61
|
view_privacy_replay_level: 'privacy.replay_level'
|
|
60
62
|
},
|
|
61
63
|
fields: {
|
|
64
|
+
sampled_for_replay: 'session.sampled_for_replay',
|
|
62
65
|
is_active: 'view.is_active',
|
|
63
66
|
session_replay_stats: '_gc.replay_stats',
|
|
64
67
|
session_is_active: 'session.is_active',
|
package/cjs/dataMap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataMap.js","names":["_enums","require","commonTags","sdk_name","sdk_version","app_id","env","service","version","userid","user_email","user_name","session_id","session_type","session_sampling","is_signin","os","os_version","os_version_major","browser","browser_version","browser_version_major","screen_size","network_type","device","view_id","view_referrer","view_url","view_host","view_path","view_name","view_path_group","exports","commonFields","view_url_query","action_id","action_ids","view_in_foreground","display","session_has_replay","is_login","page_states","dataMap","view","type","RumEventType","VIEW","tags","view_loading_type","view_apdex_level","view_privacy_replay_level","fields","is_active","session_replay_stats","session_is_active","view_error_count","view_resource_count","view_long_task_count","view_action_count","first_contentful_paint","largest_contentful_paint","largest_contentful_paint_element_selector","cumulative_layout_shift","cumulative_layout_shift_target_selector","first_input_delay","loading_time","dom_interactive","dom_content_loaded","dom_complete","load_event","first_input_time","first_input_target_selector","first_paint_time","interaction_to_next_paint","interaction_to_next_paint_target_selector","resource_load_time","time_to_interactive","dom","dom_ready","time_spent","first_byte","frustration_count","custom_timings","resource","RESOURCE","trace_id","span_id","resource_url","resource_url_host","resource_url_path","resource_url_path_group","resource_url_query","resource_type","resource_status","resource_status_group","resource_method","duration","resource_size","resource_encode_size","resource_render_blocking_status","resource_dns","resource_tcp","resource_ssl","resource_ttfb","resource_trans","resource_redirect","resource_first_byte","resource_dns_time","resource_download_time","resource_first_byte_time","resource_connect_time","resource_ssl_time","resource_redirect_time","error","ERROR","error_id","error_source","error_type","error_handling","error_message","error_stack","error_causes","long_task","LONG_TASK","long_task_id","action","ACTION","action_type","action_name","action_error_count","action_resource_count","action_frustration_types","action_long_task_count","action_target","action_position","telemetry","status","message","error_kind","browser_log","LOGGER","error_resource_url","error_resource_url_host","error_resource_url_path","error_resource_url_path_group","error_resource_status","error_resource_status_group","error_resource_method"],"sources":["../src/dataMap.js"],"sourcesContent":["import { RumEventType } from './helper/enums'\nexport var commonTags = {\n sdk_name: '_gc.sdk_name',\n sdk_version: '_gc.sdk_version',\n app_id: 'application.id',\n env: 'env',\n service: 'service',\n version: 'version',\n userid: 'user.id',\n user_email: 'user.email',\n user_name: 'user.name',\n session_id: 'session.id',\n session_type: 'session.type',\n session_sampling: 'session.is_sampling',\n is_signin: 'user.is_signin',\n os: 'device.os',\n os_version: 'device.os_version',\n os_version_major: 'device.os_version_major',\n browser: 'device.browser',\n browser_version: 'device.browser_version',\n browser_version_major: 'device.browser_version_major',\n screen_size: 'device.screen_size',\n network_type: 'device.network_type',\n device: 'device.device',\n view_id: 'view.id',\n view_referrer: 'view.referrer',\n view_url: 'view.url',\n view_host: 'view.host',\n view_path: 'view.path',\n view_name: 'view.path', // 冗余一个字段\n view_path_group: 'view.path_group'\n}\nexport var commonFields = {\n view_url_query: 'view.url_query',\n action_id: 'action.id',\n action_ids: 'action.ids',\n view_in_foreground: 'view.in_foreground',\n display: 'display',\n session_has_replay: 'session.has_replay',\n is_login: 'user.is_login',\n page_states: '_gc.page_states'\n}\n// 需要用双引号将字符串类型的field value括起来, 这里有数组标示[string, path]\nexport var dataMap = {\n view: {\n type: RumEventType.VIEW,\n tags: {\n view_loading_type: 'view.loading_type',\n view_apdex_level: 'view.apdex_level',\n view_privacy_replay_level: 'privacy.replay_level'\n },\n fields: {\n is_active: 'view.is_active',\n session_replay_stats: '_gc.replay_stats',\n session_is_active: 'session.is_active',\n view_error_count: 'view.error.count',\n view_resource_count: 'view.resource.count',\n view_long_task_count: 'view.long_task.count',\n view_action_count: 'view.action.count',\n first_contentful_paint: 'view.first_contentful_paint',\n largest_contentful_paint: 'view.largest_contentful_paint',\n largest_contentful_paint_element_selector:\n 'view.largest_contentful_paint_element_selector',\n cumulative_layout_shift: 'view.cumulative_layout_shift',\n cumulative_layout_shift_target_selector:\n 'view.cumulative_layout_shift_target_selector',\n first_input_delay: 'view.first_input_delay',\n loading_time: 'view.loading_time',\n dom_interactive: 'view.dom_interactive',\n dom_content_loaded: 'view.dom_content_loaded',\n dom_complete: 'view.dom_complete',\n load_event: 'view.load_event',\n first_input_time: 'view.first_input_time',\n first_input_target_selector: 'view.first_input_target_selector',\n first_paint_time: 'view.fpt',\n interaction_to_next_paint: 'view.interaction_to_next_paint',\n interaction_to_next_paint_target_selector:\n 'view.interaction_to_next_paint_target_selector',\n resource_load_time: 'view.resource_load_time',\n time_to_interactive: 'view.tti',\n dom: 'view.dom',\n dom_ready: 'view.dom_ready',\n time_spent: 'view.time_spent',\n first_byte: 'view.first_byte',\n frustration_count: 'view.frustration.count',\n custom_timings: 'view.custom_timings'\n }\n },\n resource: {\n type: RumEventType.RESOURCE,\n tags: {\n trace_id: '_gc.trace_id',\n span_id: '_gc.span_id',\n resource_url: 'resource.url',\n resource_url_host: 'resource.url_host',\n resource_url_path: 'resource.url_path',\n resource_url_path_group: 'resource.url_path_group',\n resource_url_query: 'resource.url_query',\n resource_type: 'resource.type',\n resource_status: 'resource.status',\n resource_status_group: 'resource.status_group',\n resource_method: 'resource.method'\n },\n fields: {\n duration: 'resource.duration',\n resource_size: 'resource.size',\n resource_encode_size: 'resource.encode_size',\n resource_render_blocking_status: 'resource.render_blocking_status',\n resource_dns: 'resource.dns',\n resource_tcp: 'resource.tcp',\n resource_ssl: 'resource.ssl',\n resource_ttfb: 'resource.ttfb',\n resource_trans: 'resource.trans',\n resource_redirect: 'resource.redirect',\n resource_first_byte: 'resource.firstbyte',\n resource_dns_time: 'resource.dns_time',\n resource_download_time: 'resource.download_time',\n resource_first_byte_time: 'resource.first_byte_time',\n resource_connect_time: 'resource.connect_time',\n resource_ssl_time: 'resource.ssl_time',\n resource_redirect_time: 'resource.redirect_time'\n }\n },\n error: {\n type: RumEventType.ERROR,\n tags: {\n error_id: 'error.id',\n trace_id: '_gc.trace_id',\n span_id: '_gc.span_id',\n error_source: 'error.source',\n error_type: 'error.type',\n error_handling: 'error.handling'\n // resource_url: 'error.resource.url',\n // resource_url_host: 'error.resource.url_host',\n // resource_url_path: 'error.resource.url_path',\n // resource_url_path_group: 'error.resource.url_path_group',\n // resource_status: 'error.resource.status',\n // resource_status_group: 'error.resource.status_group',\n // resource_method: 'error.resource.method'\n },\n fields: {\n error_message: ['string', 'error.message'],\n error_stack: ['string', 'error.stack'],\n error_causes: ['string', 'error.causes']\n }\n },\n long_task: {\n type: RumEventType.LONG_TASK,\n tags: {\n long_task_id: 'long_task.id'\n },\n fields: {\n duration: 'long_task.duration'\n }\n },\n action: {\n type: RumEventType.ACTION,\n tags: {\n action_type: 'action.type'\n },\n fields: {\n action_name: 'action.target.name',\n duration: 'action.loading_time',\n action_error_count: 'action.error.count',\n action_resource_count: 'action.resource.count',\n action_frustration_types: 'action.frustration.type',\n action_long_task_count: 'action.long_task.count',\n action_target: '_gc.action.target',\n action_position: '_gc.action.position'\n }\n },\n telemetry: {\n type: 'telemetry',\n fields: {\n status: 'telemetry.status',\n message: ['string', 'telemetry.message'],\n type: 'telemetry.type',\n error_stack: ['string', 'telemetry.error.stack'],\n error_kind: ['string', 'telemetry.error.kind']\n }\n },\n browser_log: {\n type: RumEventType.LOGGER,\n tags: {\n error_source: 'error.source',\n error_type: 'error.type',\n error_resource_url: 'http.url',\n error_resource_url_host: 'http.url_host',\n error_resource_url_path: 'http.url_path',\n error_resource_url_path_group: 'http.url_path_group',\n error_resource_status: 'http.status_code',\n error_resource_status_group: 'http.status_group',\n error_resource_method: 'http.method',\n action_id: 'user_action.id',\n service: 'service',\n status: 'status'\n },\n fields: {\n message: ['string', 'message']\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACO,IAAIC,UAAU,GAAG;EACtBC,QAAQ,EAAE,cAAc;EACxBC,WAAW,EAAE,iBAAiB;EAC9BC,MAAM,EAAE,gBAAgB;EACxBC,GAAG,EAAE,KAAK;EACVC,OAAO,EAAE,SAAS;EAClBC,OAAO,EAAE,SAAS;EAClBC,MAAM,EAAE,SAAS;EACjBC,UAAU,EAAE,YAAY;EACxBC,SAAS,EAAE,WAAW;EACtBC,UAAU,EAAE,YAAY;EACxBC,YAAY,EAAE,cAAc;EAC5BC,gBAAgB,EAAE,qBAAqB;EACvCC,SAAS,EAAE,gBAAgB;EAC3BC,EAAE,EAAE,WAAW;EACfC,UAAU,EAAE,mBAAmB;EAC/BC,gBAAgB,EAAE,yBAAyB;EAC3CC,OAAO,EAAE,gBAAgB;EACzBC,eAAe,EAAE,wBAAwB;EACzCC,qBAAqB,EAAE,8BAA8B;EACrDC,WAAW,EAAE,oBAAoB;EACjCC,YAAY,EAAE,qBAAqB;EACnCC,MAAM,EAAE,eAAe;EACvBC,OAAO,EAAE,SAAS;EAClBC,aAAa,EAAE,eAAe;EAC9BC,QAAQ,EAAE,UAAU;EACpBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EACtBC,SAAS,EAAE,WAAW;EAAE;EACxBC,eAAe,EAAE;AACnB,CAAC;AAAAC,OAAA,CAAA9B,UAAA,GAAAA,UAAA;AACM,IAAI+B,YAAY,GAAG;EACxBC,cAAc,EAAE,gBAAgB;EAChCC,SAAS,EAAE,WAAW;EACtBC,UAAU,EAAE,YAAY;EACxBC,kBAAkB,EAAE,oBAAoB;EACxCC,OAAO,EAAE,SAAS;EAClBC,kBAAkB,EAAE,oBAAoB;EACxCC,QAAQ,EAAE,eAAe;EACzBC,WAAW,EAAE;AACf,CAAC;AACD;AAAAT,OAAA,CAAAC,YAAA,GAAAA,YAAA;AACO,IAAIS,OAAO,GAAG;EACnBC,IAAI,EAAE;IACJC,IAAI,EAAEC,mBAAY,CAACC,IAAI;IACvBC,IAAI,EAAE;MACJC,iBAAiB,EAAE,mBAAmB;MACtCC,gBAAgB,EAAE,kBAAkB;MACpCC,yBAAyB,EAAE;IAC7B,CAAC;IACDC,MAAM,EAAE;MACNC,SAAS,EAAE,gBAAgB;MAC3BC,oBAAoB,EAAE,kBAAkB;MACxCC,iBAAiB,EAAE,mBAAmB;MACtCC,gBAAgB,EAAE,kBAAkB;MACpCC,mBAAmB,EAAE,qBAAqB;MAC1CC,oBAAoB,EAAE,sBAAsB;MAC5CC,iBAAiB,EAAE,mBAAmB;MACtCC,sBAAsB,EAAE,6BAA6B;MACrDC,wBAAwB,EAAE,+BAA+B;MACzDC,yCAAyC,EACvC,gDAAgD;MAClDC,uBAAuB,EAAE,8BAA8B;MACvDC,uCAAuC,EACrC,8CAA8C;MAChDC,iBAAiB,EAAE,wBAAwB;MAC3CC,YAAY,EAAE,mBAAmB;MACjCC,eAAe,EAAE,sBAAsB;MACvCC,kBAAkB,EAAE,yBAAyB;MAC7CC,YAAY,EAAE,mBAAmB;MACjCC,UAAU,EAAE,iBAAiB;MAC7BC,gBAAgB,EAAE,uBAAuB;MACzCC,2BAA2B,EAAE,kCAAkC;MAC/DC,gBAAgB,EAAE,UAAU;MAC5BC,yBAAyB,EAAE,gCAAgC;MAC3DC,yCAAyC,EACvC,gDAAgD;MAClDC,kBAAkB,EAAE,yBAAyB;MAC7CC,mBAAmB,EAAE,UAAU;MAC/BC,GAAG,EAAE,UAAU;MACfC,SAAS,EAAE,gBAAgB;MAC3BC,UAAU,EAAE,iBAAiB;MAC7BC,UAAU,EAAE,iBAAiB;MAC7BC,iBAAiB,EAAE,wBAAwB;MAC3CC,cAAc,EAAE;IAClB;EACF,CAAC;EACDC,QAAQ,EAAE;IACRvC,IAAI,EAAEC,mBAAY,CAACuC,QAAQ;IAC3BrC,IAAI,EAAE;MACJsC,QAAQ,EAAE,cAAc;MACxBC,OAAO,EAAE,aAAa;MACtBC,YAAY,EAAE,cAAc;MAC5BC,iBAAiB,EAAE,mBAAmB;MACtCC,iBAAiB,EAAE,mBAAmB;MACtCC,uBAAuB,EAAE,yBAAyB;MAClDC,kBAAkB,EAAE,oBAAoB;MACxCC,aAAa,EAAE,eAAe;MAC9BC,eAAe,EAAE,iBAAiB;MAClCC,qBAAqB,EAAE,uBAAuB;MAC9CC,eAAe,EAAE;IACnB,CAAC;IACD5C,MAAM,EAAE;MACN6C,QAAQ,EAAE,mBAAmB;MAC7BC,aAAa,EAAE,eAAe;MAC9BC,oBAAoB,EAAE,sBAAsB;MAC5CC,+BAA+B,EAAE,iCAAiC;MAClEC,YAAY,EAAE,cAAc;MAC5BC,YAAY,EAAE,cAAc;MAC5BC,YAAY,EAAE,cAAc;MAC5BC,aAAa,EAAE,eAAe;MAC9BC,cAAc,EAAE,gBAAgB;MAChCC,iBAAiB,EAAE,mBAAmB;MACtCC,mBAAmB,EAAE,oBAAoB;MACzCC,iBAAiB,EAAE,mBAAmB;MACtCC,sBAAsB,EAAE,wBAAwB;MAChDC,wBAAwB,EAAE,0BAA0B;MACpDC,qBAAqB,EAAE,uBAAuB;MAC9CC,iBAAiB,EAAE,mBAAmB;MACtCC,sBAAsB,EAAE;IAC1B;EACF,CAAC;EACDC,KAAK,EAAE;IACLrE,IAAI,EAAEC,mBAAY,CAACqE,KAAK;IACxBnE,IAAI,EAAE;MACJoE,QAAQ,EAAE,UAAU;MACpB9B,QAAQ,EAAE,cAAc;MACxBC,OAAO,EAAE,aAAa;MACtB8B,YAAY,EAAE,cAAc;MAC5BC,UAAU,EAAE,YAAY;MACxBC,cAAc,EAAE;MAChB;MACA;MACA;MACA;MACA;MACA;MACA;IACF,CAAC;;IACDnE,MAAM,EAAE;MACNoE,aAAa,EAAE,CAAC,QAAQ,EAAE,eAAe,CAAC;MAC1CC,WAAW,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC;MACtCC,YAAY,EAAE,CAAC,QAAQ,EAAE,cAAc;IACzC;EACF,CAAC;EACDC,SAAS,EAAE;IACT9E,IAAI,EAAEC,mBAAY,CAAC8E,SAAS;IAC5B5E,IAAI,EAAE;MACJ6E,YAAY,EAAE;IAChB,CAAC;IACDzE,MAAM,EAAE;MACN6C,QAAQ,EAAE;IACZ;EACF,CAAC;EACD6B,MAAM,EAAE;IACNjF,IAAI,EAAEC,mBAAY,CAACiF,MAAM;IACzB/E,IAAI,EAAE;MACJgF,WAAW,EAAE;IACf,CAAC;IACD5E,MAAM,EAAE;MACN6E,WAAW,EAAE,oBAAoB;MACjChC,QAAQ,EAAE,qBAAqB;MAC/BiC,kBAAkB,EAAE,oBAAoB;MACxCC,qBAAqB,EAAE,uBAAuB;MAC9CC,wBAAwB,EAAE,yBAAyB;MACnDC,sBAAsB,EAAE,wBAAwB;MAChDC,aAAa,EAAE,mBAAmB;MAClCC,eAAe,EAAE;IACnB;EACF,CAAC;EACDC,SAAS,EAAE;IACT3F,IAAI,EAAE,WAAW;IACjBO,MAAM,EAAE;MACNqF,MAAM,EAAE,kBAAkB;MAC1BC,OAAO,EAAE,CAAC,QAAQ,EAAE,mBAAmB,CAAC;MACxC7F,IAAI,EAAE,gBAAgB;MACtB4E,WAAW,EAAE,CAAC,QAAQ,EAAE,uBAAuB,CAAC;MAChDkB,UAAU,EAAE,CAAC,QAAQ,EAAE,sBAAsB;IAC/C;EACF,CAAC;EACDC,WAAW,EAAE;IACX/F,IAAI,EAAEC,mBAAY,CAAC+F,MAAM;IACzB7F,IAAI,EAAE;MACJqE,YAAY,EAAE,cAAc;MAC5BC,UAAU,EAAE,YAAY;MACxBwB,kBAAkB,EAAE,UAAU;MAC9BC,uBAAuB,EAAE,eAAe;MACxCC,uBAAuB,EAAE,eAAe;MACxCC,6BAA6B,EAAE,qBAAqB;MACpDC,qBAAqB,EAAE,kBAAkB;MACzCC,2BAA2B,EAAE,mBAAmB;MAChDC,qBAAqB,EAAE,aAAa;MACpChH,SAAS,EAAE,gBAAgB;MAC3B5B,OAAO,EAAE,SAAS;MAClBiI,MAAM,EAAE;IACV,CAAC;IACDrF,MAAM,EAAE;MACNsF,OAAO,EAAE,CAAC,QAAQ,EAAE,SAAS;IAC/B;EACF;AACF,CAAC;AAAAzG,OAAA,CAAAU,OAAA,GAAAA,OAAA"}
|
|
1
|
+
{"version":3,"file":"dataMap.js","names":["_enums","require","commonTags","sdk_name","sdk_version","app_id","env","service","version","userid","user_email","user_name","session_id","session_type","session_sampling","is_signin","os","os_version","os_version_major","browser","browser_version","browser_version_major","screen_size","network_type","device","view_id","view_referrer","view_url","view_host","view_path","view_name","view_path_group","exports","commonFields","view_url_query","action_id","action_ids","view_in_foreground","display","session_has_replay","is_login","page_states","session_sample_rate","session_replay_sample_rate","dataMap","view","type","RumEventType","VIEW","tags","view_loading_type","view_apdex_level","view_privacy_replay_level","fields","sampled_for_replay","is_active","session_replay_stats","session_is_active","view_error_count","view_resource_count","view_long_task_count","view_action_count","first_contentful_paint","largest_contentful_paint","largest_contentful_paint_element_selector","cumulative_layout_shift","cumulative_layout_shift_target_selector","first_input_delay","loading_time","dom_interactive","dom_content_loaded","dom_complete","load_event","first_input_time","first_input_target_selector","first_paint_time","interaction_to_next_paint","interaction_to_next_paint_target_selector","resource_load_time","time_to_interactive","dom","dom_ready","time_spent","first_byte","frustration_count","custom_timings","resource","RESOURCE","trace_id","span_id","resource_url","resource_url_host","resource_url_path","resource_url_path_group","resource_url_query","resource_type","resource_status","resource_status_group","resource_method","duration","resource_size","resource_encode_size","resource_render_blocking_status","resource_dns","resource_tcp","resource_ssl","resource_ttfb","resource_trans","resource_redirect","resource_first_byte","resource_dns_time","resource_download_time","resource_first_byte_time","resource_connect_time","resource_ssl_time","resource_redirect_time","error","ERROR","error_id","error_source","error_type","error_handling","error_message","error_stack","error_causes","long_task","LONG_TASK","long_task_id","action","ACTION","action_type","action_name","action_error_count","action_resource_count","action_frustration_types","action_long_task_count","action_target","action_position","telemetry","status","message","error_kind","browser_log","LOGGER","error_resource_url","error_resource_url_host","error_resource_url_path","error_resource_url_path_group","error_resource_status","error_resource_status_group","error_resource_method"],"sources":["../src/dataMap.js"],"sourcesContent":["import { RumEventType } from './helper/enums'\nexport var commonTags = {\n sdk_name: '_gc.sdk_name',\n sdk_version: '_gc.sdk_version',\n app_id: 'application.id',\n env: 'env',\n service: 'service',\n version: 'version',\n userid: 'user.id',\n user_email: 'user.email',\n user_name: 'user.name',\n session_id: 'session.id',\n session_type: 'session.type',\n session_sampling: 'session.is_sampling',\n is_signin: 'user.is_signin',\n os: 'device.os',\n os_version: 'device.os_version',\n os_version_major: 'device.os_version_major',\n browser: 'device.browser',\n browser_version: 'device.browser_version',\n browser_version_major: 'device.browser_version_major',\n screen_size: 'device.screen_size',\n network_type: 'device.network_type',\n device: 'device.device',\n view_id: 'view.id',\n view_referrer: 'view.referrer',\n view_url: 'view.url',\n view_host: 'view.host',\n view_path: 'view.path',\n view_name: 'view.path', // 冗余一个字段\n view_path_group: 'view.path_group'\n}\nexport var commonFields = {\n view_url_query: 'view.url_query',\n action_id: 'action.id',\n action_ids: 'action.ids',\n view_in_foreground: 'view.in_foreground',\n display: 'display',\n session_has_replay: 'session.has_replay',\n is_login: 'user.is_login',\n page_states: '_gc.page_states',\n session_sample_rate: '_gc.configuration.session_sample_rate',\n session_replay_sample_rate: '_gc.configuration.session_replay_sample_rate'\n}\n// 需要用双引号将字符串类型的field value括起来, 这里有数组标示[string, path]\nexport var dataMap = {\n view: {\n type: RumEventType.VIEW,\n tags: {\n view_loading_type: 'view.loading_type',\n view_apdex_level: 'view.apdex_level',\n view_privacy_replay_level: 'privacy.replay_level'\n },\n fields: {\n sampled_for_replay: 'session.sampled_for_replay',\n is_active: 'view.is_active',\n session_replay_stats: '_gc.replay_stats',\n session_is_active: 'session.is_active',\n view_error_count: 'view.error.count',\n view_resource_count: 'view.resource.count',\n view_long_task_count: 'view.long_task.count',\n view_action_count: 'view.action.count',\n first_contentful_paint: 'view.first_contentful_paint',\n largest_contentful_paint: 'view.largest_contentful_paint',\n largest_contentful_paint_element_selector:\n 'view.largest_contentful_paint_element_selector',\n cumulative_layout_shift: 'view.cumulative_layout_shift',\n cumulative_layout_shift_target_selector:\n 'view.cumulative_layout_shift_target_selector',\n first_input_delay: 'view.first_input_delay',\n loading_time: 'view.loading_time',\n dom_interactive: 'view.dom_interactive',\n dom_content_loaded: 'view.dom_content_loaded',\n dom_complete: 'view.dom_complete',\n load_event: 'view.load_event',\n first_input_time: 'view.first_input_time',\n first_input_target_selector: 'view.first_input_target_selector',\n first_paint_time: 'view.fpt',\n interaction_to_next_paint: 'view.interaction_to_next_paint',\n interaction_to_next_paint_target_selector:\n 'view.interaction_to_next_paint_target_selector',\n resource_load_time: 'view.resource_load_time',\n time_to_interactive: 'view.tti',\n dom: 'view.dom',\n dom_ready: 'view.dom_ready',\n time_spent: 'view.time_spent',\n first_byte: 'view.first_byte',\n frustration_count: 'view.frustration.count',\n custom_timings: 'view.custom_timings'\n }\n },\n resource: {\n type: RumEventType.RESOURCE,\n tags: {\n trace_id: '_gc.trace_id',\n span_id: '_gc.span_id',\n resource_url: 'resource.url',\n resource_url_host: 'resource.url_host',\n resource_url_path: 'resource.url_path',\n resource_url_path_group: 'resource.url_path_group',\n resource_url_query: 'resource.url_query',\n resource_type: 'resource.type',\n resource_status: 'resource.status',\n resource_status_group: 'resource.status_group',\n resource_method: 'resource.method'\n },\n fields: {\n duration: 'resource.duration',\n resource_size: 'resource.size',\n resource_encode_size: 'resource.encode_size',\n resource_render_blocking_status: 'resource.render_blocking_status',\n resource_dns: 'resource.dns',\n resource_tcp: 'resource.tcp',\n resource_ssl: 'resource.ssl',\n resource_ttfb: 'resource.ttfb',\n resource_trans: 'resource.trans',\n resource_redirect: 'resource.redirect',\n resource_first_byte: 'resource.firstbyte',\n resource_dns_time: 'resource.dns_time',\n resource_download_time: 'resource.download_time',\n resource_first_byte_time: 'resource.first_byte_time',\n resource_connect_time: 'resource.connect_time',\n resource_ssl_time: 'resource.ssl_time',\n resource_redirect_time: 'resource.redirect_time'\n }\n },\n error: {\n type: RumEventType.ERROR,\n tags: {\n error_id: 'error.id',\n trace_id: '_gc.trace_id',\n span_id: '_gc.span_id',\n error_source: 'error.source',\n error_type: 'error.type',\n error_handling: 'error.handling'\n // resource_url: 'error.resource.url',\n // resource_url_host: 'error.resource.url_host',\n // resource_url_path: 'error.resource.url_path',\n // resource_url_path_group: 'error.resource.url_path_group',\n // resource_status: 'error.resource.status',\n // resource_status_group: 'error.resource.status_group',\n // resource_method: 'error.resource.method'\n },\n fields: {\n error_message: ['string', 'error.message'],\n error_stack: ['string', 'error.stack'],\n error_causes: ['string', 'error.causes']\n }\n },\n long_task: {\n type: RumEventType.LONG_TASK,\n tags: {\n long_task_id: 'long_task.id'\n },\n fields: {\n duration: 'long_task.duration'\n }\n },\n action: {\n type: RumEventType.ACTION,\n tags: {\n action_type: 'action.type'\n },\n fields: {\n action_name: 'action.target.name',\n duration: 'action.loading_time',\n action_error_count: 'action.error.count',\n action_resource_count: 'action.resource.count',\n action_frustration_types: 'action.frustration.type',\n action_long_task_count: 'action.long_task.count',\n action_target: '_gc.action.target',\n action_position: '_gc.action.position'\n }\n },\n telemetry: {\n type: 'telemetry',\n fields: {\n status: 'telemetry.status',\n message: ['string', 'telemetry.message'],\n type: 'telemetry.type',\n error_stack: ['string', 'telemetry.error.stack'],\n error_kind: ['string', 'telemetry.error.kind']\n }\n },\n browser_log: {\n type: RumEventType.LOGGER,\n tags: {\n error_source: 'error.source',\n error_type: 'error.type',\n error_resource_url: 'http.url',\n error_resource_url_host: 'http.url_host',\n error_resource_url_path: 'http.url_path',\n error_resource_url_path_group: 'http.url_path_group',\n error_resource_status: 'http.status_code',\n error_resource_status_group: 'http.status_group',\n error_resource_method: 'http.method',\n action_id: 'user_action.id',\n service: 'service',\n status: 'status'\n },\n fields: {\n message: ['string', 'message']\n }\n }\n}\n"],"mappings":"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"}
|
package/cjs/helper/observable.js
CHANGED
|
@@ -14,7 +14,7 @@ var _Observable = function _Observable(onFirstSubscribe) {
|
|
|
14
14
|
_Observable.prototype = {
|
|
15
15
|
subscribe: function subscribe(f) {
|
|
16
16
|
if (!this.observers.length && this.onFirstSubscribe) {
|
|
17
|
-
this.onLastUnsubscribe = this.onFirstSubscribe() || undefined;
|
|
17
|
+
this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined;
|
|
18
18
|
}
|
|
19
19
|
this.observers.push(f);
|
|
20
20
|
var _this = this;
|
|
@@ -39,7 +39,7 @@ var Observable = _Observable;
|
|
|
39
39
|
exports.Observable = Observable;
|
|
40
40
|
function mergeObservables() {
|
|
41
41
|
var observables = [].slice.call(arguments);
|
|
42
|
-
|
|
42
|
+
return new Observable(function (globalObservable) {
|
|
43
43
|
var subscriptions = (0, _tools.map)(observables, function (observable) {
|
|
44
44
|
return observable.subscribe(function (data) {
|
|
45
45
|
return globalObservable.notify(data);
|
|
@@ -51,6 +51,5 @@ function mergeObservables() {
|
|
|
51
51
|
});
|
|
52
52
|
};
|
|
53
53
|
});
|
|
54
|
-
return globalObservable;
|
|
55
54
|
}
|
|
56
55
|
//# sourceMappingURL=observable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.js","names":["_tools","require","_Observable","onFirstSubscribe","observers","onLastUnsubscribe","undefined","prototype","subscribe","f","length","push","_this","unsubscribe","filter","other","notify","data","each","observer","Observable","exports","mergeObservables","observables","slice","call","arguments","globalObservable","subscriptions","map","observable","subscription"],"sources":["../../src/helper/observable.js"],"sourcesContent":["import { each, filter, map } from './tools'\nvar _Observable = function (onFirstSubscribe) {\n this.observers = []\n this.onLastUnsubscribe = undefined\n this.onFirstSubscribe = onFirstSubscribe\n}\n_Observable.prototype = {\n subscribe: function (f) {\n if (!this.observers.length && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe() || undefined\n }\n this.observers.push(f)\n var _this = this\n return {\n unsubscribe: function () {\n _this.observers = filter(_this.observers, function (other) {\n return f !== other\n })\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe()\n }\n }\n }\n },\n notify: function (data) {\n each(this.observers, function (observer) {\n observer(data)\n })\n }\n}\nexport var Observable = _Observable\n\nexport function mergeObservables() {\n var observables = [].slice.call(arguments)\n
|
|
1
|
+
{"version":3,"file":"observable.js","names":["_tools","require","_Observable","onFirstSubscribe","observers","onLastUnsubscribe","undefined","prototype","subscribe","f","length","push","_this","unsubscribe","filter","other","notify","data","each","observer","Observable","exports","mergeObservables","observables","slice","call","arguments","globalObservable","subscriptions","map","observable","subscription"],"sources":["../../src/helper/observable.js"],"sourcesContent":["import { each, filter, map } from './tools'\nvar _Observable = function (onFirstSubscribe) {\n this.observers = []\n this.onLastUnsubscribe = undefined\n this.onFirstSubscribe = onFirstSubscribe\n}\n_Observable.prototype = {\n subscribe: function (f) {\n if (!this.observers.length && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined\n }\n this.observers.push(f)\n var _this = this\n return {\n unsubscribe: function () {\n _this.observers = filter(_this.observers, function (other) {\n return f !== other\n })\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe()\n }\n }\n }\n },\n notify: function (data) {\n each(this.observers, function (observer) {\n observer(data)\n })\n }\n}\nexport var Observable = _Observable\n\nexport function mergeObservables() {\n var observables = [].slice.call(arguments)\n return new Observable(function (globalObservable) {\n var subscriptions = map(observables, function (observable) {\n return observable.subscribe(function (data) {\n return globalObservable.notify(data)\n })\n })\n return function () {\n return each(subscriptions, function (subscription) {\n return subscription.unsubscribe()\n })\n }\n })\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAIC,WAAW,GAAG,SAAdA,WAAWA,CAAaC,gBAAgB,EAAE;EAC5C,IAAI,CAACC,SAAS,GAAG,EAAE;EACnB,IAAI,CAACC,iBAAiB,GAAGC,SAAS;EAClC,IAAI,CAACH,gBAAgB,GAAGA,gBAAgB;AAC1C,CAAC;AACDD,WAAW,CAACK,SAAS,GAAG;EACtBC,SAAS,EAAE,SAAAA,UAAUC,CAAC,EAAE;IACtB,IAAI,CAAC,IAAI,CAACL,SAAS,CAACM,MAAM,IAAI,IAAI,CAACP,gBAAgB,EAAE;MACnD,IAAI,CAACE,iBAAiB,GAAG,IAAI,CAACF,gBAAgB,CAAC,IAAI,CAAC,IAAIG,SAAS;IACnE;IACA,IAAI,CAACF,SAAS,CAACO,IAAI,CAACF,CAAC,CAAC;IACtB,IAAIG,KAAK,GAAG,IAAI;IAChB,OAAO;MACLC,WAAW,EAAE,SAAAA,YAAA,EAAY;QACvBD,KAAK,CAACR,SAAS,GAAG,IAAAU,aAAM,EAACF,KAAK,CAACR,SAAS,EAAE,UAAUW,KAAK,EAAE;UACzD,OAAON,CAAC,KAAKM,KAAK;QACpB,CAAC,CAAC;QACF,IAAI,CAACH,KAAK,CAACR,SAAS,CAACM,MAAM,IAAIE,KAAK,CAACP,iBAAiB,EAAE;UACtDO,KAAK,CAACP,iBAAiB,CAAC,CAAC;QAC3B;MACF;IACF,CAAC;EACH,CAAC;EACDW,MAAM,EAAE,SAAAA,OAAUC,IAAI,EAAE;IACtB,IAAAC,WAAI,EAAC,IAAI,CAACd,SAAS,EAAE,UAAUe,QAAQ,EAAE;MACvCA,QAAQ,CAACF,IAAI,CAAC;IAChB,CAAC,CAAC;EACJ;AACF,CAAC;AACM,IAAIG,UAAU,GAAGlB,WAAW;AAAAmB,OAAA,CAAAD,UAAA,GAAAA,UAAA;AAE5B,SAASE,gBAAgBA,CAAA,EAAG;EACjC,IAAIC,WAAW,GAAG,EAAE,CAACC,KAAK,CAACC,IAAI,CAACC,SAAS,CAAC;EAC1C,OAAO,IAAIN,UAAU,CAAC,UAAUO,gBAAgB,EAAE;IAChD,IAAIC,aAAa,GAAG,IAAAC,UAAG,EAACN,WAAW,EAAE,UAAUO,UAAU,EAAE;MACzD,OAAOA,UAAU,CAACtB,SAAS,CAAC,UAAUS,IAAI,EAAE;QAC1C,OAAOU,gBAAgB,CAACX,MAAM,CAACC,IAAI,CAAC;MACtC,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,YAAY;MACjB,OAAO,IAAAC,WAAI,EAACU,aAAa,EAAE,UAAUG,YAAY,EAAE;QACjD,OAAOA,YAAY,CAAClB,WAAW,CAAC,CAAC;MACnC,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,CAAC;AACJ"}
|
|
@@ -31,7 +31,7 @@ function initReportObservable(configuration, apis) {
|
|
|
31
31
|
return _observable.mergeObservables.apply(this, observables);
|
|
32
32
|
}
|
|
33
33
|
function createReportObservable(reportTypes) {
|
|
34
|
-
|
|
34
|
+
return new _observable.Observable(function (observable) {
|
|
35
35
|
if (!window.ReportingObserver) {
|
|
36
36
|
return;
|
|
37
37
|
}
|
|
@@ -52,7 +52,7 @@ function createReportObservable(reportTypes) {
|
|
|
52
52
|
return observable;
|
|
53
53
|
}
|
|
54
54
|
function createCspViolationReportObservable(configuration) {
|
|
55
|
-
|
|
55
|
+
return new _observable.Observable(function (observable) {
|
|
56
56
|
var handleCspViolation = function handleCspViolation(event) {
|
|
57
57
|
observable.notify(buildRawReportFromCspViolation(event));
|
|
58
58
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reportObservable.js","names":["_errorTools","require","_observable","_tools","_addEventListener2","_enums","_monitor","RawReportType","intervention","deprecation","cspViolation","exports","initReportObservable","configuration","apis","observables","includes","push","createCspViolationReportObservable","reportTypes","filter","api","length","createReportObservable","mergeObservables","apply","
|
|
1
|
+
{"version":3,"file":"reportObservable.js","names":["_errorTools","require","_observable","_tools","_addEventListener2","_enums","_monitor","RawReportType","intervention","deprecation","cspViolation","exports","initReportObservable","configuration","apis","observables","includes","push","createCspViolationReportObservable","reportTypes","filter","api","length","createReportObservable","mergeObservables","apply","Observable","observable","window","ReportingObserver","handleReports","monitor","reports","each","report","notify","buildRawReportFromReport","observer","types","buffered","observe","disconnect","handleCspViolation","event","buildRawReportFromCspViolation","_addEventListener","addEventListener","document","DOM_EVENT","SECURITY_POLICY_VIOLATION","stop","body","type","subtype","id","message","stack","buildStack","sourceFile","lineNumber","columnNumber","blockedURI","effectiveDirective","safeTruncate","originalPolicy","name","toStackTraceString","func","url","line","column"],"sources":["../../src/report/reportObservable.js"],"sourcesContent":["import { toStackTraceString } from '../helper/errorTools'\nimport { mergeObservables, Observable } from '../helper/observable'\nimport { includes, safeTruncate, filter, each } from '../helper/tools'\nimport { addEventListener } from '../browser/addEventListener'\nimport { DOM_EVENT } from '../helper/enums'\nimport { monitor } from '../helper/monitor'\nexport var RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation'\n}\nexport function initReportObservable(configuration, apis) {\n var observables = []\n\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration))\n }\n\n var reportTypes = filter(apis, function (api) {\n return api !== RawReportType.cspViolation\n })\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes))\n }\n return mergeObservables.apply(this, observables)\n}\n\nfunction createReportObservable(reportTypes) {\n return new Observable(function (observable) {\n if (!window.ReportingObserver) {\n return\n }\n\n var handleReports = monitor(function (reports) {\n each(reports, function (report) {\n observable.notify(buildRawReportFromReport(report))\n })\n })\n\n var observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true\n })\n\n observer.observe()\n return function () {\n observer.disconnect()\n }\n })\n\n return observable\n}\n\nfunction createCspViolationReportObservable(configuration) {\n return new Observable(function (observable) {\n var handleCspViolation = function (event) {\n observable.notify(buildRawReportFromCspViolation(event))\n }\n\n var _addEventListener = addEventListener(\n document,\n DOM_EVENT.SECURITY_POLICY_VIOLATION,\n handleCspViolation\n )\n\n return _addEventListener.stop\n })\n return observable\n}\n\nfunction buildRawReportFromReport(report) {\n var body = report.body\n var type = report.type\n return {\n type: type,\n subtype: body.id,\n message: type + ': ' + body.message,\n stack: buildStack(\n body.id,\n body.message,\n body.sourceFile,\n body.lineNumber,\n body.columnNumber\n )\n }\n}\n\nfunction buildRawReportFromCspViolation(event) {\n var type = RawReportType.cspViolation\n var message =\n \"'\" +\n event.blockedURI +\n \"' blocked by '\" +\n event.effectiveDirective +\n \"' directive\"\n return {\n type: RawReportType.cspViolation,\n subtype: event.effectiveDirective,\n message: type + ': ' + message,\n stack: buildStack(\n event.effectiveDirective,\n message +\n ' of the policy \"' +\n safeTruncate(event.originalPolicy, 100, '...') +\n '\"',\n event.sourceFile,\n event.lineNumber,\n event.columnNumber\n )\n }\n}\n\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return (\n sourceFile &&\n toStackTraceString({\n name: name,\n message: message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber,\n column: columnNumber\n }\n ]\n })\n )\n}\n"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ export function initFetchObservable() {
|
|
|
11
11
|
return fetchObservable;
|
|
12
12
|
}
|
|
13
13
|
function createFetchObservable() {
|
|
14
|
-
|
|
14
|
+
return new Observable(function (observable) {
|
|
15
15
|
if (!window.fetch) {
|
|
16
16
|
return;
|
|
17
17
|
}
|
|
@@ -30,10 +30,18 @@ function createFetchObservable() {
|
|
|
30
30
|
});
|
|
31
31
|
return fetchMethod.stop;
|
|
32
32
|
});
|
|
33
|
-
return observable;
|
|
34
33
|
}
|
|
35
34
|
function beforeSend(observable, input, init) {
|
|
36
|
-
var method =
|
|
35
|
+
// var method =
|
|
36
|
+
// (init && init.method) || (input instanceof Request && input.method) || 'GET'
|
|
37
|
+
// const methodFromParams =
|
|
38
|
+
// (init && init.method) || (input instanceof Request && input.method)
|
|
39
|
+
// const method = methodFromParams ? methodFromParams.toUpperCase() : 'GET'
|
|
40
|
+
var methodFromParams = init && init.method;
|
|
41
|
+
if (methodFromParams === undefined && input instanceof Request) {
|
|
42
|
+
methodFromParams = input.method;
|
|
43
|
+
}
|
|
44
|
+
var method = methodFromParams !== undefined ? String(methodFromParams).toUpperCase() : 'GET';
|
|
37
45
|
var url = input instanceof Request ? input.url : normalizeUrl(String(input));
|
|
38
46
|
var startClocks = clocksNow();
|
|
39
47
|
var context = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetchObservable.js","names":["instrumentMethod","Observable","clocksNow","monitor","callMonitored","normalizeUrl","fetchObservable","initFetchObservable","createFetchObservable","observable","window","fetch","fetchMethod","originalFetch","input","init","responsePromise","context","beforeSend","call","afterSend","stop","method","
|
|
1
|
+
{"version":3,"file":"fetchObservable.js","names":["instrumentMethod","Observable","clocksNow","monitor","callMonitored","normalizeUrl","fetchObservable","initFetchObservable","createFetchObservable","observable","window","fetch","fetchMethod","originalFetch","input","init","responsePromise","context","beforeSend","call","afterSend","stop","methodFromParams","method","undefined","Request","String","toUpperCase","url","startClocks","state","notify","startContext","reportFetch","response","Error","status","isAborted","DOMException","code","ABORT_ERR","error","responseType","constructor","Response","type","err","then"],"sources":["../../src/browser/fetchObservable.js"],"sourcesContent":["import { instrumentMethod } from '../helper/instrumentMethod'\nimport { Observable } from '../helper/observable'\nimport { clocksNow } from '../helper/tools'\nimport { monitor, callMonitored } from '../helper/monitor'\nimport { normalizeUrl } from '../helper/urlPolyfill'\n\nvar fetchObservable\n\nexport function initFetchObservable() {\n if (!fetchObservable) {\n fetchObservable = createFetchObservable()\n }\n return fetchObservable\n}\n\nfunction createFetchObservable() {\n return new Observable(function (observable) {\n if (!window.fetch) {\n return\n }\n\n var fetchMethod = instrumentMethod(\n window,\n 'fetch',\n function (originalFetch) {\n return function (input, init) {\n var responsePromise\n var context = callMonitored(beforeSend, null, [\n observable,\n input,\n init\n ])\n if (context) {\n responsePromise = originalFetch.call(\n this,\n context.input,\n context.init\n )\n callMonitored(afterSend, null, [\n observable,\n responsePromise,\n context\n ])\n } else {\n responsePromise = originalFetch.call(this, input, init)\n }\n return responsePromise\n }\n }\n )\n return fetchMethod.stop\n })\n}\n\nfunction beforeSend(observable, input, init) {\n // var method =\n // (init && init.method) || (input instanceof Request && input.method) || 'GET'\n // const methodFromParams =\n // (init && init.method) || (input instanceof Request && input.method)\n // const method = methodFromParams ? methodFromParams.toUpperCase() : 'GET'\n var methodFromParams = init && init.method\n\n if (methodFromParams === undefined && input instanceof Request) {\n methodFromParams = input.method\n }\n\n var method =\n methodFromParams !== undefined\n ? String(methodFromParams).toUpperCase()\n : 'GET'\n var url = input instanceof Request ? input.url : normalizeUrl(String(input))\n\n var startClocks = clocksNow()\n\n var context = {\n state: 'start',\n init: init,\n input: input,\n method: method,\n startClocks: startClocks,\n url: url\n }\n\n observable.notify(context)\n\n return context\n}\n\nfunction afterSend(observable, responsePromise, startContext) {\n var reportFetch = function (response) {\n var context = startContext\n context.state = 'resolve'\n // context.duration = elapsed(context.startClocks.timeStamp, timeStampNow())\n if ('stack' in response || response instanceof Error) {\n context.status = 0\n context.isAborted =\n response instanceof DOMException &&\n response.code === DOMException.ABORT_ERR\n context.error = response\n } else if ('status' in response) {\n context.response = response\n try {\n context.responseType =\n (response.constructor === Response && response.type) || '' // issue The Response type getter can only be used on instances of Response\n } catch (err) {\n context.responseType = ''\n }\n\n context.status = response.status\n context.isAborted = false\n }\n observable.notify(context)\n }\n responsePromise.then(monitor(reportFetch), monitor(reportFetch))\n}\n"],"mappings":"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"}
|
|
@@ -9,7 +9,7 @@ export var PageExitReason = {
|
|
|
9
9
|
FROZEN: 'page_frozen'
|
|
10
10
|
};
|
|
11
11
|
export function createPageExitObservable() {
|
|
12
|
-
|
|
12
|
+
return new Observable(function (observable) {
|
|
13
13
|
/**
|
|
14
14
|
* Only event that guarantee to fire on mobile devices when the page transitions to background state
|
|
15
15
|
* (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.
|
|
@@ -51,7 +51,6 @@ export function createPageExitObservable() {
|
|
|
51
51
|
beforeUnloadListener.stop();
|
|
52
52
|
};
|
|
53
53
|
});
|
|
54
|
-
return observable;
|
|
55
54
|
}
|
|
56
55
|
export function isPageExitReason(reason) {
|
|
57
56
|
return includes(values(PageExitReason), reason);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pageExitObservable.js","names":["Observable","includes","values","DOM_EVENT","addEventListener","addEventListeners","PageExitReason","HIDDEN","UNLOADING","PAGEHIDE","FROZEN","createPageExitObservable","observable","visibilityChangeListener","document","VISIBILITY_CHANGE","FREEZE","PAGE_HIDE","event","type","visibilityState","notify","reason","capture","beforeUnloadListener","window","BEFORE_UNLOAD","stop","isPageExitReason"],"sources":["../../src/browser/pageExitObservable.js"],"sourcesContent":["import { Observable } from '../helper/observable'\nimport { includes, values } from '../helper/tools'\nimport { DOM_EVENT } from '../helper/enums'\nimport {\n addEventListener,\n addEventListeners\n} from '../browser/addEventListener'\nexport var PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen'\n}\n\nexport function createPageExitObservable() {\n
|
|
1
|
+
{"version":3,"file":"pageExitObservable.js","names":["Observable","includes","values","DOM_EVENT","addEventListener","addEventListeners","PageExitReason","HIDDEN","UNLOADING","PAGEHIDE","FROZEN","createPageExitObservable","observable","visibilityChangeListener","document","VISIBILITY_CHANGE","FREEZE","PAGE_HIDE","event","type","visibilityState","notify","reason","capture","beforeUnloadListener","window","BEFORE_UNLOAD","stop","isPageExitReason"],"sources":["../../src/browser/pageExitObservable.js"],"sourcesContent":["import { Observable } from '../helper/observable'\nimport { includes, values } from '../helper/tools'\nimport { DOM_EVENT } from '../helper/enums'\nimport {\n addEventListener,\n addEventListeners\n} from '../browser/addEventListener'\nexport var PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen'\n}\n\nexport function createPageExitObservable() {\n return new Observable(function (observable) {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n var visibilityChangeListener = addEventListeners(\n document,\n [DOM_EVENT.VISIBILITY_CHANGE, DOM_EVENT.FREEZE, DOM_EVENT.PAGE_HIDE],\n function (event) {\n if (\n event.type === DOM_EVENT.VISIBILITY_CHANGE &&\n document.visibilityState === 'hidden'\n ) {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN })\n } else if (event.type === DOM_EVENT.FREEZE) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN })\n }\n },\n { capture: true }\n )\n\n /**\n * Safari does not support yet to send a request during:\n * - a visibility change during doc unload (cf: https://bugs.webkit.org/show_bug.cgi?id=194897)\n * - a page hide transition (cf: https://bugs.webkit.org/show_bug.cgi?id=188329)\n */\n var beforeUnloadListener = addEventListener(\n window,\n DOM_EVENT.BEFORE_UNLOAD,\n function () {\n observable.notify({ reason: PageExitReason.UNLOADING })\n }\n )\n\n return function () {\n visibilityChangeListener.stop()\n beforeUnloadListener.stop()\n }\n })\n}\n\nexport function isPageExitReason(reason) {\n return includes(values(PageExitReason), reason)\n}\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,sBAAsB;AACjD,SAASC,QAAQ,EAAEC,MAAM,QAAQ,iBAAiB;AAClD,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SACEC,gBAAgB,EAChBC,iBAAiB,QACZ,6BAA6B;AACpC,OAAO,IAAIC,cAAc,GAAG;EAC1BC,MAAM,EAAE,mBAAmB;EAC3BC,SAAS,EAAE,eAAe;EAC1BC,QAAQ,EAAE,WAAW;EACrBC,MAAM,EAAE;AACV,CAAC;AAED,OAAO,SAASC,wBAAwBA,CAAA,EAAG;EACzC,OAAO,IAAIX,UAAU,CAAC,UAAUY,UAAU,EAAE;IAC1C;AACJ;AACA;AACA;IACI,IAAIC,wBAAwB,GAAGR,iBAAiB,CAC9CS,QAAQ,EACR,CAACX,SAAS,CAACY,iBAAiB,EAAEZ,SAAS,CAACa,MAAM,EAAEb,SAAS,CAACc,SAAS,CAAC,EACpE,UAAUC,KAAK,EAAE;MACf,IACEA,KAAK,CAACC,IAAI,KAAKhB,SAAS,CAACY,iBAAiB,IAC1CD,QAAQ,CAACM,eAAe,KAAK,QAAQ,EACrC;QACA;AACV;AACA;AACA;QACUR,UAAU,CAACS,MAAM,CAAC;UAAEC,MAAM,EAAEhB,cAAc,CAACC;QAAO,CAAC,CAAC;MACtD,CAAC,MAAM,IAAIW,KAAK,CAACC,IAAI,KAAKhB,SAAS,CAACa,MAAM,EAAE;QAC1C;AACV;AACA;AACA;QACUJ,UAAU,CAACS,MAAM,CAAC;UAAEC,MAAM,EAAEhB,cAAc,CAACI;QAAO,CAAC,CAAC;MACtD;IACF,CAAC,EACD;MAAEa,OAAO,EAAE;IAAK,CAClB,CAAC;;IAED;AACJ;AACA;AACA;AACA;IACI,IAAIC,oBAAoB,GAAGpB,gBAAgB,CACzCqB,MAAM,EACNtB,SAAS,CAACuB,aAAa,EACvB,YAAY;MACVd,UAAU,CAACS,MAAM,CAAC;QAAEC,MAAM,EAAEhB,cAAc,CAACE;MAAU,CAAC,CAAC;IACzD,CACF,CAAC;IAED,OAAO,YAAY;MACjBK,wBAAwB,CAACc,IAAI,CAAC,CAAC;MAC/BH,oBAAoB,CAACG,IAAI,CAAC,CAAC;IAC7B,CAAC;EACH,CAAC,CAAC;AACJ;AAEA,OAAO,SAASC,gBAAgBA,CAACN,MAAM,EAAE;EACvC,OAAOrB,QAAQ,CAACC,MAAM,CAACI,cAAc,CAAC,EAAEgB,MAAM,CAAC;AACjD"}
|
|
@@ -13,7 +13,7 @@ export function initXhrObservable() {
|
|
|
13
13
|
return xhrObservable;
|
|
14
14
|
}
|
|
15
15
|
function createXhrObservable() {
|
|
16
|
-
|
|
16
|
+
return new Observable(function (observable) {
|
|
17
17
|
var openInstrumentMethod = instrumentMethodAndCallOriginal(XMLHttpRequest.prototype, 'open', {
|
|
18
18
|
before: openXhr
|
|
19
19
|
});
|
|
@@ -31,14 +31,13 @@ function createXhrObservable() {
|
|
|
31
31
|
abortInstrumentMethod.stop();
|
|
32
32
|
};
|
|
33
33
|
});
|
|
34
|
-
return observable;
|
|
35
34
|
}
|
|
36
35
|
function openXhr(method, url) {
|
|
37
36
|
var requestUUID = this[DATA_FLUX_REQUEST_ID_KEY] || UUID();
|
|
38
37
|
this[DATA_FLUX_REQUEST_ID_KEY] = requestUUID;
|
|
39
38
|
xhrContexts[requestUUID] = {
|
|
40
39
|
state: 'open',
|
|
41
|
-
method: method,
|
|
40
|
+
method: String(method).toUpperCase(),
|
|
42
41
|
url: normalizeUrl(String(url))
|
|
43
42
|
};
|
|
44
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xhrObservable.js","names":["instrumentMethodAndCallOriginal","Observable","normalizeUrl","shallowClone","elapsed","relativeNow","clocksNow","timeStampNow","UUID","addEventListener","xhrObservable","xhrContexts","DATA_FLUX_REQUEST_ID_KEY","initXhrObservable","createXhrObservable","observable","openInstrumentMethod","XMLHttpRequest","prototype","before","openXhr","sendInstrumentMethod","sendXhr","call","abortInstrumentMethod","abortXhr","stop","method","url","requestUUID","state","String","context","startContext","startTime","startClocks","isAborted","xhr","hasBeenReported","stopInstrumentingOnReadyStateChange","readyState","DONE","onEnd","unsubscribeLoadEndListener","completeContext","duration","timeStamp","status","notify","clearRequestId"],"sources":["../../src/browser/xhrObservable.js"],"sourcesContent":["import { instrumentMethodAndCallOriginal } from '../helper/instrumentMethod'\nimport { Observable } from '../helper/observable'\nimport { normalizeUrl } from '../helper/urlPolyfill'\nimport {\n shallowClone,\n elapsed,\n relativeNow,\n clocksNow,\n timeStampNow,\n UUID\n} from '../helper/tools'\nimport { addEventListener } from '../browser/addEventListener'\nvar xhrObservable\nvar xhrContexts = {}\nvar DATA_FLUX_REQUEST_ID_KEY = '_DATAFLUX_REQUEST_UUID'\nexport function initXhrObservable() {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable()\n }\n return xhrObservable\n}\n\nfunction createXhrObservable() {\n
|
|
1
|
+
{"version":3,"file":"xhrObservable.js","names":["instrumentMethodAndCallOriginal","Observable","normalizeUrl","shallowClone","elapsed","relativeNow","clocksNow","timeStampNow","UUID","addEventListener","xhrObservable","xhrContexts","DATA_FLUX_REQUEST_ID_KEY","initXhrObservable","createXhrObservable","observable","openInstrumentMethod","XMLHttpRequest","prototype","before","openXhr","sendInstrumentMethod","sendXhr","call","abortInstrumentMethod","abortXhr","stop","method","url","requestUUID","state","String","toUpperCase","context","startContext","startTime","startClocks","isAborted","xhr","hasBeenReported","stopInstrumentingOnReadyStateChange","readyState","DONE","onEnd","unsubscribeLoadEndListener","completeContext","duration","timeStamp","status","notify","clearRequestId"],"sources":["../../src/browser/xhrObservable.js"],"sourcesContent":["import { instrumentMethodAndCallOriginal } from '../helper/instrumentMethod'\nimport { Observable } from '../helper/observable'\nimport { normalizeUrl } from '../helper/urlPolyfill'\nimport {\n shallowClone,\n elapsed,\n relativeNow,\n clocksNow,\n timeStampNow,\n UUID\n} from '../helper/tools'\nimport { addEventListener } from '../browser/addEventListener'\nvar xhrObservable\nvar xhrContexts = {}\nvar DATA_FLUX_REQUEST_ID_KEY = '_DATAFLUX_REQUEST_UUID'\nexport function initXhrObservable() {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable()\n }\n return xhrObservable\n}\n\nfunction createXhrObservable() {\n return new Observable(function (observable) {\n var openInstrumentMethod = instrumentMethodAndCallOriginal(\n XMLHttpRequest.prototype,\n 'open',\n {\n before: openXhr\n }\n )\n\n var sendInstrumentMethod = instrumentMethodAndCallOriginal(\n XMLHttpRequest.prototype,\n 'send',\n {\n before: function () {\n sendXhr.call(this, observable)\n }\n }\n )\n\n var abortInstrumentMethod = instrumentMethodAndCallOriginal(\n XMLHttpRequest.prototype,\n 'abort',\n {\n before: abortXhr\n }\n )\n\n return function () {\n openInstrumentMethod.stop()\n sendInstrumentMethod.stop()\n abortInstrumentMethod.stop()\n }\n })\n}\n\nfunction openXhr(method, url) {\n var requestUUID = this[DATA_FLUX_REQUEST_ID_KEY] || UUID()\n this[DATA_FLUX_REQUEST_ID_KEY] = requestUUID\n xhrContexts[requestUUID] = {\n state: 'open',\n method: String(method).toUpperCase(),\n url: normalizeUrl(String(url))\n }\n}\n\nfunction sendXhr(observable) {\n var context = xhrContexts[this[DATA_FLUX_REQUEST_ID_KEY]]\n if (!context) {\n return\n }\n var startContext = context\n startContext.state = 'start'\n startContext.startTime = relativeNow()\n startContext.startClocks = clocksNow()\n startContext.isAborted = false\n startContext.xhr = this\n var hasBeenReported = false\n var stopInstrumentingOnReadyStateChange = instrumentMethodAndCallOriginal(\n this,\n 'onreadystatechange',\n {\n before: function () {\n if (this.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during a onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd.call(this)\n }\n }\n }\n ).stop\n\n var onEnd = function () {\n unsubscribeLoadEndListener()\n stopInstrumentingOnReadyStateChange()\n if (hasBeenReported) {\n return\n }\n hasBeenReported = true\n var completeContext = context\n completeContext.state = 'complete'\n completeContext.duration = elapsed(\n startContext.startClocks.timeStamp,\n timeStampNow()\n )\n completeContext.status = this.status\n observable.notify(shallowClone(completeContext))\n clearRequestId.call(this)\n }\n var unsubscribeLoadEndListener = addEventListener(this, 'loadend', onEnd).stop\n observable.notify(startContext)\n}\nfunction clearRequestId() {\n delete xhrContexts[this[DATA_FLUX_REQUEST_ID_KEY]]\n delete this[DATA_FLUX_REQUEST_ID_KEY]\n}\nfunction abortXhr() {\n var context = xhrContexts[this[DATA_FLUX_REQUEST_ID_KEY]]\n if (context) {\n context.isAborted = true\n }\n}\n"],"mappings":"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"}
|
|
@@ -18,7 +18,7 @@ export function initConsoleObservable(apis) {
|
|
|
18
18
|
|
|
19
19
|
/* eslint-disable no-console */
|
|
20
20
|
function createConsoleObservable(api) {
|
|
21
|
-
|
|
21
|
+
return new Observable(function (observable) {
|
|
22
22
|
var originalConsoleApi = console[api];
|
|
23
23
|
console[api] = function () {
|
|
24
24
|
var params = [].slice.call(arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consoleObservable.js","names":["computeStackTrace","createHandlingStack","formatErrorMessage","toStackTraceString","mergeObservables","Observable","find","map","jsonStringify","ConsoleApiName","callMonitored","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","api","createConsoleObservable","apply","observable","originalConsoleApi","console","params","slice","call","arguments","handlingStack","notify","buildConsoleLog","message","param","formatConsoleParameters","join","stack","error","firstErrorParam","Error","undefined"],"sources":["../../src/console/consoleObservable.js"],"sourcesContent":["import { computeStackTrace } from '../tracekit'\nimport {\n createHandlingStack,\n formatErrorMessage,\n toStackTraceString\n} from '../helper/errorTools'\nimport { mergeObservables, Observable } from '../helper/observable'\nimport { find, map } from '../helper/tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { ConsoleApiName } from '../helper/display'\nimport { callMonitored } from '../helper/monitor'\nvar consoleObservablesByApi = {}\n\nexport function initConsoleObservable(apis) {\n var consoleObservables = map(apis, function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api)\n }\n return consoleObservablesByApi[api]\n })\n\n return mergeObservables.apply(this, consoleObservables)\n}\n\n/* eslint-disable no-console */\nfunction createConsoleObservable(api) {\n
|
|
1
|
+
{"version":3,"file":"consoleObservable.js","names":["computeStackTrace","createHandlingStack","formatErrorMessage","toStackTraceString","mergeObservables","Observable","find","map","jsonStringify","ConsoleApiName","callMonitored","consoleObservablesByApi","initConsoleObservable","apis","consoleObservables","api","createConsoleObservable","apply","observable","originalConsoleApi","console","params","slice","call","arguments","handlingStack","notify","buildConsoleLog","message","param","formatConsoleParameters","join","stack","error","firstErrorParam","Error","undefined"],"sources":["../../src/console/consoleObservable.js"],"sourcesContent":["import { computeStackTrace } from '../tracekit'\nimport {\n createHandlingStack,\n formatErrorMessage,\n toStackTraceString\n} from '../helper/errorTools'\nimport { mergeObservables, Observable } from '../helper/observable'\nimport { find, map } from '../helper/tools'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\nimport { ConsoleApiName } from '../helper/display'\nimport { callMonitored } from '../helper/monitor'\nvar consoleObservablesByApi = {}\n\nexport function initConsoleObservable(apis) {\n var consoleObservables = map(apis, function (api) {\n if (!consoleObservablesByApi[api]) {\n consoleObservablesByApi[api] = createConsoleObservable(api)\n }\n return consoleObservablesByApi[api]\n })\n\n return mergeObservables.apply(this, consoleObservables)\n}\n\n/* eslint-disable no-console */\nfunction createConsoleObservable(api) {\n return new Observable(function (observable) {\n var originalConsoleApi = console[api]\n console[api] = function () {\n var params = [].slice.call(arguments)\n originalConsoleApi.apply(console, arguments)\n var handlingStack = createHandlingStack()\n callMonitored(function () {\n observable.notify(buildConsoleLog(params, api, handlingStack))\n })\n }\n return function () {\n console[api] = originalConsoleApi\n }\n })\n return observable\n}\n\nfunction buildConsoleLog(params, api, handlingStack) {\n // Todo: remove console error prefix in the next major version\n var message = map(params, function (param) {\n return formatConsoleParameters(param)\n }).join(' ')\n var stack\n\n if (api === ConsoleApiName.error) {\n var firstErrorParam = find(params, function (param) {\n return param instanceof Error\n })\n stack = firstErrorParam\n ? toStackTraceString(computeStackTrace(firstErrorParam))\n : undefined\n message = 'console error: ' + message\n }\n\n return {\n api: api,\n message: message,\n stack: stack,\n handlingStack: handlingStack\n }\n}\n\nfunction formatConsoleParameters(param) {\n if (typeof param === 'string') {\n return param\n }\n if (param instanceof Error) {\n return formatErrorMessage(computeStackTrace(param))\n }\n return jsonStringify(param, undefined, 2)\n}\n"],"mappings":"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"}
|
package/esm/dataMap.js
CHANGED
|
@@ -39,7 +39,9 @@ export var commonFields = {
|
|
|
39
39
|
display: 'display',
|
|
40
40
|
session_has_replay: 'session.has_replay',
|
|
41
41
|
is_login: 'user.is_login',
|
|
42
|
-
page_states: '_gc.page_states'
|
|
42
|
+
page_states: '_gc.page_states',
|
|
43
|
+
session_sample_rate: '_gc.configuration.session_sample_rate',
|
|
44
|
+
session_replay_sample_rate: '_gc.configuration.session_replay_sample_rate'
|
|
43
45
|
};
|
|
44
46
|
// 需要用双引号将字符串类型的field value括起来, 这里有数组标示[string, path]
|
|
45
47
|
export var dataMap = {
|
|
@@ -51,6 +53,7 @@ export var dataMap = {
|
|
|
51
53
|
view_privacy_replay_level: 'privacy.replay_level'
|
|
52
54
|
},
|
|
53
55
|
fields: {
|
|
56
|
+
sampled_for_replay: 'session.sampled_for_replay',
|
|
54
57
|
is_active: 'view.is_active',
|
|
55
58
|
session_replay_stats: '_gc.replay_stats',
|
|
56
59
|
session_is_active: 'session.is_active',
|
package/esm/dataMap.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataMap.js","names":["RumEventType","commonTags","sdk_name","sdk_version","app_id","env","service","version","userid","user_email","user_name","session_id","session_type","session_sampling","is_signin","os","os_version","os_version_major","browser","browser_version","browser_version_major","screen_size","network_type","device","view_id","view_referrer","view_url","view_host","view_path","view_name","view_path_group","commonFields","view_url_query","action_id","action_ids","view_in_foreground","display","session_has_replay","is_login","page_states","dataMap","view","type","VIEW","tags","view_loading_type","view_apdex_level","view_privacy_replay_level","fields","is_active","session_replay_stats","session_is_active","view_error_count","view_resource_count","view_long_task_count","view_action_count","first_contentful_paint","largest_contentful_paint","largest_contentful_paint_element_selector","cumulative_layout_shift","cumulative_layout_shift_target_selector","first_input_delay","loading_time","dom_interactive","dom_content_loaded","dom_complete","load_event","first_input_time","first_input_target_selector","first_paint_time","interaction_to_next_paint","interaction_to_next_paint_target_selector","resource_load_time","time_to_interactive","dom","dom_ready","time_spent","first_byte","frustration_count","custom_timings","resource","RESOURCE","trace_id","span_id","resource_url","resource_url_host","resource_url_path","resource_url_path_group","resource_url_query","resource_type","resource_status","resource_status_group","resource_method","duration","resource_size","resource_encode_size","resource_render_blocking_status","resource_dns","resource_tcp","resource_ssl","resource_ttfb","resource_trans","resource_redirect","resource_first_byte","resource_dns_time","resource_download_time","resource_first_byte_time","resource_connect_time","resource_ssl_time","resource_redirect_time","error","ERROR","error_id","error_source","error_type","error_handling","error_message","error_stack","error_causes","long_task","LONG_TASK","long_task_id","action","ACTION","action_type","action_name","action_error_count","action_resource_count","action_frustration_types","action_long_task_count","action_target","action_position","telemetry","status","message","error_kind","browser_log","LOGGER","error_resource_url","error_resource_url_host","error_resource_url_path","error_resource_url_path_group","error_resource_status","error_resource_status_group","error_resource_method"],"sources":["../src/dataMap.js"],"sourcesContent":["import { RumEventType } from './helper/enums'\nexport var commonTags = {\n sdk_name: '_gc.sdk_name',\n sdk_version: '_gc.sdk_version',\n app_id: 'application.id',\n env: 'env',\n service: 'service',\n version: 'version',\n userid: 'user.id',\n user_email: 'user.email',\n user_name: 'user.name',\n session_id: 'session.id',\n session_type: 'session.type',\n session_sampling: 'session.is_sampling',\n is_signin: 'user.is_signin',\n os: 'device.os',\n os_version: 'device.os_version',\n os_version_major: 'device.os_version_major',\n browser: 'device.browser',\n browser_version: 'device.browser_version',\n browser_version_major: 'device.browser_version_major',\n screen_size: 'device.screen_size',\n network_type: 'device.network_type',\n device: 'device.device',\n view_id: 'view.id',\n view_referrer: 'view.referrer',\n view_url: 'view.url',\n view_host: 'view.host',\n view_path: 'view.path',\n view_name: 'view.path', // 冗余一个字段\n view_path_group: 'view.path_group'\n}\nexport var commonFields = {\n view_url_query: 'view.url_query',\n action_id: 'action.id',\n action_ids: 'action.ids',\n view_in_foreground: 'view.in_foreground',\n display: 'display',\n session_has_replay: 'session.has_replay',\n is_login: 'user.is_login',\n page_states: '_gc.page_states'\n}\n// 需要用双引号将字符串类型的field value括起来, 这里有数组标示[string, path]\nexport var dataMap = {\n view: {\n type: RumEventType.VIEW,\n tags: {\n view_loading_type: 'view.loading_type',\n view_apdex_level: 'view.apdex_level',\n view_privacy_replay_level: 'privacy.replay_level'\n },\n fields: {\n is_active: 'view.is_active',\n session_replay_stats: '_gc.replay_stats',\n session_is_active: 'session.is_active',\n view_error_count: 'view.error.count',\n view_resource_count: 'view.resource.count',\n view_long_task_count: 'view.long_task.count',\n view_action_count: 'view.action.count',\n first_contentful_paint: 'view.first_contentful_paint',\n largest_contentful_paint: 'view.largest_contentful_paint',\n largest_contentful_paint_element_selector:\n 'view.largest_contentful_paint_element_selector',\n cumulative_layout_shift: 'view.cumulative_layout_shift',\n cumulative_layout_shift_target_selector:\n 'view.cumulative_layout_shift_target_selector',\n first_input_delay: 'view.first_input_delay',\n loading_time: 'view.loading_time',\n dom_interactive: 'view.dom_interactive',\n dom_content_loaded: 'view.dom_content_loaded',\n dom_complete: 'view.dom_complete',\n load_event: 'view.load_event',\n first_input_time: 'view.first_input_time',\n first_input_target_selector: 'view.first_input_target_selector',\n first_paint_time: 'view.fpt',\n interaction_to_next_paint: 'view.interaction_to_next_paint',\n interaction_to_next_paint_target_selector:\n 'view.interaction_to_next_paint_target_selector',\n resource_load_time: 'view.resource_load_time',\n time_to_interactive: 'view.tti',\n dom: 'view.dom',\n dom_ready: 'view.dom_ready',\n time_spent: 'view.time_spent',\n first_byte: 'view.first_byte',\n frustration_count: 'view.frustration.count',\n custom_timings: 'view.custom_timings'\n }\n },\n resource: {\n type: RumEventType.RESOURCE,\n tags: {\n trace_id: '_gc.trace_id',\n span_id: '_gc.span_id',\n resource_url: 'resource.url',\n resource_url_host: 'resource.url_host',\n resource_url_path: 'resource.url_path',\n resource_url_path_group: 'resource.url_path_group',\n resource_url_query: 'resource.url_query',\n resource_type: 'resource.type',\n resource_status: 'resource.status',\n resource_status_group: 'resource.status_group',\n resource_method: 'resource.method'\n },\n fields: {\n duration: 'resource.duration',\n resource_size: 'resource.size',\n resource_encode_size: 'resource.encode_size',\n resource_render_blocking_status: 'resource.render_blocking_status',\n resource_dns: 'resource.dns',\n resource_tcp: 'resource.tcp',\n resource_ssl: 'resource.ssl',\n resource_ttfb: 'resource.ttfb',\n resource_trans: 'resource.trans',\n resource_redirect: 'resource.redirect',\n resource_first_byte: 'resource.firstbyte',\n resource_dns_time: 'resource.dns_time',\n resource_download_time: 'resource.download_time',\n resource_first_byte_time: 'resource.first_byte_time',\n resource_connect_time: 'resource.connect_time',\n resource_ssl_time: 'resource.ssl_time',\n resource_redirect_time: 'resource.redirect_time'\n }\n },\n error: {\n type: RumEventType.ERROR,\n tags: {\n error_id: 'error.id',\n trace_id: '_gc.trace_id',\n span_id: '_gc.span_id',\n error_source: 'error.source',\n error_type: 'error.type',\n error_handling: 'error.handling'\n // resource_url: 'error.resource.url',\n // resource_url_host: 'error.resource.url_host',\n // resource_url_path: 'error.resource.url_path',\n // resource_url_path_group: 'error.resource.url_path_group',\n // resource_status: 'error.resource.status',\n // resource_status_group: 'error.resource.status_group',\n // resource_method: 'error.resource.method'\n },\n fields: {\n error_message: ['string', 'error.message'],\n error_stack: ['string', 'error.stack'],\n error_causes: ['string', 'error.causes']\n }\n },\n long_task: {\n type: RumEventType.LONG_TASK,\n tags: {\n long_task_id: 'long_task.id'\n },\n fields: {\n duration: 'long_task.duration'\n }\n },\n action: {\n type: RumEventType.ACTION,\n tags: {\n action_type: 'action.type'\n },\n fields: {\n action_name: 'action.target.name',\n duration: 'action.loading_time',\n action_error_count: 'action.error.count',\n action_resource_count: 'action.resource.count',\n action_frustration_types: 'action.frustration.type',\n action_long_task_count: 'action.long_task.count',\n action_target: '_gc.action.target',\n action_position: '_gc.action.position'\n }\n },\n telemetry: {\n type: 'telemetry',\n fields: {\n status: 'telemetry.status',\n message: ['string', 'telemetry.message'],\n type: 'telemetry.type',\n error_stack: ['string', 'telemetry.error.stack'],\n error_kind: ['string', 'telemetry.error.kind']\n }\n },\n browser_log: {\n type: RumEventType.LOGGER,\n tags: {\n error_source: 'error.source',\n error_type: 'error.type',\n error_resource_url: 'http.url',\n error_resource_url_host: 'http.url_host',\n error_resource_url_path: 'http.url_path',\n error_resource_url_path_group: 'http.url_path_group',\n error_resource_status: 'http.status_code',\n error_resource_status_group: 'http.status_group',\n error_resource_method: 'http.method',\n action_id: 'user_action.id',\n service: 'service',\n status: 'status'\n },\n fields: {\n message: ['string', 'message']\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"dataMap.js","names":["RumEventType","commonTags","sdk_name","sdk_version","app_id","env","service","version","userid","user_email","user_name","session_id","session_type","session_sampling","is_signin","os","os_version","os_version_major","browser","browser_version","browser_version_major","screen_size","network_type","device","view_id","view_referrer","view_url","view_host","view_path","view_name","view_path_group","commonFields","view_url_query","action_id","action_ids","view_in_foreground","display","session_has_replay","is_login","page_states","session_sample_rate","session_replay_sample_rate","dataMap","view","type","VIEW","tags","view_loading_type","view_apdex_level","view_privacy_replay_level","fields","sampled_for_replay","is_active","session_replay_stats","session_is_active","view_error_count","view_resource_count","view_long_task_count","view_action_count","first_contentful_paint","largest_contentful_paint","largest_contentful_paint_element_selector","cumulative_layout_shift","cumulative_layout_shift_target_selector","first_input_delay","loading_time","dom_interactive","dom_content_loaded","dom_complete","load_event","first_input_time","first_input_target_selector","first_paint_time","interaction_to_next_paint","interaction_to_next_paint_target_selector","resource_load_time","time_to_interactive","dom","dom_ready","time_spent","first_byte","frustration_count","custom_timings","resource","RESOURCE","trace_id","span_id","resource_url","resource_url_host","resource_url_path","resource_url_path_group","resource_url_query","resource_type","resource_status","resource_status_group","resource_method","duration","resource_size","resource_encode_size","resource_render_blocking_status","resource_dns","resource_tcp","resource_ssl","resource_ttfb","resource_trans","resource_redirect","resource_first_byte","resource_dns_time","resource_download_time","resource_first_byte_time","resource_connect_time","resource_ssl_time","resource_redirect_time","error","ERROR","error_id","error_source","error_type","error_handling","error_message","error_stack","error_causes","long_task","LONG_TASK","long_task_id","action","ACTION","action_type","action_name","action_error_count","action_resource_count","action_frustration_types","action_long_task_count","action_target","action_position","telemetry","status","message","error_kind","browser_log","LOGGER","error_resource_url","error_resource_url_host","error_resource_url_path","error_resource_url_path_group","error_resource_status","error_resource_status_group","error_resource_method"],"sources":["../src/dataMap.js"],"sourcesContent":["import { RumEventType } from './helper/enums'\nexport var commonTags = {\n sdk_name: '_gc.sdk_name',\n sdk_version: '_gc.sdk_version',\n app_id: 'application.id',\n env: 'env',\n service: 'service',\n version: 'version',\n userid: 'user.id',\n user_email: 'user.email',\n user_name: 'user.name',\n session_id: 'session.id',\n session_type: 'session.type',\n session_sampling: 'session.is_sampling',\n is_signin: 'user.is_signin',\n os: 'device.os',\n os_version: 'device.os_version',\n os_version_major: 'device.os_version_major',\n browser: 'device.browser',\n browser_version: 'device.browser_version',\n browser_version_major: 'device.browser_version_major',\n screen_size: 'device.screen_size',\n network_type: 'device.network_type',\n device: 'device.device',\n view_id: 'view.id',\n view_referrer: 'view.referrer',\n view_url: 'view.url',\n view_host: 'view.host',\n view_path: 'view.path',\n view_name: 'view.path', // 冗余一个字段\n view_path_group: 'view.path_group'\n}\nexport var commonFields = {\n view_url_query: 'view.url_query',\n action_id: 'action.id',\n action_ids: 'action.ids',\n view_in_foreground: 'view.in_foreground',\n display: 'display',\n session_has_replay: 'session.has_replay',\n is_login: 'user.is_login',\n page_states: '_gc.page_states',\n session_sample_rate: '_gc.configuration.session_sample_rate',\n session_replay_sample_rate: '_gc.configuration.session_replay_sample_rate'\n}\n// 需要用双引号将字符串类型的field value括起来, 这里有数组标示[string, path]\nexport var dataMap = {\n view: {\n type: RumEventType.VIEW,\n tags: {\n view_loading_type: 'view.loading_type',\n view_apdex_level: 'view.apdex_level',\n view_privacy_replay_level: 'privacy.replay_level'\n },\n fields: {\n sampled_for_replay: 'session.sampled_for_replay',\n is_active: 'view.is_active',\n session_replay_stats: '_gc.replay_stats',\n session_is_active: 'session.is_active',\n view_error_count: 'view.error.count',\n view_resource_count: 'view.resource.count',\n view_long_task_count: 'view.long_task.count',\n view_action_count: 'view.action.count',\n first_contentful_paint: 'view.first_contentful_paint',\n largest_contentful_paint: 'view.largest_contentful_paint',\n largest_contentful_paint_element_selector:\n 'view.largest_contentful_paint_element_selector',\n cumulative_layout_shift: 'view.cumulative_layout_shift',\n cumulative_layout_shift_target_selector:\n 'view.cumulative_layout_shift_target_selector',\n first_input_delay: 'view.first_input_delay',\n loading_time: 'view.loading_time',\n dom_interactive: 'view.dom_interactive',\n dom_content_loaded: 'view.dom_content_loaded',\n dom_complete: 'view.dom_complete',\n load_event: 'view.load_event',\n first_input_time: 'view.first_input_time',\n first_input_target_selector: 'view.first_input_target_selector',\n first_paint_time: 'view.fpt',\n interaction_to_next_paint: 'view.interaction_to_next_paint',\n interaction_to_next_paint_target_selector:\n 'view.interaction_to_next_paint_target_selector',\n resource_load_time: 'view.resource_load_time',\n time_to_interactive: 'view.tti',\n dom: 'view.dom',\n dom_ready: 'view.dom_ready',\n time_spent: 'view.time_spent',\n first_byte: 'view.first_byte',\n frustration_count: 'view.frustration.count',\n custom_timings: 'view.custom_timings'\n }\n },\n resource: {\n type: RumEventType.RESOURCE,\n tags: {\n trace_id: '_gc.trace_id',\n span_id: '_gc.span_id',\n resource_url: 'resource.url',\n resource_url_host: 'resource.url_host',\n resource_url_path: 'resource.url_path',\n resource_url_path_group: 'resource.url_path_group',\n resource_url_query: 'resource.url_query',\n resource_type: 'resource.type',\n resource_status: 'resource.status',\n resource_status_group: 'resource.status_group',\n resource_method: 'resource.method'\n },\n fields: {\n duration: 'resource.duration',\n resource_size: 'resource.size',\n resource_encode_size: 'resource.encode_size',\n resource_render_blocking_status: 'resource.render_blocking_status',\n resource_dns: 'resource.dns',\n resource_tcp: 'resource.tcp',\n resource_ssl: 'resource.ssl',\n resource_ttfb: 'resource.ttfb',\n resource_trans: 'resource.trans',\n resource_redirect: 'resource.redirect',\n resource_first_byte: 'resource.firstbyte',\n resource_dns_time: 'resource.dns_time',\n resource_download_time: 'resource.download_time',\n resource_first_byte_time: 'resource.first_byte_time',\n resource_connect_time: 'resource.connect_time',\n resource_ssl_time: 'resource.ssl_time',\n resource_redirect_time: 'resource.redirect_time'\n }\n },\n error: {\n type: RumEventType.ERROR,\n tags: {\n error_id: 'error.id',\n trace_id: '_gc.trace_id',\n span_id: '_gc.span_id',\n error_source: 'error.source',\n error_type: 'error.type',\n error_handling: 'error.handling'\n // resource_url: 'error.resource.url',\n // resource_url_host: 'error.resource.url_host',\n // resource_url_path: 'error.resource.url_path',\n // resource_url_path_group: 'error.resource.url_path_group',\n // resource_status: 'error.resource.status',\n // resource_status_group: 'error.resource.status_group',\n // resource_method: 'error.resource.method'\n },\n fields: {\n error_message: ['string', 'error.message'],\n error_stack: ['string', 'error.stack'],\n error_causes: ['string', 'error.causes']\n }\n },\n long_task: {\n type: RumEventType.LONG_TASK,\n tags: {\n long_task_id: 'long_task.id'\n },\n fields: {\n duration: 'long_task.duration'\n }\n },\n action: {\n type: RumEventType.ACTION,\n tags: {\n action_type: 'action.type'\n },\n fields: {\n action_name: 'action.target.name',\n duration: 'action.loading_time',\n action_error_count: 'action.error.count',\n action_resource_count: 'action.resource.count',\n action_frustration_types: 'action.frustration.type',\n action_long_task_count: 'action.long_task.count',\n action_target: '_gc.action.target',\n action_position: '_gc.action.position'\n }\n },\n telemetry: {\n type: 'telemetry',\n fields: {\n status: 'telemetry.status',\n message: ['string', 'telemetry.message'],\n type: 'telemetry.type',\n error_stack: ['string', 'telemetry.error.stack'],\n error_kind: ['string', 'telemetry.error.kind']\n }\n },\n browser_log: {\n type: RumEventType.LOGGER,\n tags: {\n error_source: 'error.source',\n error_type: 'error.type',\n error_resource_url: 'http.url',\n error_resource_url_host: 'http.url_host',\n error_resource_url_path: 'http.url_path',\n error_resource_url_path_group: 'http.url_path_group',\n error_resource_status: 'http.status_code',\n error_resource_status_group: 'http.status_group',\n error_resource_method: 'http.method',\n action_id: 'user_action.id',\n service: 'service',\n status: 'status'\n },\n fields: {\n message: ['string', 'message']\n }\n }\n}\n"],"mappings":"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"}
|
package/esm/helper/observable.js
CHANGED
|
@@ -7,7 +7,7 @@ var _Observable = function _Observable(onFirstSubscribe) {
|
|
|
7
7
|
_Observable.prototype = {
|
|
8
8
|
subscribe: function subscribe(f) {
|
|
9
9
|
if (!this.observers.length && this.onFirstSubscribe) {
|
|
10
|
-
this.onLastUnsubscribe = this.onFirstSubscribe() || undefined;
|
|
10
|
+
this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined;
|
|
11
11
|
}
|
|
12
12
|
this.observers.push(f);
|
|
13
13
|
var _this = this;
|
|
@@ -31,7 +31,7 @@ _Observable.prototype = {
|
|
|
31
31
|
export var Observable = _Observable;
|
|
32
32
|
export function mergeObservables() {
|
|
33
33
|
var observables = [].slice.call(arguments);
|
|
34
|
-
|
|
34
|
+
return new Observable(function (globalObservable) {
|
|
35
35
|
var subscriptions = map(observables, function (observable) {
|
|
36
36
|
return observable.subscribe(function (data) {
|
|
37
37
|
return globalObservable.notify(data);
|
|
@@ -43,6 +43,5 @@ export function mergeObservables() {
|
|
|
43
43
|
});
|
|
44
44
|
};
|
|
45
45
|
});
|
|
46
|
-
return globalObservable;
|
|
47
46
|
}
|
|
48
47
|
//# sourceMappingURL=observable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.js","names":["each","filter","map","_Observable","onFirstSubscribe","observers","onLastUnsubscribe","undefined","prototype","subscribe","f","length","push","_this","unsubscribe","other","notify","data","observer","Observable","mergeObservables","observables","slice","call","arguments","globalObservable","subscriptions","observable","subscription"],"sources":["../../src/helper/observable.js"],"sourcesContent":["import { each, filter, map } from './tools'\nvar _Observable = function (onFirstSubscribe) {\n this.observers = []\n this.onLastUnsubscribe = undefined\n this.onFirstSubscribe = onFirstSubscribe\n}\n_Observable.prototype = {\n subscribe: function (f) {\n if (!this.observers.length && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe() || undefined\n }\n this.observers.push(f)\n var _this = this\n return {\n unsubscribe: function () {\n _this.observers = filter(_this.observers, function (other) {\n return f !== other\n })\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe()\n }\n }\n }\n },\n notify: function (data) {\n each(this.observers, function (observer) {\n observer(data)\n })\n }\n}\nexport var Observable = _Observable\n\nexport function mergeObservables() {\n var observables = [].slice.call(arguments)\n
|
|
1
|
+
{"version":3,"file":"observable.js","names":["each","filter","map","_Observable","onFirstSubscribe","observers","onLastUnsubscribe","undefined","prototype","subscribe","f","length","push","_this","unsubscribe","other","notify","data","observer","Observable","mergeObservables","observables","slice","call","arguments","globalObservable","subscriptions","observable","subscription"],"sources":["../../src/helper/observable.js"],"sourcesContent":["import { each, filter, map } from './tools'\nvar _Observable = function (onFirstSubscribe) {\n this.observers = []\n this.onLastUnsubscribe = undefined\n this.onFirstSubscribe = onFirstSubscribe\n}\n_Observable.prototype = {\n subscribe: function (f) {\n if (!this.observers.length && this.onFirstSubscribe) {\n this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined\n }\n this.observers.push(f)\n var _this = this\n return {\n unsubscribe: function () {\n _this.observers = filter(_this.observers, function (other) {\n return f !== other\n })\n if (!_this.observers.length && _this.onLastUnsubscribe) {\n _this.onLastUnsubscribe()\n }\n }\n }\n },\n notify: function (data) {\n each(this.observers, function (observer) {\n observer(data)\n })\n }\n}\nexport var Observable = _Observable\n\nexport function mergeObservables() {\n var observables = [].slice.call(arguments)\n return new Observable(function (globalObservable) {\n var subscriptions = map(observables, function (observable) {\n return observable.subscribe(function (data) {\n return globalObservable.notify(data)\n })\n })\n return function () {\n return each(subscriptions, function (subscription) {\n return subscription.unsubscribe()\n })\n }\n })\n}\n"],"mappings":"AAAA,SAASA,IAAI,EAAEC,MAAM,EAAEC,GAAG,QAAQ,SAAS;AAC3C,IAAIC,WAAW,GAAG,SAAdA,WAAWA,CAAaC,gBAAgB,EAAE;EAC5C,IAAI,CAACC,SAAS,GAAG,EAAE;EACnB,IAAI,CAACC,iBAAiB,GAAGC,SAAS;EAClC,IAAI,CAACH,gBAAgB,GAAGA,gBAAgB;AAC1C,CAAC;AACDD,WAAW,CAACK,SAAS,GAAG;EACtBC,SAAS,EAAE,SAAAA,UAAUC,CAAC,EAAE;IACtB,IAAI,CAAC,IAAI,CAACL,SAAS,CAACM,MAAM,IAAI,IAAI,CAACP,gBAAgB,EAAE;MACnD,IAAI,CAACE,iBAAiB,GAAG,IAAI,CAACF,gBAAgB,CAAC,IAAI,CAAC,IAAIG,SAAS;IACnE;IACA,IAAI,CAACF,SAAS,CAACO,IAAI,CAACF,CAAC,CAAC;IACtB,IAAIG,KAAK,GAAG,IAAI;IAChB,OAAO;MACLC,WAAW,EAAE,SAAAA,YAAA,EAAY;QACvBD,KAAK,CAACR,SAAS,GAAGJ,MAAM,CAACY,KAAK,CAACR,SAAS,EAAE,UAAUU,KAAK,EAAE;UACzD,OAAOL,CAAC,KAAKK,KAAK;QACpB,CAAC,CAAC;QACF,IAAI,CAACF,KAAK,CAACR,SAAS,CAACM,MAAM,IAAIE,KAAK,CAACP,iBAAiB,EAAE;UACtDO,KAAK,CAACP,iBAAiB,CAAC,CAAC;QAC3B;MACF;IACF,CAAC;EACH,CAAC;EACDU,MAAM,EAAE,SAAAA,OAAUC,IAAI,EAAE;IACtBjB,IAAI,CAAC,IAAI,CAACK,SAAS,EAAE,UAAUa,QAAQ,EAAE;MACvCA,QAAQ,CAACD,IAAI,CAAC;IAChB,CAAC,CAAC;EACJ;AACF,CAAC;AACD,OAAO,IAAIE,UAAU,GAAGhB,WAAW;AAEnC,OAAO,SAASiB,gBAAgBA,CAAA,EAAG;EACjC,IAAIC,WAAW,GAAG,EAAE,CAACC,KAAK,CAACC,IAAI,CAACC,SAAS,CAAC;EAC1C,OAAO,IAAIL,UAAU,CAAC,UAAUM,gBAAgB,EAAE;IAChD,IAAIC,aAAa,GAAGxB,GAAG,CAACmB,WAAW,EAAE,UAAUM,UAAU,EAAE;MACzD,OAAOA,UAAU,CAAClB,SAAS,CAAC,UAAUQ,IAAI,EAAE;QAC1C,OAAOQ,gBAAgB,CAACT,MAAM,CAACC,IAAI,CAAC;MACtC,CAAC,CAAC;IACJ,CAAC,CAAC;IACF,OAAO,YAAY;MACjB,OAAOjB,IAAI,CAAC0B,aAAa,EAAE,UAAUE,YAAY,EAAE;QACjD,OAAOA,YAAY,CAACd,WAAW,CAAC,CAAC;MACnC,CAAC,CAAC;IACJ,CAAC;EACH,CAAC,CAAC;AACJ"}
|
|
@@ -23,7 +23,7 @@ export function initReportObservable(configuration, apis) {
|
|
|
23
23
|
return mergeObservables.apply(this, observables);
|
|
24
24
|
}
|
|
25
25
|
function createReportObservable(reportTypes) {
|
|
26
|
-
|
|
26
|
+
return new Observable(function (observable) {
|
|
27
27
|
if (!window.ReportingObserver) {
|
|
28
28
|
return;
|
|
29
29
|
}
|
|
@@ -44,7 +44,7 @@ function createReportObservable(reportTypes) {
|
|
|
44
44
|
return observable;
|
|
45
45
|
}
|
|
46
46
|
function createCspViolationReportObservable(configuration) {
|
|
47
|
-
|
|
47
|
+
return new Observable(function (observable) {
|
|
48
48
|
var handleCspViolation = function handleCspViolation(event) {
|
|
49
49
|
observable.notify(buildRawReportFromCspViolation(event));
|
|
50
50
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reportObservable.js","names":["toStackTraceString","mergeObservables","Observable","includes","safeTruncate","filter","each","addEventListener","DOM_EVENT","monitor","RawReportType","intervention","deprecation","cspViolation","initReportObservable","configuration","apis","observables","push","createCspViolationReportObservable","reportTypes","api","length","createReportObservable","apply","observable","window","ReportingObserver","handleReports","reports","report","notify","buildRawReportFromReport","observer","types","buffered","observe","disconnect","handleCspViolation","event","buildRawReportFromCspViolation","_addEventListener","document","SECURITY_POLICY_VIOLATION","stop","body","type","subtype","id","message","stack","buildStack","sourceFile","lineNumber","columnNumber","blockedURI","effectiveDirective","originalPolicy","name","func","url","line","column"],"sources":["../../src/report/reportObservable.js"],"sourcesContent":["import { toStackTraceString } from '../helper/errorTools'\nimport { mergeObservables, Observable } from '../helper/observable'\nimport { includes, safeTruncate, filter, each } from '../helper/tools'\nimport { addEventListener } from '../browser/addEventListener'\nimport { DOM_EVENT } from '../helper/enums'\nimport { monitor } from '../helper/monitor'\nexport var RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation'\n}\nexport function initReportObservable(configuration, apis) {\n var observables = []\n\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration))\n }\n\n var reportTypes = filter(apis, function (api) {\n return api !== RawReportType.cspViolation\n })\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes))\n }\n return mergeObservables.apply(this, observables)\n}\n\nfunction createReportObservable(reportTypes) {\n
|
|
1
|
+
{"version":3,"file":"reportObservable.js","names":["toStackTraceString","mergeObservables","Observable","includes","safeTruncate","filter","each","addEventListener","DOM_EVENT","monitor","RawReportType","intervention","deprecation","cspViolation","initReportObservable","configuration","apis","observables","push","createCspViolationReportObservable","reportTypes","api","length","createReportObservable","apply","observable","window","ReportingObserver","handleReports","reports","report","notify","buildRawReportFromReport","observer","types","buffered","observe","disconnect","handleCspViolation","event","buildRawReportFromCspViolation","_addEventListener","document","SECURITY_POLICY_VIOLATION","stop","body","type","subtype","id","message","stack","buildStack","sourceFile","lineNumber","columnNumber","blockedURI","effectiveDirective","originalPolicy","name","func","url","line","column"],"sources":["../../src/report/reportObservable.js"],"sourcesContent":["import { toStackTraceString } from '../helper/errorTools'\nimport { mergeObservables, Observable } from '../helper/observable'\nimport { includes, safeTruncate, filter, each } from '../helper/tools'\nimport { addEventListener } from '../browser/addEventListener'\nimport { DOM_EVENT } from '../helper/enums'\nimport { monitor } from '../helper/monitor'\nexport var RawReportType = {\n intervention: 'intervention',\n deprecation: 'deprecation',\n cspViolation: 'csp_violation'\n}\nexport function initReportObservable(configuration, apis) {\n var observables = []\n\n if (includes(apis, RawReportType.cspViolation)) {\n observables.push(createCspViolationReportObservable(configuration))\n }\n\n var reportTypes = filter(apis, function (api) {\n return api !== RawReportType.cspViolation\n })\n if (reportTypes.length) {\n observables.push(createReportObservable(reportTypes))\n }\n return mergeObservables.apply(this, observables)\n}\n\nfunction createReportObservable(reportTypes) {\n return new Observable(function (observable) {\n if (!window.ReportingObserver) {\n return\n }\n\n var handleReports = monitor(function (reports) {\n each(reports, function (report) {\n observable.notify(buildRawReportFromReport(report))\n })\n })\n\n var observer = new window.ReportingObserver(handleReports, {\n types: reportTypes,\n buffered: true\n })\n\n observer.observe()\n return function () {\n observer.disconnect()\n }\n })\n\n return observable\n}\n\nfunction createCspViolationReportObservable(configuration) {\n return new Observable(function (observable) {\n var handleCspViolation = function (event) {\n observable.notify(buildRawReportFromCspViolation(event))\n }\n\n var _addEventListener = addEventListener(\n document,\n DOM_EVENT.SECURITY_POLICY_VIOLATION,\n handleCspViolation\n )\n\n return _addEventListener.stop\n })\n return observable\n}\n\nfunction buildRawReportFromReport(report) {\n var body = report.body\n var type = report.type\n return {\n type: type,\n subtype: body.id,\n message: type + ': ' + body.message,\n stack: buildStack(\n body.id,\n body.message,\n body.sourceFile,\n body.lineNumber,\n body.columnNumber\n )\n }\n}\n\nfunction buildRawReportFromCspViolation(event) {\n var type = RawReportType.cspViolation\n var message =\n \"'\" +\n event.blockedURI +\n \"' blocked by '\" +\n event.effectiveDirective +\n \"' directive\"\n return {\n type: RawReportType.cspViolation,\n subtype: event.effectiveDirective,\n message: type + ': ' + message,\n stack: buildStack(\n event.effectiveDirective,\n message +\n ' of the policy \"' +\n safeTruncate(event.originalPolicy, 100, '...') +\n '\"',\n event.sourceFile,\n event.lineNumber,\n event.columnNumber\n )\n }\n}\n\nfunction buildStack(name, message, sourceFile, lineNumber, columnNumber) {\n return (\n sourceFile &&\n toStackTraceString({\n name: name,\n message: message,\n stack: [\n {\n func: '?',\n url: sourceFile,\n line: lineNumber,\n column: columnNumber\n }\n ]\n })\n )\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcare/browser-core",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.8",
|
|
4
4
|
"main": "cjs/index.js",
|
|
5
5
|
"module": "esm/index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -20,5 +20,5 @@
|
|
|
20
20
|
"author": "dataflux",
|
|
21
21
|
"license": "MIT",
|
|
22
22
|
"description": "DataFlux RUM Web 端数据指标监控",
|
|
23
|
-
"gitHead": "
|
|
23
|
+
"gitHead": "f4f753b59bd0d1c51501b6c4e6333a3e3d5d6f16"
|
|
24
24
|
}
|
|
@@ -14,7 +14,7 @@ export function initFetchObservable() {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
function createFetchObservable() {
|
|
17
|
-
|
|
17
|
+
return new Observable(function (observable) {
|
|
18
18
|
if (!window.fetch) {
|
|
19
19
|
return
|
|
20
20
|
}
|
|
@@ -50,13 +50,24 @@ function createFetchObservable() {
|
|
|
50
50
|
)
|
|
51
51
|
return fetchMethod.stop
|
|
52
52
|
})
|
|
53
|
-
|
|
54
|
-
return observable
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
function beforeSend(observable, input, init) {
|
|
56
|
+
// var method =
|
|
57
|
+
// (init && init.method) || (input instanceof Request && input.method) || 'GET'
|
|
58
|
+
// const methodFromParams =
|
|
59
|
+
// (init && init.method) || (input instanceof Request && input.method)
|
|
60
|
+
// const method = methodFromParams ? methodFromParams.toUpperCase() : 'GET'
|
|
61
|
+
var methodFromParams = init && init.method
|
|
62
|
+
|
|
63
|
+
if (methodFromParams === undefined && input instanceof Request) {
|
|
64
|
+
methodFromParams = input.method
|
|
65
|
+
}
|
|
66
|
+
|
|
58
67
|
var method =
|
|
59
|
-
|
|
68
|
+
methodFromParams !== undefined
|
|
69
|
+
? String(methodFromParams).toUpperCase()
|
|
70
|
+
: 'GET'
|
|
60
71
|
var url = input instanceof Request ? input.url : normalizeUrl(String(input))
|
|
61
72
|
|
|
62
73
|
var startClocks = clocksNow()
|
|
@@ -13,7 +13,7 @@ export var PageExitReason = {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export function createPageExitObservable() {
|
|
16
|
-
|
|
16
|
+
return new Observable(function (observable) {
|
|
17
17
|
/**
|
|
18
18
|
* Only event that guarantee to fire on mobile devices when the page transitions to background state
|
|
19
19
|
* (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.
|
|
@@ -60,8 +60,6 @@ export function createPageExitObservable() {
|
|
|
60
60
|
beforeUnloadListener.stop()
|
|
61
61
|
}
|
|
62
62
|
})
|
|
63
|
-
|
|
64
|
-
return observable
|
|
65
63
|
}
|
|
66
64
|
|
|
67
65
|
export function isPageExitReason(reason) {
|
|
@@ -21,7 +21,7 @@ export function initXhrObservable() {
|
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
function createXhrObservable() {
|
|
24
|
-
|
|
24
|
+
return new Observable(function (observable) {
|
|
25
25
|
var openInstrumentMethod = instrumentMethodAndCallOriginal(
|
|
26
26
|
XMLHttpRequest.prototype,
|
|
27
27
|
'open',
|
|
@@ -54,7 +54,6 @@ function createXhrObservable() {
|
|
|
54
54
|
abortInstrumentMethod.stop()
|
|
55
55
|
}
|
|
56
56
|
})
|
|
57
|
-
return observable
|
|
58
57
|
}
|
|
59
58
|
|
|
60
59
|
function openXhr(method, url) {
|
|
@@ -62,7 +61,7 @@ function openXhr(method, url) {
|
|
|
62
61
|
this[DATA_FLUX_REQUEST_ID_KEY] = requestUUID
|
|
63
62
|
xhrContexts[requestUUID] = {
|
|
64
63
|
state: 'open',
|
|
65
|
-
method: method,
|
|
64
|
+
method: String(method).toUpperCase(),
|
|
66
65
|
url: normalizeUrl(String(url))
|
|
67
66
|
}
|
|
68
67
|
}
|
|
@@ -24,7 +24,7 @@ export function initConsoleObservable(apis) {
|
|
|
24
24
|
|
|
25
25
|
/* eslint-disable no-console */
|
|
26
26
|
function createConsoleObservable(api) {
|
|
27
|
-
|
|
27
|
+
return new Observable(function (observable) {
|
|
28
28
|
var originalConsoleApi = console[api]
|
|
29
29
|
console[api] = function () {
|
|
30
30
|
var params = [].slice.call(arguments)
|
package/src/dataMap.js
CHANGED
|
@@ -38,7 +38,9 @@ export var commonFields = {
|
|
|
38
38
|
display: 'display',
|
|
39
39
|
session_has_replay: 'session.has_replay',
|
|
40
40
|
is_login: 'user.is_login',
|
|
41
|
-
page_states: '_gc.page_states'
|
|
41
|
+
page_states: '_gc.page_states',
|
|
42
|
+
session_sample_rate: '_gc.configuration.session_sample_rate',
|
|
43
|
+
session_replay_sample_rate: '_gc.configuration.session_replay_sample_rate'
|
|
42
44
|
}
|
|
43
45
|
// 需要用双引号将字符串类型的field value括起来, 这里有数组标示[string, path]
|
|
44
46
|
export var dataMap = {
|
|
@@ -50,6 +52,7 @@ export var dataMap = {
|
|
|
50
52
|
view_privacy_replay_level: 'privacy.replay_level'
|
|
51
53
|
},
|
|
52
54
|
fields: {
|
|
55
|
+
sampled_for_replay: 'session.sampled_for_replay',
|
|
53
56
|
is_active: 'view.is_active',
|
|
54
57
|
session_replay_stats: '_gc.replay_stats',
|
|
55
58
|
session_is_active: 'session.is_active',
|
package/src/helper/observable.js
CHANGED
|
@@ -7,7 +7,7 @@ var _Observable = function (onFirstSubscribe) {
|
|
|
7
7
|
_Observable.prototype = {
|
|
8
8
|
subscribe: function (f) {
|
|
9
9
|
if (!this.observers.length && this.onFirstSubscribe) {
|
|
10
|
-
this.onLastUnsubscribe = this.onFirstSubscribe() || undefined
|
|
10
|
+
this.onLastUnsubscribe = this.onFirstSubscribe(this) || undefined
|
|
11
11
|
}
|
|
12
12
|
this.observers.push(f)
|
|
13
13
|
var _this = this
|
|
@@ -32,7 +32,7 @@ export var Observable = _Observable
|
|
|
32
32
|
|
|
33
33
|
export function mergeObservables() {
|
|
34
34
|
var observables = [].slice.call(arguments)
|
|
35
|
-
|
|
35
|
+
return new Observable(function (globalObservable) {
|
|
36
36
|
var subscriptions = map(observables, function (observable) {
|
|
37
37
|
return observable.subscribe(function (data) {
|
|
38
38
|
return globalObservable.notify(data)
|
|
@@ -44,5 +44,4 @@ export function mergeObservables() {
|
|
|
44
44
|
})
|
|
45
45
|
}
|
|
46
46
|
})
|
|
47
|
-
return globalObservable
|
|
48
47
|
}
|
|
@@ -26,7 +26,7 @@ export function initReportObservable(configuration, apis) {
|
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
function createReportObservable(reportTypes) {
|
|
29
|
-
|
|
29
|
+
return new Observable(function (observable) {
|
|
30
30
|
if (!window.ReportingObserver) {
|
|
31
31
|
return
|
|
32
32
|
}
|
|
@@ -52,7 +52,7 @@ function createReportObservable(reportTypes) {
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
function createCspViolationReportObservable(configuration) {
|
|
55
|
-
|
|
55
|
+
return new Observable(function (observable) {
|
|
56
56
|
var handleCspViolation = function (event) {
|
|
57
57
|
observable.notify(buildRawReportFromCspViolation(event))
|
|
58
58
|
}
|