@cloudcare/browser-core 3.2.29 → 3.2.31

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.
@@ -34,6 +34,7 @@ function validateAndBuildConfiguration(initConfiguration) {
34
34
  return (0, _tools.assign)({
35
35
  beforeSend: initConfiguration.beforeSend && (0, _catchUserErrors.catchUserErrors)(initConfiguration.beforeSend, 'beforeSend threw an error:'),
36
36
  sessionStoreStrategyType: (0, _sessionStore.selectSessionStoreStrategyType)(initConfiguration),
37
+ isOpenWay: initConfiguration.site && initConfiguration.clientToken,
37
38
  sessionSampleRate: (0, _tools.isNullUndefinedDefaultValue)(sessionSampleRate, 100),
38
39
  service: initConfiguration.service,
39
40
  version: initConfiguration.version,
@@ -1 +1 @@
1
- {"version":3,"file":"configuration.js","names":["_catchUserErrors","require","_display","_tools","_byteUtils","_transportConfiguration","_sessionStore","DefaultPrivacyLevel","exports","ALLOW","MASK","MASK_USER_INPUT","validateAndBuildConfiguration","initConfiguration","sampleRate","undefined","isPercentage","display","error","sessionSampleRate","telemetrySampleRate","isNullUndefinedDefaultValue","assign","beforeSend","catchUserErrors","sessionStoreStrategyType","selectSessionStoreStrategyType","service","version","env","telemetryEnabled","silentMultipleInit","batchBytesLimit","ONE_KIBI_BYTE","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","ONE_SECOND","batchMessagesLimit","messageBytesLimit","resourceUrlLimit","storeContextsToLocal","storeContextsKey","sendContentTypeByJson","retryMaxSize","computeTransportConfiguration","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":[]}
1
+ {"version":3,"file":"configuration.js","names":["_catchUserErrors","require","_display","_tools","_byteUtils","_transportConfiguration","_sessionStore","DefaultPrivacyLevel","exports","ALLOW","MASK","MASK_USER_INPUT","validateAndBuildConfiguration","initConfiguration","sampleRate","undefined","isPercentage","display","error","sessionSampleRate","telemetrySampleRate","isNullUndefinedDefaultValue","assign","beforeSend","catchUserErrors","sessionStoreStrategyType","selectSessionStoreStrategyType","isOpenWay","site","clientToken","service","version","env","telemetryEnabled","silentMultipleInit","batchBytesLimit","ONE_KIBI_BYTE","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","ONE_SECOND","batchMessagesLimit","messageBytesLimit","resourceUrlLimit","storeContextsToLocal","storeContextsKey","sendContentTypeByJson","retryMaxSize","computeTransportConfiguration","validatePostRequestRequireParamsConfiguration","datakitOrigin","datakitUrl"],"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 isOpenWay: initConfiguration.site && initConfiguration.clientToken,\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":[]}
@@ -29,7 +29,7 @@ function createIdentityEncoder() {
29
29
  output: output,
30
30
  outputBytesCount: outputBytesCount,
31
31
  rawBytesCount: outputBytesCount,
32
- pendingData: ''
32
+ pendingData: []
33
33
  };
34
34
  output = '';
35
35
  outputBytesCount = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.js","names":["_byteUtils","require","createIdentityEncoder","output","outputBytesCount","isAsync","isEmpty","write","data","callback","additionalEncodedBytesCount","computeBytesCount","finish","finishSync","result","rawBytesCount","pendingData","estimateEncodedBytesCount","length"],"sources":["../../src/helper/encoder.js"],"sourcesContent":["import { computeBytesCount } from './byteUtils'\n\nexport function createIdentityEncoder() {\n var output = ''\n var outputBytesCount = 0\n\n return {\n isAsync: false,\n\n isEmpty: function () {\n return !output\n },\n\n write: function (data, callback) {\n var additionalEncodedBytesCount = computeBytesCount(data)\n outputBytesCount += additionalEncodedBytesCount\n output += data\n if (callback) {\n callback(additionalEncodedBytesCount)\n }\n },\n\n finish: function (callback) {\n callback(this.finishSync())\n },\n\n finishSync: function () {\n var result = {\n output: output,\n outputBytesCount: outputBytesCount,\n rawBytesCount: outputBytesCount,\n pendingData: ''\n }\n output = ''\n outputBytesCount = 0\n return result\n },\n\n estimateEncodedBytesCount: function (data) {\n return data.length\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAIC,MAAM,GAAG,EAAE;EACf,IAAIC,gBAAgB,GAAG,CAAC;EAExB,OAAO;IACLC,OAAO,EAAE,KAAK;IAEdC,OAAO,EAAE,SAATA,OAAOA,CAAA,EAAc;MACnB,OAAO,CAACH,MAAM;IAChB,CAAC;IAEDI,KAAK,EAAE,SAAPA,KAAKA,CAAYC,IAAI,EAAEC,QAAQ,EAAE;MAC/B,IAAIC,2BAA2B,GAAG,IAAAC,4BAAiB,EAACH,IAAI,CAAC;MACzDJ,gBAAgB,IAAIM,2BAA2B;MAC/CP,MAAM,IAAIK,IAAI;MACd,IAAIC,QAAQ,EAAE;QACZA,QAAQ,CAACC,2BAA2B,CAAC;MACvC;IACF,CAAC;IAEDE,MAAM,EAAE,SAARA,MAAMA,CAAYH,QAAQ,EAAE;MAC1BA,QAAQ,CAAC,IAAI,CAACI,UAAU,CAAC,CAAC,CAAC;IAC7B,CAAC;IAEDA,UAAU,EAAE,SAAZA,UAAUA,CAAA,EAAc;MACtB,IAAIC,MAAM,GAAG;QACXX,MAAM,EAAEA,MAAM;QACdC,gBAAgB,EAAEA,gBAAgB;QAClCW,aAAa,EAAEX,gBAAgB;QAC/BY,WAAW,EAAE;MACf,CAAC;MACDb,MAAM,GAAG,EAAE;MACXC,gBAAgB,GAAG,CAAC;MACpB,OAAOU,MAAM;IACf,CAAC;IAEDG,yBAAyB,EAAE,SAA3BA,yBAAyBA,CAAYT,IAAI,EAAE;MACzC,OAAOA,IAAI,CAACU,MAAM;IACpB;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"encoder.js","names":["_byteUtils","require","createIdentityEncoder","output","outputBytesCount","isAsync","isEmpty","write","data","callback","additionalEncodedBytesCount","computeBytesCount","finish","finishSync","result","rawBytesCount","pendingData","estimateEncodedBytesCount","length"],"sources":["../../src/helper/encoder.js"],"sourcesContent":["import { computeBytesCount } from './byteUtils'\n\nexport function createIdentityEncoder() {\n var output = ''\n var outputBytesCount = 0\n\n return {\n isAsync: false,\n\n isEmpty: function () {\n return !output\n },\n\n write: function (data, callback) {\n var additionalEncodedBytesCount = computeBytesCount(data)\n outputBytesCount += additionalEncodedBytesCount\n output += data\n if (callback) {\n callback(additionalEncodedBytesCount)\n }\n },\n\n finish: function (callback) {\n callback(this.finishSync())\n },\n\n finishSync: function () {\n var result = {\n output: output,\n outputBytesCount: outputBytesCount,\n rawBytesCount: outputBytesCount,\n pendingData: []\n }\n output = ''\n outputBytesCount = 0\n return result\n },\n\n estimateEncodedBytesCount: function (data) {\n return data.length\n }\n }\n}\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAIC,MAAM,GAAG,EAAE;EACf,IAAIC,gBAAgB,GAAG,CAAC;EAExB,OAAO;IACLC,OAAO,EAAE,KAAK;IAEdC,OAAO,EAAE,SAATA,OAAOA,CAAA,EAAc;MACnB,OAAO,CAACH,MAAM;IAChB,CAAC;IAEDI,KAAK,EAAE,SAAPA,KAAKA,CAAYC,IAAI,EAAEC,QAAQ,EAAE;MAC/B,IAAIC,2BAA2B,GAAG,IAAAC,4BAAiB,EAACH,IAAI,CAAC;MACzDJ,gBAAgB,IAAIM,2BAA2B;MAC/CP,MAAM,IAAIK,IAAI;MACd,IAAIC,QAAQ,EAAE;QACZA,QAAQ,CAACC,2BAA2B,CAAC;MACvC;IACF,CAAC;IAEDE,MAAM,EAAE,SAARA,MAAMA,CAAYH,QAAQ,EAAE;MAC1BA,QAAQ,CAAC,IAAI,CAACI,UAAU,CAAC,CAAC,CAAC;IAC7B,CAAC;IAEDA,UAAU,EAAE,SAAZA,UAAUA,CAAA,EAAc;MACtB,IAAIC,MAAM,GAAG;QACXX,MAAM,EAAEA,MAAM;QACdC,gBAAgB,EAAEA,gBAAgB;QAClCW,aAAa,EAAEX,gBAAgB;QAC/BY,WAAW,EAAE;MACf,CAAC;MACDb,MAAM,GAAG,EAAE;MACXC,gBAAgB,GAAG,CAAC;MACpB,OAAOU,MAAM;IACf,CAAC;IAEDG,yBAAyB,EAAE,SAA3BA,yBAAyBA,CAAYT,IAAI,EAAE;MACzC,OAAOA,IAAI,CAACU,MAAM;IACpB;EACF,CAAC;AACH","ignoreList":[]}
@@ -13,6 +13,12 @@ var _enums = require("../helper/enums");
13
13
  var _byteUtils = require("../helper/byteUtils");
14
14
  var _pageExitObservable = require("../browser/pageExitObservable");
15
15
  var _jsonStringify = require("../helper/serialisation/jsonStringify");
16
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
17
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
18
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
19
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
20
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
21
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
16
22
  // https://en.wikipedia.org/wiki/UTF-8
17
23
  // eslint-disable-next-line no-control-regex
18
24
  var CUSTOM_KEYS = 'custom_keys';
@@ -187,9 +193,8 @@ function createBatch(options) {
187
193
  if (encoderResult.outputBytesCount) {
188
194
  send(formatPayloadFromEncoder(encoderResult, sendContentTypeByJson));
189
195
  }
190
-
191
196
  // Send messages that are not yet encoded at this point
192
- var pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join('\n');
197
+ var pendingMessages = [].concat(_toConsumableArray(encoderResult.pendingData), [upsertMessages]).filter(Boolean).join('\n');
193
198
  if (pendingMessages) {
194
199
  send({
195
200
  data: pendingMessages,
@@ -239,9 +244,7 @@ function formatPayloadFromEncoder(encoderResult, sendContentTypeByJson) {
239
244
  data: data,
240
245
  type: sendContentTypeByJson ? 'application/json;UTF-8' : undefined,
241
246
  bytesCount: encoderResult.outputBytesCount,
242
- encoding: encoderResult.encoding,
243
- outputBase64Head: encoderResult.outputBase64Head,
244
- outputBase64Tail: encoderResult.outputBase64Tail
247
+ encoding: encoderResult.encoding
245
248
  };
246
249
  }
247
250
  //# sourceMappingURL=batch.js.map
@@ -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","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":[]}
1
+ {"version":3,"file":"batch.js","names":["_display","require","_tools","_rowData","_dataMap","_enums","_byteUtils","_pageExitObservable","_jsonStringify","_toConsumableArray","r","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","TypeError","a","_arrayLikeToArray","t","toString","call","slice","constructor","name","Array","from","test","Symbol","iterator","isArray","length","e","n","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","_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]\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 // 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":[]}
@@ -90,16 +90,12 @@ function fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse) {
90
90
  keepalive: true,
91
91
  mode: 'cors'
92
92
  };
93
- var headers = {};
93
+ var headers = {
94
+ // 'x-client-timestamp': Date.now().toString()
95
+ };
94
96
  if (payload.type) {
95
97
  headers['Content-Type'] = payload.type;
96
98
  }
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
99
  if (Object.keys(headers).length) {
104
100
  fetchOption.headers = headers;
105
101
  }
@@ -134,6 +130,7 @@ function sendXHR(url, payload, onResponse) {
134
130
  } else if (payload.type) {
135
131
  request.setRequestHeader('Content-Type', payload.type);
136
132
  }
133
+ // request.setRequestHeader('x-client-timestamp', Date.now().toString())
137
134
  (0, _addEventListener.addEventListener)(request, 'loadend', function () {
138
135
  if (typeof onResponse === 'function') {
139
136
  onResponse({
@@ -152,10 +149,14 @@ function fetchStrategy(url, payload, onResponse) {
152
149
  keepalive: true,
153
150
  mode: 'cors'
154
151
  };
152
+ var headers = {
153
+ // 'x-client-timestamp': Date.now().toString()
154
+ };
155
155
  if (payload.type) {
156
- fetchOption.headers = {
157
- 'Content-Type': payload.type
158
- };
156
+ headers['Content-Type'] = payload.type;
157
+ }
158
+ if (Object.keys(headers).length) {
159
+ fetchOption.headers = headers;
159
160
  }
160
161
  fetch(url, fetchOption).then((0, _monitor.monitor)(function (response) {
161
162
  if (typeof onResponse === 'function') {
@@ -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","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":";;;;;;;AAAA,IAAAA,sBAAA,GAAAC,OAAA;AACA,IAAAC,iBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASI,iBAAiBA,CAACC,GAAG,EAAEC,QAAQ,EAAE;EACxC,IAAI,CAACD,GAAG,EAAE,OAAOA,GAAG;EACpBA,GAAG,GAAGA,GAAG,IAAIA,GAAG,CAACE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc;EAClE,IAAID,QAAQ,EAAE;IACZD,GAAG,GAAGA,GAAG,GAAG,YAAY,GAAGC,QAAQ;EACrC;EACA,OAAOD,GAAG;AACZ;AACO,SAASG,iBAAiBA,CAC/BC,WAAW,EACXC,UAAU,EACVC,YAAY,EACZC,WAAW,EACX;EACA,IAAID,YAAY,KAAKE,SAAS,EAAE;IAC9BF,YAAY,GAAG,CAAC,CAAC;EACnB;EACA,IAAIG,UAAU,GAAG,IAAAC,oCAAa,EAACJ,YAAY,CAAC;EAC5C,IAAIK,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAaC,OAAO,EAAEC,UAAU,EAAE;IACxD,OAAOC,sBAAsB,CAACV,WAAW,EAAEC,UAAU,EAAEO,OAAO,EAAEC,UAAU,CAAC;EAC7E,CAAC;EAED,OAAO;IACLE,IAAI,EAAE,SAANA,IAAIA,CAAYH,OAAO,EAAE;MACvB,IAAAI,4CAAqB,EACnBJ,OAAO,EACPH,UAAU,EACVE,oBAAoB,EACpBP,WAAW,EACXG,WACF,CAAC;IACH,CAAC;IACD;AACJ;AACA;AACA;IACIU,UAAU,EAAE,SAAZA,UAAUA,CAAYL,OAAO,EAAE;MAC7BM,kBAAkB,CAACd,WAAW,EAAEC,UAAU,EAAEO,OAAO,CAAC;IACtD;EACF,CAAC;AACH;AAEA,SAASM,kBAAkBA,CAACd,WAAW,EAAEC,UAAU,EAAEO,OAAO,EAAE;EAC5D,IAAIO,IAAI,GAAGP,OAAO,CAACO,IAAI;EACvB,IAAIC,UAAU,GAAGR,OAAO,CAACQ,UAAU;EACnC,IAAIpB,GAAG,GAAGD,iBAAiB,CAACK,WAAW,EAAEQ,OAAO,CAACX,QAAQ,CAAC;EAC1D,IAAIoB,YAAY,GAAG,CAAC,CAACC,SAAS,CAACC,UAAU,IAAIH,UAAU,GAAGf,UAAU;EACpE,IAAIgB,YAAY,EAAE;IAChB,IAAI;MACF,IAAIG,UAAU;MACd,IAAIZ,OAAO,CAACa,IAAI,EAAE;QAChBD,UAAU,GAAG,IAAIE,IAAI,CAAC,CAACP,IAAI,CAAC,EAAE;UAC5BM,IAAI,EAAEb,OAAO,CAACa;QAChB,CAAC,CAAC;MACJ,CAAC,MAAM;QACLD,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;MACVC,iBAAiB,CAACD,CAAC,CAAC;IACtB;EACF;EACAE,OAAO,CAAC9B,GAAG,EAAEY,OAAO,CAAC;AACvB;AACA,IAAImB,sBAAsB,GAAG,KAAK;AAElC,SAASF,iBAAiBA,CAACD,CAAC,EAAE;EAC5B,IAAI,CAACG,sBAAsB,EAAE;IAC3BA,sBAAsB,GAAG,IAAI;IAC7B,IAAAC,4BAAiB,EAACJ,CAAC,CAAC;EACtB;AACF;AACO,SAASd,sBAAsBA,CACpCV,WAAW,EACXC,UAAU,EACVO,OAAO,EACPC,UAAU,EACV;EACA,IAAIM,IAAI,GAAGP,OAAO,CAACO,IAAI;EACvB,IAAIC,UAAU,GAAGR,OAAO,CAACQ,UAAU;EACnC,IAAIpB,GAAG,GAAGD,iBAAiB,CAACK,WAAW,EAAEQ,OAAO,CAACX,QAAQ,CAAC;EAC1D,IAAIgC,eAAe,GAAGC,oBAAoB,CAAC,CAAC,IAAId,UAAU,GAAGf,UAAU;EACvE,IAAI4B,eAAe,EAAE;IACnB,IAAIE,WAAW,GAAG;MAChBC,MAAM,EAAE,MAAM;MACdC,IAAI,EAAElB,IAAI;MACVmB,SAAS,EAAE,IAAI;MACfC,IAAI,EAAE;IACR,CAAC;IACD,IAAMC,OAAO,GAAG,CAAC,CAAC;IAElB,IAAI5B,OAAO,CAACa,IAAI,EAAE;MAChBe,OAAO,CAAC,cAAc,CAAC,GAAG5B,OAAO,CAACa,IAAI;IACxC;IACA,IAAIb,OAAO,CAAC6B,gBAAgB,EAAE;MAC5BD,OAAO,CAAC,eAAe,CAAC,GAAG5B,OAAO,CAAC6B,gBAAgB;IACrD;IACA,IAAI7B,OAAO,CAAC8B,gBAAgB,EAAE;MAC5BF,OAAO,CAAC,eAAe,CAAC,GAAG5B,OAAO,CAAC8B,gBAAgB;IACrD;IACA,IAAIC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAAC,CAACK,MAAM,EAAE;MAC/BV,WAAW,CAACK,OAAO,GAAGA,OAAO;IAC/B;IACAM,KAAK,CAAC9C,GAAG,EAAEmC,WAAW,CAAC,CACpBY,IAAI,CACH,IAAAC,gBAAO,EAAC,UAAUC,QAAQ,EAAE;MAC1B,IAAI,OAAOpC,UAAU,KAAK,UAAU,EAAE;QACpCA,UAAU,CAAC;UAAEqC,MAAM,EAAED,QAAQ,CAACC,MAAM;UAAEzB,IAAI,EAAEwB,QAAQ,CAACxB;QAAK,CAAC,CAAC;MAC9D;IACF,CAAC,CACH,CAAC,SACK,CACJ,IAAAuB,gBAAO,EAAC,YAAY;MAClBG,aAAa,CAACnD,GAAG,EAAEY,OAAO,EAAEC,UAAU,CAAC;IACzC,CAAC,CACH,CAAC;EACL,CAAC,MAAM;IACLiB,OAAO,CAAC9B,GAAG,EAAEY,OAAO,EAAEC,UAAU,CAAC;EACnC;AACF;AAEA,SAASqB,oBAAoBA,CAAA,EAAG;EAC9B;EACA,IAAI;IACF,OAAOkB,MAAM,CAACC,OAAO,IAAI,WAAW,IAAI,IAAIA,OAAO,CAAC,UAAU,CAAC;EACjE,CAAC,CAAC,OAAAC,OAAA,EAAM;IACN,OAAO,KAAK;EACd;AACF;AAEA,SAASxB,OAAOA,CAAC9B,GAAG,EAAEY,OAAO,EAAEC,UAAU,EAAE;EACzC,IAAMM,IAAI,GAAGP,OAAO,CAACO,IAAI;EACzB,IAAMoC,OAAO,GAAG,IAAIC,cAAc,CAAC,CAAC;EACpCD,OAAO,CAACE,IAAI,CAAC,MAAM,EAAEzD,GAAG,EAAE,IAAI,CAAC;EAC/B,IAAImB,IAAI,YAAYO,IAAI,EAAE;IACxB6B,OAAO,CAACG,gBAAgB,CAAC,cAAc,EAAEvC,IAAI,CAACM,IAAI,CAAC;EACrD,CAAC,MAAM,IAAIb,OAAO,CAACa,IAAI,EAAE;IACvB8B,OAAO,CAACG,gBAAgB,CAAC,cAAc,EAAE9C,OAAO,CAACa,IAAI,CAAC;EACxD;EAEA,IAAAkC,kCAAgB,EACdJ,OAAO,EACP,SAAS,EACT,YAAY;IACV,IAAI,OAAO1C,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC;QAAEqC,MAAM,EAAEK,OAAO,CAACL;MAAO,CAAC,CAAC;IACxC;EACF,CAAC,EACD;IACEU,IAAI,EAAE;EACR,CACF,CAAC;EACDL,OAAO,CAACxC,IAAI,CAACI,IAAI,CAAC;AACpB;AACA,SAASgC,aAAaA,CAACnD,GAAG,EAAEY,OAAO,EAAEC,UAAU,EAAE;EAC/C,IAAMsB,WAAW,GAAG;IAClBC,MAAM,EAAE,MAAM;IACdC,IAAI,EAAEzB,OAAO,CAACO,IAAI;IAClBmB,SAAS,EAAE,IAAI;IACfC,IAAI,EAAE;EACR,CAAC;EACD,IAAI3B,OAAO,CAACa,IAAI,EAAE;IAChBU,WAAW,CAACK,OAAO,GAAG;MACpB,cAAc,EAAE5B,OAAO,CAACa;IAC1B,CAAC;EACH;EACAqB,KAAK,CAAC9C,GAAG,EAAEmC,WAAW,CAAC,CACpBY,IAAI,CACH,IAAAC,gBAAO,EAAC,UAAUC,QAAQ,EAAE;IAC1B,IAAI,OAAOpC,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC;QAAEqC,MAAM,EAAED,QAAQ,CAACC,MAAM;QAAEzB,IAAI,EAAEwB,QAAQ,CAACxB;MAAK,CAAC,CAAC;IAC9D;EACF,CAAC,CACH,CAAC,SACK,CACJ,IAAAuB,gBAAO,EAAC,YAAY;IAClB,IAAI,OAAOnC,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC;QAAEqC,MAAM,EAAE;MAAE,CAAC,CAAC;IAC3B;EACF,CAAC,CACH,CAAC;AACL","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","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 // 'x-client-timestamp': Date.now().toString()\n }\n if (payload.type) {\n headers['Content-Type'] = payload.type\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 // request.setRequestHeader('x-client-timestamp', Date.now().toString())\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 const headers = {\n // 'x-client-timestamp': Date.now().toString()\n }\n if (payload.type) {\n headers['Content-Type'] = payload.type\n }\n if (Object.keys(headers).length) {\n fetchOption.headers = headers\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":[]}
@@ -26,6 +26,7 @@ export function validateAndBuildConfiguration(initConfiguration) {
26
26
  return assign({
27
27
  beforeSend: initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),
28
28
  sessionStoreStrategyType: selectSessionStoreStrategyType(initConfiguration),
29
+ isOpenWay: initConfiguration.site && initConfiguration.clientToken,
29
30
  sessionSampleRate: isNullUndefinedDefaultValue(sessionSampleRate, 100),
30
31
  service: initConfiguration.service,
31
32
  version: initConfiguration.version,
@@ -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 // 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":[]}
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","isOpenWay","site","clientToken","service","version","env","telemetryEnabled","silentMultipleInit","batchBytesLimit","eventRateLimiterThreshold","maxTelemetryEventsPerPage","flushTimeout","batchMessagesLimit","messageBytesLimit","resourceUrlLimit","storeContextsToLocal","storeContextsKey","sendContentTypeByJson","retryMaxSize","validatePostRequestRequireParamsConfiguration","datakitOrigin","datakitUrl"],"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 isOpenWay: initConfiguration.site && initConfiguration.clientToken,\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":[]}
@@ -23,7 +23,7 @@ export function createIdentityEncoder() {
23
23
  output: output,
24
24
  outputBytesCount: outputBytesCount,
25
25
  rawBytesCount: outputBytesCount,
26
- pendingData: ''
26
+ pendingData: []
27
27
  };
28
28
  output = '';
29
29
  outputBytesCount = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.js","names":["computeBytesCount","createIdentityEncoder","output","outputBytesCount","isAsync","isEmpty","write","data","callback","additionalEncodedBytesCount","finish","finishSync","result","rawBytesCount","pendingData","estimateEncodedBytesCount","length"],"sources":["../../src/helper/encoder.js"],"sourcesContent":["import { computeBytesCount } from './byteUtils'\n\nexport function createIdentityEncoder() {\n var output = ''\n var outputBytesCount = 0\n\n return {\n isAsync: false,\n\n isEmpty: function () {\n return !output\n },\n\n write: function (data, callback) {\n var additionalEncodedBytesCount = computeBytesCount(data)\n outputBytesCount += additionalEncodedBytesCount\n output += data\n if (callback) {\n callback(additionalEncodedBytesCount)\n }\n },\n\n finish: function (callback) {\n callback(this.finishSync())\n },\n\n finishSync: function () {\n var result = {\n output: output,\n outputBytesCount: outputBytesCount,\n rawBytesCount: outputBytesCount,\n pendingData: ''\n }\n output = ''\n outputBytesCount = 0\n return result\n },\n\n estimateEncodedBytesCount: function (data) {\n return data.length\n }\n }\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,aAAa;AAE/C,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAIC,MAAM,GAAG,EAAE;EACf,IAAIC,gBAAgB,GAAG,CAAC;EAExB,OAAO;IACLC,OAAO,EAAE,KAAK;IAEdC,OAAO,EAAE,SAATA,OAAOA,CAAA,EAAc;MACnB,OAAO,CAACH,MAAM;IAChB,CAAC;IAEDI,KAAK,EAAE,SAAPA,KAAKA,CAAYC,IAAI,EAAEC,QAAQ,EAAE;MAC/B,IAAIC,2BAA2B,GAAGT,iBAAiB,CAACO,IAAI,CAAC;MACzDJ,gBAAgB,IAAIM,2BAA2B;MAC/CP,MAAM,IAAIK,IAAI;MACd,IAAIC,QAAQ,EAAE;QACZA,QAAQ,CAACC,2BAA2B,CAAC;MACvC;IACF,CAAC;IAEDC,MAAM,EAAE,SAARA,MAAMA,CAAYF,QAAQ,EAAE;MAC1BA,QAAQ,CAAC,IAAI,CAACG,UAAU,CAAC,CAAC,CAAC;IAC7B,CAAC;IAEDA,UAAU,EAAE,SAAZA,UAAUA,CAAA,EAAc;MACtB,IAAIC,MAAM,GAAG;QACXV,MAAM,EAAEA,MAAM;QACdC,gBAAgB,EAAEA,gBAAgB;QAClCU,aAAa,EAAEV,gBAAgB;QAC/BW,WAAW,EAAE;MACf,CAAC;MACDZ,MAAM,GAAG,EAAE;MACXC,gBAAgB,GAAG,CAAC;MACpB,OAAOS,MAAM;IACf,CAAC;IAEDG,yBAAyB,EAAE,SAA3BA,yBAAyBA,CAAYR,IAAI,EAAE;MACzC,OAAOA,IAAI,CAACS,MAAM;IACpB;EACF,CAAC;AACH","ignoreList":[]}
1
+ {"version":3,"file":"encoder.js","names":["computeBytesCount","createIdentityEncoder","output","outputBytesCount","isAsync","isEmpty","write","data","callback","additionalEncodedBytesCount","finish","finishSync","result","rawBytesCount","pendingData","estimateEncodedBytesCount","length"],"sources":["../../src/helper/encoder.js"],"sourcesContent":["import { computeBytesCount } from './byteUtils'\n\nexport function createIdentityEncoder() {\n var output = ''\n var outputBytesCount = 0\n\n return {\n isAsync: false,\n\n isEmpty: function () {\n return !output\n },\n\n write: function (data, callback) {\n var additionalEncodedBytesCount = computeBytesCount(data)\n outputBytesCount += additionalEncodedBytesCount\n output += data\n if (callback) {\n callback(additionalEncodedBytesCount)\n }\n },\n\n finish: function (callback) {\n callback(this.finishSync())\n },\n\n finishSync: function () {\n var result = {\n output: output,\n outputBytesCount: outputBytesCount,\n rawBytesCount: outputBytesCount,\n pendingData: []\n }\n output = ''\n outputBytesCount = 0\n return result\n },\n\n estimateEncodedBytesCount: function (data) {\n return data.length\n }\n }\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,aAAa;AAE/C,OAAO,SAASC,qBAAqBA,CAAA,EAAG;EACtC,IAAIC,MAAM,GAAG,EAAE;EACf,IAAIC,gBAAgB,GAAG,CAAC;EAExB,OAAO;IACLC,OAAO,EAAE,KAAK;IAEdC,OAAO,EAAE,SAATA,OAAOA,CAAA,EAAc;MACnB,OAAO,CAACH,MAAM;IAChB,CAAC;IAEDI,KAAK,EAAE,SAAPA,KAAKA,CAAYC,IAAI,EAAEC,QAAQ,EAAE;MAC/B,IAAIC,2BAA2B,GAAGT,iBAAiB,CAACO,IAAI,CAAC;MACzDJ,gBAAgB,IAAIM,2BAA2B;MAC/CP,MAAM,IAAIK,IAAI;MACd,IAAIC,QAAQ,EAAE;QACZA,QAAQ,CAACC,2BAA2B,CAAC;MACvC;IACF,CAAC;IAEDC,MAAM,EAAE,SAARA,MAAMA,CAAYF,QAAQ,EAAE;MAC1BA,QAAQ,CAAC,IAAI,CAACG,UAAU,CAAC,CAAC,CAAC;IAC7B,CAAC;IAEDA,UAAU,EAAE,SAAZA,UAAUA,CAAA,EAAc;MACtB,IAAIC,MAAM,GAAG;QACXV,MAAM,EAAEA,MAAM;QACdC,gBAAgB,EAAEA,gBAAgB;QAClCU,aAAa,EAAEV,gBAAgB;QAC/BW,WAAW,EAAE;MACf,CAAC;MACDZ,MAAM,GAAG,EAAE;MACXC,gBAAgB,GAAG,CAAC;MACpB,OAAOS,MAAM;IACf,CAAC;IAEDG,yBAAyB,EAAE,SAA3BA,yBAAyBA,CAAYR,IAAI,EAAE;MACzC,OAAOA,IAAI,CAACS,MAAM;IACpB;EACF,CAAC;AACH","ignoreList":[]}
@@ -1,3 +1,9 @@
1
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
2
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
3
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
4
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
5
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
6
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
1
7
  import { display } from '../helper/display';
2
8
  import { values, findByPath, each, isNumber, isArray, extend, isString, isEmptyObject, isObject } from '../helper/tools';
3
9
  import { escapeJsonValue, escapeRowField, escapeRowData } from '../helper/serialisation/rowData';
@@ -180,9 +186,8 @@ export function createBatch(options) {
180
186
  if (encoderResult.outputBytesCount) {
181
187
  send(formatPayloadFromEncoder(encoderResult, sendContentTypeByJson));
182
188
  }
183
-
184
189
  // Send messages that are not yet encoded at this point
185
- var pendingMessages = [encoderResult.pendingData, upsertMessages].filter(Boolean).join('\n');
190
+ var pendingMessages = [].concat(_toConsumableArray(encoderResult.pendingData), [upsertMessages]).filter(Boolean).join('\n');
186
191
  if (pendingMessages) {
187
192
  send({
188
193
  data: pendingMessages,
@@ -232,9 +237,7 @@ function formatPayloadFromEncoder(encoderResult, sendContentTypeByJson) {
232
237
  data: data,
233
238
  type: sendContentTypeByJson ? 'application/json;UTF-8' : undefined,
234
239
  bytesCount: encoderResult.outputBytesCount,
235
- encoding: encoderResult.encoding,
236
- outputBase64Head: encoderResult.outputBase64Head,
237
- outputBase64Tail: encoderResult.outputBase64Tail
240
+ encoding: encoderResult.encoding
238
241
  };
239
242
  }
240
243
  //# sourceMappingURL=batch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"batch.js","names":["display","values","findByPath","each","isNumber","isArray","extend","isString","isEmptyObject","isObject","escapeJsonValue","escapeRowField","escapeRowData","commonTags","dataMap","commonFields","RumEventType","computeBytesCount","isPageExitReason","jsonStringify","CUSTOM_KEYS","processedMessageByDataMap","message","type","rowStr","rowData","undefined","tags","fields","hasFileds","value","key","measurement","tagsStr","filterFileds","value_path","_key","_value","push","fieldsStr","length","_valueData","context","_tagKeys","indexOf","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","addOrUpdate","warn","concat","upsertMessages","isPageExit","reason","send","sendOnExit","isAsync","encoderResult","finishSync","outputBytesCount","formatPayloadFromEncoder","pendingMessages","pendingData","filter","Boolean","data","bytesCount","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":[]}
1
+ {"version":3,"file":"batch.js","names":["display","values","findByPath","each","isNumber","isArray","extend","isString","isEmptyObject","isObject","escapeJsonValue","escapeRowField","escapeRowData","commonTags","dataMap","commonFields","RumEventType","computeBytesCount","isPageExitReason","jsonStringify","CUSTOM_KEYS","processedMessageByDataMap","message","type","rowStr","rowData","undefined","tags","fields","hasFileds","value","key","measurement","tagsStr","filterFileds","value_path","_key","_value","push","fieldsStr","length","_valueData","context","_tagKeys","indexOf","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","addOrUpdate","warn","concat","upsertMessages","isPageExit","reason","send","sendOnExit","isAsync","encoderResult","finishSync","outputBytesCount","formatPayloadFromEncoder","pendingMessages","_toConsumableArray","pendingData","filter","Boolean","data","bytesCount","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]\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 // 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":[]}
@@ -83,16 +83,12 @@ export function fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onRespo
83
83
  keepalive: true,
84
84
  mode: 'cors'
85
85
  };
86
- var headers = {};
86
+ var headers = {
87
+ // 'x-client-timestamp': Date.now().toString()
88
+ };
87
89
  if (payload.type) {
88
90
  headers['Content-Type'] = payload.type;
89
91
  }
90
- if (payload.outputBase64Head) {
91
- headers['x-base64-head'] = payload.outputBase64Head;
92
- }
93
- if (payload.outputBase64Tail) {
94
- headers['x-base64-tail'] = payload.outputBase64Tail;
95
- }
96
92
  if (Object.keys(headers).length) {
97
93
  fetchOption.headers = headers;
98
94
  }
@@ -127,6 +123,7 @@ function sendXHR(url, payload, onResponse) {
127
123
  } else if (payload.type) {
128
124
  request.setRequestHeader('Content-Type', payload.type);
129
125
  }
126
+ // request.setRequestHeader('x-client-timestamp', Date.now().toString())
130
127
  addEventListener(request, 'loadend', function () {
131
128
  if (typeof onResponse === 'function') {
132
129
  onResponse({
@@ -145,10 +142,14 @@ function fetchStrategy(url, payload, onResponse) {
145
142
  keepalive: true,
146
143
  mode: 'cors'
147
144
  };
145
+ var headers = {
146
+ // 'x-client-timestamp': Date.now().toString()
147
+ };
148
148
  if (payload.type) {
149
- fetchOption.headers = {
150
- 'Content-Type': payload.type
151
- };
149
+ headers['Content-Type'] = payload.type;
150
+ }
151
+ if (Object.keys(headers).length) {
152
+ fetchOption.headers = headers;
152
153
  }
153
154
  fetch(url, fetchOption).then(monitor(function (response) {
154
155
  if (typeof onResponse === 'function') {
@@ -1 +1 @@
1
- {"version":3,"file":"httpRequest.js","names":["newRetryState","sendWithRetryStrategy","addEventListener","monitor","addTelemetryError","addBatchPrecision","url","encoding","indexOf","createHttpRequest","endpointUrl","bytesLimit","retryMaxSize","reportError","undefined","retryState","sendStrategyForRetry","payload","onResponse","fetchKeepAliveStrategy","send","sendOnExit","sendBeaconStrategy","data","bytesCount","canUseBeacon","navigator","sendBeacon","beaconData","type","Blob","isQueued","e","reportBeaconError","sendXHR","hasReportedBeaconError","canUseKeepAlive","isKeepAliveSupported","fetchOption","method","body","keepalive","mode","headers","outputBase64Head","outputBase64Tail","Object","keys","length","fetch","then","response","status","fetchStrategy","window","Request","_unused","request","XMLHttpRequest","open","setRequestHeader","once"],"sources":["../../src/transport/httpRequest.js"],"sourcesContent":["import { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy'\nimport { addEventListener } from '../browser/addEventListener'\nimport { monitor } from '../helper/monitor'\nimport { addTelemetryError } from '../telemetry/telemetry'\n/**\n * Use POST request without content type to:\n * - avoid CORS preflight requests\n * - allow usage of sendBeacon\n *\n * multiple elements are sent separated by \\n in order\n * to be parsed correctly without content type header\n */\nfunction addBatchPrecision(url, encoding) {\n if (!url) return url\n url = url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms'\n if (encoding) {\n url = url + '&encoding=' + encoding\n }\n return url\n}\nexport function createHttpRequest(\n endpointUrl,\n bytesLimit,\n retryMaxSize,\n reportError\n) {\n if (retryMaxSize === undefined) {\n retryMaxSize = -1\n }\n var retryState = newRetryState(retryMaxSize)\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse)\n }\n\n return {\n send: function (payload) {\n sendWithRetryStrategy(\n payload,\n retryState,\n sendStrategyForRetry,\n endpointUrl,\n reportError\n )\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(endpointUrl, bytesLimit, payload)\n }\n }\n}\n\nfunction sendBeaconStrategy(endpointUrl, bytesLimit, payload) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit\n if (canUseBeacon) {\n try {\n var beaconData\n if (payload.type) {\n beaconData = new Blob([data], {\n type: payload.type\n })\n } else {\n beaconData = data\n }\n\n var isQueued = navigator.sendBeacon(url, beaconData)\n\n if (isQueued) {\n return\n }\n } catch (e) {\n reportBeaconError(e)\n }\n }\n sendXHR(url, payload)\n}\nvar hasReportedBeaconError = false\n\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true\n addTelemetryError(e)\n }\n}\nexport function fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n payload,\n onResponse\n) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit\n if (canUseKeepAlive) {\n var fetchOption = {\n method: 'POST',\n body: data,\n keepalive: true,\n mode: 'cors'\n }\n const headers = {}\n\n if (payload.type) {\n headers['Content-Type'] = payload.type\n }\n if (payload.outputBase64Head) {\n headers['x-base64-head'] = payload.outputBase64Head\n }\n if (payload.outputBase64Tail) {\n headers['x-base64-tail'] = payload.outputBase64Tail\n }\n if (Object.keys(headers).length) {\n fetchOption.headers = headers\n }\n fetch(url, fetchOption)\n .then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n })\n )\n .catch(\n monitor(function () {\n fetchStrategy(url, payload, onResponse)\n })\n )\n } else {\n sendXHR(url, payload, onResponse)\n }\n}\n\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a')\n } catch {\n return false\n }\n}\n\nfunction sendXHR(url, payload, onResponse) {\n const data = payload.data\n const request = new XMLHttpRequest()\n request.open('POST', url, true)\n if (data instanceof Blob) {\n request.setRequestHeader('Content-Type', data.type)\n } else if (payload.type) {\n request.setRequestHeader('Content-Type', payload.type)\n }\n\n addEventListener(\n request,\n 'loadend',\n function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: request.status })\n }\n },\n {\n once: true\n }\n )\n request.send(data)\n}\nfunction fetchStrategy(url, payload, onResponse) {\n const fetchOption = {\n method: 'POST',\n body: payload.data,\n keepalive: true,\n mode: 'cors'\n }\n if (payload.type) {\n fetchOption.headers = {\n 'Content-Type': payload.type\n }\n }\n fetch(url, fetchOption)\n .then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n })\n )\n .catch(\n monitor(function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: 0 })\n }\n })\n )\n}\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,qBAAqB,QAAQ,yBAAyB;AAC9E,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,OAAO,QAAQ,mBAAmB;AAC3C,SAASC,iBAAiB,QAAQ,wBAAwB;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAACC,GAAG,EAAEC,QAAQ,EAAE;EACxC,IAAI,CAACD,GAAG,EAAE,OAAOA,GAAG;EACpBA,GAAG,GAAGA,GAAG,IAAIA,GAAG,CAACE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc;EAClE,IAAID,QAAQ,EAAE;IACZD,GAAG,GAAGA,GAAG,GAAG,YAAY,GAAGC,QAAQ;EACrC;EACA,OAAOD,GAAG;AACZ;AACA,OAAO,SAASG,iBAAiBA,CAC/BC,WAAW,EACXC,UAAU,EACVC,YAAY,EACZC,WAAW,EACX;EACA,IAAID,YAAY,KAAKE,SAAS,EAAE;IAC9BF,YAAY,GAAG,CAAC,CAAC;EACnB;EACA,IAAIG,UAAU,GAAGf,aAAa,CAACY,YAAY,CAAC;EAC5C,IAAII,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAaC,OAAO,EAAEC,UAAU,EAAE;IACxD,OAAOC,sBAAsB,CAACT,WAAW,EAAEC,UAAU,EAAEM,OAAO,EAAEC,UAAU,CAAC;EAC7E,CAAC;EAED,OAAO;IACLE,IAAI,EAAE,SAANA,IAAIA,CAAYH,OAAO,EAAE;MACvBhB,qBAAqB,CACnBgB,OAAO,EACPF,UAAU,EACVC,oBAAoB,EACpBN,WAAW,EACXG,WACF,CAAC;IACH,CAAC;IACD;AACJ;AACA;AACA;IACIQ,UAAU,EAAE,SAAZA,UAAUA,CAAYJ,OAAO,EAAE;MAC7BK,kBAAkB,CAACZ,WAAW,EAAEC,UAAU,EAAEM,OAAO,CAAC;IACtD;EACF,CAAC;AACH;AAEA,SAASK,kBAAkBA,CAACZ,WAAW,EAAEC,UAAU,EAAEM,OAAO,EAAE;EAC5D,IAAIM,IAAI,GAAGN,OAAO,CAACM,IAAI;EACvB,IAAIC,UAAU,GAAGP,OAAO,CAACO,UAAU;EACnC,IAAIlB,GAAG,GAAGD,iBAAiB,CAACK,WAAW,EAAEO,OAAO,CAACV,QAAQ,CAAC;EAC1D,IAAIkB,YAAY,GAAG,CAAC,CAACC,SAAS,CAACC,UAAU,IAAIH,UAAU,GAAGb,UAAU;EACpE,IAAIc,YAAY,EAAE;IAChB,IAAI;MACF,IAAIG,UAAU;MACd,IAAIX,OAAO,CAACY,IAAI,EAAE;QAChBD,UAAU,GAAG,IAAIE,IAAI,CAAC,CAACP,IAAI,CAAC,EAAE;UAC5BM,IAAI,EAAEZ,OAAO,CAACY;QAChB,CAAC,CAAC;MACJ,CAAC,MAAM;QACLD,UAAU,GAAGL,IAAI;MACnB;MAEA,IAAIQ,QAAQ,GAAGL,SAAS,CAACC,UAAU,CAACrB,GAAG,EAAEsB,UAAU,CAAC;MAEpD,IAAIG,QAAQ,EAAE;QACZ;MACF;IACF,CAAC,CAAC,OAAOC,CAAC,EAAE;MACVC,iBAAiB,CAACD,CAAC,CAAC;IACtB;EACF;EACAE,OAAO,CAAC5B,GAAG,EAAEW,OAAO,CAAC;AACvB;AACA,IAAIkB,sBAAsB,GAAG,KAAK;AAElC,SAASF,iBAAiBA,CAACD,CAAC,EAAE;EAC5B,IAAI,CAACG,sBAAsB,EAAE;IAC3BA,sBAAsB,GAAG,IAAI;IAC7B/B,iBAAiB,CAAC4B,CAAC,CAAC;EACtB;AACF;AACA,OAAO,SAASb,sBAAsBA,CACpCT,WAAW,EACXC,UAAU,EACVM,OAAO,EACPC,UAAU,EACV;EACA,IAAIK,IAAI,GAAGN,OAAO,CAACM,IAAI;EACvB,IAAIC,UAAU,GAAGP,OAAO,CAACO,UAAU;EACnC,IAAIlB,GAAG,GAAGD,iBAAiB,CAACK,WAAW,EAAEO,OAAO,CAACV,QAAQ,CAAC;EAC1D,IAAI6B,eAAe,GAAGC,oBAAoB,CAAC,CAAC,IAAIb,UAAU,GAAGb,UAAU;EACvE,IAAIyB,eAAe,EAAE;IACnB,IAAIE,WAAW,GAAG;MAChBC,MAAM,EAAE,MAAM;MACdC,IAAI,EAAEjB,IAAI;MACVkB,SAAS,EAAE,IAAI;MACfC,IAAI,EAAE;IACR,CAAC;IACD,IAAMC,OAAO,GAAG,CAAC,CAAC;IAElB,IAAI1B,OAAO,CAACY,IAAI,EAAE;MAChBc,OAAO,CAAC,cAAc,CAAC,GAAG1B,OAAO,CAACY,IAAI;IACxC;IACA,IAAIZ,OAAO,CAAC2B,gBAAgB,EAAE;MAC5BD,OAAO,CAAC,eAAe,CAAC,GAAG1B,OAAO,CAAC2B,gBAAgB;IACrD;IACA,IAAI3B,OAAO,CAAC4B,gBAAgB,EAAE;MAC5BF,OAAO,CAAC,eAAe,CAAC,GAAG1B,OAAO,CAAC4B,gBAAgB;IACrD;IACA,IAAIC,MAAM,CAACC,IAAI,CAACJ,OAAO,CAAC,CAACK,MAAM,EAAE;MAC/BV,WAAW,CAACK,OAAO,GAAGA,OAAO;IAC/B;IACAM,KAAK,CAAC3C,GAAG,EAAEgC,WAAW,CAAC,CACpBY,IAAI,CACH/C,OAAO,CAAC,UAAUgD,QAAQ,EAAE;MAC1B,IAAI,OAAOjC,UAAU,KAAK,UAAU,EAAE;QACpCA,UAAU,CAAC;UAAEkC,MAAM,EAAED,QAAQ,CAACC,MAAM;UAAEvB,IAAI,EAAEsB,QAAQ,CAACtB;QAAK,CAAC,CAAC;MAC9D;IACF,CAAC,CACH,CAAC,SACK,CACJ1B,OAAO,CAAC,YAAY;MAClBkD,aAAa,CAAC/C,GAAG,EAAEW,OAAO,EAAEC,UAAU,CAAC;IACzC,CAAC,CACH,CAAC;EACL,CAAC,MAAM;IACLgB,OAAO,CAAC5B,GAAG,EAAEW,OAAO,EAAEC,UAAU,CAAC;EACnC;AACF;AAEA,SAASmB,oBAAoBA,CAAA,EAAG;EAC9B;EACA,IAAI;IACF,OAAOiB,MAAM,CAACC,OAAO,IAAI,WAAW,IAAI,IAAIA,OAAO,CAAC,UAAU,CAAC;EACjE,CAAC,CAAC,OAAAC,OAAA,EAAM;IACN,OAAO,KAAK;EACd;AACF;AAEA,SAAStB,OAAOA,CAAC5B,GAAG,EAAEW,OAAO,EAAEC,UAAU,EAAE;EACzC,IAAMK,IAAI,GAAGN,OAAO,CAACM,IAAI;EACzB,IAAMkC,OAAO,GAAG,IAAIC,cAAc,CAAC,CAAC;EACpCD,OAAO,CAACE,IAAI,CAAC,MAAM,EAAErD,GAAG,EAAE,IAAI,CAAC;EAC/B,IAAIiB,IAAI,YAAYO,IAAI,EAAE;IACxB2B,OAAO,CAACG,gBAAgB,CAAC,cAAc,EAAErC,IAAI,CAACM,IAAI,CAAC;EACrD,CAAC,MAAM,IAAIZ,OAAO,CAACY,IAAI,EAAE;IACvB4B,OAAO,CAACG,gBAAgB,CAAC,cAAc,EAAE3C,OAAO,CAACY,IAAI,CAAC;EACxD;EAEA3B,gBAAgB,CACduD,OAAO,EACP,SAAS,EACT,YAAY;IACV,IAAI,OAAOvC,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC;QAAEkC,MAAM,EAAEK,OAAO,CAACL;MAAO,CAAC,CAAC;IACxC;EACF,CAAC,EACD;IACES,IAAI,EAAE;EACR,CACF,CAAC;EACDJ,OAAO,CAACrC,IAAI,CAACG,IAAI,CAAC;AACpB;AACA,SAAS8B,aAAaA,CAAC/C,GAAG,EAAEW,OAAO,EAAEC,UAAU,EAAE;EAC/C,IAAMoB,WAAW,GAAG;IAClBC,MAAM,EAAE,MAAM;IACdC,IAAI,EAAEvB,OAAO,CAACM,IAAI;IAClBkB,SAAS,EAAE,IAAI;IACfC,IAAI,EAAE;EACR,CAAC;EACD,IAAIzB,OAAO,CAACY,IAAI,EAAE;IAChBS,WAAW,CAACK,OAAO,GAAG;MACpB,cAAc,EAAE1B,OAAO,CAACY;IAC1B,CAAC;EACH;EACAoB,KAAK,CAAC3C,GAAG,EAAEgC,WAAW,CAAC,CACpBY,IAAI,CACH/C,OAAO,CAAC,UAAUgD,QAAQ,EAAE;IAC1B,IAAI,OAAOjC,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC;QAAEkC,MAAM,EAAED,QAAQ,CAACC,MAAM;QAAEvB,IAAI,EAAEsB,QAAQ,CAACtB;MAAK,CAAC,CAAC;IAC9D;EACF,CAAC,CACH,CAAC,SACK,CACJ1B,OAAO,CAAC,YAAY;IAClB,IAAI,OAAOe,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC;QAAEkC,MAAM,EAAE;MAAE,CAAC,CAAC;IAC3B;EACF,CAAC,CACH,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"file":"httpRequest.js","names":["newRetryState","sendWithRetryStrategy","addEventListener","monitor","addTelemetryError","addBatchPrecision","url","encoding","indexOf","createHttpRequest","endpointUrl","bytesLimit","retryMaxSize","reportError","undefined","retryState","sendStrategyForRetry","payload","onResponse","fetchKeepAliveStrategy","send","sendOnExit","sendBeaconStrategy","data","bytesCount","canUseBeacon","navigator","sendBeacon","beaconData","type","Blob","isQueued","e","reportBeaconError","sendXHR","hasReportedBeaconError","canUseKeepAlive","isKeepAliveSupported","fetchOption","method","body","keepalive","mode","headers","Object","keys","length","fetch","then","response","status","fetchStrategy","window","Request","_unused","request","XMLHttpRequest","open","setRequestHeader","once"],"sources":["../../src/transport/httpRequest.js"],"sourcesContent":["import { newRetryState, sendWithRetryStrategy } from './sendWithRetryStrategy'\nimport { addEventListener } from '../browser/addEventListener'\nimport { monitor } from '../helper/monitor'\nimport { addTelemetryError } from '../telemetry/telemetry'\n/**\n * Use POST request without content type to:\n * - avoid CORS preflight requests\n * - allow usage of sendBeacon\n *\n * multiple elements are sent separated by \\n in order\n * to be parsed correctly without content type header\n */\nfunction addBatchPrecision(url, encoding) {\n if (!url) return url\n url = url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms'\n if (encoding) {\n url = url + '&encoding=' + encoding\n }\n return url\n}\nexport function createHttpRequest(\n endpointUrl,\n bytesLimit,\n retryMaxSize,\n reportError\n) {\n if (retryMaxSize === undefined) {\n retryMaxSize = -1\n }\n var retryState = newRetryState(retryMaxSize)\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse)\n }\n\n return {\n send: function (payload) {\n sendWithRetryStrategy(\n payload,\n retryState,\n sendStrategyForRetry,\n endpointUrl,\n reportError\n )\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(endpointUrl, bytesLimit, payload)\n }\n }\n}\n\nfunction sendBeaconStrategy(endpointUrl, bytesLimit, payload) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit\n if (canUseBeacon) {\n try {\n var beaconData\n if (payload.type) {\n beaconData = new Blob([data], {\n type: payload.type\n })\n } else {\n beaconData = data\n }\n\n var isQueued = navigator.sendBeacon(url, beaconData)\n\n if (isQueued) {\n return\n }\n } catch (e) {\n reportBeaconError(e)\n }\n }\n sendXHR(url, payload)\n}\nvar hasReportedBeaconError = false\n\nfunction reportBeaconError(e) {\n if (!hasReportedBeaconError) {\n hasReportedBeaconError = true\n addTelemetryError(e)\n }\n}\nexport function fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n payload,\n onResponse\n) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl, payload.encoding)\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit\n if (canUseKeepAlive) {\n var fetchOption = {\n method: 'POST',\n body: data,\n keepalive: true,\n mode: 'cors'\n }\n const headers = {\n // 'x-client-timestamp': Date.now().toString()\n }\n if (payload.type) {\n headers['Content-Type'] = payload.type\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 // request.setRequestHeader('x-client-timestamp', Date.now().toString())\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 const headers = {\n // 'x-client-timestamp': Date.now().toString()\n }\n if (payload.type) {\n headers['Content-Type'] = payload.type\n }\n if (Object.keys(headers).length) {\n fetchOption.headers = headers\n }\n\n fetch(url, fetchOption)\n .then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n })\n )\n .catch(\n monitor(function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: 0 })\n }\n })\n )\n}\n"],"mappings":"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","ignoreList":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudcare/browser-core",
3
- "version": "3.2.29",
3
+ "version": "3.2.31",
4
4
  "main": "cjs/index.js",
5
5
  "module": "esm/index.js",
6
6
  "types": "types/index.d.ts",
@@ -21,5 +21,5 @@
21
21
  },
22
22
  "author": "dataflux",
23
23
  "license": "MIT",
24
- "gitHead": "c00a63dc2a909293f5001ed01ed11ce1d92383df"
24
+ "gitHead": "781f06ef8df59020c02a7ab8b00ff8dbc38ee08d"
25
25
  }
@@ -51,6 +51,7 @@ export function validateAndBuildConfiguration(initConfiguration) {
51
51
  ),
52
52
  sessionStoreStrategyType:
53
53
  selectSessionStoreStrategyType(initConfiguration),
54
+ isOpenWay: initConfiguration.site && initConfiguration.clientToken,
54
55
  sessionSampleRate: isNullUndefinedDefaultValue(sessionSampleRate, 100),
55
56
  service: initConfiguration.service,
56
57
  version: initConfiguration.version,
@@ -29,7 +29,7 @@ export function createIdentityEncoder() {
29
29
  output: output,
30
30
  outputBytesCount: outputBytesCount,
31
31
  rawBytesCount: outputBytesCount,
32
- pendingData: ''
32
+ pendingData: []
33
33
  }
34
34
  output = ''
35
35
  outputBytesCount = 0
@@ -234,9 +234,8 @@ export function createBatch(options) {
234
234
  if (encoderResult.outputBytesCount) {
235
235
  send(formatPayloadFromEncoder(encoderResult, sendContentTypeByJson))
236
236
  }
237
-
238
237
  // Send messages that are not yet encoded at this point
239
- var pendingMessages = [encoderResult.pendingData, upsertMessages]
238
+ var pendingMessages = [...encoderResult.pendingData, upsertMessages]
240
239
  .filter(Boolean)
241
240
  .join('\n')
242
241
 
@@ -292,8 +291,6 @@ function formatPayloadFromEncoder(encoderResult, sendContentTypeByJson) {
292
291
  data: data,
293
292
  type: sendContentTypeByJson ? 'application/json;UTF-8' : undefined,
294
293
  bytesCount: encoderResult.outputBytesCount,
295
- encoding: encoderResult.encoding,
296
- outputBase64Head: encoderResult.outputBase64Head,
297
- outputBase64Tail: encoderResult.outputBase64Tail
294
+ encoding: encoderResult.encoding
298
295
  }
299
296
  }
@@ -104,17 +104,12 @@ export function fetchKeepAliveStrategy(
104
104
  keepalive: true,
105
105
  mode: 'cors'
106
106
  }
107
- const headers = {}
108
-
107
+ const headers = {
108
+ // 'x-client-timestamp': Date.now().toString()
109
+ }
109
110
  if (payload.type) {
110
111
  headers['Content-Type'] = payload.type
111
112
  }
112
- if (payload.outputBase64Head) {
113
- headers['x-base64-head'] = payload.outputBase64Head
114
- }
115
- if (payload.outputBase64Tail) {
116
- headers['x-base64-tail'] = payload.outputBase64Tail
117
- }
118
113
  if (Object.keys(headers).length) {
119
114
  fetchOption.headers = headers
120
115
  }
@@ -154,7 +149,7 @@ function sendXHR(url, payload, onResponse) {
154
149
  } else if (payload.type) {
155
150
  request.setRequestHeader('Content-Type', payload.type)
156
151
  }
157
-
152
+ // request.setRequestHeader('x-client-timestamp', Date.now().toString())
158
153
  addEventListener(
159
154
  request,
160
155
  'loadend',
@@ -176,11 +171,16 @@ function fetchStrategy(url, payload, onResponse) {
176
171
  keepalive: true,
177
172
  mode: 'cors'
178
173
  }
174
+ const headers = {
175
+ // 'x-client-timestamp': Date.now().toString()
176
+ }
179
177
  if (payload.type) {
180
- fetchOption.headers = {
181
- 'Content-Type': payload.type
182
- }
178
+ headers['Content-Type'] = payload.type
183
179
  }
180
+ if (Object.keys(headers).length) {
181
+ fetchOption.headers = headers
182
+ }
183
+
184
184
  fetch(url, fetchOption)
185
185
  .then(
186
186
  monitor(function (response) {