@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/index.ts
CHANGED
|
@@ -1,16 +1,11 @@
|
|
|
1
|
-
export type { Configuration, InitConfiguration
|
|
1
|
+
export type { Configuration, InitConfiguration } from './domain/configuration'
|
|
2
2
|
export type { RemoteSdkConfig, RemoteSdkConfigFeatures } from './domain/configuration'
|
|
3
3
|
export {
|
|
4
|
-
|
|
4
|
+
BROWSER_CORE_SCHEMA,
|
|
5
5
|
DefaultPrivacyLevel,
|
|
6
6
|
TraceContextInjection,
|
|
7
7
|
serializeConfiguration,
|
|
8
|
-
|
|
9
|
-
buildEndpointHost,
|
|
10
|
-
INTAKE_URL_PARAMETERS,
|
|
11
|
-
INTAKE_SITE_PROD,
|
|
12
|
-
INTAKE_SITE_STAGING,
|
|
13
|
-
isIntakeUrl,
|
|
8
|
+
isAllowedTrackingOrigins,
|
|
14
9
|
SDK_CONFIG_CACHE_KEY,
|
|
15
10
|
SDK_CONFIG_PATH,
|
|
16
11
|
buildSdkConfigEndpoint,
|
|
@@ -19,18 +14,18 @@ export {
|
|
|
19
14
|
parseSdkConfig,
|
|
20
15
|
readBoolean,
|
|
21
16
|
readEnum,
|
|
17
|
+
readNumberInRange,
|
|
22
18
|
readSampleRate,
|
|
23
19
|
readString,
|
|
20
|
+
readStringList,
|
|
24
21
|
refreshSdkConfig,
|
|
25
22
|
setCachedSdkConfig,
|
|
26
23
|
} from './domain/configuration'
|
|
27
|
-
export * from './domain/intakeSites'
|
|
28
24
|
export type { TrackingConsentState } from './domain/trackingConsent'
|
|
29
25
|
export { TrackingConsent, createTrackingConsentState } from './domain/trackingConsent'
|
|
30
26
|
export {
|
|
31
27
|
isExperimentalFeatureEnabled,
|
|
32
28
|
addExperimentalFeatures,
|
|
33
|
-
resetExperimentalFeatures,
|
|
34
29
|
getExperimentalFeatures,
|
|
35
30
|
initFeatureFlags,
|
|
36
31
|
ExperimentalFeature,
|
|
@@ -58,24 +53,37 @@ export {
|
|
|
58
53
|
startTelemetry,
|
|
59
54
|
addTelemetryDebug,
|
|
60
55
|
addTelemetryError,
|
|
61
|
-
resetTelemetry,
|
|
62
56
|
TelemetryService,
|
|
63
57
|
TelemetryMetrics,
|
|
64
58
|
addTelemetryConfiguration,
|
|
65
59
|
addTelemetryUsage,
|
|
66
60
|
addTelemetryMetrics,
|
|
67
61
|
} from './domain/telemetry'
|
|
68
|
-
export { monitored, monitor, callMonitored, setDebugMode, monitorError } from './tools/monitor'
|
|
69
62
|
export type { Subscription } from './tools/observable'
|
|
70
63
|
export { Observable, BufferedObservable } from './tools/observable'
|
|
71
|
-
export type { SessionManager } from './domain/session/sessionManager'
|
|
72
|
-
export {
|
|
64
|
+
export type { SessionManager, SessionContext } from './domain/session/sessionManager'
|
|
65
|
+
export {
|
|
66
|
+
startSessionManager,
|
|
67
|
+
startSessionManagerStub,
|
|
68
|
+
stopSessionManager,
|
|
69
|
+
getSessionEndClocks,
|
|
70
|
+
} from './domain/session/sessionManager'
|
|
73
71
|
export {
|
|
74
72
|
SESSION_TIME_OUT_DELAY, // Exposed for tests
|
|
73
|
+
SESSION_EXPIRATION_DELAY,
|
|
75
74
|
SESSION_NOT_TRACKED,
|
|
76
75
|
SessionPersistence,
|
|
77
76
|
} from './domain/session/sessionConstants'
|
|
78
|
-
export type {
|
|
77
|
+
export type {
|
|
78
|
+
Batch,
|
|
79
|
+
BandwidthStats,
|
|
80
|
+
HttpRequest,
|
|
81
|
+
HttpRequestEvent,
|
|
82
|
+
Payload,
|
|
83
|
+
FlushEvent,
|
|
84
|
+
FlushReason,
|
|
85
|
+
UrgentFlushReason,
|
|
86
|
+
} from './transport'
|
|
79
87
|
export {
|
|
80
88
|
createHttpRequest,
|
|
81
89
|
canUseEventBridge,
|
|
@@ -89,56 +97,63 @@ export {
|
|
|
89
97
|
export * from './tools/display'
|
|
90
98
|
export type { Encoder, EncoderResult } from './tools/encoder'
|
|
91
99
|
export { createIdentityEncoder } from './tools/encoder'
|
|
92
|
-
export * from './tools/utils/urlPolyfill'
|
|
93
|
-
export * from './tools/utils/timeUtils'
|
|
94
100
|
export * from './tools/utils/arrayUtils'
|
|
101
|
+
|
|
95
102
|
export * from './tools/serialisation/sanitize'
|
|
96
|
-
export * from './tools/globalObject'
|
|
97
103
|
export { AbstractLifeCycle } from './tools/abstractLifeCycle'
|
|
98
104
|
export * from './domain/eventRateLimiter/createEventRateLimiter'
|
|
99
105
|
export * from './tools/utils/browserDetection'
|
|
100
106
|
export { sendToExtension } from './tools/sendToExtension'
|
|
101
107
|
export { runOnReadyState, asyncRunOnReadyState } from './browser/runOnReadyState'
|
|
102
108
|
export { getZoneJsOriginalValue } from './tools/getZoneJsOriginalValue'
|
|
103
|
-
export
|
|
104
|
-
export {
|
|
109
|
+
export { mockable } from './tools/mockable'
|
|
110
|
+
export type { InstrumentedMethodCall, InstrumentedConstructorCall } from './tools/instrumentMethod'
|
|
111
|
+
export { instrumentMethod, instrumentConstructor, instrumentSetter } from './tools/instrumentMethod'
|
|
105
112
|
export {
|
|
106
113
|
computeRawError,
|
|
107
114
|
getFileFromStackTraceString,
|
|
115
|
+
getStackTraceUrls,
|
|
108
116
|
isError,
|
|
109
117
|
NO_ERROR_STACK_PRESENT_MESSAGE,
|
|
118
|
+
DEFAULT_ERROR_TYPE,
|
|
110
119
|
} from './domain/error/error'
|
|
111
120
|
export { NonErrorPrefix } from './domain/error/error.types'
|
|
121
|
+
export { buildDebugIdByUrl, getSourceCodeContext } from './domain/sourceCodeContext'
|
|
122
|
+
export type { DebugIdEntry } from './domain/sourceCodeContext'
|
|
112
123
|
export type { Context, ContextArray, ContextValue } from './tools/serialisation/context'
|
|
113
|
-
export {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
setCookie,
|
|
118
|
-
deleteCookie,
|
|
119
|
-
resetInitCookies,
|
|
120
|
-
} from './browser/cookie'
|
|
121
|
-
export type { CookieStore, WeakRef, WeakRefConstructor } from './browser/browser.types'
|
|
122
|
-
export type { XhrCompleteContext, XhrStartContext } from './browser/xhrObservable'
|
|
124
|
+
export { getCookie, getInitCookie, setCookie, deleteCookie, resetInitCookies } from './browser/cookie'
|
|
125
|
+
export { isCookieStoreSupported } from './browser/cookieAccess'
|
|
126
|
+
export type { WeakRef, WeakRefConstructor } from './browser/browser.types'
|
|
127
|
+
export type { XhrCompleteContext, XhrStartContext, XhrContext } from './browser/xhrObservable'
|
|
123
128
|
export { initXhrObservable } from './browser/xhrObservable'
|
|
124
129
|
export type { FetchResolveContext, FetchStartContext, FetchContext } from './browser/fetchObservable'
|
|
125
|
-
export { initFetchObservable,
|
|
130
|
+
export { initFetchObservable, ResponseBodyAction } from './browser/fetchObservable'
|
|
131
|
+
export type {
|
|
132
|
+
WebSocketContext,
|
|
133
|
+
WebSocketConnectingContext,
|
|
134
|
+
WebSocketOpenContext,
|
|
135
|
+
WebSocketMessageInContext,
|
|
136
|
+
WebSocketMessageOutContext,
|
|
137
|
+
WebSocketClosedContext,
|
|
138
|
+
} from './browser/webSocketObservable'
|
|
139
|
+
export { initWebSocketObservable } from './browser/webSocketObservable'
|
|
140
|
+
export { fetch } from './browser/fetch'
|
|
126
141
|
export type { PageMayExitEvent } from './browser/pageMayExitObservable'
|
|
127
142
|
export { createPageMayExitObservable, PageExitReason, isPageExitReason } from './browser/pageMayExitObservable'
|
|
128
143
|
export * from './browser/addEventListener'
|
|
129
144
|
export { requestIdleCallback } from './tools/requestIdleCallback'
|
|
130
145
|
export * from './tools/taskQueue'
|
|
131
146
|
export * from './tools/timer'
|
|
147
|
+
export * from './tools/thenable'
|
|
132
148
|
export type { ConsoleLog } from './domain/console/consoleObservable'
|
|
133
|
-
export { initConsoleObservable
|
|
134
|
-
export type { BoundedBuffer } from './tools/boundedBuffer'
|
|
135
|
-
export { createBoundedBuffer } from './tools/boundedBuffer'
|
|
149
|
+
export { initConsoleObservable } from './domain/console/consoleObservable'
|
|
136
150
|
export { catchUserErrors } from './tools/catchUserErrors'
|
|
137
151
|
export type { ContextManager } from './domain/context/contextManager'
|
|
138
152
|
export { createContextManager } from './domain/context/contextManager'
|
|
139
153
|
export { defineContextMethod, bufferContextCalls } from './domain/context/defineContextMethod'
|
|
140
154
|
export { storeContextManager, removeStorageListeners } from './domain/context/storeContextManager'
|
|
141
155
|
export { startAccountContext, buildAccountContextManager } from './domain/contexts/accountContext'
|
|
156
|
+
export { startTabContext } from './domain/contexts/tabContext'
|
|
142
157
|
export { startGlobalContext, buildGlobalContextManager } from './domain/contexts/globalContext'
|
|
143
158
|
export { startUserContext, buildUserContextManager } from './domain/contexts/userContext'
|
|
144
159
|
export type { User } from './domain/contexts/userContext'
|
|
@@ -149,36 +164,37 @@ export type { ValueHistory, ValueHistoryEntry } from './tools/valueHistory'
|
|
|
149
164
|
export { createValueHistory, CLEAR_OLD_VALUES_INTERVAL } from './tools/valueHistory'
|
|
150
165
|
export { readBytesFromStream } from './tools/readBytesFromStream'
|
|
151
166
|
export type { SessionState } from './domain/session/sessionState'
|
|
152
|
-
export { STORAGE_POLL_DELAY } from './domain/session/sessionStore'
|
|
153
167
|
export { SESSION_STORE_KEY } from './domain/session/storeStrategies/sessionStoreStrategy'
|
|
168
|
+
export type { MemorySession } from './domain/session/storeStrategies/sessionInMemory'
|
|
169
|
+
export { MEMORY_SESSION_STORE_KEY } from './domain/session/storeStrategies/sessionInMemory'
|
|
154
170
|
export {
|
|
155
171
|
willSyntheticsInjectRum,
|
|
156
|
-
|
|
157
|
-
getSyntheticsResultId,
|
|
172
|
+
getSyntheticsContext,
|
|
158
173
|
isSyntheticsTest,
|
|
159
174
|
} from './domain/synthetics/syntheticsWorkerValues'
|
|
175
|
+
export type { SyntheticsContext } from './domain/synthetics/syntheticsWorkerValues'
|
|
160
176
|
export { checkContext } from './domain/context/contextUtils'
|
|
161
177
|
export * from './domain/resourceUtils'
|
|
162
178
|
export * from './domain/bufferedData'
|
|
163
179
|
export * from './tools/utils/polyfills'
|
|
164
180
|
export * from './tools/utils/timezone'
|
|
165
|
-
export * from './
|
|
166
|
-
export * from './
|
|
181
|
+
export * from './domain/geo/geolocation'
|
|
182
|
+
export * from './domain/geo/geocoding'
|
|
167
183
|
export * from './tools/utils/numberUtils'
|
|
168
184
|
export * from './tools/utils/byteUtils'
|
|
169
185
|
export * from './tools/utils/objectUtils'
|
|
170
186
|
export * from './tools/utils/functionUtils'
|
|
171
187
|
export * from './tools/serialisation/jsonStringify'
|
|
172
|
-
export * from './tools/
|
|
188
|
+
export * from './tools/serialisation/stringify'
|
|
173
189
|
export * from './tools/utils/stringUtils'
|
|
174
190
|
export * from './tools/matchOption'
|
|
175
191
|
export * from './tools/utils/responseUtils'
|
|
176
|
-
export * from './tools/utils/typeUtils'
|
|
177
192
|
export type { RawError, RawErrorCause, ErrorWithCause, Csp } from './domain/error/error.types'
|
|
178
193
|
export { ErrorHandling, ErrorSource } from './domain/error/error.types'
|
|
179
194
|
export * from './domain/deflate'
|
|
180
195
|
export * from './domain/connectivity'
|
|
181
196
|
export * from './domain/userAgentData'
|
|
182
197
|
export * from './tools/stackTrace/handlingStack'
|
|
183
|
-
export * from './
|
|
184
|
-
export
|
|
198
|
+
export * from './domain/tags'
|
|
199
|
+
export { correctedChildSampleRate, isSampled, resetSampleDecisionCache, sampleUsingKnuthFactor } from './domain/sampler'
|
|
200
|
+
export { startTelemetrySessionContext } from './domain/contexts/telemetrySessionContext'
|
package/src/tools/display.ts
CHANGED
|
@@ -1,56 +1,6 @@
|
|
|
1
1
|
/* eslint-disable local-rules/disallow-side-effects */
|
|
2
|
-
|
|
3
|
-
* Keep references on console methods to avoid triggering patched behaviors
|
|
4
|
-
*
|
|
5
|
-
* NB: in some setup, console could already be patched by another SDK.
|
|
6
|
-
* In this case, some display messages can be sent by the other SDK
|
|
7
|
-
* but we should be safe from infinite loop nonetheless.
|
|
8
|
-
*/
|
|
2
|
+
import { createDisplay, DOCS_ORIGIN } from '@kubesense/kubesense-js-core/util'
|
|
9
3
|
|
|
10
|
-
export const
|
|
11
|
-
log: 'log',
|
|
12
|
-
debug: 'debug',
|
|
13
|
-
info: 'info',
|
|
14
|
-
warn: 'warn',
|
|
15
|
-
error: 'error',
|
|
16
|
-
} as const
|
|
4
|
+
export const display = createDisplay('KubeSense Browser SDK:')
|
|
17
5
|
|
|
18
|
-
export type ConsoleApiName = (typeof ConsoleApiName)[keyof typeof ConsoleApiName]
|
|
19
|
-
|
|
20
|
-
interface Display {
|
|
21
|
-
debug: typeof console.debug
|
|
22
|
-
log: typeof console.log
|
|
23
|
-
info: typeof console.info
|
|
24
|
-
warn: typeof console.warn
|
|
25
|
-
error: typeof console.error
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* When building JS bundles, some users might use a plugin[1] or configuration[2] to remove
|
|
30
|
-
* "console.*" references. This causes some issue as we expect `console.*` to be defined.
|
|
31
|
-
* As a workaround, let's use a variable alias, so those expressions won't be taken into account by
|
|
32
|
-
* simple static analysis.
|
|
33
|
-
*
|
|
34
|
-
* [1]: https://babeljs.io/docs/babel-plugin-transform-remove-console/
|
|
35
|
-
* [2]: https://github.com/terser/terser#compress-options (look for drop_console)
|
|
36
|
-
*/
|
|
37
|
-
export const globalConsole = console
|
|
38
|
-
|
|
39
|
-
export const originalConsoleMethods = {} as Display
|
|
40
|
-
Object.keys(ConsoleApiName).forEach((name) => {
|
|
41
|
-
originalConsoleMethods[name as ConsoleApiName] = globalConsole[name as ConsoleApiName]
|
|
42
|
-
})
|
|
43
|
-
|
|
44
|
-
const PREFIX = 'KubeSense Browser SDK:'
|
|
45
|
-
|
|
46
|
-
export const display: Display = {
|
|
47
|
-
debug: originalConsoleMethods.debug.bind(globalConsole, PREFIX),
|
|
48
|
-
log: originalConsoleMethods.log.bind(globalConsole, PREFIX),
|
|
49
|
-
info: originalConsoleMethods.info.bind(globalConsole, PREFIX),
|
|
50
|
-
warn: originalConsoleMethods.warn.bind(globalConsole, PREFIX),
|
|
51
|
-
error: originalConsoleMethods.error.bind(globalConsole, PREFIX),
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
export const DOCS_ORIGIN = 'https://docs.kubesense.ai'
|
|
55
6
|
export const DOCS_TROUBLESHOOTING = `${DOCS_ORIGIN}/rum/browser/troubleshooting`
|
|
56
|
-
export const MORE_DETAILS = 'More details:'
|
|
@@ -14,11 +14,10 @@ import { objectHasValue } from './utils/objectUtils'
|
|
|
14
14
|
|
|
15
15
|
// eslint-disable-next-line no-restricted-syntax
|
|
16
16
|
export enum ExperimentalFeature {
|
|
17
|
+
// `session_replay_record_canvas` gated `sessionReplayCanvasRecording` until canvas recording became a
|
|
18
|
+
// regular option in 2.0.0. An application still passing it is unaffected: unknown flags are ignored.
|
|
17
19
|
TRACK_INTAKE_REQUESTS = 'track_intake_requests',
|
|
18
|
-
|
|
19
|
-
FEATURE_OPERATION_VITAL = 'feature_operation_vital',
|
|
20
|
-
SHORT_SESSION_INVESTIGATION = 'short_session_investigation',
|
|
21
|
-
AVOID_FETCH_KEEPALIVE = 'avoid_fetch_keepalive',
|
|
20
|
+
TRACK_WEBSOCKETS = 'track_websockets',
|
|
22
21
|
}
|
|
23
22
|
|
|
24
23
|
const enabledExperimentalFeatures: Set<ExperimentalFeature> = new Set()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { globalObject } from '@kubesense/kubesense-js-core/util'
|
|
2
2
|
|
|
3
|
-
export interface BrowserWindowWithZoneJs
|
|
3
|
+
export interface BrowserWindowWithZoneJs {
|
|
4
4
|
Zone?: {
|
|
5
5
|
// All Zone.js versions expose the __symbol__ method, but we observed that some website have a
|
|
6
6
|
// 'Zone' global variable unrelated to Zone.js, so let's consider this method optional
|
|
@@ -26,7 +26,7 @@ export function getZoneJsOriginalValue<Target, Name extends keyof Target & strin
|
|
|
26
26
|
target: Target,
|
|
27
27
|
name: Name
|
|
28
28
|
): Target[Name] {
|
|
29
|
-
const browserWindow =
|
|
29
|
+
const browserWindow = globalObject as BrowserWindowWithZoneJs
|
|
30
30
|
let original: Target[Name] | undefined
|
|
31
31
|
if (browserWindow.Zone && typeof browserWindow.Zone.__symbol__ === 'function') {
|
|
32
32
|
original = (target as any)[browserWindow.Zone.__symbol__(name)]
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { callMonitored } from '@kubesense/kubesense-js-core/monitor'
|
|
1
2
|
import { setTimeout } from './timer'
|
|
2
|
-
import { callMonitored } from './monitor'
|
|
3
3
|
import { noop } from './utils/functionUtils'
|
|
4
4
|
import { createHandlingStack } from './stackTrace/handlingStack'
|
|
5
5
|
|
|
@@ -36,6 +36,35 @@ type PostCallCallback<TARGET extends { [key: string]: any }, METHOD extends keyo
|
|
|
36
36
|
result: ReturnType<TARGET[METHOD]>
|
|
37
37
|
) => void
|
|
38
38
|
|
|
39
|
+
type ConstructorParametersOf<CONSTRUCTOR> = CONSTRUCTOR extends new (...args: infer P) => any ? P : never
|
|
40
|
+
type ConstructorInstanceOf<CONSTRUCTOR> = CONSTRUCTOR extends new (...args: any[]) => infer R ? R : never
|
|
41
|
+
|
|
42
|
+
type AnyConstructor = abstract new (...args: any[]) => any
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Object passed to the callback of an instrumented constructor call. See `instrumentConstructor`
|
|
46
|
+
* for more info.
|
|
47
|
+
*/
|
|
48
|
+
export interface InstrumentedConstructorCall<CONSTRUCTOR> {
|
|
49
|
+
/**
|
|
50
|
+
* The parameters with which the constructor was called.
|
|
51
|
+
*
|
|
52
|
+
* Note: if needed, parameters can be mutated by the instrumentation
|
|
53
|
+
*/
|
|
54
|
+
parameters: ConstructorParametersOf<CONSTRUCTOR>
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Registers a callback that will be called after the original constructor is called, with the
|
|
58
|
+
* constructed instance passed as argument.
|
|
59
|
+
*/
|
|
60
|
+
onPostCall: (callback: (result: ConstructorInstanceOf<CONSTRUCTOR>) => void) => void
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* The stack trace of the constructor call.
|
|
64
|
+
*/
|
|
65
|
+
handlingStack?: string
|
|
66
|
+
}
|
|
67
|
+
|
|
39
68
|
/**
|
|
40
69
|
* Instruments a method on a object, calling the given callback before the original method is
|
|
41
70
|
* invoked. The callback receives an object with information about the method call.
|
|
@@ -57,6 +86,8 @@ type PostCallCallback<TARGET extends { [key: string]: any }, METHOD extends keyo
|
|
|
57
86
|
* * if the event handler is set by a third party after us, we need to keep it in place when
|
|
58
87
|
* removing ours.
|
|
59
88
|
*
|
|
89
|
+
* To instrument a constructor @see {@link instrumentConstructor}.
|
|
90
|
+
*
|
|
60
91
|
* @example
|
|
61
92
|
*
|
|
62
93
|
* instrumentMethod(window, 'fetch', ({ target, parameters, onPostCall }) => {
|
|
@@ -88,40 +119,138 @@ export function instrumentMethod<TARGET extends { [key: string]: any }, METHOD e
|
|
|
88
119
|
const instrumentation = function (this: TARGET): ReturnType<TARGET[METHOD]> {
|
|
89
120
|
if (stopped) {
|
|
90
121
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call
|
|
91
|
-
return original.apply(this, arguments
|
|
122
|
+
return original.apply(this, arguments)
|
|
92
123
|
}
|
|
93
124
|
|
|
94
125
|
const parameters = Array.from(arguments) as Parameters<TARGET[METHOD]>
|
|
95
126
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
callMonitored(onPreCall, null, [
|
|
127
|
+
return notifyInstrumentation<InstrumentedMethodCall<TARGET, METHOD>, ReturnType<TARGET[METHOD]>>(
|
|
128
|
+
onPreCall,
|
|
99
129
|
{
|
|
100
130
|
target: this,
|
|
101
131
|
parameters,
|
|
102
|
-
onPostCall: (callback) => {
|
|
103
|
-
postCallCallback = callback
|
|
104
|
-
},
|
|
105
132
|
handlingStack: computeHandlingStack ? createHandlingStack('instrumented method') : undefined,
|
|
106
133
|
},
|
|
107
|
-
|
|
134
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return, @typescript-eslint/no-unsafe-call -- TARGET[METHOD] is any under the index signature; value is verified as a function above
|
|
135
|
+
() => original.apply(this, parameters)
|
|
136
|
+
)
|
|
137
|
+
} as TARGET[METHOD]
|
|
108
138
|
|
|
109
|
-
|
|
110
|
-
const result = original.apply(this, parameters)
|
|
139
|
+
const { stop: restoreOriginal } = replaceWithInstrumentation(targetPrototype, method, original, instrumentation)
|
|
111
140
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
141
|
+
return {
|
|
142
|
+
stop: () => {
|
|
143
|
+
stopped = true
|
|
144
|
+
restoreOriginal()
|
|
145
|
+
},
|
|
146
|
+
}
|
|
147
|
+
}
|
|
115
148
|
|
|
116
|
-
|
|
117
|
-
|
|
149
|
+
/**
|
|
150
|
+
* Instruments a constructor on an object (typically a global, e.g. `window.WebSocket`), calling the
|
|
151
|
+
* given callback before the original constructor is invoked. The callback receives an object with
|
|
152
|
+
* information about the constructor call, and can register an `onPostCall` callback to be notified
|
|
153
|
+
* with the constructed instance.
|
|
154
|
+
*
|
|
155
|
+
* Like `instrumentMethod`, this is a "good citizen" regarding third party instrumentations: stopping
|
|
156
|
+
* restores the original constructor unless a third party replaced it afterwards.
|
|
157
|
+
*
|
|
158
|
+
* The wrapper preserves the original prototype (so `instanceof` keeps working), the original
|
|
159
|
+
* `new.target` (so constructors that inspect it behave as if not instrumented), the original
|
|
160
|
+
* static members (e.g. `WebSocket.OPEN`), and `instance.constructor ===` so checks like
|
|
161
|
+
* `new WebSocket(url).constructor === WebSocket` stay true.
|
|
162
|
+
*
|
|
163
|
+
* @see {@link preserveConstructorShape} for limitations on static members preservation.
|
|
164
|
+
* @example
|
|
165
|
+
*
|
|
166
|
+
* instrumentConstructor(window, 'WebSocket', ({ parameters, onPostCall }) => {
|
|
167
|
+
* console.log('Before constructing WebSocket with parameters', parameters)
|
|
168
|
+
*
|
|
169
|
+
* onPostCall((instance) => {
|
|
170
|
+
* console.log('Constructed WebSocket instance', instance)
|
|
171
|
+
* })
|
|
172
|
+
* })
|
|
173
|
+
*/
|
|
174
|
+
export function instrumentConstructor<CONTAINER extends { [key: string]: any }, CONSTRUCTOR extends keyof CONTAINER>(
|
|
175
|
+
container: CONTAINER,
|
|
176
|
+
constructor: CONSTRUCTOR,
|
|
177
|
+
onPreCall: (this: null, callInfos: InstrumentedConstructorCall<CONTAINER[CONSTRUCTOR]>) => void,
|
|
178
|
+
{ computeHandlingStack }: { computeHandlingStack?: boolean } = {}
|
|
179
|
+
) {
|
|
180
|
+
const original = container[constructor]
|
|
181
|
+
|
|
182
|
+
if (typeof original !== 'function') {
|
|
183
|
+
return { stop: noop }
|
|
118
184
|
}
|
|
119
185
|
|
|
120
|
-
|
|
186
|
+
let stopped = false
|
|
187
|
+
|
|
188
|
+
const instrumentation = function (this: unknown): ConstructorInstanceOf<CONTAINER[CONSTRUCTOR]> {
|
|
189
|
+
// Bare `[[Call]]` (no `new`): delegate through `[[Call]]` and skip `onPreCall`. Otherwise we
|
|
190
|
+
// would notify instrumentation before the original rejects or returns, unlike the native
|
|
191
|
+
// constructor (e.g. `WebSocket(url)` or `class {}()` without `new`).
|
|
192
|
+
if (!new.target) {
|
|
193
|
+
return Reflect.apply(original, this, Array.from(arguments)) as ConstructorInstanceOf<CONTAINER[CONSTRUCTOR]>
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
// When `new` is used on this instrumented property, `new.target` is this wrapper. Passing
|
|
197
|
+
// it through to Reflect.construct would expose the wrong new.target inside the original
|
|
198
|
+
// body. If a subclass extends the wrapper, or a third party wraps us and their class is
|
|
199
|
+
// instantiated, `new.target` is that outer constructor and must be preserved.
|
|
200
|
+
const newTarget = new.target === instrumentation ? original : new.target
|
|
201
|
+
|
|
202
|
+
if (stopped) {
|
|
203
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
204
|
+
return Reflect.construct(
|
|
205
|
+
original,
|
|
206
|
+
arguments as unknown as ConstructorParametersOf<CONTAINER[CONSTRUCTOR]>,
|
|
207
|
+
newTarget
|
|
208
|
+
)
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
const parameters = Array.from(arguments) as ConstructorParametersOf<CONTAINER[CONSTRUCTOR]>
|
|
212
|
+
|
|
213
|
+
return notifyInstrumentation<
|
|
214
|
+
InstrumentedConstructorCall<CONTAINER[CONSTRUCTOR]>,
|
|
215
|
+
ConstructorInstanceOf<CONTAINER[CONSTRUCTOR]>
|
|
216
|
+
>(
|
|
217
|
+
onPreCall,
|
|
218
|
+
{
|
|
219
|
+
parameters,
|
|
220
|
+
handlingStack: computeHandlingStack ? createHandlingStack('instrumented constructor') : undefined,
|
|
221
|
+
},
|
|
222
|
+
() =>
|
|
223
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
224
|
+
Reflect.construct(original, parameters, newTarget)
|
|
225
|
+
)
|
|
226
|
+
} as CONTAINER[CONSTRUCTOR]
|
|
227
|
+
|
|
228
|
+
const restorePrototypeConstructor = preserveConstructorShape(instrumentation, original)
|
|
229
|
+
const { stop: restoreOriginal } = replaceWithInstrumentation(container, constructor, original, instrumentation)
|
|
121
230
|
|
|
122
231
|
return {
|
|
123
232
|
stop: () => {
|
|
124
233
|
stopped = true
|
|
234
|
+
restorePrototypeConstructor()
|
|
235
|
+
restoreOriginal()
|
|
236
|
+
},
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Replaces `targetPrototype[method]` with the provided instrumentation and
|
|
242
|
+
* returns a `stop` function restoring the original (unless a third party replaced us afterwards).
|
|
243
|
+
*/
|
|
244
|
+
function replaceWithInstrumentation<TARGET extends { [key: string]: any }, METHOD extends keyof TARGET>(
|
|
245
|
+
targetPrototype: TARGET,
|
|
246
|
+
method: METHOD,
|
|
247
|
+
original: TARGET[METHOD],
|
|
248
|
+
instrumentation: TARGET[METHOD]
|
|
249
|
+
) {
|
|
250
|
+
targetPrototype[method] = instrumentation
|
|
251
|
+
|
|
252
|
+
return {
|
|
253
|
+
stop: () => {
|
|
125
254
|
// If the instrumentation has been removed by a third party, keep the last one
|
|
126
255
|
if (targetPrototype[method] === instrumentation) {
|
|
127
256
|
targetPrototype[method] = original
|
|
@@ -130,13 +259,94 @@ export function instrumentMethod<TARGET extends { [key: string]: any }, METHOD e
|
|
|
130
259
|
}
|
|
131
260
|
}
|
|
132
261
|
|
|
262
|
+
/**
|
|
263
|
+
* Runs the pre-call callback (injecting the `onPostCall` registration), invokes the original
|
|
264
|
+
* method/constructor, then runs the registered post-call callback with the result.
|
|
265
|
+
*
|
|
266
|
+
* Note: the handling stack must be computed by the caller (at the topmost position of the call
|
|
267
|
+
* stack), so it is part of `baseCallInfo` rather than computed here.
|
|
268
|
+
*/
|
|
269
|
+
function notifyInstrumentation<CALL_INFO extends InstrumentationCallbacks<RESULT>, RESULT>(
|
|
270
|
+
onPreCall: (this: null, callInfo: CALL_INFO) => void,
|
|
271
|
+
baseCallInfo: Omit<CALL_INFO, 'onPostCall'>,
|
|
272
|
+
invokeOriginal: () => RESULT
|
|
273
|
+
): RESULT {
|
|
274
|
+
let postCallCallback: ((result: RESULT) => void) | undefined
|
|
275
|
+
|
|
276
|
+
callMonitored(onPreCall, null, [
|
|
277
|
+
{
|
|
278
|
+
...baseCallInfo,
|
|
279
|
+
onPostCall: (callback: (result: RESULT) => void) => {
|
|
280
|
+
postCallCallback = callback
|
|
281
|
+
},
|
|
282
|
+
} as CALL_INFO,
|
|
283
|
+
])
|
|
284
|
+
|
|
285
|
+
const result = invokeOriginal()
|
|
286
|
+
|
|
287
|
+
if (postCallCallback) {
|
|
288
|
+
callMonitored(postCallCallback, null, [result])
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
return result
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
interface InstrumentationCallbacks<RESULT> {
|
|
295
|
+
onPostCall: (callback: (result: RESULT) => void) => void
|
|
296
|
+
handlingStack?: string
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Copies the original constructor prototype and other static members onto the instrumentation, so that
|
|
301
|
+
* `instanceof` checks keep working and statics such as `WebSocket.OPEN` remain available while
|
|
302
|
+
* instrumented.
|
|
303
|
+
*
|
|
304
|
+
* Returns a function that restores `prototype.constructor` to its prior descriptor; call it
|
|
305
|
+
* before restoring the global property in `stop()`.
|
|
306
|
+
*/
|
|
307
|
+
function preserveConstructorShape(instrumentation: AnyConstructor, original: AnyConstructor): () => void {
|
|
308
|
+
/**
|
|
309
|
+
* Limitation: Only the original's *own* static members are copied. Statics inherited through the
|
|
310
|
+
* constructor's prototype chain (e.g. `class Child extends Parent` where `Parent` defines statics)
|
|
311
|
+
* are not preserved, since the instrumentation still inherits from `Function.prototype`. This is
|
|
312
|
+
* acceptable for the globals we instrument (e.g. `WebSocket`, whose own statics are the only ones
|
|
313
|
+
* that matter), but we would need to delegate the static prototype chain to support subclassed
|
|
314
|
+
* constructors with meaningful inherited statics.
|
|
315
|
+
*/
|
|
316
|
+
for (const key of ([] as PropertyKey[]).concat(
|
|
317
|
+
Object.getOwnPropertyNames(original),
|
|
318
|
+
Object.getOwnPropertySymbols(original)
|
|
319
|
+
)) {
|
|
320
|
+
const descriptor = Object.getOwnPropertyDescriptor(original, key) as PropertyDescriptor
|
|
321
|
+
Object.defineProperty(instrumentation, key, descriptor)
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
/*
|
|
325
|
+
* Limitation: Repointing `constructor` on this shared prototype affects every instance whose
|
|
326
|
+
* `[[Prototype]]` is this object, including instances created before instrumentation, because
|
|
327
|
+
* `constructor` is inherited rather than snapshotted per instance. Code that held `original` (or
|
|
328
|
+
* whatever was in `prototype.constructor` before) as the canonical constructor and expects reference
|
|
329
|
+
* equality to that value for the lifetime of the page can observe a behavior change while RUM is
|
|
330
|
+
* active; restoring on `stop()` fixes this. In practice the SDK initializes as early as possible,
|
|
331
|
+
* which narrows the window where pre-instrument instances exist.
|
|
332
|
+
*/
|
|
333
|
+
const { stop: restoreOriginalConstructor } = replaceWithInstrumentation(
|
|
334
|
+
original.prototype,
|
|
335
|
+
'constructor',
|
|
336
|
+
original.prototype.constructor,
|
|
337
|
+
instrumentation
|
|
338
|
+
)
|
|
339
|
+
|
|
340
|
+
return restoreOriginalConstructor
|
|
341
|
+
}
|
|
342
|
+
|
|
133
343
|
export function instrumentSetter<TARGET extends { [key: string]: any }, PROPERTY extends keyof TARGET>(
|
|
134
344
|
targetPrototype: TARGET,
|
|
135
345
|
property: PROPERTY,
|
|
136
346
|
after: (target: TARGET, value: TARGET[PROPERTY]) => void
|
|
137
347
|
) {
|
|
138
348
|
const originalDescriptor = Object.getOwnPropertyDescriptor(targetPrototype, property)
|
|
139
|
-
if (!originalDescriptor
|
|
349
|
+
if (!originalDescriptor?.set || !originalDescriptor.configurable) {
|
|
140
350
|
return { stop: noop }
|
|
141
351
|
}
|
|
142
352
|
|
package/src/tools/matchOption.ts
CHANGED
|
@@ -1,13 +1,7 @@
|
|
|
1
1
|
import { display } from './display'
|
|
2
|
-
import { getType } from './utils/typeUtils'
|
|
3
2
|
|
|
4
3
|
export type MatchOption = string | RegExp | ((value: string) => boolean)
|
|
5
4
|
|
|
6
|
-
export function isMatchOption(item: unknown): item is MatchOption {
|
|
7
|
-
const itemType = getType(item)
|
|
8
|
-
return itemType === 'string' || itemType === 'function' || item instanceof RegExp
|
|
9
|
-
}
|
|
10
|
-
|
|
11
5
|
/**
|
|
12
6
|
* Returns true if value can be matched by at least one of the provided MatchOptions.
|
|
13
7
|
* When comparing strings, setting useStartsWith to true will compare the value with the start of
|
|
@@ -19,6 +13,8 @@ export function matchList(list: MatchOption[], value: string, useStartsWith = fa
|
|
|
19
13
|
if (typeof item === 'function') {
|
|
20
14
|
return item(value)
|
|
21
15
|
} else if (item instanceof RegExp) {
|
|
16
|
+
// Prevent stateful matching
|
|
17
|
+
item.lastIndex = 0
|
|
22
18
|
return item.test(value)
|
|
23
19
|
} else if (typeof item === 'string') {
|
|
24
20
|
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 '@kubesense/kubesense-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
|
+
}
|