@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
|
@@ -1,185 +1,178 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
exports.buildSdkConfigEndpoint = buildSdkConfigEndpoint;
|
|
9
|
-
exports.refreshSdkConfig = refreshSdkConfig;
|
|
10
|
-
exports.readBoolean = readBoolean;
|
|
11
|
-
exports.readSampleRate = readSampleRate;
|
|
12
|
-
exports.readString = readString;
|
|
13
|
-
exports.readEnum = readEnum;
|
|
14
|
-
const stringUtils_1 = require("../../tools/utils/stringUtils");
|
|
15
|
-
const display_1 = require("../../tools/display");
|
|
16
|
-
const monitor_1 = require("../../tools/monitor");
|
|
17
|
-
const endpointBuilder_1 = require("./endpointBuilder");
|
|
1
|
+
const require_stringUtils = require("../../tools/utils/stringUtils.js");
|
|
2
|
+
const require_fetch = require("../../browser/fetch.js");
|
|
3
|
+
const require_display = require("../../tools/display.js");
|
|
4
|
+
let _kubesense_kubesense_js_core_transport = require("@kubesense/kubesense-js-core/transport");
|
|
5
|
+
let _kubesense_kubesense_js_core_util = require("@kubesense/kubesense-js-core/util");
|
|
6
|
+
let _kubesense_kubesense_js_core_monitor = require("@kubesense/kubesense-js-core/monitor");
|
|
7
|
+
//#region src/domain/configuration/remoteSdkConfig.ts
|
|
18
8
|
/**
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
9
|
+
* Dashboard-managed SDK settings, served by the Kubesense collector.
|
|
10
|
+
*
|
|
11
|
+
* The document is fetched asynchronously *after* the SDK has started and cached in local
|
|
12
|
+
* storage, so it costs nothing on the initialization path. Cached values are applied on the
|
|
13
|
+
* next page load — SDK configuration is frozen at `init()` time by design.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Prefix of the local-storage key holding the cached document. The key carries the client token,
|
|
17
|
+
* which the collector issues per application, so applications sharing an origin — several apps on
|
|
18
|
+
* one domain, or `localhost` during development — never read each other's settings. RUM and Logs
|
|
19
|
+
* of one application share the token, and so still share the document.
|
|
20
|
+
*/
|
|
21
|
+
const SDK_CONFIG_CACHE_KEY = "_kubesense_sdk_config";
|
|
22
|
+
function sdkConfigCacheKey(clientToken) {
|
|
23
|
+
return `${SDK_CONFIG_CACHE_KEY}_${clientToken}`;
|
|
24
|
+
}
|
|
25
|
+
const SDK_CONFIG_PATH = "/rum/api/v1/sdk-config";
|
|
27
26
|
/** Give up rather than let a hung request keep a page-load handle alive. */
|
|
28
|
-
|
|
27
|
+
const SDK_CONFIG_FETCH_TIMEOUT = 1e4;
|
|
29
28
|
/**
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
function getCachedSdkConfig() {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
const config = parseSdkConfig(raw);
|
|
46
|
-
if (!config) {
|
|
47
|
-
// Drop a document we can no longer read so we stop paying for it on every page load.
|
|
48
|
-
clearCachedSdkConfig();
|
|
49
|
-
}
|
|
50
|
-
return config;
|
|
29
|
+
* Read the cached document. Synchronous, never touches the network, and never throws: a
|
|
30
|
+
* corrupted or unavailable cache resolves to `undefined` (pure SDK defaults).
|
|
31
|
+
*/
|
|
32
|
+
function getCachedSdkConfig(clientToken) {
|
|
33
|
+
let raw;
|
|
34
|
+
try {
|
|
35
|
+
localStorage.removeItem(SDK_CONFIG_CACHE_KEY);
|
|
36
|
+
raw = localStorage.getItem(sdkConfigCacheKey(clientToken));
|
|
37
|
+
} catch {
|
|
38
|
+
return;
|
|
39
|
+
}
|
|
40
|
+
if (!raw) return;
|
|
41
|
+
const config = parseSdkConfig(raw);
|
|
42
|
+
if (!config) clearCachedSdkConfig(clientToken);
|
|
43
|
+
return config;
|
|
51
44
|
}
|
|
52
|
-
function setCachedSdkConfig(rawConfig) {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
catch (_a) {
|
|
57
|
-
// Ignore: caching is an optimization, not a requirement.
|
|
58
|
-
}
|
|
45
|
+
function setCachedSdkConfig(clientToken, rawConfig) {
|
|
46
|
+
try {
|
|
47
|
+
localStorage.setItem(sdkConfigCacheKey(clientToken), rawConfig);
|
|
48
|
+
} catch {}
|
|
59
49
|
}
|
|
60
|
-
function clearCachedSdkConfig() {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
catch (_a) {
|
|
65
|
-
// Ignore.
|
|
66
|
-
}
|
|
50
|
+
function clearCachedSdkConfig(clientToken) {
|
|
51
|
+
try {
|
|
52
|
+
localStorage.removeItem(sdkConfigCacheKey(clientToken));
|
|
53
|
+
} catch {}
|
|
67
54
|
}
|
|
68
55
|
/**
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
56
|
+
* A document is only usable if it is a JSON object. Anything else (array, primitive, invalid
|
|
57
|
+
* JSON) is rejected wholesale.
|
|
58
|
+
*/
|
|
72
59
|
function parseSdkConfig(raw) {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
catch (_a) {
|
|
81
|
-
return undefined;
|
|
82
|
-
}
|
|
60
|
+
try {
|
|
61
|
+
const parsed = JSON.parse(raw);
|
|
62
|
+
if (!parsed || typeof parsed !== "object" || Array.isArray(parsed)) return;
|
|
63
|
+
return parsed;
|
|
64
|
+
} catch {
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
83
67
|
}
|
|
84
68
|
/**
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
69
|
+
* The config endpoint deliberately carries the same query parameters as the intake, for two
|
|
70
|
+
* reasons: it authenticates without a custom header (which would force a CORS preflight), and
|
|
71
|
+
* it makes `isIntakeUrl()` return true, so the SDK never reports its own configuration request
|
|
72
|
+
* as a resource or a network error.
|
|
73
|
+
*/
|
|
90
74
|
function buildSdkConfigEndpoint(initConfiguration, applicationId) {
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
// token -> application mapping. Sending it makes per-application configuration explicit.
|
|
100
|
-
parameters.push(`application_id=${encodeURIComponent(applicationId)}`);
|
|
101
|
-
}
|
|
102
|
-
return `https://${host}${exports.SDK_CONFIG_PATH}?${parameters.join('&')}`;
|
|
75
|
+
const host = initConfiguration.kubesenseRumEndpoint ?? _kubesense_kubesense_js_core_transport.INTAKE_SITE_PROD;
|
|
76
|
+
const parameters = [
|
|
77
|
+
"ksource=browser",
|
|
78
|
+
`kubesense-api-key=${encodeURIComponent(initConfiguration.clientToken)}`,
|
|
79
|
+
`kubesense-request-id=${require_stringUtils.generateUUID()}`
|
|
80
|
+
];
|
|
81
|
+
if (applicationId) parameters.push(`application_id=${encodeURIComponent(applicationId)}`);
|
|
82
|
+
return `https://${host}${SDK_CONFIG_PATH}?${parameters.join("&")}`;
|
|
103
83
|
}
|
|
104
84
|
/**
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
85
|
+
* Fetch the document and refresh the cache for the *next* page load. Fire-and-forget: a 404 —
|
|
86
|
+
* the collector has no configuration for this application — clears the cache, and any other
|
|
87
|
+
* failure (offline, 401, 5xx, timeout, malformed body) leaves it untouched.
|
|
88
|
+
*
|
|
89
|
+
* The response is validated before it overwrites the cache, so a half-written document on the
|
|
90
|
+
* collector can never poison a client.
|
|
91
|
+
*/
|
|
112
92
|
function refreshSdkConfig(initConfiguration, applicationId) {
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
return;
|
|
143
|
-
}
|
|
144
|
-
if (!parseSdkConfig(rawConfig)) {
|
|
145
|
-
display_1.display.warn('Remote SDK configuration is not a valid JSON object, ignoring it.');
|
|
146
|
-
return;
|
|
147
|
-
}
|
|
148
|
-
setCachedSdkConfig(rawConfig);
|
|
149
|
-
})
|
|
150
|
-
.catch(() => {
|
|
151
|
-
// Network failures are expected and must stay silent: the SDK keeps running on the
|
|
152
|
-
// cached configuration, or on its defaults.
|
|
153
|
-
});
|
|
93
|
+
if (!("fetch" in _kubesense_kubesense_js_core_util.globalObject)) return Promise.resolve();
|
|
94
|
+
let endpoint;
|
|
95
|
+
try {
|
|
96
|
+
endpoint = buildSdkConfigEndpoint(initConfiguration, applicationId);
|
|
97
|
+
} catch (error) {
|
|
98
|
+
(0, _kubesense_kubesense_js_core_monitor.monitorError)(error);
|
|
99
|
+
return Promise.resolve();
|
|
100
|
+
}
|
|
101
|
+
return require_fetch.fetch(endpoint, {
|
|
102
|
+
method: "GET",
|
|
103
|
+
credentials: "omit",
|
|
104
|
+
mode: "cors",
|
|
105
|
+
cache: "no-store",
|
|
106
|
+
signal: createTimeoutSignal(SDK_CONFIG_FETCH_TIMEOUT)
|
|
107
|
+
}).then((response) => {
|
|
108
|
+
if (response.status === 404) {
|
|
109
|
+
clearCachedSdkConfig(initConfiguration.clientToken);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (!response.ok) return;
|
|
113
|
+
return response.text();
|
|
114
|
+
}).then((rawConfig) => {
|
|
115
|
+
if (rawConfig === void 0) return;
|
|
116
|
+
if (!parseSdkConfig(rawConfig)) {
|
|
117
|
+
require_display.display.warn("Remote SDK configuration is not a valid JSON object, ignoring it.");
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
setCachedSdkConfig(initConfiguration.clientToken, rawConfig);
|
|
121
|
+
}).catch(() => {});
|
|
154
122
|
}
|
|
155
123
|
function createTimeoutSignal(timeout) {
|
|
156
|
-
|
|
157
|
-
// simply runs to completion, which is acceptable for a fire-and-forget request.
|
|
158
|
-
if (typeof AbortSignal !== 'undefined' && typeof AbortSignal.timeout === 'function') {
|
|
159
|
-
return AbortSignal.timeout(timeout);
|
|
160
|
-
}
|
|
161
|
-
return undefined;
|
|
124
|
+
if (typeof AbortSignal !== "undefined" && typeof AbortSignal.timeout === "function") return AbortSignal.timeout(timeout);
|
|
162
125
|
}
|
|
163
|
-
/* ------------------------------------------------------------------------------------------
|
|
164
|
-
* Defensive readers
|
|
165
|
-
*
|
|
166
|
-
* Each returns `undefined` when the value is missing or unusable, which callers translate into
|
|
167
|
-
* "do not override the SDK default".
|
|
168
|
-
* ---------------------------------------------------------------------------------------- */
|
|
169
126
|
function readBoolean(source, key) {
|
|
170
|
-
|
|
171
|
-
|
|
127
|
+
const value = source?.[key];
|
|
128
|
+
return typeof value === "boolean" ? value : void 0;
|
|
172
129
|
}
|
|
173
130
|
function readSampleRate(source, key) {
|
|
174
|
-
|
|
175
|
-
|
|
131
|
+
const value = source?.[key];
|
|
132
|
+
return typeof value === "number" && isFinite(value) && value >= 0 && value <= 100 ? value : void 0;
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Reads a number the SDK only accepts within a fixed range. Out-of-range values are rejected rather
|
|
136
|
+
* than clamped: a dashboard that asks for something the SDK cannot honour should fall back to the
|
|
137
|
+
* local value, not to a silently different one.
|
|
138
|
+
*/
|
|
139
|
+
function readNumberInRange(source, key, min, max) {
|
|
140
|
+
const value = source?.[key];
|
|
141
|
+
return typeof value === "number" && isFinite(value) && value >= min && value <= max ? value : void 0;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Reads a list of non-empty strings, dropping unusable entries. Returns `undefined` for anything
|
|
145
|
+
* that is not an array, or when no entry survives, so the local value keeps applying.
|
|
146
|
+
*/
|
|
147
|
+
function readStringList(value) {
|
|
148
|
+
if (!Array.isArray(value)) return;
|
|
149
|
+
const strings = value.filter((item) => typeof item === "string" && item.length > 0);
|
|
150
|
+
return strings.length > 0 ? strings : void 0;
|
|
176
151
|
}
|
|
177
152
|
function readString(source, key) {
|
|
178
|
-
|
|
179
|
-
|
|
153
|
+
const value = source?.[key];
|
|
154
|
+
return typeof value === "string" && value.length > 0 ? value : void 0;
|
|
180
155
|
}
|
|
181
156
|
function readEnum(source, key, allowedValues) {
|
|
182
|
-
|
|
183
|
-
|
|
157
|
+
const value = source?.[key];
|
|
158
|
+
return typeof value === "string" && allowedValues.includes(value) ? value : void 0;
|
|
184
159
|
}
|
|
160
|
+
//#endregion
|
|
161
|
+
exports.SDK_CONFIG_CACHE_KEY = SDK_CONFIG_CACHE_KEY;
|
|
162
|
+
exports.SDK_CONFIG_FETCH_TIMEOUT = SDK_CONFIG_FETCH_TIMEOUT;
|
|
163
|
+
exports.SDK_CONFIG_PATH = SDK_CONFIG_PATH;
|
|
164
|
+
exports.buildSdkConfigEndpoint = buildSdkConfigEndpoint;
|
|
165
|
+
exports.clearCachedSdkConfig = clearCachedSdkConfig;
|
|
166
|
+
exports.getCachedSdkConfig = getCachedSdkConfig;
|
|
167
|
+
exports.parseSdkConfig = parseSdkConfig;
|
|
168
|
+
exports.readBoolean = readBoolean;
|
|
169
|
+
exports.readEnum = readEnum;
|
|
170
|
+
exports.readNumberInRange = readNumberInRange;
|
|
171
|
+
exports.readSampleRate = readSampleRate;
|
|
172
|
+
exports.readString = readString;
|
|
173
|
+
exports.readStringList = readStringList;
|
|
174
|
+
exports.refreshSdkConfig = refreshSdkConfig;
|
|
175
|
+
exports.sdkConfigCacheKey = sdkConfigCacheKey;
|
|
176
|
+
exports.setCachedSdkConfig = setCachedSdkConfig;
|
|
177
|
+
|
|
185
178
|
//# sourceMappingURL=remoteSdkConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"remoteSdkConfig.js","sourceRoot":"","sources":["../../../src/domain/configuration/remoteSdkConfig.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"remoteSdkConfig.js","names":["INTAKE_SITE_PROD","generateUUID","globalObject","fetch"],"sources":["../../../src/domain/configuration/remoteSdkConfig.ts"],"sourcesContent":["import { monitorError } from '@kubesense/kubesense-js-core/monitor'\nimport { globalObject } from '@kubesense/kubesense-js-core/util'\nimport { INTAKE_SITE_PROD } from '@kubesense/kubesense-js-core/transport'\nimport { generateUUID } from '../../tools/utils/stringUtils'\nimport { fetch } from '../../browser/fetch'\nimport { display } from '../../tools/display'\nimport type { InitConfiguration } from './configuration'\n\n/**\n * Dashboard-managed SDK settings, served by the Kubesense collector.\n *\n * The document is fetched asynchronously *after* the SDK has started and cached in local\n * storage, so it costs nothing on the initialization path. Cached values are applied on the\n * next page load — SDK configuration is frozen at `init()` time by design.\n */\n\n/**\n * Prefix of the local-storage key holding the cached document. The key carries the client token,\n * which the collector issues per application, so applications sharing an origin — several apps on\n * one domain, or `localhost` during development — never read each other's settings. RUM and Logs\n * of one application share the token, and so still share the document.\n */\nexport const SDK_CONFIG_CACHE_KEY = '_kubesense_sdk_config'\n\nexport function sdkConfigCacheKey(clientToken: string) {\n return `${SDK_CONFIG_CACHE_KEY}_${clientToken}`\n}\nexport const SDK_CONFIG_PATH = '/rum/api/v1/sdk-config'\n\n/** Give up rather than let a hung request keep a page-load handle alive. */\nexport const SDK_CONFIG_FETCH_TIMEOUT = 10_000\n\n/**\n * A remote configuration document. Every field is optional: a missing (or invalid) field means\n * \"leave the SDK default alone\", so a malformed document can never take an application away\n * from its defaults.\n */\nexport interface RemoteSdkConfig {\n /** Free-form number for dashboard bookkeeping. Not interpreted by the SDK. */\n version?: number\n features?: RemoteSdkConfigFeatures\n rum?: { [key: string]: unknown }\n sessionReplay?: { [key: string]: unknown }\n profiling?: { [key: string]: unknown }\n logs?: { [key: string]: unknown }\n [key: string]: unknown\n}\n\nexport interface RemoteSdkConfigFeatures {\n rum?: boolean\n sessionReplay?: boolean\n profiling?: boolean\n logs?: boolean\n}\n\n/**\n * Read the cached document. Synchronous, never touches the network, and never throws: a\n * corrupted or unavailable cache resolves to `undefined` (pure SDK defaults).\n */\nexport function getCachedSdkConfig(clientToken: string): RemoteSdkConfig | undefined {\n let raw: string | null\n try {\n // The unscoped key predates per-application caching and may hold another application's\n // document; it is dropped rather than migrated.\n localStorage.removeItem(SDK_CONFIG_CACHE_KEY)\n raw = localStorage.getItem(sdkConfigCacheKey(clientToken))\n } catch {\n // Local storage can be unavailable (disabled, quota, sandboxed iframe).\n return undefined\n }\n\n if (!raw) {\n return undefined\n }\n\n const config = parseSdkConfig(raw)\n if (!config) {\n // Drop a document we can no longer read so we stop paying for it on every page load.\n clearCachedSdkConfig(clientToken)\n }\n return config\n}\n\nexport function setCachedSdkConfig(clientToken: string, rawConfig: string) {\n try {\n localStorage.setItem(sdkConfigCacheKey(clientToken), rawConfig)\n } catch {\n // Ignore: caching is an optimization, not a requirement.\n }\n}\n\nexport function clearCachedSdkConfig(clientToken: string) {\n try {\n localStorage.removeItem(sdkConfigCacheKey(clientToken))\n } catch {\n // Ignore.\n }\n}\n\n/**\n * A document is only usable if it is a JSON object. Anything else (array, primitive, invalid\n * JSON) is rejected wholesale.\n */\nexport function parseSdkConfig(raw: string): RemoteSdkConfig | undefined {\n try {\n const parsed: unknown = JSON.parse(raw)\n if (!parsed || typeof parsed !== 'object' || Array.isArray(parsed)) {\n return undefined\n }\n return parsed as RemoteSdkConfig\n } catch {\n return undefined\n }\n}\n\n/**\n * The config endpoint deliberately carries the same query parameters as the intake, for two\n * reasons: it authenticates without a custom header (which would force a CORS preflight), and\n * it makes `isIntakeUrl()` return true, so the SDK never reports its own configuration request\n * as a resource or a network error.\n */\nexport function buildSdkConfigEndpoint(initConfiguration: InitConfiguration, applicationId?: string): string {\n const host = initConfiguration.kubesenseRumEndpoint ?? INTAKE_SITE_PROD\n const parameters = [\n 'ksource=browser',\n `kubesense-api-key=${encodeURIComponent(initConfiguration.clientToken)}`,\n `kubesense-request-id=${generateUUID()}`,\n ]\n if (applicationId) {\n // The collector resolves the application from this parameter first, falling back to the\n // token -> application mapping. Sending it makes per-application configuration explicit.\n parameters.push(`application_id=${encodeURIComponent(applicationId)}`)\n }\n return `https://${host}${SDK_CONFIG_PATH}?${parameters.join('&')}`\n}\n\n/**\n * Fetch the document and refresh the cache for the *next* page load. Fire-and-forget: a 404 —\n * the collector has no configuration for this application — clears the cache, and any other\n * failure (offline, 401, 5xx, timeout, malformed body) leaves it untouched.\n *\n * The response is validated before it overwrites the cache, so a half-written document on the\n * collector can never poison a client.\n */\nexport function refreshSdkConfig(initConfiguration: InitConfiguration, applicationId?: string): Promise<void> {\n if (!('fetch' in globalObject)) {\n return Promise.resolve()\n }\n\n let endpoint: string\n try {\n endpoint = buildSdkConfigEndpoint(initConfiguration, applicationId)\n } catch (error) {\n monitorError(error)\n return Promise.resolve()\n }\n\n return fetch(endpoint, {\n method: 'GET',\n // Configuration is not user data: never attach cookies to it.\n credentials: 'omit',\n mode: 'cors',\n // Always ask the collector, never a proxy cache — dashboard edits must propagate.\n cache: 'no-store',\n signal: createTimeoutSignal(SDK_CONFIG_FETCH_TIMEOUT),\n })\n .then((response) => {\n if (response.status === 404) {\n // The collector has no configuration for this application — it was removed, or never\n // published. Forget the cached one, or the application would keep running on a document\n // nobody can see or change any more.\n clearCachedSdkConfig(initConfiguration.clientToken)\n return undefined\n }\n if (!response.ok) {\n // An auth or server problem says nothing about the configuration: keep the cached one.\n return undefined\n }\n return response.text()\n })\n .then((rawConfig) => {\n if (rawConfig === undefined) {\n return\n }\n if (!parseSdkConfig(rawConfig)) {\n display.warn('Remote SDK configuration is not a valid JSON object, ignoring it.')\n return\n }\n setCachedSdkConfig(initConfiguration.clientToken, rawConfig)\n })\n .catch(() => {\n // Network failures are expected and must stay silent: the SDK keeps running on the\n // cached configuration, or on its defaults.\n })\n}\n\nfunction createTimeoutSignal(timeout: number): AbortSignal | undefined {\n // AbortSignal.timeout is not available on all supported browsers; without it the fetch\n // simply runs to completion, which is acceptable for a fire-and-forget request.\n if (typeof AbortSignal !== 'undefined' && typeof AbortSignal.timeout === 'function') {\n return AbortSignal.timeout(timeout)\n }\n return undefined\n}\n\n/* ------------------------------------------------------------------------------------------\n * Defensive readers\n *\n * Each returns `undefined` when the value is missing or unusable, which callers translate into\n * \"do not override the SDK default\".\n * ---------------------------------------------------------------------------------------- */\n\nexport function readBoolean(source: { [key: string]: unknown } | undefined, key: string): boolean | undefined {\n const value = source?.[key]\n return typeof value === 'boolean' ? value : undefined\n}\n\nexport function readSampleRate(source: { [key: string]: unknown } | undefined, key: string): number | undefined {\n const value = source?.[key]\n return typeof value === 'number' && isFinite(value) && value >= 0 && value <= 100 ? value : undefined\n}\n\n/**\n * Reads a number the SDK only accepts within a fixed range. Out-of-range values are rejected rather\n * than clamped: a dashboard that asks for something the SDK cannot honour should fall back to the\n * local value, not to a silently different one.\n */\nexport function readNumberInRange(\n source: { [key: string]: unknown } | undefined,\n key: string,\n min: number,\n max: number\n): number | undefined {\n const value = source?.[key]\n return typeof value === 'number' && isFinite(value) && value >= min && value <= max ? value : undefined\n}\n\n/**\n * Reads a list of non-empty strings, dropping unusable entries. Returns `undefined` for anything\n * that is not an array, or when no entry survives, so the local value keeps applying.\n */\nexport function readStringList(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) {\n return undefined\n }\n const strings = value.filter((item): item is string => typeof item === 'string' && item.length > 0)\n return strings.length > 0 ? strings : undefined\n}\n\nexport function readString(source: { [key: string]: unknown } | undefined, key: string): string | undefined {\n const value = source?.[key]\n return typeof value === 'string' && value.length > 0 ? value : undefined\n}\n\nexport function readEnum<T extends string>(\n source: { [key: string]: unknown } | undefined,\n key: string,\n allowedValues: readonly T[]\n): T | undefined {\n const value = source?.[key]\n return typeof value === 'string' && (allowedValues as readonly string[]).includes(value) ? (value as T) : undefined\n}\n"],"mappings":"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"}
|
|
@@ -1,16 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
export type EffectiveType = 'slow-2g' | '2g' | '3g' | '4g';
|
|
3
|
-
export interface NetworkInformation {
|
|
4
|
-
type?: NetworkInterface;
|
|
5
|
-
effectiveType?: EffectiveType;
|
|
6
|
-
rtt?: number;
|
|
7
|
-
downlink?: number;
|
|
8
|
-
saveData: boolean;
|
|
9
|
-
}
|
|
1
|
+
import type { NetworkEffectiveType, NetworkInterface } from '@kubesense/kubesense-js-core/util';
|
|
10
2
|
export interface Connectivity {
|
|
11
3
|
status: 'connected' | 'not_connected';
|
|
12
4
|
interfaces?: NetworkInterface[];
|
|
13
|
-
effective_type?:
|
|
5
|
+
effective_type?: NetworkEffectiveType;
|
|
14
6
|
rtt?: number;
|
|
15
7
|
downlink?: number;
|
|
16
8
|
[key: string]: unknown;
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.getConnectivity = getConnectivity;
|
|
4
|
-
const globalObject_1 = require("../../tools/globalObject");
|
|
1
|
+
let _kubesense_kubesense_js_core_util = require("@kubesense/kubesense-js-core/util");
|
|
2
|
+
//#region src/domain/connectivity/connectivity.ts
|
|
5
3
|
function getConnectivity() {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
};
|
|
4
|
+
const { navigator } = _kubesense_kubesense_js_core_util.globalObject;
|
|
5
|
+
return {
|
|
6
|
+
status: navigator?.onLine ? "connected" : "not_connected",
|
|
7
|
+
interfaces: navigator?.connection?.type ? [navigator.connection.type] : ["unknown"],
|
|
8
|
+
effective_type: navigator?.connection?.effectiveType,
|
|
9
|
+
rtt: navigator?.connection?.rtt,
|
|
10
|
+
downlink: navigator?.connection?.downlink
|
|
11
|
+
};
|
|
15
12
|
}
|
|
13
|
+
//#endregion
|
|
14
|
+
exports.getConnectivity = getConnectivity;
|
|
15
|
+
|
|
16
16
|
//# sourceMappingURL=connectivity.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"connectivity.js","
|
|
1
|
+
{"version":3,"file":"connectivity.js","names":["globalObject"],"sources":["../../../src/domain/connectivity/connectivity.ts"],"sourcesContent":["import type { NetworkEffectiveType, NetworkInterface } from '@kubesense/kubesense-js-core/util'\nimport { globalObject } from '@kubesense/kubesense-js-core/util'\n\nexport interface Connectivity {\n status: 'connected' | 'not_connected'\n interfaces?: NetworkInterface[]\n effective_type?: NetworkEffectiveType\n rtt?: number\n downlink?: number\n [key: string]: unknown\n}\n\nexport function getConnectivity(): Connectivity {\n const { navigator } = globalObject\n\n return {\n status: navigator?.onLine ? 'connected' : 'not_connected',\n // Report 'unknown' rather than nothing when the browser does not expose a connection type, so\n // the field is always present and dashboards do not have to special-case its absence.\n interfaces: navigator?.connection?.type ? [navigator.connection.type] : ['unknown'],\n effective_type: navigator?.connection?.effectiveType,\n rtt: navigator?.connection?.rtt,\n downlink: navigator?.connection?.downlink,\n }\n}\n"],"mappings":";;AAYA,SAAgB,kBAAgC;CAC9C,MAAM,EAAE,cAAcA,kCAAAA;CAEtB,OAAO;EACL,QAAQ,WAAW,SAAS,cAAc;EAG1C,YAAY,WAAW,YAAY,OAAO,CAAC,UAAU,WAAW,IAAI,IAAI,CAAC,SAAS;EAClF,gBAAgB,WAAW,YAAY;EACvC,KAAK,WAAW,YAAY;EAC5B,UAAU,WAAW,YAAY;CACnC;AACF"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
+
import { ConsoleApiName } from '@kubesense/kubesense-js-core/util';
|
|
1
2
|
import { Observable } from '../../tools/observable';
|
|
2
|
-
import { ConsoleApiName } from '../../tools/display';
|
|
3
3
|
import type { RawError } from '../error/error.types';
|
|
4
4
|
export type ConsoleLog = NonErrorConsoleLog | ErrorConsoleLog;
|
|
5
5
|
interface NonErrorConsoleLog extends ConsoleLogBase {
|
|
@@ -1,84 +1,72 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const handlingStack_1 = require("../../tools/stackTrace/handlingStack");
|
|
14
|
-
const timeUtils_1 = require("../../tools/utils/timeUtils");
|
|
1
|
+
const require_observable = require("../../tools/observable.js");
|
|
2
|
+
const require_computeStackTrace = require("../../tools/stackTrace/computeStackTrace.js");
|
|
3
|
+
const require_handlingStack = require("../../tools/stackTrace/handlingStack.js");
|
|
4
|
+
const require_jsonStringify = require("../../tools/serialisation/jsonStringify.js");
|
|
5
|
+
const require_sanitize = require("../../tools/serialisation/sanitize.js");
|
|
6
|
+
const require_isError = require("../error/isError.js");
|
|
7
|
+
const require_error_types = require("../error/error.types.js");
|
|
8
|
+
const require_error = require("../error/error.js");
|
|
9
|
+
let _kubesense_kubesense_js_core_util = require("@kubesense/kubesense-js-core/util");
|
|
10
|
+
let _kubesense_kubesense_js_core_monitor = require("@kubesense/kubesense-js-core/monitor");
|
|
11
|
+
let _kubesense_kubesense_js_core_time = require("@kubesense/kubesense-js-core/time");
|
|
12
|
+
//#region src/domain/console/consoleObservable.ts
|
|
15
13
|
let consoleObservablesByApi = {};
|
|
16
14
|
function initConsoleObservable(apis) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
});
|
|
23
|
-
return (0, observable_1.mergeObservables)(...consoleObservables);
|
|
24
|
-
}
|
|
25
|
-
function resetConsoleObservable() {
|
|
26
|
-
consoleObservablesByApi = {};
|
|
15
|
+
const consoleObservables = apis.map((api) => {
|
|
16
|
+
if (!consoleObservablesByApi[api]) consoleObservablesByApi[api] = createConsoleObservable(api);
|
|
17
|
+
return consoleObservablesByApi[api];
|
|
18
|
+
});
|
|
19
|
+
return require_observable.mergeObservables(...consoleObservables);
|
|
27
20
|
}
|
|
28
21
|
function createConsoleObservable(api) {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
22
|
+
return new require_observable.Observable((observable) => {
|
|
23
|
+
const originalConsoleApi = _kubesense_kubesense_js_core_util.globalConsole[api];
|
|
24
|
+
_kubesense_kubesense_js_core_util.globalConsole[api] = (...params) => {
|
|
25
|
+
originalConsoleApi.apply(console, params);
|
|
26
|
+
const handlingStack = require_handlingStack.createHandlingStack("console error");
|
|
27
|
+
(0, _kubesense_kubesense_js_core_monitor.callMonitored)(() => {
|
|
28
|
+
observable.notify(buildConsoleLog(params, api, handlingStack));
|
|
29
|
+
});
|
|
30
|
+
};
|
|
31
|
+
return () => {
|
|
32
|
+
_kubesense_kubesense_js_core_util.globalConsole[api] = originalConsoleApi;
|
|
33
|
+
};
|
|
34
|
+
});
|
|
42
35
|
}
|
|
43
36
|
function buildConsoleLog(params, api, handlingStack) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
message,
|
|
71
|
-
error: undefined,
|
|
72
|
-
handlingStack,
|
|
73
|
-
};
|
|
37
|
+
const message = params.map((param) => formatConsoleParameters(param)).join(" ");
|
|
38
|
+
if (api === _kubesense_kubesense_js_core_util.ConsoleApiName.error) {
|
|
39
|
+
const firstErrorParam = params.find(require_isError.isError);
|
|
40
|
+
const rawError = require_error.computeRawError({
|
|
41
|
+
originalError: firstErrorParam ?? params[0],
|
|
42
|
+
handlingStack,
|
|
43
|
+
startClocks: (0, _kubesense_kubesense_js_core_time.clocksNow)(),
|
|
44
|
+
source: require_error_types.ErrorSource.CONSOLE,
|
|
45
|
+
handling: "handled",
|
|
46
|
+
nonErrorPrefix: "Provided",
|
|
47
|
+
useFallbackStack: false
|
|
48
|
+
});
|
|
49
|
+
rawError.message = message;
|
|
50
|
+
return {
|
|
51
|
+
api,
|
|
52
|
+
message,
|
|
53
|
+
handlingStack,
|
|
54
|
+
error: rawError
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
api,
|
|
59
|
+
message,
|
|
60
|
+
error: void 0,
|
|
61
|
+
handlingStack
|
|
62
|
+
};
|
|
74
63
|
}
|
|
75
64
|
function formatConsoleParameters(param) {
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
if ((0, error_1.isError)(param)) {
|
|
80
|
-
return (0, handlingStack_1.formatErrorMessage)((0, computeStackTrace_1.computeStackTrace)(param));
|
|
81
|
-
}
|
|
82
|
-
return (0, jsonStringify_1.jsonStringify)((0, sanitize_1.sanitize)(param), undefined, 2);
|
|
65
|
+
if (typeof param === "string") return require_sanitize.sanitize(param);
|
|
66
|
+
if (require_isError.isError(param)) return require_handlingStack.formatErrorMessage(require_computeStackTrace.computeStackTrace(param));
|
|
67
|
+
return require_jsonStringify.jsonStringify(require_sanitize.sanitize(param), void 0, 2);
|
|
83
68
|
}
|
|
69
|
+
//#endregion
|
|
70
|
+
exports.initConsoleObservable = initConsoleObservable;
|
|
71
|
+
|
|
84
72
|
//# sourceMappingURL=consoleObservable.js.map
|