@openobserve/browser-core 0.3.4 → 0.4.0-beta.2
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/README.md +1 -1
- package/cjs/boot/displayAlreadyInitializedError.js +6 -7
- package/cjs/boot/displayAlreadyInitializedError.js.map +1 -1
- package/cjs/boot/init.js +26 -34
- package/cjs/boot/init.js.map +1 -1
- package/cjs/browser/addEventListener.d.ts +10 -8
- package/cjs/browser/addEventListener.js +107 -50
- package/cjs/browser/addEventListener.js.map +1 -1
- package/cjs/browser/browser.types.d.ts +91 -4
- package/cjs/browser/cookie.d.ts +0 -1
- package/cjs/browser/cookie.js +65 -92
- package/cjs/browser/cookie.js.map +1 -1
- package/cjs/browser/cookieAccess.d.ts +16 -0
- package/cjs/browser/cookieAccess.js +114 -0
- package/cjs/browser/cookieAccess.js.map +1 -0
- package/cjs/browser/fetch.d.ts +9 -0
- package/cjs/browser/fetch.js +18 -0
- package/cjs/browser/fetch.js.map +1 -0
- package/cjs/browser/fetchObservable.d.ts +3 -3
- package/cjs/browser/fetchObservable.js +80 -92
- package/cjs/browser/fetchObservable.js.map +1 -1
- package/cjs/browser/pageMayExitObservable.d.ts +1 -2
- package/cjs/browser/pageMayExitObservable.js +41 -40
- package/cjs/browser/pageMayExitObservable.js.map +1 -1
- package/cjs/browser/runOnReadyState.d.ts +2 -3
- package/cjs/browser/runOnReadyState.js +18 -17
- package/cjs/browser/runOnReadyState.js.map +1 -1
- package/cjs/browser/xhrObservable.d.ts +8 -3
- package/cjs/browser/xhrObservable.js +65 -77
- package/cjs/browser/xhrObservable.js.map +1 -1
- package/cjs/domain/allowedTrackingOrigins.d.ts +1 -1
- package/cjs/domain/allowedTrackingOrigins.js +25 -23
- package/cjs/domain/allowedTrackingOrigins.js.map +1 -1
- package/cjs/domain/bufferedData.d.ts +20 -6
- package/cjs/domain/bufferedData.js +41 -19
- package/cjs/domain/bufferedData.js.map +1 -1
- package/cjs/domain/configuration/configuration.d.ts +44 -43
- package/cjs/domain/configuration/configuration.js +122 -125
- package/cjs/domain/configuration/configuration.js.map +1 -1
- package/cjs/domain/configuration/endpointBuilder.d.ts +42 -7
- package/cjs/domain/configuration/endpointBuilder.js +67 -74
- package/cjs/domain/configuration/endpointBuilder.js.map +1 -1
- package/cjs/domain/configuration/index.d.ts +2 -3
- package/cjs/domain/connectivity/connectivity.d.ts +1 -7
- package/cjs/domain/connectivity/connectivity.js +11 -11
- package/cjs/domain/connectivity/connectivity.js.map +1 -1
- package/cjs/domain/console/consoleObservable.d.ts +1 -1
- package/cjs/domain/console/consoleObservable.js +59 -74
- package/cjs/domain/console/consoleObservable.js.map +1 -1
- package/cjs/domain/context/contextConstants.js +24 -15
- package/cjs/domain/context/contextConstants.js.map +1 -1
- package/cjs/domain/context/contextManager.js +49 -54
- package/cjs/domain/context/contextManager.js.map +1 -1
- package/cjs/domain/context/contextUtils.js +11 -12
- package/cjs/domain/context/contextUtils.js.map +1 -1
- package/cjs/domain/context/defineContextMethod.d.ts +2 -2
- package/cjs/domain/context/defineContextMethod.js +15 -16
- package/cjs/domain/context/defineContextMethod.js.map +1 -1
- package/cjs/domain/context/storeContextManager.d.ts +1 -2
- package/cjs/domain/context/storeContextManager.js +30 -33
- package/cjs/domain/context/storeContextManager.js.map +1 -1
- package/cjs/domain/contexts/accountContext.d.ts +2 -2
- package/cjs/domain/contexts/accountContext.js +26 -29
- package/cjs/domain/contexts/accountContext.js.map +1 -1
- package/cjs/domain/contexts/globalContext.d.ts +2 -2
- package/cjs/domain/contexts/globalContext.js +17 -17
- package/cjs/domain/contexts/globalContext.js.map +1 -1
- package/cjs/domain/contexts/tabContext.d.ts +4 -0
- package/cjs/domain/contexts/tabContext.js +27 -0
- package/cjs/domain/contexts/tabContext.js.map +1 -0
- package/cjs/domain/contexts/telemetrySessionContext.d.ts +4 -0
- package/cjs/domain/contexts/telemetrySessionContext.js +17 -0
- package/cjs/domain/contexts/telemetrySessionContext.js.map +1 -0
- package/cjs/domain/contexts/userContext.d.ts +8 -3
- package/cjs/domain/contexts/userContext.js +29 -41
- package/cjs/domain/contexts/userContext.js.map +1 -1
- package/cjs/domain/deflate/deflate.types.js +11 -2
- package/cjs/domain/deflate/deflate.types.js.map +1 -1
- package/cjs/domain/error/error.d.ts +1 -1
- package/cjs/domain/error/error.js +62 -60
- package/cjs/domain/error/error.js.map +1 -1
- package/cjs/domain/error/error.types.d.ts +1 -1
- package/cjs/domain/error/error.types.js +24 -11
- package/cjs/domain/error/error.types.js.map +1 -1
- package/cjs/domain/error/trackRuntimeError.d.ts +3 -2
- package/cjs/domain/error/trackRuntimeError.js +41 -41
- package/cjs/domain/error/trackRuntimeError.js.map +1 -1
- package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +33 -38
- package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -1
- package/cjs/domain/extension/extensionUtils.js +18 -25
- package/cjs/domain/extension/extensionUtils.js.map +1 -1
- package/cjs/domain/intakeSites.d.ts +3 -3
- package/cjs/domain/intakeSites.js +23 -10
- package/cjs/domain/intakeSites.js.map +1 -1
- package/cjs/domain/report/reportObservable.d.ts +1 -2
- package/cjs/domain/report/reportObservable.js +73 -85
- package/cjs/domain/report/reportObservable.js.map +1 -1
- package/cjs/domain/resourceUtils.js +19 -17
- package/cjs/domain/resourceUtils.js.map +1 -1
- package/cjs/domain/sampler.d.ts +11 -0
- package/cjs/domain/sampler.js +40 -0
- package/cjs/domain/sampler.js.map +1 -0
- package/cjs/domain/session/sessionConstants.d.ts +1 -0
- package/cjs/domain/session/sessionConstants.js +19 -13
- package/cjs/domain/session/sessionConstants.js.map +1 -1
- package/cjs/domain/session/sessionManager.d.ts +13 -13
- package/cjs/domain/session/sessionManager.js +219 -193
- package/cjs/domain/session/sessionManager.js.map +1 -1
- package/cjs/domain/session/sessionState.d.ts +10 -1
- package/cjs/domain/session/sessionState.js +70 -55
- package/cjs/domain/session/sessionState.js.map +1 -1
- package/cjs/domain/session/sessionStateValidation.js +7 -8
- package/cjs/domain/session/sessionStateValidation.js.map +1 -1
- package/cjs/domain/session/sessionStore.d.ts +4 -33
- package/cjs/domain/session/sessionStore.js +42 -180
- package/cjs/domain/session/sessionStore.js.map +1 -1
- package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +7 -11
- package/cjs/domain/session/storeStrategies/sessionInCookie.js +89 -95
- package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +1 -1
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +1 -4
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +39 -38
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -1
- package/cjs/domain/session/storeStrategies/sessionInMemory.d.ts +12 -0
- package/cjs/domain/session/storeStrategies/sessionInMemory.js +35 -0
- package/cjs/domain/session/storeStrategies/sessionInMemory.js.map +1 -0
- package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -7
- package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +7 -4
- package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -1
- package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +9 -3
- package/cjs/domain/synthetics/syntheticsWorkerValues.js +33 -25
- package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +1 -1
- package/cjs/domain/tags.d.ts +0 -1
- package/cjs/domain/tags.js +22 -58
- package/cjs/domain/tags.js.map +1 -1
- package/cjs/domain/telemetry/rawTelemetryEvent.types.js +8 -7
- package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +1 -1
- package/cjs/domain/telemetry/telemetry.d.ts +8 -8
- package/cjs/domain/telemetry/telemetry.js +196 -211
- package/cjs/domain/telemetry/telemetry.js.map +1 -1
- package/cjs/domain/telemetry/telemetryEvent.types.d.ts +97 -17
- package/cjs/domain/trackingConsent.d.ts +1 -0
- package/cjs/domain/trackingConsent.js +35 -24
- package/cjs/domain/trackingConsent.js.map +1 -1
- package/cjs/index.d.ts +25 -22
- package/cjs/index.js +281 -194
- package/cjs/tools/abstractLifeCycle.js +19 -26
- package/cjs/tools/abstractLifeCycle.js.map +1 -1
- package/cjs/tools/catchUserErrors.js +12 -12
- package/cjs/tools/catchUserErrors.js.map +1 -1
- package/cjs/tools/display.d.ts +1 -35
- package/cjs/tools/display.js +11 -43
- package/cjs/tools/display.js.map +1 -1
- package/cjs/tools/encoder.js +36 -37
- package/cjs/tools/encoder.js.map +1 -1
- package/cjs/tools/experimentalFeatures.d.ts +1 -4
- package/cjs/tools/experimentalFeatures.js +29 -40
- package/cjs/tools/experimentalFeatures.js.map +1 -1
- package/cjs/tools/getZoneJsOriginalValue.d.ts +1 -1
- package/cjs/tools/getZoneJsOriginalValue.js +22 -25
- package/cjs/tools/getZoneJsOriginalValue.js.map +1 -1
- package/cjs/tools/globalObject.d.ts +16 -15
- package/cjs/tools/globalObject.js +7 -43
- package/cjs/tools/globalObject.js.map +1 -1
- package/cjs/tools/instrumentMethod.d.ts +58 -1
- package/cjs/tools/instrumentMethod.js +174 -112
- package/cjs/tools/instrumentMethod.js.map +1 -1
- package/cjs/tools/matchOption.js +25 -29
- package/cjs/tools/matchOption.js.map +1 -1
- package/cjs/tools/mockable.d.ts +22 -0
- package/cjs/tools/mockable.js +28 -0
- package/cjs/tools/mockable.js.map +1 -0
- package/cjs/tools/monitor.d.ts +5 -7
- package/cjs/tools/monitor.js +13 -58
- package/cjs/tools/monitor.js.map +1 -1
- package/cjs/tools/observable.d.ts +3 -1
- package/cjs/tools/observable.js +75 -85
- package/cjs/tools/observable.js.map +1 -1
- package/cjs/tools/queueMicrotask.js +9 -14
- package/cjs/tools/queueMicrotask.js.map +1 -1
- package/cjs/tools/readBytesFromStream.d.ts +1 -6
- package/cjs/tools/readBytesFromStream.js +18 -25
- package/cjs/tools/readBytesFromStream.js.map +1 -1
- package/cjs/tools/requestIdleCallback.js +22 -29
- package/cjs/tools/requestIdleCallback.js.map +1 -1
- package/cjs/tools/sendToExtension.js +10 -8
- package/cjs/tools/sendToExtension.js.map +1 -1
- package/cjs/tools/serialisation/jsonStringify.js +37 -42
- package/cjs/tools/serialisation/jsonStringify.js.map +1 -1
- package/cjs/tools/serialisation/sanitize.d.ts +1 -0
- package/cjs/tools/serialisation/sanitize.js +111 -167
- package/cjs/tools/serialisation/sanitize.js.map +1 -1
- package/cjs/tools/serialisation/stringify.d.ts +2 -0
- package/cjs/tools/serialisation/stringify.js +18 -0
- package/cjs/tools/serialisation/stringify.js.map +1 -0
- package/cjs/tools/stackTrace/computeStackTrace.js +121 -159
- package/cjs/tools/stackTrace/computeStackTrace.js.map +1 -1
- package/cjs/tools/stackTrace/handlingStack.d.ts +1 -1
- package/cjs/tools/stackTrace/handlingStack.js +39 -38
- package/cjs/tools/stackTrace/handlingStack.js.map +1 -1
- package/cjs/tools/taskQueue.js +40 -49
- package/cjs/tools/taskQueue.js.map +1 -1
- package/cjs/tools/timer.d.ts +2 -1
- package/cjs/tools/timer.js +14 -13
- package/cjs/tools/timer.js.map +1 -1
- package/cjs/tools/utils/arrayUtils.d.ts +1 -0
- package/cjs/tools/utils/arrayUtils.js +17 -13
- package/cjs/tools/utils/arrayUtils.js.map +1 -1
- package/cjs/tools/utils/browserDetection.d.ts +1 -0
- package/cjs/tools/utils/browserDetection.js +25 -23
- package/cjs/tools/utils/browserDetection.js.map +1 -1
- package/cjs/tools/utils/byteUtils.js +20 -28
- package/cjs/tools/utils/byteUtils.js.map +1 -1
- package/cjs/tools/utils/functionUtils.js +33 -40
- package/cjs/tools/utils/functionUtils.js.map +1 -1
- package/cjs/tools/utils/numberUtils.js +15 -14
- package/cjs/tools/utils/numberUtils.js.map +1 -1
- package/cjs/tools/utils/objectUtils.d.ts +2 -0
- package/cjs/tools/utils/objectUtils.js +27 -14
- package/cjs/tools/utils/objectUtils.js.map +1 -1
- package/cjs/tools/utils/polyfills.js +12 -16
- package/cjs/tools/utils/polyfills.js.map +1 -1
- package/cjs/tools/utils/responseUtils.js +11 -12
- package/cjs/tools/utils/responseUtils.js.map +1 -1
- package/cjs/tools/utils/stringUtils.js +56 -77
- package/cjs/tools/utils/stringUtils.js.map +1 -1
- package/cjs/tools/utils/timezone.js +9 -10
- package/cjs/tools/utils/timezone.js.map +1 -1
- package/cjs/tools/utils/urlPolyfill.js +42 -46
- package/cjs/tools/utils/urlPolyfill.js.map +1 -1
- package/cjs/tools/valueHistory.d.ts +9 -1
- package/cjs/tools/valueHistory.js +110 -99
- package/cjs/tools/valueHistory.js.map +1 -1
- package/cjs/transport/batch.js +73 -106
- package/cjs/transport/batch.js.map +1 -1
- package/cjs/transport/eventBridge.d.ts +6 -2
- package/cjs/transport/eventBridge.js +53 -38
- package/cjs/transport/eventBridge.js.map +1 -1
- package/cjs/transport/flushController.d.ts +2 -12
- package/cjs/transport/flushController.js +98 -117
- package/cjs/transport/flushController.js.map +1 -1
- package/cjs/transport/httpRequest.d.ts +0 -1
- package/cjs/transport/httpRequest.js +51 -85
- package/cjs/transport/httpRequest.js.map +1 -1
- package/cjs/transport/index.d.ts +1 -0
- package/cjs/transport/sendWithRetryStrategy.js +133 -146
- package/cjs/transport/sendWithRetryStrategy.js.map +1 -1
- package/esm/boot/displayAlreadyInitializedError.mjs +9 -0
- package/esm/boot/displayAlreadyInitializedError.mjs.map +1 -0
- package/esm/boot/init.mjs +30 -0
- package/esm/boot/init.mjs.map +1 -0
- package/esm/browser/addEventListener.mjs +107 -0
- package/esm/browser/addEventListener.mjs.map +1 -0
- package/esm/browser/cookie.mjs +81 -0
- package/esm/browser/cookie.mjs.map +1 -0
- package/esm/browser/cookieAccess.mjs +111 -0
- package/esm/browser/cookieAccess.mjs.map +1 -0
- package/esm/browser/fetch.mjs +18 -0
- package/esm/browser/fetch.mjs.map +1 -0
- package/esm/browser/fetchObservable.mjs +90 -0
- package/esm/browser/fetchObservable.mjs.map +1 -0
- package/esm/browser/pageMayExitObservable.mjs +44 -0
- package/esm/browser/pageMayExitObservable.mjs.map +1 -0
- package/esm/browser/runOnReadyState.mjs +19 -0
- package/esm/browser/runOnReadyState.mjs.map +1 -0
- package/esm/browser/xhrObservable.mjs +74 -0
- package/esm/browser/xhrObservable.mjs.map +1 -0
- package/esm/domain/allowedTrackingOrigins.mjs +27 -0
- package/esm/domain/allowedTrackingOrigins.mjs.map +1 -0
- package/esm/domain/bufferedData.mjs +43 -0
- package/esm/domain/bufferedData.mjs.map +1 -0
- package/esm/domain/configuration/configuration.mjs +131 -0
- package/esm/domain/configuration/configuration.mjs.map +1 -0
- package/esm/domain/configuration/endpointBuilder.mjs +72 -0
- package/esm/domain/configuration/endpointBuilder.mjs.map +1 -0
- package/esm/domain/connectivity/connectivity.mjs +14 -0
- package/esm/domain/connectivity/connectivity.mjs.map +1 -0
- package/esm/domain/console/consoleObservable.mjs +69 -0
- package/esm/domain/console/consoleObservable.mjs.map +1 -0
- package/esm/domain/context/contextConstants.mjs +25 -0
- package/esm/domain/context/contextConstants.mjs.map +1 -0
- package/esm/domain/context/contextManager.mjs +55 -0
- package/esm/domain/context/contextManager.mjs.map +1 -0
- package/esm/domain/context/contextUtils.mjs +15 -0
- package/esm/domain/context/contextUtils.mjs.map +1 -0
- package/esm/domain/context/defineContextMethod.mjs +19 -0
- package/esm/domain/context/defineContextMethod.mjs.map +1 -0
- package/esm/domain/context/storeContextManager.mjs +36 -0
- package/esm/domain/context/storeContextManager.mjs.map +1 -0
- package/esm/domain/contexts/accountContext.mjs +29 -0
- package/esm/domain/contexts/accountContext.mjs.map +1 -0
- package/esm/domain/contexts/globalContext.mjs +20 -0
- package/esm/domain/contexts/globalContext.mjs.map +1 -0
- package/esm/domain/contexts/tabContext.mjs +27 -0
- package/esm/domain/contexts/tabContext.mjs.map +1 -0
- package/esm/domain/contexts/telemetrySessionContext.mjs +17 -0
- package/esm/domain/contexts/telemetrySessionContext.mjs.map +1 -0
- package/esm/domain/contexts/userContext.mjs +32 -0
- package/esm/domain/contexts/userContext.mjs.map +1 -0
- package/esm/domain/deflate/deflate.types.mjs +12 -0
- package/esm/domain/deflate/deflate.types.mjs.map +1 -0
- package/esm/domain/error/error.mjs +73 -0
- package/esm/domain/error/error.mjs.map +1 -0
- package/esm/domain/error/error.types.mjs +24 -0
- package/esm/domain/error/error.types.mjs.map +1 -0
- package/esm/domain/error/trackRuntimeError.mjs +48 -0
- package/esm/domain/error/trackRuntimeError.mjs.map +1 -0
- package/esm/domain/eventRateLimiter/createEventRateLimiter.mjs +36 -0
- package/esm/domain/eventRateLimiter/createEventRateLimiter.mjs.map +1 -0
- package/esm/domain/extension/extensionUtils.mjs +23 -0
- package/esm/domain/extension/extensionUtils.mjs.map +1 -0
- package/esm/domain/intakeSites.mjs +18 -0
- package/esm/domain/intakeSites.mjs.map +1 -0
- package/esm/domain/report/reportObservable.mjs +86 -0
- package/esm/domain/report/reportObservable.mjs.map +1 -0
- package/esm/domain/resourceUtils.mjs +21 -0
- package/esm/domain/resourceUtils.mjs.map +1 -0
- package/esm/domain/sampler.mjs +37 -0
- package/esm/domain/sampler.mjs.map +1 -0
- package/esm/domain/session/sessionConstants.mjs +18 -0
- package/esm/domain/session/sessionConstants.mjs.map +1 -0
- package/esm/domain/session/sessionManager.mjs +225 -0
- package/esm/domain/session/sessionManager.mjs.map +1 -0
- package/esm/domain/session/sessionState.mjs +76 -0
- package/esm/domain/session/sessionState.mjs.map +1 -0
- package/esm/domain/session/sessionStateValidation.mjs +9 -0
- package/esm/domain/session/sessionStateValidation.mjs.map +1 -0
- package/esm/domain/session/sessionStore.mjs +46 -0
- package/esm/domain/session/sessionStore.mjs.map +1 -0
- package/esm/domain/session/storeStrategies/sessionInCookie.mjs +97 -0
- package/esm/domain/session/storeStrategies/sessionInCookie.mjs.map +1 -0
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.mjs +42 -0
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.mjs.map +1 -0
- package/esm/domain/session/storeStrategies/sessionInMemory.mjs +33 -0
- package/esm/domain/session/storeStrategies/sessionInMemory.mjs.map +1 -0
- package/esm/domain/session/storeStrategies/sessionStoreStrategy.mjs +7 -0
- package/esm/domain/session/storeStrategies/sessionStoreStrategy.mjs.map +1 -0
- package/esm/domain/synthetics/syntheticsWorkerValues.mjs +37 -0
- package/esm/domain/synthetics/syntheticsWorkerValues.mjs.map +1 -0
- package/esm/domain/tags.mjs +28 -0
- package/esm/domain/tags.mjs.map +1 -0
- package/esm/domain/telemetry/rawTelemetryEvent.types.mjs +10 -0
- package/esm/domain/telemetry/rawTelemetryEvent.types.mjs.map +1 -0
- package/esm/domain/telemetry/telemetry.mjs +219 -0
- package/esm/domain/telemetry/telemetry.mjs.map +1 -0
- package/esm/domain/trackingConsent.mjs +38 -0
- package/esm/domain/trackingConsent.mjs.map +1 -0
- package/esm/index.mjs +81 -0
- package/esm/tools/abstractLifeCycle.mjs +21 -0
- package/esm/tools/abstractLifeCycle.mjs.map +1 -0
- package/esm/tools/catchUserErrors.mjs +15 -0
- package/esm/tools/catchUserErrors.mjs.map +1 -0
- package/esm/tools/display.mjs +10 -0
- package/esm/tools/display.mjs.map +1 -0
- package/esm/tools/encoder.mjs +39 -0
- package/esm/tools/encoder.mjs.map +1 -0
- package/esm/tools/experimentalFeatures.mjs +35 -0
- package/esm/tools/experimentalFeatures.mjs.map +1 -0
- package/esm/tools/getZoneJsOriginalValue.mjs +26 -0
- package/esm/tools/getZoneJsOriginalValue.mjs.map +1 -0
- package/esm/tools/globalObject.mjs +7 -0
- package/esm/tools/globalObject.mjs.map +1 -0
- package/esm/tools/instrumentMethod.mjs +178 -0
- package/esm/tools/instrumentMethod.mjs.map +1 -0
- package/esm/tools/matchOption.mjs +30 -0
- package/esm/tools/matchOption.mjs.map +1 -0
- package/esm/tools/mockable.mjs +28 -0
- package/esm/tools/mockable.mjs.map +1 -0
- package/esm/tools/monitor.mjs +13 -0
- package/esm/tools/monitor.mjs.map +1 -0
- package/esm/tools/observable.mjs +77 -0
- package/esm/tools/observable.mjs.map +1 -0
- package/esm/tools/queueMicrotask.mjs +12 -0
- package/esm/tools/queueMicrotask.mjs.map +1 -0
- package/esm/tools/readBytesFromStream.mjs +21 -0
- package/esm/tools/readBytesFromStream.mjs.map +1 -0
- package/esm/tools/requestIdleCallback.mjs +28 -0
- package/esm/tools/requestIdleCallback.mjs.map +1 -0
- package/esm/tools/sendToExtension.mjs +13 -0
- package/esm/tools/sendToExtension.mjs.map +1 -0
- package/esm/tools/serialisation/jsonStringify.mjs +42 -0
- package/esm/tools/serialisation/jsonStringify.mjs.map +1 -0
- package/esm/tools/serialisation/sanitize.mjs +131 -0
- package/esm/tools/serialisation/sanitize.mjs.map +1 -0
- package/esm/tools/serialisation/stringify.mjs +17 -0
- package/esm/tools/serialisation/stringify.mjs.map +1 -0
- package/esm/tools/stackTrace/computeStackTrace.mjs +148 -0
- package/esm/tools/stackTrace/computeStackTrace.mjs.map +1 -0
- package/esm/tools/stackTrace/handlingStack.mjs +45 -0
- package/esm/tools/stackTrace/handlingStack.mjs.map +1 -0
- package/esm/tools/taskQueue.mjs +45 -0
- package/esm/tools/taskQueue.mjs.map +1 -0
- package/esm/tools/timer.mjs +20 -0
- package/esm/tools/timer.mjs.map +1 -0
- package/esm/tools/utils/arrayUtils.mjs +21 -0
- package/esm/tools/utils/arrayUtils.mjs.map +1 -0
- package/esm/tools/utils/browserDetection.mjs +31 -0
- package/esm/tools/utils/browserDetection.mjs.map +1 -0
- package/esm/tools/utils/byteUtils.mjs +23 -0
- package/esm/tools/utils/byteUtils.mjs.map +1 -0
- package/esm/tools/utils/functionUtils.mjs +35 -0
- package/esm/tools/utils/functionUtils.mjs.map +1 -0
- package/esm/tools/utils/numberUtils.mjs +22 -0
- package/esm/tools/utils/numberUtils.mjs.map +1 -0
- package/esm/tools/utils/objectUtils.mjs +31 -0
- package/esm/tools/utils/objectUtils.mjs.map +1 -0
- package/esm/tools/utils/polyfills.mjs +17 -0
- package/esm/tools/utils/polyfills.mjs.map +1 -0
- package/esm/tools/utils/responseUtils.mjs +15 -0
- package/esm/tools/utils/responseUtils.mjs.map +1 -0
- package/esm/tools/utils/stringUtils.mjs +66 -0
- package/esm/tools/utils/stringUtils.mjs.map +1 -0
- package/esm/tools/utils/timezone.mjs +12 -0
- package/esm/tools/utils/timezone.mjs.map +1 -0
- package/esm/tools/utils/urlPolyfill.mjs +51 -0
- package/esm/tools/utils/urlPolyfill.mjs.map +1 -0
- package/esm/tools/valueHistory.mjs +114 -0
- package/esm/tools/valueHistory.mjs.map +1 -0
- package/esm/transport/batch.mjs +77 -0
- package/esm/transport/batch.mjs.map +1 -0
- package/esm/transport/eventBridge.mjs +58 -0
- package/esm/transport/eventBridge.mjs.map +1 -0
- package/esm/transport/flushController.mjs +104 -0
- package/esm/transport/flushController.mjs.map +1 -0
- package/esm/transport/httpRequest.mjs +60 -0
- package/esm/transport/httpRequest.mjs.map +1 -0
- package/esm/transport/sendWithRetryStrategy.mjs +149 -0
- package/esm/transport/sendWithRetryStrategy.mjs.map +1 -0
- package/package.json +15 -4
- package/src/boot/init.ts +2 -2
- package/src/browser/addEventListener.ts +37 -5
- package/src/browser/browser.types.ts +127 -13
- package/src/browser/cookie.ts +21 -27
- package/src/browser/cookieAccess.ts +150 -0
- package/src/browser/fetch.ts +14 -0
- package/src/browser/fetchObservable.ts +22 -22
- package/src/browser/pageMayExitObservable.ts +7 -4
- package/src/browser/runOnReadyState.ts +3 -8
- package/src/browser/xhrObservable.ts +22 -12
- package/src/domain/allowedTrackingOrigins.ts +5 -5
- package/src/domain/bufferedData.ts +41 -14
- package/src/domain/configuration/configuration.ts +87 -72
- package/src/domain/configuration/endpointBuilder.ts +82 -52
- package/src/domain/configuration/index.ts +2 -2
- package/src/domain/connectivity/connectivity.ts +3 -15
- package/src/domain/console/consoleObservable.ts +3 -3
- package/src/domain/context/contextManager.ts +1 -1
- package/src/domain/context/contextUtils.ts +1 -1
- package/src/domain/context/defineContextMethod.ts +3 -3
- package/src/domain/context/storeContextManager.ts +9 -6
- package/src/domain/contexts/accountContext.ts +5 -5
- package/src/domain/contexts/globalContext.ts +4 -5
- package/src/domain/contexts/tabContext.ts +43 -0
- package/src/domain/contexts/telemetrySessionContext.ts +26 -0
- package/src/domain/contexts/userContext.ts +7 -11
- package/src/domain/error/error.ts +53 -23
- package/src/domain/error/error.types.ts +1 -1
- package/src/domain/error/trackRuntimeError.ts +11 -4
- package/src/domain/eventRateLimiter/createEventRateLimiter.ts +1 -1
- package/src/domain/intakeSites.ts +8 -3
- package/src/domain/report/reportObservable.ts +11 -7
- package/src/domain/sampler.ts +64 -0
- package/src/domain/session/sessionConstants.ts +2 -1
- package/src/domain/session/sessionManager.ts +281 -176
- package/src/domain/session/sessionState.ts +64 -8
- package/src/domain/session/sessionStore.ts +57 -223
- package/src/domain/session/storeStrategies/sessionInCookie.ts +121 -107
- package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +33 -21
- package/src/domain/session/storeStrategies/sessionInMemory.ts +55 -0
- package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +28 -6
- package/src/domain/synthetics/syntheticsWorkerValues.ts +44 -13
- package/src/domain/tags.ts +0 -16
- package/src/domain/telemetry/telemetry.ts +38 -34
- package/src/domain/telemetry/telemetryEvent.types.ts +116 -20
- package/src/domain/trackingConsent.ts +18 -3
- package/src/index.ts +51 -31
- package/src/tools/display.ts +2 -50
- package/src/tools/experimentalFeatures.ts +1 -4
- package/src/tools/getZoneJsOriginalValue.ts +3 -3
- package/src/tools/globalObject.ts +27 -41
- package/src/tools/instrumentMethod.ts +230 -20
- package/src/tools/matchOption.ts +3 -1
- package/src/tools/mockable.ts +32 -0
- package/src/tools/monitor.ts +14 -62
- package/src/tools/observable.ts +9 -1
- package/src/tools/queueMicrotask.ts +6 -1
- package/src/tools/readBytesFromStream.ts +3 -12
- package/src/tools/requestIdleCallback.ts +1 -1
- package/src/tools/serialisation/sanitize.ts +67 -65
- package/src/tools/serialisation/stringify.ts +18 -0
- package/src/tools/stackTrace/computeStackTrace.ts +15 -13
- package/src/tools/stackTrace/handlingStack.ts +14 -1
- package/src/tools/taskQueue.ts +5 -3
- package/src/tools/timer.ts +7 -6
- package/src/tools/utils/arrayUtils.ts +7 -0
- package/src/tools/utils/browserDetection.ts +8 -0
- package/src/tools/utils/byteUtils.ts +1 -5
- package/src/tools/utils/functionUtils.ts +2 -2
- package/src/tools/utils/objectUtils.ts +20 -0
- package/src/tools/utils/stringUtils.ts +4 -1
- package/src/tools/utils/urlPolyfill.ts +5 -4
- package/src/tools/valueHistory.ts +39 -6
- package/src/transport/batch.ts +9 -18
- package/src/transport/eventBridge.ts +23 -10
- package/src/transport/flushController.ts +17 -24
- package/src/transport/httpRequest.ts +4 -36
- package/src/transport/index.ts +1 -0
- package/src/transport/sendWithRetryStrategy.ts +1 -1
- package/cjs/browser/browser.types.js +0 -6
- package/cjs/browser/browser.types.js.map +0 -1
- package/cjs/domain/configuration/index.js +0 -16
- package/cjs/domain/configuration/index.js.map +0 -1
- package/cjs/domain/configuration/transportConfiguration.d.ts +0 -20
- package/cjs/domain/configuration/transportConfiguration.js +0 -54
- package/cjs/domain/configuration/transportConfiguration.js.map +0 -1
- package/cjs/domain/connectivity/index.js +0 -18
- package/cjs/domain/connectivity/index.js.map +0 -1
- package/cjs/domain/contexts/rumInternalContext.type.js +0 -3
- package/cjs/domain/contexts/rumInternalContext.type.js.map +0 -1
- package/cjs/domain/deflate/index.js +0 -18
- package/cjs/domain/deflate/index.js.map +0 -1
- package/cjs/domain/report/browser.types.js +0 -3
- package/cjs/domain/report/browser.types.js.map +0 -1
- package/cjs/domain/session/oldCookiesMigration.d.ts +0 -11
- package/cjs/domain/session/oldCookiesMigration.js +0 -40
- package/cjs/domain/session/oldCookiesMigration.js.map +0 -1
- package/cjs/domain/session/sessionStoreOperations.d.ts +0 -12
- package/cjs/domain/session/sessionStoreOperations.js +0 -119
- package/cjs/domain/session/sessionStoreOperations.js.map +0 -1
- package/cjs/domain/telemetry/index.js +0 -28
- package/cjs/domain/telemetry/index.js.map +0 -1
- package/cjs/domain/telemetry/telemetryEvent.types.js +0 -7
- package/cjs/domain/telemetry/telemetryEvent.types.js.map +0 -1
- package/cjs/index.js.map +0 -1
- package/cjs/tools/abstractHooks.d.ts +0 -24
- package/cjs/tools/abstractHooks.js +0 -41
- package/cjs/tools/abstractHooks.js.map +0 -1
- package/cjs/tools/boundedBuffer.d.ts +0 -16
- package/cjs/tools/boundedBuffer.js +0 -32
- package/cjs/tools/boundedBuffer.js.map +0 -1
- package/cjs/tools/mergeInto.d.ts +0 -25
- package/cjs/tools/mergeInto.js +0 -98
- package/cjs/tools/mergeInto.js.map +0 -1
- package/cjs/tools/serialisation/context.js +0 -3
- package/cjs/tools/serialisation/context.js.map +0 -1
- package/cjs/tools/utils/timeUtils.d.ts +0 -53
- package/cjs/tools/utils/timeUtils.js +0 -101
- package/cjs/tools/utils/timeUtils.js.map +0 -1
- package/cjs/tools/utils/typeUtils.d.ts +0 -4
- package/cjs/tools/utils/typeUtils.js +0 -16
- package/cjs/tools/utils/typeUtils.js.map +0 -1
- package/cjs/transport/index.js +0 -15
- package/cjs/transport/index.js.map +0 -1
- package/esm/boot/displayAlreadyInitializedError.d.ts +0 -2
- package/esm/boot/displayAlreadyInitializedError.js +0 -7
- package/esm/boot/displayAlreadyInitializedError.js.map +0 -1
- package/esm/boot/init.d.ts +0 -14
- package/esm/boot/init.js +0 -35
- package/esm/boot/init.js.map +0 -1
- package/esm/browser/addEventListener.d.ts +0 -87
- package/esm/browser/addEventListener.js +0 -51
- package/esm/browser/addEventListener.js.map +0 -1
- package/esm/browser/browser.types.d.ts +0 -51
- package/esm/browser/browser.types.js +0 -5
- package/esm/browser/browser.types.js.map +0 -1
- package/esm/browser/cookie.d.ts +0 -28
- package/esm/browser/cookie.js +0 -103
- package/esm/browser/cookie.js.map +0 -1
- package/esm/browser/fetchObservable.d.ts +0 -38
- package/esm/browser/fetchObservable.js +0 -99
- package/esm/browser/fetchObservable.js.map +0 -1
- package/esm/browser/pageMayExitObservable.d.ts +0 -14
- package/esm/browser/pageMayExitObservable.js +0 -40
- package/esm/browser/pageMayExitObservable.js.map +0 -1
- package/esm/browser/runOnReadyState.d.ts +0 -5
- package/esm/browser/runOnReadyState.js +0 -16
- package/esm/browser/runOnReadyState.js.map +0 -1
- package/esm/browser/xhrObservable.d.ts +0 -24
- package/esm/browser/xhrObservable.js +0 -83
- package/esm/browser/xhrObservable.js.map +0 -1
- package/esm/domain/allowedTrackingOrigins.d.ts +0 -4
- package/esm/domain/allowedTrackingOrigins.js +0 -21
- package/esm/domain/allowedTrackingOrigins.js.map +0 -1
- package/esm/domain/bufferedData.d.ts +0 -14
- package/esm/domain/bufferedData.js +0 -19
- package/esm/domain/bufferedData.js.map +0 -1
- package/esm/domain/configuration/configuration.d.ts +0 -312
- package/esm/domain/configuration/configuration.js +0 -132
- package/esm/domain/configuration/configuration.js.map +0 -1
- package/esm/domain/configuration/endpointBuilder.d.ts +0 -12
- package/esm/domain/configuration/endpointBuilder.js +0 -77
- package/esm/domain/configuration/endpointBuilder.js.map +0 -1
- package/esm/domain/configuration/index.d.ts +0 -5
- package/esm/domain/configuration/index.js +0 -4
- package/esm/domain/configuration/index.js.map +0 -1
- package/esm/domain/configuration/transportConfiguration.d.ts +0 -20
- package/esm/domain/configuration/transportConfiguration.js +0 -50
- package/esm/domain/configuration/transportConfiguration.js.map +0 -1
- package/esm/domain/connectivity/connectivity.d.ts +0 -14
- package/esm/domain/connectivity/connectivity.js +0 -11
- package/esm/domain/connectivity/connectivity.js.map +0 -1
- package/esm/domain/connectivity/index.d.ts +0 -1
- package/esm/domain/connectivity/index.js +0 -2
- package/esm/domain/connectivity/index.js.map +0 -1
- package/esm/domain/console/consoleObservable.d.ts +0 -21
- package/esm/domain/console/consoleObservable.js +0 -80
- package/esm/domain/console/consoleObservable.js.map +0 -1
- package/esm/domain/context/contextConstants.d.ts +0 -21
- package/esm/domain/context/contextConstants.js +0 -15
- package/esm/domain/context/contextConstants.js.map +0 -1
- package/esm/domain/context/contextManager.d.ts +0 -19
- package/esm/domain/context/contextManager.js +0 -57
- package/esm/domain/context/contextManager.js.map +0 -1
- package/esm/domain/context/contextUtils.d.ts +0 -5
- package/esm/domain/context/contextUtils.js +0 -13
- package/esm/domain/context/contextUtils.js.map +0 -1
- package/esm/domain/context/defineContextMethod.d.ts +0 -6
- package/esm/domain/context/defineContextMethod.js +0 -17
- package/esm/domain/context/defineContextMethod.js.map +0 -1
- package/esm/domain/context/storeContextManager.d.ts +0 -6
- package/esm/domain/context/storeContextManager.js +0 -35
- package/esm/domain/context/storeContextManager.js.map +0 -1
- package/esm/domain/contexts/accountContext.d.ts +0 -26
- package/esm/domain/contexts/accountContext.js +0 -29
- package/esm/domain/contexts/accountContext.js.map +0 -1
- package/esm/domain/contexts/globalContext.d.ts +0 -18
- package/esm/domain/contexts/globalContext.js +0 -17
- package/esm/domain/contexts/globalContext.js.map +0 -1
- package/esm/domain/contexts/rumInternalContext.type.d.ts +0 -14
- package/esm/domain/contexts/rumInternalContext.type.js +0 -2
- package/esm/domain/contexts/rumInternalContext.type.js.map +0 -1
- package/esm/domain/contexts/userContext.d.ts +0 -29
- package/esm/domain/contexts/userContext.js +0 -41
- package/esm/domain/contexts/userContext.js.map +0 -1
- package/esm/domain/deflate/deflate.types.d.ts +0 -40
- package/esm/domain/deflate/deflate.types.js +0 -2
- package/esm/domain/deflate/deflate.types.js.map +0 -1
- package/esm/domain/deflate/index.d.ts +0 -1
- package/esm/domain/deflate/index.js +0 -2
- package/esm/domain/deflate/index.js.map +0 -1
- package/esm/domain/error/error.d.ts +0 -23
- package/esm/domain/error/error.js +0 -65
- package/esm/domain/error/error.js.map +0 -1
- package/esm/domain/error/error.types.d.ts +0 -47
- package/esm/domain/error/error.types.js +0 -10
- package/esm/domain/error/error.types.js.map +0 -1
- package/esm/domain/error/trackRuntimeError.d.ts +0 -11
- package/esm/domain/error/trackRuntimeError.js +0 -43
- package/esm/domain/error/trackRuntimeError.js.map +0 -1
- package/esm/domain/eventRateLimiter/createEventRateLimiter.d.ts +0 -5
- package/esm/domain/eventRateLimiter/createEventRateLimiter.js +0 -38
- package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +0 -1
- package/esm/domain/extension/extensionUtils.d.ts +0 -10
- package/esm/domain/extension/extensionUtils.js +0 -25
- package/esm/domain/extension/extensionUtils.js.map +0 -1
- package/esm/domain/intakeSites.d.ts +0 -8
- package/esm/domain/intakeSites.js +0 -8
- package/esm/domain/intakeSites.js.map +0 -1
- package/esm/domain/report/browser.types.d.ts +0 -34
- package/esm/domain/report/browser.types.js +0 -2
- package/esm/domain/report/browser.types.js.map +0 -1
- package/esm/domain/report/reportObservable.d.ts +0 -14
- package/esm/domain/report/reportObservable.js +0 -95
- package/esm/domain/report/reportObservable.js.map +0 -1
- package/esm/domain/resourceUtils.d.ts +0 -18
- package/esm/domain/resourceUtils.js +0 -17
- package/esm/domain/resourceUtils.js.map +0 -1
- package/esm/domain/session/oldCookiesMigration.d.ts +0 -11
- package/esm/domain/session/oldCookiesMigration.js +0 -36
- package/esm/domain/session/oldCookiesMigration.js.map +0 -1
- package/esm/domain/session/sessionConstants.d.ts +0 -15
- package/esm/domain/session/sessionConstants.js +0 -13
- package/esm/domain/session/sessionConstants.js.map +0 -1
- package/esm/domain/session/sessionManager.d.ts +0 -28
- package/esm/domain/session/sessionManager.js +0 -196
- package/esm/domain/session/sessionManager.js.map +0 -1
- package/esm/domain/session/sessionState.d.ts +0 -16
- package/esm/domain/session/sessionState.js +0 -60
- package/esm/domain/session/sessionState.js.map +0 -1
- package/esm/domain/session/sessionStateValidation.d.ts +0 -3
- package/esm/domain/session/sessionStateValidation.js +0 -7
- package/esm/domain/session/sessionStateValidation.js.map +0 -1
- package/esm/domain/session/sessionStore.d.ts +0 -38
- package/esm/domain/session/sessionStore.js +0 -179
- package/esm/domain/session/sessionStore.js.map +0 -1
- package/esm/domain/session/sessionStoreOperations.d.ts +0 -12
- package/esm/domain/session/sessionStoreOperations.js +0 -114
- package/esm/domain/session/sessionStoreOperations.js.map +0 -1
- package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +0 -12
- package/esm/domain/session/storeStrategies/sessionInCookie.js +0 -98
- package/esm/domain/session/storeStrategies/sessionInCookie.js.map +0 -1
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +0 -6
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +0 -37
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +0 -1
- package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +0 -16
- package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +0 -2
- package/esm/domain/session/storeStrategies/sessionStoreStrategy.js.map +0 -1
- package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +0 -12
- package/esm/domain/synthetics/syntheticsWorkerValues.js +0 -24
- package/esm/domain/synthetics/syntheticsWorkerValues.js.map +0 -1
- package/esm/domain/tags.d.ts +0 -6
- package/esm/domain/tags.js +0 -60
- package/esm/domain/tags.js.map +0 -1
- package/esm/domain/telemetry/index.d.ts +0 -4
- package/esm/domain/telemetry/index.js +0 -3
- package/esm/domain/telemetry/index.js.map +0 -1
- package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +0 -18
- package/esm/domain/telemetry/rawTelemetryEvent.types.js +0 -6
- package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +0 -1
- package/esm/domain/telemetry/telemetry.d.ts +0 -56
- package/esm/domain/telemetry/telemetry.js +0 -228
- package/esm/domain/telemetry/telemetry.js.map +0 -1
- package/esm/domain/telemetry/telemetryEvent.types.d.ts +0 -866
- package/esm/domain/telemetry/telemetryEvent.types.js +0 -6
- package/esm/domain/telemetry/telemetryEvent.types.js.map +0 -1
- package/esm/domain/trackingConsent.d.ts +0 -13
- package/esm/domain/trackingConsent.js +0 -24
- package/esm/domain/trackingConsent.js.map +0 -1
- package/esm/index.d.ts +0 -100
- package/esm/index.js +0 -76
- package/esm/index.js.map +0 -1
- package/esm/tools/abstractHooks.d.ts +0 -24
- package/esm/tools/abstractHooks.js +0 -37
- package/esm/tools/abstractHooks.js.map +0 -1
- package/esm/tools/abstractLifeCycle.d.ts +0 -23
- package/esm/tools/abstractLifeCycle.js +0 -24
- package/esm/tools/abstractLifeCycle.js.map +0 -1
- package/esm/tools/boundedBuffer.d.ts +0 -16
- package/esm/tools/boundedBuffer.js +0 -29
- package/esm/tools/boundedBuffer.js.map +0 -1
- package/esm/tools/catchUserErrors.d.ts +0 -1
- package/esm/tools/catchUserErrors.js +0 -12
- package/esm/tools/catchUserErrors.js.map +0 -1
- package/esm/tools/display.d.ts +0 -38
- package/esm/tools/display.js +0 -41
- package/esm/tools/display.js.map +0 -1
- package/esm/tools/encoder.d.ts +0 -54
- package/esm/tools/encoder.js +0 -37
- package/esm/tools/encoder.js.map +0 -1
- package/esm/tools/experimentalFeatures.d.ts +0 -21
- package/esm/tools/experimentalFeatures.js +0 -42
- package/esm/tools/experimentalFeatures.js.map +0 -1
- package/esm/tools/getZoneJsOriginalValue.d.ts +0 -19
- package/esm/tools/getZoneJsOriginalValue.js +0 -26
- package/esm/tools/getZoneJsOriginalValue.js.map +0 -1
- package/esm/tools/globalObject.d.ts +0 -19
- package/esm/tools/globalObject.js +0 -40
- package/esm/tools/globalObject.js.map +0 -1
- package/esm/tools/instrumentMethod.d.ts +0 -75
- package/esm/tools/instrumentMethod.js +0 -114
- package/esm/tools/instrumentMethod.js.map +0 -1
- package/esm/tools/matchOption.d.ts +0 -8
- package/esm/tools/matchOption.js +0 -31
- package/esm/tools/matchOption.js.map +0 -1
- package/esm/tools/mergeInto.d.ts +0 -25
- package/esm/tools/mergeInto.js +0 -93
- package/esm/tools/mergeInto.js.map +0 -1
- package/esm/tools/monitor.d.ts +0 -9
- package/esm/tools/monitor.js +0 -52
- package/esm/tools/monitor.js.map +0 -1
- package/esm/tools/observable.d.ts +0 -30
- package/esm/tools/observable.js +0 -83
- package/esm/tools/observable.js.map +0 -1
- package/esm/tools/queueMicrotask.d.ts +0 -1
- package/esm/tools/queueMicrotask.js +0 -14
- package/esm/tools/queueMicrotask.js.map +0 -1
- package/esm/tools/readBytesFromStream.d.ts +0 -10
- package/esm/tools/readBytesFromStream.js +0 -25
- package/esm/tools/readBytesFromStream.js.map +0 -1
- package/esm/tools/requestIdleCallback.d.ts +0 -12
- package/esm/tools/requestIdleCallback.js +0 -30
- package/esm/tools/requestIdleCallback.js.map +0 -1
- package/esm/tools/sendToExtension.d.ts +0 -3
- package/esm/tools/sendToExtension.js +0 -8
- package/esm/tools/sendToExtension.js.map +0 -1
- package/esm/tools/serialisation/context.d.ts +0 -9
- package/esm/tools/serialisation/context.js +0 -2
- package/esm/tools/serialisation/context.js.map +0 -1
- package/esm/tools/serialisation/jsonStringify.d.ts +0 -13
- package/esm/tools/serialisation/jsonStringify.js +0 -44
- package/esm/tools/serialisation/jsonStringify.js.map +0 -1
- package/esm/tools/serialisation/sanitize.d.ts +0 -18
- package/esm/tools/serialisation/sanitize.js +0 -185
- package/esm/tools/serialisation/sanitize.js.map +0 -1
- package/esm/tools/stackTrace/computeStackTrace.d.ts +0 -25
- package/esm/tools/stackTrace/computeStackTrace.js +0 -183
- package/esm/tools/stackTrace/computeStackTrace.js.map +0 -1
- package/esm/tools/stackTrace/handlingStack.d.ts +0 -10
- package/esm/tools/stackTrace/handlingStack.js +0 -41
- package/esm/tools/stackTrace/handlingStack.js.map +0 -1
- package/esm/tools/taskQueue.d.ts +0 -15
- package/esm/tools/taskQueue.js +0 -50
- package/esm/tools/taskQueue.js.map +0 -1
- package/esm/tools/timer.d.ts +0 -5
- package/esm/tools/timer.js +0 -16
- package/esm/tools/timer.js.map +0 -1
- package/esm/tools/utils/arrayUtils.d.ts +0 -3
- package/esm/tools/utils/arrayUtils.js +0 -15
- package/esm/tools/utils/arrayUtils.js.map +0 -1
- package/esm/tools/utils/browserDetection.d.ts +0 -8
- package/esm/tools/utils/browserDetection.js +0 -28
- package/esm/tools/utils/browserDetection.js.map +0 -1
- package/esm/tools/utils/byteUtils.d.ts +0 -8
- package/esm/tools/utils/byteUtils.js +0 -29
- package/esm/tools/utils/byteUtils.js.map +0 -1
- package/esm/tools/utils/functionUtils.d.ts +0 -8
- package/esm/tools/utils/functionUtils.js +0 -39
- package/esm/tools/utils/functionUtils.js.map +0 -1
- package/esm/tools/utils/numberUtils.d.ts +0 -9
- package/esm/tools/utils/numberUtils.js +0 -18
- package/esm/tools/utils/numberUtils.js.map +0 -1
- package/esm/tools/utils/objectUtils.d.ts +0 -10
- package/esm/tools/utils/objectUtils.js +0 -17
- package/esm/tools/utils/objectUtils.js.map +0 -1
- package/esm/tools/utils/polyfills.d.ts +0 -7
- package/esm/tools/utils/polyfills.js +0 -18
- package/esm/tools/utils/polyfills.js.map +0 -1
- package/esm/tools/utils/responseUtils.d.ts +0 -2
- package/esm/tools/utils/responseUtils.js +0 -13
- package/esm/tools/utils/responseUtils.js.map +0 -1
- package/esm/tools/utils/stringUtils.d.ts +0 -23
- package/esm/tools/utils/stringUtils.js +0 -84
- package/esm/tools/utils/stringUtils.js.map +0 -1
- package/esm/tools/utils/timeUtils.d.ts +0 -53
- package/esm/tools/utils/timeUtils.js +0 -84
- package/esm/tools/utils/timeUtils.js.map +0 -1
- package/esm/tools/utils/timezone.d.ts +0 -1
- package/esm/tools/utils/timezone.js +0 -10
- package/esm/tools/utils/timezone.js.map +0 -1
- package/esm/tools/utils/typeUtils.d.ts +0 -4
- package/esm/tools/utils/typeUtils.js +0 -13
- package/esm/tools/utils/typeUtils.js.map +0 -1
- package/esm/tools/utils/urlPolyfill.d.ts +0 -5
- package/esm/tools/utils/urlPolyfill.js +0 -52
- package/esm/tools/utils/urlPolyfill.js.map +0 -1
- package/esm/tools/valueHistory.d.ts +0 -27
- package/esm/tools/valueHistory.js +0 -100
- package/esm/tools/valueHistory.js.map +0 -1
- package/esm/transport/batch.d.ts +0 -16
- package/esm/transport/batch.js +0 -106
- package/esm/transport/batch.js.map +0 -1
- package/esm/transport/eventBridge.d.ts +0 -21
- package/esm/transport/eventBridge.js +0 -41
- package/esm/transport/eventBridge.js.map +0 -1
- package/esm/transport/flushController.d.ts +0 -65
- package/esm/transport/flushController.js +0 -119
- package/esm/transport/flushController.js.map +0 -1
- package/esm/transport/httpRequest.d.ts +0 -56
- package/esm/transport/httpRequest.js +0 -89
- package/esm/transport/httpRequest.js.map +0 -1
- package/esm/transport/index.d.ts +0 -7
- package/esm/transport/index.js +0 -5
- package/esm/transport/index.js.map +0 -1
- package/esm/transport/sendWithRetryStrategy.d.ts +0 -41
- package/esm/transport/sendWithRetryStrategy.js +0 -158
- package/esm/transport/sendWithRetryStrategy.js.map +0 -1
- package/src/boot/displayAlreadyInitializedError.spec.ts +0 -18
- package/src/boot/init.spec.ts +0 -50
- package/src/browser/addEventListener.spec.ts +0 -141
- package/src/browser/cookie.spec.ts +0 -53
- package/src/browser/fetchObservable.spec.ts +0 -334
- package/src/browser/pageMayExitObservable.spec.ts +0 -56
- package/src/browser/xhrObservable.spec.ts +0 -405
- package/src/domain/allowedTrackingOrigins.spec.ts +0 -210
- package/src/domain/bufferedData.spec.ts +0 -34
- package/src/domain/configuration/configuration.spec.ts +0 -236
- package/src/domain/configuration/endpointBuilder.spec.ts +0 -173
- package/src/domain/configuration/transportConfiguration.spec.ts +0 -130
- package/src/domain/configuration/transportConfiguration.ts +0 -78
- package/src/domain/connectivity/connectivity.spec.ts +0 -50
- package/src/domain/console/consoleObservable.spec.ts +0 -151
- package/src/domain/context/contextManager.spec.ts +0 -152
- package/src/domain/context/contextUtils.spec.ts +0 -26
- package/src/domain/context/storeContextManager.spec.ts +0 -103
- package/src/domain/contexts/accountContext.spec.ts +0 -99
- package/src/domain/contexts/globalContext.spec.ts +0 -88
- package/src/domain/contexts/userContext.spec.ts +0 -156
- package/src/domain/error/error.spec.ts +0 -294
- package/src/domain/error/trackRuntimeError.spec.ts +0 -343
- package/src/domain/eventRateLimiter/createEventRateLimiter.spec.ts +0 -119
- package/src/domain/extension/extensionUtils.spec.ts +0 -47
- package/src/domain/report/reportObservable.spec.ts +0 -71
- package/src/domain/session/oldCookiesMigration.spec.ts +0 -76
- package/src/domain/session/oldCookiesMigration.ts +0 -42
- package/src/domain/session/sessionManager.spec.ts +0 -684
- package/src/domain/session/sessionState.spec.ts +0 -88
- package/src/domain/session/sessionStore.spec.ts +0 -647
- package/src/domain/session/sessionStoreOperations.spec.ts +0 -234
- package/src/domain/session/sessionStoreOperations.ts +0 -131
- package/src/domain/session/storeStrategies/sessionInCookie.spec.ts +0 -228
- package/src/domain/session/storeStrategies/sessionInLocalStorage.spec.ts +0 -75
- package/src/domain/synthetics/syntheticsWorkerValues.spec.ts +0 -82
- package/src/domain/tags.spec.ts +0 -74
- package/src/domain/telemetry/telemetry.spec.ts +0 -494
- package/src/domain/trackingConsent.spec.ts +0 -44
- package/src/tools/abstractHooks.spec.ts +0 -76
- package/src/tools/abstractHooks.ts +0 -72
- package/src/tools/abstractLifeCycle.spec.ts +0 -46
- package/src/tools/boundedBuffer.spec.ts +0 -40
- package/src/tools/boundedBuffer.ts +0 -45
- package/src/tools/catchUserErrors.spec.ts +0 -20
- package/src/tools/encoder.spec.ts +0 -112
- package/src/tools/experimentalFeatures.spec.ts +0 -60
- package/src/tools/getZoneJsOriginalValue.spec.ts +0 -36
- package/src/tools/instrumentMethod.spec.ts +0 -381
- package/src/tools/matchOption.spec.ts +0 -41
- package/src/tools/mergeInto.spec.ts +0 -198
- package/src/tools/mergeInto.ts +0 -177
- package/src/tools/monitor.spec.ts +0 -172
- package/src/tools/observable.spec.ts +0 -259
- package/src/tools/queueMicrotask.spec.ts +0 -24
- package/src/tools/readBytesFromStream.spec.ts +0 -62
- package/src/tools/requestIdleCallback.spec.ts +0 -65
- package/src/tools/serialisation/jsonStringify.spec.ts +0 -76
- package/src/tools/serialisation/sanitize.spec.ts +0 -284
- package/src/tools/stackTrace/capturedExceptions.specHelper.ts +0 -316
- package/src/tools/stackTrace/computeStackTrace.spec.ts +0 -1007
- package/src/tools/stackTrace/handlingStack.spec.ts +0 -20
- package/src/tools/taskQueue.spec.ts +0 -60
- package/src/tools/timer.spec.ts +0 -76
- package/src/tools/utils/browserDetection.spec.ts +0 -120
- package/src/tools/utils/byteUtils.spec.ts +0 -29
- package/src/tools/utils/functionUtils.spec.ts +0 -229
- package/src/tools/utils/numberUtils.spec.ts +0 -27
- package/src/tools/utils/stringUtils.spec.ts +0 -74
- package/src/tools/utils/timeUtils.ts +0 -117
- package/src/tools/utils/typeUtils.spec.ts +0 -25
- package/src/tools/utils/typeUtils.ts +0 -12
- package/src/tools/utils/urlPolyfill.spec.ts +0 -55
- package/src/tools/valueHistory.spec.ts +0 -180
- package/src/transport/batch.spec.ts +0 -261
- package/src/transport/eventBridge.spec.ts +0 -90
- package/src/transport/flushController.spec.ts +0 -267
- package/src/transport/httpRequest.spec.ts +0 -400
- package/src/transport/sendWithRetryStrategy.spec.ts +0 -393
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { display } from "../tools/display.mjs";
|
|
2
|
+
import { generateUUID } from "../tools/utils/stringUtils.mjs";
|
|
3
|
+
import { globalObject } from "../tools/globalObject.mjs";
|
|
4
|
+
import { getCookies, setCookie } from "./cookie.mjs";
|
|
5
|
+
import { Observable } from "../tools/observable.mjs";
|
|
6
|
+
import { mockable } from "../tools/mockable.mjs";
|
|
7
|
+
import { clearInterval, setInterval } from "../tools/timer.mjs";
|
|
8
|
+
import { addEventListener, isEventSupported } from "./addEventListener.mjs";
|
|
9
|
+
import { addTelemetryDebug } from "../domain/telemetry/telemetry.mjs";
|
|
10
|
+
import { ONE_MINUTE, ONE_SECOND, dateNow } from "@openobserve/js-core/time";
|
|
11
|
+
//#region src/browser/cookieAccess.ts
|
|
12
|
+
async function areCookiesAuthorized(createAccess, cookieOptions) {
|
|
13
|
+
const testCookieName = `oo_cookie_test_${generateUUID()}`;
|
|
14
|
+
const testCookieValue = "test";
|
|
15
|
+
const access = createAccess(testCookieName, cookieOptions);
|
|
16
|
+
try {
|
|
17
|
+
await access.getAllAndSet(() => ({
|
|
18
|
+
value: testCookieValue,
|
|
19
|
+
expireDelay: ONE_MINUTE
|
|
20
|
+
}));
|
|
21
|
+
return (await access.getAll()).includes(testCookieValue);
|
|
22
|
+
} catch (error) {
|
|
23
|
+
display.error(error);
|
|
24
|
+
return false;
|
|
25
|
+
} finally {
|
|
26
|
+
try {
|
|
27
|
+
await access.getAllAndSet(() => ({
|
|
28
|
+
value: "",
|
|
29
|
+
expireDelay: 0
|
|
30
|
+
}));
|
|
31
|
+
} catch {}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function createCookieStoreAccess(cookieName, cookieOptions) {
|
|
35
|
+
const cookieStore = mockable(globalObject.cookieStore);
|
|
36
|
+
const observable = new Observable(() => {
|
|
37
|
+
return addEventListener(cookieStore, "change", (event) => {
|
|
38
|
+
if (event.changed.some((event) => event.name === cookieName) || event.deleted.some((event) => event.name === cookieName)) observable.notify();
|
|
39
|
+
}).stop;
|
|
40
|
+
});
|
|
41
|
+
return {
|
|
42
|
+
async getAll() {
|
|
43
|
+
return (await cookieStore.getAll(cookieName)).map((item) => item.value);
|
|
44
|
+
},
|
|
45
|
+
async getAllAndSet(cb) {
|
|
46
|
+
const items = await cookieStore.getAll(cookieName);
|
|
47
|
+
const { value, expireDelay } = cb(items.map((item) => item.value));
|
|
48
|
+
try {
|
|
49
|
+
await cookieStore.set({
|
|
50
|
+
name: cookieName,
|
|
51
|
+
value,
|
|
52
|
+
expires: dateNow() + expireDelay,
|
|
53
|
+
path: "/",
|
|
54
|
+
sameSite: cookieOptions.crossSite ? "none" : "strict",
|
|
55
|
+
domain: cookieOptions.domain,
|
|
56
|
+
secure: cookieOptions.secure,
|
|
57
|
+
partitioned: cookieOptions.partitioned
|
|
58
|
+
});
|
|
59
|
+
} catch (error) {
|
|
60
|
+
const documentCookies = getCookies(cookieName);
|
|
61
|
+
addTelemetryDebug("Failed to set cookie using Cookie Store API", {
|
|
62
|
+
"error.message": error.message,
|
|
63
|
+
newValue: value,
|
|
64
|
+
cookieOptions: { ...cookieOptions },
|
|
65
|
+
cookies: items.map((item) => ({ ...item })),
|
|
66
|
+
cookieCount: items.length,
|
|
67
|
+
documentCookies
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
observable
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
const WATCH_COOKIE_INTERVAL_DELAY = ONE_SECOND;
|
|
75
|
+
function createDocumentCookieAccess(cookieName, cookieOptions) {
|
|
76
|
+
let previousCookieValues = getCookies(cookieName);
|
|
77
|
+
const observable = new Observable(() => {
|
|
78
|
+
const watchCookieIntervalId = setInterval(() => {
|
|
79
|
+
notifyCookieValueIfChanged(getCookies(cookieName));
|
|
80
|
+
}, WATCH_COOKIE_INTERVAL_DELAY);
|
|
81
|
+
return () => {
|
|
82
|
+
clearInterval(watchCookieIntervalId);
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
function notifyCookieValueIfChanged(cookieValues) {
|
|
86
|
+
if (String(cookieValues) !== String(previousCookieValues)) {
|
|
87
|
+
previousCookieValues = cookieValues;
|
|
88
|
+
observable.notify();
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return {
|
|
92
|
+
getAll() {
|
|
93
|
+
return Promise.resolve(getCookies(cookieName));
|
|
94
|
+
},
|
|
95
|
+
async getAllAndSet(cb) {
|
|
96
|
+
const { value, expireDelay } = cb(getCookies(cookieName));
|
|
97
|
+
setCookie(cookieName, value, expireDelay, cookieOptions);
|
|
98
|
+
await Promise.resolve();
|
|
99
|
+
notifyCookieValueIfChanged([value]);
|
|
100
|
+
},
|
|
101
|
+
observable
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
function isCookieStoreSupported() {
|
|
105
|
+
const cookieStore = mockable(globalObject.cookieStore);
|
|
106
|
+
return Boolean(cookieStore && isEventSupported(cookieStore, "change"));
|
|
107
|
+
}
|
|
108
|
+
//#endregion
|
|
109
|
+
export { areCookiesAuthorized, createCookieStoreAccess, createDocumentCookieAccess, isCookieStoreSupported };
|
|
110
|
+
|
|
111
|
+
//# sourceMappingURL=cookieAccess.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookieAccess.mjs","names":[],"sources":["../../src/browser/cookieAccess.ts"],"sourcesContent":["import { ONE_MINUTE, ONE_SECOND, dateNow } from '@openobserve/js-core/time'\nimport { setInterval, clearInterval } from '../tools/timer'\nimport { Observable } from '../tools/observable'\nimport { mockable } from '../tools/mockable'\nimport { display } from '../tools/display'\nimport { generateUUID } from '../tools/utils/stringUtils'\nimport { addTelemetryDebug } from '../domain/telemetry'\nimport { globalObject } from '../tools/globalObject'\nimport { addEventListener, DOM_EVENT, isEventSupported } from './addEventListener'\nimport { getCookies, setCookie } from './cookie'\nimport type { CookieOptions } from './cookie'\n\nexport interface CookieAccess {\n getAll(): Promise<string[]>\n getAllAndSet(cb: (value: string[]) => { value: string; expireDelay: number }): Promise<void>\n observable: Observable<void>\n}\n\nexport type CookieAccessFactory = (cookieName: string, cookieOptions: CookieOptions) => CookieAccess\n\nexport async function areCookiesAuthorized(\n createAccess: CookieAccessFactory,\n cookieOptions: CookieOptions\n): Promise<boolean> {\n // Use a unique cookie name to avoid issues when the SDK is initialized multiple times during\n // the test cookie lifetime\n const testCookieName = `oo_cookie_test_${generateUUID()}`\n const testCookieValue = 'test'\n const access = createAccess(testCookieName, cookieOptions)\n try {\n await access.getAllAndSet(() => ({ value: testCookieValue, expireDelay: ONE_MINUTE }))\n const values = await access.getAll()\n return values.includes(testCookieValue)\n } catch (error) {\n display.error(error)\n return false\n } finally {\n try {\n await access.getAllAndSet(() => ({ value: '', expireDelay: 0 }))\n } catch {\n // Best-effort cleanup\n }\n }\n}\n\nexport function createCookieStoreAccess(cookieName: string, cookieOptions: CookieOptions): CookieAccess {\n const cookieStore = mockable(globalObject.cookieStore)!\n const observable = new Observable<void>(() => {\n const listener = addEventListener(cookieStore, DOM_EVENT.CHANGE, (event) => {\n // Based on our experimentation, we're assuming that entries for the same cookie cannot be in both the 'changed' and 'deleted' arrays.\n // However, due to ambiguity in the specification, we asked for clarification: https://github.com/WICG/cookie-store/issues/226\n const changeEvent =\n event.changed.some((event) => event.name === cookieName) ||\n event.deleted.some((event) => event.name === cookieName)\n if (changeEvent) {\n observable.notify()\n }\n })\n return listener.stop\n })\n\n return {\n async getAll() {\n const items = await cookieStore.getAll(cookieName)\n return items.map((item) => item.value)\n },\n\n async getAllAndSet(cb: (value: string[]) => { value: string; expireDelay: number }) {\n const items = await cookieStore.getAll(cookieName)\n\n const currentValues = items.map((item) => item.value)\n const { value, expireDelay } = cb(currentValues)\n\n try {\n await cookieStore.set({\n name: cookieName,\n value,\n expires: dateNow() + expireDelay,\n path: '/',\n sameSite: cookieOptions.crossSite ? 'none' : 'strict',\n domain: cookieOptions.domain,\n secure: cookieOptions.secure,\n partitioned: cookieOptions.partitioned,\n })\n } catch (error) {\n const documentCookies = getCookies(cookieName)\n // monitor-until: 2026-07-01\n addTelemetryDebug('Failed to set cookie using Cookie Store API', {\n 'error.message': (error as Error).message,\n newValue: value,\n cookieOptions: {\n ...cookieOptions,\n },\n cookies: items.map((item) => ({\n ...item,\n })),\n cookieCount: items.length,\n documentCookies,\n })\n }\n },\n\n observable,\n }\n}\n\nexport const WATCH_COOKIE_INTERVAL_DELAY = ONE_SECOND\nexport function createDocumentCookieAccess(cookieName: string, cookieOptions: CookieOptions): CookieAccess {\n let previousCookieValues = getCookies(cookieName)\n\n const observable = new Observable<void>(() => {\n const watchCookieIntervalId = setInterval(() => {\n const cookieValues = getCookies(cookieName)\n notifyCookieValueIfChanged(cookieValues)\n }, WATCH_COOKIE_INTERVAL_DELAY)\n\n return () => {\n clearInterval(watchCookieIntervalId)\n }\n })\n\n function notifyCookieValueIfChanged(cookieValues: string[]) {\n if (String(cookieValues) !== String(previousCookieValues)) {\n previousCookieValues = cookieValues\n observable.notify()\n }\n }\n\n return {\n getAll() {\n return Promise.resolve(getCookies(cookieName))\n },\n\n async getAllAndSet(cb: (value: string[]) => { value: string; expireDelay: number }) {\n const currentValue = getCookies(cookieName)\n const { value, expireDelay } = cb(currentValue)\n setCookie(cookieName, value, expireDelay, cookieOptions)\n await Promise.resolve()\n notifyCookieValueIfChanged([value])\n },\n\n observable,\n }\n}\n\n// Salesforce LWS does not support the change event of CookieStore objects. https://developer.salesforce.com/tools/lws-distortion-viewer\nexport function isCookieStoreSupported(): boolean {\n const cookieStore = mockable(globalObject.cookieStore)\n return Boolean(cookieStore && isEventSupported(cookieStore, DOM_EVENT.CHANGE))\n}\n"],"mappings":";;;;;;;;;;;AAoBA,eAAsB,qBACpB,cACA,eACkB;CAGlB,MAAM,iBAAiB,kBAAkB,aAAa;CACtD,MAAM,kBAAkB;CACxB,MAAM,SAAS,aAAa,gBAAgB,aAAa;CACzD,IAAI;EACF,MAAM,OAAO,oBAAoB;GAAE,OAAO;GAAiB,aAAa;EAAW,EAAE;EAErF,QAAO,MADc,OAAO,OAAO,EAAA,CACrB,SAAS,eAAe;CACxC,SAAS,OAAO;EACd,QAAQ,MAAM,KAAK;EACnB,OAAO;CACT,UAAU;EACR,IAAI;GACF,MAAM,OAAO,oBAAoB;IAAE,OAAO;IAAI,aAAa;GAAE,EAAE;EACjE,QAAQ,CAER;CACF;AACF;AAEA,SAAgB,wBAAwB,YAAoB,eAA4C;CACtG,MAAM,cAAc,SAAS,aAAa,WAAW;CACrD,MAAM,aAAa,IAAI,iBAAuB;EAW5C,OAViB,iBAAiB,aAAA,WAAgC,UAAU;GAM1E,IAFE,MAAM,QAAQ,MAAM,UAAU,MAAM,SAAS,UAAU,KACvD,MAAM,QAAQ,MAAM,UAAU,MAAM,SAAS,UAAU,GAEvD,WAAW,OAAO;EAEtB,CACc,CAAC,CAAC;CAClB,CAAC;CAED,OAAO;EACL,MAAM,SAAS;GAEb,QAAO,MADa,YAAY,OAAO,UAAU,EAAA,CACpC,KAAK,SAAS,KAAK,KAAK;EACvC;EAEA,MAAM,aAAa,IAAiE;GAClF,MAAM,QAAQ,MAAM,YAAY,OAAO,UAAU;GAGjD,MAAM,EAAE,OAAO,gBAAgB,GADT,MAAM,KAAK,SAAS,KAAK,KACD,CAAC;GAE/C,IAAI;IACF,MAAM,YAAY,IAAI;KACpB,MAAM;KACN;KACA,SAAS,QAAQ,IAAI;KACrB,MAAM;KACN,UAAU,cAAc,YAAY,SAAS;KAC7C,QAAQ,cAAc;KACtB,QAAQ,cAAc;KACtB,aAAa,cAAc;IAC7B,CAAC;GACH,SAAS,OAAO;IACd,MAAM,kBAAkB,WAAW,UAAU;IAE7C,kBAAkB,+CAA+C;KAC/D,iBAAkB,MAAgB;KAClC,UAAU;KACV,eAAe,EACb,GAAG,cACL;KACA,SAAS,MAAM,KAAK,UAAU,EAC5B,GAAG,KACL,EAAE;KACF,aAAa,MAAM;KACnB;IACF,CAAC;GACH;EACF;EAEA;CACF;AACF;AAEA,MAAa,8BAA8B;AAC3C,SAAgB,2BAA2B,YAAoB,eAA4C;CACzG,IAAI,uBAAuB,WAAW,UAAU;CAEhD,MAAM,aAAa,IAAI,iBAAuB;EAC5C,MAAM,wBAAwB,kBAAkB;GAE9C,2BADqB,WAAW,UACM,CAAC;EACzC,GAAG,2BAA2B;EAE9B,aAAa;GACX,cAAc,qBAAqB;EACrC;CACF,CAAC;CAED,SAAS,2BAA2B,cAAwB;EAC1D,IAAI,OAAO,YAAY,MAAM,OAAO,oBAAoB,GAAG;GACzD,uBAAuB;GACvB,WAAW,OAAO;EACpB;CACF;CAEA,OAAO;EACL,SAAS;GACP,OAAO,QAAQ,QAAQ,WAAW,UAAU,CAAC;EAC/C;EAEA,MAAM,aAAa,IAAiE;GAElF,MAAM,EAAE,OAAO,gBAAgB,GADV,WAAW,UACa,CAAC;GAC9C,UAAU,YAAY,OAAO,aAAa,aAAa;GACvD,MAAM,QAAQ,QAAQ;GACtB,2BAA2B,CAAC,KAAK,CAAC;EACpC;EAEA;CACF;AACF;AAGA,SAAgB,yBAAkC;CAChD,MAAM,cAAc,SAAS,aAAa,WAAW;CACrD,OAAO,QAAQ,eAAe,iBAAiB,aAAA,QAA6B,CAAC;AAC/E"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { globalObject } from "../tools/globalObject.mjs";
|
|
2
|
+
import { getZoneJsOriginalValue } from "../tools/getZoneJsOriginalValue.mjs";
|
|
3
|
+
//#region src/browser/fetch.ts
|
|
4
|
+
/**
|
|
5
|
+
* Make a fetch request using the native implementation, bypassing Zone.js patching.
|
|
6
|
+
* This prevents unnecessary Angular change detection cycles.
|
|
7
|
+
*
|
|
8
|
+
* @param input - The resource to fetch (URL or Request object)
|
|
9
|
+
* @param init - Optional fetch options
|
|
10
|
+
* @returns A Promise that resolves to the Response
|
|
11
|
+
*/
|
|
12
|
+
function fetch(input, init) {
|
|
13
|
+
return getZoneJsOriginalValue(globalObject, "fetch")(input, init);
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { fetch };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=fetch.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetch.mjs","names":[],"sources":["../../src/browser/fetch.ts"],"sourcesContent":["import { getZoneJsOriginalValue } from '../tools/getZoneJsOriginalValue'\nimport { globalObject } from '../tools/globalObject'\n\n/**\n * Make a fetch request using the native implementation, bypassing Zone.js patching.\n * This prevents unnecessary Angular change detection cycles.\n *\n * @param input - The resource to fetch (URL or Request object)\n * @param init - Optional fetch options\n * @returns A Promise that resolves to the Response\n */\nexport function fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response> {\n return getZoneJsOriginalValue(globalObject, 'fetch')(input, init)\n}\n"],"mappings":";;;;;;;;;;;AAWA,SAAgB,MAAM,OAA0B,MAAuC;CACrF,OAAO,uBAAuB,cAAc,OAAO,CAAC,CAAC,OAAO,IAAI;AAClE"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { globalObject } from "../tools/globalObject.mjs";
|
|
2
|
+
import { normalizeUrl } from "../tools/utils/urlPolyfill.mjs";
|
|
3
|
+
import { monitorError } from "../tools/monitor.mjs";
|
|
4
|
+
import { Observable } from "../tools/observable.mjs";
|
|
5
|
+
import { instrumentMethod } from "../tools/instrumentMethod.mjs";
|
|
6
|
+
import { tryToClone } from "../tools/utils/responseUtils.mjs";
|
|
7
|
+
import { readBytesFromStream } from "../tools/readBytesFromStream.mjs";
|
|
8
|
+
import { clocksNow } from "@openobserve/js-core/time";
|
|
9
|
+
//#region src/browser/fetchObservable.ts
|
|
10
|
+
/**
|
|
11
|
+
* Action to take with the response body of a fetch request.
|
|
12
|
+
* Values are ordered by priority: higher values take precedence when multiple actions are requested.
|
|
13
|
+
*/
|
|
14
|
+
let ResponseBodyAction = /* @__PURE__ */ function(ResponseBodyAction) {
|
|
15
|
+
ResponseBodyAction[ResponseBodyAction["IGNORE"] = 0] = "IGNORE";
|
|
16
|
+
ResponseBodyAction[ResponseBodyAction["COLLECT"] = 1] = "COLLECT";
|
|
17
|
+
return ResponseBodyAction;
|
|
18
|
+
}({});
|
|
19
|
+
let fetchObservable;
|
|
20
|
+
const responseBodyActionGetters = [];
|
|
21
|
+
function initFetchObservable({ responseBodyAction } = {}) {
|
|
22
|
+
if (responseBodyAction) responseBodyActionGetters.push(responseBodyAction);
|
|
23
|
+
if (!fetchObservable) fetchObservable = createFetchObservable();
|
|
24
|
+
return fetchObservable;
|
|
25
|
+
}
|
|
26
|
+
function createFetchObservable() {
|
|
27
|
+
return new Observable((observable) => {
|
|
28
|
+
if (!globalObject.fetch) return;
|
|
29
|
+
const { stop } = instrumentMethod(globalObject, "fetch", (call) => beforeSend(call, observable), { computeHandlingStack: true });
|
|
30
|
+
return stop;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
function beforeSend({ parameters, onPostCall, handlingStack }, observable) {
|
|
34
|
+
const [input, init] = parameters;
|
|
35
|
+
let methodFromParams = init?.method;
|
|
36
|
+
if (methodFromParams === void 0 && input instanceof Request) methodFromParams = input.method;
|
|
37
|
+
const method = methodFromParams !== void 0 ? String(methodFromParams).toUpperCase() : "GET";
|
|
38
|
+
const url = input instanceof Request ? input.url : normalizeUrl(String(input));
|
|
39
|
+
const context = {
|
|
40
|
+
state: "start",
|
|
41
|
+
init,
|
|
42
|
+
input,
|
|
43
|
+
method,
|
|
44
|
+
startClocks: clocksNow(),
|
|
45
|
+
url,
|
|
46
|
+
handlingStack,
|
|
47
|
+
isAbortedOnStart: input instanceof Request && input.signal?.aborted || init?.signal?.aborted || false
|
|
48
|
+
};
|
|
49
|
+
observable.notify(context);
|
|
50
|
+
parameters[0] = context.input;
|
|
51
|
+
parameters[1] = context.init;
|
|
52
|
+
onPostCall((responsePromise) => {
|
|
53
|
+
afterSend(observable, responsePromise, context).catch(monitorError);
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
async function afterSend(observable, responsePromise, startContext) {
|
|
57
|
+
const context = startContext;
|
|
58
|
+
let response;
|
|
59
|
+
try {
|
|
60
|
+
response = await responsePromise;
|
|
61
|
+
} catch (error) {
|
|
62
|
+
observable.notify({
|
|
63
|
+
...context,
|
|
64
|
+
state: "resolve",
|
|
65
|
+
status: 0,
|
|
66
|
+
isAborted: context.init?.signal?.aborted || error instanceof DOMException && error.code === DOMException.ABORT_ERR,
|
|
67
|
+
error
|
|
68
|
+
});
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
context.response = response;
|
|
72
|
+
context.status = response.status;
|
|
73
|
+
context.responseType = response.type;
|
|
74
|
+
context.isAborted = false;
|
|
75
|
+
if (responseBodyActionGetters.reduce((action, getter) => Math.max(action, getter(context)), 0) === 1) {
|
|
76
|
+
const clonedResponse = tryToClone(response);
|
|
77
|
+
if (clonedResponse?.body) try {
|
|
78
|
+
const bytes = await readBytesFromStream(clonedResponse.body);
|
|
79
|
+
context.responseBody = new TextDecoder().decode(bytes);
|
|
80
|
+
} catch {}
|
|
81
|
+
}
|
|
82
|
+
observable.notify({
|
|
83
|
+
...context,
|
|
84
|
+
state: "resolve"
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
//#endregion
|
|
88
|
+
export { ResponseBodyAction, initFetchObservable };
|
|
89
|
+
|
|
90
|
+
//# sourceMappingURL=fetchObservable.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fetchObservable.mjs","names":[],"sources":["../../src/browser/fetchObservable.ts"],"sourcesContent":["import type { ClocksState } from '@openobserve/js-core/time'\nimport { clocksNow } from '@openobserve/js-core/time'\nimport type { InstrumentedMethodCall } from '../tools/instrumentMethod'\nimport { instrumentMethod } from '../tools/instrumentMethod'\nimport { monitorError } from '../tools/monitor'\nimport { Observable } from '../tools/observable'\nimport { normalizeUrl } from '../tools/utils/urlPolyfill'\nimport type { GlobalObject } from '../tools/globalObject'\nimport { globalObject } from '../tools/globalObject'\nimport { readBytesFromStream } from '../tools/readBytesFromStream'\nimport { tryToClone } from '../tools/utils/responseUtils'\n\ninterface FetchContextBase {\n method: string\n startClocks: ClocksState\n input: unknown\n init?: RequestInit\n url: string\n handlingStack?: string\n isAbortedOnStart: boolean\n}\n\nexport interface FetchStartContext extends FetchContextBase {\n state: 'start'\n}\n\nexport interface FetchResolveContext extends FetchContextBase {\n state: 'resolve'\n status: number\n response?: Response\n responseBody?: string\n responseType?: string\n isAborted: boolean\n error?: Error\n}\n\nexport type FetchContext = FetchStartContext | FetchResolveContext\n\ntype ResponseBodyActionGetter = (context: FetchResolveContext) => ResponseBodyAction\n\n/**\n * Action to take with the response body of a fetch request.\n * Values are ordered by priority: higher values take precedence when multiple actions are requested.\n */\nexport const enum ResponseBodyAction {\n IGNORE = 0,\n COLLECT = 1,\n}\n\nlet fetchObservable: Observable<FetchContext> | undefined\nconst responseBodyActionGetters: ResponseBodyActionGetter[] = []\n\nexport function initFetchObservable({ responseBodyAction }: { responseBodyAction?: ResponseBodyActionGetter } = {}) {\n if (responseBodyAction) {\n responseBodyActionGetters.push(responseBodyAction)\n }\n if (!fetchObservable) {\n fetchObservable = createFetchObservable()\n }\n return fetchObservable\n}\n\nexport function resetFetchObservable() {\n fetchObservable = undefined\n responseBodyActionGetters.length = 0\n}\n\nfunction createFetchObservable() {\n return new Observable<FetchContext>((observable) => {\n // eslint-disable-next-line local-rules/disallow-zone-js-patched-values\n if (!globalObject.fetch) {\n return\n }\n\n const { stop } = instrumentMethod(globalObject, 'fetch', (call) => beforeSend(call, observable), {\n computeHandlingStack: true,\n })\n\n return stop\n })\n}\n\nfunction beforeSend(\n { parameters, onPostCall, handlingStack }: InstrumentedMethodCall<GlobalObject, 'fetch'>,\n observable: Observable<FetchContext>\n) {\n const [input, init] = parameters\n let methodFromParams = init?.method\n\n if (methodFromParams === undefined && input instanceof Request) {\n methodFromParams = input.method\n }\n\n const method = methodFromParams !== undefined ? String(methodFromParams).toUpperCase() : 'GET'\n const url = input instanceof Request ? input.url : normalizeUrl(String(input))\n const startClocks = clocksNow()\n\n const context: FetchStartContext = {\n state: 'start',\n init,\n input,\n method,\n startClocks,\n url,\n handlingStack,\n isAbortedOnStart: (input instanceof Request && input.signal?.aborted) || init?.signal?.aborted || false,\n }\n\n observable.notify(context)\n\n // Those properties can be changed by observable subscribers\n parameters[0] = context.input as RequestInfo | URL\n parameters[1] = context.init\n\n onPostCall((responsePromise) => {\n afterSend(observable, responsePromise, context).catch(monitorError)\n })\n}\n\nasync function afterSend(\n observable: Observable<FetchContext>,\n responsePromise: Promise<Response>,\n startContext: FetchStartContext\n) {\n const context = startContext as unknown as FetchResolveContext\n\n let response: Response\n\n try {\n response = await responsePromise\n } catch (error) {\n observable.notify({\n ...context,\n state: 'resolve',\n status: 0,\n isAborted:\n context.init?.signal?.aborted || (error instanceof DOMException && error.code === DOMException.ABORT_ERR),\n error: error as Error,\n })\n return\n }\n\n context.response = response\n context.status = response.status\n context.responseType = response.type\n context.isAborted = false\n\n const responseBodyCondition: ResponseBodyAction = responseBodyActionGetters.reduce<number>(\n (action, getter) => Math.max(action, getter(context)),\n ResponseBodyAction.IGNORE\n )\n\n if (responseBodyCondition === ResponseBodyAction.COLLECT) {\n const clonedResponse = tryToClone(response)\n if (clonedResponse?.body) {\n try {\n const bytes = await readBytesFromStream(clonedResponse.body)\n context.responseBody = new TextDecoder().decode(bytes)\n } catch {\n // Ignore errors when reading the response body (e.g., stream aborted, network errors)\n // This is not critical and should not be reported as an SDK error\n }\n }\n }\n\n observable.notify({ ...context, state: 'resolve' })\n}\n"],"mappings":";;;;;;;;;;;;;AA4CA,IAAkB,qBAAX,yBAAA,oBAAA;CACL,mBAAA,mBAAA,YAAA,KAAA;CACA,mBAAA,mBAAA,aAAA,KAAA;;AACF,EAAA,CAAA,CAAA;AAEA,IAAI;AACJ,MAAM,4BAAwD,CAAC;AAE/D,SAAgB,oBAAoB,EAAE,uBAA0E,CAAC,GAAG;CAClH,IAAI,oBACF,0BAA0B,KAAK,kBAAkB;CAEnD,IAAI,CAAC,iBACH,kBAAkB,sBAAsB;CAE1C,OAAO;AACT;AAOA,SAAS,wBAAwB;CAC/B,OAAO,IAAI,YAA0B,eAAe;EAElD,IAAI,CAAC,aAAa,OAChB;EAGF,MAAM,EAAE,SAAS,iBAAiB,cAAc,UAAU,SAAS,WAAW,MAAM,UAAU,GAAG,EAC/F,sBAAsB,KACxB,CAAC;EAED,OAAO;CACT,CAAC;AACH;AAEA,SAAS,WACP,EAAE,YAAY,YAAY,iBAC1B,YACA;CACA,MAAM,CAAC,OAAO,QAAQ;CACtB,IAAI,mBAAmB,MAAM;CAE7B,IAAI,qBAAqB,KAAA,KAAa,iBAAiB,SACrD,mBAAmB,MAAM;CAG3B,MAAM,SAAS,qBAAqB,KAAA,IAAY,OAAO,gBAAgB,CAAC,CAAC,YAAY,IAAI;CACzF,MAAM,MAAM,iBAAiB,UAAU,MAAM,MAAM,aAAa,OAAO,KAAK,CAAC;CAG7E,MAAM,UAA6B;EACjC,OAAO;EACP;EACA;EACA;EACA,aAPkB,UAOR;EACV;EACA;EACA,kBAAmB,iBAAiB,WAAW,MAAM,QAAQ,WAAY,MAAM,QAAQ,WAAW;CACpG;CAEA,WAAW,OAAO,OAAO;CAGzB,WAAW,KAAK,QAAQ;CACxB,WAAW,KAAK,QAAQ;CAExB,YAAY,oBAAoB;EAC9B,UAAU,YAAY,iBAAiB,OAAO,CAAC,CAAC,MAAM,YAAY;CACpE,CAAC;AACH;AAEA,eAAe,UACb,YACA,iBACA,cACA;CACA,MAAM,UAAU;CAEhB,IAAI;CAEJ,IAAI;EACF,WAAW,MAAM;CACnB,SAAS,OAAO;EACd,WAAW,OAAO;GAChB,GAAG;GACH,OAAO;GACP,QAAQ;GACR,WACE,QAAQ,MAAM,QAAQ,WAAY,iBAAiB,gBAAgB,MAAM,SAAS,aAAa;GAC1F;EACT,CAAC;EACD;CACF;CAEA,QAAQ,WAAW;CACnB,QAAQ,SAAS,SAAS;CAC1B,QAAQ,eAAe,SAAS;CAChC,QAAQ,YAAY;CAOpB,IALkD,0BAA0B,QACzE,QAAQ,WAAW,KAAK,IAAI,QAAQ,OAAO,OAAO,CAAC,GAAA,CAI9B,MAAA,GAAkC;EACxD,MAAM,iBAAiB,WAAW,QAAQ;EAC1C,IAAI,gBAAgB,MAClB,IAAI;GACF,MAAM,QAAQ,MAAM,oBAAoB,eAAe,IAAI;GAC3D,QAAQ,eAAe,IAAI,YAAY,CAAC,CAAC,OAAO,KAAK;EACvD,QAAQ,CAGR;CAEJ;CAEA,WAAW,OAAO;EAAE,GAAG;EAAS,OAAO;CAAU,CAAC;AACpD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { isWorkerEnvironment } from "../tools/globalObject.mjs";
|
|
2
|
+
import { Observable } from "../tools/observable.mjs";
|
|
3
|
+
import { addEventListener, addEventListeners } from "./addEventListener.mjs";
|
|
4
|
+
import { objectValues } from "../tools/utils/polyfills.mjs";
|
|
5
|
+
//#region src/browser/pageMayExitObservable.ts
|
|
6
|
+
const PageExitReason = {
|
|
7
|
+
HIDDEN: "visibility_hidden",
|
|
8
|
+
UNLOADING: "before_unload",
|
|
9
|
+
PAGEHIDE: "page_hide",
|
|
10
|
+
FROZEN: "page_frozen"
|
|
11
|
+
};
|
|
12
|
+
function createPageMayExitObservable() {
|
|
13
|
+
return new Observable((observable) => {
|
|
14
|
+
if (isWorkerEnvironment) return;
|
|
15
|
+
const { stop: stopListeners } = addEventListeners(window, ["visibilitychange", "freeze"], (event) => {
|
|
16
|
+
if (event.type === "visibilitychange" && document.visibilityState === "hidden")
|
|
17
|
+
/**
|
|
18
|
+
* Only event that guarantee to fire on mobile devices when the page transitions to background state
|
|
19
|
+
* (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.
|
|
20
|
+
*/
|
|
21
|
+
observable.notify({ reason: PageExitReason.HIDDEN });
|
|
22
|
+
else if (event.type === "freeze")
|
|
23
|
+
/**
|
|
24
|
+
* After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)
|
|
25
|
+
* Allow to collect events happening between hidden and frozen state.
|
|
26
|
+
*/
|
|
27
|
+
observable.notify({ reason: PageExitReason.FROZEN });
|
|
28
|
+
}, { capture: true });
|
|
29
|
+
const stopBeforeUnloadListener = addEventListener(window, "beforeunload", () => {
|
|
30
|
+
observable.notify({ reason: PageExitReason.UNLOADING });
|
|
31
|
+
}).stop;
|
|
32
|
+
return () => {
|
|
33
|
+
stopListeners();
|
|
34
|
+
stopBeforeUnloadListener();
|
|
35
|
+
};
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
function isPageExitReason(reason) {
|
|
39
|
+
return objectValues(PageExitReason).includes(reason);
|
|
40
|
+
}
|
|
41
|
+
//#endregion
|
|
42
|
+
export { PageExitReason, createPageMayExitObservable, isPageExitReason };
|
|
43
|
+
|
|
44
|
+
//# sourceMappingURL=pageMayExitObservable.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageMayExitObservable.mjs","names":[],"sources":["../../src/browser/pageMayExitObservable.ts"],"sourcesContent":["import { Observable } from '../tools/observable'\nimport { objectValues } from '../tools/utils/polyfills'\nimport { isWorkerEnvironment } from '../tools/globalObject'\nimport { addEventListeners, addEventListener, DOM_EVENT } from './addEventListener'\n\nexport const PageExitReason = {\n HIDDEN: 'visibility_hidden',\n UNLOADING: 'before_unload',\n PAGEHIDE: 'page_hide',\n FROZEN: 'page_frozen',\n} as const\n\nexport type PageExitReason = (typeof PageExitReason)[keyof typeof PageExitReason]\n\nexport interface PageMayExitEvent {\n reason: PageExitReason\n}\n\nexport function createPageMayExitObservable(): Observable<PageMayExitEvent> {\n return new Observable<PageMayExitEvent>((observable) => {\n if (isWorkerEnvironment) {\n // Page exit is not observable in worker environments (no window/document events)\n return\n }\n const { stop: stopListeners } = addEventListeners(\n window,\n [DOM_EVENT.VISIBILITY_CHANGE, DOM_EVENT.FREEZE],\n (event) => {\n if (event.type === DOM_EVENT.VISIBILITY_CHANGE && document.visibilityState === 'hidden') {\n /**\n * Only event that guarantee to fire on mobile devices when the page transitions to background state\n * (e.g. when user switches to a different application, goes to homescreen, etc), or is being unloaded.\n */\n observable.notify({ reason: PageExitReason.HIDDEN })\n } else if (event.type === DOM_EVENT.FREEZE) {\n /**\n * After transitioning in background a tab can be freezed to preserve resources. (cf: https://developer.chrome.com/blog/page-lifecycle-api)\n * Allow to collect events happening between hidden and frozen state.\n */\n observable.notify({ reason: PageExitReason.FROZEN })\n }\n },\n { capture: true }\n )\n\n const stopBeforeUnloadListener = addEventListener(window, DOM_EVENT.BEFORE_UNLOAD, () => {\n observable.notify({ reason: PageExitReason.UNLOADING })\n }).stop\n\n return () => {\n stopListeners()\n stopBeforeUnloadListener()\n }\n })\n}\n\nexport function isPageExitReason(reason: string): reason is PageExitReason {\n return objectValues(PageExitReason).includes(reason as PageExitReason)\n}\n"],"mappings":";;;;;AAKA,MAAa,iBAAiB;CAC5B,QAAQ;CACR,WAAW;CACX,UAAU;CACV,QAAQ;AACV;AAQA,SAAgB,8BAA4D;CAC1E,OAAO,IAAI,YAA8B,eAAe;EACtD,IAAI,qBAEF;EAEF,MAAM,EAAE,MAAM,kBAAkB,kBAC9B,QACA,CAAA,oBAAA,QAA8C,IAC7C,UAAU;GACT,IAAI,MAAM,SAAA,sBAAwC,SAAS,oBAAoB;;;;;GAK7E,WAAW,OAAO,EAAE,QAAQ,eAAe,OAAO,CAAC;QAC9C,IAAI,MAAM,SAAA;;;;;GAKf,WAAW,OAAO,EAAE,QAAQ,eAAe,OAAO,CAAC;EAEvD,GACA,EAAE,SAAS,KAAK,CAClB;EAEA,MAAM,2BAA2B,iBAAiB,QAAA,sBAAuC;GACvF,WAAW,OAAO,EAAE,QAAQ,eAAe,UAAU,CAAC;EACxD,CAAC,CAAC,CAAC;EAEH,aAAa;GACX,cAAc;GACd,yBAAyB;EAC3B;CACF,CAAC;AACH;AAEA,SAAgB,iBAAiB,QAA0C;CACzE,OAAO,aAAa,cAAc,CAAC,CAAC,SAAS,MAAwB;AACvE"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { noop } from "../tools/utils/functionUtils.mjs";
|
|
2
|
+
import { addEventListener } from "./addEventListener.mjs";
|
|
3
|
+
//#region src/browser/runOnReadyState.ts
|
|
4
|
+
function runOnReadyState(expectedReadyState, callback) {
|
|
5
|
+
if (document.readyState === expectedReadyState || document.readyState === "complete") {
|
|
6
|
+
callback();
|
|
7
|
+
return { stop: noop };
|
|
8
|
+
}
|
|
9
|
+
return addEventListener(window, expectedReadyState === "complete" ? "load" : "DOMContentLoaded", callback, { once: true });
|
|
10
|
+
}
|
|
11
|
+
function asyncRunOnReadyState(expectedReadyState) {
|
|
12
|
+
return new Promise((resolve) => {
|
|
13
|
+
runOnReadyState(expectedReadyState, resolve);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { asyncRunOnReadyState, runOnReadyState };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=runOnReadyState.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runOnReadyState.mjs","names":[],"sources":["../../src/browser/runOnReadyState.ts"],"sourcesContent":["import { noop } from '../tools/utils/functionUtils'\nimport { DOM_EVENT, addEventListener } from './addEventListener'\n\nexport function runOnReadyState(\n expectedReadyState: 'complete' | 'interactive',\n callback: () => void\n): { stop: () => void } {\n if (document.readyState === expectedReadyState || document.readyState === 'complete') {\n callback()\n return { stop: noop }\n }\n const eventName = expectedReadyState === 'complete' ? DOM_EVENT.LOAD : DOM_EVENT.DOM_CONTENT_LOADED\n return addEventListener(window, eventName, callback, { once: true })\n}\n\nexport function asyncRunOnReadyState(expectedReadyState: 'complete' | 'interactive'): Promise<void> {\n return new Promise((resolve) => {\n runOnReadyState(expectedReadyState, resolve)\n })\n}\n"],"mappings":";;;AAGA,SAAgB,gBACd,oBACA,UACsB;CACtB,IAAI,SAAS,eAAe,sBAAsB,SAAS,eAAe,YAAY;EACpF,SAAS;EACT,OAAO,EAAE,MAAM,KAAK;CACtB;CAEA,OAAO,iBAAiB,QADN,uBAAuB,aAAA,SAAA,oBACE,UAAU,EAAE,MAAM,KAAK,CAAC;AACrE;AAEA,SAAgB,qBAAqB,oBAA+D;CAClG,OAAO,IAAI,SAAS,YAAY;EAC9B,gBAAgB,oBAAoB,OAAO;CAC7C,CAAC;AACH"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import { globalObject } from "../tools/globalObject.mjs";
|
|
2
|
+
import { normalizeUrl } from "../tools/utils/urlPolyfill.mjs";
|
|
3
|
+
import { Observable } from "../tools/observable.mjs";
|
|
4
|
+
import { instrumentMethod } from "../tools/instrumentMethod.mjs";
|
|
5
|
+
import { addEventListener } from "./addEventListener.mjs";
|
|
6
|
+
import { clocksNow, elapsed, timeStampNow } from "@openobserve/js-core/time";
|
|
7
|
+
//#region src/browser/xhrObservable.ts
|
|
8
|
+
let xhrObservable;
|
|
9
|
+
const xhrContexts = /* @__PURE__ */ new WeakMap();
|
|
10
|
+
function initXhrObservable() {
|
|
11
|
+
if (!xhrObservable) xhrObservable = createXhrObservable();
|
|
12
|
+
return xhrObservable;
|
|
13
|
+
}
|
|
14
|
+
function createXhrObservable() {
|
|
15
|
+
if (!("XMLHttpRequest" in globalObject)) return new Observable();
|
|
16
|
+
return new Observable((observable) => {
|
|
17
|
+
const { stop: stopInstrumentingStart } = instrumentMethod(XMLHttpRequest.prototype, "open", openXhr);
|
|
18
|
+
const { stop: stopInstrumentingSend } = instrumentMethod(XMLHttpRequest.prototype, "send", (call) => {
|
|
19
|
+
sendXhr(call, observable);
|
|
20
|
+
}, { computeHandlingStack: true });
|
|
21
|
+
const { stop: stopInstrumentingAbort } = instrumentMethod(XMLHttpRequest.prototype, "abort", abortXhr);
|
|
22
|
+
return () => {
|
|
23
|
+
stopInstrumentingStart();
|
|
24
|
+
stopInstrumentingSend();
|
|
25
|
+
stopInstrumentingAbort();
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function openXhr({ target: xhr, parameters: [method, url] }) {
|
|
30
|
+
xhrContexts.set(xhr, {
|
|
31
|
+
state: "open",
|
|
32
|
+
method: String(method).toUpperCase(),
|
|
33
|
+
url: normalizeUrl(String(url))
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function sendXhr({ target: xhr, parameters: [body], handlingStack }, observable) {
|
|
37
|
+
const context = xhrContexts.get(xhr);
|
|
38
|
+
if (!context) return;
|
|
39
|
+
const startContext = context;
|
|
40
|
+
startContext.state = "start";
|
|
41
|
+
startContext.startClocks = clocksNow();
|
|
42
|
+
startContext.isAborted = false;
|
|
43
|
+
startContext.xhr = xhr;
|
|
44
|
+
startContext.handlingStack = handlingStack;
|
|
45
|
+
startContext.requestBody = body;
|
|
46
|
+
let hasBeenReported = false;
|
|
47
|
+
const { stop: stopInstrumentingOnReadyStateChange } = instrumentMethod(xhr, "onreadystatechange", () => {
|
|
48
|
+
if (xhr.readyState === XMLHttpRequest.DONE) onEnd();
|
|
49
|
+
});
|
|
50
|
+
const onEnd = () => {
|
|
51
|
+
unsubscribeLoadEndListener();
|
|
52
|
+
stopInstrumentingOnReadyStateChange();
|
|
53
|
+
if (hasBeenReported) return;
|
|
54
|
+
hasBeenReported = true;
|
|
55
|
+
const completeContext = context;
|
|
56
|
+
completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow());
|
|
57
|
+
completeContext.status = xhr.status;
|
|
58
|
+
if (typeof xhr.response === "string") completeContext.responseBody = xhr.response;
|
|
59
|
+
observable.notify({
|
|
60
|
+
...completeContext,
|
|
61
|
+
state: "complete"
|
|
62
|
+
});
|
|
63
|
+
};
|
|
64
|
+
const { stop: unsubscribeLoadEndListener } = addEventListener(xhr, "loadend", onEnd);
|
|
65
|
+
observable.notify(startContext);
|
|
66
|
+
}
|
|
67
|
+
function abortXhr({ target: xhr }) {
|
|
68
|
+
const context = xhrContexts.get(xhr);
|
|
69
|
+
if (context) context.isAborted = true;
|
|
70
|
+
}
|
|
71
|
+
//#endregion
|
|
72
|
+
export { initXhrObservable };
|
|
73
|
+
|
|
74
|
+
//# sourceMappingURL=xhrObservable.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xhrObservable.mjs","names":[],"sources":["../../src/browser/xhrObservable.ts"],"sourcesContent":["import { elapsed, timeStampNow, clocksNow } from '@openobserve/js-core/time'\nimport type { Duration, ClocksState } from '@openobserve/js-core/time'\nimport type { InstrumentedMethodCall } from '../tools/instrumentMethod'\nimport { instrumentMethod } from '../tools/instrumentMethod'\nimport { Observable } from '../tools/observable'\nimport { normalizeUrl } from '../tools/utils/urlPolyfill'\nimport { globalObject } from '../tools/globalObject'\nimport { addEventListener } from './addEventListener'\n\nexport interface XhrOpenContext {\n state: 'open'\n method: string\n url: string\n}\n\nexport interface XhrStartContext extends Omit<XhrOpenContext, 'state'> {\n state: 'start'\n startClocks: ClocksState\n isAborted: boolean\n xhr: XMLHttpRequest\n handlingStack?: string\n requestBody?: unknown\n}\n\nexport interface XhrCompleteContext extends Omit<XhrStartContext, 'state'> {\n state: 'complete'\n duration: Duration\n status: number\n responseBody?: string\n}\n\nexport type XhrContext = XhrOpenContext | XhrStartContext | XhrCompleteContext\n\nlet xhrObservable: Observable<XhrContext> | undefined\nconst xhrContexts = new WeakMap<XMLHttpRequest, XhrContext>()\n\nexport function initXhrObservable() {\n if (!xhrObservable) {\n xhrObservable = createXhrObservable()\n }\n return xhrObservable\n}\n\nfunction createXhrObservable() {\n if (!('XMLHttpRequest' in globalObject)) {\n return new Observable<XhrContext>()\n }\n\n return new Observable<XhrContext>((observable) => {\n const { stop: stopInstrumentingStart } = instrumentMethod(XMLHttpRequest.prototype, 'open', openXhr)\n\n const { stop: stopInstrumentingSend } = instrumentMethod(\n XMLHttpRequest.prototype,\n 'send',\n (call) => {\n sendXhr(call, observable)\n },\n { computeHandlingStack: true }\n )\n\n const { stop: stopInstrumentingAbort } = instrumentMethod(XMLHttpRequest.prototype, 'abort', abortXhr)\n\n return () => {\n stopInstrumentingStart()\n stopInstrumentingSend()\n stopInstrumentingAbort()\n }\n })\n}\n\nfunction openXhr({ target: xhr, parameters: [method, url] }: InstrumentedMethodCall<XMLHttpRequest, 'open'>) {\n xhrContexts.set(xhr, {\n state: 'open',\n method: String(method).toUpperCase(),\n url: normalizeUrl(String(url)),\n })\n}\n\nfunction sendXhr(\n { target: xhr, parameters: [body], handlingStack }: InstrumentedMethodCall<XMLHttpRequest, 'send'>,\n observable: Observable<XhrContext>\n) {\n const context = xhrContexts.get(xhr)\n if (!context) {\n return\n }\n\n const startContext = context as XhrStartContext\n startContext.state = 'start'\n startContext.startClocks = clocksNow()\n startContext.isAborted = false\n startContext.xhr = xhr\n startContext.handlingStack = handlingStack\n startContext.requestBody = body\n\n let hasBeenReported = false\n\n const { stop: stopInstrumentingOnReadyStateChange } = instrumentMethod(xhr, 'onreadystatechange', () => {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n // Try to report the XHR as soon as possible, because the XHR may be mutated by the\n // application during a future event. For example, Angular is calling .abort() on\n // completed requests during an onreadystatechange event, so the status becomes '0'\n // before the request is collected.\n onEnd()\n }\n })\n\n const onEnd = () => {\n unsubscribeLoadEndListener()\n stopInstrumentingOnReadyStateChange()\n if (hasBeenReported) {\n return\n }\n hasBeenReported = true\n\n const completeContext = context as XhrCompleteContext\n completeContext.duration = elapsed(startContext.startClocks.timeStamp, timeStampNow())\n completeContext.status = xhr.status\n if (typeof xhr.response === 'string') {\n completeContext.responseBody = xhr.response\n }\n observable.notify({ ...completeContext, state: 'complete' })\n }\n\n const { stop: unsubscribeLoadEndListener } = addEventListener(xhr, 'loadend', onEnd)\n\n observable.notify(startContext)\n}\n\nfunction abortXhr({ target: xhr }: InstrumentedMethodCall<XMLHttpRequest, 'abort'>) {\n const context = xhrContexts.get(xhr) as XhrStartContext | undefined\n if (context) {\n context.isAborted = true\n }\n}\n\n/**\n * Reset the XHR observable global state. This is useful for testing to ensure clean state between tests.\n *\n * @internal\n */\nexport function resetXhrObservable() {\n xhrObservable = undefined\n}\n"],"mappings":";;;;;;;AAiCA,IAAI;AACJ,MAAM,8BAAc,IAAI,QAAoC;AAE5D,SAAgB,oBAAoB;CAClC,IAAI,CAAC,eACH,gBAAgB,oBAAoB;CAEtC,OAAO;AACT;AAEA,SAAS,sBAAsB;CAC7B,IAAI,EAAE,oBAAoB,eACxB,OAAO,IAAI,WAAuB;CAGpC,OAAO,IAAI,YAAwB,eAAe;EAChD,MAAM,EAAE,MAAM,2BAA2B,iBAAiB,eAAe,WAAW,QAAQ,OAAO;EAEnG,MAAM,EAAE,MAAM,0BAA0B,iBACtC,eAAe,WACf,SACC,SAAS;GACR,QAAQ,MAAM,UAAU;EAC1B,GACA,EAAE,sBAAsB,KAAK,CAC/B;EAEA,MAAM,EAAE,MAAM,2BAA2B,iBAAiB,eAAe,WAAW,SAAS,QAAQ;EAErG,aAAa;GACX,uBAAuB;GACvB,sBAAsB;GACtB,uBAAuB;EACzB;CACF,CAAC;AACH;AAEA,SAAS,QAAQ,EAAE,QAAQ,KAAK,YAAY,CAAC,QAAQ,QAAwD;CAC3G,YAAY,IAAI,KAAK;EACnB,OAAO;EACP,QAAQ,OAAO,MAAM,CAAC,CAAC,YAAY;EACnC,KAAK,aAAa,OAAO,GAAG,CAAC;CAC/B,CAAC;AACH;AAEA,SAAS,QACP,EAAE,QAAQ,KAAK,YAAY,CAAC,OAAO,iBACnC,YACA;CACA,MAAM,UAAU,YAAY,IAAI,GAAG;CACnC,IAAI,CAAC,SACH;CAGF,MAAM,eAAe;CACrB,aAAa,QAAQ;CACrB,aAAa,cAAc,UAAU;CACrC,aAAa,YAAY;CACzB,aAAa,MAAM;CACnB,aAAa,gBAAgB;CAC7B,aAAa,cAAc;CAE3B,IAAI,kBAAkB;CAEtB,MAAM,EAAE,MAAM,wCAAwC,iBAAiB,KAAK,4BAA4B;EACtG,IAAI,IAAI,eAAe,eAAe,MAKpC,MAAM;CAEV,CAAC;CAED,MAAM,cAAc;EAClB,2BAA2B;EAC3B,oCAAoC;EACpC,IAAI,iBACF;EAEF,kBAAkB;EAElB,MAAM,kBAAkB;EACxB,gBAAgB,WAAW,QAAQ,aAAa,YAAY,WAAW,aAAa,CAAC;EACrF,gBAAgB,SAAS,IAAI;EAC7B,IAAI,OAAO,IAAI,aAAa,UAC1B,gBAAgB,eAAe,IAAI;EAErC,WAAW,OAAO;GAAE,GAAG;GAAiB,OAAO;EAAW,CAAC;CAC7D;CAEA,MAAM,EAAE,MAAM,+BAA+B,iBAAiB,KAAK,WAAW,KAAK;CAEnF,WAAW,OAAO,YAAY;AAChC;AAEA,SAAS,SAAS,EAAE,QAAQ,OAAwD;CAClF,MAAM,UAAU,YAAY,IAAI,GAAG;CACnC,IAAI,SACF,QAAQ,YAAY;AAExB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { display } from "../tools/display.mjs";
|
|
2
|
+
import { globalObject } from "../tools/globalObject.mjs";
|
|
3
|
+
import { matchList } from "../tools/matchOption.mjs";
|
|
4
|
+
import { mockable } from "../tools/mockable.mjs";
|
|
5
|
+
import { isUnsupportedExtensionEnvironment } from "./extension/extensionUtils.mjs";
|
|
6
|
+
//#region src/domain/allowedTrackingOrigins.ts
|
|
7
|
+
const ERROR_DOES_NOT_HAVE_ALLOWED_TRACKING_ORIGIN = "Running the Browser SDK in a Web extension content script is forbidden unless the `allowedTrackingOrigins` option is provided.";
|
|
8
|
+
const ERROR_NOT_ALLOWED_TRACKING_ORIGIN = "SDK initialized on a non-allowed domain.";
|
|
9
|
+
function isAllowedTrackingOrigins(configuration, errorStack) {
|
|
10
|
+
const location = mockable(globalObject.location);
|
|
11
|
+
const windowOrigin = location ? location.origin : "";
|
|
12
|
+
const allowedTrackingOrigins = configuration.allowedTrackingOrigins;
|
|
13
|
+
if (!allowedTrackingOrigins) {
|
|
14
|
+
if (isUnsupportedExtensionEnvironment(windowOrigin, errorStack)) {
|
|
15
|
+
display.error(ERROR_DOES_NOT_HAVE_ALLOWED_TRACKING_ORIGIN);
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
const isAllowed = matchList(allowedTrackingOrigins, windowOrigin);
|
|
21
|
+
if (!isAllowed) display.error(ERROR_NOT_ALLOWED_TRACKING_ORIGIN);
|
|
22
|
+
return isAllowed;
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { isAllowedTrackingOrigins };
|
|
26
|
+
|
|
27
|
+
//# sourceMappingURL=allowedTrackingOrigins.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"allowedTrackingOrigins.mjs","names":[],"sources":["../../src/domain/allowedTrackingOrigins.ts"],"sourcesContent":["import { display } from '../tools/display'\nimport { globalObject } from '../tools/globalObject'\nimport { matchList } from '../tools/matchOption'\nimport { mockable } from '../tools/mockable'\nimport type { InitConfiguration } from './configuration'\nimport { isUnsupportedExtensionEnvironment } from './extension/extensionUtils'\n\nexport const ERROR_DOES_NOT_HAVE_ALLOWED_TRACKING_ORIGIN =\n 'Running the Browser SDK in a Web extension content script is forbidden unless the `allowedTrackingOrigins` option is provided.'\nexport const ERROR_NOT_ALLOWED_TRACKING_ORIGIN = 'SDK initialized on a non-allowed domain.'\n\nexport function isAllowedTrackingOrigins(configuration: InitConfiguration, errorStack: string): boolean {\n const location = mockable(globalObject.location)\n const windowOrigin = location ? location.origin : ''\n const allowedTrackingOrigins = configuration.allowedTrackingOrigins\n if (!allowedTrackingOrigins) {\n if (isUnsupportedExtensionEnvironment(windowOrigin, errorStack)) {\n display.error(ERROR_DOES_NOT_HAVE_ALLOWED_TRACKING_ORIGIN)\n\n return false\n }\n return true\n }\n\n const isAllowed = matchList(allowedTrackingOrigins, windowOrigin)\n if (!isAllowed) {\n display.error(ERROR_NOT_ALLOWED_TRACKING_ORIGIN)\n }\n return isAllowed\n}\n"],"mappings":";;;;;;AAOA,MAAa,8CACX;AACF,MAAa,oCAAoC;AAEjD,SAAgB,yBAAyB,eAAkC,YAA6B;CACtG,MAAM,WAAW,SAAS,aAAa,QAAQ;CAC/C,MAAM,eAAe,WAAW,SAAS,SAAS;CAClD,MAAM,yBAAyB,cAAc;CAC7C,IAAI,CAAC,wBAAwB;EAC3B,IAAI,kCAAkC,cAAc,UAAU,GAAG;GAC/D,QAAQ,MAAM,2CAA2C;GAEzD,OAAO;EACT;EACA,OAAO;CACT;CAEA,MAAM,YAAY,UAAU,wBAAwB,YAAY;CAChE,IAAI,CAAC,WACH,QAAQ,MAAM,iCAAiC;CAEjD,OAAO;AACT"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { BufferedObservable } from "../tools/observable.mjs";
|
|
2
|
+
import { mockable } from "../tools/mockable.mjs";
|
|
3
|
+
import { trackRuntimeError } from "./error/trackRuntimeError.mjs";
|
|
4
|
+
import { addTelemetryDebug } from "./telemetry/telemetry.mjs";
|
|
5
|
+
import { initXhrObservable } from "../browser/xhrObservable.mjs";
|
|
6
|
+
import { initFetchObservable } from "../browser/fetchObservable.mjs";
|
|
7
|
+
import { initConsoleObservable } from "./console/consoleObservable.mjs";
|
|
8
|
+
import { ConsoleApiName } from "@openobserve/js-core/util";
|
|
9
|
+
//#region src/domain/bufferedData.ts
|
|
10
|
+
const BUFFER_LIMIT = 500;
|
|
11
|
+
let BufferedDataType = /* @__PURE__ */ function(BufferedDataType) {
|
|
12
|
+
BufferedDataType[BufferedDataType["RUNTIME_ERROR"] = 0] = "RUNTIME_ERROR";
|
|
13
|
+
BufferedDataType[BufferedDataType["FETCH"] = 1] = "FETCH";
|
|
14
|
+
BufferedDataType[BufferedDataType["XHR"] = 2] = "XHR";
|
|
15
|
+
BufferedDataType[BufferedDataType["CONSOLE"] = 3] = "CONSOLE";
|
|
16
|
+
return BufferedDataType;
|
|
17
|
+
}({});
|
|
18
|
+
function startBufferingData() {
|
|
19
|
+
const observable = new BufferedObservable(BUFFER_LIMIT, (count) => {
|
|
20
|
+
addTelemetryDebug("Early data collection dropped data on unbuffer", { count });
|
|
21
|
+
});
|
|
22
|
+
const subscriptions = [];
|
|
23
|
+
function subscribe(type, source) {
|
|
24
|
+
subscriptions.push(source.subscribe((data) => {
|
|
25
|
+
observable.notify({
|
|
26
|
+
type,
|
|
27
|
+
data
|
|
28
|
+
});
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
subscribe(0, mockable(trackRuntimeError)());
|
|
32
|
+
subscribe(1, initFetchObservable());
|
|
33
|
+
subscribe(2, initXhrObservable());
|
|
34
|
+
subscribe(3, initConsoleObservable(Object.values(ConsoleApiName)));
|
|
35
|
+
return {
|
|
36
|
+
observable,
|
|
37
|
+
stop: () => subscriptions.forEach((subscription) => subscription.unsubscribe())
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
export { BufferedDataType, startBufferingData };
|
|
42
|
+
|
|
43
|
+
//# sourceMappingURL=bufferedData.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bufferedData.mjs","names":[],"sources":["../../src/domain/bufferedData.ts"],"sourcesContent":["import { ConsoleApiName } from '@openobserve/js-core/util'\nimport type { Observable, Subscription } from '../tools/observable'\nimport { BufferedObservable } from '../tools/observable'\nimport { mockable } from '../tools/mockable'\nimport type { FetchContext } from '../browser/fetchObservable'\nimport { initFetchObservable } from '../browser/fetchObservable'\nimport type { XhrContext } from '../browser/xhrObservable'\nimport { initXhrObservable } from '../browser/xhrObservable'\nimport { addTelemetryDebug } from './telemetry'\nimport type { RawError } from './error/error.types'\nimport { trackRuntimeError } from './error/trackRuntimeError'\nimport type { ConsoleLog } from './console/consoleObservable'\nimport { initConsoleObservable } from './console/consoleObservable'\n\nconst BUFFER_LIMIT = 500\n\nexport const enum BufferedDataType {\n RUNTIME_ERROR,\n FETCH,\n XHR,\n CONSOLE,\n}\n\nexport type BufferedData =\n | { type: BufferedDataType.RUNTIME_ERROR; data: RawError }\n | { type: BufferedDataType.FETCH; data: FetchContext }\n | { type: BufferedDataType.XHR; data: XhrContext }\n | { type: BufferedDataType.CONSOLE; data: ConsoleLog }\n\nexport function startBufferingData() {\n const observable = new BufferedObservable<BufferedData>(BUFFER_LIMIT, (count) => {\n // monitor-until: 2026-10-14\n addTelemetryDebug('Early data collection dropped data on unbuffer', {\n count,\n })\n })\n const subscriptions: Subscription[] = []\n\n function subscribe<T extends BufferedDataType>(\n type: T,\n source: Observable<Extract<BufferedData, { type: T }>['data']>\n ) {\n subscriptions.push(\n source.subscribe((data) => {\n observable.notify({ type, data } as BufferedData)\n })\n )\n }\n\n subscribe(BufferedDataType.RUNTIME_ERROR, mockable(trackRuntimeError)())\n subscribe(BufferedDataType.FETCH, initFetchObservable())\n subscribe(BufferedDataType.XHR, initXhrObservable())\n subscribe(BufferedDataType.CONSOLE, initConsoleObservable(Object.values(ConsoleApiName)))\n\n return {\n observable,\n stop: () => subscriptions.forEach((subscription) => subscription.unsubscribe()),\n }\n}\n"],"mappings":";;;;;;;;;AAcA,MAAM,eAAe;AAErB,IAAkB,mBAAX,yBAAA,kBAAA;CACL,iBAAA,iBAAA,mBAAA,KAAA;CACA,iBAAA,iBAAA,WAAA,KAAA;CACA,iBAAA,iBAAA,SAAA,KAAA;CACA,iBAAA,iBAAA,aAAA,KAAA;;AACF,EAAA,CAAA,CAAA;AAQA,SAAgB,qBAAqB;CACnC,MAAM,aAAa,IAAI,mBAAiC,eAAe,UAAU;EAE/E,kBAAkB,kDAAkD,EAClE,MACF,CAAC;CACH,CAAC;CACD,MAAM,gBAAgC,CAAC;CAEvC,SAAS,UACP,MACA,QACA;EACA,cAAc,KACZ,OAAO,WAAW,SAAS;GACzB,WAAW,OAAO;IAAE;IAAM;GAAK,CAAiB;EAClD,CAAC,CACH;CACF;CAEA,UAAA,GAA0C,SAAS,iBAAiB,CAAC,CAAC,CAAC;CACvE,UAAA,GAAkC,oBAAoB,CAAC;CACvD,UAAA,GAAgC,kBAAkB,CAAC;CACnD,UAAA,GAAoC,sBAAsB,OAAO,OAAO,cAAc,CAAC,CAAC;CAExF,OAAO;EACL;EACA,YAAY,cAAc,SAAS,iBAAiB,aAAa,YAAY,CAAC;CAChF;AACF"}
|