@cloudcare/browser-core 3.2.30 → 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":[]}
@@ -91,12 +91,14 @@ function fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onResponse) {
91
91
  mode: 'cors'
92
92
  };
93
93
  var headers = {
94
- 'x-client-timestamp': Date.now().toString()
94
+ // 'x-client-timestamp': Date.now().toString()
95
95
  };
96
96
  if (payload.type) {
97
97
  headers['Content-Type'] = payload.type;
98
98
  }
99
- fetchOption.headers = headers;
99
+ if (Object.keys(headers).length) {
100
+ fetchOption.headers = headers;
101
+ }
100
102
  fetch(url, fetchOption).then((0, _monitor.monitor)(function (response) {
101
103
  if (typeof onResponse === 'function') {
102
104
  onResponse({
@@ -128,7 +130,7 @@ function sendXHR(url, payload, onResponse) {
128
130
  } else if (payload.type) {
129
131
  request.setRequestHeader('Content-Type', payload.type);
130
132
  }
131
- request.setRequestHeader('x-client-timestamp', Date.now().toString());
133
+ // request.setRequestHeader('x-client-timestamp', Date.now().toString())
132
134
  (0, _addEventListener.addEventListener)(request, 'loadend', function () {
133
135
  if (typeof onResponse === 'function') {
134
136
  onResponse({
@@ -148,12 +150,14 @@ function fetchStrategy(url, payload, onResponse) {
148
150
  mode: 'cors'
149
151
  };
150
152
  var headers = {
151
- 'x-client-timestamp': Date.now().toString()
153
+ // 'x-client-timestamp': Date.now().toString()
152
154
  };
153
155
  if (payload.type) {
154
156
  headers['Content-Type'] = payload.type;
155
157
  }
156
- fetchOption.headers = headers;
158
+ if (Object.keys(headers).length) {
159
+ fetchOption.headers = headers;
160
+ }
157
161
  fetch(url, fetchOption).then((0, _monitor.monitor)(function (response) {
158
162
  if (typeof onResponse === 'function') {
159
163
  onResponse({
@@ -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","Date","now","toString","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\n if (payload.type) {\n headers['Content-Type'] = payload.type\n }\n\n fetchOption.headers = headers\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 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 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;MACd,oBAAoB,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC;IAC5C,CAAC;IAED,IAAI/B,OAAO,CAACa,IAAI,EAAE;MAChBe,OAAO,CAAC,cAAc,CAAC,GAAG5B,OAAO,CAACa,IAAI;IACxC;IAEAU,WAAW,CAACK,OAAO,GAAGA,OAAO;IAC7BI,KAAK,CAAC5C,GAAG,EAAEmC,WAAW,CAAC,CACpBU,IAAI,CACH,IAAAC,gBAAO,EAAC,UAAUC,QAAQ,EAAE;MAC1B,IAAI,OAAOlC,UAAU,KAAK,UAAU,EAAE;QACpCA,UAAU,CAAC;UAAEmC,MAAM,EAAED,QAAQ,CAACC,MAAM;UAAEvB,IAAI,EAAEsB,QAAQ,CAACtB;QAAK,CAAC,CAAC;MAC9D;IACF,CAAC,CACH,CAAC,SACK,CACJ,IAAAqB,gBAAO,EAAC,YAAY;MAClBG,aAAa,CAACjD,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,OAAOgB,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,CAAC9B,GAAG,EAAEY,OAAO,EAAEC,UAAU,EAAE;EACzC,IAAMM,IAAI,GAAGP,OAAO,CAACO,IAAI;EACzB,IAAMkC,OAAO,GAAG,IAAIC,cAAc,CAAC,CAAC;EACpCD,OAAO,CAACE,IAAI,CAAC,MAAM,EAAEvD,GAAG,EAAE,IAAI,CAAC;EAC/B,IAAImB,IAAI,YAAYO,IAAI,EAAE;IACxB2B,OAAO,CAACG,gBAAgB,CAAC,cAAc,EAAErC,IAAI,CAACM,IAAI,CAAC;EACrD,CAAC,MAAM,IAAIb,OAAO,CAACa,IAAI,EAAE;IACvB4B,OAAO,CAACG,gBAAgB,CAAC,cAAc,EAAE5C,OAAO,CAACa,IAAI,CAAC;EACxD;EACA4B,OAAO,CAACG,gBAAgB,CAAC,oBAAoB,EAAEf,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC,CAAC,CAAC;EACrE,IAAAc,kCAAgB,EACdJ,OAAO,EACP,SAAS,EACT,YAAY;IACV,IAAI,OAAOxC,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC;QAAEmC,MAAM,EAAEK,OAAO,CAACL;MAAO,CAAC,CAAC;IACxC;EACF,CAAC,EACD;IACEU,IAAI,EAAE;EACR,CACF,CAAC;EACDL,OAAO,CAACtC,IAAI,CAACI,IAAI,CAAC;AACpB;AACA,SAAS8B,aAAaA,CAACjD,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,IAAMC,OAAO,GAAG;IACd,oBAAoB,EAAEC,IAAI,CAACC,GAAG,CAAC,CAAC,CAACC,QAAQ,CAAC;EAC5C,CAAC;EACD,IAAI/B,OAAO,CAACa,IAAI,EAAE;IAChBe,OAAO,CAAC,cAAc,CAAC,GAAG5B,OAAO,CAACa,IAAI;EACxC;EACAU,WAAW,CAACK,OAAO,GAAGA,OAAO;EAE7BI,KAAK,CAAC5C,GAAG,EAAEmC,WAAW,CAAC,CACpBU,IAAI,CACH,IAAAC,gBAAO,EAAC,UAAUC,QAAQ,EAAE;IAC1B,IAAI,OAAOlC,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC;QAAEmC,MAAM,EAAED,QAAQ,CAACC,MAAM;QAAEvB,IAAI,EAAEsB,QAAQ,CAACtB;MAAK,CAAC,CAAC;IAC9D;EACF,CAAC,CACH,CAAC,SACK,CACJ,IAAAqB,gBAAO,EAAC,YAAY;IAClB,IAAI,OAAOjC,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC;QAAEmC,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":[]}
@@ -84,12 +84,14 @@ export function fetchKeepAliveStrategy(endpointUrl, bytesLimit, payload, onRespo
84
84
  mode: 'cors'
85
85
  };
86
86
  var headers = {
87
- 'x-client-timestamp': Date.now().toString()
87
+ // 'x-client-timestamp': Date.now().toString()
88
88
  };
89
89
  if (payload.type) {
90
90
  headers['Content-Type'] = payload.type;
91
91
  }
92
- fetchOption.headers = headers;
92
+ if (Object.keys(headers).length) {
93
+ fetchOption.headers = headers;
94
+ }
93
95
  fetch(url, fetchOption).then(monitor(function (response) {
94
96
  if (typeof onResponse === 'function') {
95
97
  onResponse({
@@ -121,7 +123,7 @@ function sendXHR(url, payload, onResponse) {
121
123
  } else if (payload.type) {
122
124
  request.setRequestHeader('Content-Type', payload.type);
123
125
  }
124
- request.setRequestHeader('x-client-timestamp', Date.now().toString());
126
+ // request.setRequestHeader('x-client-timestamp', Date.now().toString())
125
127
  addEventListener(request, 'loadend', function () {
126
128
  if (typeof onResponse === 'function') {
127
129
  onResponse({
@@ -141,12 +143,14 @@ function fetchStrategy(url, payload, onResponse) {
141
143
  mode: 'cors'
142
144
  };
143
145
  var headers = {
144
- 'x-client-timestamp': Date.now().toString()
146
+ // 'x-client-timestamp': Date.now().toString()
145
147
  };
146
148
  if (payload.type) {
147
149
  headers['Content-Type'] = payload.type;
148
150
  }
149
- fetchOption.headers = headers;
151
+ if (Object.keys(headers).length) {
152
+ fetchOption.headers = headers;
153
+ }
150
154
  fetch(url, fetchOption).then(monitor(function (response) {
151
155
  if (typeof onResponse === 'function') {
152
156
  onResponse({
@@ -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","Date","now","toString","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\n if (payload.type) {\n headers['Content-Type'] = payload.type\n }\n\n fetchOption.headers = headers\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 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 if (typeof onResponse === 'function') {\n onResponse({ status: 0 })\n }\n })\n )\n}\n"],"mappings":"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","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.30",
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": "64d182d1a5d825ee8eb708fa6cd5eb15ac0a5f52"
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,
@@ -105,14 +105,14 @@ export function fetchKeepAliveStrategy(
105
105
  mode: 'cors'
106
106
  }
107
107
  const headers = {
108
- 'x-client-timestamp': Date.now().toString()
108
+ // 'x-client-timestamp': Date.now().toString()
109
109
  }
110
-
111
110
  if (payload.type) {
112
111
  headers['Content-Type'] = payload.type
113
112
  }
114
-
115
- fetchOption.headers = headers
113
+ if (Object.keys(headers).length) {
114
+ fetchOption.headers = headers
115
+ }
116
116
  fetch(url, fetchOption)
117
117
  .then(
118
118
  monitor(function (response) {
@@ -149,7 +149,7 @@ function sendXHR(url, payload, onResponse) {
149
149
  } else if (payload.type) {
150
150
  request.setRequestHeader('Content-Type', payload.type)
151
151
  }
152
- request.setRequestHeader('x-client-timestamp', Date.now().toString())
152
+ // request.setRequestHeader('x-client-timestamp', Date.now().toString())
153
153
  addEventListener(
154
154
  request,
155
155
  'loadend',
@@ -172,12 +172,14 @@ function fetchStrategy(url, payload, onResponse) {
172
172
  mode: 'cors'
173
173
  }
174
174
  const headers = {
175
- 'x-client-timestamp': Date.now().toString()
175
+ // 'x-client-timestamp': Date.now().toString()
176
176
  }
177
177
  if (payload.type) {
178
178
  headers['Content-Type'] = payload.type
179
179
  }
180
- fetchOption.headers = headers
180
+ if (Object.keys(headers).length) {
181
+ fetchOption.headers = headers
182
+ }
181
183
 
182
184
  fetch(url, fetchOption)
183
185
  .then(