@cloudcare/browser-core 3.2.26 → 3.2.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/browser/asyncClocks.js +0 -4
- package/cjs/browser/asyncClocks.js.map +1 -1
- package/cjs/configuration/configuration.js +1 -1
- package/cjs/configuration/configuration.js.map +1 -1
- package/cjs/configuration/remoteConfiguration.js +0 -85
- package/cjs/configuration/remoteConfiguration.js.map +1 -1
- package/cjs/configuration/transportConfiguration.js +0 -2
- package/cjs/configuration/transportConfiguration.js.map +1 -1
- package/cjs/dataMap.js +1 -2
- package/cjs/dataMap.js.map +1 -1
- package/cjs/helper/deviceInfo.js +2 -41
- package/cjs/helper/deviceInfo.js.map +1 -1
- package/cjs/helper/mobileUtil.js +2 -2
- package/cjs/helper/mobileUtil.js.map +1 -1
- package/cjs/helper/serialisation/rowData.js +0 -1
- package/cjs/helper/serialisation/rowData.js.map +1 -1
- package/cjs/helper/tools.js +6 -21
- package/cjs/helper/tools.js.map +1 -1
- package/cjs/index.js +7 -0
- package/cjs/index.js.map +1 -1
- package/cjs/session/sessionConstants.js +5 -1
- package/cjs/session/sessionConstants.js.map +1 -1
- package/cjs/session/sessionInCookie.js +1 -1
- package/cjs/session/sessionInCookie.js.map +1 -1
- package/cjs/session/sessionInLocalStorage.js +1 -1
- package/cjs/session/sessionInLocalStorage.js.map +1 -1
- package/cjs/session/sessionStore.js +18 -5
- package/cjs/session/sessionStore.js.map +1 -1
- package/cjs/session/sessionStoreOperations.js +34 -8
- package/cjs/session/sessionStoreOperations.js.map +1 -1
- package/cjs/transport/batch.js +9 -11
- package/cjs/transport/batch.js.map +1 -1
- package/cjs/transport/httpRequest.js +40 -6
- package/cjs/transport/httpRequest.js.map +1 -1
- package/esm/browser/asyncClocks.js +0 -4
- package/esm/browser/asyncClocks.js.map +1 -1
- package/esm/configuration/configuration.js +1 -1
- package/esm/configuration/configuration.js.map +1 -1
- package/esm/configuration/remoteConfiguration.js +0 -85
- package/esm/configuration/remoteConfiguration.js.map +1 -1
- package/esm/configuration/transportConfiguration.js +0 -2
- package/esm/configuration/transportConfiguration.js.map +1 -1
- package/esm/dataMap.js +1 -2
- package/esm/dataMap.js.map +1 -1
- package/esm/helper/deviceInfo.js +2 -41
- package/esm/helper/deviceInfo.js.map +1 -1
- package/esm/helper/mobileUtil.js +2 -2
- package/esm/helper/mobileUtil.js.map +1 -1
- package/esm/helper/serialisation/rowData.js +0 -1
- package/esm/helper/serialisation/rowData.js.map +1 -1
- package/esm/helper/tools.js +6 -21
- package/esm/helper/tools.js.map +1 -1
- package/esm/index.js +1 -1
- package/esm/index.js.map +1 -1
- package/esm/session/sessionConstants.js +4 -0
- package/esm/session/sessionConstants.js.map +1 -1
- package/esm/session/sessionInCookie.js +2 -2
- package/esm/session/sessionInCookie.js.map +1 -1
- package/esm/session/sessionInLocalStorage.js +2 -2
- package/esm/session/sessionInLocalStorage.js.map +1 -1
- package/esm/session/sessionStore.js +18 -5
- package/esm/session/sessionStore.js.map +1 -1
- package/esm/session/sessionStoreOperations.js +34 -9
- package/esm/session/sessionStoreOperations.js.map +1 -1
- package/esm/transport/batch.js +9 -11
- package/esm/transport/batch.js.map +1 -1
- package/esm/transport/httpRequest.js +40 -6
- package/esm/transport/httpRequest.js.map +1 -1
- package/package.json +23 -24
- package/src/browser/asyncClocks.js +0 -3
- package/src/configuration/configuration.js +1 -1
- package/src/configuration/remoteConfiguration.js +0 -84
- package/src/configuration/transportConfiguration.js +0 -2
- package/src/dataMap.js +2 -2
- package/src/helper/deviceInfo.js +9 -37
- package/src/helper/mobileUtil.js +2 -2
- package/src/helper/serialisation/rowData.js +0 -1
- package/src/helper/tools.js +6 -23
- package/src/index.js +2 -1
- package/src/session/sessionConstants.js +4 -0
- package/src/session/sessionInCookie.js +3 -2
- package/src/session/sessionInLocalStorage.js +4 -2
- package/src/session/sessionStore.js +27 -8
- package/src/session/sessionStoreOperations.js +31 -13
- package/src/transport/batch.js +9 -11
- package/src/transport/httpRequest.js +53 -14
- package/types/index.d.ts +72 -58
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batch.js","names":["_display","require","_tools","_rowData","_dataMap","_enums","_byteUtils","_pageExitObservable","_jsonStringify","CUSTOM_KEYS","processedMessageByDataMap","exports","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","createBatch","options","encoder","request","messageBytesLimit","sendContentTypeByJson","flushController","upsertBuffer","flushSubscription","flushObservable","subscribe","event","flush","getMessageText","messages","isEmpty","arguments","serializedMessage","estimatedMessageBytesCount","notifyBeforeAddMessage","notifyAfterAddMessage","write","realMessageBytesCount","hasMessageFor","remove","removedMessage","messageBytesCount","estimateEncodedBytesCount","notifyAfterRemoveMessage","process","processedMessage","jsonStringify","addOrUpdate","display","warn","concat","upsertMessages","values","isPageExit","isPageExitReason","reason","send","sendOnExit","isAsync","encoderResult","finishSync","outputBytesCount","formatPayloadFromEncoder","pendingMessages","pendingData","filter","Boolean","data","bytesCount","computeBytesCount","text","finish","add","upsert","stop","unsubscribe","output","Blob","encoding"],"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 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}\n\nexport function createBatch(options) {\n var encoder = options.encoder\n var request = options.request\n var messageBytesLimit = options.messageBytesLimit\n var sendContentTypeByJson = options.sendContentTypeByJson\n var flushController = options.flushController\n var upsertBuffer = {}\n var flushSubscription = flushController.flushObservable.subscribe(function (\n event\n ) {\n flush(event)\n })\n function getMessageText(messages, isEmpty = false) {\n if (sendContentTypeByJson) {\n if (isEmpty) {\n return '[' + messages.join(',')\n } else {\n return ',' + messages.join(',')\n }\n } else {\n if (isEmpty) {\n return messages.join('\\n')\n } else {\n return '\\n' + messages.join('\\n')\n }\n }\n }\n function push(serializedMessage, estimatedMessageBytesCount, key) {\n flushController.notifyBeforeAddMessage(estimatedMessageBytesCount)\n\n if (key !== undefined) {\n upsertBuffer[key] = serializedMessage\n flushController.notifyAfterAddMessage()\n } else {\n encoder.write(\n getMessageText([serializedMessage], encoder.isEmpty()),\n function (realMessageBytesCount) {\n flushController.notifyAfterAddMessage(\n realMessageBytesCount - estimatedMessageBytesCount\n )\n }\n )\n }\n }\n\n function hasMessageFor(key) {\n return key !== undefined && upsertBuffer[key] !== undefined\n }\n\n function remove(key) {\n var removedMessage = upsertBuffer[key]\n delete upsertBuffer[key]\n var messageBytesCount = encoder.estimateEncodedBytesCount(removedMessage)\n flushController.notifyAfterRemoveMessage(messageBytesCount)\n }\n function process(message) {\n var processedMessage = ''\n if (sendContentTypeByJson) {\n processedMessage = jsonStringify(\n processedMessageByDataMap(message).rowData\n )\n } else {\n processedMessage = processedMessageByDataMap(message).rowStr\n }\n return processedMessage\n }\n function addOrUpdate(message, key) {\n const serializedMessage = process(message)\n\n const estimatedMessageBytesCount =\n encoder.estimateEncodedBytesCount(serializedMessage)\n\n if (estimatedMessageBytesCount >= messageBytesLimit) {\n display.warn(\n `Discarded a message whose size was bigger than the maximum allowed size ${messageBytesLimit}KB.`\n )\n return\n }\n\n if (hasMessageFor(key)) {\n remove(key)\n }\n\n push(serializedMessage, estimatedMessageBytesCount, key)\n }\n\n function flush(event) {\n var upsertMessages = values(upsertBuffer).join(\n sendContentTypeByJson ? ',' : '\\n'\n )\n upsertBuffer = {}\n\n var isPageExit = isPageExitReason(event.reason)\n var send = isPageExit ? request.sendOnExit : request.send\n\n if (\n isPageExit &&\n // Note: checking that the encoder is async is not strictly needed, but it's an optimization:\n // if the encoder is async we need to send two requests in some cases (one for encoded data\n // and the other for non-encoded data). But if it's not async, we don't have to worry about\n // it and always send a single request.\n encoder.isAsync\n ) {\n // 咱不支持json 模式\n var encoderResult = encoder.finishSync()\n\n // Send encoded messages\n if (encoderResult.outputBytesCount) {\n send(formatPayloadFromEncoder(encoderResult, sendContentTypeByJson))\n }\n\n // Send messages that are not yet encoded at this point\n var pendingMessages = [encoderResult.pendingData, upsertMessages]\n .filter(Boolean)\n .join('\\n')\n\n if (pendingMessages) {\n send({\n data: pendingMessages,\n bytesCount: computeBytesCount(pendingMessages)\n })\n }\n } else {\n if (upsertMessages) {\n var text = getMessageText([upsertMessages], encoder.isEmpty())\n if (sendContentTypeByJson) {\n text += ']'\n }\n encoder.write(text)\n } else {\n if (sendContentTypeByJson) {\n encoder.write(']')\n }\n }\n encoder.finish(function (encoderResult) {\n send(formatPayloadFromEncoder(encoderResult))\n })\n }\n }\n\n return {\n flushController: flushController,\n add: addOrUpdate,\n upsert: addOrUpdate,\n stop: flushSubscription.unsubscribe\n }\n}\n\nfunction formatPayloadFromEncoder(encoderResult, sendContentTypeByJson) {\n var data\n if (typeof encoderResult.output === 'string') {\n data = encoderResult.output\n } else {\n data = new Blob([encoderResult.output], {\n // This will set the 'Content-Type: text/plain' header. Reasoning:\n // * The intake rejects the request if there is no content type.\n // * The browser will issue CORS preflight requests if we set it to 'application/json', which\n // could induce higher intake load (and maybe has other impacts).\n // * Also it's not quite JSON, since we are concatenating multiple JSON objects separated by\n // new lines.\n type: 'text/plain'\n })\n }\n\n return {\n data: data,\n type: sendContentTypeByJson ? 'application/json;UTF-8' : undefined,\n bytesCount: encoderResult.outputBytesCount,\n encoding: encoderResult.encoding\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"batch.js","names":["_display","require","_tools","_rowData","_dataMap","_enums","_byteUtils","_pageExitObservable","_jsonStringify","CUSTOM_KEYS","processedMessageByDataMap","exports","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","createBatch","options","encoder","request","messageBytesLimit","sendContentTypeByJson","flushController","upsertBuffer","flushSubscription","flushObservable","subscribe","event","flush","getMessageText","messages","isEmpty","arguments","serializedMessage","estimatedMessageBytesCount","notifyBeforeAddMessage","notifyAfterAddMessage","write","realMessageBytesCount","hasMessageFor","remove","removedMessage","messageBytesCount","estimateEncodedBytesCount","notifyAfterRemoveMessage","process","processedMessage","jsonStringify","addOrUpdate","display","warn","concat","upsertMessages","values","isPageExit","isPageExitReason","reason","send","sendOnExit","isAsync","encoderResult","finishSync","outputBytesCount","formatPayloadFromEncoder","pendingMessages","pendingData","filter","Boolean","data","bytesCount","computeBytesCount","text","finish","add","upsert","stop","unsubscribe","output","Blob","encoding","outputBase64Head","outputBase64Tail"],"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 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]\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 var _tagKeys = []\n each(message.context, function (_value, _key) {\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 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}\n\nexport function createBatch(options) {\n var encoder = options.encoder\n var request = options.request\n var messageBytesLimit = options.messageBytesLimit\n var sendContentTypeByJson = options.sendContentTypeByJson\n var flushController = options.flushController\n var upsertBuffer = {}\n var flushSubscription = flushController.flushObservable.subscribe(function (\n event\n ) {\n flush(event)\n })\n function getMessageText(messages, isEmpty = false) {\n if (sendContentTypeByJson) {\n if (isEmpty) {\n return '[' + messages.join(',')\n } else {\n return ',' + messages.join(',')\n }\n } else {\n if (isEmpty) {\n return messages.join('\\n')\n } else {\n return '\\n' + messages.join('\\n')\n }\n }\n }\n function push(serializedMessage, estimatedMessageBytesCount, key) {\n flushController.notifyBeforeAddMessage(estimatedMessageBytesCount)\n\n if (key !== undefined) {\n upsertBuffer[key] = serializedMessage\n flushController.notifyAfterAddMessage()\n } else {\n encoder.write(\n getMessageText([serializedMessage], encoder.isEmpty()),\n function (realMessageBytesCount) {\n flushController.notifyAfterAddMessage(\n realMessageBytesCount - estimatedMessageBytesCount\n )\n }\n )\n }\n }\n\n function hasMessageFor(key) {\n return key !== undefined && upsertBuffer[key] !== undefined\n }\n\n function remove(key) {\n var removedMessage = upsertBuffer[key]\n delete upsertBuffer[key]\n var messageBytesCount = encoder.estimateEncodedBytesCount(removedMessage)\n flushController.notifyAfterRemoveMessage(messageBytesCount)\n }\n function process(message) {\n var processedMessage = ''\n if (sendContentTypeByJson) {\n processedMessage = jsonStringify(\n processedMessageByDataMap(message).rowData\n )\n } else {\n processedMessage = processedMessageByDataMap(message).rowStr\n }\n return processedMessage\n }\n function addOrUpdate(message, key) {\n const serializedMessage = process(message)\n\n const estimatedMessageBytesCount =\n encoder.estimateEncodedBytesCount(serializedMessage)\n\n if (estimatedMessageBytesCount >= messageBytesLimit) {\n display.warn(\n `Discarded a message whose size was bigger than the maximum allowed size ${messageBytesLimit}KB.`\n )\n return\n }\n\n if (hasMessageFor(key)) {\n remove(key)\n }\n\n push(serializedMessage, estimatedMessageBytesCount, key)\n }\n\n function flush(event) {\n var upsertMessages = values(upsertBuffer).join(\n sendContentTypeByJson ? ',' : '\\n'\n )\n upsertBuffer = {}\n\n var isPageExit = isPageExitReason(event.reason)\n var send = isPageExit ? request.sendOnExit : request.send\n\n if (\n isPageExit &&\n // Note: checking that the encoder is async is not strictly needed, but it's an optimization:\n // if the encoder is async we need to send two requests in some cases (one for encoded data\n // and the other for non-encoded data). But if it's not async, we don't have to worry about\n // it and always send a single request.\n encoder.isAsync\n ) {\n var encoderResult = encoder.finishSync()\n\n // Send encoded messages\n if (encoderResult.outputBytesCount) {\n send(formatPayloadFromEncoder(encoderResult, sendContentTypeByJson))\n }\n\n // Send messages that are not yet encoded at this point\n var pendingMessages = [encoderResult.pendingData, upsertMessages]\n .filter(Boolean)\n .join('\\n')\n\n if (pendingMessages) {\n send({\n data: pendingMessages,\n bytesCount: computeBytesCount(pendingMessages)\n })\n }\n } else {\n if (upsertMessages) {\n var text = getMessageText([upsertMessages], encoder.isEmpty())\n if (sendContentTypeByJson) {\n text += ']'\n }\n encoder.write(text)\n } else {\n if (sendContentTypeByJson) {\n encoder.write(']')\n }\n }\n encoder.finish(function (encoderResult) {\n send(formatPayloadFromEncoder(encoderResult))\n })\n }\n }\n\n return {\n flushController: flushController,\n add: addOrUpdate,\n upsert: addOrUpdate,\n stop: flushSubscription.unsubscribe\n }\n}\n\nfunction formatPayloadFromEncoder(encoderResult, sendContentTypeByJson) {\n var data\n if (typeof encoderResult.output === 'string') {\n data = encoderResult.output\n } else {\n data = new Blob([encoderResult.output], {\n // This will set the 'Content-Type: text/plain' header. Reasoning:\n // * The intake rejects the request if there is no content type.\n // * The browser will issue CORS preflight requests if we set it to 'application/json', which\n // could induce higher intake load (and maybe has other impacts).\n // * Also it's not quite JSON, since we are concatenating multiple JSON objects separated by\n // new lines.\n type: 'text/plain'\n })\n }\n\n return {\n data: data,\n type: sendContentTypeByJson ? 'application/json;UTF-8' : undefined,\n bytesCount: encoderResult.outputBytesCount,\n encoding: encoderResult.encoding,\n outputBase64Head: encoderResult.outputBase64Head,\n outputBase64Tail: encoderResult.outputBase64Tail\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -90,10 +90,18 @@ function fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse) {
|
|
|
90
90
|
keepalive: true,
|
|
91
91
|
mode: 'cors'
|
|
92
92
|
};
|
|
93
|
+
var headers = {};
|
|
93
94
|
if (payload.type) {
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
95
|
+
headers['Content-Type'] = payload.type;
|
|
96
|
+
}
|
|
97
|
+
if (payload.outputBase64Head) {
|
|
98
|
+
headers['x-base64-head'] = payload.outputBase64Head;
|
|
99
|
+
}
|
|
100
|
+
if (payload.outputBase64Tail) {
|
|
101
|
+
headers['x-base64-tail'] = payload.outputBase64Tail;
|
|
102
|
+
}
|
|
103
|
+
if (Object.keys(headers).length) {
|
|
104
|
+
fetchOption.headers = headers;
|
|
97
105
|
}
|
|
98
106
|
fetch(url, fetchOption).then((0, _monitor.monitor)(function (response) {
|
|
99
107
|
if (typeof onResponse === 'function') {
|
|
@@ -102,9 +110,8 @@ function fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse) {
|
|
|
102
110
|
type: response.type
|
|
103
111
|
});
|
|
104
112
|
}
|
|
105
|
-
})
|
|
106
|
-
|
|
107
|
-
sendXHR(url, payload, onResponse);
|
|
113
|
+
}))["catch"]((0, _monitor.monitor)(function () {
|
|
114
|
+
fetchStrategy(url, payload, onResponse);
|
|
108
115
|
}));
|
|
109
116
|
} else {
|
|
110
117
|
sendXHR(url, payload, onResponse);
|
|
@@ -138,4 +145,31 @@ function sendXHR(url, payload, onResponse) {
|
|
|
138
145
|
});
|
|
139
146
|
request.send(data);
|
|
140
147
|
}
|
|
148
|
+
function fetchStrategy(url, payload, onResponse) {
|
|
149
|
+
var fetchOption = {
|
|
150
|
+
method: 'POST',
|
|
151
|
+
body: payload.data,
|
|
152
|
+
keepalive: true,
|
|
153
|
+
mode: 'cors'
|
|
154
|
+
};
|
|
155
|
+
if (payload.type) {
|
|
156
|
+
fetchOption.headers = {
|
|
157
|
+
'Content-Type': payload.type
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
fetch(url, fetchOption).then((0, _monitor.monitor)(function (response) {
|
|
161
|
+
if (typeof onResponse === 'function') {
|
|
162
|
+
onResponse({
|
|
163
|
+
status: response.status,
|
|
164
|
+
type: response.type
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}))["catch"]((0, _monitor.monitor)(function () {
|
|
168
|
+
if (typeof onResponse === 'function') {
|
|
169
|
+
onResponse({
|
|
170
|
+
status: 0
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}));
|
|
174
|
+
}
|
|
141
175
|
//# sourceMappingURL=httpRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpRequest.js","names":["_sendWithRetryStrategy","require","_addEventListener","_monitor","_telemetry","addBatchPrecision","url","encoding","indexOf","createHttpRequest","endpointUrl","bytesLimit","retryMaxSize","reportError","undefined","retryState","newRetryState","sendStrategyForRetry","payload","onResponse","fetchKeepAliveStrategy","send","sendWithRetryStrategy","sendOnExit","sendBeaconStrategy","data","bytesCount","canUseBeacon","navigator","sendBeacon","beaconData","type","Blob","isQueued","e","reportBeaconError","sendXHR","hasReportedBeaconError","addTelemetryError","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'\nimport { addTelemetryError } from '../telemetry/telemetry'\n/**\n * Use POST request without content type to:\n * - avoid CORS preflight requests\n * - allow usage of sendBeacon\n *\n * multiple elements are sent separated by \\n in order\n * to be parsed correctly without content type header\n */\nfunction addBatchPrecision(url, encoding) {\n if (!url) return url\n url = url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms'\n if (encoding) {\n url = url + '&encoding=' + encoding\n }\n return url\n}\nexport function createHttpRequest(\n endpointUrl,\n bytesLimit,\n retryMaxSize,\n reportError\n) {\n if (retryMaxSize === undefined) {\n retryMaxSize = -1\n }\n var retryState = newRetryState(retryMaxSize)\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse)\n }\n\n return {\n send: function (payload) {\n sendWithRetryStrategy(\n payload,\n retryState,\n sendStrategyForRetry,\n endpointUrl,\n reportError\n )\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(endpointUrl, bytesLimit, payload)\n }\n }\n}\n\nfunction sendBeaconStrategy(endpointUrl, bytesLimit, payload) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit\n if (canUseBeacon) {\n try {\n var beaconData\n if (payload.type) {\n beaconData = new Blob([data], {\n type: payload.type\n })\n } else {\n beaconData = data\n }\n\n var isQueued = navigator.sendBeacon(url, beaconData)\n\n if (isQueued) {\n return\n }\n } catch (e) {\n reportBeaconError(e)\n }\n }\n sendXHR(url, payload)\n}\nvar hasReportedBeaconError = false\n\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true\n addTelemetryError(e)\n }\n}\nexport function fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n payload,\n onResponse\n) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit\n if (canUseKeepAlive) {\n var fetchOption = {\n method: 'POST',\n body: data,\n keepalive: true,\n mode: 'cors'\n }\n if (payload.type) {\n fetchOption.headers = {\n 'Content-Type': payload.type\n }\n }\n fetch(url, fetchOption).then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n }),\n monitor(function () {\n // failed to queue the request\n sendXHR(url, payload, onResponse)\n })\n )\n } else {\n sendXHR(url, payload, onResponse)\n }\n}\n\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a')\n } catch {\n return false\n }\n}\n\nfunction sendXHR(url, payload, onResponse) {\n const data = payload.data\n const request = new XMLHttpRequest()\n request.open('POST', url, true)\n if (data instanceof Blob) {\n request.setRequestHeader('Content-Type', data.type)\n } else if (payload.type) {\n request.setRequestHeader('Content-Type', payload.type)\n }\n\n addEventListener(\n request,\n 'loadend',\n function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: request.status })\n }\n },\n {\n once: true\n }\n )\n request.send(data)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"httpRequest.js","names":["_sendWithRetryStrategy","require","_addEventListener","_monitor","_telemetry","addBatchPrecision","url","encoding","indexOf","createHttpRequest","endpointUrl","bytesLimit","retryMaxSize","reportError","undefined","retryState","newRetryState","sendStrategyForRetry","payload","onResponse","fetchKeepAliveStrategy","send","sendWithRetryStrategy","sendOnExit","sendBeaconStrategy","data","bytesCount","canUseBeacon","navigator","sendBeacon","beaconData","type","Blob","isQueued","e","reportBeaconError","sendXHR","hasReportedBeaconError","addTelemetryError","canUseKeepAlive","isKeepAliveSupported","fetchOption","method","body","keepalive","mode","headers","outputBase64Head","outputBase64Tail","Object","keys","length","fetch","then","monitor","response","status","fetchStrategy","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'\nimport { addTelemetryError } from '../telemetry/telemetry'\n/**\n * Use POST request without content type to:\n * - avoid CORS preflight requests\n * - allow usage of sendBeacon\n *\n * multiple elements are sent separated by \\n in order\n * to be parsed correctly without content type header\n */\nfunction addBatchPrecision(url, encoding) {\n if (!url) return url\n url = url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms'\n if (encoding) {\n url = url + '&encoding=' + encoding\n }\n return url\n}\nexport function createHttpRequest(\n endpointUrl,\n bytesLimit,\n retryMaxSize,\n reportError\n) {\n if (retryMaxSize === undefined) {\n retryMaxSize = -1\n }\n var retryState = newRetryState(retryMaxSize)\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse)\n }\n\n return {\n send: function (payload) {\n sendWithRetryStrategy(\n payload,\n retryState,\n sendStrategyForRetry,\n endpointUrl,\n reportError\n )\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(endpointUrl, bytesLimit, payload)\n }\n }\n}\n\nfunction sendBeaconStrategy(endpointUrl, bytesLimit, payload) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit\n if (canUseBeacon) {\n try {\n var beaconData\n if (payload.type) {\n beaconData = new Blob([data], {\n type: payload.type\n })\n } else {\n beaconData = data\n }\n\n var isQueued = navigator.sendBeacon(url, beaconData)\n\n if (isQueued) {\n return\n }\n } catch (e) {\n reportBeaconError(e)\n }\n }\n sendXHR(url, payload)\n}\nvar hasReportedBeaconError = false\n\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true\n addTelemetryError(e)\n }\n}\nexport function fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n payload,\n onResponse\n) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit\n if (canUseKeepAlive) {\n var fetchOption = {\n method: 'POST',\n body: data,\n keepalive: true,\n mode: 'cors'\n }\n const headers = {}\n\n if (payload.type) {\n headers['Content-Type'] = payload.type\n }\n if (payload.outputBase64Head) {\n headers['x-base64-head'] = payload.outputBase64Head\n }\n if (payload.outputBase64Tail) {\n headers['x-base64-tail'] = payload.outputBase64Tail\n }\n if (Object.keys(headers).length) {\n fetchOption.headers = headers\n }\n fetch(url, fetchOption)\n .then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n })\n )\n .catch(\n monitor(function () {\n fetchStrategy(url, payload, onResponse)\n })\n )\n } else {\n sendXHR(url, payload, onResponse)\n }\n}\n\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a')\n } catch {\n return false\n }\n}\n\nfunction sendXHR(url, payload, onResponse) {\n const data = payload.data\n const request = new XMLHttpRequest()\n request.open('POST', url, true)\n if (data instanceof Blob) {\n request.setRequestHeader('Content-Type', data.type)\n } else if (payload.type) {\n request.setRequestHeader('Content-Type', payload.type)\n }\n\n addEventListener(\n request,\n 'loadend',\n function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: request.status })\n }\n },\n {\n once: true\n }\n )\n request.send(data)\n}\nfunction fetchStrategy(url, payload, onResponse) {\n const fetchOption = {\n method: 'POST',\n body: payload.data,\n keepalive: true,\n mode: 'cors'\n }\n if (payload.type) {\n fetchOption.headers = {\n 'Content-Type': payload.type\n }\n }\n fetch(url, fetchOption)\n .then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n })\n )\n .catch(\n monitor(function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: 0 })\n }\n })\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -12,8 +12,6 @@ export function fetchAndApplyRemoteClocks(initConfiguration, callback) {
|
|
|
12
12
|
}
|
|
13
13
|
function applyRemoteClocks(serverTimestamp, rtt) {
|
|
14
14
|
var estimatedClientTime = performance.timing.navigationStart + start + rtt / 2;
|
|
15
|
-
|
|
16
|
-
// 计算时间偏移
|
|
17
15
|
var offset = serverTimestamp - estimatedClientTime;
|
|
18
16
|
return offset;
|
|
19
17
|
}
|
|
@@ -37,7 +35,6 @@ export function fetchRemoteClocks(configuration, callback) {
|
|
|
37
35
|
export function buildEndpoint(configuration) {
|
|
38
36
|
var url = configuration.datakitOrigin || configuration.datakitUrl || configuration.site;
|
|
39
37
|
if (url.indexOf('/') === 0) {
|
|
40
|
-
// 绝对路径这种 /xxx
|
|
41
38
|
url = location.origin + trim(url);
|
|
42
39
|
}
|
|
43
40
|
var endpoint = url;
|
|
@@ -46,7 +43,6 @@ export function buildEndpoint(configuration) {
|
|
|
46
43
|
} else {
|
|
47
44
|
endpoint = trim(url) + '/v1/env_variable';
|
|
48
45
|
}
|
|
49
|
-
// 这里需要加上token和app_id
|
|
50
46
|
endpoint += '?app_id=' + configuration.applicationId;
|
|
51
47
|
//testing-openway.dataflux.cn/v1/env_variable?token=a47fb0cdddaa4561a90d941317cdbc0b&app_id=d1b454d0_22eb_11ef_9b66_95ca11aa2c6c&to_headless=true
|
|
52
48
|
if (configuration.site && configuration.clientToken) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"asyncClocks.js","names":["addEventListener","display","trim","timeOffset","fetchAndApplyRemoteClocks","initConfiguration","callback","start","performance","now","fetchRemoteClocks","serverTimestamp","end","rtt","applyRemoteClocks","estimatedClientTime","timing","navigationStart","offset","configuration","xhr","XMLHttpRequest","status","remoteConfiguration","JSON","parse","responseText","content","displayRemoteClocksFetchingError","open","buildEndpoint","send","url","datakitOrigin","datakitUrl","site","indexOf","location","origin","endpoint","lastIndexOf","length","applicationId","clientToken","error"],"sources":["../../src/browser/asyncClocks.js"],"sourcesContent":["import { addEventListener } from './addEventListener'\nimport { display } from '../helper/display'\nimport { trim } from '../configuration/transportConfiguration'\nlet timeOffset\nexport function fetchAndApplyRemoteClocks(initConfiguration, callback) {\n const start = performance.now()\n fetchRemoteClocks(initConfiguration, (serverTimestamp) => {\n const end = performance.now()\n const rtt = end - start\n callback(applyRemoteClocks(serverTimestamp, rtt))\n })\n}\nfunction applyRemoteClocks(serverTimestamp, rtt) {\n const estimatedClientTime =\n performance.timing.navigationStart + start + rtt / 2\n\n
|
|
1
|
+
{"version":3,"file":"asyncClocks.js","names":["addEventListener","display","trim","timeOffset","fetchAndApplyRemoteClocks","initConfiguration","callback","start","performance","now","fetchRemoteClocks","serverTimestamp","end","rtt","applyRemoteClocks","estimatedClientTime","timing","navigationStart","offset","configuration","xhr","XMLHttpRequest","status","remoteConfiguration","JSON","parse","responseText","content","displayRemoteClocksFetchingError","open","buildEndpoint","send","url","datakitOrigin","datakitUrl","site","indexOf","location","origin","endpoint","lastIndexOf","length","applicationId","clientToken","error"],"sources":["../../src/browser/asyncClocks.js"],"sourcesContent":["import { addEventListener } from './addEventListener'\nimport { display } from '../helper/display'\nimport { trim } from '../configuration/transportConfiguration'\nlet timeOffset\nexport function fetchAndApplyRemoteClocks(initConfiguration, callback) {\n const start = performance.now()\n fetchRemoteClocks(initConfiguration, (serverTimestamp) => {\n const end = performance.now()\n const rtt = end - start\n callback(applyRemoteClocks(serverTimestamp, rtt))\n })\n}\nfunction applyRemoteClocks(serverTimestamp, rtt) {\n const estimatedClientTime =\n performance.timing.navigationStart + start + rtt / 2\n\n const offset = serverTimestamp - estimatedClientTime\n return offset\n}\nexport function fetchRemoteClocks(configuration, callback) {\n const xhr = new XMLHttpRequest()\n\n addEventListener(xhr, 'load', function () {\n if (xhr.status === 200) {\n const remoteConfiguration = JSON.parse(xhr.responseText)\n callback(remoteConfiguration.content)\n } else {\n displayRemoteClocksFetchingError()\n }\n })\n\n addEventListener(xhr, 'error', function () {\n callback({})\n displayRemoteClocksFetchingError()\n })\n\n xhr.open('GET', buildEndpoint(configuration))\n xhr.send()\n}\n\nexport function buildEndpoint(configuration) {\n var url =\n configuration.datakitOrigin ||\n configuration.datakitUrl ||\n configuration.site\n if (url.indexOf('/') === 0) {\n url = location.origin + trim(url)\n }\n var endpoint = url\n if (url.lastIndexOf('/') === url.length - 1) {\n endpoint = trim(url) + 'v1/env_variable'\n } else {\n endpoint = trim(url) + '/v1/env_variable'\n }\n endpoint += '?app_id=' + configuration.applicationId\n //testing-openway.dataflux.cn/v1/env_variable?token=a47fb0cdddaa4561a90d941317cdbc0b&app_id=d1b454d0_22eb_11ef_9b66_95ca11aa2c6c&to_headless=true\n if (configuration.site && configuration.clientToken) {\n endpoint =\n endpoint + '&token=' + configuration.clientToken + '&to_headless=true'\n }\n return endpoint\n}\n\nfunction displayRemoteClocksFetchingError() {\n display.error('Error fetching the remote configuration.')\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,oBAAoB;AACrD,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,SAASC,IAAI,QAAQ,yCAAyC;AAC9D,IAAIC,UAAU;AACd,OAAO,SAASC,yBAAyBA,CAACC,iBAAiB,EAAEC,QAAQ,EAAE;EACrE,IAAMC,KAAK,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;EAC/BC,iBAAiB,CAACL,iBAAiB,EAAE,UAACM,eAAe,EAAK;IACxD,IAAMC,GAAG,GAAGJ,WAAW,CAACC,GAAG,CAAC,CAAC;IAC7B,IAAMI,GAAG,GAAGD,GAAG,GAAGL,KAAK;IACvBD,QAAQ,CAACQ,iBAAiB,CAACH,eAAe,EAAEE,GAAG,CAAC,CAAC;EACnD,CAAC,CAAC;AACJ;AACA,SAASC,iBAAiBA,CAACH,eAAe,EAAEE,GAAG,EAAE;EAC/C,IAAME,mBAAmB,GACvBP,WAAW,CAACQ,MAAM,CAACC,eAAe,GAAGV,KAAK,GAAGM,GAAG,GAAG,CAAC;EAEtD,IAAMK,MAAM,GAAGP,eAAe,GAAGI,mBAAmB;EACpD,OAAOG,MAAM;AACf;AACA,OAAO,SAASR,iBAAiBA,CAACS,aAAa,EAAEb,QAAQ,EAAE;EACzD,IAAMc,GAAG,GAAG,IAAIC,cAAc,CAAC,CAAC;EAEhCrB,gBAAgB,CAACoB,GAAG,EAAE,MAAM,EAAE,YAAY;IACxC,IAAIA,GAAG,CAACE,MAAM,KAAK,GAAG,EAAE;MACtB,IAAMC,mBAAmB,GAAGC,IAAI,CAACC,KAAK,CAACL,GAAG,CAACM,YAAY,CAAC;MACxDpB,QAAQ,CAACiB,mBAAmB,CAACI,OAAO,CAAC;IACvC,CAAC,MAAM;MACLC,gCAAgC,CAAC,CAAC;IACpC;EACF,CAAC,CAAC;EAEF5B,gBAAgB,CAACoB,GAAG,EAAE,OAAO,EAAE,YAAY;IACzCd,QAAQ,CAAC,CAAC,CAAC,CAAC;IACZsB,gCAAgC,CAAC,CAAC;EACpC,CAAC,CAAC;EAEFR,GAAG,CAACS,IAAI,CAAC,KAAK,EAAEC,aAAa,CAACX,aAAa,CAAC,CAAC;EAC7CC,GAAG,CAACW,IAAI,CAAC,CAAC;AACZ;AAEA,OAAO,SAASD,aAAaA,CAACX,aAAa,EAAE;EAC3C,IAAIa,GAAG,GACLb,aAAa,CAACc,aAAa,IAC3Bd,aAAa,CAACe,UAAU,IACxBf,aAAa,CAACgB,IAAI;EACpB,IAAIH,GAAG,CAACI,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;IAC1BJ,GAAG,GAAGK,QAAQ,CAACC,MAAM,GAAGpC,IAAI,CAAC8B,GAAG,CAAC;EACnC;EACA,IAAIO,QAAQ,GAAGP,GAAG;EAClB,IAAIA,GAAG,CAACQ,WAAW,CAAC,GAAG,CAAC,KAAKR,GAAG,CAACS,MAAM,GAAG,CAAC,EAAE;IAC3CF,QAAQ,GAAGrC,IAAI,CAAC8B,GAAG,CAAC,GAAG,iBAAiB;EAC1C,CAAC,MAAM;IACLO,QAAQ,GAAGrC,IAAI,CAAC8B,GAAG,CAAC,GAAG,kBAAkB;EAC3C;EACAO,QAAQ,IAAI,UAAU,GAAGpB,aAAa,CAACuB,aAAa;EACpD;EACA,IAAIvB,aAAa,CAACgB,IAAI,IAAIhB,aAAa,CAACwB,WAAW,EAAE;IACnDJ,QAAQ,GACNA,QAAQ,GAAG,SAAS,GAAGpB,aAAa,CAACwB,WAAW,GAAG,mBAAmB;EAC1E;EACA,OAAOJ,QAAQ;AACjB;AAEA,SAASX,gCAAgCA,CAAA,EAAG;EAC1C3B,OAAO,CAAC2C,KAAK,CAAC,0CAA0C,CAAC;AAC3D","ignoreList":[]}
|
|
@@ -52,7 +52,7 @@ export function validateAndBuildConfiguration(initConfiguration) {
|
|
|
52
52
|
messageBytesLimit: 256 * ONE_KIBI_BYTE,
|
|
53
53
|
resourceUrlLimit: 5 * ONE_KIBI_BYTE,
|
|
54
54
|
storeContextsToLocal: !!initConfiguration.storeContextsToLocal,
|
|
55
|
-
//
|
|
55
|
+
// localstorage key ,default auto gen
|
|
56
56
|
storeContextsKey: initConfiguration.storeContextsKey,
|
|
57
57
|
sendContentTypeByJson: !!initConfiguration.sendContentTypeByJson,
|
|
58
58
|
retryMaxSize: isNullUndefinedDefaultValue(initConfiguration.retryMaxSize, -1)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configuration.js","names":["catchUserErrors","display","assign","isPercentage","ONE_SECOND","isNullUndefinedDefaultValue","ONE_KIBI_BYTE","computeTransportConfiguration","selectSessionStoreStrategyType","DefaultPrivacyLevel","ALLOW","MASK","MASK_USER_INPUT","validateAndBuildConfiguration","initConfiguration","sampleRate","undefined","error","sessionSampleRate","telemetrySampleRate","beforeSend","sessionStoreStrategyType","service","version","env","telemetryEnabled","silentMultipleInit","batchBytesLimit","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","batchMessagesLimit","messageBytesLimit","resourceUrlLimit","storeContextsToLocal","storeContextsKey","sendContentTypeByJson","retryMaxSize","validatePostRequestRequireParamsConfiguration","site","datakitOrigin","datakitUrl","clientToken"],"sources":["../../src/configuration/configuration.js"],"sourcesContent":["import { 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'\nimport { selectSessionStoreStrategyType } from '../session/sessionStore'\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\n var sessionSampleRate = isNullUndefinedDefaultValue(\n initConfiguration.sessionSampleRate,\n initConfiguration.sampleRate\n )\n return assign(\n {\n beforeSend:\n initConfiguration.beforeSend &&\n catchUserErrors(\n initConfiguration.beforeSend,\n 'beforeSend threw an error:'\n ),\n sessionStoreStrategyType:\n selectSessionStoreStrategyType(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 //
|
|
1
|
+
{"version":3,"file":"configuration.js","names":["catchUserErrors","display","assign","isPercentage","ONE_SECOND","isNullUndefinedDefaultValue","ONE_KIBI_BYTE","computeTransportConfiguration","selectSessionStoreStrategyType","DefaultPrivacyLevel","ALLOW","MASK","MASK_USER_INPUT","validateAndBuildConfiguration","initConfiguration","sampleRate","undefined","error","sessionSampleRate","telemetrySampleRate","beforeSend","sessionStoreStrategyType","service","version","env","telemetryEnabled","silentMultipleInit","batchBytesLimit","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","batchMessagesLimit","messageBytesLimit","resourceUrlLimit","storeContextsToLocal","storeContextsKey","sendContentTypeByJson","retryMaxSize","validatePostRequestRequireParamsConfiguration","site","datakitOrigin","datakitUrl","clientToken"],"sources":["../../src/configuration/configuration.js"],"sourcesContent":["import { 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'\nimport { selectSessionStoreStrategyType } from '../session/sessionStore'\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\n var sessionSampleRate = isNullUndefinedDefaultValue(\n initConfiguration.sessionSampleRate,\n initConfiguration.sampleRate\n )\n return assign(\n {\n beforeSend:\n initConfiguration.beforeSend &&\n catchUserErrors(\n initConfiguration.beforeSend,\n 'beforeSend threw an error:'\n ),\n sessionStoreStrategyType:\n selectSessionStoreStrategyType(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 // localstorage key ,default auto gen\n storeContextsKey: initConfiguration.storeContextsKey,\n sendContentTypeByJson: !!initConfiguration.sendContentTypeByJson,\n retryMaxSize: isNullUndefinedDefaultValue(\n initConfiguration.retryMaxSize,\n -1\n )\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}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -19,89 +19,6 @@ export function fetchAndApplyRemoteConfiguration(initConfiguration, callback) {
|
|
|
19
19
|
callback(applyRemoteConfiguration(initConfiguration, remoteInitConfiguration));
|
|
20
20
|
});
|
|
21
21
|
}
|
|
22
|
-
/**
|
|
23
|
-
* 数据上报采样率,100 表示全收集;0 表示不收集。默认 100
|
|
24
|
-
*/
|
|
25
|
-
// sessionSampleRate?: number | undefined
|
|
26
|
-
// telemetrySampleRate?: number | undefined
|
|
27
|
-
// silentMultipleInit?: boolean | undefined
|
|
28
|
-
|
|
29
|
-
// service?: string | undefined
|
|
30
|
-
// /** Web 应用当前环境,如 prod:线上环境;gray:灰度环境;pre:预发布环境;common:日常环境;local:本地环境。 */
|
|
31
|
-
// env?: string | undefined
|
|
32
|
-
// /** Web 应用的版本号。 */
|
|
33
|
-
// version?: string | undefined
|
|
34
|
-
// /** 链路数据采样百分比:100 表示全收集;0 表示不收集。 */
|
|
35
|
-
// tracingSampleRate?: number | undefined
|
|
36
|
-
// /**
|
|
37
|
-
// * @deprecated use usePartitionedCrossSiteSessionCookie instead
|
|
38
|
-
// */
|
|
39
|
-
// useCrossSiteSessionCookie?: boolean | undefined
|
|
40
|
-
// /**
|
|
41
|
-
// * 是否使用跨域 cookie,开启第三方 cookie 跨分区实现。默认不允许跨域,例如嵌套跨域 iframe 的情况。
|
|
42
|
-
// */
|
|
43
|
-
// usePartitionedCrossSiteSessionCookie?: boolean | undefined
|
|
44
|
-
// useSecureSessionCookie?: boolean | undefined
|
|
45
|
-
// trackSessionAcrossSubdomains?: boolean | undefined
|
|
46
|
-
// /**
|
|
47
|
-
// * 是否把公共数据存储到localstorage,默认不存储
|
|
48
|
-
// */
|
|
49
|
-
// storeContextsToLocal?: boolean | undefined
|
|
50
|
-
// /**
|
|
51
|
-
// * 定义存储到 localstorage 的 key ,默认不填,自动生成, 该参数主要是为了区分在同一个域名下,不同子路径共用store 的问题
|
|
52
|
-
// */
|
|
53
|
-
// storeContextsKey?: string | undefined
|
|
54
|
-
// /**
|
|
55
|
-
// * 数据以 application/json 的发送方式,默认text
|
|
56
|
-
// */
|
|
57
|
-
// sendContentTypeByJson?: boolean | undefined
|
|
58
|
-
// /**
|
|
59
|
-
// * 在 cookie 不可用的情况下,可以开启该选项,把数据储存到 localstorage
|
|
60
|
-
// */
|
|
61
|
-
// allowFallbackToLocalStorage ?: boolean | undefined
|
|
62
|
-
// /**
|
|
63
|
-
// * 错误会话补偿采样率:
|
|
64
|
-
// * - 当会话未被 `sessionSampleRate` 采样时,若会话期间发生错误,则按此比例采集
|
|
65
|
-
// * 此类会话将在错误发生时开始记录事件,并持续记录直到会话结束。
|
|
66
|
-
// * - 取值范围 0-100,100 表示全采错误会话,0 表示忽略错误会话
|
|
67
|
-
// */
|
|
68
|
-
// sessionOnErrorSampleRate?: number | undefined
|
|
69
|
-
|
|
70
|
-
// /**
|
|
71
|
-
// * Session Replay 全量采集采样率:
|
|
72
|
-
// * - 用于控制所有会话重放的全量数据采集比例
|
|
73
|
-
// * - 取值范围 0-100,100 表示全量采集,0 表示不采集
|
|
74
|
-
// **/
|
|
75
|
-
// sessionReplaySampleRate?: number | undefined
|
|
76
|
-
|
|
77
|
-
// /** 错误会话重放补偿采样率:
|
|
78
|
-
// * - 当会话未被 `sessionReplaySampleRate` 采样时,若会话期间发生错误,则按此比例采集
|
|
79
|
-
// * 此类回放将记录错误发生前最多一分钟的事件,并持续记录直到会话结束。
|
|
80
|
-
// 100 表示全收集;0 表示不收集。
|
|
81
|
-
// */
|
|
82
|
-
// sessionReplayOnErrorSampleRate?: number | undefined
|
|
83
|
-
// /**
|
|
84
|
-
// * 是否开启用户行为采集。
|
|
85
|
-
// */
|
|
86
|
-
// trackUserInteractions?: boolean | undefined
|
|
87
|
-
// /**
|
|
88
|
-
// * 指定 action 数据 name 获取方式,默认自动获取,可以指定元素特定属性名称,alt,name,title,aria-labelledby,aria-label,data-guance-action-name 这些属性
|
|
89
|
-
// */
|
|
90
|
-
// actionNameAttribute?: string | undefined
|
|
91
|
-
// trackViewsManually?: boolean | undefined
|
|
92
|
-
// /**
|
|
93
|
-
// * sessionReplay 和 compressIntakeRequests数据压缩都是在 webwork 线程中完成,所以默认情况下,需要在开启csp 安全访问的情况下,允许 worker-src blob:; workerUrl 配置允许自行托管 worker 地址
|
|
94
|
-
// */
|
|
95
|
-
// workerUrl?: string
|
|
96
|
-
// /**
|
|
97
|
-
// * 压缩 RUM 数据请求内容,以减少发送大量数据时的带宽使用量。压缩在 Worker 线程中完成。
|
|
98
|
-
// */
|
|
99
|
-
// compressIntakeRequests ?: boolean | undefined
|
|
100
|
-
// /**
|
|
101
|
-
// * 配置链路追踪工具类型,如果不配置默认为 ddtrace。目前支持 ddtrace、zipkin、skywalking_v3、jaeger、zipkin_single_header、w3c_traceparent 6 种数据类型。
|
|
102
|
-
// */
|
|
103
|
-
// traceType?: TraceType
|
|
104
|
-
|
|
105
22
|
var modifiableFieldPaths = {
|
|
106
23
|
sessionSampleRate: 'number',
|
|
107
24
|
telemetrySampleRate: 'number',
|
|
@@ -182,7 +99,6 @@ export function fetchRemoteConfiguration(configuration, callback) {
|
|
|
182
99
|
export function buildEndpoint(configuration) {
|
|
183
100
|
var url = configuration.datakitOrigin || configuration.datakitUrl || configuration.site;
|
|
184
101
|
if (url.indexOf('/') === 0) {
|
|
185
|
-
// 绝对路径这种 /xxx
|
|
186
102
|
url = location.origin + trim(url);
|
|
187
103
|
}
|
|
188
104
|
var endpoint = url;
|
|
@@ -191,7 +107,6 @@ export function buildEndpoint(configuration) {
|
|
|
191
107
|
} else {
|
|
192
108
|
endpoint = trim(url) + '/v1/env_variable';
|
|
193
109
|
}
|
|
194
|
-
// 这里需要加上token和app_id
|
|
195
110
|
endpoint += '?app_id=' + configuration.applicationId;
|
|
196
111
|
//testing-openway.dataflux.cn/v1/env_variable?token=a47fb0cdddaa4561a90d941317cdbc0b&app_id=d1b454d0_22eb_11ef_9b66_95ca11aa2c6c&to_headless=true
|
|
197
112
|
if (configuration.site && configuration.clientToken) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remoteConfiguration.js","names":["addEventListener","display","trim","objectEntries","getType","fetchAndApplyRemoteConfiguration","initConfiguration","callback","fetchRemoteConfiguration","remoteInitConfiguration","applyRemoteConfiguration","modifiableFieldPaths","sessionSampleRate","telemetrySampleRate","silentMultipleInit","service","env","version","tracingSampleRate","useCrossSiteSessionCookie","usePartitionedCrossSiteSessionCookie","useSecureSessionCookie","trackSessionAcrossSubdomains","storeContextsToLocal","storeContextsKey","sendContentTypeByJson","allowFallbackToLocalStorage","sessionOnErrorSampleRate","sessionReplaySampleRate","sessionReplayOnErrorSampleRate","trackUserInteractions","trackInteractions","actionNameAttribute","trackViewsManually","workerUrl","compressIntakeRequests","traceType","modificationByFieldsPath","remoteConfiguration","result","forEach","_ref","_ref2","_slicedToArray","fieldPath","fieldType","remoteValue","simpleRemoteInitConfiguration","key","undefined","simpleKey","replace","applicationId","_objectSpread","configuration","xhr","XMLHttpRequest","status","JSON","parse","responseText","content","displayRemoteConfigurationFetchingError","open","buildEndpoint","send","url","datakitOrigin","datakitUrl","site","indexOf","location","origin","endpoint","lastIndexOf","length","clientToken","error"],"sources":["../../src/configuration/remoteConfiguration.js"],"sourcesContent":["import { addEventListener } from '../browser/addEventListener'\nimport { display } from '../helper/display'\nimport { trim } from './transportConfiguration'\nimport { objectEntries, getType } from '../helper/tools'\nexport function fetchAndApplyRemoteConfiguration(initConfiguration, callback) {\n fetchRemoteConfiguration(initConfiguration, (remoteInitConfiguration) => {\n callback(\n applyRemoteConfiguration(initConfiguration, remoteInitConfiguration)\n )\n })\n}\n/**\n * 数据上报采样率,100 表示全收集;0 表示不收集。默认 100\n */\n// sessionSampleRate?: number | undefined\n// telemetrySampleRate?: number | undefined\n// silentMultipleInit?: boolean | undefined\n\n// service?: string | undefined\n// /** Web 应用当前环境,如 prod:线上环境;gray:灰度环境;pre:预发布环境;common:日常环境;local:本地环境。 */\n// env?: string | undefined\n// /** Web 应用的版本号。 */\n// version?: string | undefined\n// /** 链路数据采样百分比:100 表示全收集;0 表示不收集。 */\n// tracingSampleRate?: number | undefined\n// /**\n// * @deprecated use usePartitionedCrossSiteSessionCookie instead\n// */\n// useCrossSiteSessionCookie?: boolean | undefined\n// /**\n// * 是否使用跨域 cookie,开启第三方 cookie 跨分区实现。默认不允许跨域,例如嵌套跨域 iframe 的情况。\n// */\n// usePartitionedCrossSiteSessionCookie?: boolean | undefined\n// useSecureSessionCookie?: boolean | undefined\n// trackSessionAcrossSubdomains?: boolean | undefined\n// /**\n// * 是否把公共数据存储到localstorage,默认不存储\n// */\n// storeContextsToLocal?: boolean | undefined\n// /**\n// * 定义存储到 localstorage 的 key ,默认不填,自动生成, 该参数主要是为了区分在同一个域名下,不同子路径共用store 的问题\n// */\n// storeContextsKey?: string | undefined\n// /**\n// * 数据以 application/json 的发送方式,默认text\n// */\n// sendContentTypeByJson?: boolean | undefined\n// /**\n// * 在 cookie 不可用的情况下,可以开启该选项,把数据储存到 localstorage\n// */\n// allowFallbackToLocalStorage ?: boolean | undefined\n// /**\n// * 错误会话补偿采样率:\n// * - 当会话未被 `sessionSampleRate` 采样时,若会话期间发生错误,则按此比例采集\n// * 此类会话将在错误发生时开始记录事件,并持续记录直到会话结束。\n// * - 取值范围 0-100,100 表示全采错误会话,0 表示忽略错误会话\n// */\n// sessionOnErrorSampleRate?: number | undefined\n\n// /**\n// * Session Replay 全量采集采样率:\n// * - 用于控制所有会话重放的全量数据采集比例\n// * - 取值范围 0-100,100 表示全量采集,0 表示不采集\n// **/\n// sessionReplaySampleRate?: number | undefined\n\n// /** 错误会话重放补偿采样率:\n// * - 当会话未被 `sessionReplaySampleRate` 采样时,若会话期间发生错误,则按此比例采集\n// * 此类回放将记录错误发生前最多一分钟的事件,并持续记录直到会话结束。\n// 100 表示全收集;0 表示不收集。\n// */\n// sessionReplayOnErrorSampleRate?: number | undefined\n// /**\n// * 是否开启用户行为采集。\n// */\n// trackUserInteractions?: boolean | undefined\n// /**\n// * 指定 action 数据 name 获取方式,默认自动获取,可以指定元素特定属性名称,alt,name,title,aria-labelledby,aria-label,data-guance-action-name 这些属性\n// */\n// actionNameAttribute?: string | undefined\n// trackViewsManually?: boolean | undefined\n// /**\n// * sessionReplay 和 compressIntakeRequests数据压缩都是在 webwork 线程中完成,所以默认情况下,需要在开启csp 安全访问的情况下,允许 worker-src blob:; workerUrl 配置允许自行托管 worker 地址\n// */\n// workerUrl?: string\n// /**\n// * 压缩 RUM 数据请求内容,以减少发送大量数据时的带宽使用量。压缩在 Worker 线程中完成。\n// */\n// compressIntakeRequests ?: boolean | undefined\n// /**\n// * 配置链路追踪工具类型,如果不配置默认为 ddtrace。目前支持 ddtrace、zipkin、skywalking_v3、jaeger、zipkin_single_header、w3c_traceparent 6 种数据类型。\n// */\n// traceType?: TraceType\n\nconst modifiableFieldPaths = {\n sessionSampleRate: 'number',\n telemetrySampleRate: 'number',\n silentMultipleInit: 'boolean',\n service: 'string',\n env: 'string',\n version: 'string',\n tracingSampleRate: 'number',\n useCrossSiteSessionCookie: 'boolean',\n usePartitionedCrossSiteSessionCookie: 'boolean',\n useSecureSessionCookie: 'boolean',\n trackSessionAcrossSubdomains: 'boolean',\n storeContextsToLocal: 'boolean',\n storeContextsKey: 'string',\n sendContentTypeByJson: 'boolean',\n allowFallbackToLocalStorage: 'boolean',\n sessionOnErrorSampleRate: 'number',\n sessionReplaySampleRate: 'number',\n sessionReplayOnErrorSampleRate: 'number',\n trackUserInteractions: 'boolean',\n trackInteractions: 'boolean',\n actionNameAttribute: 'string',\n trackViewsManually: 'boolean',\n workerUrl: 'string',\n compressIntakeRequests: 'boolean',\n traceType: 'string'\n}\nfunction modificationByFieldsPath(remoteConfiguration, modifiableFieldPaths) {\n const result = {}\n objectEntries(modifiableFieldPaths).forEach(([fieldPath, fieldType]) => {\n // const sourceValue = sourceConfiguration[fieldPath]\n const remoteValue = remoteConfiguration[fieldPath]\n if (getType(remoteValue) === fieldType) {\n result[fieldPath] = remoteValue\n }\n })\n return result\n}\nexport function applyRemoteConfiguration(\n initConfiguration,\n remoteInitConfiguration\n) {\n const simpleRemoteInitConfiguration = {}\n for (const key in remoteInitConfiguration) {\n if (remoteInitConfiguration[key] !== undefined) {\n // ex\n // {\n // \"R.d1b454d0_22eb_11ef_9b66_95ca11aa2c6c.sessionSampleRate\": 80\n // }\n // transform to\n // {\n // \"sessionSampleRate\": 80\n // }\n const simpleKey = key.replace(\n 'R.' + initConfiguration.applicationId + '.',\n ''\n )\n simpleRemoteInitConfiguration[simpleKey] = remoteInitConfiguration[key]\n }\n }\n return {\n ...initConfiguration,\n ...modificationByFieldsPath(\n simpleRemoteInitConfiguration,\n modifiableFieldPaths\n )\n }\n}\n\nexport function fetchRemoteConfiguration(configuration, callback) {\n const xhr = new XMLHttpRequest()\n\n addEventListener(xhr, 'load', function () {\n if (xhr.status === 200) {\n const remoteConfiguration = JSON.parse(xhr.responseText)\n callback(remoteConfiguration.content)\n } else {\n callback({})\n displayRemoteConfigurationFetchingError()\n }\n })\n\n addEventListener(xhr, 'error', function () {\n callback({})\n displayRemoteConfigurationFetchingError()\n })\n\n xhr.open('GET', buildEndpoint(configuration))\n xhr.send()\n}\n\nexport function buildEndpoint(configuration) {\n var url =\n configuration.datakitOrigin ||\n configuration.datakitUrl ||\n configuration.site\n if (url.indexOf('/') === 0) {\n // 绝对路径这种 /xxx\n url = location.origin + trim(url)\n }\n var endpoint = url\n if (url.lastIndexOf('/') === url.length - 1) {\n endpoint = trim(url) + 'v1/env_variable'\n } else {\n endpoint = trim(url) + '/v1/env_variable'\n }\n // 这里需要加上token和app_id\n endpoint += '?app_id=' + configuration.applicationId\n //testing-openway.dataflux.cn/v1/env_variable?token=a47fb0cdddaa4561a90d941317cdbc0b&app_id=d1b454d0_22eb_11ef_9b66_95ca11aa2c6c&to_headless=true\n if (configuration.site && configuration.clientToken) {\n endpoint =\n endpoint + '&token=' + configuration.clientToken + '&to_headless=true'\n }\n return endpoint\n}\n\nfunction displayRemoteConfigurationFetchingError() {\n display.error('Error fetching the remote configuration.')\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"remoteConfiguration.js","names":["addEventListener","display","trim","objectEntries","getType","fetchAndApplyRemoteConfiguration","initConfiguration","callback","fetchRemoteConfiguration","remoteInitConfiguration","applyRemoteConfiguration","modifiableFieldPaths","sessionSampleRate","telemetrySampleRate","silentMultipleInit","service","env","version","tracingSampleRate","useCrossSiteSessionCookie","usePartitionedCrossSiteSessionCookie","useSecureSessionCookie","trackSessionAcrossSubdomains","storeContextsToLocal","storeContextsKey","sendContentTypeByJson","allowFallbackToLocalStorage","sessionOnErrorSampleRate","sessionReplaySampleRate","sessionReplayOnErrorSampleRate","trackUserInteractions","trackInteractions","actionNameAttribute","trackViewsManually","workerUrl","compressIntakeRequests","traceType","modificationByFieldsPath","remoteConfiguration","result","forEach","_ref","_ref2","_slicedToArray","fieldPath","fieldType","remoteValue","simpleRemoteInitConfiguration","key","undefined","simpleKey","replace","applicationId","_objectSpread","configuration","xhr","XMLHttpRequest","status","JSON","parse","responseText","content","displayRemoteConfigurationFetchingError","open","buildEndpoint","send","url","datakitOrigin","datakitUrl","site","indexOf","location","origin","endpoint","lastIndexOf","length","clientToken","error"],"sources":["../../src/configuration/remoteConfiguration.js"],"sourcesContent":["import { addEventListener } from '../browser/addEventListener'\nimport { display } from '../helper/display'\nimport { trim } from './transportConfiguration'\nimport { objectEntries, getType } from '../helper/tools'\nexport function fetchAndApplyRemoteConfiguration(initConfiguration, callback) {\n fetchRemoteConfiguration(initConfiguration, (remoteInitConfiguration) => {\n callback(\n applyRemoteConfiguration(initConfiguration, remoteInitConfiguration)\n )\n })\n}\n\nconst modifiableFieldPaths = {\n sessionSampleRate: 'number',\n telemetrySampleRate: 'number',\n silentMultipleInit: 'boolean',\n service: 'string',\n env: 'string',\n version: 'string',\n tracingSampleRate: 'number',\n useCrossSiteSessionCookie: 'boolean',\n usePartitionedCrossSiteSessionCookie: 'boolean',\n useSecureSessionCookie: 'boolean',\n trackSessionAcrossSubdomains: 'boolean',\n storeContextsToLocal: 'boolean',\n storeContextsKey: 'string',\n sendContentTypeByJson: 'boolean',\n allowFallbackToLocalStorage: 'boolean',\n sessionOnErrorSampleRate: 'number',\n sessionReplaySampleRate: 'number',\n sessionReplayOnErrorSampleRate: 'number',\n trackUserInteractions: 'boolean',\n trackInteractions: 'boolean',\n actionNameAttribute: 'string',\n trackViewsManually: 'boolean',\n workerUrl: 'string',\n compressIntakeRequests: 'boolean',\n traceType: 'string'\n}\nfunction modificationByFieldsPath(remoteConfiguration, modifiableFieldPaths) {\n const result = {}\n objectEntries(modifiableFieldPaths).forEach(([fieldPath, fieldType]) => {\n // const sourceValue = sourceConfiguration[fieldPath]\n const remoteValue = remoteConfiguration[fieldPath]\n if (getType(remoteValue) === fieldType) {\n result[fieldPath] = remoteValue\n }\n })\n return result\n}\nexport function applyRemoteConfiguration(\n initConfiguration,\n remoteInitConfiguration\n) {\n const simpleRemoteInitConfiguration = {}\n for (const key in remoteInitConfiguration) {\n if (remoteInitConfiguration[key] !== undefined) {\n // ex\n // {\n // \"R.d1b454d0_22eb_11ef_9b66_95ca11aa2c6c.sessionSampleRate\": 80\n // }\n // transform to\n // {\n // \"sessionSampleRate\": 80\n // }\n const simpleKey = key.replace(\n 'R.' + initConfiguration.applicationId + '.',\n ''\n )\n simpleRemoteInitConfiguration[simpleKey] = remoteInitConfiguration[key]\n }\n }\n return {\n ...initConfiguration,\n ...modificationByFieldsPath(\n simpleRemoteInitConfiguration,\n modifiableFieldPaths\n )\n }\n}\n\nexport function fetchRemoteConfiguration(configuration, callback) {\n const xhr = new XMLHttpRequest()\n\n addEventListener(xhr, 'load', function () {\n if (xhr.status === 200) {\n const remoteConfiguration = JSON.parse(xhr.responseText)\n callback(remoteConfiguration.content)\n } else {\n callback({})\n displayRemoteConfigurationFetchingError()\n }\n })\n\n addEventListener(xhr, 'error', function () {\n callback({})\n displayRemoteConfigurationFetchingError()\n })\n\n xhr.open('GET', buildEndpoint(configuration))\n xhr.send()\n}\n\nexport function buildEndpoint(configuration) {\n var url =\n configuration.datakitOrigin ||\n configuration.datakitUrl ||\n configuration.site\n if (url.indexOf('/') === 0) {\n url = location.origin + trim(url)\n }\n var endpoint = url\n if (url.lastIndexOf('/') === url.length - 1) {\n endpoint = trim(url) + 'v1/env_variable'\n } else {\n endpoint = trim(url) + '/v1/env_variable'\n }\n endpoint += '?app_id=' + configuration.applicationId\n //testing-openway.dataflux.cn/v1/env_variable?token=a47fb0cdddaa4561a90d941317cdbc0b&app_id=d1b454d0_22eb_11ef_9b66_95ca11aa2c6c&to_headless=true\n if (configuration.site && configuration.clientToken) {\n endpoint =\n endpoint + '&token=' + configuration.clientToken + '&to_headless=true'\n }\n return endpoint\n}\n\nfunction displayRemoteConfigurationFetchingError() {\n display.error('Error fetching the remote configuration.')\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -11,7 +11,6 @@ function getEndPointUrl(configuration, type) {
|
|
|
11
11
|
if (!subUrl) return '';
|
|
12
12
|
var url = configuration.datakitOrigin || configuration.datakitUrl || configuration.site;
|
|
13
13
|
if (url.indexOf('/') === 0) {
|
|
14
|
-
// 绝对路径这种 /xxx
|
|
15
14
|
url = location.origin + trim(url);
|
|
16
15
|
}
|
|
17
16
|
var endpoint = url;
|
|
@@ -57,7 +56,6 @@ export function isIntakeRequest(url, configuration) {
|
|
|
57
56
|
if (configuration.sessionReplayEndPoint) {
|
|
58
57
|
notTakeRequest.push(configuration.sessionReplayEndPoint);
|
|
59
58
|
}
|
|
60
|
-
// datakit 地址,log 地址,以及客户自定义过滤方法定义url
|
|
61
59
|
return some(notTakeRequest, function (takeUrl) {
|
|
62
60
|
return url.indexOf(takeUrl) === 0;
|
|
63
61
|
}) || configuration.isIntakeUrl(url);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transportConfiguration.js","names":["isFunction","isBoolean","some","TRIM_REGIX","typeMap","rum","log","sessionReplay","getEndPointUrl","configuration","type","subUrl","url","datakitOrigin","datakitUrl","site","indexOf","location","origin","trim","endpoint","lastIndexOf","length","clientToken","str","replace","computeTransportConfiguration","initConfiguration","isIntakeUrl","isServerError","request","rumEndpoint","logsEndpoint","sessionReplayEndPoint","isIntakeRequest","notTakeRequest","push","takeUrl"],"sources":["../../src/configuration/transportConfiguration.js"],"sourcesContent":["import { isFunction, isBoolean, some } from '../helper/tools'\nvar TRIM_REGIX = /^\\s+|\\s+$/g\nvar typeMap = {\n rum: '/rum',\n log: '/logging',\n sessionReplay: '/rum/replay'\n}\nfunction getEndPointUrl(configuration, type) {\n // type: rum, log,replay\n var subUrl = typeMap[type]\n if (!subUrl) return ''\n var url =\n configuration.datakitOrigin ||\n configuration.datakitUrl ||\n configuration.site\n if (url.indexOf('/') === 0) {\n
|
|
1
|
+
{"version":3,"file":"transportConfiguration.js","names":["isFunction","isBoolean","some","TRIM_REGIX","typeMap","rum","log","sessionReplay","getEndPointUrl","configuration","type","subUrl","url","datakitOrigin","datakitUrl","site","indexOf","location","origin","trim","endpoint","lastIndexOf","length","clientToken","str","replace","computeTransportConfiguration","initConfiguration","isIntakeUrl","isServerError","request","rumEndpoint","logsEndpoint","sessionReplayEndPoint","isIntakeRequest","notTakeRequest","push","takeUrl"],"sources":["../../src/configuration/transportConfiguration.js"],"sourcesContent":["import { isFunction, isBoolean, some } from '../helper/tools'\nvar TRIM_REGIX = /^\\s+|\\s+$/g\nvar typeMap = {\n rum: '/rum',\n log: '/logging',\n sessionReplay: '/rum/replay'\n}\nfunction getEndPointUrl(configuration, type) {\n // type: rum, log,replay\n var subUrl = typeMap[type]\n if (!subUrl) return ''\n var url =\n configuration.datakitOrigin ||\n configuration.datakitUrl ||\n configuration.site\n if (url.indexOf('/') === 0) {\n url = location.origin + trim(url)\n }\n var endpoint = url\n if (url.lastIndexOf('/') === url.length - 1) {\n endpoint = trim(url) + 'v1/write' + subUrl\n } else {\n endpoint = trim(url) + '/v1/write' + subUrl\n }\n if (configuration.site && configuration.clientToken) {\n endpoint =\n endpoint + '?token=' + configuration.clientToken + '&to_headless=true'\n }\n return endpoint\n}\n\nexport function trim(str) {\n return str.replace(TRIM_REGIX, '')\n}\n\nexport function computeTransportConfiguration(initConfiguration) {\n var isIntakeUrl = function (url) {\n return false\n }\n if (\n 'isIntakeUrl' in initConfiguration &&\n isFunction(initConfiguration.isIntakeUrl) &&\n isBoolean(initConfiguration.isIntakeUrl())\n ) {\n isIntakeUrl = initConfiguration.isIntakeUrl\n }\n var isServerError = function (request) {\n return false\n }\n if (\n 'isServerError' in initConfiguration &&\n isFunction(initConfiguration.isServerError) &&\n isBoolean(initConfiguration.isServerError())\n ) {\n isServerError = initConfiguration.isServerError\n }\n return {\n rumEndpoint: getEndPointUrl(initConfiguration, 'rum'),\n logsEndpoint: getEndPointUrl(initConfiguration, 'log'),\n sessionReplayEndPoint: getEndPointUrl(initConfiguration, 'sessionReplay'),\n isIntakeUrl: isIntakeUrl,\n isServerError: isServerError\n }\n}\nexport function isIntakeRequest(url, configuration) {\n var notTakeRequest = [configuration.rumEndpoint]\n if (configuration.logsEndpoint) {\n notTakeRequest.push(configuration.logsEndpoint)\n }\n if (configuration.sessionReplayEndPoint) {\n notTakeRequest.push(configuration.sessionReplayEndPoint)\n }\n return (\n some(notTakeRequest, function (takeUrl) {\n return url.indexOf(takeUrl) === 0\n }) || configuration.isIntakeUrl(url)\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
package/esm/dataMap.js
CHANGED
|
@@ -30,7 +30,6 @@ export var commonTags = {
|
|
|
30
30
|
view_host: 'view.host',
|
|
31
31
|
view_path: 'view.path',
|
|
32
32
|
view_name: 'view.name',
|
|
33
|
-
// 冗余一个字段
|
|
34
33
|
view_path_group: 'view.path_group'
|
|
35
34
|
};
|
|
36
35
|
export var commonFields = {
|
|
@@ -48,7 +47,6 @@ export var commonFields = {
|
|
|
48
47
|
session_replay_on_error_sample_rate: '_gc.configuration.session_replay_on_error_sample_rate',
|
|
49
48
|
drift: '_gc.drift'
|
|
50
49
|
};
|
|
51
|
-
// 需要用双引号将字符串类型的field value括起来, 这里有数组标示[string, path]
|
|
52
50
|
export var dataMap = {
|
|
53
51
|
view: {
|
|
54
52
|
type: RumEventType.VIEW,
|
|
@@ -58,6 +56,7 @@ export var dataMap = {
|
|
|
58
56
|
view_privacy_replay_level: 'privacy.replay_level'
|
|
59
57
|
},
|
|
60
58
|
fields: {
|
|
59
|
+
view_update_time: '_gc.view_update_time',
|
|
61
60
|
sampled_for_replay: 'session.sampled_for_replay',
|
|
62
61
|
sampled_for_error_replay: 'session.sampled_for_error_replay',
|
|
63
62
|
sampled_for_error_session: 'session.sampled_for_error_session',
|