@openobserve/browser-core 0.3.3 → 0.4.0-beta.1
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 +16 -5
- 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/domain/configuration/transportConfiguration.ts +0 -78
- package/src/domain/session/oldCookiesMigration.ts +0 -42
- package/src/domain/session/sessionStoreOperations.ts +0 -131
- package/src/tools/abstractHooks.ts +0 -72
- package/src/tools/boundedBuffer.ts +0 -45
- package/src/tools/mergeInto.ts +0 -177
- package/src/tools/utils/timeUtils.ts +0 -117
- package/src/tools/utils/typeUtils.ts +0 -12
package/src/tools/matchOption.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { getType } from '@openobserve/js-core/util'
|
|
1
2
|
import { display } from './display'
|
|
2
|
-
import { getType } from './utils/typeUtils'
|
|
3
3
|
|
|
4
4
|
export type MatchOption = string | RegExp | ((value: string) => boolean)
|
|
5
5
|
|
|
@@ -19,6 +19,8 @@ export function matchList(list: MatchOption[], value: string, useStartsWith = fa
|
|
|
19
19
|
if (typeof item === 'function') {
|
|
20
20
|
return item(value)
|
|
21
21
|
} else if (item instanceof RegExp) {
|
|
22
|
+
// Prevent stateful matching
|
|
23
|
+
item.lastIndex = 0
|
|
22
24
|
return item.test(value)
|
|
23
25
|
} else if (typeof item === 'string') {
|
|
24
26
|
return useStartsWith ? value.startsWith(item) : item === value
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
declare const __BUILD_ENV__SDK_VERSION__: string
|
|
2
|
+
|
|
3
|
+
export const mockableReplacements = new Map<unknown, unknown>()
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Wraps a value to make it mockable in tests. In production builds, this is a no-op
|
|
7
|
+
* that returns the value as-is. In test builds, it checks if a mock replacement has
|
|
8
|
+
* been registered and returns that instead.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // In source file:
|
|
12
|
+
* import { mockable } from '../tools/mockable'
|
|
13
|
+
* export function formatNavigationEntry(): string {
|
|
14
|
+
* const navigationEntry = mockable(getNavigationEntry)()
|
|
15
|
+
* ...
|
|
16
|
+
* }
|
|
17
|
+
*
|
|
18
|
+
* // In test file:
|
|
19
|
+
* import { replaceMockable } from '@openobserve/browser-core/test'
|
|
20
|
+
* it('...', () => {
|
|
21
|
+
* replaceMockable(getNavigationEntry, () => FAKE_NAVIGATION_ENTRY)
|
|
22
|
+
* expect(formatNavigationEntry()).toEqual(...)
|
|
23
|
+
* })
|
|
24
|
+
*/
|
|
25
|
+
export function mockable<T>(value: T): T {
|
|
26
|
+
// In test builds, return a wrapper that checks for mocks at call time
|
|
27
|
+
if (__BUILD_ENV__SDK_VERSION__ === 'test' && mockableReplacements.has(value)) {
|
|
28
|
+
return mockableReplacements.get(value)! as T
|
|
29
|
+
}
|
|
30
|
+
// In production, return the value as-is
|
|
31
|
+
return value
|
|
32
|
+
}
|
package/src/tools/monitor.ts
CHANGED
|
@@ -1,72 +1,24 @@
|
|
|
1
|
+
/* eslint-disable local-rules/disallow-side-effects */
|
|
2
|
+
import { createMonitor } from '@openobserve/js-core/monitor'
|
|
3
|
+
import { setDebugMode } from '@openobserve/js-core/util'
|
|
1
4
|
import { display } from './display'
|
|
2
5
|
|
|
3
|
-
|
|
4
|
-
|
|
6
|
+
// The error-collection callback is wired lazily (via `startMonitorErrorCollection`, during telemetry
|
|
7
|
+
// init), so we pass a stable forwarding function to `createMonitor` and keep the real callback in a
|
|
8
|
+
// mutable holder.
|
|
9
|
+
let onMonitorErrorCollected: ((error: unknown) => void) | undefined
|
|
10
|
+
|
|
11
|
+
const { monitored, monitor, callMonitored, monitorError } = createMonitor(display, (error) =>
|
|
12
|
+
onMonitorErrorCollected?.(error)
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
export { monitored, monitor, callMonitored, monitorError }
|
|
5
16
|
|
|
6
17
|
export function startMonitorErrorCollection(newOnMonitorErrorCollected: (error: unknown) => void) {
|
|
7
18
|
onMonitorErrorCollected = newOnMonitorErrorCollected
|
|
8
19
|
}
|
|
9
20
|
|
|
10
|
-
export function setDebugMode(newDebugMode: boolean) {
|
|
11
|
-
debugMode = newDebugMode
|
|
12
|
-
}
|
|
13
|
-
|
|
14
21
|
export function resetMonitor() {
|
|
15
22
|
onMonitorErrorCollected = undefined
|
|
16
|
-
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export function monitored<T extends (...params: any[]) => unknown>(
|
|
20
|
-
_: any,
|
|
21
|
-
__: string,
|
|
22
|
-
descriptor: TypedPropertyDescriptor<T>
|
|
23
|
-
) {
|
|
24
|
-
const originalMethod = descriptor.value!
|
|
25
|
-
descriptor.value = function (this: any, ...args: Parameters<T>) {
|
|
26
|
-
const decorated = onMonitorErrorCollected ? monitor(originalMethod) : originalMethod
|
|
27
|
-
return decorated.apply(this, args) as ReturnType<T>
|
|
28
|
-
} as T
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
export function monitor<T extends (...args: any[]) => any>(fn: T): T {
|
|
32
|
-
return function (this: any) {
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
34
|
-
return callMonitored(fn, this, arguments as unknown as Parameters<T>)
|
|
35
|
-
} as unknown as T // consider output type has input type
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
export function callMonitored<T extends (...args: any[]) => any>(
|
|
39
|
-
fn: T,
|
|
40
|
-
context: ThisParameterType<T>,
|
|
41
|
-
args: Parameters<T>
|
|
42
|
-
): ReturnType<T> | undefined
|
|
43
|
-
export function callMonitored<T extends (this: void) => any>(fn: T): ReturnType<T> | undefined
|
|
44
|
-
export function callMonitored<T extends (...args: any[]) => any>(
|
|
45
|
-
fn: T,
|
|
46
|
-
context?: any,
|
|
47
|
-
args?: any
|
|
48
|
-
): ReturnType<T> | undefined {
|
|
49
|
-
try {
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
51
|
-
return fn.apply(context, args)
|
|
52
|
-
} catch (e) {
|
|
53
|
-
monitorError(e)
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
export function monitorError(e: unknown) {
|
|
58
|
-
displayIfDebugEnabled(e)
|
|
59
|
-
if (onMonitorErrorCollected) {
|
|
60
|
-
try {
|
|
61
|
-
onMonitorErrorCollected(e)
|
|
62
|
-
} catch (e) {
|
|
63
|
-
displayIfDebugEnabled(e)
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
export function displayIfDebugEnabled(...args: any[]) {
|
|
69
|
-
if (debugMode) {
|
|
70
|
-
display.error('[MONITOR]', ...args)
|
|
71
|
-
}
|
|
23
|
+
setDebugMode(false)
|
|
72
24
|
}
|
package/src/tools/observable.ts
CHANGED
|
@@ -51,8 +51,12 @@ export function mergeObservables<T>(...observables: Array<Observable<T>>) {
|
|
|
51
51
|
// eslint-disable-next-line no-restricted-syntax
|
|
52
52
|
export class BufferedObservable<T> extends Observable<T> {
|
|
53
53
|
private buffer: T[] = []
|
|
54
|
+
private droppedCount = 0
|
|
54
55
|
|
|
55
|
-
constructor(
|
|
56
|
+
constructor(
|
|
57
|
+
private maxBufferSize: number,
|
|
58
|
+
private onDrop?: (count: number) => void
|
|
59
|
+
) {
|
|
56
60
|
super()
|
|
57
61
|
}
|
|
58
62
|
|
|
@@ -60,6 +64,7 @@ export class BufferedObservable<T> extends Observable<T> {
|
|
|
60
64
|
this.buffer.push(data)
|
|
61
65
|
if (this.buffer.length > this.maxBufferSize) {
|
|
62
66
|
this.buffer.shift()
|
|
67
|
+
this.droppedCount++
|
|
63
68
|
}
|
|
64
69
|
super.notify(data)
|
|
65
70
|
}
|
|
@@ -98,6 +103,9 @@ export class BufferedObservable<T> extends Observable<T> {
|
|
|
98
103
|
*/
|
|
99
104
|
unbuffer() {
|
|
100
105
|
queueMicrotask(() => {
|
|
106
|
+
if (this.droppedCount > 0 && this.onDrop) {
|
|
107
|
+
this.onDrop(this.droppedCount)
|
|
108
|
+
}
|
|
101
109
|
this.maxBufferSize = this.buffer.length = 0
|
|
102
110
|
})
|
|
103
111
|
}
|
|
@@ -2,7 +2,12 @@ import { monitor } from './monitor'
|
|
|
2
2
|
import { globalObject } from './globalObject'
|
|
3
3
|
|
|
4
4
|
export function queueMicrotask(callback: () => void) {
|
|
5
|
-
|
|
5
|
+
// Intentionally avoid .bind(globalObject): in some environments (e.g. Selenium GeckoDriver's
|
|
6
|
+
// executeScript), globalThis is not a proper global object, so calling the bound function throws
|
|
7
|
+
// 'queueMicrotask called on an object that does not implement interface Window'. Calling it as an
|
|
8
|
+
// unbound method is fine, as the proper global object will be used implicitly.
|
|
9
|
+
// See https://github.com/mozilla/geckodriver/issues/1798
|
|
10
|
+
const nativeImplementation = globalObject.queueMicrotask
|
|
6
11
|
|
|
7
12
|
if (typeof nativeImplementation === 'function') {
|
|
8
13
|
nativeImplementation(monitor(callback))
|
|
@@ -2,17 +2,10 @@ import type { Uint8ArrayBuffer } from './utils/byteUtils'
|
|
|
2
2
|
import { concatBuffers } from './utils/byteUtils'
|
|
3
3
|
import { noop } from './utils/functionUtils'
|
|
4
4
|
|
|
5
|
-
interface Options {
|
|
6
|
-
// TODO(next-major): always collect stream body when `trackEarlyRequests` is removed, as we don't
|
|
7
|
-
// need to use this function to just wait for the end of the stream without collecting it
|
|
8
|
-
collectStreamBody?: boolean
|
|
9
|
-
}
|
|
10
|
-
|
|
11
5
|
/**
|
|
12
6
|
* Read bytes from a ReadableStream until the end of the stream.
|
|
13
|
-
* Returns the bytes if collectStreamBody is true, otherwise returns undefined.
|
|
14
7
|
*/
|
|
15
|
-
export async function readBytesFromStream(stream: ReadableStream<Uint8ArrayBuffer
|
|
8
|
+
export async function readBytesFromStream(stream: ReadableStream<Uint8ArrayBuffer>) {
|
|
16
9
|
const reader = stream.getReader()
|
|
17
10
|
const chunks: Uint8ArrayBuffer[] = []
|
|
18
11
|
|
|
@@ -22,9 +15,7 @@ export async function readBytesFromStream(stream: ReadableStream<Uint8ArrayBuffe
|
|
|
22
15
|
break
|
|
23
16
|
}
|
|
24
17
|
|
|
25
|
-
|
|
26
|
-
chunks.push(result.value)
|
|
27
|
-
}
|
|
18
|
+
chunks.push(result.value)
|
|
28
19
|
}
|
|
29
20
|
|
|
30
21
|
reader.cancel().catch(
|
|
@@ -33,5 +24,5 @@ export async function readBytesFromStream(stream: ReadableStream<Uint8ArrayBuffe
|
|
|
33
24
|
noop
|
|
34
25
|
)
|
|
35
26
|
|
|
36
|
-
return
|
|
27
|
+
return concatBuffers(chunks)
|
|
37
28
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { dateNow } from '@openobserve/js-core/time'
|
|
1
2
|
import { setTimeout, clearTimeout } from './timer'
|
|
2
3
|
import { monitor } from './monitor'
|
|
3
|
-
import { dateNow } from './utils/timeUtils'
|
|
4
4
|
|
|
5
5
|
// This type is not yet supported in TS 3.8. Imported from the TS source until we upgrade the
|
|
6
6
|
// minimum supported TS version.
|
|
@@ -6,7 +6,7 @@ import { detachToJsonMethod } from './jsonStringify'
|
|
|
6
6
|
|
|
7
7
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type
|
|
8
8
|
type PrimitivesAndFunctions = string | number | boolean | undefined | null | symbol | bigint | Function
|
|
9
|
-
type ExtendedContextValue = PrimitivesAndFunctions |
|
|
9
|
+
type ExtendedContextValue = PrimitivesAndFunctions | ExtendedContext | ExtendedContextArray
|
|
10
10
|
interface ExtendedContext {
|
|
11
11
|
[key: string]: ExtendedContextValue
|
|
12
12
|
}
|
|
@@ -27,7 +27,7 @@ interface SanitizedEvent extends Context {
|
|
|
27
27
|
|
|
28
28
|
// The maximum size of a single event is 256KiB. By default, we ensure that user-provided data
|
|
29
29
|
// going through sanitize fits inside our events, while leaving room for other contexts, metadata, ...
|
|
30
|
-
const SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE
|
|
30
|
+
export const SANITIZE_DEFAULT_MAX_CHARACTER_COUNT = 220 * ONE_KIBI_BYTE
|
|
31
31
|
|
|
32
32
|
// Symbol for the root element of the JSONPath used for visited objects
|
|
33
33
|
const JSON_PATH_ROOT_ELEMENT = '$'
|
|
@@ -58,58 +58,33 @@ export function sanitize(source: unknown, maxCharacterCount = SANITIZE_DEFAULT_M
|
|
|
58
58
|
const restoreObjectPrototypeToJson = detachToJsonMethod(Object.prototype)
|
|
59
59
|
const restoreArrayPrototypeToJson = detachToJsonMethod(Array.prototype)
|
|
60
60
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
if (accumulatedCharacterCount > maxCharacterCount) {
|
|
75
|
-
warnOverCharacterLimit(maxCharacterCount, 'discarded', source)
|
|
76
|
-
return undefined
|
|
77
|
-
}
|
|
61
|
+
try {
|
|
62
|
+
// Initial call to sanitizeProcessor - will populate containerQueue if source is an Array or a plain Object
|
|
63
|
+
const containerQueue: ContainerElementToProcess[] = []
|
|
64
|
+
const visitedObjectsWithPath = new WeakMap<object, string>()
|
|
65
|
+
const sanitizedData = sanitizeProcessor(
|
|
66
|
+
source as ExtendedContextValue,
|
|
67
|
+
JSON_PATH_ROOT_ELEMENT,
|
|
68
|
+
undefined,
|
|
69
|
+
containerQueue,
|
|
70
|
+
visitedObjectsWithPath
|
|
71
|
+
)
|
|
72
|
+
const serializedSanitizedData = JSON.stringify(sanitizedData)
|
|
73
|
+
let accumulatedCharacterCount = serializedSanitizedData ? serializedSanitizedData.length : 0
|
|
78
74
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
75
|
+
if (accumulatedCharacterCount > maxCharacterCount) {
|
|
76
|
+
warnOverCharacterLimit(maxCharacterCount, 'discarded', source)
|
|
77
|
+
return undefined
|
|
78
|
+
}
|
|
82
79
|
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
for (let key = 0; key < containerToProcess.source.length; key++) {
|
|
87
|
-
const targetData = sanitizeProcessor(
|
|
88
|
-
containerToProcess.source[key],
|
|
89
|
-
containerToProcess.path,
|
|
90
|
-
key,
|
|
91
|
-
containerQueue,
|
|
92
|
-
visitedObjectsWithPath
|
|
93
|
-
)
|
|
80
|
+
while (containerQueue.length > 0 && accumulatedCharacterCount < maxCharacterCount) {
|
|
81
|
+
const containerToProcess = containerQueue.shift()!
|
|
82
|
+
let separatorLength = 0 // 0 for the first element, 1 for subsequent elements
|
|
94
83
|
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
// JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters
|
|
100
|
-
accumulatedCharacterCount += 4
|
|
101
|
-
}
|
|
102
|
-
accumulatedCharacterCount += separatorLength
|
|
103
|
-
separatorLength = 1
|
|
104
|
-
if (accumulatedCharacterCount > maxCharacterCount) {
|
|
105
|
-
warnOverCharacterLimit(maxCharacterCount, 'truncated', source)
|
|
106
|
-
break
|
|
107
|
-
}
|
|
108
|
-
;(containerToProcess.target as ContextArray)[key] = targetData
|
|
109
|
-
}
|
|
110
|
-
} else {
|
|
111
|
-
for (const key in containerToProcess.source) {
|
|
112
|
-
if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {
|
|
84
|
+
// Arrays and Objects have to be handled distinctly to ensure
|
|
85
|
+
// we do not pick up non-numerical properties from Arrays
|
|
86
|
+
if (Array.isArray(containerToProcess.source)) {
|
|
87
|
+
for (let key = 0; key < containerToProcess.source.length; key++) {
|
|
113
88
|
const targetData = sanitizeProcessor(
|
|
114
89
|
containerToProcess.source[key],
|
|
115
90
|
containerToProcess.path,
|
|
@@ -117,28 +92,55 @@ export function sanitize(source: unknown, maxCharacterCount = SANITIZE_DEFAULT_M
|
|
|
117
92
|
containerQueue,
|
|
118
93
|
visitedObjectsWithPath
|
|
119
94
|
)
|
|
120
|
-
|
|
121
|
-
// JSON.stringify({a:undefined}) => '{}'
|
|
95
|
+
|
|
122
96
|
if (targetData !== undefined) {
|
|
123
|
-
accumulatedCharacterCount +=
|
|
124
|
-
|
|
125
|
-
|
|
97
|
+
accumulatedCharacterCount += JSON.stringify(targetData).length
|
|
98
|
+
} else {
|
|
99
|
+
// When an element of an Array (targetData) is undefined, it is serialized as null:
|
|
100
|
+
// JSON.stringify([undefined]) => '[null]' - This accounts for 4 characters
|
|
101
|
+
accumulatedCharacterCount += 4
|
|
126
102
|
}
|
|
103
|
+
accumulatedCharacterCount += separatorLength
|
|
104
|
+
separatorLength = 1
|
|
127
105
|
if (accumulatedCharacterCount > maxCharacterCount) {
|
|
128
106
|
warnOverCharacterLimit(maxCharacterCount, 'truncated', source)
|
|
129
107
|
break
|
|
130
108
|
}
|
|
131
|
-
;(containerToProcess.target as
|
|
109
|
+
;(containerToProcess.target as ContextArray)[key] = targetData
|
|
110
|
+
}
|
|
111
|
+
} else {
|
|
112
|
+
for (const key in containerToProcess.source) {
|
|
113
|
+
if (Object.prototype.hasOwnProperty.call(containerToProcess.source, key)) {
|
|
114
|
+
const targetData = sanitizeProcessor(
|
|
115
|
+
containerToProcess.source[key],
|
|
116
|
+
containerToProcess.path,
|
|
117
|
+
key,
|
|
118
|
+
containerQueue,
|
|
119
|
+
visitedObjectsWithPath
|
|
120
|
+
)
|
|
121
|
+
// When a property of an object has an undefined value, it will be dropped during serialization:
|
|
122
|
+
// JSON.stringify({a:undefined}) => '{}'
|
|
123
|
+
if (targetData !== undefined) {
|
|
124
|
+
accumulatedCharacterCount +=
|
|
125
|
+
JSON.stringify(targetData).length + separatorLength + key.length + KEY_DECORATION_LENGTH
|
|
126
|
+
separatorLength = 1
|
|
127
|
+
}
|
|
128
|
+
if (accumulatedCharacterCount > maxCharacterCount) {
|
|
129
|
+
warnOverCharacterLimit(maxCharacterCount, 'truncated', source)
|
|
130
|
+
break
|
|
131
|
+
}
|
|
132
|
+
;(containerToProcess.target as Context)[key] = targetData
|
|
133
|
+
}
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
136
|
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
// Rebind detached toJSON functions
|
|
138
|
-
restoreObjectPrototypeToJson()
|
|
139
|
-
restoreArrayPrototypeToJson()
|
|
140
137
|
|
|
141
|
-
|
|
138
|
+
return sanitizedData
|
|
139
|
+
} finally {
|
|
140
|
+
// Rebind detached toJSON functions
|
|
141
|
+
restoreObjectPrototypeToJson()
|
|
142
|
+
restoreArrayPrototypeToJson()
|
|
143
|
+
}
|
|
142
144
|
}
|
|
143
145
|
|
|
144
146
|
/**
|
|
@@ -177,7 +179,7 @@ function sanitizeProcessor(
|
|
|
177
179
|
const currentPath = key !== undefined ? `${parentPath}.${key}` : parentPath
|
|
178
180
|
const target = Array.isArray(sourceToSanitize) ? ([] as ContextArray) : ({} as Context)
|
|
179
181
|
visitedObjectsWithPath.set(sourceAsObject, currentPath)
|
|
180
|
-
queue.push({ source: sourceToSanitize
|
|
182
|
+
queue.push({ source: sourceToSanitize, target, path: currentPath })
|
|
181
183
|
|
|
182
184
|
return target
|
|
183
185
|
}
|
|
@@ -226,7 +228,7 @@ function sanitizeObjects(value: object): string | SanitizedEvent {
|
|
|
226
228
|
// Handle all remaining object types in a generic way
|
|
227
229
|
const result = Object.prototype.toString.call(value)
|
|
228
230
|
const match = result.match(/\[object (.*)\]/)
|
|
229
|
-
if (match
|
|
231
|
+
if (match?.[1]) {
|
|
230
232
|
return `[${match[1]}]`
|
|
231
233
|
}
|
|
232
234
|
} catch {
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { jsonStringify } from './jsonStringify'
|
|
2
|
+
import { sanitize } from './sanitize'
|
|
3
|
+
|
|
4
|
+
export function safeToString(value: unknown): string | undefined {
|
|
5
|
+
try {
|
|
6
|
+
return String(value)
|
|
7
|
+
} catch {
|
|
8
|
+
// ignore
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export function safeStringify(value: unknown): string | undefined {
|
|
13
|
+
try {
|
|
14
|
+
return jsonStringify(sanitize(value))
|
|
15
|
+
} catch {
|
|
16
|
+
// ignore
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
* Reference implementation: https://github.com/csnover/TraceKit/blob/04530298073c3823de72deb0b97e7b38ca7bcb59/tracekit.js
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { isIndexableObject } from '@openobserve/js-core/util'
|
|
8
|
+
|
|
7
9
|
export interface StackFrame {
|
|
8
10
|
url?: string
|
|
9
11
|
func?: string
|
|
@@ -31,7 +33,7 @@ export function computeStackTrace(ex: unknown): StackTrace {
|
|
|
31
33
|
|
|
32
34
|
let stackProperty = tryToGetString(ex, 'stack')
|
|
33
35
|
const exString = String(ex)
|
|
34
|
-
if (stackProperty
|
|
36
|
+
if (stackProperty?.startsWith(exString)) {
|
|
35
37
|
stackProperty = stackProperty.slice(exString.length)
|
|
36
38
|
}
|
|
37
39
|
if (stackProperty) {
|
|
@@ -91,8 +93,8 @@ function parseChromeLine(line: string): StackFrame | undefined {
|
|
|
91
93
|
return
|
|
92
94
|
}
|
|
93
95
|
|
|
94
|
-
const isNative = parts[2]
|
|
95
|
-
const isEval = parts[2]
|
|
96
|
+
const isNative = parts[2]?.indexOf('native') === 0 // start of line
|
|
97
|
+
const isEval = parts[2]?.indexOf('eval') === 0 // start of line
|
|
96
98
|
const submatch = CHROME_EVAL_RE.exec(parts[2])
|
|
97
99
|
|
|
98
100
|
if (isEval && submatch) {
|
|
@@ -111,7 +113,11 @@ function parseChromeLine(line: string): StackFrame | undefined {
|
|
|
111
113
|
}
|
|
112
114
|
}
|
|
113
115
|
|
|
114
|
-
const
|
|
116
|
+
const htmlAnonymousPart = '(?:(.*)?(?: @))'
|
|
117
|
+
const CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(
|
|
118
|
+
`^\\s*at\\s*${htmlAnonymousPart}?\\s*${fileUrl}${filePosition}?${filePosition}??\\s*$`,
|
|
119
|
+
'i'
|
|
120
|
+
)
|
|
115
121
|
|
|
116
122
|
function parseChromeAnonymousLine(line: string): StackFrame | undefined {
|
|
117
123
|
const parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line)
|
|
@@ -122,10 +128,10 @@ function parseChromeAnonymousLine(line: string): StackFrame | undefined {
|
|
|
122
128
|
|
|
123
129
|
return {
|
|
124
130
|
args: [],
|
|
125
|
-
column: parts[
|
|
126
|
-
func: UNKNOWN_FUNCTION,
|
|
127
|
-
line: parts[
|
|
128
|
-
url: parts[
|
|
131
|
+
column: parts[4] ? +parts[4] : undefined,
|
|
132
|
+
func: parts[1] || UNKNOWN_FUNCTION,
|
|
133
|
+
line: parts[3] ? +parts[3] : undefined,
|
|
134
|
+
url: parts[2],
|
|
129
135
|
}
|
|
130
136
|
}
|
|
131
137
|
|
|
@@ -177,11 +183,7 @@ function parseGeckoLine(line: string): StackFrame | undefined {
|
|
|
177
183
|
}
|
|
178
184
|
|
|
179
185
|
function tryToGetString(candidate: unknown, property: string) {
|
|
180
|
-
|
|
181
|
-
return undefined
|
|
182
|
-
}
|
|
183
|
-
const value = (candidate as { [k: string]: unknown })[property]
|
|
184
|
-
return typeof value === 'string' ? value : undefined
|
|
186
|
+
return isIndexableObject(candidate) && typeof candidate[property] === 'string' ? candidate[property] : undefined
|
|
185
187
|
}
|
|
186
188
|
|
|
187
189
|
export function computeStackTraceFromOnErrorMessage(
|
|
@@ -9,7 +9,20 @@ import { computeStackTrace } from './computeStackTrace'
|
|
|
9
9
|
* - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.
|
|
10
10
|
*/
|
|
11
11
|
export function createHandlingStack(
|
|
12
|
-
type:
|
|
12
|
+
type:
|
|
13
|
+
| 'console error'
|
|
14
|
+
| 'action'
|
|
15
|
+
| 'error'
|
|
16
|
+
| 'instrumented method'
|
|
17
|
+
| 'instrumented constructor'
|
|
18
|
+
| 'log'
|
|
19
|
+
| 'nuxt error'
|
|
20
|
+
| 'react error'
|
|
21
|
+
| 'nextjs error'
|
|
22
|
+
| 'vue error'
|
|
23
|
+
| 'angular error'
|
|
24
|
+
| 'view'
|
|
25
|
+
| 'vital'
|
|
13
26
|
): string {
|
|
14
27
|
/**
|
|
15
28
|
* Skip the two internal frames:
|
package/src/tools/taskQueue.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ONE_SECOND } from '
|
|
1
|
+
import { ONE_SECOND } from '@openobserve/js-core/time'
|
|
2
2
|
import { requestIdleCallback } from './requestIdleCallback'
|
|
3
3
|
|
|
4
4
|
/**
|
|
@@ -28,9 +28,11 @@ type Task = () => void
|
|
|
28
28
|
export function createTaskQueue(): TaskQueue {
|
|
29
29
|
const pendingTasks: Task[] = []
|
|
30
30
|
|
|
31
|
-
function run(deadline: IdleDeadline) {
|
|
31
|
+
function run(deadline: IdleDeadline | null) {
|
|
32
32
|
let executionTimeRemaining: () => number
|
|
33
|
-
|
|
33
|
+
// `deadline` can be null when `requestIdleCallback` is replaced by a page-injected polyfill
|
|
34
|
+
// (e.g. `setTimeout(cb, 0)` in some WKWebViews) that invokes the callback with no argument.
|
|
35
|
+
if (!deadline || deadline.didTimeout) {
|
|
34
36
|
const start = performance.now()
|
|
35
37
|
executionTimeRemaining = () => MAX_EXECUTION_TIME_ON_TIMEOUT - (performance.now() - start)
|
|
36
38
|
} else {
|
package/src/tools/timer.ts
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
1
|
import { getZoneJsOriginalValue } from './getZoneJsOriginalValue'
|
|
2
2
|
import { monitor } from './monitor'
|
|
3
|
-
import {
|
|
3
|
+
import type { GlobalObject } from './globalObject'
|
|
4
|
+
import { globalObject } from './globalObject'
|
|
4
5
|
|
|
5
|
-
export type TimeoutId = ReturnType<
|
|
6
|
+
export type TimeoutId = ReturnType<GlobalObject['setTimeout']>
|
|
6
7
|
|
|
7
8
|
export function setTimeout(callback: () => void, delay?: number): TimeoutId {
|
|
8
|
-
return getZoneJsOriginalValue(
|
|
9
|
+
return getZoneJsOriginalValue(globalObject, 'setTimeout')(monitor(callback), delay)
|
|
9
10
|
}
|
|
10
11
|
|
|
11
12
|
export function clearTimeout(timeoutId: TimeoutId | undefined) {
|
|
12
|
-
getZoneJsOriginalValue(
|
|
13
|
+
getZoneJsOriginalValue(globalObject, 'clearTimeout')(timeoutId)
|
|
13
14
|
}
|
|
14
15
|
|
|
15
16
|
export function setInterval(callback: () => void, delay?: number): TimeoutId {
|
|
16
|
-
return getZoneJsOriginalValue(
|
|
17
|
+
return getZoneJsOriginalValue(globalObject, 'setInterval')(monitor(callback), delay)
|
|
17
18
|
}
|
|
18
19
|
|
|
19
20
|
export function clearInterval(timeoutId: TimeoutId | undefined) {
|
|
20
|
-
getZoneJsOriginalValue(
|
|
21
|
+
getZoneJsOriginalValue(globalObject, 'clearInterval')(timeoutId)
|
|
21
22
|
}
|
|
@@ -13,3 +13,10 @@ export function removeItem<T>(array: T[], item: T) {
|
|
|
13
13
|
export function isNonEmptyArray<T>(value: unknown): value is T[] {
|
|
14
14
|
return Array.isArray(value) && value.length > 0
|
|
15
15
|
}
|
|
16
|
+
|
|
17
|
+
export function mergeArrays<T>(current: T[] | undefined, next: T[] | undefined): T[] | undefined {
|
|
18
|
+
if (!next?.length) {
|
|
19
|
+
return current
|
|
20
|
+
}
|
|
21
|
+
return current ? current.concat(next) : next
|
|
22
|
+
}
|
|
@@ -37,3 +37,11 @@ export function detectBrowser(browserWindow: Window = window) {
|
|
|
37
37
|
|
|
38
38
|
return Browser.OTHER
|
|
39
39
|
}
|
|
40
|
+
|
|
41
|
+
export function detectVersion() {
|
|
42
|
+
const userAgent = window.navigator.userAgent
|
|
43
|
+
const match = userAgent.match(/(?:chrome|headlesschrome|version)\/(\d+)/i)
|
|
44
|
+
if (match) {
|
|
45
|
+
return parseInt(match[1], 10)
|
|
46
|
+
}
|
|
47
|
+
}
|
|
@@ -16,11 +16,7 @@ export function computeBytesCount(candidate: string): number {
|
|
|
16
16
|
return candidate.length
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
return new TextEncoder().encode(candidate).length
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return new Blob([candidate]).size
|
|
19
|
+
return new TextEncoder().encode(candidate).length
|
|
24
20
|
}
|
|
25
21
|
|
|
26
22
|
export function concatBuffers(buffers: Uint8ArrayBuffer[]): Uint8ArrayBuffer {
|
|
@@ -7,8 +7,8 @@ export function throttle<T extends (...args: any[]) => void>(
|
|
|
7
7
|
wait: number,
|
|
8
8
|
options?: { leading?: boolean; trailing?: boolean }
|
|
9
9
|
) {
|
|
10
|
-
const needLeadingExecution = options
|
|
11
|
-
const needTrailingExecution = options
|
|
10
|
+
const needLeadingExecution = options?.leading !== undefined ? options.leading : true
|
|
11
|
+
const needTrailingExecution = options?.trailing !== undefined ? options.trailing : true
|
|
12
12
|
let inWaitPeriod = false
|
|
13
13
|
let pendingExecutionWithParameters: Parameters<T> | undefined
|
|
14
14
|
let pendingTimeoutId: TimeoutId
|
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
// Prevent prototype pollution: __proto__ as an own property in parsed JSON can corrupt Object.prototype
|
|
2
|
+
const stripDangerousKeys = (key: string, value: unknown) => (key === '__proto__' ? undefined : value)
|
|
3
|
+
|
|
4
|
+
export function tryJsonParse<T = unknown>(text: string): T | undefined {
|
|
5
|
+
try {
|
|
6
|
+
return JSON.parse(text, stripDangerousKeys) as T
|
|
7
|
+
} catch {
|
|
8
|
+
// ignore
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
1
12
|
export function shallowClone<T>(object: T): T & Record<string, never> {
|
|
2
13
|
return { ...object } as T & Record<string, never>
|
|
3
14
|
}
|
|
@@ -17,3 +28,12 @@ export function mapValues<A, B>(object: { [key: string]: A }, fn: (arg: A) => B)
|
|
|
17
28
|
}
|
|
18
29
|
return newObject
|
|
19
30
|
}
|
|
31
|
+
|
|
32
|
+
export function getConstructorName(value: unknown): string | undefined {
|
|
33
|
+
try {
|
|
34
|
+
const name = (value as { constructor?: { name?: unknown } } | null | undefined)?.constructor?.name
|
|
35
|
+
return typeof name === 'string' && name ? name : undefined
|
|
36
|
+
} catch {
|
|
37
|
+
// ignore: accessing `constructor` can throw on hostile objects
|
|
38
|
+
}
|
|
39
|
+
}
|