@kubesense/kubesense-browser-core 1.7.0 → 2.0.0-beta.0
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/LICENSE +1 -1
- package/cjs/boot/displayAlreadyInitializedError.js +6 -7
- package/cjs/boot/displayAlreadyInitializedError.js.map +1 -1
- package/cjs/boot/init.d.ts +1 -0
- package/cjs/boot/init.js +26 -34
- package/cjs/boot/init.js.map +1 -1
- package/cjs/browser/addEventListener.d.ts +12 -9
- package/cjs/browser/addEventListener.js +107 -50
- package/cjs/browser/addEventListener.js.map +1 -1
- package/cjs/browser/browser.types.d.ts +0 -24
- package/cjs/browser/cookie.d.ts +4 -1
- package/cjs/browser/cookie.js +76 -89
- package/cjs/browser/cookie.js.map +1 -1
- package/cjs/browser/cookieAccess.d.ts +18 -0
- package/cjs/browser/cookieAccess.js +129 -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 +79 -92
- package/cjs/browser/fetchObservable.js.map +1 -1
- package/cjs/browser/pageMayExitObservable.d.ts +1 -2
- package/cjs/browser/pageMayExitObservable.js +53 -51
- 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/webSocketObservable.d.ts +44 -0
- package/cjs/browser/webSocketObservable.js +92 -0
- package/cjs/browser/webSocketObservable.js.map +1 -0
- package/cjs/browser/xhrObservable.d.ts +8 -3
- package/cjs/browser/xhrObservable.js +64 -77
- package/cjs/browser/xhrObservable.js.map +1 -1
- package/cjs/domain/allowedTrackingOrigins.d.ts +2 -2
- package/cjs/domain/allowedTrackingOrigins.js +27 -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 +169 -76
- package/cjs/domain/configuration/configuration.js +159 -128
- package/cjs/domain/configuration/configuration.js.map +1 -1
- package/cjs/domain/configuration/index.d.ts +5 -7
- package/cjs/domain/configuration/remoteSdkConfig.d.ts +26 -6
- package/cjs/domain/configuration/remoteSdkConfig.js +152 -159
- package/cjs/domain/configuration/remoteSdkConfig.js.map +1 -1
- package/cjs/domain/connectivity/connectivity.d.ts +2 -10
- package/cjs/domain/connectivity/connectivity.js +13 -13
- package/cjs/domain/connectivity/connectivity.js.map +1 -1
- package/cjs/domain/console/consoleObservable.d.ts +1 -1
- package/cjs/domain/console/consoleObservable.js +62 -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 -53
- 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 +31 -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 +28 -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 +79 -114
- 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 +14 -6
- package/cjs/domain/error/error.js +101 -70
- package/cjs/domain/error/error.js.map +1 -1
- package/cjs/domain/error/error.types.d.ts +6 -4
- package/cjs/domain/error/error.types.js +24 -11
- package/cjs/domain/error/error.types.js.map +1 -1
- package/cjs/domain/error/isError.d.ts +2 -0
- package/cjs/domain/error/isError.js +14 -0
- package/cjs/domain/error/isError.js.map +1 -0
- package/cjs/domain/error/trackRuntimeError.d.ts +3 -2
- package/cjs/domain/error/trackRuntimeError.js +44 -41
- package/cjs/domain/error/trackRuntimeError.js.map +1 -1
- package/cjs/domain/eventRateLimiter/createEventRateLimiter.d.ts +1 -2
- package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +28 -38
- package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -1
- package/cjs/domain/extension/extensionUtils.js +20 -25
- package/cjs/domain/extension/extensionUtils.js.map +1 -1
- package/cjs/domain/geo/geocoding.js +64 -0
- package/cjs/domain/geo/geocoding.js.map +1 -0
- package/cjs/domain/geo/geolocation.js +72 -0
- package/cjs/domain/geo/geolocation.js.map +1 -0
- package/cjs/domain/report/reportObservable.d.ts +1 -2
- package/cjs/domain/report/reportObservable.js +76 -85
- package/cjs/domain/report/reportObservable.js.map +1 -1
- package/cjs/domain/resourceUtils.d.ts +1 -0
- package/cjs/domain/resourceUtils.js +20 -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 +21 -13
- package/cjs/domain/session/sessionManager.js +254 -191
- package/cjs/domain/session/sessionManager.js.map +1 -1
- package/cjs/domain/session/sessionState.d.ts +10 -1
- package/cjs/domain/session/sessionState.js +72 -56
- 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 +41 -181
- 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 +90 -96
- 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 +36 -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/sourceCodeContext.d.ts +22 -0
- package/cjs/domain/sourceCodeContext.js +56 -0
- package/cjs/domain/sourceCodeContext.js.map +1 -0
- package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +9 -3
- package/cjs/domain/synthetics/syntheticsWorkerValues.js +37 -25
- package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +1 -1
- package/cjs/domain/tags.d.ts +1 -2
- package/cjs/domain/tags.js +23 -57
- 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 +7 -8
- package/cjs/domain/telemetry/telemetry.js +192 -215
- package/cjs/domain/telemetry/telemetry.js.map +1 -1
- package/cjs/domain/telemetry/telemetryEvent.types.d.ts +161 -16
- 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/domain/userAgentData/userAgentData.js +65 -96
- package/cjs/domain/userAgentData/userAgentData.js.map +1 -1
- package/cjs/index.d.ts +34 -30
- package/cjs/index.js +297 -213
- 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 -37
- package/cjs/tools/display.js +8 -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/instrumentMethod.d.ts +57 -0
- package/cjs/tools/instrumentMethod.js +179 -112
- package/cjs/tools/instrumentMethod.js.map +1 -1
- package/cjs/tools/matchOption.d.ts +0 -1
- package/cjs/tools/matchOption.js +21 -31
- 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/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 +23 -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 +112 -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/thenable.d.ts +8 -0
- package/cjs/tools/thenable.js +27 -0
- package/cjs/tools/thenable.js.map +1 -0
- 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.d.ts +0 -6
- package/cjs/tools/utils/numberUtils.js +7 -18
- 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.d.ts +9 -0
- package/cjs/tools/utils/stringUtils.js +73 -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/valueHistory.d.ts +16 -3
- package/cjs/tools/valueHistory.js +113 -99
- package/cjs/tools/valueHistory.js.map +1 -1
- package/cjs/transport/batch.d.ts +11 -7
- package/cjs/transport/batch.js +93 -106
- package/cjs/transport/batch.js.map +1 -1
- package/cjs/transport/eventBridge.d.ts +6 -2
- package/cjs/transport/eventBridge.js +54 -38
- package/cjs/transport/eventBridge.js.map +1 -1
- package/cjs/transport/flushController.d.ts +6 -15
- package/cjs/transport/flushController.js +99 -118
- package/cjs/transport/flushController.js.map +1 -1
- package/cjs/transport/httpRequest.d.ts +8 -9
- package/cjs/transport/httpRequest.js +61 -97
- package/cjs/transport/httpRequest.js.map +1 -1
- package/cjs/transport/index.d.ts +3 -2
- package/cjs/transport/sendWithRetryStrategy.d.ts +9 -4
- package/cjs/transport/sendWithRetryStrategy.js +144 -148
- 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 +92 -0
- package/esm/browser/cookie.mjs.map +1 -0
- package/esm/browser/cookieAccess.mjs +124 -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 +89 -0
- package/esm/browser/fetchObservable.mjs.map +1 -0
- package/esm/browser/pageMayExitObservable.mjs +56 -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/webSocketObservable.mjs +92 -0
- package/esm/browser/webSocketObservable.mjs.map +1 -0
- package/esm/browser/xhrObservable.mjs +73 -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 +163 -0
- package/esm/domain/configuration/configuration.mjs.map +1 -0
- package/esm/domain/configuration/remoteSdkConfig.mjs +163 -0
- package/esm/domain/configuration/remoteSdkConfig.mjs.map +1 -0
- package/esm/domain/connectivity/connectivity.mjs +16 -0
- package/esm/domain/connectivity/connectivity.mjs.map +1 -0
- package/esm/domain/console/consoleObservable.mjs +72 -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 +88 -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 +104 -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/isError.mjs +13 -0
- package/esm/domain/error/isError.mjs.map +1 -0
- package/esm/domain/error/trackRuntimeError.mjs +49 -0
- package/esm/domain/error/trackRuntimeError.mjs.map +1 -0
- package/esm/domain/eventRateLimiter/createEventRateLimiter.mjs +31 -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/geo/geocoding.mjs +60 -0
- package/esm/domain/geo/geocoding.mjs.map +1 -0
- package/esm/domain/geo/geolocation.mjs +69 -0
- package/esm/domain/geo/geolocation.mjs.map +1 -0
- package/esm/domain/report/reportObservable.mjs +89 -0
- package/esm/domain/report/reportObservable.mjs.map +1 -0
- package/esm/domain/resourceUtils.mjs +22 -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 +258 -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 +45 -0
- package/esm/domain/session/sessionStore.mjs.map +1 -0
- package/esm/domain/session/storeStrategies/sessionInCookie.mjs +96 -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 +34 -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/sourceCodeContext.mjs +55 -0
- package/esm/domain/sourceCodeContext.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 +29 -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 +210 -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/domain/userAgentData/userAgentData.mjs +77 -0
- package/esm/domain/userAgentData/userAgentData.mjs.map +1 -0
- package/esm/index.mjs +85 -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 +8 -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/instrumentMethod.mjs +183 -0
- package/esm/tools/instrumentMethod.mjs.map +1 -0
- package/esm/tools/matchOption.mjs +25 -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/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 +132 -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/thenable.mjs +24 -0
- package/esm/tools/thenable.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 +11 -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 +81 -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/valueHistory.mjs +117 -0
- package/esm/tools/valueHistory.mjs.map +1 -0
- package/esm/transport/batch.mjs +96 -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 +103 -0
- package/esm/transport/flushController.mjs.map +1 -0
- package/esm/transport/httpRequest.mjs +69 -0
- package/esm/transport/httpRequest.mjs.map +1 -0
- package/esm/transport/sendWithRetryStrategy.mjs +154 -0
- package/esm/transport/sendWithRetryStrategy.mjs.map +1 -0
- package/package.json +20 -11
- package/src/boot/displayAlreadyInitializedError.ts +4 -1
- package/src/boot/init.ts +3 -2
- package/src/browser/addEventListener.ts +43 -8
- package/src/browser/browser.types.ts +0 -32
- package/src/browser/cookie.ts +45 -30
- package/src/browser/cookieAccess.ts +172 -0
- package/src/browser/fetch.ts +14 -0
- package/src/browser/fetchObservable.ts +25 -26
- package/src/browser/pageMayExitObservable.ts +9 -5
- package/src/browser/runOnReadyState.ts +3 -8
- package/src/browser/webSocketObservable.ts +181 -0
- package/src/browser/xhrObservable.ts +22 -13
- package/src/domain/allowedTrackingOrigins.ts +7 -6
- package/src/domain/bufferedData.ts +41 -14
- package/src/domain/configuration/configuration.ts +121 -171
- package/src/domain/configuration/index.ts +6 -7
- package/src/domain/configuration/remoteSdkConfig.ts +65 -16
- package/src/domain/connectivity/connectivity.ts +11 -23
- package/src/domain/console/consoleObservable.ts +9 -5
- package/src/domain/context/contextManager.ts +6 -2
- package/src/domain/context/contextUtils.ts +1 -1
- package/src/domain/context/defineContextMethod.ts +4 -4
- 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 +21 -16
- package/src/domain/error/error.ts +83 -35
- package/src/domain/error/error.types.ts +6 -4
- package/src/domain/error/isError.ts +13 -0
- package/src/domain/error/trackRuntimeError.ts +11 -4
- package/src/domain/eventRateLimiter/createEventRateLimiter.ts +3 -9
- package/src/{tools/utils → domain/geo}/geocoding.ts +7 -18
- package/src/{tools/utils → domain/geo}/geolocation.ts +1 -1
- package/src/domain/report/reportObservable.ts +15 -8
- package/src/domain/resourceUtils.ts +1 -0
- package/src/domain/sampler.ts +59 -0
- package/src/domain/session/sessionConstants.ts +2 -1
- package/src/domain/session/sessionManager.ts +347 -178
- package/src/domain/session/sessionState.ts +71 -10
- package/src/domain/session/sessionStore.ts +53 -226
- package/src/domain/session/storeStrategies/sessionInCookie.ts +122 -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/sourceCodeContext.ts +100 -0
- package/src/domain/synthetics/syntheticsWorkerValues.ts +47 -15
- package/src/domain/tags.ts +5 -19
- package/src/domain/telemetry/rawTelemetryEvent.types.ts +1 -1
- package/src/domain/telemetry/telemetry.ts +44 -52
- package/src/domain/telemetry/telemetryEvent.types.ts +177 -19
- package/src/domain/trackingConsent.ts +18 -3
- package/src/domain/userAgentData/userAgentData.ts +1 -1
- package/src/index.ts +59 -43
- package/src/tools/display.ts +2 -52
- package/src/tools/experimentalFeatures.ts +3 -4
- package/src/tools/getZoneJsOriginalValue.ts +3 -3
- package/src/tools/instrumentMethod.ts +228 -18
- package/src/tools/matchOption.ts +2 -6
- package/src/tools/mockable.ts +32 -0
- package/src/tools/observable.ts +11 -2
- package/src/tools/queueMicrotask.ts +8 -3
- package/src/tools/readBytesFromStream.ts +3 -12
- package/src/tools/requestIdleCallback.ts +2 -2
- package/src/tools/sendToExtension.ts +1 -1
- package/src/tools/serialisation/sanitize.ts +71 -64
- package/src/tools/serialisation/stringify.ts +18 -0
- package/src/tools/stackTrace/computeStackTrace.ts +19 -19
- package/src/tools/stackTrace/handlingStack.ts +15 -2
- package/src/tools/taskQueue.ts +5 -3
- package/src/tools/thenable.ts +23 -0
- package/src/tools/timer.ts +8 -7
- package/src/tools/utils/arrayUtils.ts +8 -2
- package/src/tools/utils/browserDetection.ts +8 -0
- package/src/tools/utils/byteUtils.ts +2 -6
- package/src/tools/utils/functionUtils.ts +2 -2
- package/src/tools/utils/numberUtils.ts +0 -12
- package/src/tools/utils/objectUtils.ts +20 -0
- package/src/tools/utils/stringUtils.ts +23 -1
- package/src/tools/valueHistory.ts +59 -18
- package/src/transport/batch.ts +50 -31
- package/src/transport/eventBridge.ts +24 -10
- package/src/transport/flushController.ts +22 -30
- package/src/transport/httpRequest.ts +18 -47
- package/src/transport/index.ts +3 -2
- package/src/transport/sendWithRetryStrategy.ts +29 -17
- package/cjs/browser/browser.types.js +0 -6
- package/cjs/browser/browser.types.js.map +0 -1
- package/cjs/domain/configuration/endpointBuilder.d.ts +0 -12
- package/cjs/domain/configuration/endpointBuilder.js +0 -66
- package/cjs/domain/configuration/endpointBuilder.js.map +0 -1
- package/cjs/domain/configuration/index.js +0 -44
- package/cjs/domain/configuration/index.js.map +0 -1
- package/cjs/domain/configuration/transportConfiguration.d.ts +0 -21
- package/cjs/domain/configuration/transportConfiguration.js +0 -58
- 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/intakeSites.d.ts +0 -4
- package/cjs/domain/intakeSites.js +0 -7
- package/cjs/domain/intakeSites.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/domain/userAgentData/index.js +0 -18
- package/cjs/domain/userAgentData/index.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/globalObject.d.ts +0 -19
- package/cjs/tools/globalObject.js +0 -44
- package/cjs/tools/globalObject.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/monitor.d.ts +0 -9
- package/cjs/tools/monitor.js +0 -61
- package/cjs/tools/monitor.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/geocoding.js +0 -80
- package/cjs/tools/utils/geocoding.js.map +0 -1
- package/cjs/tools/utils/geolocation.js +0 -77
- package/cjs/tools/utils/geolocation.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/tools/utils/urlPolyfill.d.ts +0 -5
- package/cjs/tools/utils/urlPolyfill.js +0 -59
- package/cjs/tools/utils/urlPolyfill.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 -13
- 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 -26
- package/esm/browser/cookie.js +0 -101
- 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 -51
- 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 -284
- package/esm/domain/configuration/configuration.js +0 -129
- 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 -62
- package/esm/domain/configuration/endpointBuilder.js.map +0 -1
- package/esm/domain/configuration/index.d.ts +0 -8
- package/esm/domain/configuration/index.js +0 -6
- package/esm/domain/configuration/index.js.map +0 -1
- package/esm/domain/configuration/remoteSdkConfig.d.ts +0 -81
- package/esm/domain/configuration/remoteSdkConfig.js +0 -172
- package/esm/domain/configuration/remoteSdkConfig.js.map +0 -1
- package/esm/domain/configuration/transportConfiguration.d.ts +0 -21
- package/esm/domain/configuration/transportConfiguration.js +0 -54
- package/esm/domain/configuration/transportConfiguration.js.map +0 -1
- package/esm/domain/connectivity/connectivity.d.ts +0 -18
- package/esm/domain/connectivity/connectivity.js +0 -13
- 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 -56
- 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 -32
- package/esm/domain/contexts/userContext.js +0 -120
- 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 -72
- 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 -4
- package/esm/domain/intakeSites.js +0 -4
- 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 -180
- 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 -59
- 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 -232
- 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/domain/userAgentData/index.d.ts +0 -1
- package/esm/domain/userAgentData/index.js +0 -2
- package/esm/domain/userAgentData/index.js.map +0 -1
- package/esm/domain/userAgentData/userAgentData.d.ts +0 -22
- package/esm/domain/userAgentData/userAgentData.js +0 -105
- package/esm/domain/userAgentData/userAgentData.js.map +0 -1
- package/esm/index.d.ts +0 -104
- package/esm/index.js +0 -79
- 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 -51
- 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/geocoding.d.ts +0 -60
- package/esm/tools/utils/geocoding.js +0 -73
- package/esm/tools/utils/geocoding.js.map +0 -1
- package/esm/tools/utils/geolocation.d.ts +0 -24
- package/esm/tools/utils/geolocation.js +0 -71
- package/esm/tools/utils/geolocation.js.map +0 -1
- package/esm/tools/utils/numberUtils.d.ts +0 -8
- package/esm/tools/utils/numberUtils.js +0 -17
- 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 -57
- package/esm/transport/httpRequest.js +0 -101
- 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/endpointBuilder.ts +0 -105
- package/src/domain/configuration/transportConfiguration.ts +0 -86
- package/src/domain/intakeSites.ts +0 -6
- 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 -44
- package/src/tools/globalObject.ts +0 -51
- package/src/tools/mergeInto.ts +0 -177
- package/src/tools/monitor.ts +0 -71
- package/src/tools/utils/timeUtils.ts +0 -117
- package/src/tools/utils/typeUtils.ts +0 -12
- package/src/tools/utils/urlPolyfill.ts +0 -55
- /package/cjs/{tools/utils → domain/geo}/geocoding.d.ts +0 -0
- /package/cjs/{tools/utils → domain/geo}/geolocation.d.ts +0 -0
package/src/tools/observable.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { queueMicrotask } from './queueMicrotask'
|
|
2
|
+
|
|
2
3
|
export interface Subscription {
|
|
3
4
|
unsubscribe: () => void
|
|
4
5
|
}
|
|
@@ -50,8 +51,12 @@ export function mergeObservables<T>(...observables: Array<Observable<T>>) {
|
|
|
50
51
|
// eslint-disable-next-line no-restricted-syntax
|
|
51
52
|
export class BufferedObservable<T> extends Observable<T> {
|
|
52
53
|
private buffer: T[] = []
|
|
54
|
+
private droppedCount = 0
|
|
53
55
|
|
|
54
|
-
constructor(
|
|
56
|
+
constructor(
|
|
57
|
+
private maxBufferSize: number,
|
|
58
|
+
private onDrop?: (count: number) => void
|
|
59
|
+
) {
|
|
55
60
|
super()
|
|
56
61
|
}
|
|
57
62
|
|
|
@@ -59,6 +64,7 @@ export class BufferedObservable<T> extends Observable<T> {
|
|
|
59
64
|
this.buffer.push(data)
|
|
60
65
|
if (this.buffer.length > this.maxBufferSize) {
|
|
61
66
|
this.buffer.shift()
|
|
67
|
+
this.droppedCount++
|
|
62
68
|
}
|
|
63
69
|
super.notify(data)
|
|
64
70
|
}
|
|
@@ -97,7 +103,10 @@ export class BufferedObservable<T> extends Observable<T> {
|
|
|
97
103
|
*/
|
|
98
104
|
unbuffer() {
|
|
99
105
|
queueMicrotask(() => {
|
|
106
|
+
if (this.droppedCount > 0 && this.onDrop) {
|
|
107
|
+
this.onDrop(this.droppedCount)
|
|
108
|
+
}
|
|
100
109
|
this.maxBufferSize = this.buffer.length = 0
|
|
101
110
|
})
|
|
102
111
|
}
|
|
103
|
-
}
|
|
112
|
+
}
|
|
@@ -1,8 +1,13 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { globalObject } from '@kubesense/kubesense-js-core/util'
|
|
2
|
+
import { monitor } from '@kubesense/kubesense-js-core/monitor'
|
|
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 '@kubesense/kubesense-js-core/time'
|
|
2
|
+
import { monitor } from '@kubesense/kubesense-js-core/monitor'
|
|
1
3
|
import { setTimeout, clearTimeout } from './timer'
|
|
2
|
-
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.
|
|
@@ -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
|
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
return sanitizedData
|
|
139
|
+
} finally {
|
|
140
|
+
// Rebind detached toJSON functions
|
|
141
|
+
restoreObjectPrototypeToJson()
|
|
142
|
+
restoreArrayPrototypeToJson()
|
|
143
|
+
}
|
|
142
144
|
}
|
|
143
145
|
|
|
144
146
|
/**
|
|
@@ -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 {
|
|
@@ -250,8 +252,13 @@ function sanitizeEvent(event: Event): SanitizedEvent {
|
|
|
250
252
|
*
|
|
251
253
|
*/
|
|
252
254
|
function tryToApplyToJSON(value: ExtendedContextValue) {
|
|
255
|
+
// Primitive values are sanitized directly and should not use inherited toJSON methods.
|
|
256
|
+
if ((typeof value !== 'object' || value === null) && typeof value !== 'function') {
|
|
257
|
+
return value
|
|
258
|
+
}
|
|
259
|
+
|
|
253
260
|
const object = value as ObjectWithToJsonMethod
|
|
254
|
-
if (
|
|
261
|
+
if (typeof object.toJSON === 'function') {
|
|
255
262
|
try {
|
|
256
263
|
return object.toJSON() as ExtendedContextValue
|
|
257
264
|
} 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 '@kubesense/kubesense-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) {
|
|
@@ -77,8 +79,7 @@ export function computeStackTrace(ex: unknown): StackTrace {
|
|
|
77
79
|
stack,
|
|
78
80
|
}
|
|
79
81
|
}
|
|
80
|
-
const fileUrl =
|
|
81
|
-
'((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\w+\\.|\\/).*?)'
|
|
82
|
+
const fileUrl = '((?:blob|native|eval|<anonymous>|[a-zA-Z][a-zA-Z0-9+.-]*:\\/\\/|\\w+\\.|\\/).*?)'
|
|
82
83
|
const filePosition = '(?::(\\d+))'
|
|
83
84
|
const CHROME_LINE_RE = new RegExp(`^\\s*at (.*?) ?\\(${fileUrl}${filePosition}?${filePosition}?\\)?\\s*$`, 'i')
|
|
84
85
|
|
|
@@ -91,8 +92,8 @@ function parseChromeLine(line: string): StackFrame | undefined {
|
|
|
91
92
|
return
|
|
92
93
|
}
|
|
93
94
|
|
|
94
|
-
const isNative = parts[2]
|
|
95
|
-
const isEval = parts[2]
|
|
95
|
+
const isNative = parts[2]?.indexOf('native') === 0 // start of line
|
|
96
|
+
const isEval = parts[2]?.indexOf('eval') === 0 // start of line
|
|
96
97
|
const submatch = CHROME_EVAL_RE.exec(parts[2])
|
|
97
98
|
|
|
98
99
|
if (isEval && submatch) {
|
|
@@ -111,7 +112,11 @@ function parseChromeLine(line: string): StackFrame | undefined {
|
|
|
111
112
|
}
|
|
112
113
|
}
|
|
113
114
|
|
|
114
|
-
const
|
|
115
|
+
const htmlAnonymousPart = '(?:(.*)?(?: @))'
|
|
116
|
+
const CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(
|
|
117
|
+
`^\\s*at\\s*${htmlAnonymousPart}?\\s*${fileUrl}${filePosition}?${filePosition}??\\s*$`,
|
|
118
|
+
'i'
|
|
119
|
+
)
|
|
115
120
|
|
|
116
121
|
function parseChromeAnonymousLine(line: string): StackFrame | undefined {
|
|
117
122
|
const parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line)
|
|
@@ -122,10 +127,10 @@ function parseChromeAnonymousLine(line: string): StackFrame | undefined {
|
|
|
122
127
|
|
|
123
128
|
return {
|
|
124
129
|
args: [],
|
|
125
|
-
column: parts[
|
|
126
|
-
func: UNKNOWN_FUNCTION,
|
|
127
|
-
line: parts[
|
|
128
|
-
url: parts[
|
|
130
|
+
column: parts[4] ? +parts[4] : undefined,
|
|
131
|
+
func: parts[1] || UNKNOWN_FUNCTION,
|
|
132
|
+
line: parts[3] ? +parts[3] : undefined,
|
|
133
|
+
url: parts[2],
|
|
129
134
|
}
|
|
130
135
|
}
|
|
131
136
|
|
|
@@ -177,11 +182,7 @@ function parseGeckoLine(line: string): StackFrame | undefined {
|
|
|
177
182
|
}
|
|
178
183
|
|
|
179
184
|
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
|
|
185
|
+
return isIndexableObject(candidate) && typeof candidate[property] === 'string' ? candidate[property] : undefined
|
|
185
186
|
}
|
|
186
187
|
|
|
187
188
|
export function computeStackTraceFromOnErrorMessage(
|
|
@@ -214,7 +215,6 @@ function tryToParseMessage(messageObj: unknown) {
|
|
|
214
215
|
return { name, message }
|
|
215
216
|
}
|
|
216
217
|
|
|
217
|
-
|
|
218
218
|
// Custom error stacktrace fix
|
|
219
219
|
// Some browsers (safari/firefox) add the error constructor as a frame in the stacktrace
|
|
220
220
|
// In order to normalize the stacktrace, we need to remove it
|
|
@@ -231,14 +231,14 @@ function isWronglyReportingCustomErrors() {
|
|
|
231
231
|
}
|
|
232
232
|
|
|
233
233
|
/* eslint-disable no-restricted-syntax */
|
|
234
|
-
class
|
|
234
|
+
class KubeSenseTestCustomError extends Error {
|
|
235
235
|
constructor() {
|
|
236
236
|
super()
|
|
237
237
|
this.name = 'Error' // set name to Error so that no browser would default to the constructor name
|
|
238
238
|
}
|
|
239
239
|
}
|
|
240
240
|
|
|
241
|
-
const [customError, nativeError] = [
|
|
241
|
+
const [customError, nativeError] = [KubeSenseTestCustomError, Error].map((errConstructor) => new errConstructor()) // so that both errors should exactly have the same stacktrace
|
|
242
242
|
|
|
243
243
|
isWronglyReportingCustomErrorsCache =
|
|
244
244
|
// If customError is not a class, it means that this was built with ES5 as target, converting the class to a normal object.
|
|
@@ -248,4 +248,4 @@ function isWronglyReportingCustomErrors() {
|
|
|
248
248
|
nativeError.stack !== customError.stack
|
|
249
249
|
|
|
250
250
|
return isWronglyReportingCustomErrorsCache
|
|
251
|
-
}
|
|
251
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { callMonitored } from '
|
|
1
|
+
import { callMonitored } from '@kubesense/kubesense-js-core/monitor'
|
|
2
2
|
import type { StackTrace } from './computeStackTrace'
|
|
3
3
|
import { computeStackTrace } from './computeStackTrace'
|
|
4
4
|
|
|
@@ -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 '@kubesense/kubesense-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 {
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { TimeoutId } from './timer'
|
|
2
|
+
import { setTimeout, clearTimeout } from './timer'
|
|
3
|
+
|
|
4
|
+
export function isThenable<T>(value: unknown): value is PromiseLike<T> {
|
|
5
|
+
return !!value && typeof (value as { then?: unknown }).then === 'function'
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export const TIMEOUT_ERROR_MESSAGE = 'Timeout'
|
|
9
|
+
export function isTimeoutError(error: unknown): error is Error {
|
|
10
|
+
return error instanceof Error && error.message === TIMEOUT_ERROR_MESSAGE
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Resolves or rejects with `thenable`, or rejects with a `TIMEOUT_ERROR_MESSAGE` error if it
|
|
15
|
+
* doesn't settle within `timeout` ms.
|
|
16
|
+
*/
|
|
17
|
+
export function waitForThenable<T>(thenable: PromiseLike<T>, timeout = 3000): Promise<T> {
|
|
18
|
+
let timeoutId: TimeoutId
|
|
19
|
+
const timeoutPromise = new Promise<never>((_, reject) => {
|
|
20
|
+
timeoutId = setTimeout(() => reject(new Error(TIMEOUT_ERROR_MESSAGE)), timeout)
|
|
21
|
+
})
|
|
22
|
+
return Promise.race([thenable, timeoutPromise]).finally(() => clearTimeout(timeoutId))
|
|
23
|
+
}
|
package/src/tools/timer.ts
CHANGED
|
@@ -1,21 +1,22 @@
|
|
|
1
|
+
import type { GlobalObject } from '@kubesense/kubesense-js-core/util'
|
|
2
|
+
import { globalObject } from '@kubesense/kubesense-js-core/util'
|
|
3
|
+
import { monitor } from '@kubesense/kubesense-js-core/monitor'
|
|
1
4
|
import { getZoneJsOriginalValue } from './getZoneJsOriginalValue'
|
|
2
|
-
import { monitor } from './monitor'
|
|
3
|
-
import { getGlobalObject } 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
|
}
|
|
@@ -10,7 +10,13 @@ export function removeItem<T>(array: T[], item: T) {
|
|
|
10
10
|
array.splice(index, 1)
|
|
11
11
|
}
|
|
12
12
|
}
|
|
13
|
-
|
|
14
13
|
export function isNonEmptyArray<T>(value: unknown): value is T[] {
|
|
15
14
|
return Array.isArray(value) && value.length > 0
|
|
16
|
-
}
|
|
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 {
|
|
@@ -28,7 +24,7 @@ export function concatBuffers(buffers: Uint8ArrayBuffer[]): Uint8ArrayBuffer {
|
|
|
28
24
|
if (buffers.length === 1) {
|
|
29
25
|
return buffers[0]
|
|
30
26
|
}
|
|
31
|
-
|
|
27
|
+
|
|
32
28
|
const length = buffers.reduce((total, buffer) => total + buffer.length, 0)
|
|
33
29
|
const result: Uint8ArrayBuffer = new Uint8Array(length)
|
|
34
30
|
let offset = 0
|
|
@@ -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,19 +1,7 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Return true if the draw is successful
|
|
3
|
-
* @param threshold - Threshold between 0 and 100
|
|
4
|
-
*/
|
|
5
|
-
export function performDraw(threshold: number): boolean {
|
|
6
|
-
return threshold !== 0 && Math.random() * 100 <= threshold
|
|
7
|
-
}
|
|
8
|
-
|
|
9
1
|
export function round(num: number, decimals: 0 | 1 | 2 | 3 | 4) {
|
|
10
2
|
return +num.toFixed(decimals)
|
|
11
3
|
}
|
|
12
4
|
|
|
13
|
-
export function isPercentage(value: unknown) {
|
|
14
|
-
return isNumber(value) && value >= 0 && value <= 100
|
|
15
|
-
}
|
|
16
|
-
|
|
17
5
|
export function isNumber(value: unknown): value is number {
|
|
18
6
|
return typeof value === 'number'
|
|
19
7
|
}
|
|
@@ -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
|
+
}
|