@cloudcare/browser-core 3.1.2 → 3.1.5
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/cookie.js +18 -2
- package/cjs/browser/cookie.js.map +1 -1
- package/cjs/browser/htmlDomUtils.js +4 -1
- package/cjs/browser/htmlDomUtils.js.map +1 -1
- package/cjs/configuration/configuration.js +20 -1
- package/cjs/configuration/configuration.js.map +1 -1
- package/cjs/configuration/transportConfiguration.js +15 -6
- package/cjs/configuration/transportConfiguration.js.map +1 -1
- package/cjs/dataMap.js +7 -3
- package/cjs/dataMap.js.map +1 -1
- package/cjs/helper/deviceInfo.js +23 -21
- package/cjs/helper/deviceInfo.js.map +1 -1
- package/cjs/helper/errorTools.js +2 -1
- package/cjs/helper/errorTools.js.map +1 -1
- package/cjs/helper/monitor.js +1 -0
- package/cjs/helper/monitor.js.map +1 -1
- package/cjs/helper/serialisation/rowData.js +7 -5
- package/cjs/helper/serialisation/rowData.js.map +1 -1
- package/cjs/helper/tools.js +67 -18
- package/cjs/helper/tools.js.map +1 -1
- package/cjs/transport/batch.js +23 -10
- package/cjs/transport/batch.js.map +1 -1
- package/cjs/transport/httpRequest.js +31 -12
- package/cjs/transport/httpRequest.js.map +1 -1
- package/cjs/transport/startBatchWithReplica.js +2 -2
- package/cjs/transport/startBatchWithReplica.js.map +1 -1
- package/esm/browser/cookie.js +17 -3
- package/esm/browser/cookie.js.map +1 -1
- package/esm/browser/htmlDomUtils.js +3 -1
- package/esm/browser/htmlDomUtils.js.map +1 -1
- package/esm/configuration/configuration.js +19 -1
- package/esm/configuration/configuration.js.map +1 -1
- package/esm/configuration/transportConfiguration.js +15 -6
- package/esm/configuration/transportConfiguration.js.map +1 -1
- package/esm/dataMap.js +7 -3
- package/esm/dataMap.js.map +1 -1
- package/esm/helper/deviceInfo.js +23 -21
- package/esm/helper/deviceInfo.js.map +1 -1
- package/esm/helper/errorTools.js +1 -0
- package/esm/helper/errorTools.js.map +1 -1
- package/esm/helper/monitor.js +1 -0
- package/esm/helper/monitor.js.map +1 -1
- package/esm/helper/serialisation/rowData.js +8 -6
- package/esm/helper/serialisation/rowData.js.map +1 -1
- package/esm/helper/tools.js +63 -17
- package/esm/helper/tools.js.map +1 -1
- package/esm/transport/batch.js +24 -11
- package/esm/transport/batch.js.map +1 -1
- package/esm/transport/httpRequest.js +31 -12
- package/esm/transport/httpRequest.js.map +1 -1
- package/esm/transport/startBatchWithReplica.js +2 -2
- package/esm/transport/startBatchWithReplica.js.map +1 -1
- package/package.json +2 -2
- package/src/browser/cookie.js +22 -3
- package/src/browser/htmlDomUtils.js +3 -1
- package/src/configuration/configuration.js +29 -2
- package/src/configuration/transportConfiguration.js +19 -13
- package/src/dataMap.js +9 -3
- package/src/helper/deviceInfo.js +23 -20
- package/src/helper/errorTools.js +1 -0
- package/src/helper/monitor.js +1 -0
- package/src/helper/serialisation/rowData.js +9 -6
- package/src/helper/tools.js +71 -18
- package/src/transport/batch.js +28 -12
- package/src/transport/httpRequest.js +46 -11
- package/src/transport/startBatchWithReplica.js +3 -1
- package/src/.DS_Store +0 -0
package/cjs/transport/batch.js
CHANGED
|
@@ -11,6 +11,7 @@ var _dataMap = require("../dataMap");
|
|
|
11
11
|
var _enums = require("../helper/enums");
|
|
12
12
|
var _byteUtils = require("../helper/byteUtils");
|
|
13
13
|
var _pageExitObservable = require("../browser/pageExitObservable");
|
|
14
|
+
var _jsonStringify = require("../helper/serialisation/jsonStringify");
|
|
14
15
|
// https://en.wikipedia.org/wiki/UTF-8
|
|
15
16
|
// eslint-disable-next-line no-control-regex
|
|
16
17
|
var HAS_MULTI_BYTES_CHARACTERS = /[^\u0000-\u007F]/;
|
|
@@ -37,7 +38,7 @@ var processedMessageByDataMap = function processedMessageByDataMap(message) {
|
|
|
37
38
|
var _value = (0, _tools.findByPath)(message, value_path);
|
|
38
39
|
filterFileds.push(_key);
|
|
39
40
|
if (_value || (0, _tools.isNumber)(_value)) {
|
|
40
|
-
rowData.tags[_key] = (0, _rowData.escapeJsonValue)(_value);
|
|
41
|
+
rowData.tags[_key] = (0, _rowData.escapeJsonValue)(_value, true);
|
|
41
42
|
tagsStr.push((0, _rowData.escapeRowData)(_key) + '=' + (0, _rowData.escapeRowData)(_value));
|
|
42
43
|
}
|
|
43
44
|
});
|
|
@@ -49,14 +50,14 @@ var processedMessageByDataMap = function processedMessageByDataMap(message) {
|
|
|
49
50
|
var _valueData = (0, _tools.findByPath)(message, value_path);
|
|
50
51
|
filterFileds.push(_key);
|
|
51
52
|
if (_valueData !== undefined && _valueData !== null) {
|
|
52
|
-
rowData.fields[_key] = _valueData; // 这里不需要转译
|
|
53
|
+
rowData.fields[_key] = (0, _rowData.escapeJsonValue)(_valueData); // 这里不需要转译
|
|
53
54
|
fieldsStr.push((0, _rowData.escapeRowData)(_key) + '=' + (0, _rowData.escapeRowField)(_valueData));
|
|
54
55
|
}
|
|
55
56
|
} else if ((0, _tools.isString)(_value)) {
|
|
56
57
|
var _valueData = (0, _tools.findByPath)(message, _value);
|
|
57
58
|
filterFileds.push(_key);
|
|
58
59
|
if (_valueData !== undefined && _valueData !== null) {
|
|
59
|
-
rowData.fields[_key] = _valueData; // 这里不需要转译
|
|
60
|
+
rowData.fields[_key] = (0, _rowData.escapeJsonValue)(_valueData); // 这里不需要转译
|
|
60
61
|
fieldsStr.push((0, _rowData.escapeRowData)(_key) + '=' + (0, _rowData.escapeRowField)(_valueData));
|
|
61
62
|
}
|
|
62
63
|
}
|
|
@@ -70,12 +71,12 @@ var processedMessageByDataMap = function processedMessageByDataMap(message) {
|
|
|
70
71
|
filterFileds.push(_key);
|
|
71
72
|
if (_value !== undefined && _value !== null) {
|
|
72
73
|
_tagKeys.push(_key);
|
|
73
|
-
rowData.fields[_key] = _value; // 这里不需要转译
|
|
74
|
+
rowData.fields[_key] = (0, _rowData.escapeJsonValue)(_value); // 这里不需要转译
|
|
74
75
|
fieldsStr.push((0, _rowData.escapeRowData)(_key) + '=' + (0, _rowData.escapeRowField)(_value));
|
|
75
76
|
}
|
|
76
77
|
});
|
|
77
78
|
if (_tagKeys.length) {
|
|
78
|
-
rowData.fields[CUSTOM_KEYS] = (0, _rowData.
|
|
79
|
+
rowData.fields[CUSTOM_KEYS] = (0, _rowData.escapeJsonValue)(_tagKeys);
|
|
79
80
|
fieldsStr.push((0, _rowData.escapeRowData)(CUSTOM_KEYS) + '=' + (0, _rowData.escapeRowField)(_tagKeys));
|
|
80
81
|
}
|
|
81
82
|
}
|
|
@@ -83,7 +84,7 @@ var processedMessageByDataMap = function processedMessageByDataMap(message) {
|
|
|
83
84
|
// 这里处理日志类型数据自定义字段
|
|
84
85
|
(0, _tools.each)(message, function (value, key) {
|
|
85
86
|
if (filterFileds.indexOf(key) === -1 && value !== undefined && value !== null) {
|
|
86
|
-
rowData.fields[key] = value; // 这里不需要转译
|
|
87
|
+
rowData.fields[key] = (0, _rowData.escapeJsonValue)(value); // 这里不需要转译
|
|
87
88
|
fieldsStr.push((0, _rowData.escapeRowData)(key) + '=' + (0, _rowData.escapeRowField)(value));
|
|
88
89
|
}
|
|
89
90
|
});
|
|
@@ -97,7 +98,7 @@ var processedMessageByDataMap = function processedMessageByDataMap(message) {
|
|
|
97
98
|
hasFileds = true;
|
|
98
99
|
}
|
|
99
100
|
rowStr = rowStr + ' ' + message.date;
|
|
100
|
-
rowData.time =
|
|
101
|
+
rowData.time = message.date; // 这里不需要转译
|
|
101
102
|
}
|
|
102
103
|
});
|
|
103
104
|
|
|
@@ -107,12 +108,13 @@ var processedMessageByDataMap = function processedMessageByDataMap(message) {
|
|
|
107
108
|
};
|
|
108
109
|
};
|
|
109
110
|
exports.processedMessageByDataMap = processedMessageByDataMap;
|
|
110
|
-
var batch = function batch(request, flushController, messageBytesLimit) {
|
|
111
|
+
var batch = function batch(request, flushController, messageBytesLimit, sendContentTypeByJson) {
|
|
111
112
|
this.pushOnlyBuffer = [];
|
|
112
113
|
this.upsertBuffer = {};
|
|
113
114
|
this.request = request;
|
|
114
115
|
this.flushController = flushController;
|
|
115
116
|
this.messageBytesLimit = messageBytesLimit;
|
|
117
|
+
this.sendContentTypeByJson = sendContentTypeByJson;
|
|
116
118
|
var _this = this;
|
|
117
119
|
this.flushController.flushObservable.subscribe(function (event) {
|
|
118
120
|
_this.flush(event);
|
|
@@ -129,8 +131,14 @@ batch.prototype.flush = function (event) {
|
|
|
129
131
|
this.pushOnlyBuffer = [];
|
|
130
132
|
this.upsertBuffer = {};
|
|
131
133
|
if (messages.length > 0) {
|
|
134
|
+
var payloadData = '';
|
|
135
|
+
if (this.sendContentTypeByJson) {
|
|
136
|
+
payloadData = '[' + messages.join(',') + ']';
|
|
137
|
+
} else {
|
|
138
|
+
payloadData = messages.join('\n');
|
|
139
|
+
}
|
|
132
140
|
var payload = {
|
|
133
|
-
data:
|
|
141
|
+
data: payloadData,
|
|
134
142
|
bytesCount: event.bytesCount,
|
|
135
143
|
flushReason: event.reason
|
|
136
144
|
};
|
|
@@ -155,7 +163,12 @@ batch.prototype.addOrUpdate = function (message, key) {
|
|
|
155
163
|
this.push(processedMessage, messageBytesCount, key);
|
|
156
164
|
};
|
|
157
165
|
batch.prototype.process = function (message) {
|
|
158
|
-
var processedMessage =
|
|
166
|
+
var processedMessage = '';
|
|
167
|
+
if (this.sendContentTypeByJson) {
|
|
168
|
+
processedMessage = (0, _jsonStringify.jsonStringify)(processedMessageByDataMap(message).rowData);
|
|
169
|
+
} else {
|
|
170
|
+
processedMessage = processedMessageByDataMap(message).rowStr;
|
|
171
|
+
}
|
|
159
172
|
var messageBytesCount = (0, _byteUtils.computeBytesCount)(processedMessage);
|
|
160
173
|
return {
|
|
161
174
|
processedMessage: processedMessage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.js","names":["_display","require","_tools","_rowData","_dataMap","_enums","_byteUtils","_pageExitObservable","HAS_MULTI_BYTES_CHARACTERS","CUSTOM_KEYS","processedMessageByDataMap","message","type","rowStr","rowData","undefined","tags","fields","hasFileds","each","dataMap","value","key","measurement","tagsStr","extend","commonTags","filterFileds","value_path","_key","_value","findByPath","push","isNumber","escapeJsonValue","escapeRowData","fieldsStr","commonFields","isArray","length","_valueData","escapeRowField","isString","context","isObject","isEmptyObject","_tagKeys","indexOf","RumEventType","LOGGER","join","date","time","toServerDuration","exports","batch","request","flushController","messageBytesLimit","pushOnlyBuffer","upsertBuffer","_this","flushObservable","subscribe","event","flush","prototype","add","addOrUpdate","upsert","messages","concat","values","payload","data","bytesCount","flushReason","reason","isPageExitReason","sendOnExit","send","_process","process","processedMessage","messageBytesCount","display","warn","hasMessageFor","remove","computeBytesCount","separatorBytesCount","getMessagesCount","notifyBeforeAddMessage","notifyAfterAddMessage","removedMessage","notifyAfterRemoveMessage","Batch"],"sources":["../../src/transport/batch.js"],"sourcesContent":["import { display } from '../helper/display'\nimport {\n values,\n findByPath,\n each,\n isNumber,\n isArray,\n extend,\n isString,\n toServerDuration,\n isBoolean,\n isEmptyObject,\n isObject\n} from '../helper/tools'\nimport {\n escapeJsonValue,\n escapeRowField,\n escapeRowData\n} from '../helper/serialisation/rowData'\nimport { commonTags, dataMap, commonFields } from '../dataMap'\nimport { RumEventType } from '../helper/enums'\nimport { computeBytesCount } from '../helper/byteUtils'\nimport { isPageExitReason } from '../browser/pageExitObservable'\n// https://en.wikipedia.org/wiki/UTF-8\n// eslint-disable-next-line no-control-regex\nvar HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/\nvar CUSTOM_KEYS = 'custom_keys'\nexport var processedMessageByDataMap = function (message) {\n if (!message || !message.type)\n return {\n rowStr: '',\n rowData: undefined\n }\n\n var rowData = { tags: {}, fields: {} }\n var hasFileds = false\n var rowStr = ''\n each(dataMap, function (value, key) {\n if (value.type === message.type) {\n rowStr += key + ','\n rowData.measurement = key\n var tagsStr = []\n var tags = extend({}, commonTags, value.tags)\n var filterFileds = ['date', 'type', CUSTOM_KEYS] // 已经在datamap中定义过的fields和tags\n each(tags, function (value_path, _key) {\n var _value = findByPath(message, value_path)\n filterFileds.push(_key)\n if (_value || isNumber(_value)) {\n rowData.tags[_key] = escapeJsonValue(_value)\n tagsStr.push(escapeRowData(_key) + '=' + escapeRowData(_value))\n }\n })\n\n var fieldsStr = []\n var fields = extend({}, commonFields, value.fields)\n each(fields, function (_value, _key) {\n if (isArray(_value) && _value.length === 2) {\n var value_path = _value[1]\n var _valueData = findByPath(message, value_path)\n filterFileds.push(_key)\n if (_valueData !== undefined && _valueData !== null) {\n rowData.fields[_key] = _valueData // 这里不需要转译\n fieldsStr.push(\n escapeRowData(_key) + '=' + escapeRowField(_valueData)\n )\n }\n } else if (isString(_value)) {\n var _valueData = findByPath(message, _value)\n filterFileds.push(_key)\n if (_valueData !== undefined && _valueData !== null) {\n rowData.fields[_key] = _valueData // 这里不需要转译\n fieldsStr.push(\n escapeRowData(_key) + '=' + escapeRowField(_valueData)\n )\n }\n }\n })\n if (\n message.context &&\n isObject(message.context) &&\n !isEmptyObject(message.context)\n ) {\n // 自定义tag, 存储成field\n var _tagKeys = []\n each(message.context, function (_value, _key) {\n // 如果和之前tag重名,则舍弃\n if (filterFileds.indexOf(_key) > -1) return\n filterFileds.push(_key)\n if (_value !== undefined && _value !== null) {\n _tagKeys.push(_key)\n rowData.fields[_key] = _value // 这里不需要转译\n fieldsStr.push(escapeRowData(_key) + '=' + escapeRowField(_value))\n }\n })\n if (_tagKeys.length) {\n rowData.fields[CUSTOM_KEYS] = escapeRowField(_tagKeys)\n fieldsStr.push(\n escapeRowData(CUSTOM_KEYS) + '=' + escapeRowField(_tagKeys)\n )\n }\n }\n if (message.type === RumEventType.LOGGER) {\n // 这里处理日志类型数据自定义字段\n each(message, function (value, key) {\n if (\n filterFileds.indexOf(key) === -1 &&\n value !== undefined &&\n value !== null\n ) {\n rowData.fields[key] = value // 这里不需要转译\n fieldsStr.push(escapeRowData(key) + '=' + escapeRowField(value))\n }\n })\n }\n if (tagsStr.length) {\n rowStr += tagsStr.join(',')\n }\n if (fieldsStr.length) {\n rowStr += ' '\n rowStr += fieldsStr.join(',')\n hasFileds = true\n }\n rowStr = rowStr + ' ' + message.date\n rowData.time = toServerDuration(message.date) // 这里不需要转译\n }\n })\n return {\n rowStr: hasFileds ? rowStr : '',\n rowData: hasFileds ? rowData : undefined\n }\n}\nvar batch = function (request, flushController, messageBytesLimit) {\n this.pushOnlyBuffer = []\n this.upsertBuffer = {}\n this.request = request\n this.flushController = flushController\n this.messageBytesLimit = messageBytesLimit\n var _this = this\n this.flushController.flushObservable.subscribe(function (event) {\n _this.flush(event)\n })\n}\nbatch.prototype.add = function (message) {\n this.addOrUpdate(message)\n}\nbatch.prototype.upsert = function (message, key) {\n this.addOrUpdate(message, key)\n}\nbatch.prototype.flush = function (event) {\n var messages = this.pushOnlyBuffer.concat(values(this.upsertBuffer))\n this.pushOnlyBuffer = []\n this.upsertBuffer = {}\n if (messages.length > 0) {\n var payload = {\n data: messages.join('\\n'),\n bytesCount: event.bytesCount,\n flushReason: event.reason\n }\n if (isPageExitReason(event.reason)) {\n this.request.sendOnExit(payload)\n } else {\n this.request.send(payload)\n }\n }\n}\n\nbatch.prototype.addOrUpdate = function (message, key) {\n var _process = this.process(message)\n var processedMessage = _process.processedMessage\n var messageBytesCount = _process.messageBytesCount\n if (messageBytesCount >= this.messageBytesLimit) {\n display.warn(\n 'Discarded a message whose size was bigger than the maximum allowed size ' +\n this.messageBytesLimit +\n 'KB.'\n )\n return\n }\n if (this.hasMessageFor(key)) {\n this.remove(key)\n }\n this.push(processedMessage, messageBytesCount, key)\n}\nbatch.prototype.process = function (message) {\n var processedMessage = processedMessageByDataMap(message).rowStr\n var messageBytesCount = computeBytesCount(processedMessage)\n return {\n processedMessage: processedMessage,\n messageBytesCount: messageBytesCount\n }\n}\n\nbatch.prototype.push = function (processedMessage, messageBytesCount, key) {\n var separatorBytesCount = this.flushController.getMessagesCount() > 0 ? 1 : 0\n this.flushController.notifyBeforeAddMessage(\n messageBytesCount + separatorBytesCount\n )\n if (key !== undefined) {\n this.upsertBuffer[key] = processedMessage\n } else {\n this.pushOnlyBuffer.push(processedMessage)\n }\n this.flushController.notifyAfterAddMessage()\n}\n\nbatch.prototype.remove = function (key) {\n var removedMessage = this.upsertBuffer[key]\n delete this.upsertBuffer[key]\n var messageBytesCount = computeBytesCount(removedMessage)\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.getMessagesCount() > 1 ? 1 : 0\n this.flushController.notifyAfterRemoveMessage(\n messageBytesCount + separatorBytesCount\n )\n}\n\nbatch.prototype.hasMessageFor = function (key) {\n return key !== undefined && this.upsertBuffer[key] !== undefined\n}\nexport var Batch = batch\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"batch.js","names":["_display","require","_tools","_rowData","_dataMap","_enums","_byteUtils","_pageExitObservable","_jsonStringify","HAS_MULTI_BYTES_CHARACTERS","CUSTOM_KEYS","processedMessageByDataMap","message","type","rowStr","rowData","undefined","tags","fields","hasFileds","each","dataMap","value","key","measurement","tagsStr","extend","commonTags","filterFileds","value_path","_key","_value","findByPath","push","isNumber","escapeJsonValue","escapeRowData","fieldsStr","commonFields","isArray","length","_valueData","escapeRowField","isString","context","isObject","isEmptyObject","_tagKeys","indexOf","RumEventType","LOGGER","join","date","time","exports","batch","request","flushController","messageBytesLimit","sendContentTypeByJson","pushOnlyBuffer","upsertBuffer","_this","flushObservable","subscribe","event","flush","prototype","add","addOrUpdate","upsert","messages","concat","values","payloadData","payload","data","bytesCount","flushReason","reason","isPageExitReason","sendOnExit","send","_process","process","processedMessage","messageBytesCount","display","warn","hasMessageFor","remove","jsonStringify","computeBytesCount","separatorBytesCount","getMessagesCount","notifyBeforeAddMessage","notifyAfterAddMessage","removedMessage","notifyAfterRemoveMessage","Batch"],"sources":["../../src/transport/batch.js"],"sourcesContent":["import { display } from '../helper/display'\nimport {\n values,\n findByPath,\n each,\n isNumber,\n isArray,\n extend,\n isString,\n isEmptyObject,\n isObject\n} from '../helper/tools'\nimport {\n escapeJsonValue,\n escapeRowField,\n escapeRowData\n} from '../helper/serialisation/rowData'\nimport { commonTags, dataMap, commonFields } from '../dataMap'\nimport { RumEventType } from '../helper/enums'\nimport { computeBytesCount } from '../helper/byteUtils'\nimport { isPageExitReason } from '../browser/pageExitObservable'\nimport { jsonStringify } from '../helper/serialisation/jsonStringify'\n// https://en.wikipedia.org/wiki/UTF-8\n// eslint-disable-next-line no-control-regex\nvar HAS_MULTI_BYTES_CHARACTERS = /[^\\u0000-\\u007F]/\nvar CUSTOM_KEYS = 'custom_keys'\nexport var processedMessageByDataMap = function (message) {\n if (!message || !message.type)\n return {\n rowStr: '',\n rowData: undefined\n }\n\n var rowData = { tags: {}, fields: {} }\n var hasFileds = false\n var rowStr = ''\n each(dataMap, function (value, key) {\n if (value.type === message.type) {\n rowStr += key + ','\n rowData.measurement = key\n var tagsStr = []\n var tags = extend({}, commonTags, value.tags)\n var filterFileds = ['date', 'type', CUSTOM_KEYS] // 已经在datamap中定义过的fields和tags\n each(tags, function (value_path, _key) {\n var _value = findByPath(message, value_path)\n filterFileds.push(_key)\n if (_value || isNumber(_value)) {\n rowData.tags[_key] = escapeJsonValue(_value, true)\n tagsStr.push(escapeRowData(_key) + '=' + escapeRowData(_value))\n }\n })\n\n var fieldsStr = []\n var fields = extend({}, commonFields, value.fields)\n each(fields, function (_value, _key) {\n if (isArray(_value) && _value.length === 2) {\n var value_path = _value[1]\n var _valueData = findByPath(message, value_path)\n filterFileds.push(_key)\n if (_valueData !== undefined && _valueData !== null) {\n rowData.fields[_key] = escapeJsonValue(_valueData) // 这里不需要转译\n fieldsStr.push(\n escapeRowData(_key) + '=' + escapeRowField(_valueData)\n )\n }\n } else if (isString(_value)) {\n var _valueData = findByPath(message, _value)\n filterFileds.push(_key)\n if (_valueData !== undefined && _valueData !== null) {\n rowData.fields[_key] = escapeJsonValue(_valueData) // 这里不需要转译\n fieldsStr.push(\n escapeRowData(_key) + '=' + escapeRowField(_valueData)\n )\n }\n }\n })\n if (\n message.context &&\n isObject(message.context) &&\n !isEmptyObject(message.context)\n ) {\n // 自定义tag, 存储成field\n var _tagKeys = []\n each(message.context, function (_value, _key) {\n // 如果和之前tag重名,则舍弃\n if (filterFileds.indexOf(_key) > -1) return\n filterFileds.push(_key)\n if (_value !== undefined && _value !== null) {\n _tagKeys.push(_key)\n rowData.fields[_key] = escapeJsonValue(_value) // 这里不需要转译\n fieldsStr.push(escapeRowData(_key) + '=' + escapeRowField(_value))\n }\n })\n if (_tagKeys.length) {\n rowData.fields[CUSTOM_KEYS] = escapeJsonValue(_tagKeys)\n fieldsStr.push(\n escapeRowData(CUSTOM_KEYS) + '=' + escapeRowField(_tagKeys)\n )\n }\n }\n if (message.type === RumEventType.LOGGER) {\n // 这里处理日志类型数据自定义字段\n each(message, function (value, key) {\n if (\n filterFileds.indexOf(key) === -1 &&\n value !== undefined &&\n value !== null\n ) {\n rowData.fields[key] = escapeJsonValue(value) // 这里不需要转译\n fieldsStr.push(escapeRowData(key) + '=' + escapeRowField(value))\n }\n })\n }\n if (tagsStr.length) {\n rowStr += tagsStr.join(',')\n }\n if (fieldsStr.length) {\n rowStr += ' '\n rowStr += fieldsStr.join(',')\n hasFileds = true\n }\n rowStr = rowStr + ' ' + message.date\n rowData.time = message.date // 这里不需要转译\n }\n })\n return {\n rowStr: hasFileds ? rowStr : '',\n rowData: hasFileds ? rowData : undefined\n }\n}\nvar batch = function (\n request,\n flushController,\n messageBytesLimit,\n sendContentTypeByJson\n) {\n this.pushOnlyBuffer = []\n this.upsertBuffer = {}\n this.request = request\n this.flushController = flushController\n this.messageBytesLimit = messageBytesLimit\n this.sendContentTypeByJson = sendContentTypeByJson\n var _this = this\n this.flushController.flushObservable.subscribe(function (event) {\n _this.flush(event)\n })\n}\nbatch.prototype.add = function (message) {\n this.addOrUpdate(message)\n}\nbatch.prototype.upsert = function (message, key) {\n this.addOrUpdate(message, key)\n}\nbatch.prototype.flush = function (event) {\n var messages = this.pushOnlyBuffer.concat(values(this.upsertBuffer))\n this.pushOnlyBuffer = []\n this.upsertBuffer = {}\n if (messages.length > 0) {\n var payloadData = ''\n if (this.sendContentTypeByJson) {\n payloadData = '[' + messages.join(',') + ']'\n } else {\n payloadData = messages.join('\\n')\n }\n var payload = {\n data: payloadData,\n bytesCount: event.bytesCount,\n flushReason: event.reason\n }\n if (isPageExitReason(event.reason)) {\n this.request.sendOnExit(payload)\n } else {\n this.request.send(payload)\n }\n }\n}\n\nbatch.prototype.addOrUpdate = function (message, key) {\n var _process = this.process(message)\n var processedMessage = _process.processedMessage\n var messageBytesCount = _process.messageBytesCount\n if (messageBytesCount >= this.messageBytesLimit) {\n display.warn(\n 'Discarded a message whose size was bigger than the maximum allowed size ' +\n this.messageBytesLimit +\n 'KB.'\n )\n return\n }\n if (this.hasMessageFor(key)) {\n this.remove(key)\n }\n this.push(processedMessage, messageBytesCount, key)\n}\nbatch.prototype.process = function (message) {\n var processedMessage = ''\n if (this.sendContentTypeByJson) {\n processedMessage = jsonStringify(processedMessageByDataMap(message).rowData)\n } else {\n processedMessage = processedMessageByDataMap(message).rowStr\n }\n var messageBytesCount = computeBytesCount(processedMessage)\n return {\n processedMessage: processedMessage,\n messageBytesCount: messageBytesCount\n }\n}\n\nbatch.prototype.push = function (processedMessage, messageBytesCount, key) {\n var separatorBytesCount = this.flushController.getMessagesCount() > 0 ? 1 : 0\n this.flushController.notifyBeforeAddMessage(\n messageBytesCount + separatorBytesCount\n )\n if (key !== undefined) {\n this.upsertBuffer[key] = processedMessage\n } else {\n this.pushOnlyBuffer.push(processedMessage)\n }\n this.flushController.notifyAfterAddMessage()\n}\n\nbatch.prototype.remove = function (key) {\n var removedMessage = this.upsertBuffer[key]\n delete this.upsertBuffer[key]\n var messageBytesCount = computeBytesCount(removedMessage)\n // If there are other messages, a '\\n' will be added at serialization\n var separatorBytesCount = this.flushController.getMessagesCount() > 1 ? 1 : 0\n this.flushController.notifyAfterRemoveMessage(\n messageBytesCount + separatorBytesCount\n )\n}\n\nbatch.prototype.hasMessageFor = function (key) {\n return key !== undefined && this.upsertBuffer[key] !== undefined\n}\nexport var Batch = batch\n"],"mappings":"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"}
|
|
@@ -20,10 +20,11 @@ function addBatchPrecision(url) {
|
|
|
20
20
|
if (!url) return url;
|
|
21
21
|
return url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms';
|
|
22
22
|
}
|
|
23
|
-
function createHttpRequest(endpointUrl, bytesLimit, reportError) {
|
|
23
|
+
function createHttpRequest(endpointUrl, bytesLimit, sendContentTypeByJson, reportError) {
|
|
24
|
+
var contentType = sendContentTypeByJson ? 'application/json; charset=UTF-8' : undefined;
|
|
24
25
|
var retryState = (0, _sendWithRetryStrategy.newRetryState)();
|
|
25
26
|
var sendStrategyForRetry = function sendStrategyForRetry(payload, onResponse) {
|
|
26
|
-
return fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse);
|
|
27
|
+
return fetchKeepAliveStrategy(endpointUrl, bytesLimit, contentType, payload, onResponse);
|
|
27
28
|
};
|
|
28
29
|
return {
|
|
29
30
|
send: function send(payload) {
|
|
@@ -34,18 +35,26 @@ function createHttpRequest(endpointUrl, bytesLimit, reportError) {
|
|
|
34
35
|
* keep using sendBeaconStrategy on exit
|
|
35
36
|
*/
|
|
36
37
|
sendOnExit: function sendOnExit(payload) {
|
|
37
|
-
sendBeaconStrategy(endpointUrl, bytesLimit, payload);
|
|
38
|
+
sendBeaconStrategy(endpointUrl, bytesLimit, contentType, payload);
|
|
38
39
|
}
|
|
39
40
|
};
|
|
40
41
|
}
|
|
41
|
-
function sendBeaconStrategy(endpointUrl, bytesLimit, payload) {
|
|
42
|
+
function sendBeaconStrategy(endpointUrl, bytesLimit, contentType, payload) {
|
|
42
43
|
var data = payload.data;
|
|
43
44
|
var bytesCount = payload.bytesCount;
|
|
44
45
|
var url = addBatchPrecision(endpointUrl);
|
|
45
46
|
var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit;
|
|
46
47
|
if (canUseBeacon) {
|
|
47
48
|
try {
|
|
48
|
-
var
|
|
49
|
+
var beaconData;
|
|
50
|
+
if (contentType) {
|
|
51
|
+
beaconData = new Blob([data], {
|
|
52
|
+
type: contentType
|
|
53
|
+
});
|
|
54
|
+
} else {
|
|
55
|
+
beaconData = data;
|
|
56
|
+
}
|
|
57
|
+
var isQueued = navigator.sendBeacon(url, beaconData);
|
|
49
58
|
if (isQueued) {
|
|
50
59
|
return;
|
|
51
60
|
}
|
|
@@ -53,20 +62,26 @@ function sendBeaconStrategy(endpointUrl, bytesLimit, payload) {
|
|
|
53
62
|
// reportBeaconError(e)
|
|
54
63
|
}
|
|
55
64
|
}
|
|
56
|
-
sendXHR(url, data);
|
|
65
|
+
sendXHR(url, contentType, data);
|
|
57
66
|
}
|
|
58
|
-
function fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse) {
|
|
67
|
+
function fetchKeepAliveStrategy(endpointUrl, bytesLimit, contentType, payload, onResponse) {
|
|
59
68
|
var data = payload.data;
|
|
60
69
|
var bytesCount = payload.bytesCount;
|
|
61
70
|
var url = addBatchPrecision(endpointUrl);
|
|
62
71
|
var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit;
|
|
63
72
|
if (canUseKeepAlive) {
|
|
64
|
-
|
|
73
|
+
var fetchOption = {
|
|
65
74
|
method: 'POST',
|
|
66
75
|
body: data,
|
|
67
76
|
keepalive: true,
|
|
68
77
|
mode: 'cors'
|
|
69
|
-
}
|
|
78
|
+
};
|
|
79
|
+
if (contentType) {
|
|
80
|
+
fetchOption.headers = {
|
|
81
|
+
'Content-Type': contentType
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
fetch(url, fetchOption).then((0, _monitor.monitor)(function (response) {
|
|
70
85
|
if (typeof onResponse === 'function') {
|
|
71
86
|
onResponse({
|
|
72
87
|
status: response.status,
|
|
@@ -75,10 +90,10 @@ function fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse) {
|
|
|
75
90
|
}
|
|
76
91
|
}), (0, _monitor.monitor)(function () {
|
|
77
92
|
// failed to queue the request
|
|
78
|
-
sendXHR(url, data, onResponse);
|
|
93
|
+
sendXHR(url, contentType, data, onResponse);
|
|
79
94
|
}));
|
|
80
95
|
} else {
|
|
81
|
-
sendXHR(url, data, onResponse);
|
|
96
|
+
sendXHR(url, contentType, data, onResponse);
|
|
82
97
|
}
|
|
83
98
|
}
|
|
84
99
|
function isKeepAliveSupported() {
|
|
@@ -89,9 +104,13 @@ function isKeepAliveSupported() {
|
|
|
89
104
|
return false;
|
|
90
105
|
}
|
|
91
106
|
}
|
|
92
|
-
function sendXHR(url, data, onResponse) {
|
|
107
|
+
function sendXHR(url, contentType, data, onResponse) {
|
|
93
108
|
var request = new XMLHttpRequest();
|
|
94
109
|
request.open('POST', url, true);
|
|
110
|
+
if (contentType) {
|
|
111
|
+
//application/json; charset=UTF-8
|
|
112
|
+
request.setRequestHeader('Content-Type', contentType);
|
|
113
|
+
}
|
|
95
114
|
(0, _addEventListener.addEventListener)(request, 'loadend', function () {
|
|
96
115
|
if (typeof onResponse === 'function') {
|
|
97
116
|
onResponse({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpRequest.js","names":["_sendWithRetryStrategy","require","_addEventListener","_monitor","addBatchPrecision","url","indexOf","createHttpRequest","endpointUrl","bytesLimit","reportError","retryState","newRetryState","sendStrategyForRetry","payload","onResponse","fetchKeepAliveStrategy","send","sendWithRetryStrategy","sendOnExit","sendBeaconStrategy","data","bytesCount","canUseBeacon","navigator","sendBeacon","isQueued","e","sendXHR","canUseKeepAlive","isKeepAliveSupported","
|
|
1
|
+
{"version":3,"file":"httpRequest.js","names":["_sendWithRetryStrategy","require","_addEventListener","_monitor","addBatchPrecision","url","indexOf","createHttpRequest","endpointUrl","bytesLimit","sendContentTypeByJson","reportError","contentType","undefined","retryState","newRetryState","sendStrategyForRetry","payload","onResponse","fetchKeepAliveStrategy","send","sendWithRetryStrategy","sendOnExit","sendBeaconStrategy","data","bytesCount","canUseBeacon","navigator","sendBeacon","beaconData","Blob","type","isQueued","e","sendXHR","canUseKeepAlive","isKeepAliveSupported","fetchOption","method","body","keepalive","mode","headers","fetch","then","monitor","response","status","window","Request","_unused","request","XMLHttpRequest","open","setRequestHeader","addEventListener","once"],"sources":["../../src/transport/httpRequest.js"],"sourcesContent":["import { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy'\nimport { addEventListener } from '../browser/addEventListener'\nimport { monitor } from '../helper/monitor'\n/**\n * Use POST request without content type to:\n * - avoid CORS preflight requests\n * - allow usage of sendBeacon\n *\n * multiple elements are sent separated by \\n in order\n * to be parsed correctly without content type header\n */\nfunction addBatchPrecision(url) {\n if (!url) return url\n return url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms'\n}\nexport function createHttpRequest(\n endpointUrl,\n bytesLimit,\n sendContentTypeByJson,\n reportError\n) {\n var contentType = sendContentTypeByJson\n ? 'application/json; charset=UTF-8'\n : undefined\n var retryState = newRetryState()\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n contentType,\n payload,\n onResponse\n )\n }\n\n return {\n send: function (payload) {\n sendWithRetryStrategy(\n payload,\n retryState,\n sendStrategyForRetry,\n endpointUrl,\n reportError\n )\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(endpointUrl, bytesLimit, contentType, payload)\n }\n }\n}\n\nfunction sendBeaconStrategy(endpointUrl, bytesLimit, contentType, payload) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl)\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit\n if (canUseBeacon) {\n try {\n var beaconData\n if (contentType) {\n beaconData = new Blob([data], {\n type: contentType\n })\n } else {\n beaconData = data\n }\n\n var isQueued = navigator.sendBeacon(url, beaconData)\n\n if (isQueued) {\n return\n }\n } catch (e) {\n // reportBeaconError(e)\n }\n }\n sendXHR(url, contentType, data)\n}\n\nexport function fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n contentType,\n payload,\n onResponse\n) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl)\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit\n if (canUseKeepAlive) {\n var fetchOption = {\n method: 'POST',\n body: data,\n keepalive: true,\n mode: 'cors'\n }\n if (contentType) {\n fetchOption.headers = {\n 'Content-Type': contentType\n }\n }\n fetch(url, fetchOption).then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n }),\n monitor(function () {\n // failed to queue the request\n sendXHR(url, contentType, data, onResponse)\n })\n )\n } else {\n sendXHR(url, contentType, data, onResponse)\n }\n}\n\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a')\n } catch {\n return false\n }\n}\n\nfunction sendXHR(url, contentType, data, onResponse) {\n const request = new XMLHttpRequest()\n request.open('POST', url, true)\n if (contentType) {\n //application/json; charset=UTF-8\n request.setRequestHeader('Content-Type', contentType)\n }\n\n addEventListener(\n request,\n 'loadend',\n function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: request.status })\n }\n },\n {\n once: true\n }\n )\n request.send(data)\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASG,iBAAiBA,CAACC,GAAG,EAAE;EAC9B,IAAI,CAACA,GAAG,EAAE,OAAOA,GAAG;EACpB,OAAOA,GAAG,IAAIA,GAAG,CAACC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc;AACrE;AACO,SAASC,iBAAiBA,CAC/BC,WAAW,EACXC,UAAU,EACVC,qBAAqB,EACrBC,WAAW,EACX;EACA,IAAIC,WAAW,GAAGF,qBAAqB,GACnC,iCAAiC,GACjCG,SAAS;EACb,IAAIC,UAAU,GAAG,IAAAC,oCAAa,EAAC,CAAC;EAChC,IAAIC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAaC,OAAO,EAAEC,UAAU,EAAE;IACxD,OAAOC,sBAAsB,CAC3BX,WAAW,EACXC,UAAU,EACVG,WAAW,EACXK,OAAO,EACPC,UACF,CAAC;EACH,CAAC;EAED,OAAO;IACLE,IAAI,EAAE,SAAAA,KAAUH,OAAO,EAAE;MACvB,IAAAI,4CAAqB,EACnBJ,OAAO,EACPH,UAAU,EACVE,oBAAoB,EACpBR,WAAW,EACXG,WACF,CAAC;IACH,CAAC;IACD;AACJ;AACA;AACA;IACIW,UAAU,EAAE,SAAAA,WAAUL,OAAO,EAAE;MAC7BM,kBAAkB,CAACf,WAAW,EAAEC,UAAU,EAAEG,WAAW,EAAEK,OAAO,CAAC;IACnE;EACF,CAAC;AACH;AAEA,SAASM,kBAAkBA,CAACf,WAAW,EAAEC,UAAU,EAAEG,WAAW,EAAEK,OAAO,EAAE;EACzE,IAAIO,IAAI,GAAGP,OAAO,CAACO,IAAI;EACvB,IAAIC,UAAU,GAAGR,OAAO,CAACQ,UAAU;EACnC,IAAIpB,GAAG,GAAGD,iBAAiB,CAACI,WAAW,CAAC;EACxC,IAAIkB,YAAY,GAAG,CAAC,CAACC,SAAS,CAACC,UAAU,IAAIH,UAAU,GAAGhB,UAAU;EACpE,IAAIiB,YAAY,EAAE;IAChB,IAAI;MACF,IAAIG,UAAU;MACd,IAAIjB,WAAW,EAAE;QACfiB,UAAU,GAAG,IAAIC,IAAI,CAAC,CAACN,IAAI,CAAC,EAAE;UAC5BO,IAAI,EAAEnB;QACR,CAAC,CAAC;MACJ,CAAC,MAAM;QACLiB,UAAU,GAAGL,IAAI;MACnB;MAEA,IAAIQ,QAAQ,GAAGL,SAAS,CAACC,UAAU,CAACvB,GAAG,EAAEwB,UAAU,CAAC;MAEpD,IAAIG,QAAQ,EAAE;QACZ;MACF;IACF,CAAC,CAAC,OAAOC,CAAC,EAAE;MACV;IAAA;EAEJ;EACAC,OAAO,CAAC7B,GAAG,EAAEO,WAAW,EAAEY,IAAI,CAAC;AACjC;AAEO,SAASL,sBAAsBA,CACpCX,WAAW,EACXC,UAAU,EACVG,WAAW,EACXK,OAAO,EACPC,UAAU,EACV;EACA,IAAIM,IAAI,GAAGP,OAAO,CAACO,IAAI;EACvB,IAAIC,UAAU,GAAGR,OAAO,CAACQ,UAAU;EACnC,IAAIpB,GAAG,GAAGD,iBAAiB,CAACI,WAAW,CAAC;EACxC,IAAI2B,eAAe,GAAGC,oBAAoB,CAAC,CAAC,IAAIX,UAAU,GAAGhB,UAAU;EACvE,IAAI0B,eAAe,EAAE;IACnB,IAAIE,WAAW,GAAG;MAChBC,MAAM,EAAE,MAAM;MACdC,IAAI,EAAEf,IAAI;MACVgB,SAAS,EAAE,IAAI;MACfC,IAAI,EAAE;IACR,CAAC;IACD,IAAI7B,WAAW,EAAE;MACfyB,WAAW,CAACK,OAAO,GAAG;QACpB,cAAc,EAAE9B;MAClB,CAAC;IACH;IACA+B,KAAK,CAACtC,GAAG,EAAEgC,WAAW,CAAC,CAACO,IAAI,CAC1B,IAAAC,gBAAO,EAAC,UAAUC,QAAQ,EAAE;MAC1B,IAAI,OAAO5B,UAAU,KAAK,UAAU,EAAE;QACpCA,UAAU,CAAC;UAAE6B,MAAM,EAAED,QAAQ,CAACC,MAAM;UAAEhB,IAAI,EAAEe,QAAQ,CAACf;QAAK,CAAC,CAAC;MAC9D;IACF,CAAC,CAAC,EACF,IAAAc,gBAAO,EAAC,YAAY;MAClB;MACAX,OAAO,CAAC7B,GAAG,EAAEO,WAAW,EAAEY,IAAI,EAAEN,UAAU,CAAC;IAC7C,CAAC,CACH,CAAC;EACH,CAAC,MAAM;IACLgB,OAAO,CAAC7B,GAAG,EAAEO,WAAW,EAAEY,IAAI,EAAEN,UAAU,CAAC;EAC7C;AACF;AAEA,SAASkB,oBAAoBA,CAAA,EAAG;EAC9B;EACA,IAAI;IACF,OAAOY,MAAM,CAACC,OAAO,IAAI,WAAW,IAAI,IAAIA,OAAO,CAAC,UAAU,CAAC;EACjE,CAAC,CAAC,OAAAC,OAAA,EAAM;IACN,OAAO,KAAK;EACd;AACF;AAEA,SAAShB,OAAOA,CAAC7B,GAAG,EAAEO,WAAW,EAAEY,IAAI,EAAEN,UAAU,EAAE;EACnD,IAAMiC,OAAO,GAAG,IAAIC,cAAc,CAAC,CAAC;EACpCD,OAAO,CAACE,IAAI,CAAC,MAAM,EAAEhD,GAAG,EAAE,IAAI,CAAC;EAC/B,IAAIO,WAAW,EAAE;IACf;IACAuC,OAAO,CAACG,gBAAgB,CAAC,cAAc,EAAE1C,WAAW,CAAC;EACvD;EAEA,IAAA2C,kCAAgB,EACdJ,OAAO,EACP,SAAS,EACT,YAAY;IACV,IAAI,OAAOjC,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC;QAAE6B,MAAM,EAAEI,OAAO,CAACJ;MAAO,CAAC,CAAC;IACxC;EACF,CAAC,EACD;IACES,IAAI,EAAE;EACR,CACF,CAAC;EACDL,OAAO,CAAC/B,IAAI,CAACI,IAAI,CAAC;AACpB"}
|
|
@@ -10,13 +10,13 @@ var _flushController = require("./flushController");
|
|
|
10
10
|
function startBatchWithReplica(configuration, endpointUrl, reportError, pageExitObservable, sessionExpireObservable) {
|
|
11
11
|
var primaryBatch = createBatch(endpointUrl);
|
|
12
12
|
function createBatch(endpointUrl) {
|
|
13
|
-
return new _batch.Batch((0, _httpRequest.createHttpRequest)(endpointUrl, configuration.batchBytesLimit, reportError), (0, _flushController.createFlushController)({
|
|
13
|
+
return new _batch.Batch((0, _httpRequest.createHttpRequest)(endpointUrl, configuration.batchBytesLimit, configuration.sendContentTypeByJson, reportError), (0, _flushController.createFlushController)({
|
|
14
14
|
messagesLimit: configuration.batchMessagesLimit,
|
|
15
15
|
bytesLimit: configuration.batchBytesLimit,
|
|
16
16
|
durationLimit: configuration.flushTimeout,
|
|
17
17
|
pageExitObservable: pageExitObservable,
|
|
18
18
|
sessionExpireObservable: sessionExpireObservable
|
|
19
|
-
}), configuration.messageBytesLimit);
|
|
19
|
+
}), configuration.messageBytesLimit, configuration.sendContentTypeByJson);
|
|
20
20
|
}
|
|
21
21
|
return {
|
|
22
22
|
add: function add(message) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startBatchWithReplica.js","names":["_batch","require","_httpRequest","_flushController","startBatchWithReplica","configuration","endpointUrl","reportError","pageExitObservable","sessionExpireObservable","primaryBatch","createBatch","Batch","createHttpRequest","batchBytesLimit","createFlushController","messagesLimit","batchMessagesLimit","bytesLimit","durationLimit","flushTimeout","messageBytesLimit","add","message"],"sources":["../../src/transport/startBatchWithReplica.js"],"sourcesContent":["import { Batch } from './batch'\nimport { createHttpRequest } from './httpRequest'\nimport { createFlushController } from './flushController'\nexport function startBatchWithReplica(\n configuration,\n endpointUrl,\n reportError,\n pageExitObservable,\n sessionExpireObservable\n) {\n var primaryBatch = createBatch(endpointUrl)\n\n function createBatch(endpointUrl) {\n return new Batch(\n createHttpRequest(\n endpointUrl,\n configuration.batchBytesLimit,\n reportError\n ),\n createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable\n }),\n configuration.messageBytesLimit\n )\n }\n\n return {\n add: function (message) {\n primaryBatch.add(message)\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACO,SAASG,qBAAqBA,CACnCC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,kBAAkB,EAClBC,uBAAuB,EACvB;EACA,IAAIC,YAAY,GAAGC,WAAW,CAACL,WAAW,CAAC;EAE3C,SAASK,WAAWA,CAACL,WAAW,EAAE;IAChC,OAAO,IAAIM,YAAK,CACd,IAAAC,8BAAiB,EACfP,WAAW,EACXD,aAAa,CAACS,eAAe,
|
|
1
|
+
{"version":3,"file":"startBatchWithReplica.js","names":["_batch","require","_httpRequest","_flushController","startBatchWithReplica","configuration","endpointUrl","reportError","pageExitObservable","sessionExpireObservable","primaryBatch","createBatch","Batch","createHttpRequest","batchBytesLimit","sendContentTypeByJson","createFlushController","messagesLimit","batchMessagesLimit","bytesLimit","durationLimit","flushTimeout","messageBytesLimit","add","message"],"sources":["../../src/transport/startBatchWithReplica.js"],"sourcesContent":["import { Batch } from './batch'\nimport { createHttpRequest } from './httpRequest'\nimport { createFlushController } from './flushController'\nexport function startBatchWithReplica(\n configuration,\n endpointUrl,\n reportError,\n pageExitObservable,\n sessionExpireObservable\n) {\n var primaryBatch = createBatch(endpointUrl)\n\n function createBatch(endpointUrl) {\n return new Batch(\n createHttpRequest(\n endpointUrl,\n configuration.batchBytesLimit,\n configuration.sendContentTypeByJson,\n reportError\n ),\n createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable\n }),\n configuration.messageBytesLimit,\n configuration.sendContentTypeByJson\n )\n }\n\n return {\n add: function (message) {\n primaryBatch.add(message)\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACO,SAASG,qBAAqBA,CACnCC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,kBAAkB,EAClBC,uBAAuB,EACvB;EACA,IAAIC,YAAY,GAAGC,WAAW,CAACL,WAAW,CAAC;EAE3C,SAASK,WAAWA,CAACL,WAAW,EAAE;IAChC,OAAO,IAAIM,YAAK,CACd,IAAAC,8BAAiB,EACfP,WAAW,EACXD,aAAa,CAACS,eAAe,EAC7BT,aAAa,CAACU,qBAAqB,EACnCR,WACF,CAAC,EACD,IAAAS,sCAAqB,EAAC;MACpBC,aAAa,EAAEZ,aAAa,CAACa,kBAAkB;MAC/CC,UAAU,EAAEd,aAAa,CAACS,eAAe;MACzCM,aAAa,EAAEf,aAAa,CAACgB,YAAY;MACzCb,kBAAkB,EAAEA,kBAAkB;MACtCC,uBAAuB,EAAEA;IAC3B,CAAC,CAAC,EACFJ,aAAa,CAACiB,iBAAiB,EAC/BjB,aAAa,CAACU,qBAChB,CAAC;EACH;EAEA,OAAO;IACLQ,GAAG,EAAE,SAAAA,IAAUC,OAAO,EAAE;MACtBd,YAAY,CAACa,GAAG,CAACC,OAAO,CAAC;IAC3B;EACF,CAAC;AACH"}
|
package/esm/browser/cookie.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { findCommaSeparatedValue, UUID, ONE_SECOND } from '../helper/tools';
|
|
1
|
+
import { findCommaSeparatedValue, UUID, ONE_SECOND, findCommaSeparatedValues } from '../helper/tools';
|
|
2
2
|
export var COOKIE_ACCESS_DELAY = ONE_SECOND;
|
|
3
3
|
export function setCookie(name, value, expireDelay, options) {
|
|
4
4
|
var date = new Date();
|
|
@@ -12,6 +12,20 @@ export function setCookie(name, value, expireDelay, options) {
|
|
|
12
12
|
export function getCookie(name) {
|
|
13
13
|
return findCommaSeparatedValue(document.cookie, name);
|
|
14
14
|
}
|
|
15
|
+
var initCookieParsed;
|
|
16
|
+
/**
|
|
17
|
+
* Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)
|
|
18
|
+
* to avoid accessing document.cookie multiple times.
|
|
19
|
+
*/
|
|
20
|
+
export function getInitCookie(name) {
|
|
21
|
+
if (!initCookieParsed) {
|
|
22
|
+
initCookieParsed = findCommaSeparatedValues(document.cookie);
|
|
23
|
+
}
|
|
24
|
+
return initCookieParsed.get(name);
|
|
25
|
+
}
|
|
26
|
+
export function resetInitCookies() {
|
|
27
|
+
initCookieParsed = undefined;
|
|
28
|
+
}
|
|
15
29
|
export function deleteCookie(name, options) {
|
|
16
30
|
setCookie(name, '', 0, options);
|
|
17
31
|
}
|
|
@@ -22,7 +36,7 @@ export function areCookiesAuthorized(options) {
|
|
|
22
36
|
try {
|
|
23
37
|
// Use a unique cookie name to avoid issues when the SDK is initialized multiple times during
|
|
24
38
|
// the test cookie lifetime
|
|
25
|
-
var testCookieName = "
|
|
39
|
+
var testCookieName = "gc_cookie_test_".concat(UUID());
|
|
26
40
|
var testCookieValue = 'test';
|
|
27
41
|
setCookie(testCookieName, testCookieValue, ONE_SECOND, options);
|
|
28
42
|
return getCookie(testCookieName) === testCookieValue;
|
|
@@ -41,7 +55,7 @@ export function getCurrentSite() {
|
|
|
41
55
|
if (getCurrentSiteCache === undefined) {
|
|
42
56
|
// Use a unique cookie name to avoid issues when the SDK is initialized multiple times during
|
|
43
57
|
// the test cookie lifetime
|
|
44
|
-
var testCookieName = "
|
|
58
|
+
var testCookieName = "gc_site_test_".concat(UUID());
|
|
45
59
|
var testCookieValue = 'test';
|
|
46
60
|
var domainLevels = window.location.hostname.split('.');
|
|
47
61
|
var candidateDomain = domainLevels.pop();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cookie.js","names":["findCommaSeparatedValue","UUID","ONE_SECOND","COOKIE_ACCESS_DELAY","setCookie","name","value","expireDelay","options","date","Date","setTime","getTime","expires","toUTCString","sameSite","crossSite","domain","secure","document","cookie","getCookie","
|
|
1
|
+
{"version":3,"file":"cookie.js","names":["findCommaSeparatedValue","UUID","ONE_SECOND","findCommaSeparatedValues","COOKIE_ACCESS_DELAY","setCookie","name","value","expireDelay","options","date","Date","setTime","getTime","expires","toUTCString","sameSite","crossSite","domain","secure","document","cookie","getCookie","initCookieParsed","getInitCookie","get","resetInitCookies","undefined","deleteCookie","areCookiesAuthorized","testCookieName","concat","testCookieValue","error","getCurrentSiteCache","getCurrentSite","domainLevels","window","location","hostname","split","candidateDomain","pop","length"],"sources":["../../src/browser/cookie.js"],"sourcesContent":["import {\n findCommaSeparatedValue,\n UUID,\n ONE_SECOND,\n findCommaSeparatedValues\n} from '../helper/tools'\nexport var COOKIE_ACCESS_DELAY = ONE_SECOND\n\nexport function setCookie(name, value, expireDelay, options) {\n var date = new Date()\n date.setTime(date.getTime() + expireDelay)\n var expires = 'expires=' + date.toUTCString()\n var sameSite = options && options.crossSite ? 'none' : 'strict'\n var domain = options && options.domain ? ';domain=' + options.domain : ''\n var secure = options && options.secure ? ';secure' : ''\n document.cookie =\n name +\n '=' +\n value +\n ';' +\n expires +\n ';path=/;samesite=' +\n sameSite +\n domain +\n secure\n}\n\nexport function getCookie(name) {\n return findCommaSeparatedValue(document.cookie, name)\n}\nvar initCookieParsed\n/**\n * Returns a cached value of the cookie. Use this during SDK initialization (and whenever possible)\n * to avoid accessing document.cookie multiple times.\n */\nexport function getInitCookie(name) {\n if (!initCookieParsed) {\n initCookieParsed = findCommaSeparatedValues(document.cookie)\n }\n return initCookieParsed.get(name)\n}\n\nexport function resetInitCookies() {\n initCookieParsed = undefined\n}\nexport function deleteCookie(name, options) {\n setCookie(name, '', 0, options)\n}\n\nexport function areCookiesAuthorized(options) {\n if (document.cookie === undefined || document.cookie === null) {\n return false\n }\n try {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = `gc_cookie_test_${UUID()}`\n var testCookieValue = 'test'\n setCookie(testCookieName, testCookieValue, ONE_SECOND, options)\n return getCookie(testCookieName) === testCookieValue\n } catch (error) {\n return false\n }\n}\n\n/**\n * No API to retrieve it, number of levels for subdomain and suffix are unknown\n * strategy: find the minimal domain on which cookies are allowed to be set\n * https://web.dev/same-site-same-origin/#site\n */\nvar getCurrentSiteCache\nexport function getCurrentSite() {\n if (getCurrentSiteCache === undefined) {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n var testCookieName = `gc_site_test_${UUID()}`\n var testCookieValue = 'test'\n\n var domainLevels = window.location.hostname.split('.')\n var candidateDomain = domainLevels.pop()\n while (domainLevels.length && !getCookie(testCookieName)) {\n candidateDomain = domainLevels.pop() + '.' + candidateDomain\n setCookie(testCookieName, testCookieValue, ONE_SECOND, {\n domain: candidateDomain\n })\n }\n getCurrentSiteCache = candidateDomain\n }\n return getCurrentSiteCache\n}\n"],"mappings":"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"}
|
|
@@ -14,7 +14,9 @@ export function isNodeShadowRoot(node) {
|
|
|
14
14
|
var shadowRoot = node;
|
|
15
15
|
return !!shadowRoot.host && shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE && isElementNode(shadowRoot.host);
|
|
16
16
|
}
|
|
17
|
-
|
|
17
|
+
export function hasChildNodes(node) {
|
|
18
|
+
return node.childNodes.length > 0 || isNodeShadowHost(node);
|
|
19
|
+
}
|
|
18
20
|
// export function getChildNodes(node) {
|
|
19
21
|
// return isNodeShadowHost(node) ? node.shadowRoot.childNodes : node.childNodes
|
|
20
22
|
// }
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmlDomUtils.js","names":["isTextNode","node","nodeType","Node","TEXT_NODE","isCommentNode","COMMENT_NODE","isElementNode","ELEMENT_NODE","isNodeShadowHost","Boolean","shadowRoot","isNodeShadowRoot","host","DOCUMENT_FRAGMENT_NODE","
|
|
1
|
+
{"version":3,"file":"htmlDomUtils.js","names":["isTextNode","node","nodeType","Node","TEXT_NODE","isCommentNode","COMMENT_NODE","isElementNode","ELEMENT_NODE","isNodeShadowHost","Boolean","shadowRoot","isNodeShadowRoot","host","DOCUMENT_FRAGMENT_NODE","hasChildNodes","childNodes","length","forEachChildNodes","callback","forEach","getParentNode","parentNode"],"sources":["../../src/browser/htmlDomUtils.js"],"sourcesContent":["export function isTextNode(node) {\n return node.nodeType === Node.TEXT_NODE\n}\n\nexport function isCommentNode(node) {\n return node.nodeType === Node.COMMENT_NODE\n}\n\nexport function isElementNode(node) {\n return node.nodeType === Node.ELEMENT_NODE\n}\n\nexport function isNodeShadowHost(node) {\n return isElementNode(node) && Boolean(node.shadowRoot)\n}\n\nexport function isNodeShadowRoot(node) {\n var shadowRoot = node\n return (\n !!shadowRoot.host &&\n shadowRoot.nodeType === Node.DOCUMENT_FRAGMENT_NODE &&\n isElementNode(shadowRoot.host)\n )\n}\nexport function hasChildNodes(node) {\n return node.childNodes.length > 0 || isNodeShadowHost(node)\n}\n// export function getChildNodes(node) {\n// return isNodeShadowHost(node) ? node.shadowRoot.childNodes : node.childNodes\n// }\nexport function forEachChildNodes(node, callback) {\n node.childNodes.forEach(callback)\n if (isNodeShadowHost(node)) {\n callback(node.shadowRoot)\n }\n}\n/**\n * Return `host` in case if the current node is a shadow root otherwise will return the `parentNode`\n */\nexport function getParentNode(node) {\n return isNodeShadowRoot(node) ? node.host : node.parentNode\n}\n"],"mappings":"AAAA,OAAO,SAASA,UAAUA,CAACC,IAAI,EAAE;EAC/B,OAAOA,IAAI,CAACC,QAAQ,KAAKC,IAAI,CAACC,SAAS;AACzC;AAEA,OAAO,SAASC,aAAaA,CAACJ,IAAI,EAAE;EAClC,OAAOA,IAAI,CAACC,QAAQ,KAAKC,IAAI,CAACG,YAAY;AAC5C;AAEA,OAAO,SAASC,aAAaA,CAACN,IAAI,EAAE;EAClC,OAAOA,IAAI,CAACC,QAAQ,KAAKC,IAAI,CAACK,YAAY;AAC5C;AAEA,OAAO,SAASC,gBAAgBA,CAACR,IAAI,EAAE;EACrC,OAAOM,aAAa,CAACN,IAAI,CAAC,IAAIS,OAAO,CAACT,IAAI,CAACU,UAAU,CAAC;AACxD;AAEA,OAAO,SAASC,gBAAgBA,CAACX,IAAI,EAAE;EACrC,IAAIU,UAAU,GAAGV,IAAI;EACrB,OACE,CAAC,CAACU,UAAU,CAACE,IAAI,IACjBF,UAAU,CAACT,QAAQ,KAAKC,IAAI,CAACW,sBAAsB,IACnDP,aAAa,CAACI,UAAU,CAACE,IAAI,CAAC;AAElC;AACA,OAAO,SAASE,aAAaA,CAACd,IAAI,EAAE;EAClC,OAAOA,IAAI,CAACe,UAAU,CAACC,MAAM,GAAG,CAAC,IAAIR,gBAAgB,CAACR,IAAI,CAAC;AAC7D;AACA;AACA;AACA;AACA,OAAO,SAASiB,iBAAiBA,CAACjB,IAAI,EAAEkB,QAAQ,EAAE;EAChDlB,IAAI,CAACe,UAAU,CAACI,OAAO,CAACD,QAAQ,CAAC;EACjC,IAAIV,gBAAgB,CAACR,IAAI,CAAC,EAAE;IAC1BkB,QAAQ,CAAClB,IAAI,CAACU,UAAU,CAAC;EAC3B;AACF;AACA;AACA;AACA;AACA,OAAO,SAASU,aAAaA,CAACpB,IAAI,EAAE;EAClC,OAAOW,gBAAgB,CAACX,IAAI,CAAC,GAAGA,IAAI,CAACY,IAAI,GAAGZ,IAAI,CAACqB,UAAU;AAC7D"}
|
|
@@ -51,9 +51,27 @@ export function validateAndBuildConfiguration(initConfiguration) {
|
|
|
51
51
|
batchMessagesLimit: 50,
|
|
52
52
|
messageBytesLimit: 256 * ONE_KIBI_BYTE,
|
|
53
53
|
resourceUrlLimit: 5 * ONE_KIBI_BYTE,
|
|
54
|
-
storeContextsToLocal: !!initConfiguration.storeContextsToLocal
|
|
54
|
+
storeContextsToLocal: !!initConfiguration.storeContextsToLocal,
|
|
55
|
+
sendContentTypeByJson: !!initConfiguration.sendContentTypeByJson
|
|
55
56
|
}, computeTransportConfiguration(initConfiguration));
|
|
56
57
|
}
|
|
58
|
+
export function validatePostRequestRequireParamsConfiguration(initConfiguration) {
|
|
59
|
+
if (!initConfiguration.site && !initConfiguration.datakitOrigin && !initConfiguration.datakitUrl) {
|
|
60
|
+
display.error('datakitOrigin or site is not configured, no RUM data will be collected.');
|
|
61
|
+
return false;
|
|
62
|
+
}
|
|
63
|
+
// if (!initConfiguration.datakitUrl && !initConfiguration.datakitOrigin) {
|
|
64
|
+
// display.error(
|
|
65
|
+
// 'datakitOrigin is not configured, no RUM data will be collected.'
|
|
66
|
+
// )
|
|
67
|
+
// return false
|
|
68
|
+
// }
|
|
69
|
+
if (initConfiguration.site && !initConfiguration.clientToken) {
|
|
70
|
+
display.error('clientToken is not configured, no RUM data will be collected.');
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
57
75
|
export function buildCookieOptions(initConfiguration) {
|
|
58
76
|
var cookieOptions = {};
|
|
59
77
|
cookieOptions.secure = mustUseSecureCookie(initConfiguration);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","names":["getCurrentSite","catchUserErrors","display","assign","isPercentage","ONE_SECOND","isNullUndefinedDefaultValue","ONE_KIBI_BYTE","computeTransportConfiguration","DefaultPrivacyLevel","ALLOW","MASK","MASK_USER_INPUT","validateAndBuildConfiguration","initConfiguration","sampleRate","undefined","error","sessionSampleRate","telemetrySampleRate","beforeSend","cookieOptions","buildCookieOptions","service","version","env","telemetryEnabled","silentMultipleInit","batchBytesLimit","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","batchMessagesLimit","messageBytesLimit","resourceUrlLimit","storeContextsToLocal","secure","mustUseSecureCookie","crossSite","useCrossSiteSessionCookie","trackSessionAcrossSubdomains","domain","useSecureSessionCookie"],"sources":["../../src/configuration/configuration.js"],"sourcesContent":["import { getCurrentSite } from '../browser/cookie'\nimport { catchUserErrors } from '../helper/catchUserErrors'\nimport { display } from '../helper/display'\nimport {\n assign,\n isPercentage,\n ONE_SECOND,\n isNullUndefinedDefaultValue\n} from '../helper/tools'\nimport { ONE_KIBI_BYTE } from '../helper/byteUtils'\nimport { computeTransportConfiguration } from './transportConfiguration'\n\nexport var DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input'\n}\nexport function validateAndBuildConfiguration(initConfiguration) {\n if (\n initConfiguration.sampleRate !== undefined &&\n !isPercentage(initConfiguration.sampleRate)\n ) {\n display.error('Sample Rate should be a number between 0 and 100')\n return\n }\n if (\n initConfiguration.sessionSampleRate !== undefined &&\n !isPercentage(initConfiguration.sessionSampleRate)\n ) {\n display.error('Sample Rate should be a number between 0 and 100')\n return\n }\n if (\n initConfiguration.telemetrySampleRate !== undefined &&\n !isPercentage(initConfiguration.telemetrySampleRate)\n ) {\n display.error('Telemetry Sample Rate should be a number between 0 and 100')\n return\n }\n var sessionSampleRate =\n initConfiguration.sessionSampleRate || initConfiguration.sampleRate\n return assign(\n {\n beforeSend:\n initConfiguration.beforeSend &&\n catchUserErrors(\n initConfiguration.beforeSend,\n 'beforeSend threw an error:'\n ),\n cookieOptions: buildCookieOptions(initConfiguration),\n sessionSampleRate: isNullUndefinedDefaultValue(sessionSampleRate, 100),\n service: initConfiguration.service,\n version: initConfiguration.version,\n env: initConfiguration.env,\n telemetrySampleRate: isNullUndefinedDefaultValue(\n initConfiguration.telemetrySampleRate,\n 100\n ),\n telemetryEnabled: isNullUndefinedDefaultValue(\n initConfiguration.telemetryEnabled,\n false\n ),\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: 30 * ONE_SECOND,\n\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n resourceUrlLimit: 5 * ONE_KIBI_BYTE,\n storeContextsToLocal: !!initConfiguration.storeContextsToLocal\n },\n computeTransportConfiguration(initConfiguration)\n )\n}\n\nexport function buildCookieOptions(initConfiguration) {\n var cookieOptions = {}\n\n cookieOptions.secure = mustUseSecureCookie(initConfiguration)\n cookieOptions.crossSite = !!initConfiguration.useCrossSiteSessionCookie\n\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite()\n }\n\n return cookieOptions\n}\n\nfunction mustUseSecureCookie(initConfiguration) {\n return (\n !!initConfiguration.useSecureSessionCookie ||\n !!initConfiguration.useCrossSiteSessionCookie\n )\n}\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,mBAAmB;AAClD,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,SACEC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,2BAA2B,QACtB,iBAAiB;AACxB,SAASC,aAAa,QAAQ,qBAAqB;AACnD,SAASC,6BAA6B,QAAQ,0BAA0B;AAExE,OAAO,IAAIC,mBAAmB,GAAG;EAC/BC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,eAAe,EAAE;AACnB,CAAC;AACD,OAAO,SAASC,6BAA6BA,CAACC,iBAAiB,EAAE;EAC/D,IACEA,iBAAiB,CAACC,UAAU,KAAKC,SAAS,IAC1C,CAACZ,YAAY,CAACU,iBAAiB,CAACC,UAAU,CAAC,EAC3C;IACAb,OAAO,CAACe,KAAK,CAAC,kDAAkD,CAAC;IACjE;EACF;EACA,IACEH,iBAAiB,CAACI,iBAAiB,KAAKF,SAAS,IACjD,CAACZ,YAAY,CAACU,iBAAiB,CAACI,iBAAiB,CAAC,EAClD;IACAhB,OAAO,CAACe,KAAK,CAAC,kDAAkD,CAAC;IACjE;EACF;EACA,IACEH,iBAAiB,CAACK,mBAAmB,KAAKH,SAAS,IACnD,CAACZ,YAAY,CAACU,iBAAiB,CAACK,mBAAmB,CAAC,EACpD;IACAjB,OAAO,CAACe,KAAK,CAAC,4DAA4D,CAAC;IAC3E;EACF;EACA,IAAIC,iBAAiB,GACnBJ,iBAAiB,CAACI,iBAAiB,IAAIJ,iBAAiB,CAACC,UAAU;EACrE,OAAOZ,MAAM,CACX;IACEiB,UAAU,EACRN,iBAAiB,CAACM,UAAU,IAC5BnB,eAAe,CACba,iBAAiB,CAACM,UAAU,EAC5B,4BACF,CAAC;IACHC,aAAa,EAAEC,kBAAkB,CAACR,iBAAiB,CAAC;IACpDI,iBAAiB,EAAEZ,2BAA2B,CAACY,iBAAiB,EAAE,GAAG,CAAC;IACtEK,OAAO,EAAET,iBAAiB,CAACS,OAAO;IAClCC,OAAO,EAAEV,iBAAiB,CAACU,OAAO;IAClCC,GAAG,EAAEX,iBAAiB,CAACW,GAAG;IAC1BN,mBAAmB,EAAEb,2BAA2B,CAC9CQ,iBAAiB,CAACK,mBAAmB,EACrC,GACF,CAAC;IACDO,gBAAgB,EAAEpB,2BAA2B,CAC3CQ,iBAAiB,CAACY,gBAAgB,EAClC,KACF,CAAC;IACDC,kBAAkB,EAAE,CAAC,CAACb,iBAAiB,CAACa,kBAAkB;IAE1D;AACN;AACA;AACA;IACMC,eAAe,EAAE,EAAE,GAAGrB,aAAa;IAEnCsB,yBAAyB,EAAE,IAAI;IAC/BC,yBAAyB,EAAE,EAAE;IAE7B;AACN;AACA;AACA;IACMC,YAAY,EAAE,EAAE,GAAG1B,UAAU;IAE7B;AACN;AACA;IACM2B,kBAAkB,EAAE,EAAE;IACtBC,iBAAiB,EAAE,GAAG,GAAG1B,aAAa;IACtC2B,gBAAgB,EAAE,CAAC,GAAG3B,aAAa;IACnC4B,oBAAoB,EAAE,CAAC,CAACrB,iBAAiB,CAACqB;
|
|
1
|
+
{"version":3,"file":"configuration.js","names":["getCurrentSite","catchUserErrors","display","assign","isPercentage","ONE_SECOND","isNullUndefinedDefaultValue","ONE_KIBI_BYTE","computeTransportConfiguration","DefaultPrivacyLevel","ALLOW","MASK","MASK_USER_INPUT","validateAndBuildConfiguration","initConfiguration","sampleRate","undefined","error","sessionSampleRate","telemetrySampleRate","beforeSend","cookieOptions","buildCookieOptions","service","version","env","telemetryEnabled","silentMultipleInit","batchBytesLimit","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","batchMessagesLimit","messageBytesLimit","resourceUrlLimit","storeContextsToLocal","sendContentTypeByJson","validatePostRequestRequireParamsConfiguration","site","datakitOrigin","datakitUrl","clientToken","secure","mustUseSecureCookie","crossSite","useCrossSiteSessionCookie","trackSessionAcrossSubdomains","domain","useSecureSessionCookie"],"sources":["../../src/configuration/configuration.js"],"sourcesContent":["import { getCurrentSite } from '../browser/cookie'\nimport { catchUserErrors } from '../helper/catchUserErrors'\nimport { display } from '../helper/display'\nimport {\n assign,\n isPercentage,\n ONE_SECOND,\n isNullUndefinedDefaultValue\n} from '../helper/tools'\nimport { ONE_KIBI_BYTE } from '../helper/byteUtils'\nimport { computeTransportConfiguration } from './transportConfiguration'\n\nexport var DefaultPrivacyLevel = {\n ALLOW: 'allow',\n MASK: 'mask',\n MASK_USER_INPUT: 'mask-user-input'\n}\nexport function validateAndBuildConfiguration(initConfiguration) {\n if (\n initConfiguration.sampleRate !== undefined &&\n !isPercentage(initConfiguration.sampleRate)\n ) {\n display.error('Sample Rate should be a number between 0 and 100')\n return\n }\n if (\n initConfiguration.sessionSampleRate !== undefined &&\n !isPercentage(initConfiguration.sessionSampleRate)\n ) {\n display.error('Sample Rate should be a number between 0 and 100')\n return\n }\n if (\n initConfiguration.telemetrySampleRate !== undefined &&\n !isPercentage(initConfiguration.telemetrySampleRate)\n ) {\n display.error('Telemetry Sample Rate should be a number between 0 and 100')\n return\n }\n var sessionSampleRate =\n initConfiguration.sessionSampleRate || initConfiguration.sampleRate\n return assign(\n {\n beforeSend:\n initConfiguration.beforeSend &&\n catchUserErrors(\n initConfiguration.beforeSend,\n 'beforeSend threw an error:'\n ),\n cookieOptions: buildCookieOptions(initConfiguration),\n sessionSampleRate: isNullUndefinedDefaultValue(sessionSampleRate, 100),\n service: initConfiguration.service,\n version: initConfiguration.version,\n env: initConfiguration.env,\n telemetrySampleRate: isNullUndefinedDefaultValue(\n initConfiguration.telemetrySampleRate,\n 100\n ),\n telemetryEnabled: isNullUndefinedDefaultValue(\n initConfiguration.telemetryEnabled,\n false\n ),\n silentMultipleInit: !!initConfiguration.silentMultipleInit,\n\n /**\n * beacon payload max queue size implementation is 64kb\n * ensure that we leave room for logs, rum and potential other users\n */\n batchBytesLimit: 16 * ONE_KIBI_BYTE,\n\n eventRateLimiterThreshold: 3000,\n maxTelemetryEventsPerPage: 15,\n\n /**\n * flush automatically, aim to be lower than ALB connection timeout\n * to maximize connection reuse.\n */\n flushTimeout: 30 * ONE_SECOND,\n\n /**\n * Logs intake limit\n */\n batchMessagesLimit: 50,\n messageBytesLimit: 256 * ONE_KIBI_BYTE,\n resourceUrlLimit: 5 * ONE_KIBI_BYTE,\n storeContextsToLocal: !!initConfiguration.storeContextsToLocal,\n sendContentTypeByJson: !!initConfiguration.sendContentTypeByJson\n },\n computeTransportConfiguration(initConfiguration)\n )\n}\nexport function validatePostRequestRequireParamsConfiguration(\n initConfiguration\n) {\n if (\n !initConfiguration.site &&\n !initConfiguration.datakitOrigin &&\n !initConfiguration.datakitUrl\n ) {\n display.error(\n 'datakitOrigin or site is not configured, no RUM data will be collected.'\n )\n return false\n }\n // if (!initConfiguration.datakitUrl && !initConfiguration.datakitOrigin) {\n // display.error(\n // 'datakitOrigin is not configured, no RUM data will be collected.'\n // )\n // return false\n // }\n if (initConfiguration.site && !initConfiguration.clientToken) {\n display.error(\n 'clientToken is not configured, no RUM data will be collected.'\n )\n return false\n }\n return true\n}\nexport function buildCookieOptions(initConfiguration) {\n var cookieOptions = {}\n\n cookieOptions.secure = mustUseSecureCookie(initConfiguration)\n cookieOptions.crossSite = !!initConfiguration.useCrossSiteSessionCookie\n\n if (initConfiguration.trackSessionAcrossSubdomains) {\n cookieOptions.domain = getCurrentSite()\n }\n\n return cookieOptions\n}\n\nfunction mustUseSecureCookie(initConfiguration) {\n return (\n !!initConfiguration.useSecureSessionCookie ||\n !!initConfiguration.useCrossSiteSessionCookie\n )\n}\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,mBAAmB;AAClD,SAASC,eAAe,QAAQ,2BAA2B;AAC3D,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,SACEC,MAAM,EACNC,YAAY,EACZC,UAAU,EACVC,2BAA2B,QACtB,iBAAiB;AACxB,SAASC,aAAa,QAAQ,qBAAqB;AACnD,SAASC,6BAA6B,QAAQ,0BAA0B;AAExE,OAAO,IAAIC,mBAAmB,GAAG;EAC/BC,KAAK,EAAE,OAAO;EACdC,IAAI,EAAE,MAAM;EACZC,eAAe,EAAE;AACnB,CAAC;AACD,OAAO,SAASC,6BAA6BA,CAACC,iBAAiB,EAAE;EAC/D,IACEA,iBAAiB,CAACC,UAAU,KAAKC,SAAS,IAC1C,CAACZ,YAAY,CAACU,iBAAiB,CAACC,UAAU,CAAC,EAC3C;IACAb,OAAO,CAACe,KAAK,CAAC,kDAAkD,CAAC;IACjE;EACF;EACA,IACEH,iBAAiB,CAACI,iBAAiB,KAAKF,SAAS,IACjD,CAACZ,YAAY,CAACU,iBAAiB,CAACI,iBAAiB,CAAC,EAClD;IACAhB,OAAO,CAACe,KAAK,CAAC,kDAAkD,CAAC;IACjE;EACF;EACA,IACEH,iBAAiB,CAACK,mBAAmB,KAAKH,SAAS,IACnD,CAACZ,YAAY,CAACU,iBAAiB,CAACK,mBAAmB,CAAC,EACpD;IACAjB,OAAO,CAACe,KAAK,CAAC,4DAA4D,CAAC;IAC3E;EACF;EACA,IAAIC,iBAAiB,GACnBJ,iBAAiB,CAACI,iBAAiB,IAAIJ,iBAAiB,CAACC,UAAU;EACrE,OAAOZ,MAAM,CACX;IACEiB,UAAU,EACRN,iBAAiB,CAACM,UAAU,IAC5BnB,eAAe,CACba,iBAAiB,CAACM,UAAU,EAC5B,4BACF,CAAC;IACHC,aAAa,EAAEC,kBAAkB,CAACR,iBAAiB,CAAC;IACpDI,iBAAiB,EAAEZ,2BAA2B,CAACY,iBAAiB,EAAE,GAAG,CAAC;IACtEK,OAAO,EAAET,iBAAiB,CAACS,OAAO;IAClCC,OAAO,EAAEV,iBAAiB,CAACU,OAAO;IAClCC,GAAG,EAAEX,iBAAiB,CAACW,GAAG;IAC1BN,mBAAmB,EAAEb,2BAA2B,CAC9CQ,iBAAiB,CAACK,mBAAmB,EACrC,GACF,CAAC;IACDO,gBAAgB,EAAEpB,2BAA2B,CAC3CQ,iBAAiB,CAACY,gBAAgB,EAClC,KACF,CAAC;IACDC,kBAAkB,EAAE,CAAC,CAACb,iBAAiB,CAACa,kBAAkB;IAE1D;AACN;AACA;AACA;IACMC,eAAe,EAAE,EAAE,GAAGrB,aAAa;IAEnCsB,yBAAyB,EAAE,IAAI;IAC/BC,yBAAyB,EAAE,EAAE;IAE7B;AACN;AACA;AACA;IACMC,YAAY,EAAE,EAAE,GAAG1B,UAAU;IAE7B;AACN;AACA;IACM2B,kBAAkB,EAAE,EAAE;IACtBC,iBAAiB,EAAE,GAAG,GAAG1B,aAAa;IACtC2B,gBAAgB,EAAE,CAAC,GAAG3B,aAAa;IACnC4B,oBAAoB,EAAE,CAAC,CAACrB,iBAAiB,CAACqB,oBAAoB;IAC9DC,qBAAqB,EAAE,CAAC,CAACtB,iBAAiB,CAACsB;EAC7C,CAAC,EACD5B,6BAA6B,CAACM,iBAAiB,CACjD,CAAC;AACH;AACA,OAAO,SAASuB,6CAA6CA,CAC3DvB,iBAAiB,EACjB;EACA,IACE,CAACA,iBAAiB,CAACwB,IAAI,IACvB,CAACxB,iBAAiB,CAACyB,aAAa,IAChC,CAACzB,iBAAiB,CAAC0B,UAAU,EAC7B;IACAtC,OAAO,CAACe,KAAK,CACX,yEACF,CAAC;IACD,OAAO,KAAK;EACd;EACA;EACA;EACA;EACA;EACA;EACA;EACA,IAAIH,iBAAiB,CAACwB,IAAI,IAAI,CAACxB,iBAAiB,CAAC2B,WAAW,EAAE;IAC5DvC,OAAO,CAACe,KAAK,CACX,+DACF,CAAC;IACD,OAAO,KAAK;EACd;EACA,OAAO,IAAI;AACb;AACA,OAAO,SAASK,kBAAkBA,CAACR,iBAAiB,EAAE;EACpD,IAAIO,aAAa,GAAG,CAAC,CAAC;EAEtBA,aAAa,CAACqB,MAAM,GAAGC,mBAAmB,CAAC7B,iBAAiB,CAAC;EAC7DO,aAAa,CAACuB,SAAS,GAAG,CAAC,CAAC9B,iBAAiB,CAAC+B,yBAAyB;EAEvE,IAAI/B,iBAAiB,CAACgC,4BAA4B,EAAE;IAClDzB,aAAa,CAAC0B,MAAM,GAAG/C,cAAc,CAAC,CAAC;EACzC;EAEA,OAAOqB,aAAa;AACtB;AAEA,SAASsB,mBAAmBA,CAAC7B,iBAAiB,EAAE;EAC9C,OACE,CAAC,CAACA,iBAAiB,CAACkC,sBAAsB,IAC1C,CAAC,CAAClC,iBAAiB,CAAC+B,yBAAyB;AAEjD"}
|
|
@@ -5,16 +5,25 @@ var typeMap = {
|
|
|
5
5
|
log: '/logging',
|
|
6
6
|
sessionReplay: '/rum/replay'
|
|
7
7
|
};
|
|
8
|
-
function getEndPointUrl(
|
|
8
|
+
function getEndPointUrl(configuration, type) {
|
|
9
9
|
// type: rum, log,replay
|
|
10
10
|
var subUrl = typeMap[type];
|
|
11
11
|
if (!subUrl) return '';
|
|
12
|
+
var url = configuration.datakitOrigin || configuration.datakitUrl || configuration.site;
|
|
12
13
|
if (url.indexOf('/') === 0) {
|
|
13
14
|
// 绝对路径这种 /xxx
|
|
14
15
|
url = location.origin + trim(url);
|
|
15
16
|
}
|
|
16
|
-
|
|
17
|
-
|
|
17
|
+
var endpoint = url;
|
|
18
|
+
if (url.lastIndexOf('/') === url.length - 1) {
|
|
19
|
+
endpoint = trim(url) + 'v1/write' + subUrl;
|
|
20
|
+
} else {
|
|
21
|
+
endpoint = trim(url) + '/v1/write' + subUrl;
|
|
22
|
+
}
|
|
23
|
+
if (configuration.site && configuration.clientToken) {
|
|
24
|
+
endpoint = endpoint + '?token=' + configuration.clientToken + '&to_headless=true';
|
|
25
|
+
}
|
|
26
|
+
return endpoint;
|
|
18
27
|
}
|
|
19
28
|
function trim(str) {
|
|
20
29
|
return str.replace(TRIM_REGIX, '');
|
|
@@ -33,9 +42,9 @@ export function computeTransportConfiguration(initConfiguration) {
|
|
|
33
42
|
isServerError = initConfiguration.isServerError;
|
|
34
43
|
}
|
|
35
44
|
return {
|
|
36
|
-
rumEndpoint: getEndPointUrl(initConfiguration
|
|
37
|
-
logsEndpoint: getEndPointUrl(initConfiguration
|
|
38
|
-
sessionReplayEndPoint: getEndPointUrl(initConfiguration
|
|
45
|
+
rumEndpoint: getEndPointUrl(initConfiguration, 'rum'),
|
|
46
|
+
logsEndpoint: getEndPointUrl(initConfiguration, 'log'),
|
|
47
|
+
sessionReplayEndPoint: getEndPointUrl(initConfiguration, 'sessionReplay'),
|
|
39
48
|
isIntakeUrl: isIntakeUrl,
|
|
40
49
|
isServerError: isServerError
|
|
41
50
|
};
|