@cloudcare/browser-core 3.1.10 → 3.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/browser/addEventListener.js.map +1 -1
- package/cjs/browser/cookie.js +2 -1
- package/cjs/browser/cookie.js.map +1 -1
- package/cjs/browser/fetchObservable.js.map +1 -1
- package/cjs/browser/htmlDomUtils.js +6 -1
- package/cjs/browser/htmlDomUtils.js.map +1 -1
- package/cjs/browser/pageExitObservable.js.map +1 -1
- package/cjs/browser/runOnReadyState.js.map +1 -1
- package/cjs/browser/scroll.js.map +1 -1
- package/cjs/browser/xhrObservable.js.map +1 -1
- package/cjs/configuration/configuration.js +13 -5
- package/cjs/configuration/configuration.js.map +1 -1
- package/cjs/configuration/transportConfiguration.js.map +1 -1
- package/cjs/console/consoleObservable.js +4 -2
- package/cjs/console/consoleObservable.js.map +1 -1
- package/cjs/dataMap.js +3 -1
- package/cjs/dataMap.js.map +1 -1
- package/cjs/error/trackRuntimeError.js.map +1 -1
- package/cjs/helper/boundedBuffer.js.map +1 -1
- package/cjs/helper/byteUtils.js.map +1 -1
- package/cjs/helper/catchUserErrors.js.map +1 -1
- package/cjs/helper/contextHistory.js.map +1 -1
- package/cjs/helper/createEventRateLimiter.js.map +1 -1
- package/cjs/helper/deviceInfo.js.map +1 -1
- package/cjs/helper/display.js.map +1 -1
- package/cjs/helper/enums.js.map +1 -1
- package/cjs/helper/errorTools.js.map +1 -1
- package/cjs/helper/eventEmitter.js.map +1 -1
- package/cjs/helper/getZoneJsOriginalValue.js.map +1 -1
- package/cjs/helper/instrumentMethod.js +7 -6
- package/cjs/helper/instrumentMethod.js.map +1 -1
- package/cjs/helper/lifeCycle.js +2 -0
- package/cjs/helper/lifeCycle.js.map +1 -1
- package/cjs/helper/limitModification.js.map +1 -1
- package/cjs/helper/mobileUtil.js.map +1 -1
- package/cjs/helper/monitor.js.map +1 -1
- package/cjs/helper/observable.js.map +1 -1
- package/cjs/helper/readBytesFromStream.js.map +1 -1
- package/cjs/helper/sanitize.js.map +1 -1
- package/cjs/helper/serialisation/contextManager.js.map +1 -1
- package/cjs/helper/serialisation/heavyCustomerDataWarning.js.map +1 -1
- package/cjs/helper/serialisation/jsonStringify.js.map +1 -1
- package/cjs/helper/serialisation/rowData.js.map +1 -1
- package/cjs/helper/serialisation/storedContextManager.js.map +1 -1
- package/cjs/helper/timer.js.map +1 -1
- package/cjs/helper/tools.js.map +1 -1
- package/cjs/helper/urlPolyfill.js.map +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/init.js.map +1 -1
- package/cjs/report/reportObservable.js.map +1 -1
- package/cjs/session/sessionConstants.js.map +1 -1
- package/cjs/session/sessionCookieStore.js.map +1 -1
- package/cjs/session/sessionManagement.js +7 -2
- package/cjs/session/sessionManagement.js.map +1 -1
- package/cjs/session/sessionStore.js +28 -4
- package/cjs/session/sessionStore.js.map +1 -1
- package/cjs/synthetics/syntheticsWorkerValues.js.map +1 -1
- package/cjs/synthetics/usr.js.map +1 -1
- package/cjs/telemetry/telemetry.js.map +1 -1
- package/cjs/telemetry/types.js.map +1 -1
- package/cjs/tracekit/computeStackTrace.js.map +1 -1
- package/cjs/tracekit/index.js.map +1 -1
- package/cjs/tracekit/tracekit.js.map +1 -1
- package/cjs/transport/batch.js.map +1 -1
- package/cjs/transport/eventBridge.js.map +1 -1
- package/cjs/transport/flushController.js.map +1 -1
- package/cjs/transport/httpRequest.js.map +1 -1
- package/cjs/transport/index.js.map +1 -1
- package/cjs/transport/sendWithRetryStrategy.js.map +1 -1
- package/cjs/transport/startBatchWithReplica.js.map +1 -1
- package/cjs/user/index.js.map +1 -1
- package/cjs/user/user.js.map +1 -1
- package/cjs/worker.js.map +1 -1
- package/esm/browser/addEventListener.js.map +1 -1
- package/esm/browser/cookie.js +2 -1
- package/esm/browser/cookie.js.map +1 -1
- package/esm/browser/fetchObservable.js.map +1 -1
- package/esm/browser/htmlDomUtils.js +6 -1
- package/esm/browser/htmlDomUtils.js.map +1 -1
- package/esm/browser/pageExitObservable.js.map +1 -1
- package/esm/browser/runOnReadyState.js.map +1 -1
- package/esm/browser/scroll.js.map +1 -1
- package/esm/browser/xhrObservable.js.map +1 -1
- package/esm/configuration/configuration.js +13 -5
- package/esm/configuration/configuration.js.map +1 -1
- package/esm/configuration/transportConfiguration.js.map +1 -1
- package/esm/console/consoleObservable.js +5 -3
- package/esm/console/consoleObservable.js.map +1 -1
- package/esm/dataMap.js +3 -1
- package/esm/dataMap.js.map +1 -1
- package/esm/error/trackRuntimeError.js.map +1 -1
- package/esm/helper/boundedBuffer.js.map +1 -1
- package/esm/helper/byteUtils.js.map +1 -1
- package/esm/helper/catchUserErrors.js.map +1 -1
- package/esm/helper/contextHistory.js.map +1 -1
- package/esm/helper/createEventRateLimiter.js.map +1 -1
- package/esm/helper/deviceInfo.js.map +1 -1
- package/esm/helper/display.js.map +1 -1
- package/esm/helper/enums.js.map +1 -1
- package/esm/helper/errorTools.js.map +1 -1
- package/esm/helper/eventEmitter.js.map +1 -1
- package/esm/helper/getZoneJsOriginalValue.js.map +1 -1
- package/esm/helper/instrumentMethod.js +7 -6
- package/esm/helper/instrumentMethod.js.map +1 -1
- package/esm/helper/lifeCycle.js +2 -0
- package/esm/helper/lifeCycle.js.map +1 -1
- package/esm/helper/limitModification.js.map +1 -1
- package/esm/helper/mobileUtil.js.map +1 -1
- package/esm/helper/monitor.js.map +1 -1
- package/esm/helper/observable.js.map +1 -1
- package/esm/helper/readBytesFromStream.js.map +1 -1
- package/esm/helper/sanitize.js.map +1 -1
- package/esm/helper/serialisation/contextManager.js.map +1 -1
- package/esm/helper/serialisation/heavyCustomerDataWarning.js.map +1 -1
- package/esm/helper/serialisation/jsonStringify.js.map +1 -1
- package/esm/helper/serialisation/rowData.js.map +1 -1
- package/esm/helper/serialisation/storedContextManager.js.map +1 -1
- package/esm/helper/timer.js.map +1 -1
- package/esm/helper/tools.js.map +1 -1
- package/esm/helper/urlPolyfill.js.map +1 -1
- package/esm/index.js.map +1 -1
- package/esm/init.js.map +1 -1
- package/esm/report/reportObservable.js.map +1 -1
- package/esm/session/sessionConstants.js.map +1 -1
- package/esm/session/sessionCookieStore.js.map +1 -1
- package/esm/session/sessionManagement.js +7 -2
- package/esm/session/sessionManagement.js.map +1 -1
- package/esm/session/sessionStore.js +27 -6
- package/esm/session/sessionStore.js.map +1 -1
- package/esm/synthetics/syntheticsWorkerValues.js.map +1 -1
- package/esm/synthetics/usr.js.map +1 -1
- package/esm/telemetry/telemetry.js.map +1 -1
- package/esm/telemetry/types.js.map +1 -1
- package/esm/tracekit/computeStackTrace.js.map +1 -1
- package/esm/tracekit/index.js.map +1 -1
- package/esm/tracekit/tracekit.js.map +1 -1
- package/esm/transport/batch.js.map +1 -1
- package/esm/transport/eventBridge.js.map +1 -1
- package/esm/transport/flushController.js.map +1 -1
- package/esm/transport/httpRequest.js.map +1 -1
- package/esm/transport/index.js.map +1 -1
- package/esm/transport/sendWithRetryStrategy.js.map +1 -1
- package/esm/transport/startBatchWithReplica.js.map +1 -1
- package/esm/user/index.js.map +1 -1
- package/esm/user/user.js.map +1 -1
- package/esm/worker.js.map +1 -1
- package/package.json +2 -2
- package/src/browser/cookie.js +3 -1
- package/src/browser/htmlDomUtils.js +7 -1
- package/src/configuration/configuration.js +17 -9
- package/src/console/consoleObservable.js +8 -4
- package/src/dataMap.js +3 -1
- package/src/helper/instrumentMethod.js +5 -4
- package/src/helper/lifeCycle.js +2 -0
- package/src/session/sessionManagement.js +7 -2
- package/src/session/sessionStore.js +26 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flushController.js","names":["Observable","clearTimeout","setTimeout","createFlushController","_ref","messagesLimit","bytesLimit","durationLimit","pageExitObservable","sessionExpireObservable","flushObservable","subscribe","event","flush","reason","currentBytesCount","currentMessagesCount","flushReason","messagesCount","bytesCount","cancelDurationLimitTimeout","notify","durationLimitTimeoutId","scheduleDurationLimitTimeout","undefined","getMessagesCount","notifyBeforeAddMessage","messageBytesCount","notifyAfterAddMessage","notifyAfterRemoveMessage"],"sources":["../../src/transport/flushController.js"],"sourcesContent":["import { Observable } from '../helper/observable'\nimport { clearTimeout, setTimeout } from '../helper/timer'\n\n// type FlushReason = PageExitReason | 'duration_limit' | 'bytes_limit' | 'messages_limit' | 'session_expire'\n\n/**\n * Returns a \"flush controller\", responsible of notifying when flushing a pool of pending data needs\n * to happen. The implementation is designed to support both synchronous and asynchronous usages,\n * but relies on invariants described in each method documentation to keep a coherent state.\n */\nexport function createFlushController({\n messagesLimit,\n bytesLimit,\n durationLimit,\n pageExitObservable,\n sessionExpireObservable\n}) {\n var flushObservable = new Observable()\n\n pageExitObservable.subscribe(function (event) {\n return flush(event.reason)\n })\n sessionExpireObservable.subscribe(function () {\n return flush('session_expire')\n })\n\n var currentBytesCount = 0\n var currentMessagesCount = 0\n\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return\n }\n\n var messagesCount = currentMessagesCount\n var bytesCount = currentBytesCount\n\n currentMessagesCount = 0\n currentBytesCount = 0\n cancelDurationLimitTimeout()\n\n flushObservable.notify({\n reason: flushReason,\n messagesCount: messagesCount,\n bytesCount: bytesCount\n })\n }\n\n var durationLimitTimeoutId\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(function () {\n flush('duration_limit')\n }, durationLimit)\n }\n }\n\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId)\n durationLimitTimeoutId = undefined\n }\n\n return {\n flushObservable: flushObservable,\n getMessagesCount: function () {\n return currentMessagesCount\n },\n\n /**\n * Notifies that a message will be added to a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right before adding the message, so no flush\n * event can happen after `notifyBeforeAddMessage` and before adding the message.\n */\n notifyBeforeAddMessage: function (messageBytesCount) {\n if (currentBytesCount + messageBytesCount >= bytesLimit) {\n flush('bytes_limit')\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1\n currentBytesCount += messageBytesCount\n scheduleDurationLimitTimeout()\n },\n\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n */\n notifyAfterAddMessage: function () {\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit')\n } else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit')\n }\n },\n\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n */\n notifyAfterRemoveMessage: function (messageBytesCount) {\n currentBytesCount -= messageBytesCount\n currentMessagesCount -= 1\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout()\n }\n }\n }\n}\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,sBAAsB;AACjD,SAASC,YAAY,EAAEC,UAAU,QAAQ,iBAAiB;;AAE1D;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAMlC;EAAA,IALDC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IACVC,aAAa,GAAAH,IAAA,CAAbG,aAAa;IACbC,kBAAkB,GAAAJ,IAAA,CAAlBI,kBAAkB;IAClBC,uBAAuB,GAAAL,IAAA,CAAvBK,uBAAuB;EAEvB,IAAIC,eAAe,GAAG,IAAIV,UAAU,CAAC,CAAC;EAEtCQ,kBAAkB,CAACG,SAAS,CAAC,UAAUC,KAAK,EAAE;IAC5C,OAAOC,KAAK,CAACD,KAAK,CAACE,MAAM,CAAC;EAC5B,CAAC,CAAC;EACFL,uBAAuB,CAACE,SAAS,CAAC,YAAY;IAC5C,OAAOE,KAAK,CAAC,gBAAgB,CAAC;EAChC,CAAC,CAAC;EAEF,IAAIE,iBAAiB,GAAG,CAAC;EACzB,IAAIC,oBAAoB,GAAG,CAAC;EAE5B,SAASH,KAAKA,CAACI,WAAW,EAAE;IAC1B,IAAID,oBAAoB,KAAK,CAAC,EAAE;MAC9B;IACF;IAEA,IAAIE,aAAa,GAAGF,oBAAoB;IACxC,IAAIG,UAAU,GAAGJ,iBAAiB;IAElCC,oBAAoB,GAAG,CAAC;IACxBD,iBAAiB,GAAG,CAAC;IACrBK,0BAA0B,CAAC,CAAC;IAE5BV,eAAe,CAACW,MAAM,CAAC;MACrBP,MAAM,EAAEG,WAAW;MACnBC,aAAa,EAAEA,aAAa;MAC5BC,UAAU,EAAEA;IACd,CAAC,CAAC;EACJ;EAEA,IAAIG,sBAAsB;EAC1B,SAASC,4BAA4BA,CAAA,EAAG;IACtC,IAAID,sBAAsB,KAAKE,SAAS,EAAE;MACxCF,sBAAsB,GAAGpB,UAAU,CAAC,YAAY;QAC9CW,KAAK,CAAC,gBAAgB,CAAC;MACzB,CAAC,EAAEN,aAAa,CAAC;IACnB;EACF;EAEA,SAASa,0BAA0BA,CAAA,EAAG;IACpCnB,YAAY,CAACqB,sBAAsB,CAAC;IACpCA,sBAAsB,GAAGE,SAAS;EACpC;EAEA,OAAO;IACLd,eAAe,EAAEA,eAAe;IAChCe,gBAAgB,EAAE,SAAAA,iBAAA,EAAY;MAC5B,OAAOT,oBAAoB;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IACIU,sBAAsB,EAAE,SAAAA,uBAAUC,iBAAiB,EAAE;MACnD,IAAIZ,iBAAiB,GAAGY,iBAAiB,IAAIrB,UAAU,EAAE;QACvDO,KAAK,CAAC,aAAa,CAAC;MACtB;MACA;MACA;MACA;MACAG,oBAAoB,IAAI,CAAC;MACzBD,iBAAiB,IAAIY,iBAAiB;MACtCJ,4BAA4B,CAAC,CAAC;IAChC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IACIK,qBAAqB,EAAE,SAAAA,sBAAA,EAAY;MACjC,IAAIZ,oBAAoB,IAAIX,aAAa,EAAE;QACzCQ,KAAK,CAAC,gBAAgB,CAAC;MACzB,CAAC,MAAM,IAAIE,iBAAiB,IAAIT,UAAU,EAAE;QAC1CO,KAAK,CAAC,aAAa,CAAC;MACtB;IACF,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IACIgB,wBAAwB,EAAE,SAAAA,yBAAUF,iBAAiB,EAAE;MACrDZ,iBAAiB,IAAIY,iBAAiB;MACtCX,oBAAoB,IAAI,CAAC;MACzB,IAAIA,oBAAoB,KAAK,CAAC,EAAE;QAC9BI,0BAA0B,CAAC,CAAC;MAC9B;IACF;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"flushController.js","names":["Observable","clearTimeout","setTimeout","createFlushController","_ref","messagesLimit","bytesLimit","durationLimit","pageExitObservable","sessionExpireObservable","flushObservable","subscribe","event","flush","reason","currentBytesCount","currentMessagesCount","flushReason","messagesCount","bytesCount","cancelDurationLimitTimeout","notify","durationLimitTimeoutId","scheduleDurationLimitTimeout","undefined","getMessagesCount","notifyBeforeAddMessage","messageBytesCount","notifyAfterAddMessage","notifyAfterRemoveMessage"],"sources":["../../src/transport/flushController.js"],"sourcesContent":["import { Observable } from '../helper/observable'\nimport { clearTimeout, setTimeout } from '../helper/timer'\n\n// type FlushReason = PageExitReason | 'duration_limit' | 'bytes_limit' | 'messages_limit' | 'session_expire'\n\n/**\n * Returns a \"flush controller\", responsible of notifying when flushing a pool of pending data needs\n * to happen. The implementation is designed to support both synchronous and asynchronous usages,\n * but relies on invariants described in each method documentation to keep a coherent state.\n */\nexport function createFlushController({\n messagesLimit,\n bytesLimit,\n durationLimit,\n pageExitObservable,\n sessionExpireObservable\n}) {\n var flushObservable = new Observable()\n\n pageExitObservable.subscribe(function (event) {\n return flush(event.reason)\n })\n sessionExpireObservable.subscribe(function () {\n return flush('session_expire')\n })\n\n var currentBytesCount = 0\n var currentMessagesCount = 0\n\n function flush(flushReason) {\n if (currentMessagesCount === 0) {\n return\n }\n\n var messagesCount = currentMessagesCount\n var bytesCount = currentBytesCount\n\n currentMessagesCount = 0\n currentBytesCount = 0\n cancelDurationLimitTimeout()\n\n flushObservable.notify({\n reason: flushReason,\n messagesCount: messagesCount,\n bytesCount: bytesCount\n })\n }\n\n var durationLimitTimeoutId\n function scheduleDurationLimitTimeout() {\n if (durationLimitTimeoutId === undefined) {\n durationLimitTimeoutId = setTimeout(function () {\n flush('duration_limit')\n }, durationLimit)\n }\n }\n\n function cancelDurationLimitTimeout() {\n clearTimeout(durationLimitTimeoutId)\n durationLimitTimeoutId = undefined\n }\n\n return {\n flushObservable: flushObservable,\n getMessagesCount: function () {\n return currentMessagesCount\n },\n\n /**\n * Notifies that a message will be added to a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right before adding the message, so no flush\n * event can happen after `notifyBeforeAddMessage` and before adding the message.\n */\n notifyBeforeAddMessage: function (messageBytesCount) {\n if (currentBytesCount + messageBytesCount >= bytesLimit) {\n flush('bytes_limit')\n }\n // Consider the message to be added now rather than in `notifyAfterAddMessage`, because if no\n // message was added yet and `notifyAfterAddMessage` is called asynchronously, we still want\n // to notify when a flush is needed (for example on page exit).\n currentMessagesCount += 1\n currentBytesCount += messageBytesCount\n scheduleDurationLimitTimeout()\n },\n\n /**\n * Notifies that a message *was* added to a pool of pending messages waiting to be flushed.\n *\n * This function can be called asynchronously after the message was added, but in this case it\n * should not be called if a flush event occurred in between.\n */\n notifyAfterAddMessage: function () {\n if (currentMessagesCount >= messagesLimit) {\n flush('messages_limit')\n } else if (currentBytesCount >= bytesLimit) {\n flush('bytes_limit')\n }\n },\n\n /**\n * Notifies that a message was removed from a pool of pending messages waiting to be flushed.\n *\n * This function needs to be called synchronously, right after removing the message, so no flush\n * event can happen after removing the message and before `notifyAfterRemoveMessage`.\n */\n notifyAfterRemoveMessage: function (messageBytesCount) {\n currentBytesCount -= messageBytesCount\n currentMessagesCount -= 1\n if (currentMessagesCount === 0) {\n cancelDurationLimitTimeout()\n }\n }\n }\n}\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,sBAAsB;AACjD,SAASC,YAAY,EAAEC,UAAU,QAAQ,iBAAiB;;AAE1D;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAAAC,IAAA,EAMlC;EAAA,IALDC,aAAa,GAAAD,IAAA,CAAbC,aAAa;IACbC,UAAU,GAAAF,IAAA,CAAVE,UAAU;IACVC,aAAa,GAAAH,IAAA,CAAbG,aAAa;IACbC,kBAAkB,GAAAJ,IAAA,CAAlBI,kBAAkB;IAClBC,uBAAuB,GAAAL,IAAA,CAAvBK,uBAAuB;EAEvB,IAAIC,eAAe,GAAG,IAAIV,UAAU,CAAC,CAAC;EAEtCQ,kBAAkB,CAACG,SAAS,CAAC,UAAUC,KAAK,EAAE;IAC5C,OAAOC,KAAK,CAACD,KAAK,CAACE,MAAM,CAAC;EAC5B,CAAC,CAAC;EACFL,uBAAuB,CAACE,SAAS,CAAC,YAAY;IAC5C,OAAOE,KAAK,CAAC,gBAAgB,CAAC;EAChC,CAAC,CAAC;EAEF,IAAIE,iBAAiB,GAAG,CAAC;EACzB,IAAIC,oBAAoB,GAAG,CAAC;EAE5B,SAASH,KAAKA,CAACI,WAAW,EAAE;IAC1B,IAAID,oBAAoB,KAAK,CAAC,EAAE;MAC9B;IACF;IAEA,IAAIE,aAAa,GAAGF,oBAAoB;IACxC,IAAIG,UAAU,GAAGJ,iBAAiB;IAElCC,oBAAoB,GAAG,CAAC;IACxBD,iBAAiB,GAAG,CAAC;IACrBK,0BAA0B,CAAC,CAAC;IAE5BV,eAAe,CAACW,MAAM,CAAC;MACrBP,MAAM,EAAEG,WAAW;MACnBC,aAAa,EAAEA,aAAa;MAC5BC,UAAU,EAAEA;IACd,CAAC,CAAC;EACJ;EAEA,IAAIG,sBAAsB;EAC1B,SAASC,4BAA4BA,CAAA,EAAG;IACtC,IAAID,sBAAsB,KAAKE,SAAS,EAAE;MACxCF,sBAAsB,GAAGpB,UAAU,CAAC,YAAY;QAC9CW,KAAK,CAAC,gBAAgB,CAAC;MACzB,CAAC,EAAEN,aAAa,CAAC;IACnB;EACF;EAEA,SAASa,0BAA0BA,CAAA,EAAG;IACpCnB,YAAY,CAACqB,sBAAsB,CAAC;IACpCA,sBAAsB,GAAGE,SAAS;EACpC;EAEA,OAAO;IACLd,eAAe,EAAEA,eAAe;IAChCe,gBAAgB,EAAE,SAAAA,iBAAA,EAAY;MAC5B,OAAOT,oBAAoB;IAC7B,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IACIU,sBAAsB,EAAE,SAAAA,uBAAUC,iBAAiB,EAAE;MACnD,IAAIZ,iBAAiB,GAAGY,iBAAiB,IAAIrB,UAAU,EAAE;QACvDO,KAAK,CAAC,aAAa,CAAC;MACtB;MACA;MACA;MACA;MACAG,oBAAoB,IAAI,CAAC;MACzBD,iBAAiB,IAAIY,iBAAiB;MACtCJ,4BAA4B,CAAC,CAAC;IAChC,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IACIK,qBAAqB,EAAE,SAAAA,sBAAA,EAAY;MACjC,IAAIZ,oBAAoB,IAAIX,aAAa,EAAE;QACzCQ,KAAK,CAAC,gBAAgB,CAAC;MACzB,CAAC,MAAM,IAAIE,iBAAiB,IAAIT,UAAU,EAAE;QAC1CO,KAAK,CAAC,aAAa,CAAC;MACtB;IACF,CAAC;IAED;AACJ;AACA;AACA;AACA;AACA;IACIgB,wBAAwB,EAAE,SAAAA,yBAAUF,iBAAiB,EAAE;MACrDZ,iBAAiB,IAAIY,iBAAiB;MACtCX,oBAAoB,IAAI,CAAC;MACzB,IAAIA,oBAAoB,KAAK,CAAC,EAAE;QAC9BI,0BAA0B,CAAC,CAAC;MAC9B;IACF;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"httpRequest.js","names":["newRetryState","sendWithRetryStrategy","addEventListener","monitor","addBatchPrecision","url","indexOf","createHttpRequest","endpointUrl","bytesLimit","sendContentTypeByJson","reportError","contentType","undefined","retryState","sendStrategyForRetry","payload","onResponse","fetchKeepAliveStrategy","send","sendOnExit","sendBeaconStrategy","data","bytesCount","canUseBeacon","navigator","sendBeacon","beaconData","Blob","type","isQueued","e","sendXHR","canUseKeepAlive","isKeepAliveSupported","fetchOption","method","body","keepalive","mode","headers","fetch","then","response","status","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'\n/**\n * Use POST request without content type to:\n * - avoid CORS preflight requests\n * - allow usage of sendBeacon\n *\n * multiple elements are sent separated by \\n in order\n * to be parsed correctly without content type header\n */\nfunction addBatchPrecision(url) {\n if (!url) return url\n return url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms'\n}\nexport function createHttpRequest(\n endpointUrl,\n bytesLimit,\n sendContentTypeByJson,\n reportError\n) {\n var contentType = sendContentTypeByJson\n ? 'application/json; charset=UTF-8'\n : undefined\n var retryState = newRetryState()\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n contentType,\n payload,\n onResponse\n )\n }\n\n return {\n send: function (payload) {\n sendWithRetryStrategy(\n payload,\n retryState,\n sendStrategyForRetry,\n endpointUrl,\n reportError\n )\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(endpointUrl, bytesLimit, contentType, payload)\n }\n }\n}\n\nfunction sendBeaconStrategy(endpointUrl, bytesLimit, contentType, payload) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl)\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit\n if (canUseBeacon) {\n try {\n var beaconData\n if (contentType) {\n beaconData = new Blob([data], {\n type: contentType\n })\n } else {\n beaconData = data\n }\n\n var isQueued = navigator.sendBeacon(url, beaconData)\n\n if (isQueued) {\n return\n }\n } catch (e) {\n // reportBeaconError(e)\n }\n }\n sendXHR(url, contentType, data)\n}\n\nexport function fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n contentType,\n payload,\n onResponse\n) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl)\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit\n if (canUseKeepAlive) {\n var fetchOption = {\n method: 'POST',\n body: data,\n keepalive: true,\n mode: 'cors'\n }\n if (contentType) {\n fetchOption.headers = {\n 'Content-Type': contentType\n }\n }\n fetch(url, fetchOption).then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n }),\n monitor(function () {\n // failed to queue the request\n sendXHR(url, contentType, data, onResponse)\n })\n )\n } else {\n sendXHR(url, contentType, data, onResponse)\n }\n}\n\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a')\n } catch {\n return false\n }\n}\n\nfunction sendXHR(url, contentType, data, onResponse) {\n const request = new XMLHttpRequest()\n request.open('POST', url, true)\n if (contentType) {\n //application/json; charset=UTF-8\n request.setRequestHeader('Content-Type', contentType)\n }\n\n addEventListener(\n request,\n 'loadend',\n function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: request.status })\n }\n },\n {\n once: true\n }\n )\n request.send(data)\n}\n"],"mappings":"AAAA,SAASA,aAAa,EAAEC,qBAAqB,QAAQ,yBAAyB;AAC9E,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,OAAO,QAAQ,mBAAmB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,iBAAiBA,CAACC,GAAG,EAAE;EAC9B,IAAI,CAACA,GAAG,EAAE,OAAOA,GAAG;EACpB,OAAOA,GAAG,IAAIA,GAAG,CAACC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,GAAG,GAAG,CAAC,GAAG,cAAc;AACrE;AACA,OAAO,SAASC,iBAAiBA,CAC/BC,WAAW,EACXC,UAAU,EACVC,qBAAqB,EACrBC,WAAW,EACX;EACA,IAAIC,WAAW,GAAGF,qBAAqB,GACnC,iCAAiC,GACjCG,SAAS;EACb,IAAIC,UAAU,GAAGd,aAAa,CAAC,CAAC;EAChC,IAAIe,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAaC,OAAO,EAAEC,UAAU,EAAE;IACxD,OAAOC,sBAAsB,CAC3BV,WAAW,EACXC,UAAU,EACVG,WAAW,EACXI,OAAO,EACPC,UACF,CAAC;EACH,CAAC;EAED,OAAO;IACLE,IAAI,EAAE,SAAAA,KAAUH,OAAO,EAAE;MACvBf,qBAAqB,CACnBe,OAAO,EACPF,UAAU,EACVC,oBAAoB,EACpBP,WAAW,EACXG,WACF,CAAC;IACH,CAAC;IACD;AACJ;AACA;AACA;IACIS,UAAU,EAAE,SAAAA,WAAUJ,OAAO,EAAE;MAC7BK,kBAAkB,CAACb,WAAW,EAAEC,UAAU,EAAEG,WAAW,EAAEI,OAAO,CAAC;IACnE;EACF,CAAC;AACH;AAEA,SAASK,kBAAkBA,CAACb,WAAW,EAAEC,UAAU,EAAEG,WAAW,EAAEI,OAAO,EAAE;EACzE,IAAIM,IAAI,GAAGN,OAAO,CAACM,IAAI;EACvB,IAAIC,UAAU,GAAGP,OAAO,CAACO,UAAU;EACnC,IAAIlB,GAAG,GAAGD,iBAAiB,CAACI,WAAW,CAAC;EACxC,IAAIgB,YAAY,GAAG,CAAC,CAACC,SAAS,CAACC,UAAU,IAAIH,UAAU,GAAGd,UAAU;EACpE,IAAIe,YAAY,EAAE;IAChB,IAAI;MACF,IAAIG,UAAU;MACd,IAAIf,WAAW,EAAE;QACfe,UAAU,GAAG,IAAIC,IAAI,CAAC,CAACN,IAAI,CAAC,EAAE;UAC5BO,IAAI,EAAEjB;QACR,CAAC,CAAC;MACJ,CAAC,MAAM;QACLe,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;MACV;IAAA;EAEJ;EACAC,OAAO,CAAC3B,GAAG,EAAEO,WAAW,EAAEU,IAAI,CAAC;AACjC;AAEA,OAAO,SAASJ,sBAAsBA,CACpCV,WAAW,EACXC,UAAU,EACVG,WAAW,EACXI,OAAO,EACPC,UAAU,EACV;EACA,IAAIK,IAAI,GAAGN,OAAO,CAACM,IAAI;EACvB,IAAIC,UAAU,GAAGP,OAAO,CAACO,UAAU;EACnC,IAAIlB,GAAG,GAAGD,iBAAiB,CAACI,WAAW,CAAC;EACxC,IAAIyB,eAAe,GAAGC,oBAAoB,CAAC,CAAC,IAAIX,UAAU,GAAGd,UAAU;EACvE,IAAIwB,eAAe,EAAE;IACnB,IAAIE,WAAW,GAAG;MAChBC,MAAM,EAAE,MAAM;MACdC,IAAI,EAAEf,IAAI;MACVgB,SAAS,EAAE,IAAI;MACfC,IAAI,EAAE;IACR,CAAC;IACD,IAAI3B,WAAW,EAAE;MACfuB,WAAW,CAACK,OAAO,GAAG;QACpB,cAAc,EAAE5B;MAClB,CAAC;IACH;IACA6B,KAAK,CAACpC,GAAG,EAAE8B,WAAW,CAAC,CAACO,IAAI,CAC1BvC,OAAO,CAAC,UAAUwC,QAAQ,EAAE;MAC1B,IAAI,OAAO1B,UAAU,KAAK,UAAU,EAAE;QACpCA,UAAU,CAAC;UAAE2B,MAAM,EAAED,QAAQ,CAACC,MAAM;UAAEf,IAAI,EAAEc,QAAQ,CAACd;QAAK,CAAC,CAAC;MAC9D;IACF,CAAC,CAAC,EACF1B,OAAO,CAAC,YAAY;MAClB;MACA6B,OAAO,CAAC3B,GAAG,EAAEO,WAAW,EAAEU,IAAI,EAAEL,UAAU,CAAC;IAC7C,CAAC,CACH,CAAC;EACH,CAAC,MAAM;IACLe,OAAO,CAAC3B,GAAG,EAAEO,WAAW,EAAEU,IAAI,EAAEL,UAAU,CAAC;EAC7C;AACF;AAEA,SAASiB,oBAAoBA,CAAA,EAAG;EAC9B;EACA,IAAI;IACF,OAAOW,MAAM,CAACC,OAAO,IAAI,WAAW,IAAI,IAAIA,OAAO,CAAC,UAAU,CAAC;EACjE,CAAC,CAAC,OAAAC,OAAA,EAAM;IACN,OAAO,KAAK;EACd;AACF;AAEA,SAASf,OAAOA,CAAC3B,GAAG,EAAEO,WAAW,EAAEU,IAAI,EAAEL,UAAU,EAAE;EACnD,IAAM+B,OAAO,GAAG,IAAIC,cAAc,CAAC,CAAC;EACpCD,OAAO,CAACE,IAAI,CAAC,MAAM,EAAE7C,GAAG,EAAE,IAAI,CAAC;EAC/B,IAAIO,WAAW,EAAE;IACf;IACAoC,OAAO,CAACG,gBAAgB,CAAC,cAAc,EAAEvC,WAAW,CAAC;EACvD;EAEAV,gBAAgB,CACd8C,OAAO,EACP,SAAS,EACT,YAAY;IACV,IAAI,OAAO/B,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,CAAC;QAAE2B,MAAM,EAAEI,OAAO,CAACJ;MAAO,CAAC,CAAC;IACxC;EACF,CAAC,EACD;IACEQ,IAAI,EAAE;EACR,CACF,CAAC;EACDJ,OAAO,CAAC7B,IAAI,CAACG,IAAI,CAAC;AACpB"}
|
|
1
|
+
{"version":3,"file":"httpRequest.js","names":["newRetryState","sendWithRetryStrategy","addEventListener","monitor","addBatchPrecision","url","indexOf","createHttpRequest","endpointUrl","bytesLimit","sendContentTypeByJson","reportError","contentType","undefined","retryState","sendStrategyForRetry","payload","onResponse","fetchKeepAliveStrategy","send","sendOnExit","sendBeaconStrategy","data","bytesCount","canUseBeacon","navigator","sendBeacon","beaconData","Blob","type","isQueued","e","sendXHR","canUseKeepAlive","isKeepAliveSupported","fetchOption","method","body","keepalive","mode","headers","fetch","then","response","status","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'\n/**\n * Use POST request without content type to:\n * - avoid CORS preflight requests\n * - allow usage of sendBeacon\n *\n * multiple elements are sent separated by \\n in order\n * to be parsed correctly without content type header\n */\nfunction addBatchPrecision(url) {\n if (!url) return url\n return url + (url.indexOf('?') === -1 ? '?' : '&') + 'precision=ms'\n}\nexport function createHttpRequest(\n endpointUrl,\n bytesLimit,\n sendContentTypeByJson,\n reportError\n) {\n var contentType = sendContentTypeByJson\n ? 'application/json; charset=UTF-8'\n : undefined\n var retryState = newRetryState()\n var sendStrategyForRetry = function (payload, onResponse) {\n return fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n contentType,\n payload,\n onResponse\n )\n }\n\n return {\n send: function (payload) {\n sendWithRetryStrategy(\n payload,\n retryState,\n sendStrategyForRetry,\n endpointUrl,\n reportError\n )\n },\n /**\n * Since fetch keepalive behaves like regular fetch on Firefox,\n * keep using sendBeaconStrategy on exit\n */\n sendOnExit: function (payload) {\n sendBeaconStrategy(endpointUrl, bytesLimit, contentType, payload)\n }\n }\n}\n\nfunction sendBeaconStrategy(endpointUrl, bytesLimit, contentType, payload) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl)\n var canUseBeacon = !!navigator.sendBeacon && bytesCount < bytesLimit\n if (canUseBeacon) {\n try {\n var beaconData\n if (contentType) {\n beaconData = new Blob([data], {\n type: contentType\n })\n } else {\n beaconData = data\n }\n\n var isQueued = navigator.sendBeacon(url, beaconData)\n\n if (isQueued) {\n return\n }\n } catch (e) {\n // reportBeaconError(e)\n }\n }\n sendXHR(url, contentType, data)\n}\n\nexport function fetchKeepAliveStrategy(\n endpointUrl,\n bytesLimit,\n contentType,\n payload,\n onResponse\n) {\n var data = payload.data\n var bytesCount = payload.bytesCount\n var url = addBatchPrecision(endpointUrl)\n var canUseKeepAlive = isKeepAliveSupported() && bytesCount < bytesLimit\n if (canUseKeepAlive) {\n var fetchOption = {\n method: 'POST',\n body: data,\n keepalive: true,\n mode: 'cors'\n }\n if (contentType) {\n fetchOption.headers = {\n 'Content-Type': contentType\n }\n }\n fetch(url, fetchOption).then(\n monitor(function (response) {\n if (typeof onResponse === 'function') {\n onResponse({ status: response.status, type: response.type })\n }\n }),\n monitor(function () {\n // failed to queue the request\n sendXHR(url, contentType, data, onResponse)\n })\n )\n } else {\n sendXHR(url, contentType, data, onResponse)\n }\n}\n\nfunction isKeepAliveSupported() {\n // Request can throw, cf https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#errors\n try {\n return window.Request && 'keepalive' in new Request('http://a')\n } catch {\n return false\n }\n}\n\nfunction sendXHR(url, contentType, data, onResponse) {\n const request = new XMLHttpRequest()\n request.open('POST', url, true)\n if (contentType) {\n //application/json; charset=UTF-8\n request.setRequestHeader('Content-Type', contentType)\n }\n\n addEventListener(\n request,\n 'loadend',\n function () {\n if (typeof onResponse === 'function') {\n onResponse({ status: request.status })\n }\n },\n {\n once: true\n }\n )\n request.send(data)\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["createHttpRequest","Batch","processedMessageByDataMap","startBatchWithReplica","createFlushController","getEventBridge","canUseEventBridge"],"sources":["../../src/transport/index.js"],"sourcesContent":["export { createHttpRequest } from './httpRequest'\nexport { Batch, processedMessageByDataMap } from './batch'\nexport { startBatchWithReplica } from './startBatchWithReplica'\nexport { createFlushController } from './flushController'\nexport { getEventBridge, canUseEventBridge } from './eventBridge'\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,eAAe;AACjD,SAASC,KAAK,EAAEC,yBAAyB,QAAQ,SAAS;AAC1D,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,qBAAqB,QAAQ,mBAAmB;AACzD,SAASC,cAAc,EAAEC,iBAAiB,QAAQ,eAAe"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["createHttpRequest","Batch","processedMessageByDataMap","startBatchWithReplica","createFlushController","getEventBridge","canUseEventBridge"],"sources":["../../src/transport/index.js"],"sourcesContent":["export { createHttpRequest } from './httpRequest'\nexport { Batch, processedMessageByDataMap } from './batch'\nexport { startBatchWithReplica } from './startBatchWithReplica'\nexport { createFlushController } from './flushController'\nexport { getEventBridge, canUseEventBridge } from './eventBridge'\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,eAAe;AACjD,SAASC,KAAK,EAAEC,yBAAyB,QAAQ,SAAS;AAC1D,SAASC,qBAAqB,QAAQ,yBAAyB;AAC/D,SAASC,qBAAqB,QAAQ,mBAAmB;AACzD,SAASC,cAAc,EAAEC,iBAAiB,QAAQ,eAAe","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendWithRetryStrategy.js","names":["clocksNow","ONE_SECOND","ONE_MEBI_BYTE","ONE_KIBI_BYTE","ErrorSource","setTimeout","MAX_ONGOING_BYTES_COUNT","MAX_ONGOING_REQUESTS","MAX_QUEUE_BYTES_COUNT","MAX_BACKOFF_TIME","INITIAL_BACKOFF_TIME","TransportStatus","UP","FAILURE_DETECTED","DOWN","RetryReason","AFTER_SUCCESS","AFTER_RESUME","sendWithRetryStrategy","payload","state","sendStrategy","endpointUrl","reportError","transportStatus","queuedPayloads","size","bandwidthMonitor","canHandle","send","onSuccess","retryQueuedPayloads","onFailure","enqueue","scheduleRetry","first","dequeue","currentBackoffTime","Math","min","responseData","add","response","remove","shouldRetryRequest","ongoingRequestCount","lastFailureStatus","status","reason","isFull","queueFullReported","message","source","AGENT","startClocks","previousQueue","newPayloadQueue","type","navigator","onLine","newRetryState","newBandwidthMonitor","queue","bytesCount","push","shift","length","ongoingByteCount"],"sources":["../../src/transport/sendWithRetryStrategy.js"],"sourcesContent":["import { clocksNow, ONE_SECOND } from '../helper/tools'\nimport { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../helper/byteUtils'\nimport { ErrorSource } from '../helper/errorTools'\nimport { setTimeout } from '../helper/timer'\nexport var MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE\nexport var MAX_ONGOING_REQUESTS = 32\nexport var MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE\nexport var MAX_BACKOFF_TIME = 256 * ONE_SECOND\nexport var INITIAL_BACKOFF_TIME = ONE_SECOND\n\nvar TransportStatus = {\n UP: 0,\n FAILURE_DETECTED: 1,\n DOWN: 2\n}\n\nvar RetryReason = {\n AFTER_SUCCESS: 0,\n AFTER_RESUME: 1\n}\n\nexport function sendWithRetryStrategy(\n payload,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n) {\n if (\n state.transportStatus === TransportStatus.UP &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)\n ) {\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n return retryQueuedPayloads(\n RetryReason.AFTER_SUCCESS,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n )\n },\n onFailure: function () {\n state.queuedPayloads.enqueue(payload)\n scheduleRetry(state, sendStrategy, endpointUrl, reportError)\n }\n })\n } else {\n state.queuedPayloads.enqueue(payload)\n }\n}\n\nfunction scheduleRetry(state, sendStrategy, endpointUrl, reportError) {\n if (state.transportStatus !== TransportStatus.DOWN) {\n return\n }\n setTimeout(function () {\n var payload = state.queuedPayloads.first()\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n state.queuedPayloads.dequeue()\n\n state.currentBackoffTime = INITIAL_BACKOFF_TIME\n retryQueuedPayloads(\n RetryReason.AFTER_RESUME,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n )\n },\n onFailure: function () {\n state.currentBackoffTime = Math.min(\n MAX_BACKOFF_TIME,\n state.currentBackoffTime * 2\n )\n scheduleRetry(state, sendStrategy, endpointUrl, reportError)\n }\n })\n }, state.currentBackoffTime)\n}\n\nfunction send(payload, state, sendStrategy, responseData) {\n var onSuccess = responseData.onSuccess\n var onFailure = responseData.onFailure\n state.bandwidthMonitor.add(payload)\n sendStrategy(payload, function (response) {\n state.bandwidthMonitor.remove(payload)\n if (!shouldRetryRequest(response)) {\n state.transportStatus = TransportStatus.UP\n onSuccess()\n } else {\n // do not consider transport down if another ongoing request could succeed\n state.transportStatus =\n state.bandwidthMonitor.ongoingRequestCount > 0\n ? TransportStatus.FAILURE_DETECTED\n : TransportStatus.DOWN\n state.lastFailureStatus = response.status\n onFailure()\n }\n })\n}\n\nfunction retryQueuedPayloads(\n reason,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n) {\n if (\n reason === RetryReason.AFTER_SUCCESS &&\n state.queuedPayloads.isFull() &&\n !state.queueFullReported\n ) {\n reportError({\n message:\n 'Reached max ' +\n endpointUrl +\n ' events size queued for upload: ' +\n MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE +\n 'MiB',\n source: ErrorSource.AGENT,\n startClocks: clocksNow()\n })\n state.queueFullReported = true\n }\n var previousQueue = state.queuedPayloads\n state.queuedPayloads = newPayloadQueue()\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(\n previousQueue.dequeue(),\n state,\n sendStrategy,\n endpointUrl,\n reportError\n )\n }\n}\n\nfunction shouldRetryRequest(response) {\n return (\n response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n response.status >= 500)\n )\n}\nexport function newRetryState() {\n return {\n transportStatus: TransportStatus.UP,\n lastFailureStatus: 0,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false\n }\n}\n\nfunction newPayloadQueue() {\n var queue = []\n return {\n bytesCount: 0,\n enqueue: function (payload) {\n if (this.isFull()) {\n return\n }\n queue.push(payload)\n this.bytesCount += payload.bytesCount\n },\n first: function () {\n return queue[0]\n },\n dequeue: function () {\n var payload = queue.shift()\n if (payload) {\n this.bytesCount -= payload.bytesCount\n }\n return payload\n },\n size: function () {\n return queue.length\n },\n isFull: function () {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT\n }\n }\n}\n\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle: function (payload) {\n return (\n this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <=\n MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS)\n )\n },\n add: function (payload) {\n this.ongoingRequestCount += 1\n this.ongoingByteCount += payload.bytesCount\n },\n remove: function (payload) {\n this.ongoingRequestCount -= 1\n this.ongoingByteCount -= payload.bytesCount\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sendWithRetryStrategy.js","names":["clocksNow","ONE_SECOND","ONE_MEBI_BYTE","ONE_KIBI_BYTE","ErrorSource","setTimeout","MAX_ONGOING_BYTES_COUNT","MAX_ONGOING_REQUESTS","MAX_QUEUE_BYTES_COUNT","MAX_BACKOFF_TIME","INITIAL_BACKOFF_TIME","TransportStatus","UP","FAILURE_DETECTED","DOWN","RetryReason","AFTER_SUCCESS","AFTER_RESUME","sendWithRetryStrategy","payload","state","sendStrategy","endpointUrl","reportError","transportStatus","queuedPayloads","size","bandwidthMonitor","canHandle","send","onSuccess","retryQueuedPayloads","onFailure","enqueue","scheduleRetry","first","dequeue","currentBackoffTime","Math","min","responseData","add","response","remove","shouldRetryRequest","ongoingRequestCount","lastFailureStatus","status","reason","isFull","queueFullReported","message","source","AGENT","startClocks","previousQueue","newPayloadQueue","type","navigator","onLine","newRetryState","newBandwidthMonitor","queue","bytesCount","push","shift","length","ongoingByteCount"],"sources":["../../src/transport/sendWithRetryStrategy.js"],"sourcesContent":["import { clocksNow, ONE_SECOND } from '../helper/tools'\nimport { ONE_MEBI_BYTE, ONE_KIBI_BYTE } from '../helper/byteUtils'\nimport { ErrorSource } from '../helper/errorTools'\nimport { setTimeout } from '../helper/timer'\nexport var MAX_ONGOING_BYTES_COUNT = 80 * ONE_KIBI_BYTE\nexport var MAX_ONGOING_REQUESTS = 32\nexport var MAX_QUEUE_BYTES_COUNT = 3 * ONE_MEBI_BYTE\nexport var MAX_BACKOFF_TIME = 256 * ONE_SECOND\nexport var INITIAL_BACKOFF_TIME = ONE_SECOND\n\nvar TransportStatus = {\n UP: 0,\n FAILURE_DETECTED: 1,\n DOWN: 2\n}\n\nvar RetryReason = {\n AFTER_SUCCESS: 0,\n AFTER_RESUME: 1\n}\n\nexport function sendWithRetryStrategy(\n payload,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n) {\n if (\n state.transportStatus === TransportStatus.UP &&\n state.queuedPayloads.size() === 0 &&\n state.bandwidthMonitor.canHandle(payload)\n ) {\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n return retryQueuedPayloads(\n RetryReason.AFTER_SUCCESS,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n )\n },\n onFailure: function () {\n state.queuedPayloads.enqueue(payload)\n scheduleRetry(state, sendStrategy, endpointUrl, reportError)\n }\n })\n } else {\n state.queuedPayloads.enqueue(payload)\n }\n}\n\nfunction scheduleRetry(state, sendStrategy, endpointUrl, reportError) {\n if (state.transportStatus !== TransportStatus.DOWN) {\n return\n }\n setTimeout(function () {\n var payload = state.queuedPayloads.first()\n send(payload, state, sendStrategy, {\n onSuccess: function () {\n state.queuedPayloads.dequeue()\n\n state.currentBackoffTime = INITIAL_BACKOFF_TIME\n retryQueuedPayloads(\n RetryReason.AFTER_RESUME,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n )\n },\n onFailure: function () {\n state.currentBackoffTime = Math.min(\n MAX_BACKOFF_TIME,\n state.currentBackoffTime * 2\n )\n scheduleRetry(state, sendStrategy, endpointUrl, reportError)\n }\n })\n }, state.currentBackoffTime)\n}\n\nfunction send(payload, state, sendStrategy, responseData) {\n var onSuccess = responseData.onSuccess\n var onFailure = responseData.onFailure\n state.bandwidthMonitor.add(payload)\n sendStrategy(payload, function (response) {\n state.bandwidthMonitor.remove(payload)\n if (!shouldRetryRequest(response)) {\n state.transportStatus = TransportStatus.UP\n onSuccess()\n } else {\n // do not consider transport down if another ongoing request could succeed\n state.transportStatus =\n state.bandwidthMonitor.ongoingRequestCount > 0\n ? TransportStatus.FAILURE_DETECTED\n : TransportStatus.DOWN\n state.lastFailureStatus = response.status\n onFailure()\n }\n })\n}\n\nfunction retryQueuedPayloads(\n reason,\n state,\n sendStrategy,\n endpointUrl,\n reportError\n) {\n if (\n reason === RetryReason.AFTER_SUCCESS &&\n state.queuedPayloads.isFull() &&\n !state.queueFullReported\n ) {\n reportError({\n message:\n 'Reached max ' +\n endpointUrl +\n ' events size queued for upload: ' +\n MAX_QUEUE_BYTES_COUNT / ONE_MEBI_BYTE +\n 'MiB',\n source: ErrorSource.AGENT,\n startClocks: clocksNow()\n })\n state.queueFullReported = true\n }\n var previousQueue = state.queuedPayloads\n state.queuedPayloads = newPayloadQueue()\n while (previousQueue.size() > 0) {\n sendWithRetryStrategy(\n previousQueue.dequeue(),\n state,\n sendStrategy,\n endpointUrl,\n reportError\n )\n }\n}\n\nfunction shouldRetryRequest(response) {\n return (\n response.type !== 'opaque' &&\n ((response.status === 0 && !navigator.onLine) ||\n response.status === 408 ||\n response.status === 429 ||\n response.status >= 500)\n )\n}\nexport function newRetryState() {\n return {\n transportStatus: TransportStatus.UP,\n lastFailureStatus: 0,\n currentBackoffTime: INITIAL_BACKOFF_TIME,\n bandwidthMonitor: newBandwidthMonitor(),\n queuedPayloads: newPayloadQueue(),\n queueFullReported: false\n }\n}\n\nfunction newPayloadQueue() {\n var queue = []\n return {\n bytesCount: 0,\n enqueue: function (payload) {\n if (this.isFull()) {\n return\n }\n queue.push(payload)\n this.bytesCount += payload.bytesCount\n },\n first: function () {\n return queue[0]\n },\n dequeue: function () {\n var payload = queue.shift()\n if (payload) {\n this.bytesCount -= payload.bytesCount\n }\n return payload\n },\n size: function () {\n return queue.length\n },\n isFull: function () {\n return this.bytesCount >= MAX_QUEUE_BYTES_COUNT\n }\n }\n}\n\nfunction newBandwidthMonitor() {\n return {\n ongoingRequestCount: 0,\n ongoingByteCount: 0,\n canHandle: function (payload) {\n return (\n this.ongoingRequestCount === 0 ||\n (this.ongoingByteCount + payload.bytesCount <=\n MAX_ONGOING_BYTES_COUNT &&\n this.ongoingRequestCount < MAX_ONGOING_REQUESTS)\n )\n },\n add: function (payload) {\n this.ongoingRequestCount += 1\n this.ongoingByteCount += payload.bytesCount\n },\n remove: function (payload) {\n this.ongoingRequestCount -= 1\n this.ongoingByteCount -= payload.bytesCount\n }\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS,EAAEC,UAAU,QAAQ,iBAAiB;AACvD,SAASC,aAAa,EAAEC,aAAa,QAAQ,qBAAqB;AAClE,SAASC,WAAW,QAAQ,sBAAsB;AAClD,SAASC,UAAU,QAAQ,iBAAiB;AAC5C,OAAO,IAAIC,uBAAuB,GAAG,EAAE,GAAGH,aAAa;AACvD,OAAO,IAAII,oBAAoB,GAAG,EAAE;AACpC,OAAO,IAAIC,qBAAqB,GAAG,CAAC,GAAGN,aAAa;AACpD,OAAO,IAAIO,gBAAgB,GAAG,GAAG,GAAGR,UAAU;AAC9C,OAAO,IAAIS,oBAAoB,GAAGT,UAAU;AAE5C,IAAIU,eAAe,GAAG;EACpBC,EAAE,EAAE,CAAC;EACLC,gBAAgB,EAAE,CAAC;EACnBC,IAAI,EAAE;AACR,CAAC;AAED,IAAIC,WAAW,GAAG;EAChBC,aAAa,EAAE,CAAC;EAChBC,YAAY,EAAE;AAChB,CAAC;AAED,OAAO,SAASC,qBAAqBA,CACnCC,OAAO,EACPC,KAAK,EACLC,YAAY,EACZC,WAAW,EACXC,WAAW,EACX;EACA,IACEH,KAAK,CAACI,eAAe,KAAKb,eAAe,CAACC,EAAE,IAC5CQ,KAAK,CAACK,cAAc,CAACC,IAAI,CAAC,CAAC,KAAK,CAAC,IACjCN,KAAK,CAACO,gBAAgB,CAACC,SAAS,CAACT,OAAO,CAAC,EACzC;IACAU,IAAI,CAACV,OAAO,EAAEC,KAAK,EAAEC,YAAY,EAAE;MACjCS,SAAS,EAAE,SAAAA,UAAA,EAAY;QACrB,OAAOC,mBAAmB,CACxBhB,WAAW,CAACC,aAAa,EACzBI,KAAK,EACLC,YAAY,EACZC,WAAW,EACXC,WACF,CAAC;MACH,CAAC;MACDS,SAAS,EAAE,SAAAA,UAAA,EAAY;QACrBZ,KAAK,CAACK,cAAc,CAACQ,OAAO,CAACd,OAAO,CAAC;QACrCe,aAAa,CAACd,KAAK,EAAEC,YAAY,EAAEC,WAAW,EAAEC,WAAW,CAAC;MAC9D;IACF,CAAC,CAAC;EACJ,CAAC,MAAM;IACLH,KAAK,CAACK,cAAc,CAACQ,OAAO,CAACd,OAAO,CAAC;EACvC;AACF;AAEA,SAASe,aAAaA,CAACd,KAAK,EAAEC,YAAY,EAAEC,WAAW,EAAEC,WAAW,EAAE;EACpE,IAAIH,KAAK,CAACI,eAAe,KAAKb,eAAe,CAACG,IAAI,EAAE;IAClD;EACF;EACAT,UAAU,CAAC,YAAY;IACrB,IAAIc,OAAO,GAAGC,KAAK,CAACK,cAAc,CAACU,KAAK,CAAC,CAAC;IAC1CN,IAAI,CAACV,OAAO,EAAEC,KAAK,EAAEC,YAAY,EAAE;MACjCS,SAAS,EAAE,SAAAA,UAAA,EAAY;QACrBV,KAAK,CAACK,cAAc,CAACW,OAAO,CAAC,CAAC;QAE9BhB,KAAK,CAACiB,kBAAkB,GAAG3B,oBAAoB;QAC/CqB,mBAAmB,CACjBhB,WAAW,CAACE,YAAY,EACxBG,KAAK,EACLC,YAAY,EACZC,WAAW,EACXC,WACF,CAAC;MACH,CAAC;MACDS,SAAS,EAAE,SAAAA,UAAA,EAAY;QACrBZ,KAAK,CAACiB,kBAAkB,GAAGC,IAAI,CAACC,GAAG,CACjC9B,gBAAgB,EAChBW,KAAK,CAACiB,kBAAkB,GAAG,CAC7B,CAAC;QACDH,aAAa,CAACd,KAAK,EAAEC,YAAY,EAAEC,WAAW,EAAEC,WAAW,CAAC;MAC9D;IACF,CAAC,CAAC;EACJ,CAAC,EAAEH,KAAK,CAACiB,kBAAkB,CAAC;AAC9B;AAEA,SAASR,IAAIA,CAACV,OAAO,EAAEC,KAAK,EAAEC,YAAY,EAAEmB,YAAY,EAAE;EACxD,IAAIV,SAAS,GAAGU,YAAY,CAACV,SAAS;EACtC,IAAIE,SAAS,GAAGQ,YAAY,CAACR,SAAS;EACtCZ,KAAK,CAACO,gBAAgB,CAACc,GAAG,CAACtB,OAAO,CAAC;EACnCE,YAAY,CAACF,OAAO,EAAE,UAAUuB,QAAQ,EAAE;IACxCtB,KAAK,CAACO,gBAAgB,CAACgB,MAAM,CAACxB,OAAO,CAAC;IACtC,IAAI,CAACyB,kBAAkB,CAACF,QAAQ,CAAC,EAAE;MACjCtB,KAAK,CAACI,eAAe,GAAGb,eAAe,CAACC,EAAE;MAC1CkB,SAAS,CAAC,CAAC;IACb,CAAC,MAAM;MACL;MACAV,KAAK,CAACI,eAAe,GACnBJ,KAAK,CAACO,gBAAgB,CAACkB,mBAAmB,GAAG,CAAC,GAC1ClC,eAAe,CAACE,gBAAgB,GAChCF,eAAe,CAACG,IAAI;MAC1BM,KAAK,CAAC0B,iBAAiB,GAAGJ,QAAQ,CAACK,MAAM;MACzCf,SAAS,CAAC,CAAC;IACb;EACF,CAAC,CAAC;AACJ;AAEA,SAASD,mBAAmBA,CAC1BiB,MAAM,EACN5B,KAAK,EACLC,YAAY,EACZC,WAAW,EACXC,WAAW,EACX;EACA,IACEyB,MAAM,KAAKjC,WAAW,CAACC,aAAa,IACpCI,KAAK,CAACK,cAAc,CAACwB,MAAM,CAAC,CAAC,IAC7B,CAAC7B,KAAK,CAAC8B,iBAAiB,EACxB;IACA3B,WAAW,CAAC;MACV4B,OAAO,EACL,cAAc,GACd7B,WAAW,GACX,kCAAkC,GAClCd,qBAAqB,GAAGN,aAAa,GACrC,KAAK;MACPkD,MAAM,EAAEhD,WAAW,CAACiD,KAAK;MACzBC,WAAW,EAAEtD,SAAS,CAAC;IACzB,CAAC,CAAC;IACFoB,KAAK,CAAC8B,iBAAiB,GAAG,IAAI;EAChC;EACA,IAAIK,aAAa,GAAGnC,KAAK,CAACK,cAAc;EACxCL,KAAK,CAACK,cAAc,GAAG+B,eAAe,CAAC,CAAC;EACxC,OAAOD,aAAa,CAAC7B,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE;IAC/BR,qBAAqB,CACnBqC,aAAa,CAACnB,OAAO,CAAC,CAAC,EACvBhB,KAAK,EACLC,YAAY,EACZC,WAAW,EACXC,WACF,CAAC;EACH;AACF;AAEA,SAASqB,kBAAkBA,CAACF,QAAQ,EAAE;EACpC,OACEA,QAAQ,CAACe,IAAI,KAAK,QAAQ,KACxBf,QAAQ,CAACK,MAAM,KAAK,CAAC,IAAI,CAACW,SAAS,CAACC,MAAM,IAC1CjB,QAAQ,CAACK,MAAM,KAAK,GAAG,IACvBL,QAAQ,CAACK,MAAM,KAAK,GAAG,IACvBL,QAAQ,CAACK,MAAM,IAAI,GAAG,CAAC;AAE7B;AACA,OAAO,SAASa,aAAaA,CAAA,EAAG;EAC9B,OAAO;IACLpC,eAAe,EAAEb,eAAe,CAACC,EAAE;IACnCkC,iBAAiB,EAAE,CAAC;IACpBT,kBAAkB,EAAE3B,oBAAoB;IACxCiB,gBAAgB,EAAEkC,mBAAmB,CAAC,CAAC;IACvCpC,cAAc,EAAE+B,eAAe,CAAC,CAAC;IACjCN,iBAAiB,EAAE;EACrB,CAAC;AACH;AAEA,SAASM,eAAeA,CAAA,EAAG;EACzB,IAAIM,KAAK,GAAG,EAAE;EACd,OAAO;IACLC,UAAU,EAAE,CAAC;IACb9B,OAAO,EAAE,SAAAA,QAAUd,OAAO,EAAE;MAC1B,IAAI,IAAI,CAAC8B,MAAM,CAAC,CAAC,EAAE;QACjB;MACF;MACAa,KAAK,CAACE,IAAI,CAAC7C,OAAO,CAAC;MACnB,IAAI,CAAC4C,UAAU,IAAI5C,OAAO,CAAC4C,UAAU;IACvC,CAAC;IACD5B,KAAK,EAAE,SAAAA,MAAA,EAAY;MACjB,OAAO2B,KAAK,CAAC,CAAC,CAAC;IACjB,CAAC;IACD1B,OAAO,EAAE,SAAAA,QAAA,EAAY;MACnB,IAAIjB,OAAO,GAAG2C,KAAK,CAACG,KAAK,CAAC,CAAC;MAC3B,IAAI9C,OAAO,EAAE;QACX,IAAI,CAAC4C,UAAU,IAAI5C,OAAO,CAAC4C,UAAU;MACvC;MACA,OAAO5C,OAAO;IAChB,CAAC;IACDO,IAAI,EAAE,SAAAA,KAAA,EAAY;MAChB,OAAOoC,KAAK,CAACI,MAAM;IACrB,CAAC;IACDjB,MAAM,EAAE,SAAAA,OAAA,EAAY;MAClB,OAAO,IAAI,CAACc,UAAU,IAAIvD,qBAAqB;IACjD;EACF,CAAC;AACH;AAEA,SAASqD,mBAAmBA,CAAA,EAAG;EAC7B,OAAO;IACLhB,mBAAmB,EAAE,CAAC;IACtBsB,gBAAgB,EAAE,CAAC;IACnBvC,SAAS,EAAE,SAAAA,UAAUT,OAAO,EAAE;MAC5B,OACE,IAAI,CAAC0B,mBAAmB,KAAK,CAAC,IAC7B,IAAI,CAACsB,gBAAgB,GAAGhD,OAAO,CAAC4C,UAAU,IACzCzD,uBAAuB,IACvB,IAAI,CAACuC,mBAAmB,GAAGtC,oBAAqB;IAEtD,CAAC;IACDkC,GAAG,EAAE,SAAAA,IAAUtB,OAAO,EAAE;MACtB,IAAI,CAAC0B,mBAAmB,IAAI,CAAC;MAC7B,IAAI,CAACsB,gBAAgB,IAAIhD,OAAO,CAAC4C,UAAU;IAC7C,CAAC;IACDpB,MAAM,EAAE,SAAAA,OAAUxB,OAAO,EAAE;MACzB,IAAI,CAAC0B,mBAAmB,IAAI,CAAC;MAC7B,IAAI,CAACsB,gBAAgB,IAAIhD,OAAO,CAAC4C,UAAU;IAC7C;EACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"startBatchWithReplica.js","names":["Batch","createHttpRequest","createFlushController","startBatchWithReplica","configuration","endpointUrl","reportError","pageExitObservable","sessionExpireObservable","primaryBatch","createBatch","batchBytesLimit","sendContentTypeByJson","messagesLimit","batchMessagesLimit","bytesLimit","durationLimit","flushTimeout","messageBytesLimit","add","message"],"sources":["../../src/transport/startBatchWithReplica.js"],"sourcesContent":["import { Batch } from './batch'\nimport { createHttpRequest } from './httpRequest'\nimport { createFlushController } from './flushController'\nexport function startBatchWithReplica(\n configuration,\n endpointUrl,\n reportError,\n pageExitObservable,\n sessionExpireObservable\n) {\n var primaryBatch = createBatch(endpointUrl)\n\n function createBatch(endpointUrl) {\n return new Batch(\n createHttpRequest(\n endpointUrl,\n configuration.batchBytesLimit,\n configuration.sendContentTypeByJson,\n reportError\n ),\n createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable\n }),\n configuration.messageBytesLimit,\n configuration.sendContentTypeByJson\n )\n }\n\n return {\n add: function (message) {\n primaryBatch.add(message)\n }\n }\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,SAAS;AAC/B,SAASC,iBAAiB,QAAQ,eAAe;AACjD,SAASC,qBAAqB,QAAQ,mBAAmB;AACzD,OAAO,SAASC,qBAAqBA,CACnCC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,kBAAkB,EAClBC,uBAAuB,EACvB;EACA,IAAIC,YAAY,GAAGC,WAAW,CAACL,WAAW,CAAC;EAE3C,SAASK,WAAWA,CAACL,WAAW,EAAE;IAChC,OAAO,IAAIL,KAAK,CACdC,iBAAiB,CACfI,WAAW,EACXD,aAAa,CAACO,eAAe,EAC7BP,aAAa,CAACQ,qBAAqB,EACnCN,WACF,CAAC,EACDJ,qBAAqB,CAAC;MACpBW,aAAa,EAAET,aAAa,CAACU,kBAAkB;MAC/CC,UAAU,EAAEX,aAAa,CAACO,eAAe;MACzCK,aAAa,EAAEZ,aAAa,CAACa,YAAY;MACzCV,kBAAkB,EAAEA,kBAAkB;MACtCC,uBAAuB,EAAEA;IAC3B,CAAC,CAAC,EACFJ,aAAa,CAACc,iBAAiB,EAC/Bd,aAAa,CAACQ,qBAChB,CAAC;EACH;EAEA,OAAO;IACLO,GAAG,EAAE,SAAAA,IAAUC,OAAO,EAAE;MACtBX,YAAY,CAACU,GAAG,CAACC,OAAO,CAAC;IAC3B;EACF,CAAC;AACH"}
|
|
1
|
+
{"version":3,"file":"startBatchWithReplica.js","names":["Batch","createHttpRequest","createFlushController","startBatchWithReplica","configuration","endpointUrl","reportError","pageExitObservable","sessionExpireObservable","primaryBatch","createBatch","batchBytesLimit","sendContentTypeByJson","messagesLimit","batchMessagesLimit","bytesLimit","durationLimit","flushTimeout","messageBytesLimit","add","message"],"sources":["../../src/transport/startBatchWithReplica.js"],"sourcesContent":["import { Batch } from './batch'\nimport { createHttpRequest } from './httpRequest'\nimport { createFlushController } from './flushController'\nexport function startBatchWithReplica(\n configuration,\n endpointUrl,\n reportError,\n pageExitObservable,\n sessionExpireObservable\n) {\n var primaryBatch = createBatch(endpointUrl)\n\n function createBatch(endpointUrl) {\n return new Batch(\n createHttpRequest(\n endpointUrl,\n configuration.batchBytesLimit,\n configuration.sendContentTypeByJson,\n reportError\n ),\n createFlushController({\n messagesLimit: configuration.batchMessagesLimit,\n bytesLimit: configuration.batchBytesLimit,\n durationLimit: configuration.flushTimeout,\n pageExitObservable: pageExitObservable,\n sessionExpireObservable: sessionExpireObservable\n }),\n configuration.messageBytesLimit,\n configuration.sendContentTypeByJson\n )\n }\n\n return {\n add: function (message) {\n primaryBatch.add(message)\n }\n }\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,SAAS;AAC/B,SAASC,iBAAiB,QAAQ,eAAe;AACjD,SAASC,qBAAqB,QAAQ,mBAAmB;AACzD,OAAO,SAASC,qBAAqBA,CACnCC,aAAa,EACbC,WAAW,EACXC,WAAW,EACXC,kBAAkB,EAClBC,uBAAuB,EACvB;EACA,IAAIC,YAAY,GAAGC,WAAW,CAACL,WAAW,CAAC;EAE3C,SAASK,WAAWA,CAACL,WAAW,EAAE;IAChC,OAAO,IAAIL,KAAK,CACdC,iBAAiB,CACfI,WAAW,EACXD,aAAa,CAACO,eAAe,EAC7BP,aAAa,CAACQ,qBAAqB,EACnCN,WACF,CAAC,EACDJ,qBAAqB,CAAC;MACpBW,aAAa,EAAET,aAAa,CAACU,kBAAkB;MAC/CC,UAAU,EAAEX,aAAa,CAACO,eAAe;MACzCK,aAAa,EAAEZ,aAAa,CAACa,YAAY;MACzCV,kBAAkB,EAAEA,kBAAkB;MACtCC,uBAAuB,EAAEA;IAC3B,CAAC,CAAC,EACFJ,aAAa,CAACc,iBAAiB,EAC/Bd,aAAa,CAACQ,qBAChB,CAAC;EACH;EAEA,OAAO;IACLO,GAAG,EAAE,SAAAA,IAAUC,OAAO,EAAE;MACtBX,YAAY,CAACU,GAAG,CAACC,OAAO,CAAC;IAC3B;EACF,CAAC;AACH","ignoreList":[]}
|
package/esm/user/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../../src/user/index.js"],"sourcesContent":["export * from './user'\n"],"mappings":"AAAA,cAAc,QAAQ"}
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../../src/user/index.js"],"sourcesContent":["export * from './user'\n"],"mappings":"AAAA,cAAc,QAAQ","ignoreList":[]}
|
package/esm/user/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","names":["display","assign","getType","each","sanitizeUser","newUser","user","keys","key","String","checkUser","isValid","error"],"sources":["../../src/user/user.js"],"sourcesContent":["import { display } from '../helper/display'\nimport { assign, getType, each } from '../helper/tools'\n\n/**\n * Clone input data and ensure known user properties (id, name, email)\n * are strings, as defined here:\n */\nexport function sanitizeUser(newUser) {\n // We shallow clone only to prevent mutation of user data.\n var user = assign({}, newUser)\n var keys = ['id', 'name', 'email']\n each(keys, function (key) {\n if (key in user) {\n user[key] = String(user[key])\n }\n })\n\n return user\n}\n\n/**\n * Simple check to ensure user is valid\n */\nexport function checkUser(newUser) {\n var isValid = getType(newUser) === 'object'\n if (!isValid) {\n display.error('Unsupported user:', newUser)\n }\n return isValid\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,mBAAmB;AAC3C,SAASC,MAAM,EAAEC,OAAO,EAAEC,IAAI,QAAQ,iBAAiB;;AAEvD;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAACC,OAAO,EAAE;EACpC;EACA,IAAIC,IAAI,GAAGL,MAAM,CAAC,CAAC,CAAC,EAAEI,OAAO,CAAC;EAC9B,IAAIE,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;EAClCJ,IAAI,CAACI,IAAI,EAAE,UAAUC,GAAG,EAAE;IACxB,IAAIA,GAAG,IAAIF,IAAI,EAAE;MACfA,IAAI,CAACE,GAAG,CAAC,GAAGC,MAAM,CAACH,IAAI,CAACE,GAAG,CAAC,CAAC;IAC/B;EACF,CAAC,CAAC;EAEF,OAAOF,IAAI;AACb;;AAEA;AACA;AACA;AACA,OAAO,SAASI,SAASA,CAACL,OAAO,EAAE;EACjC,IAAIM,OAAO,GAAGT,OAAO,CAACG,OAAO,CAAC,KAAK,QAAQ;EAC3C,IAAI,CAACM,OAAO,EAAE;IACZX,OAAO,CAACY,KAAK,CAAC,mBAAmB,EAAEP,OAAO,CAAC;EAC7C;EACA,OAAOM,OAAO;AAChB"}
|
|
1
|
+
{"version":3,"file":"user.js","names":["display","assign","getType","each","sanitizeUser","newUser","user","keys","key","String","checkUser","isValid","error"],"sources":["../../src/user/user.js"],"sourcesContent":["import { display } from '../helper/display'\nimport { assign, getType, each } from '../helper/tools'\n\n/**\n * Clone input data and ensure known user properties (id, name, email)\n * are strings, as defined here:\n */\nexport function sanitizeUser(newUser) {\n // We shallow clone only to prevent mutation of user data.\n var user = assign({}, newUser)\n var keys = ['id', 'name', 'email']\n each(keys, function (key) {\n if (key in user) {\n user[key] = String(user[key])\n }\n })\n\n return user\n}\n\n/**\n * Simple check to ensure user is valid\n */\nexport function checkUser(newUser) {\n var isValid = getType(newUser) === 'object'\n if (!isValid) {\n display.error('Unsupported user:', newUser)\n }\n return isValid\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,mBAAmB;AAC3C,SAASC,MAAM,EAAEC,OAAO,EAAEC,IAAI,QAAQ,iBAAiB;;AAEvD;AACA;AACA;AACA;AACA,OAAO,SAASC,YAAYA,CAACC,OAAO,EAAE;EACpC;EACA,IAAIC,IAAI,GAAGL,MAAM,CAAC,CAAC,CAAC,EAAEI,OAAO,CAAC;EAC9B,IAAIE,IAAI,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC;EAClCJ,IAAI,CAACI,IAAI,EAAE,UAAUC,GAAG,EAAE;IACxB,IAAIA,GAAG,IAAIF,IAAI,EAAE;MACfA,IAAI,CAACE,GAAG,CAAC,GAAGC,MAAM,CAACH,IAAI,CAACE,GAAG,CAAC,CAAC;IAC/B;EACF,CAAC,CAAC;EAEF,OAAOF,IAAI;AACb;;AAEA;AACA;AACA;AACA,OAAO,SAASI,SAASA,CAACL,OAAO,EAAE;EACjC,IAAIM,OAAO,GAAGT,OAAO,CAACG,OAAO,CAAC,KAAK,QAAQ;EAC3C,IAAI,CAACM,OAAO,EAAE;IACZX,OAAO,CAACY,KAAK,CAAC,mBAAmB,EAAEP,OAAO,CAAC;EAC7C;EACA,OAAOM,OAAO;AAChB","ignoreList":[]}
|
package/esm/worker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worker.js","names":["concatBuffers"],"sources":["../src/worker.js"],"sourcesContent":["export { concatBuffers } from './helper/byteUtils'\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,oBAAoB"}
|
|
1
|
+
{"version":3,"file":"worker.js","names":["concatBuffers"],"sources":["../src/worker.js"],"sourcesContent":["export { concatBuffers } from './helper/byteUtils'\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,oBAAoB","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcare/browser-core",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.12",
|
|
4
4
|
"main": "cjs/index.js",
|
|
5
5
|
"module": "esm/index.js",
|
|
6
6
|
"types": "types/index.d.ts",
|
|
@@ -22,5 +22,5 @@
|
|
|
22
22
|
"author": "dataflux",
|
|
23
23
|
"license": "MIT",
|
|
24
24
|
"description": "DataFlux RUM Web 端数据指标监控",
|
|
25
|
-
"gitHead": "
|
|
25
|
+
"gitHead": "01fca1d8b95bbd1e8e7936bda860af98bf76fa02"
|
|
26
26
|
}
|
package/src/browser/cookie.js
CHANGED
|
@@ -13,6 +13,7 @@ export function setCookie(name, value, expireDelay, options) {
|
|
|
13
13
|
var sameSite = options && options.crossSite ? 'none' : 'strict'
|
|
14
14
|
var domain = options && options.domain ? ';domain=' + options.domain : ''
|
|
15
15
|
var secure = options && options.secure ? ';secure' : ''
|
|
16
|
+
var partitioned = options && options.partitioned ? ';partitioned' : ''
|
|
16
17
|
document.cookie =
|
|
17
18
|
name +
|
|
18
19
|
'=' +
|
|
@@ -22,7 +23,8 @@ export function setCookie(name, value, expireDelay, options) {
|
|
|
22
23
|
';path=/;samesite=' +
|
|
23
24
|
sameSite +
|
|
24
25
|
domain +
|
|
25
|
-
secure
|
|
26
|
+
secure +
|
|
27
|
+
partitioned
|
|
26
28
|
}
|
|
27
29
|
|
|
28
30
|
export function getCookie(name) {
|
|
@@ -29,7 +29,13 @@ export function hasChildNodes(node) {
|
|
|
29
29
|
// return isNodeShadowHost(node) ? node.shadowRoot.childNodes : node.childNodes
|
|
30
30
|
// }
|
|
31
31
|
export function forEachChildNodes(node, callback) {
|
|
32
|
-
node.childNodes.forEach(callback)
|
|
32
|
+
// node.childNodes.forEach(callback)
|
|
33
|
+
var child = node.firstChild
|
|
34
|
+
|
|
35
|
+
while (child) {
|
|
36
|
+
callback(child)
|
|
37
|
+
child = child.nextSibling
|
|
38
|
+
}
|
|
33
39
|
if (isNodeShadowHost(node)) {
|
|
34
40
|
callback(node.shadowRoot)
|
|
35
41
|
}
|
|
@@ -119,9 +119,17 @@ export function validatePostRequestRequireParamsConfiguration(
|
|
|
119
119
|
export function buildCookieOptions(initConfiguration) {
|
|
120
120
|
var cookieOptions = {}
|
|
121
121
|
|
|
122
|
-
cookieOptions.secure = mustUseSecureCookie(initConfiguration)
|
|
123
|
-
cookieOptions.crossSite = !!initConfiguration.useCrossSiteSessionCookie
|
|
124
|
-
|
|
122
|
+
// cookieOptions.secure = mustUseSecureCookie(initConfiguration)
|
|
123
|
+
// cookieOptions.crossSite = !!initConfiguration.useCrossSiteSessionCookie
|
|
124
|
+
cookieOptions.secure =
|
|
125
|
+
!!initConfiguration.useSecureSessionCookie ||
|
|
126
|
+
!!initConfiguration.usePartitionedCrossSiteSessionCookie ||
|
|
127
|
+
!!initConfiguration.useCrossSiteSessionCookie
|
|
128
|
+
cookieOptions.crossSite =
|
|
129
|
+
!!initConfiguration.usePartitionedCrossSiteSessionCookie ||
|
|
130
|
+
!!initConfiguration.useCrossSiteSessionCookie
|
|
131
|
+
cookieOptions.partitioned =
|
|
132
|
+
!!initConfiguration.usePartitionedCrossSiteSessionCookie
|
|
125
133
|
if (initConfiguration.trackSessionAcrossSubdomains) {
|
|
126
134
|
cookieOptions.domain = getCurrentSite()
|
|
127
135
|
}
|
|
@@ -129,9 +137,9 @@ export function buildCookieOptions(initConfiguration) {
|
|
|
129
137
|
return cookieOptions
|
|
130
138
|
}
|
|
131
139
|
|
|
132
|
-
function mustUseSecureCookie(initConfiguration) {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
}
|
|
140
|
+
// function mustUseSecureCookie(initConfiguration) {
|
|
141
|
+
// return (
|
|
142
|
+
// !!initConfiguration.useSecureSessionCookie ||
|
|
143
|
+
// !!initConfiguration.useCrossSiteSessionCookie
|
|
144
|
+
// )
|
|
145
|
+
// }
|
|
@@ -2,7 +2,8 @@ import { computeStackTrace } from '../tracekit'
|
|
|
2
2
|
import {
|
|
3
3
|
createHandlingStack,
|
|
4
4
|
formatErrorMessage,
|
|
5
|
-
toStackTraceString
|
|
5
|
+
toStackTraceString,
|
|
6
|
+
flattenErrorCauses
|
|
6
7
|
} from '../helper/errorTools'
|
|
7
8
|
import { mergeObservables, Observable } from '../helper/observable'
|
|
8
9
|
import { find, map } from '../helper/tools'
|
|
@@ -38,7 +39,6 @@ function createConsoleObservable(api) {
|
|
|
38
39
|
console[api] = originalConsoleApi
|
|
39
40
|
}
|
|
40
41
|
})
|
|
41
|
-
return observable
|
|
42
42
|
}
|
|
43
43
|
|
|
44
44
|
function buildConsoleLog(params, api, handlingStack) {
|
|
@@ -46,7 +46,7 @@ function buildConsoleLog(params, api, handlingStack) {
|
|
|
46
46
|
return formatConsoleParameters(param)
|
|
47
47
|
}).join(' ')
|
|
48
48
|
var stack
|
|
49
|
-
|
|
49
|
+
var causes
|
|
50
50
|
if (api === ConsoleApiName.error) {
|
|
51
51
|
var firstErrorParam = find(params, function (param) {
|
|
52
52
|
return param instanceof Error
|
|
@@ -55,13 +55,17 @@ function buildConsoleLog(params, api, handlingStack) {
|
|
|
55
55
|
? toStackTraceString(computeStackTrace(firstErrorParam))
|
|
56
56
|
: undefined
|
|
57
57
|
message = 'console error: ' + message
|
|
58
|
+
causes = firstErrorParam
|
|
59
|
+
? flattenErrorCauses(firstErrorParam, 'console')
|
|
60
|
+
: undefined
|
|
58
61
|
}
|
|
59
62
|
|
|
60
63
|
return {
|
|
61
64
|
api: api,
|
|
62
65
|
message: message,
|
|
63
66
|
stack: stack,
|
|
64
|
-
handlingStack: handlingStack
|
|
67
|
+
handlingStack: handlingStack,
|
|
68
|
+
causes: causes
|
|
65
69
|
}
|
|
66
70
|
}
|
|
67
71
|
|
package/src/dataMap.js
CHANGED
|
@@ -107,7 +107,9 @@ export var dataMap = {
|
|
|
107
107
|
fields: {
|
|
108
108
|
duration: 'resource.duration',
|
|
109
109
|
resource_size: 'resource.size',
|
|
110
|
-
resource_encode_size: 'resource.
|
|
110
|
+
resource_encode_size: 'resource.encoded_body_size',
|
|
111
|
+
resource_decode_size: 'resource.decoded_body_size',
|
|
112
|
+
resource_transfer_size: 'resource.transfer_size',
|
|
111
113
|
resource_render_blocking_status: 'resource.render_blocking_status',
|
|
112
114
|
resource_dns: 'resource.dns',
|
|
113
115
|
resource_tcp: 'resource.tcp',
|
|
@@ -55,12 +55,13 @@ export function instrumentSetter(object, property, after) {
|
|
|
55
55
|
) {
|
|
56
56
|
return { stop: noop }
|
|
57
57
|
}
|
|
58
|
-
|
|
59
|
-
// component, see issue RUMF-1443
|
|
58
|
+
var stoppedInstrumentation = noop
|
|
60
59
|
var instrumentation = function (thisObject, value) {
|
|
61
60
|
// put hooked setter into event loop to avoid of set latency
|
|
62
61
|
setTimeout(function () {
|
|
63
|
-
|
|
62
|
+
if (instrumentation !== stoppedInstrumentation) {
|
|
63
|
+
after(thisObject, value)
|
|
64
|
+
}
|
|
64
65
|
}, 0)
|
|
65
66
|
}
|
|
66
67
|
|
|
@@ -82,7 +83,7 @@ export function instrumentSetter(object, property, after) {
|
|
|
82
83
|
) {
|
|
83
84
|
Object.defineProperty(object, property, originalDescriptor)
|
|
84
85
|
} else {
|
|
85
|
-
instrumentation =
|
|
86
|
+
instrumentation = stoppedInstrumentation
|
|
86
87
|
}
|
|
87
88
|
}
|
|
88
89
|
}
|
package/src/helper/lifeCycle.js
CHANGED
|
@@ -2,9 +2,11 @@ import { each, filter } from './tools'
|
|
|
2
2
|
export var LifeCycleEventType = {
|
|
3
3
|
PERFORMANCE_ENTRIES_COLLECTED: 'PERFORMANCE_ENTRIES_COLLECTED',
|
|
4
4
|
AUTO_ACTION_COMPLETED: 'AUTO_ACTION_COMPLETED',
|
|
5
|
+
BEFORE_VIEW_CREATED: 'BEFORE_VIEW_CREATED',
|
|
5
6
|
VIEW_CREATED: 'VIEW_CREATED',
|
|
6
7
|
VIEW_UPDATED: 'VIEW_UPDATED',
|
|
7
8
|
VIEW_ENDED: 'VIEW_ENDED',
|
|
9
|
+
AFTER_VIEW_ENDED: 'AFTER_VIEW_ENDED',
|
|
8
10
|
SESSION_RENEWED: 'SESSION_RENEWED',
|
|
9
11
|
SESSION_EXPIRED: 'SESSION_EXPIRED',
|
|
10
12
|
PAGE_EXITED: 'PAGE_EXITED',
|
|
@@ -8,6 +8,7 @@ import { startSessionStore } from './sessionStore'
|
|
|
8
8
|
import { SESSION_TIME_OUT_DELAY } from './sessionConstants'
|
|
9
9
|
import { DOM_EVENT } from '../helper/enums'
|
|
10
10
|
import { clearInterval, setInterval } from '../helper/timer'
|
|
11
|
+
import { Observable } from '../helper/observable'
|
|
11
12
|
export var VISIBILITY_CHECK_DELAY = ONE_MINUTE
|
|
12
13
|
var SESSION_CONTEXT_TIMEOUT_DELAY = SESSION_TIME_OUT_DELAY
|
|
13
14
|
var stopCallbacks = []
|
|
@@ -17,6 +18,8 @@ export var startSessionManager = function (
|
|
|
17
18
|
productKey,
|
|
18
19
|
computeSessionState
|
|
19
20
|
) {
|
|
21
|
+
var renewObservable = new Observable()
|
|
22
|
+
var expireObservable = new Observable()
|
|
20
23
|
var sessionStore = startSessionStore(options, productKey, computeSessionState)
|
|
21
24
|
stopCallbacks.push(function () {
|
|
22
25
|
return sessionStore.stop()
|
|
@@ -29,8 +32,10 @@ export var startSessionManager = function (
|
|
|
29
32
|
|
|
30
33
|
sessionStore.renewObservable.subscribe(function () {
|
|
31
34
|
sessionContextHistory.add(buildSessionContext(), relativeNow())
|
|
35
|
+
renewObservable.notify()
|
|
32
36
|
})
|
|
33
37
|
sessionStore.expireObservable.subscribe(function () {
|
|
38
|
+
expireObservable.notify()
|
|
34
39
|
sessionContextHistory.closeActive(relativeNow())
|
|
35
40
|
})
|
|
36
41
|
|
|
@@ -55,8 +60,8 @@ export var startSessionManager = function (
|
|
|
55
60
|
findActiveSession: function (startTime) {
|
|
56
61
|
return sessionContextHistory.find(startTime)
|
|
57
62
|
},
|
|
58
|
-
renewObservable:
|
|
59
|
-
expireObservable:
|
|
63
|
+
renewObservable: renewObservable,
|
|
64
|
+
expireObservable: expireObservable,
|
|
60
65
|
expire: sessionStore.expire
|
|
61
66
|
}
|
|
62
67
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { COOKIE_ACCESS_DELAY } from '../browser/cookie'
|
|
2
2
|
import { Observable } from '../helper/observable'
|
|
3
|
-
import { dateNow, UUID, throttle } from '../helper/tools'
|
|
3
|
+
import { dateNow, UUID, throttle, ONE_SECOND } from '../helper/tools'
|
|
4
4
|
import { SESSION_TIME_OUT_DELAY } from './sessionConstants'
|
|
5
5
|
import {
|
|
6
6
|
retrieveSession,
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
} from './sessionCookieStore'
|
|
10
10
|
import { clearInterval, setInterval } from '../helper/timer'
|
|
11
11
|
|
|
12
|
+
export var STORAGE_POLL_DELAY = ONE_SECOND
|
|
12
13
|
/**
|
|
13
14
|
* Different session concepts:
|
|
14
15
|
* - tracked, the session has an id and is updated along the user navigation
|
|
@@ -19,10 +20,9 @@ export function startSessionStore(options, productKey, computeSessionState) {
|
|
|
19
20
|
var renewObservable = new Observable()
|
|
20
21
|
var expireObservable = new Observable()
|
|
21
22
|
|
|
22
|
-
var watchSessionTimeoutId = setInterval(watchSession,
|
|
23
|
+
var watchSessionTimeoutId = setInterval(watchSession, STORAGE_POLL_DELAY)
|
|
23
24
|
var sessionCache = retrieveActiveSession()
|
|
24
|
-
|
|
25
|
-
function expandOrRenewSession() {
|
|
25
|
+
var _throttleExpandOrRenewSession = throttle(function () {
|
|
26
26
|
var isTracked
|
|
27
27
|
withCookieLockAccess({
|
|
28
28
|
options: options,
|
|
@@ -38,7 +38,26 @@ export function startSessionStore(options, productKey, computeSessionState) {
|
|
|
38
38
|
sessionCache = cookieSession
|
|
39
39
|
}
|
|
40
40
|
})
|
|
41
|
-
}
|
|
41
|
+
}, STORAGE_POLL_DELAY)
|
|
42
|
+
var throttledExpandOrRenewSession = _throttleExpandOrRenewSession.throttled
|
|
43
|
+
var cancelExpandOrRenewSession = _throttleExpandOrRenewSession.cancel
|
|
44
|
+
// function expandOrRenewSession() {
|
|
45
|
+
// var isTracked
|
|
46
|
+
// withCookieLockAccess({
|
|
47
|
+
// options: options,
|
|
48
|
+
// process: function (cookieSession) {
|
|
49
|
+
// var synchronizedSession = synchronizeSession(cookieSession)
|
|
50
|
+
// isTracked = expandOrRenewCookie(synchronizedSession)
|
|
51
|
+
// return synchronizedSession
|
|
52
|
+
// },
|
|
53
|
+
// after: function (cookieSession) {
|
|
54
|
+
// if (isTracked && !hasSessionInCache()) {
|
|
55
|
+
// renewSession(cookieSession)
|
|
56
|
+
// }
|
|
57
|
+
// sessionCache = cookieSession
|
|
58
|
+
// }
|
|
59
|
+
// })
|
|
60
|
+
// }
|
|
42
61
|
|
|
43
62
|
function expandSession() {
|
|
44
63
|
withCookieLockAccess({
|
|
@@ -132,8 +151,7 @@ export function startSessionStore(options, productKey, computeSessionState) {
|
|
|
132
151
|
}
|
|
133
152
|
|
|
134
153
|
return {
|
|
135
|
-
expandOrRenewSession:
|
|
136
|
-
.throttled,
|
|
154
|
+
expandOrRenewSession: throttledExpandOrRenewSession,
|
|
137
155
|
expandSession: expandSession,
|
|
138
156
|
getSession: function () {
|
|
139
157
|
return sessionCache
|
|
@@ -141,6 +159,7 @@ export function startSessionStore(options, productKey, computeSessionState) {
|
|
|
141
159
|
renewObservable: renewObservable,
|
|
142
160
|
expireObservable: expireObservable,
|
|
143
161
|
expire: function () {
|
|
162
|
+
cancelExpandOrRenewSession()
|
|
144
163
|
clearSession(options)
|
|
145
164
|
synchronizeSession({})
|
|
146
165
|
},
|