@kubesense/kubesense-browser-core 1.0.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 +201 -0
- package/README.md +3 -0
- package/cjs/boot/displayAlreadyInitializedError.d.ts +2 -0
- package/cjs/boot/displayAlreadyInitializedError.js +10 -0
- package/cjs/boot/displayAlreadyInitializedError.js.map +1 -0
- package/cjs/boot/init.d.ts +13 -0
- package/cjs/boot/init.js +39 -0
- package/cjs/boot/init.js.map +1 -0
- package/cjs/browser/addEventListener.d.ts +87 -0
- package/cjs/browser/addEventListener.js +55 -0
- package/cjs/browser/addEventListener.js.map +1 -0
- package/cjs/browser/browser.types.d.ts +51 -0
- package/cjs/browser/browser.types.js +6 -0
- package/cjs/browser/browser.types.js.map +1 -0
- package/cjs/browser/cookie.d.ts +26 -0
- package/cjs/browser/cookie.js +112 -0
- package/cjs/browser/cookie.js.map +1 -0
- package/cjs/browser/fetchObservable.d.ts +38 -0
- package/cjs/browser/fetchObservable.js +103 -0
- package/cjs/browser/fetchObservable.js.map +1 -0
- package/cjs/browser/pageMayExitObservable.d.ts +14 -0
- package/cjs/browser/pageMayExitObservable.js +45 -0
- package/cjs/browser/pageMayExitObservable.js.map +1 -0
- package/cjs/browser/runOnReadyState.d.ts +5 -0
- package/cjs/browser/runOnReadyState.js +20 -0
- package/cjs/browser/runOnReadyState.js.map +1 -0
- package/cjs/browser/xhrObservable.d.ts +24 -0
- package/cjs/browser/xhrObservable.js +86 -0
- package/cjs/browser/xhrObservable.js.map +1 -0
- package/cjs/domain/allowedTrackingOrigins.d.ts +4 -0
- package/cjs/domain/allowedTrackingOrigins.js +25 -0
- package/cjs/domain/allowedTrackingOrigins.js.map +1 -0
- package/cjs/domain/bufferedData.d.ts +14 -0
- package/cjs/domain/bufferedData.js +22 -0
- package/cjs/domain/bufferedData.js.map +1 -0
- package/cjs/domain/configuration/configuration.d.ts +284 -0
- package/cjs/domain/configuration/configuration.js +135 -0
- package/cjs/domain/configuration/configuration.js.map +1 -0
- package/cjs/domain/configuration/endpointBuilder.d.ts +12 -0
- package/cjs/domain/configuration/endpointBuilder.js +66 -0
- package/cjs/domain/configuration/endpointBuilder.js.map +1 -0
- package/cjs/domain/configuration/index.d.ts +6 -0
- package/cjs/domain/configuration/index.js +31 -0
- package/cjs/domain/configuration/index.js.map +1 -0
- package/cjs/domain/configuration/transportConfiguration.d.ts +21 -0
- package/cjs/domain/configuration/transportConfiguration.js +58 -0
- package/cjs/domain/configuration/transportConfiguration.js.map +1 -0
- package/cjs/domain/connectivity/connectivity.d.ts +14 -0
- package/cjs/domain/connectivity/connectivity.js +14 -0
- package/cjs/domain/connectivity/connectivity.js.map +1 -0
- package/cjs/domain/connectivity/index.d.ts +1 -0
- package/cjs/domain/connectivity/index.js +18 -0
- package/cjs/domain/connectivity/index.js.map +1 -0
- package/cjs/domain/console/consoleObservable.d.ts +21 -0
- package/cjs/domain/console/consoleObservable.js +84 -0
- package/cjs/domain/console/consoleObservable.js.map +1 -0
- package/cjs/domain/context/contextConstants.d.ts +21 -0
- package/cjs/domain/context/contextConstants.js +18 -0
- package/cjs/domain/context/contextConstants.js.map +1 -0
- package/cjs/domain/context/contextManager.d.ts +19 -0
- package/cjs/domain/context/contextManager.js +59 -0
- package/cjs/domain/context/contextManager.js.map +1 -0
- package/cjs/domain/context/contextUtils.d.ts +5 -0
- package/cjs/domain/context/contextUtils.js +16 -0
- package/cjs/domain/context/contextUtils.js.map +1 -0
- package/cjs/domain/context/defineContextMethod.d.ts +6 -0
- package/cjs/domain/context/defineContextMethod.js +21 -0
- package/cjs/domain/context/defineContextMethod.js.map +1 -0
- package/cjs/domain/context/storeContextManager.d.ts +6 -0
- package/cjs/domain/context/storeContextManager.js +40 -0
- package/cjs/domain/context/storeContextManager.js.map +1 -0
- package/cjs/domain/contexts/accountContext.d.ts +26 -0
- package/cjs/domain/contexts/accountContext.js +33 -0
- package/cjs/domain/contexts/accountContext.js.map +1 -0
- package/cjs/domain/contexts/globalContext.d.ts +18 -0
- package/cjs/domain/contexts/globalContext.js +21 -0
- package/cjs/domain/contexts/globalContext.js.map +1 -0
- package/cjs/domain/contexts/rumInternalContext.type.d.ts +14 -0
- package/cjs/domain/contexts/rumInternalContext.type.js +3 -0
- package/cjs/domain/contexts/rumInternalContext.type.js.map +1 -0
- package/cjs/domain/contexts/userContext.d.ts +31 -0
- package/cjs/domain/contexts/userContext.js +120 -0
- package/cjs/domain/contexts/userContext.js.map +1 -0
- package/cjs/domain/deflate/deflate.types.d.ts +40 -0
- package/cjs/domain/deflate/deflate.types.js +3 -0
- package/cjs/domain/deflate/deflate.types.js.map +1 -0
- package/cjs/domain/deflate/index.d.ts +1 -0
- package/cjs/domain/deflate/index.js +18 -0
- package/cjs/domain/deflate/index.js.map +1 -0
- package/cjs/domain/error/error.d.ts +23 -0
- package/cjs/domain/error/error.js +81 -0
- package/cjs/domain/error/error.js.map +1 -0
- package/cjs/domain/error/error.types.d.ts +47 -0
- package/cjs/domain/error/error.types.js +13 -0
- package/cjs/domain/error/error.types.js.map +1 -0
- package/cjs/domain/error/trackRuntimeError.d.ts +11 -0
- package/cjs/domain/error/trackRuntimeError.js +48 -0
- package/cjs/domain/error/trackRuntimeError.js.map +1 -0
- package/cjs/domain/eventRateLimiter/createEventRateLimiter.d.ts +5 -0
- package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +41 -0
- package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -0
- package/cjs/domain/extension/extensionUtils.d.ts +10 -0
- package/cjs/domain/extension/extensionUtils.js +30 -0
- package/cjs/domain/extension/extensionUtils.js.map +1 -0
- package/cjs/domain/intakeSites.d.ts +4 -0
- package/cjs/domain/intakeSites.js +7 -0
- package/cjs/domain/intakeSites.js.map +1 -0
- package/cjs/domain/report/browser.types.d.ts +34 -0
- package/cjs/domain/report/browser.types.js +3 -0
- package/cjs/domain/report/browser.types.js.map +1 -0
- package/cjs/domain/report/reportObservable.d.ts +14 -0
- package/cjs/domain/report/reportObservable.js +99 -0
- package/cjs/domain/report/reportObservable.js.map +1 -0
- package/cjs/domain/resourceUtils.d.ts +18 -0
- package/cjs/domain/resourceUtils.js +20 -0
- package/cjs/domain/resourceUtils.js.map +1 -0
- package/cjs/domain/session/oldCookiesMigration.d.ts +11 -0
- package/cjs/domain/session/oldCookiesMigration.js +40 -0
- package/cjs/domain/session/oldCookiesMigration.js.map +1 -0
- package/cjs/domain/session/sessionConstants.d.ts +15 -0
- package/cjs/domain/session/sessionConstants.js +16 -0
- package/cjs/domain/session/sessionConstants.js.map +1 -0
- package/cjs/domain/session/sessionManager.d.ts +28 -0
- package/cjs/domain/session/sessionManager.js +201 -0
- package/cjs/domain/session/sessionManager.js.map +1 -0
- package/cjs/domain/session/sessionState.d.ts +16 -0
- package/cjs/domain/session/sessionState.js +70 -0
- package/cjs/domain/session/sessionState.js.map +1 -0
- package/cjs/domain/session/sessionStateValidation.d.ts +3 -0
- package/cjs/domain/session/sessionStateValidation.js +11 -0
- package/cjs/domain/session/sessionStateValidation.js.map +1 -0
- package/cjs/domain/session/sessionStore.d.ts +38 -0
- package/cjs/domain/session/sessionStore.js +186 -0
- package/cjs/domain/session/sessionStore.js.map +1 -0
- package/cjs/domain/session/sessionStoreOperations.d.ts +12 -0
- package/cjs/domain/session/sessionStoreOperations.js +119 -0
- package/cjs/domain/session/sessionStoreOperations.js.map +1 -0
- package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +12 -0
- package/cjs/domain/session/storeStrategies/sessionInCookie.js +104 -0
- package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +1 -0
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +6 -0
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +42 -0
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -0
- package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -0
- package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +5 -0
- package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -0
- package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +12 -0
- package/cjs/domain/synthetics/syntheticsWorkerValues.js +31 -0
- package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +1 -0
- package/cjs/domain/tags.d.ts +6 -0
- package/cjs/domain/tags.js +66 -0
- package/cjs/domain/tags.js.map +1 -0
- package/cjs/domain/telemetry/index.d.ts +4 -0
- package/cjs/domain/telemetry/index.js +28 -0
- package/cjs/domain/telemetry/index.js.map +1 -0
- package/cjs/domain/telemetry/rawTelemetryEvent.types.d.ts +18 -0
- package/cjs/domain/telemetry/rawTelemetryEvent.types.js +9 -0
- package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +1 -0
- package/cjs/domain/telemetry/telemetry.d.ts +56 -0
- package/cjs/domain/telemetry/telemetry.js +245 -0
- package/cjs/domain/telemetry/telemetry.js.map +1 -0
- package/cjs/domain/telemetry/telemetryEvent.types.d.ts +866 -0
- package/cjs/domain/telemetry/telemetryEvent.types.js +7 -0
- package/cjs/domain/telemetry/telemetryEvent.types.js.map +1 -0
- package/cjs/domain/trackingConsent.d.ts +13 -0
- package/cjs/domain/trackingConsent.js +28 -0
- package/cjs/domain/trackingConsent.js.map +1 -0
- package/cjs/domain/userAgentData/index.d.ts +1 -0
- package/cjs/domain/userAgentData/index.js +18 -0
- package/cjs/domain/userAgentData/index.js.map +1 -0
- package/cjs/domain/userAgentData/userAgentData.d.ts +22 -0
- package/cjs/domain/userAgentData/userAgentData.js +109 -0
- package/cjs/domain/userAgentData/userAgentData.js.map +1 -0
- package/cjs/index.d.ts +101 -0
- package/cjs/index.js +199 -0
- package/cjs/index.js.map +1 -0
- package/cjs/tools/abstractHooks.d.ts +24 -0
- package/cjs/tools/abstractHooks.js +41 -0
- package/cjs/tools/abstractHooks.js.map +1 -0
- package/cjs/tools/abstractLifeCycle.d.ts +23 -0
- package/cjs/tools/abstractLifeCycle.js +28 -0
- package/cjs/tools/abstractLifeCycle.js.map +1 -0
- package/cjs/tools/boundedBuffer.d.ts +16 -0
- package/cjs/tools/boundedBuffer.js +32 -0
- package/cjs/tools/boundedBuffer.js.map +1 -0
- package/cjs/tools/catchUserErrors.d.ts +1 -0
- package/cjs/tools/catchUserErrors.js +15 -0
- package/cjs/tools/catchUserErrors.js.map +1 -0
- package/cjs/tools/display.d.ts +38 -0
- package/cjs/tools/display.js +44 -0
- package/cjs/tools/display.js.map +1 -0
- package/cjs/tools/encoder.d.ts +54 -0
- package/cjs/tools/encoder.js +40 -0
- package/cjs/tools/encoder.js.map +1 -0
- package/cjs/tools/experimentalFeatures.d.ts +21 -0
- package/cjs/tools/experimentalFeatures.js +50 -0
- package/cjs/tools/experimentalFeatures.js.map +1 -0
- package/cjs/tools/getZoneJsOriginalValue.d.ts +19 -0
- package/cjs/tools/getZoneJsOriginalValue.js +29 -0
- package/cjs/tools/getZoneJsOriginalValue.js.map +1 -0
- package/cjs/tools/globalObject.d.ts +19 -0
- package/cjs/tools/globalObject.js +44 -0
- package/cjs/tools/globalObject.js.map +1 -0
- package/cjs/tools/instrumentMethod.d.ts +75 -0
- package/cjs/tools/instrumentMethod.js +118 -0
- package/cjs/tools/instrumentMethod.js.map +1 -0
- package/cjs/tools/matchOption.d.ts +8 -0
- package/cjs/tools/matchOption.js +35 -0
- package/cjs/tools/matchOption.js.map +1 -0
- package/cjs/tools/mergeInto.d.ts +25 -0
- package/cjs/tools/mergeInto.js +98 -0
- package/cjs/tools/mergeInto.js.map +1 -0
- package/cjs/tools/monitor.d.ts +9 -0
- package/cjs/tools/monitor.js +61 -0
- package/cjs/tools/monitor.js.map +1 -0
- package/cjs/tools/observable.d.ts +30 -0
- package/cjs/tools/observable.js +89 -0
- package/cjs/tools/observable.js.map +1 -0
- package/cjs/tools/queueMicrotask.d.ts +1 -0
- package/cjs/tools/queueMicrotask.js +17 -0
- package/cjs/tools/queueMicrotask.js.map +1 -0
- package/cjs/tools/readBytesFromStream.d.ts +10 -0
- package/cjs/tools/readBytesFromStream.js +28 -0
- package/cjs/tools/readBytesFromStream.js.map +1 -0
- package/cjs/tools/requestIdleCallback.d.ts +12 -0
- package/cjs/tools/requestIdleCallback.js +35 -0
- package/cjs/tools/requestIdleCallback.js.map +1 -0
- package/cjs/tools/sendToExtension.d.ts +3 -0
- package/cjs/tools/sendToExtension.js +11 -0
- package/cjs/tools/sendToExtension.js.map +1 -0
- package/cjs/tools/serialisation/context.d.ts +9 -0
- package/cjs/tools/serialisation/context.js +3 -0
- package/cjs/tools/serialisation/context.js.map +1 -0
- package/cjs/tools/serialisation/jsonStringify.d.ts +13 -0
- package/cjs/tools/serialisation/jsonStringify.js +48 -0
- package/cjs/tools/serialisation/jsonStringify.js.map +1 -0
- package/cjs/tools/serialisation/sanitize.d.ts +18 -0
- package/cjs/tools/serialisation/sanitize.js +188 -0
- package/cjs/tools/serialisation/sanitize.js.map +1 -0
- package/cjs/tools/stackTrace/computeStackTrace.d.ts +25 -0
- package/cjs/tools/stackTrace/computeStackTrace.js +187 -0
- package/cjs/tools/stackTrace/computeStackTrace.js.map +1 -0
- package/cjs/tools/stackTrace/handlingStack.d.ts +10 -0
- package/cjs/tools/stackTrace/handlingStack.js +46 -0
- package/cjs/tools/stackTrace/handlingStack.js.map +1 -0
- package/cjs/tools/taskQueue.d.ts +15 -0
- package/cjs/tools/taskQueue.js +54 -0
- package/cjs/tools/taskQueue.js.map +1 -0
- package/cjs/tools/timer.d.ts +5 -0
- package/cjs/tools/timer.js +22 -0
- package/cjs/tools/timer.js.map +1 -0
- package/cjs/tools/utils/arrayUtils.d.ts +3 -0
- package/cjs/tools/utils/arrayUtils.js +20 -0
- package/cjs/tools/utils/arrayUtils.js.map +1 -0
- package/cjs/tools/utils/browserDetection.d.ts +8 -0
- package/cjs/tools/utils/browserDetection.js +33 -0
- package/cjs/tools/utils/browserDetection.js.map +1 -0
- package/cjs/tools/utils/byteUtils.d.ts +8 -0
- package/cjs/tools/utils/byteUtils.js +34 -0
- package/cjs/tools/utils/byteUtils.js.map +1 -0
- package/cjs/tools/utils/functionUtils.d.ts +8 -0
- package/cjs/tools/utils/functionUtils.js +43 -0
- package/cjs/tools/utils/functionUtils.js.map +1 -0
- package/cjs/tools/utils/numberUtils.d.ts +8 -0
- package/cjs/tools/utils/numberUtils.js +23 -0
- package/cjs/tools/utils/numberUtils.js.map +1 -0
- package/cjs/tools/utils/objectUtils.d.ts +10 -0
- package/cjs/tools/utils/objectUtils.js +23 -0
- package/cjs/tools/utils/objectUtils.js.map +1 -0
- package/cjs/tools/utils/polyfills.d.ts +7 -0
- package/cjs/tools/utils/polyfills.js +23 -0
- package/cjs/tools/utils/polyfills.js.map +1 -0
- package/cjs/tools/utils/responseUtils.d.ts +2 -0
- package/cjs/tools/utils/responseUtils.js +17 -0
- package/cjs/tools/utils/responseUtils.js.map +1 -0
- package/cjs/tools/utils/stringUtils.d.ts +23 -0
- package/cjs/tools/utils/stringUtils.js +91 -0
- package/cjs/tools/utils/stringUtils.js.map +1 -0
- package/cjs/tools/utils/timeUtils.d.ts +53 -0
- package/cjs/tools/utils/timeUtils.js +101 -0
- package/cjs/tools/utils/timeUtils.js.map +1 -0
- package/cjs/tools/utils/timezone.d.ts +1 -0
- package/cjs/tools/utils/timezone.js +13 -0
- package/cjs/tools/utils/timezone.js.map +1 -0
- package/cjs/tools/utils/typeUtils.d.ts +4 -0
- package/cjs/tools/utils/typeUtils.js +16 -0
- package/cjs/tools/utils/typeUtils.js.map +1 -0
- package/cjs/tools/utils/urlPolyfill.d.ts +5 -0
- package/cjs/tools/utils/urlPolyfill.js +59 -0
- package/cjs/tools/utils/urlPolyfill.js.map +1 -0
- package/cjs/tools/valueHistory.d.ts +27 -0
- package/cjs/tools/valueHistory.js +104 -0
- package/cjs/tools/valueHistory.js.map +1 -0
- package/cjs/transport/batch.d.ts +16 -0
- package/cjs/transport/batch.js +110 -0
- package/cjs/transport/batch.js.map +1 -0
- package/cjs/transport/eventBridge.d.ts +21 -0
- package/cjs/transport/eventBridge.js +46 -0
- package/cjs/transport/eventBridge.js.map +1 -0
- package/cjs/transport/flushController.d.ts +65 -0
- package/cjs/transport/flushController.js +123 -0
- package/cjs/transport/flushController.js.map +1 -0
- package/cjs/transport/httpRequest.d.ts +57 -0
- package/cjs/transport/httpRequest.js +107 -0
- package/cjs/transport/httpRequest.js.map +1 -0
- package/cjs/transport/index.d.ts +7 -0
- package/cjs/transport/index.js +15 -0
- package/cjs/transport/index.js.map +1 -0
- package/cjs/transport/sendWithRetryStrategy.d.ts +41 -0
- package/cjs/transport/sendWithRetryStrategy.js +163 -0
- package/cjs/transport/sendWithRetryStrategy.js.map +1 -0
- package/esm/boot/displayAlreadyInitializedError.d.ts +2 -0
- package/esm/boot/displayAlreadyInitializedError.js +7 -0
- package/esm/boot/displayAlreadyInitializedError.js.map +1 -0
- package/esm/boot/init.d.ts +13 -0
- package/esm/boot/init.js +35 -0
- package/esm/boot/init.js.map +1 -0
- package/esm/browser/addEventListener.d.ts +87 -0
- package/esm/browser/addEventListener.js +51 -0
- package/esm/browser/addEventListener.js.map +1 -0
- package/esm/browser/browser.types.d.ts +51 -0
- package/esm/browser/browser.types.js +5 -0
- package/esm/browser/browser.types.js.map +1 -0
- package/esm/browser/cookie.d.ts +26 -0
- package/esm/browser/cookie.js +101 -0
- package/esm/browser/cookie.js.map +1 -0
- package/esm/browser/fetchObservable.d.ts +38 -0
- package/esm/browser/fetchObservable.js +99 -0
- package/esm/browser/fetchObservable.js.map +1 -0
- package/esm/browser/pageMayExitObservable.d.ts +14 -0
- package/esm/browser/pageMayExitObservable.js +40 -0
- package/esm/browser/pageMayExitObservable.js.map +1 -0
- package/esm/browser/runOnReadyState.d.ts +5 -0
- package/esm/browser/runOnReadyState.js +16 -0
- package/esm/browser/runOnReadyState.js.map +1 -0
- package/esm/browser/xhrObservable.d.ts +24 -0
- package/esm/browser/xhrObservable.js +83 -0
- package/esm/browser/xhrObservable.js.map +1 -0
- package/esm/domain/allowedTrackingOrigins.d.ts +4 -0
- package/esm/domain/allowedTrackingOrigins.js +21 -0
- package/esm/domain/allowedTrackingOrigins.js.map +1 -0
- package/esm/domain/bufferedData.d.ts +14 -0
- package/esm/domain/bufferedData.js +19 -0
- package/esm/domain/bufferedData.js.map +1 -0
- package/esm/domain/configuration/configuration.d.ts +284 -0
- package/esm/domain/configuration/configuration.js +129 -0
- package/esm/domain/configuration/configuration.js.map +1 -0
- package/esm/domain/configuration/endpointBuilder.d.ts +12 -0
- package/esm/domain/configuration/endpointBuilder.js +62 -0
- package/esm/domain/configuration/endpointBuilder.js.map +1 -0
- package/esm/domain/configuration/index.d.ts +6 -0
- package/esm/domain/configuration/index.js +5 -0
- package/esm/domain/configuration/index.js.map +1 -0
- package/esm/domain/configuration/transportConfiguration.d.ts +21 -0
- package/esm/domain/configuration/transportConfiguration.js +54 -0
- package/esm/domain/configuration/transportConfiguration.js.map +1 -0
- package/esm/domain/connectivity/connectivity.d.ts +14 -0
- package/esm/domain/connectivity/connectivity.js +11 -0
- package/esm/domain/connectivity/connectivity.js.map +1 -0
- package/esm/domain/connectivity/index.d.ts +1 -0
- package/esm/domain/connectivity/index.js +2 -0
- package/esm/domain/connectivity/index.js.map +1 -0
- package/esm/domain/console/consoleObservable.d.ts +21 -0
- package/esm/domain/console/consoleObservable.js +80 -0
- package/esm/domain/console/consoleObservable.js.map +1 -0
- package/esm/domain/context/contextConstants.d.ts +21 -0
- package/esm/domain/context/contextConstants.js +15 -0
- package/esm/domain/context/contextConstants.js.map +1 -0
- package/esm/domain/context/contextManager.d.ts +19 -0
- package/esm/domain/context/contextManager.js +56 -0
- package/esm/domain/context/contextManager.js.map +1 -0
- package/esm/domain/context/contextUtils.d.ts +5 -0
- package/esm/domain/context/contextUtils.js +13 -0
- package/esm/domain/context/contextUtils.js.map +1 -0
- package/esm/domain/context/defineContextMethod.d.ts +6 -0
- package/esm/domain/context/defineContextMethod.js +17 -0
- package/esm/domain/context/defineContextMethod.js.map +1 -0
- package/esm/domain/context/storeContextManager.d.ts +6 -0
- package/esm/domain/context/storeContextManager.js +35 -0
- package/esm/domain/context/storeContextManager.js.map +1 -0
- package/esm/domain/contexts/accountContext.d.ts +26 -0
- package/esm/domain/contexts/accountContext.js +29 -0
- package/esm/domain/contexts/accountContext.js.map +1 -0
- package/esm/domain/contexts/globalContext.d.ts +18 -0
- package/esm/domain/contexts/globalContext.js +17 -0
- package/esm/domain/contexts/globalContext.js.map +1 -0
- package/esm/domain/contexts/rumInternalContext.type.d.ts +14 -0
- package/esm/domain/contexts/rumInternalContext.type.js +2 -0
- package/esm/domain/contexts/rumInternalContext.type.js.map +1 -0
- package/esm/domain/contexts/userContext.d.ts +31 -0
- package/esm/domain/contexts/userContext.js +116 -0
- package/esm/domain/contexts/userContext.js.map +1 -0
- package/esm/domain/deflate/deflate.types.d.ts +40 -0
- package/esm/domain/deflate/deflate.types.js +2 -0
- package/esm/domain/deflate/deflate.types.js.map +1 -0
- package/esm/domain/deflate/index.d.ts +1 -0
- package/esm/domain/deflate/index.js +2 -0
- package/esm/domain/deflate/index.js.map +1 -0
- package/esm/domain/error/error.d.ts +23 -0
- package/esm/domain/error/error.js +72 -0
- package/esm/domain/error/error.js.map +1 -0
- package/esm/domain/error/error.types.d.ts +47 -0
- package/esm/domain/error/error.types.js +10 -0
- package/esm/domain/error/error.types.js.map +1 -0
- package/esm/domain/error/trackRuntimeError.d.ts +11 -0
- package/esm/domain/error/trackRuntimeError.js +43 -0
- package/esm/domain/error/trackRuntimeError.js.map +1 -0
- package/esm/domain/eventRateLimiter/createEventRateLimiter.d.ts +5 -0
- package/esm/domain/eventRateLimiter/createEventRateLimiter.js +38 -0
- package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +1 -0
- package/esm/domain/extension/extensionUtils.d.ts +10 -0
- package/esm/domain/extension/extensionUtils.js +25 -0
- package/esm/domain/extension/extensionUtils.js.map +1 -0
- package/esm/domain/intakeSites.d.ts +4 -0
- package/esm/domain/intakeSites.js +4 -0
- package/esm/domain/intakeSites.js.map +1 -0
- package/esm/domain/report/browser.types.d.ts +34 -0
- package/esm/domain/report/browser.types.js +2 -0
- package/esm/domain/report/browser.types.js.map +1 -0
- package/esm/domain/report/reportObservable.d.ts +14 -0
- package/esm/domain/report/reportObservable.js +95 -0
- package/esm/domain/report/reportObservable.js.map +1 -0
- package/esm/domain/resourceUtils.d.ts +18 -0
- package/esm/domain/resourceUtils.js +17 -0
- package/esm/domain/resourceUtils.js.map +1 -0
- package/esm/domain/session/oldCookiesMigration.d.ts +11 -0
- package/esm/domain/session/oldCookiesMigration.js +36 -0
- package/esm/domain/session/oldCookiesMigration.js.map +1 -0
- package/esm/domain/session/sessionConstants.d.ts +15 -0
- package/esm/domain/session/sessionConstants.js +13 -0
- package/esm/domain/session/sessionConstants.js.map +1 -0
- package/esm/domain/session/sessionManager.d.ts +28 -0
- package/esm/domain/session/sessionManager.js +196 -0
- package/esm/domain/session/sessionManager.js.map +1 -0
- package/esm/domain/session/sessionState.d.ts +16 -0
- package/esm/domain/session/sessionState.js +60 -0
- package/esm/domain/session/sessionState.js.map +1 -0
- package/esm/domain/session/sessionStateValidation.d.ts +3 -0
- package/esm/domain/session/sessionStateValidation.js +7 -0
- package/esm/domain/session/sessionStateValidation.js.map +1 -0
- package/esm/domain/session/sessionStore.d.ts +38 -0
- package/esm/domain/session/sessionStore.js +180 -0
- package/esm/domain/session/sessionStore.js.map +1 -0
- package/esm/domain/session/sessionStoreOperations.d.ts +12 -0
- package/esm/domain/session/sessionStoreOperations.js +114 -0
- package/esm/domain/session/sessionStoreOperations.js.map +1 -0
- package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +12 -0
- package/esm/domain/session/storeStrategies/sessionInCookie.js +98 -0
- package/esm/domain/session/storeStrategies/sessionInCookie.js.map +1 -0
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +6 -0
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +37 -0
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +1 -0
- package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +16 -0
- package/esm/domain/session/storeStrategies/sessionStoreStrategy.js +2 -0
- package/esm/domain/session/storeStrategies/sessionStoreStrategy.js.map +1 -0
- package/esm/domain/synthetics/syntheticsWorkerValues.d.ts +12 -0
- package/esm/domain/synthetics/syntheticsWorkerValues.js +24 -0
- package/esm/domain/synthetics/syntheticsWorkerValues.js.map +1 -0
- package/esm/domain/tags.d.ts +6 -0
- package/esm/domain/tags.js +59 -0
- package/esm/domain/tags.js.map +1 -0
- package/esm/domain/telemetry/index.d.ts +4 -0
- package/esm/domain/telemetry/index.js +3 -0
- package/esm/domain/telemetry/index.js.map +1 -0
- package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +18 -0
- package/esm/domain/telemetry/rawTelemetryEvent.types.js +6 -0
- package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +1 -0
- package/esm/domain/telemetry/telemetry.d.ts +56 -0
- package/esm/domain/telemetry/telemetry.js +232 -0
- package/esm/domain/telemetry/telemetry.js.map +1 -0
- package/esm/domain/telemetry/telemetryEvent.types.d.ts +866 -0
- package/esm/domain/telemetry/telemetryEvent.types.js +6 -0
- package/esm/domain/telemetry/telemetryEvent.types.js.map +1 -0
- package/esm/domain/trackingConsent.d.ts +13 -0
- package/esm/domain/trackingConsent.js +24 -0
- package/esm/domain/trackingConsent.js.map +1 -0
- package/esm/domain/userAgentData/index.d.ts +1 -0
- package/esm/domain/userAgentData/index.js +2 -0
- package/esm/domain/userAgentData/index.js.map +1 -0
- package/esm/domain/userAgentData/userAgentData.d.ts +22 -0
- package/esm/domain/userAgentData/userAgentData.js +105 -0
- package/esm/domain/userAgentData/userAgentData.js.map +1 -0
- package/esm/index.d.ts +101 -0
- package/esm/index.js +77 -0
- package/esm/index.js.map +1 -0
- package/esm/tools/abstractHooks.d.ts +24 -0
- package/esm/tools/abstractHooks.js +37 -0
- package/esm/tools/abstractHooks.js.map +1 -0
- package/esm/tools/abstractLifeCycle.d.ts +23 -0
- package/esm/tools/abstractLifeCycle.js +24 -0
- package/esm/tools/abstractLifeCycle.js.map +1 -0
- package/esm/tools/boundedBuffer.d.ts +16 -0
- package/esm/tools/boundedBuffer.js +29 -0
- package/esm/tools/boundedBuffer.js.map +1 -0
- package/esm/tools/catchUserErrors.d.ts +1 -0
- package/esm/tools/catchUserErrors.js +12 -0
- package/esm/tools/catchUserErrors.js.map +1 -0
- package/esm/tools/display.d.ts +38 -0
- package/esm/tools/display.js +41 -0
- package/esm/tools/display.js.map +1 -0
- package/esm/tools/encoder.d.ts +54 -0
- package/esm/tools/encoder.js +37 -0
- package/esm/tools/encoder.js.map +1 -0
- package/esm/tools/experimentalFeatures.d.ts +21 -0
- package/esm/tools/experimentalFeatures.js +42 -0
- package/esm/tools/experimentalFeatures.js.map +1 -0
- package/esm/tools/getZoneJsOriginalValue.d.ts +19 -0
- package/esm/tools/getZoneJsOriginalValue.js +26 -0
- package/esm/tools/getZoneJsOriginalValue.js.map +1 -0
- package/esm/tools/globalObject.d.ts +19 -0
- package/esm/tools/globalObject.js +40 -0
- package/esm/tools/globalObject.js.map +1 -0
- package/esm/tools/instrumentMethod.d.ts +75 -0
- package/esm/tools/instrumentMethod.js +114 -0
- package/esm/tools/instrumentMethod.js.map +1 -0
- package/esm/tools/matchOption.d.ts +8 -0
- package/esm/tools/matchOption.js +31 -0
- package/esm/tools/matchOption.js.map +1 -0
- package/esm/tools/mergeInto.d.ts +25 -0
- package/esm/tools/mergeInto.js +93 -0
- package/esm/tools/mergeInto.js.map +1 -0
- package/esm/tools/monitor.d.ts +9 -0
- package/esm/tools/monitor.js +51 -0
- package/esm/tools/monitor.js.map +1 -0
- package/esm/tools/observable.d.ts +30 -0
- package/esm/tools/observable.js +83 -0
- package/esm/tools/observable.js.map +1 -0
- package/esm/tools/queueMicrotask.d.ts +1 -0
- package/esm/tools/queueMicrotask.js +14 -0
- package/esm/tools/queueMicrotask.js.map +1 -0
- package/esm/tools/readBytesFromStream.d.ts +10 -0
- package/esm/tools/readBytesFromStream.js +25 -0
- package/esm/tools/readBytesFromStream.js.map +1 -0
- package/esm/tools/requestIdleCallback.d.ts +12 -0
- package/esm/tools/requestIdleCallback.js +30 -0
- package/esm/tools/requestIdleCallback.js.map +1 -0
- package/esm/tools/sendToExtension.d.ts +3 -0
- package/esm/tools/sendToExtension.js +8 -0
- package/esm/tools/sendToExtension.js.map +1 -0
- package/esm/tools/serialisation/context.d.ts +9 -0
- package/esm/tools/serialisation/context.js +2 -0
- package/esm/tools/serialisation/context.js.map +1 -0
- package/esm/tools/serialisation/jsonStringify.d.ts +13 -0
- package/esm/tools/serialisation/jsonStringify.js +44 -0
- package/esm/tools/serialisation/jsonStringify.js.map +1 -0
- package/esm/tools/serialisation/sanitize.d.ts +18 -0
- package/esm/tools/serialisation/sanitize.js +185 -0
- package/esm/tools/serialisation/sanitize.js.map +1 -0
- package/esm/tools/stackTrace/computeStackTrace.d.ts +25 -0
- package/esm/tools/stackTrace/computeStackTrace.js +183 -0
- package/esm/tools/stackTrace/computeStackTrace.js.map +1 -0
- package/esm/tools/stackTrace/handlingStack.d.ts +10 -0
- package/esm/tools/stackTrace/handlingStack.js +41 -0
- package/esm/tools/stackTrace/handlingStack.js.map +1 -0
- package/esm/tools/taskQueue.d.ts +15 -0
- package/esm/tools/taskQueue.js +50 -0
- package/esm/tools/taskQueue.js.map +1 -0
- package/esm/tools/timer.d.ts +5 -0
- package/esm/tools/timer.js +16 -0
- package/esm/tools/timer.js.map +1 -0
- package/esm/tools/utils/arrayUtils.d.ts +3 -0
- package/esm/tools/utils/arrayUtils.js +15 -0
- package/esm/tools/utils/arrayUtils.js.map +1 -0
- package/esm/tools/utils/browserDetection.d.ts +8 -0
- package/esm/tools/utils/browserDetection.js +28 -0
- package/esm/tools/utils/browserDetection.js.map +1 -0
- package/esm/tools/utils/byteUtils.d.ts +8 -0
- package/esm/tools/utils/byteUtils.js +29 -0
- package/esm/tools/utils/byteUtils.js.map +1 -0
- package/esm/tools/utils/functionUtils.d.ts +8 -0
- package/esm/tools/utils/functionUtils.js +39 -0
- package/esm/tools/utils/functionUtils.js.map +1 -0
- package/esm/tools/utils/numberUtils.d.ts +8 -0
- package/esm/tools/utils/numberUtils.js +17 -0
- package/esm/tools/utils/numberUtils.js.map +1 -0
- package/esm/tools/utils/objectUtils.d.ts +10 -0
- package/esm/tools/utils/objectUtils.js +17 -0
- package/esm/tools/utils/objectUtils.js.map +1 -0
- package/esm/tools/utils/polyfills.d.ts +7 -0
- package/esm/tools/utils/polyfills.js +18 -0
- package/esm/tools/utils/polyfills.js.map +1 -0
- package/esm/tools/utils/responseUtils.d.ts +2 -0
- package/esm/tools/utils/responseUtils.js +13 -0
- package/esm/tools/utils/responseUtils.js.map +1 -0
- package/esm/tools/utils/stringUtils.d.ts +23 -0
- package/esm/tools/utils/stringUtils.js +84 -0
- package/esm/tools/utils/stringUtils.js.map +1 -0
- package/esm/tools/utils/timeUtils.d.ts +53 -0
- package/esm/tools/utils/timeUtils.js +84 -0
- package/esm/tools/utils/timeUtils.js.map +1 -0
- package/esm/tools/utils/timezone.d.ts +1 -0
- package/esm/tools/utils/timezone.js +10 -0
- package/esm/tools/utils/timezone.js.map +1 -0
- package/esm/tools/utils/typeUtils.d.ts +4 -0
- package/esm/tools/utils/typeUtils.js +13 -0
- package/esm/tools/utils/typeUtils.js.map +1 -0
- package/esm/tools/utils/urlPolyfill.d.ts +5 -0
- package/esm/tools/utils/urlPolyfill.js +52 -0
- package/esm/tools/utils/urlPolyfill.js.map +1 -0
- package/esm/tools/valueHistory.d.ts +27 -0
- package/esm/tools/valueHistory.js +100 -0
- package/esm/tools/valueHistory.js.map +1 -0
- package/esm/transport/batch.d.ts +16 -0
- package/esm/transport/batch.js +106 -0
- package/esm/transport/batch.js.map +1 -0
- package/esm/transport/eventBridge.d.ts +21 -0
- package/esm/transport/eventBridge.js +41 -0
- package/esm/transport/eventBridge.js.map +1 -0
- package/esm/transport/flushController.d.ts +65 -0
- package/esm/transport/flushController.js +119 -0
- package/esm/transport/flushController.js.map +1 -0
- package/esm/transport/httpRequest.d.ts +57 -0
- package/esm/transport/httpRequest.js +101 -0
- package/esm/transport/httpRequest.js.map +1 -0
- package/esm/transport/index.d.ts +7 -0
- package/esm/transport/index.js +5 -0
- package/esm/transport/index.js.map +1 -0
- package/esm/transport/sendWithRetryStrategy.d.ts +41 -0
- package/esm/transport/sendWithRetryStrategy.js +158 -0
- package/esm/transport/sendWithRetryStrategy.js.map +1 -0
- package/package.json +28 -0
- package/src/boot/displayAlreadyInitializedError.ts +8 -0
- package/src/boot/init.ts +54 -0
- package/src/browser/addEventListener.ts +145 -0
- package/src/browser/browser.types.ts +84 -0
- package/src/browser/cookie.ts +122 -0
- package/src/browser/fetchObservable.ts +167 -0
- package/src/browser/pageMayExitObservable.ts +56 -0
- package/src/browser/runOnReadyState.ts +25 -0
- package/src/browser/xhrObservable.ts +134 -0
- package/src/domain/allowedTrackingOrigins.ts +29 -0
- package/src/domain/bufferedData.ts +32 -0
- package/src/domain/configuration/configuration.ts +409 -0
- package/src/domain/configuration/endpointBuilder.ts +105 -0
- package/src/domain/configuration/index.ts +12 -0
- package/src/domain/configuration/transportConfiguration.ts +86 -0
- package/src/domain/connectivity/connectivity.ts +31 -0
- package/src/domain/connectivity/index.ts +1 -0
- package/src/domain/console/consoleObservable.ts +118 -0
- package/src/domain/context/contextConstants.ts +27 -0
- package/src/domain/context/contextManager.ts +81 -0
- package/src/domain/context/contextUtils.ts +14 -0
- package/src/domain/context/defineContextMethod.ts +31 -0
- package/src/domain/context/storeContextManager.ts +55 -0
- package/src/domain/contexts/accountContext.ts +47 -0
- package/src/domain/contexts/globalContext.ts +30 -0
- package/src/domain/contexts/rumInternalContext.type.ts +15 -0
- package/src/domain/contexts/userContext.ts +148 -0
- package/src/domain/deflate/deflate.types.ts +57 -0
- package/src/domain/deflate/index.ts +1 -0
- package/src/domain/error/error.ts +127 -0
- package/src/domain/error/error.types.ts +64 -0
- package/src/domain/error/trackRuntimeError.ts +50 -0
- package/src/domain/eventRateLimiter/createEventRateLimiter.ts +49 -0
- package/src/domain/extension/extensionUtils.ts +28 -0
- package/src/domain/intakeSites.ts +6 -0
- package/src/domain/report/browser.types.ts +38 -0
- package/src/domain/report/reportObservable.ts +133 -0
- package/src/domain/resourceUtils.ts +21 -0
- package/src/domain/session/README.md +193 -0
- package/src/domain/session/oldCookiesMigration.ts +42 -0
- package/src/domain/session/sessionConstants.ts +19 -0
- package/src/domain/session/sessionManager.ts +262 -0
- package/src/domain/session/sessionState.ts +83 -0
- package/src/domain/session/sessionStateValidation.ts +9 -0
- package/src/domain/session/sessionStore.ts +250 -0
- package/src/domain/session/sessionStoreOperations.ts +131 -0
- package/src/domain/session/storeStrategies/sessionInCookie.ts +146 -0
- package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +44 -0
- package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +16 -0
- package/src/domain/synthetics/syntheticsWorkerValues.ts +38 -0
- package/src/domain/tags.ts +75 -0
- package/src/domain/telemetry/index.ts +22 -0
- package/src/domain/telemetry/rawTelemetryEvent.types.ts +22 -0
- package/src/domain/telemetry/telemetry.ts +344 -0
- package/src/domain/telemetry/telemetryEvent.types.ts +907 -0
- package/src/domain/trackingConsent.ts +34 -0
- package/src/domain/userAgentData/index.ts +1 -0
- package/src/domain/userAgentData/userAgentData.ts +163 -0
- package/src/index.ts +169 -0
- package/src/tools/abstractHooks.ts +72 -0
- package/src/tools/abstractLifeCycle.ts +46 -0
- package/src/tools/boundedBuffer.ts +44 -0
- package/src/tools/catchUserErrors.ts +11 -0
- package/src/tools/display.ts +56 -0
- package/src/tools/encoder.ts +103 -0
- package/src/tools/experimentalFeatures.ts +52 -0
- package/src/tools/getZoneJsOriginalValue.ts +38 -0
- package/src/tools/globalObject.ts +51 -0
- package/src/tools/instrumentMethod.ts +170 -0
- package/src/tools/matchOption.ts +31 -0
- package/src/tools/mergeInto.ts +177 -0
- package/src/tools/monitor.ts +71 -0
- package/src/tools/observable.ts +103 -0
- package/src/tools/queueMicrotask.ts +13 -0
- package/src/tools/readBytesFromStream.ts +37 -0
- package/src/tools/requestIdleCallback.ts +40 -0
- package/src/tools/sendToExtension.ts +14 -0
- package/src/tools/serialisation/context.ts +11 -0
- package/src/tools/serialisation/jsonStringify.ts +53 -0
- package/src/tools/serialisation/sanitize.ts +273 -0
- package/src/tools/stackTrace/computeStackTrace.ts +251 -0
- package/src/tools/stackTrace/handlingStack.ts +48 -0
- package/src/tools/taskQueue.ts +63 -0
- package/src/tools/timer.ts +21 -0
- package/src/tools/utils/arrayUtils.ts +16 -0
- package/src/tools/utils/browserDetection.ts +39 -0
- package/src/tools/utils/byteUtils.ts +40 -0
- package/src/tools/utils/functionUtils.ts +45 -0
- package/src/tools/utils/numberUtils.ts +19 -0
- package/src/tools/utils/objectUtils.ts +19 -0
- package/src/tools/utils/polyfills.ts +23 -0
- package/src/tools/utils/responseUtils.ts +12 -0
- package/src/tools/utils/stringUtils.ts +86 -0
- package/src/tools/utils/timeUtils.ts +117 -0
- package/src/tools/utils/timezone.ts +9 -0
- package/src/tools/utils/typeUtils.ts +12 -0
- package/src/tools/utils/urlPolyfill.ts +55 -0
- package/src/tools/valueHistory.ts +151 -0
- package/src/transport/batch.ts +144 -0
- package/src/transport/eventBridge.ts +60 -0
- package/src/transport/flushController.ts +150 -0
- package/src/transport/httpRequest.ts +191 -0
- package/src/transport/index.ts +7 -0
- package/src/transport/sendWithRetryStrategy.ts +222 -0
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
import { catchUserErrors } from '../../tools/catchUserErrors'
|
|
2
|
+
import { DOCS_ORIGIN, MORE_DETAILS, display } from '../../tools/display'
|
|
3
|
+
import type { RawTelemetryConfiguration } from '../telemetry'
|
|
4
|
+
import { isPercentage } from '../../tools/utils/numberUtils'
|
|
5
|
+
import { objectHasValue } from '../../tools/utils/objectUtils'
|
|
6
|
+
import { selectSessionStoreStrategyType } from '../session/sessionStore'
|
|
7
|
+
import type { SessionStoreStrategyType } from '../session/storeStrategies/sessionStoreStrategy'
|
|
8
|
+
import { TrackingConsent } from '../trackingConsent'
|
|
9
|
+
import type { SessionPersistence } from '../session/sessionConstants'
|
|
10
|
+
import type { MatchOption } from '../../tools/matchOption'
|
|
11
|
+
import { isAllowedTrackingOrigins } from '../allowedTrackingOrigins'
|
|
12
|
+
import { isWorkerEnvironment } from '../../tools/globalObject'
|
|
13
|
+
import type { TransportConfiguration } from './transportConfiguration'
|
|
14
|
+
import { computeTransportConfiguration } from './transportConfiguration'
|
|
15
|
+
import type { Site } from '../intakeSites'
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Default privacy level for the browser SDK.
|
|
19
|
+
*
|
|
20
|
+
* [Replay Privacy Options](https://docs.kubesense.ai/real_user_monitoring/session_replay/browser/privacy_options) for further information.
|
|
21
|
+
*/
|
|
22
|
+
export const DefaultPrivacyLevel = {
|
|
23
|
+
ALLOW: 'allow',
|
|
24
|
+
MASK: 'mask',
|
|
25
|
+
MASK_USER_INPUT: 'mask-user-input',
|
|
26
|
+
MASK_UNLESS_ALLOWLISTED: 'mask-unless-allowlisted',
|
|
27
|
+
} as const
|
|
28
|
+
export type DefaultPrivacyLevel = (typeof DefaultPrivacyLevel)[keyof typeof DefaultPrivacyLevel]
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* Trace context injection option.
|
|
32
|
+
*
|
|
33
|
+
* See [Connect RUM and Traces](https://docs.kubesense.ai/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.
|
|
34
|
+
*/
|
|
35
|
+
export const TraceContextInjection = {
|
|
36
|
+
ALL: 'all',
|
|
37
|
+
SAMPLED: 'sampled',
|
|
38
|
+
} as const
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Trace context injection option.
|
|
42
|
+
*
|
|
43
|
+
* See [Connect RUM and Traces](https://docs.kubesense.ai/real_user_monitoring/platform/connect_rum_and_traces/?tab=browserrum) for further information.
|
|
44
|
+
*
|
|
45
|
+
*/
|
|
46
|
+
export type TraceContextInjection = (typeof TraceContextInjection)[keyof typeof TraceContextInjection]
|
|
47
|
+
|
|
48
|
+
export interface InitConfiguration {
|
|
49
|
+
/**
|
|
50
|
+
* The client token for Kubsesense. Required for authenticating your application with Kubsesense.
|
|
51
|
+
*
|
|
52
|
+
* @category Authentication
|
|
53
|
+
*/
|
|
54
|
+
clientToken: string
|
|
55
|
+
/**
|
|
56
|
+
* A callback function that can be used to modify events before they are sent to Kubsesense.
|
|
57
|
+
*
|
|
58
|
+
* @category Data Collection
|
|
59
|
+
*/
|
|
60
|
+
beforeSend?: GenericBeforeSendCallback | undefined
|
|
61
|
+
/**
|
|
62
|
+
* The percentage of sessions tracked. A value between 0 and 100.
|
|
63
|
+
*
|
|
64
|
+
* @category Data Collection
|
|
65
|
+
* @defaultValue 100
|
|
66
|
+
*/
|
|
67
|
+
sessionSampleRate?: number | undefined
|
|
68
|
+
/**
|
|
69
|
+
* The percentage of telemetry events sent. A value between 0 and 100.
|
|
70
|
+
*
|
|
71
|
+
* @category Data Collection
|
|
72
|
+
* @defaultValue 20
|
|
73
|
+
*/
|
|
74
|
+
telemetrySampleRate?: number | undefined
|
|
75
|
+
/**
|
|
76
|
+
* Initialization fails silently if the RUM Browser SDK is already initialized on the page.
|
|
77
|
+
* @defaultValue false
|
|
78
|
+
*/
|
|
79
|
+
silentMultipleInit?: boolean | undefined
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Which storage strategy to use for persisting sessions. Can be either 'cookie' or 'local-storage'.
|
|
83
|
+
*
|
|
84
|
+
* Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
|
|
85
|
+
*
|
|
86
|
+
* @category Session Persistence
|
|
87
|
+
* @defaultValue "cookie"
|
|
88
|
+
*/
|
|
89
|
+
sessionPersistence?: SessionPersistence | undefined
|
|
90
|
+
|
|
91
|
+
/**
|
|
92
|
+
* Allows the use of localStorage when cookies cannot be set. This enables the RUM Browser SDK to run in environments that do not provide cookie support.
|
|
93
|
+
*
|
|
94
|
+
* Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
|
|
95
|
+
* @category Session Persistence
|
|
96
|
+
* @deprecated use `sessionPersistence: local-storage` where you want to use localStorage instead
|
|
97
|
+
*/
|
|
98
|
+
allowFallbackToLocalStorage?: boolean | undefined
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Allow listening to DOM events dispatched programmatically ([untrusted events](https://developer.mozilla.org/en-US/docs/Web/API/Event/isTrusted)). Enabling this option can be useful if you heavily rely on programmatic events, such as in an automated UI test environment.
|
|
102
|
+
* @defaultValue false
|
|
103
|
+
*/
|
|
104
|
+
allowUntrustedEvents?: boolean | undefined
|
|
105
|
+
/**
|
|
106
|
+
* Store global context and user context in localStorage to preserve them along the user navigation.
|
|
107
|
+
* @defaultValue false
|
|
108
|
+
*/
|
|
109
|
+
storeContextsAcrossPages?: boolean | undefined
|
|
110
|
+
/**
|
|
111
|
+
* Set the initial user tracking consent state.
|
|
112
|
+
*
|
|
113
|
+
* @category Privacy
|
|
114
|
+
* @defaultValue granted
|
|
115
|
+
*/
|
|
116
|
+
trackingConsent?: TrackingConsent | undefined
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* List of origins where the SDK is allowed to run when used in a browser extension context.
|
|
120
|
+
* Matches urls against the extensions origin.
|
|
121
|
+
* If not provided and the SDK is running in a browser extension, the SDK will not run.
|
|
122
|
+
*/
|
|
123
|
+
allowedTrackingOrigins?: MatchOption[] | undefined
|
|
124
|
+
|
|
125
|
+
// transport options
|
|
126
|
+
/**
|
|
127
|
+
* Optional proxy URL, for example: https://www.proxy.com/path.
|
|
128
|
+
*
|
|
129
|
+
* @category Transport
|
|
130
|
+
*/
|
|
131
|
+
proxy?: string | ProxyFn | undefined
|
|
132
|
+
/**
|
|
133
|
+
*
|
|
134
|
+
* @category Transport
|
|
135
|
+
* @defaultValue rum.kubesense.ai
|
|
136
|
+
*/
|
|
137
|
+
kubesenseRumEndpoint?: Site | undefined | null
|
|
138
|
+
|
|
139
|
+
// tag and context options
|
|
140
|
+
/**
|
|
141
|
+
* The service name for your application.
|
|
142
|
+
*
|
|
143
|
+
* @category Data Collection
|
|
144
|
+
*/
|
|
145
|
+
service?: string | undefined | null
|
|
146
|
+
/**
|
|
147
|
+
* The application’s environment, for example: prod, pre-prod, and staging.
|
|
148
|
+
*
|
|
149
|
+
* @category Data Collection
|
|
150
|
+
*/
|
|
151
|
+
env?: string | undefined | null
|
|
152
|
+
/**
|
|
153
|
+
* The application’s version, for example: 1.2.3, 6c44da20, and 2020.02.13.
|
|
154
|
+
*
|
|
155
|
+
* @category Data Collection
|
|
156
|
+
*/
|
|
157
|
+
version?: string | undefined | null
|
|
158
|
+
|
|
159
|
+
// cookie options
|
|
160
|
+
/**
|
|
161
|
+
* Use a partitioned secure cross-site session cookie. This allows the RUM Browser SDK to run when the site is loaded from another one (iframe). Implies `useSecureSessionCookie`.
|
|
162
|
+
*
|
|
163
|
+
* Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
|
|
164
|
+
* @category Session Persistence
|
|
165
|
+
* @defaultValue false
|
|
166
|
+
*/
|
|
167
|
+
usePartitionedCrossSiteSessionCookie?: boolean | undefined
|
|
168
|
+
/**
|
|
169
|
+
* Use a secure session cookie. This disables RUM events sent on insecure (non-HTTPS) connections.
|
|
170
|
+
*
|
|
171
|
+
* Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
|
|
172
|
+
* @category Session Persistence
|
|
173
|
+
* @defaultValue false
|
|
174
|
+
*/
|
|
175
|
+
useSecureSessionCookie?: boolean | undefined
|
|
176
|
+
/**
|
|
177
|
+
* Preserve the session across subdomains for the same site.
|
|
178
|
+
*
|
|
179
|
+
* Important: If you are using the RUM and Logs Browser SDKs, this option must be configured with identical values
|
|
180
|
+
* @category Session Persistence
|
|
181
|
+
* @defaultValue false
|
|
182
|
+
*/
|
|
183
|
+
trackSessionAcrossSubdomains?: boolean | undefined
|
|
184
|
+
/**
|
|
185
|
+
* Track anonymous user for the same site and extend cookie expiration date
|
|
186
|
+
* @category Data Collection
|
|
187
|
+
* @defaultValue true
|
|
188
|
+
*/
|
|
189
|
+
trackAnonymousUser?: boolean | undefined
|
|
190
|
+
/**
|
|
191
|
+
* Encode cookie options in the cookie value. This can be used as a mitigation for microssession issues.
|
|
192
|
+
* ⚠️ This is a beta feature and may be changed or removed in the future.
|
|
193
|
+
*
|
|
194
|
+
* @category Beta
|
|
195
|
+
* @defaultValue false
|
|
196
|
+
*/
|
|
197
|
+
betaEncodeCookieOptions?: boolean | undefined
|
|
198
|
+
// internal options
|
|
199
|
+
/**
|
|
200
|
+
* [Internal option] Enable experimental features
|
|
201
|
+
* @internal
|
|
202
|
+
*/
|
|
203
|
+
enableExperimentalFeatures?: string[] | undefined
|
|
204
|
+
/**
|
|
205
|
+
* [Internal option] Configure the dual shipping to another datacenter
|
|
206
|
+
* @internal
|
|
207
|
+
*/
|
|
208
|
+
replica?: ReplicaUserConfiguration | undefined
|
|
209
|
+
/**
|
|
210
|
+
* [Internal option] Set the datacenter from where the data is dual shipped
|
|
211
|
+
* @internal
|
|
212
|
+
*/
|
|
213
|
+
datacenter?: string
|
|
214
|
+
/**
|
|
215
|
+
* [Internal option] Kubsesense internal analytics subdomain
|
|
216
|
+
* @internal
|
|
217
|
+
*/
|
|
218
|
+
// TODO next major: remove this option and replace usages by proxyFn
|
|
219
|
+
internalAnalyticsSubdomain?: string
|
|
220
|
+
/**
|
|
221
|
+
* [Internal option] The percentage of telemetry configuration sent. A value between 0 and 100.
|
|
222
|
+
* @internal
|
|
223
|
+
* @defaultValue 5
|
|
224
|
+
*/
|
|
225
|
+
telemetryConfigurationSampleRate?: number
|
|
226
|
+
/**
|
|
227
|
+
* [Internal option] The percentage of telemetry usage sent. A value between 0 and 100.
|
|
228
|
+
* @internal
|
|
229
|
+
* @defaultValue 5
|
|
230
|
+
*/
|
|
231
|
+
telemetryUsageSampleRate?: number
|
|
232
|
+
|
|
233
|
+
/**
|
|
234
|
+
* [Internal option] Additional configuration for the SDK.
|
|
235
|
+
*
|
|
236
|
+
* @internal
|
|
237
|
+
*/
|
|
238
|
+
source?: 'browser' | 'flutter' | 'unity' | undefined
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* [Internal option] Additional configuration for the SDK.
|
|
242
|
+
*
|
|
243
|
+
* @internal
|
|
244
|
+
*/
|
|
245
|
+
sdkVersion?: string | undefined
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* [Internal option] Additional configuration for the SDK.
|
|
249
|
+
*
|
|
250
|
+
* @internal
|
|
251
|
+
*/
|
|
252
|
+
variant?: string | undefined
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
// This type is only used to build the core configuration. Logs and RUM SDKs are using a proper type
|
|
256
|
+
// for this option.
|
|
257
|
+
type GenericBeforeSendCallback = (event: any, context?: any) => unknown
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* path: /api/vX/product
|
|
261
|
+
* parameters: xxx=yyy&zzz=aaa
|
|
262
|
+
*/
|
|
263
|
+
export type ProxyFn = (options: { path: string; parameters: string }) => string
|
|
264
|
+
|
|
265
|
+
export interface ReplicaUserConfiguration {
|
|
266
|
+
applicationId?: string
|
|
267
|
+
clientToken: string
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
export interface Configuration extends TransportConfiguration {
|
|
271
|
+
// Built from init configuration
|
|
272
|
+
beforeSend: GenericBeforeSendCallback | undefined
|
|
273
|
+
sessionStoreStrategyType: SessionStoreStrategyType | undefined
|
|
274
|
+
sessionSampleRate: number
|
|
275
|
+
telemetrySampleRate: number
|
|
276
|
+
telemetryConfigurationSampleRate: number
|
|
277
|
+
telemetryUsageSampleRate: number
|
|
278
|
+
service: string | undefined
|
|
279
|
+
version?: string | undefined
|
|
280
|
+
env?: string | undefined
|
|
281
|
+
silentMultipleInit: boolean
|
|
282
|
+
allowUntrustedEvents: boolean
|
|
283
|
+
trackingConsent: TrackingConsent
|
|
284
|
+
storeContextsAcrossPages: boolean
|
|
285
|
+
trackAnonymousUser?: boolean
|
|
286
|
+
betaEncodeCookieOptions: boolean
|
|
287
|
+
|
|
288
|
+
// internal
|
|
289
|
+
sdkVersion: string | undefined
|
|
290
|
+
source: 'browser' | 'flutter' | 'unity'
|
|
291
|
+
variant: string | undefined
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
function isString(tag: unknown, tagName: string): tag is string | undefined | null {
|
|
295
|
+
if (tag !== undefined && tag !== null && typeof tag !== 'string') {
|
|
296
|
+
display.error(`${tagName} must be defined as a string`)
|
|
297
|
+
return false
|
|
298
|
+
}
|
|
299
|
+
return true
|
|
300
|
+
}
|
|
301
|
+
|
|
302
|
+
function isKubsesenseSite(site: unknown) {
|
|
303
|
+
if (site && typeof site === 'string' && !/(kubesense|tyke)/.test(site)) {
|
|
304
|
+
display.error(`Site should be a valid Kubsesense site. ${MORE_DETAILS} ${DOCS_ORIGIN}/getting_started/site/.`)
|
|
305
|
+
return false
|
|
306
|
+
}
|
|
307
|
+
return true
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
export function isSampleRate(sampleRate: unknown, name: string) {
|
|
311
|
+
if (sampleRate !== undefined && !isPercentage(sampleRate)) {
|
|
312
|
+
display.error(`${name} Sample Rate should be a number between 0 and 100`)
|
|
313
|
+
return false
|
|
314
|
+
}
|
|
315
|
+
return true
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
export function validateAndBuildConfiguration(
|
|
319
|
+
initConfiguration: InitConfiguration,
|
|
320
|
+
errorStack?: string
|
|
321
|
+
): Configuration | undefined {
|
|
322
|
+
if (!initConfiguration || !initConfiguration.clientToken) {
|
|
323
|
+
display.error('Client Token is not configured, we will not send any data.')
|
|
324
|
+
return
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
if (
|
|
328
|
+
initConfiguration.allowedTrackingOrigins !== undefined &&
|
|
329
|
+
!Array.isArray(initConfiguration.allowedTrackingOrigins)
|
|
330
|
+
) {
|
|
331
|
+
display.error('Allowed Tracking Origins must be an array')
|
|
332
|
+
return
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
if (
|
|
336
|
+
// !isKubsesenseSite(initConfiguration.kubesenseRumEndpoint) ||
|
|
337
|
+
!isSampleRate(initConfiguration.sessionSampleRate, 'Session') ||
|
|
338
|
+
!isSampleRate(initConfiguration.telemetrySampleRate, 'Telemetry') ||
|
|
339
|
+
!isSampleRate(initConfiguration.telemetryConfigurationSampleRate, 'Telemetry Configuration') ||
|
|
340
|
+
!isSampleRate(initConfiguration.telemetryUsageSampleRate, 'Telemetry Usage') ||
|
|
341
|
+
!isString(initConfiguration.version, 'Version') ||
|
|
342
|
+
!isString(initConfiguration.env, 'Env') ||
|
|
343
|
+
!isString(initConfiguration.service, 'Service') ||
|
|
344
|
+
!isAllowedTrackingOrigins(initConfiguration, errorStack ?? '')
|
|
345
|
+
) {
|
|
346
|
+
return
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
if (
|
|
350
|
+
initConfiguration.trackingConsent !== undefined &&
|
|
351
|
+
!objectHasValue(TrackingConsent, initConfiguration.trackingConsent)
|
|
352
|
+
) {
|
|
353
|
+
display.error('Tracking Consent should be either "granted" or "not-granted"')
|
|
354
|
+
return
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
return {
|
|
358
|
+
beforeSend:
|
|
359
|
+
initConfiguration.beforeSend && catchUserErrors(initConfiguration.beforeSend, 'beforeSend threw an error:'),
|
|
360
|
+
sessionStoreStrategyType: isWorkerEnvironment ? undefined : selectSessionStoreStrategyType(initConfiguration),
|
|
361
|
+
sessionSampleRate: initConfiguration.sessionSampleRate ?? 100,
|
|
362
|
+
telemetrySampleRate: initConfiguration.telemetrySampleRate ?? 20,
|
|
363
|
+
telemetryConfigurationSampleRate: initConfiguration.telemetryConfigurationSampleRate ?? 5,
|
|
364
|
+
telemetryUsageSampleRate: initConfiguration.telemetryUsageSampleRate ?? 5,
|
|
365
|
+
service: initConfiguration.service ?? undefined,
|
|
366
|
+
env: initConfiguration.env ?? undefined,
|
|
367
|
+
version: initConfiguration.version ?? undefined,
|
|
368
|
+
datacenter: initConfiguration.datacenter ?? undefined,
|
|
369
|
+
silentMultipleInit: !!initConfiguration.silentMultipleInit,
|
|
370
|
+
allowUntrustedEvents: !!initConfiguration.allowUntrustedEvents,
|
|
371
|
+
trackingConsent: initConfiguration.trackingConsent ?? TrackingConsent.GRANTED,
|
|
372
|
+
trackAnonymousUser: initConfiguration.trackAnonymousUser ?? true,
|
|
373
|
+
storeContextsAcrossPages: !!initConfiguration.storeContextsAcrossPages,
|
|
374
|
+
betaEncodeCookieOptions: !!initConfiguration.betaEncodeCookieOptions,
|
|
375
|
+
/**
|
|
376
|
+
* The source of the SDK, used for support plugins purposes.
|
|
377
|
+
*/
|
|
378
|
+
variant: initConfiguration.variant,
|
|
379
|
+
sdkVersion: initConfiguration.sdkVersion,
|
|
380
|
+
|
|
381
|
+
...computeTransportConfiguration(initConfiguration),
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
export function serializeConfiguration(initConfiguration: InitConfiguration) {
|
|
386
|
+
return {
|
|
387
|
+
session_sample_rate: initConfiguration.sessionSampleRate,
|
|
388
|
+
telemetry_sample_rate: initConfiguration.telemetrySampleRate,
|
|
389
|
+
telemetry_configuration_sample_rate: initConfiguration.telemetryConfigurationSampleRate,
|
|
390
|
+
telemetry_usage_sample_rate: initConfiguration.telemetryUsageSampleRate,
|
|
391
|
+
use_before_send: !!initConfiguration.beforeSend,
|
|
392
|
+
use_partitioned_cross_site_session_cookie: initConfiguration.usePartitionedCrossSiteSessionCookie,
|
|
393
|
+
use_secure_session_cookie: initConfiguration.useSecureSessionCookie,
|
|
394
|
+
use_proxy: !!initConfiguration.proxy,
|
|
395
|
+
silent_multiple_init: initConfiguration.silentMultipleInit,
|
|
396
|
+
track_session_across_subdomains: initConfiguration.trackSessionAcrossSubdomains,
|
|
397
|
+
track_anonymous_user: initConfiguration.trackAnonymousUser,
|
|
398
|
+
session_persistence: initConfiguration.sessionPersistence,
|
|
399
|
+
allow_fallback_to_local_storage: !!initConfiguration.allowFallbackToLocalStorage,
|
|
400
|
+
store_contexts_across_pages: !!initConfiguration.storeContextsAcrossPages,
|
|
401
|
+
allow_untrusted_events: !!initConfiguration.allowUntrustedEvents,
|
|
402
|
+
tracking_consent: initConfiguration.trackingConsent,
|
|
403
|
+
use_allowed_tracking_origins: Array.isArray(initConfiguration.allowedTrackingOrigins),
|
|
404
|
+
beta_encode_cookie_options: initConfiguration.betaEncodeCookieOptions,
|
|
405
|
+
source: initConfiguration.source,
|
|
406
|
+
sdk_version: initConfiguration.sdkVersion,
|
|
407
|
+
variant: initConfiguration.variant,
|
|
408
|
+
} satisfies RawTelemetryConfiguration
|
|
409
|
+
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import type { Payload } from '../../transport'
|
|
2
|
+
import { timeStampNow } from '../../tools/utils/timeUtils'
|
|
3
|
+
import { normalizeUrl } from '../../tools/utils/urlPolyfill'
|
|
4
|
+
import { generateUUID } from '../../tools/utils/stringUtils'
|
|
5
|
+
import type { InitConfiguration } from './configuration'
|
|
6
|
+
import { INTAKE_SITE_STAGING, INTAKE_SITE_PROD } from '../intakeSites'
|
|
7
|
+
|
|
8
|
+
// replaced at build time
|
|
9
|
+
declare const __BUILD_ENV__SDK_VERSION__: string
|
|
10
|
+
|
|
11
|
+
export type TrackType = 'logs' | 'rum' | 'replay' | 'profile' | 'exposures' | 'flagevaluation'
|
|
12
|
+
export type ApiType =
|
|
13
|
+
| 'fetch-keepalive'
|
|
14
|
+
| 'fetch'
|
|
15
|
+
| 'beacon'
|
|
16
|
+
// 'manual' reflects that the request have been sent manually, outside of the SDK (ex: via curl or
|
|
17
|
+
// a Node.js script).
|
|
18
|
+
| 'manual'
|
|
19
|
+
|
|
20
|
+
export type EndpointBuilder = ReturnType<typeof createEndpointBuilder>
|
|
21
|
+
|
|
22
|
+
export function createEndpointBuilder(
|
|
23
|
+
initConfiguration: InitConfiguration,
|
|
24
|
+
trackType: TrackType,
|
|
25
|
+
extraParameters?: string[]
|
|
26
|
+
) {
|
|
27
|
+
const buildUrlWithParameters = createEndpointUrlWithParametersBuilder(initConfiguration, trackType)
|
|
28
|
+
|
|
29
|
+
return {
|
|
30
|
+
build(api: ApiType, payload: Payload) {
|
|
31
|
+
const parameters = buildEndpointParameters(initConfiguration, trackType, api, payload, extraParameters)
|
|
32
|
+
return buildUrlWithParameters(parameters)
|
|
33
|
+
},
|
|
34
|
+
trackType,
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Create a function used to build a full endpoint url from provided parameters. The goal of this
|
|
40
|
+
* function is to pre-compute some parts of the URL to avoid re-computing everything on every
|
|
41
|
+
* request, as only parameters are changing.
|
|
42
|
+
*/
|
|
43
|
+
function createEndpointUrlWithParametersBuilder(
|
|
44
|
+
initConfiguration: InitConfiguration,
|
|
45
|
+
trackType: TrackType
|
|
46
|
+
): (parameters: string) => string {
|
|
47
|
+
const path = `/rum/api/v1/${trackType}`
|
|
48
|
+
const proxy = initConfiguration.proxy
|
|
49
|
+
if (typeof proxy === 'string') {
|
|
50
|
+
const normalizedProxyUrl = normalizeUrl(proxy)
|
|
51
|
+
return (parameters) => `${normalizedProxyUrl}?kubesense-forward=${encodeURIComponent(`${path}?${parameters}`)}`
|
|
52
|
+
}
|
|
53
|
+
if (typeof proxy === 'function') {
|
|
54
|
+
return (parameters) => proxy({ path, parameters })
|
|
55
|
+
}
|
|
56
|
+
const host = initConfiguration.kubesenseRumEndpoint
|
|
57
|
+
return (parameters) => `https://${host}${path}?${parameters}`
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
export function buildEndpointHost(
|
|
61
|
+
trackType: TrackType,
|
|
62
|
+
initConfiguration: InitConfiguration & { usePciIntake?: boolean }
|
|
63
|
+
) {
|
|
64
|
+
const { kubesenseRumEndpoint, internalAnalyticsSubdomain } = initConfiguration
|
|
65
|
+
|
|
66
|
+
return kubesenseRumEndpoint
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Build parameters to be used for an intake request. Parameters should be re-built for each
|
|
71
|
+
* request, as they change randomly.
|
|
72
|
+
*/
|
|
73
|
+
function buildEndpointParameters(
|
|
74
|
+
{ clientToken, internalAnalyticsSubdomain, source = 'browser'}: InitConfiguration,
|
|
75
|
+
trackType: TrackType,
|
|
76
|
+
api: ApiType,
|
|
77
|
+
{ retry, encoding }: Payload,
|
|
78
|
+
extraParameters: string[] = []
|
|
79
|
+
) {
|
|
80
|
+
const parameters = [
|
|
81
|
+
`ksource=${source}`,
|
|
82
|
+
`kubesense-api-key=${clientToken}`,
|
|
83
|
+
`kubesense-evp-origin-version=${encodeURIComponent(__BUILD_ENV__SDK_VERSION__)}`,
|
|
84
|
+
'kubesense-evp-origin=browser',
|
|
85
|
+
`kubesense-request-id=${generateUUID()}`,
|
|
86
|
+
].concat(extraParameters)
|
|
87
|
+
|
|
88
|
+
if (encoding) {
|
|
89
|
+
parameters.push(`kubesense-evp-encoding=${encoding}`)
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (trackType === 'rum') {
|
|
93
|
+
parameters.push(`batch_time=${timeStampNow()}`, `_kubesense.api=${api}`)
|
|
94
|
+
|
|
95
|
+
if (retry) {
|
|
96
|
+
parameters.push(`_kubesense.retry_count=${retry.count}`, `_kubesense.retry_after=${retry.lastFailureStatus}`)
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (internalAnalyticsSubdomain) {
|
|
101
|
+
parameters.reverse()
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return parameters.join('&')
|
|
105
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export type { Configuration, InitConfiguration, ProxyFn } from './configuration'
|
|
2
|
+
export {
|
|
3
|
+
DefaultPrivacyLevel,
|
|
4
|
+
TraceContextInjection,
|
|
5
|
+
isSampleRate,
|
|
6
|
+
validateAndBuildConfiguration,
|
|
7
|
+
serializeConfiguration,
|
|
8
|
+
} from './configuration'
|
|
9
|
+
export type { EndpointBuilder, TrackType } from './endpointBuilder'
|
|
10
|
+
export { createEndpointBuilder, buildEndpointHost } from './endpointBuilder'
|
|
11
|
+
export * from '../intakeSites'
|
|
12
|
+
export { computeTransportConfiguration, isIntakeUrl } from './transportConfiguration'
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type { InitConfiguration } from './configuration'
|
|
2
|
+
import type { EndpointBuilder } from './endpointBuilder'
|
|
3
|
+
import { createEndpointBuilder } from './endpointBuilder'
|
|
4
|
+
// import { buildTags } from './tags'
|
|
5
|
+
import type { Site } from '../intakeSites'
|
|
6
|
+
import { INTAKE_SITE_PROD, INTAKE_URL_PARAMETERS } from '../intakeSites'
|
|
7
|
+
|
|
8
|
+
export interface TransportConfiguration {
|
|
9
|
+
logsEndpointBuilder: EndpointBuilder
|
|
10
|
+
rumEndpointBuilder: EndpointBuilder
|
|
11
|
+
sessionReplayEndpointBuilder: EndpointBuilder
|
|
12
|
+
profilingEndpointBuilder: EndpointBuilder
|
|
13
|
+
exposuresEndpointBuilder: EndpointBuilder
|
|
14
|
+
flagEvaluationEndpointBuilder: EndpointBuilder
|
|
15
|
+
datacenter?: string | undefined
|
|
16
|
+
replica?: ReplicaConfiguration
|
|
17
|
+
kubesenseRumEndpoint: Site
|
|
18
|
+
source: 'browser' | 'flutter' | 'unity'
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface ReplicaConfiguration {
|
|
22
|
+
logsEndpointBuilder: EndpointBuilder
|
|
23
|
+
rumEndpointBuilder: EndpointBuilder
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
export function computeTransportConfiguration(initConfiguration: InitConfiguration): TransportConfiguration {
|
|
27
|
+
const site = initConfiguration.kubesenseRumEndpoint || INTAKE_SITE_PROD
|
|
28
|
+
const source = validateSource(initConfiguration.source)
|
|
29
|
+
|
|
30
|
+
// const tags = buildTags(initConfiguration)
|
|
31
|
+
|
|
32
|
+
// const endpointBuilders = computeEndpointBuilders(initConfiguration, tags)
|
|
33
|
+
// const replicaConfiguration = computeReplicaConfiguration(initConfiguration, tags)
|
|
34
|
+
|
|
35
|
+
const endpointBuilders = computeEndpointBuilders({ ...initConfiguration, kubesenseRumEndpoint: site, source })
|
|
36
|
+
const replicaConfiguration = computeReplicaConfiguration({ ...initConfiguration, kubesenseRumEndpoint: site, source })
|
|
37
|
+
|
|
38
|
+
return {
|
|
39
|
+
replica: replicaConfiguration,
|
|
40
|
+
kubesenseRumEndpoint: site,
|
|
41
|
+
source,
|
|
42
|
+
...endpointBuilders,
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
function validateSource(source: string | undefined) {
|
|
47
|
+
if (source === 'flutter' || source === 'unity') {
|
|
48
|
+
return source
|
|
49
|
+
}
|
|
50
|
+
return 'browser'
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
function computeEndpointBuilders(initConfiguration: InitConfiguration) {
|
|
54
|
+
return {
|
|
55
|
+
logsEndpointBuilder: createEndpointBuilder(initConfiguration, 'logs'),
|
|
56
|
+
rumEndpointBuilder: createEndpointBuilder(initConfiguration, 'rum'),
|
|
57
|
+
profilingEndpointBuilder: createEndpointBuilder(initConfiguration, 'profile'),
|
|
58
|
+
sessionReplayEndpointBuilder: createEndpointBuilder(initConfiguration, 'replay'),
|
|
59
|
+
exposuresEndpointBuilder: createEndpointBuilder(initConfiguration, 'exposures'),
|
|
60
|
+
flagEvaluationEndpointBuilder: createEndpointBuilder(initConfiguration, 'flagevaluation'),
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function computeReplicaConfiguration(initConfiguration: InitConfiguration): ReplicaConfiguration | undefined {
|
|
65
|
+
if (!initConfiguration.replica) {
|
|
66
|
+
return
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
const replicaConfiguration: InitConfiguration = {
|
|
70
|
+
...initConfiguration,
|
|
71
|
+
kubesenseRumEndpoint: INTAKE_SITE_PROD,
|
|
72
|
+
clientToken: initConfiguration.replica.clientToken,
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
return {
|
|
76
|
+
logsEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'logs'),
|
|
77
|
+
rumEndpointBuilder: createEndpointBuilder(replicaConfiguration, 'rum', [
|
|
78
|
+
`application.id=${initConfiguration.replica.applicationId}`,
|
|
79
|
+
]),
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function isIntakeUrl(url: string): boolean {
|
|
84
|
+
// check if tags is present in the query string
|
|
85
|
+
return INTAKE_URL_PARAMETERS.every((param) => url.includes(param))
|
|
86
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { globalObject } from '../../tools/globalObject'
|
|
2
|
+
|
|
3
|
+
export type NetworkInterface = 'bluetooth' | 'cellular' | 'ethernet' | 'none' | 'wifi' | 'wimax' | 'other' | 'unknown'
|
|
4
|
+
export type EffectiveType = 'slow-2g' | '2g' | '3g' | '4g'
|
|
5
|
+
|
|
6
|
+
interface BrowserNavigator extends Navigator {
|
|
7
|
+
connection?: NetworkInformation
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface NetworkInformation {
|
|
11
|
+
type?: NetworkInterface
|
|
12
|
+
effectiveType?: EffectiveType
|
|
13
|
+
saveData: boolean
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export interface Connectivity {
|
|
17
|
+
status: 'connected' | 'not_connected'
|
|
18
|
+
interfaces?: NetworkInterface[]
|
|
19
|
+
effective_type?: EffectiveType
|
|
20
|
+
[key: string]: unknown
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function getConnectivity(): Connectivity {
|
|
24
|
+
const navigator = globalObject.navigator as BrowserNavigator
|
|
25
|
+
|
|
26
|
+
return {
|
|
27
|
+
status: navigator.onLine ? 'connected' : 'not_connected',
|
|
28
|
+
interfaces: navigator.connection && navigator.connection.type ? [navigator.connection.type] : ['unknown'],
|
|
29
|
+
effective_type: navigator.connection?.effectiveType,
|
|
30
|
+
}
|
|
31
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './connectivity'
|