@openobserve/browser-core 0.2.11 → 0.2.12-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +6 -5
- package/src/boot/displayAlreadyInitializedError.ts +8 -0
- package/src/boot/init.ts +29 -15
- package/src/browser/addEventListener.ts +44 -35
- package/src/browser/{types.ts → browser.types.ts} +42 -0
- package/src/browser/cookie.ts +69 -15
- package/src/browser/fetchObservable.ts +97 -42
- package/src/browser/{pageExitObservable.ts → pageMayExitObservable.ts} +11 -24
- package/src/browser/runOnReadyState.ts +14 -4
- package/src/browser/xhrObservable.ts +45 -38
- package/src/domain/allowedTrackingOrigins.ts +30 -0
- package/src/domain/bufferedData.ts +32 -0
- package/src/domain/configuration/configuration.ts +366 -95
- package/src/domain/configuration/endpointBuilder.ts +48 -64
- package/src/domain/configuration/index.ts +6 -4
- package/src/domain/configuration/transportConfiguration.ts +42 -35
- package/src/domain/connectivity/connectivity.ts +31 -0
- package/src/domain/connectivity/index.ts +1 -0
- package/src/domain/console/consoleObservable.ts +59 -27
- package/src/domain/context/contextConstants.ts +27 -0
- package/src/domain/context/contextManager.ts +85 -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 +64 -0
- package/src/domain/deflate/{types.ts → deflate.types.ts} +18 -2
- package/src/domain/deflate/index.ts +1 -1
- package/src/domain/error/error.ts +28 -84
- package/src/domain/error/error.types.ts +21 -4
- package/src/domain/error/trackRuntimeError.ts +37 -8
- package/src/domain/eventRateLimiter/createEventRateLimiter.ts +5 -2
- package/src/domain/extension/extensionUtils.ts +28 -0
- package/src/domain/intakeSites.ts +18 -0
- package/src/domain/report/browser.types.ts +12 -0
- package/src/domain/report/reportObservable.ts +37 -30
- package/src/domain/resourceUtils.ts +20 -16
- package/src/domain/session/README.md +193 -0
- package/src/domain/session/oldCookiesMigration.ts +7 -7
- package/src/domain/session/sessionConstants.ts +16 -1
- package/src/domain/session/sessionManager.ts +179 -15
- package/src/domain/session/sessionState.ts +49 -17
- package/src/domain/session/sessionStateValidation.ts +9 -0
- package/src/domain/session/sessionStore.ts +118 -55
- package/src/domain/session/sessionStoreOperations.ts +51 -32
- package/src/domain/session/storeStrategies/sessionInCookie.ts +113 -23
- package/src/domain/session/storeStrategies/sessionInLocalStorage.ts +11 -8
- package/src/domain/session/storeStrategies/sessionStoreStrategy.ts +6 -2
- package/src/domain/synthetics/syntheticsWorkerValues.ts +15 -4
- package/src/domain/tags.ts +76 -0
- package/src/domain/telemetry/index.ts +12 -4
- package/src/domain/telemetry/rawTelemetryEvent.types.ts +11 -3
- package/src/domain/telemetry/telemetry.ts +242 -98
- package/src/domain/telemetry/telemetryEvent.types.ts +530 -5
- package/src/domain/trackingConsent.ts +34 -0
- package/src/index.ts +92 -55
- package/src/tools/abstractHooks.ts +72 -0
- package/src/tools/abstractLifeCycle.ts +1 -0
- package/src/tools/boundedBuffer.ts +36 -8
- package/src/tools/display.ts +18 -13
- package/src/tools/encoder.ts +103 -0
- package/src/tools/experimentalFeatures.ts +18 -9
- package/src/tools/getZoneJsOriginalValue.ts +1 -1
- package/src/tools/{getGlobalObject.ts → globalObject.ts} +20 -0
- package/src/tools/instrumentMethod.ts +127 -66
- package/src/tools/matchOption.ts +1 -2
- package/src/tools/mergeInto.ts +16 -16
- package/src/tools/monitor.ts +14 -10
- package/src/tools/observable.ts +79 -15
- package/src/tools/queueMicrotask.ts +13 -0
- package/src/tools/readBytesFromStream.ts +24 -64
- package/src/tools/requestIdleCallback.ts +40 -0
- package/src/tools/sendToExtension.ts +3 -1
- package/src/tools/serialisation/context.ts +4 -1
- package/src/tools/serialisation/sanitize.ts +32 -14
- package/src/tools/stackTrace/computeStackTrace.ts +250 -0
- package/src/tools/stackTrace/handlingStack.ts +48 -0
- package/src/tools/taskQueue.ts +63 -0
- package/src/tools/timer.ts +1 -1
- package/src/tools/utils/arrayUtils.ts +11 -3
- package/src/tools/utils/browserDetection.ts +35 -3
- package/src/tools/utils/byteUtils.ts +13 -2
- package/src/tools/utils/functionUtils.ts +0 -2
- package/src/tools/utils/numberUtils.ts +2 -1
- package/src/tools/utils/objectUtils.ts +1 -3
- package/src/tools/utils/polyfills.ts +6 -110
- package/src/tools/utils/responseUtils.ts +1 -1
- package/src/tools/utils/stringUtils.ts +62 -4
- package/src/tools/utils/timeUtils.ts +18 -13
- package/src/tools/utils/timezone.ts +9 -0
- package/src/tools/utils/urlPolyfill.ts +29 -59
- package/src/tools/valueHistory.ts +66 -35
- package/src/transport/batch.ts +113 -61
- package/src/transport/eventBridge.ts +24 -5
- package/src/transport/flushController.ts +44 -23
- package/src/transport/httpRequest.ts +99 -71
- package/src/transport/index.ts +7 -4
- package/src/transport/sendWithRetryStrategy.ts +60 -41
- package/cjs/boot/init.d.ts +0 -5
- package/cjs/boot/init.js +0 -36
- package/cjs/boot/init.js.map +0 -1
- package/cjs/browser/addEventListener.d.ts +0 -76
- package/cjs/browser/addEventListener.js +0 -52
- package/cjs/browser/addEventListener.js.map +0 -1
- package/cjs/browser/cookie.d.ts +0 -10
- package/cjs/browser/cookie.js +0 -69
- package/cjs/browser/cookie.js.map +0 -1
- package/cjs/browser/fetchObservable.d.ts +0 -23
- package/cjs/browser/fetchObservable.js +0 -74
- package/cjs/browser/fetchObservable.js.map +0 -1
- package/cjs/browser/pageExitObservable.d.ts +0 -14
- package/cjs/browser/pageExitObservable.js +0 -58
- package/cjs/browser/pageExitObservable.js.map +0 -1
- package/cjs/browser/runOnReadyState.d.ts +0 -2
- package/cjs/browser/runOnReadyState.js +0 -15
- package/cjs/browser/runOnReadyState.js.map +0 -1
- package/cjs/browser/types.d.ts +0 -19
- package/cjs/browser/types.js +0 -6
- package/cjs/browser/types.js.map +0 -1
- package/cjs/browser/xhrObservable.d.ts +0 -22
- package/cjs/browser/xhrObservable.js +0 -93
- package/cjs/browser/xhrObservable.js.map +0 -1
- package/cjs/domain/configuration/configuration.d.ts +0 -67
- package/cjs/domain/configuration/configuration.js +0 -95
- package/cjs/domain/configuration/configuration.js.map +0 -1
- package/cjs/domain/configuration/endpointBuilder.d.ts +0 -14
- package/cjs/domain/configuration/endpointBuilder.js +0 -94
- package/cjs/domain/configuration/endpointBuilder.js.map +0 -1
- package/cjs/domain/configuration/index.d.ts +0 -3
- package/cjs/domain/configuration/index.js +0 -25
- package/cjs/domain/configuration/index.js.map +0 -1
- package/cjs/domain/configuration/intakeSites.d.ts +0 -5
- package/cjs/domain/configuration/intakeSites.js +0 -9
- package/cjs/domain/configuration/intakeSites.js.map +0 -1
- package/cjs/domain/configuration/tags.d.ts +0 -4
- package/cjs/domain/configuration/tags.js +0 -39
- package/cjs/domain/configuration/tags.js.map +0 -1
- package/cjs/domain/configuration/transportConfiguration.d.ts +0 -16
- package/cjs/domain/configuration/transportConfiguration.js +0 -42
- package/cjs/domain/configuration/transportConfiguration.js.map +0 -1
- package/cjs/domain/console/consoleObservable.d.ts +0 -11
- package/cjs/domain/console/consoleObservable.js +0 -75
- package/cjs/domain/console/consoleObservable.js.map +0 -1
- package/cjs/domain/deflate/index.d.ts +0 -1
- package/cjs/domain/deflate/index.js +0 -18
- package/cjs/domain/deflate/index.js.map +0 -1
- package/cjs/domain/deflate/types.d.ts +0 -26
- package/cjs/domain/deflate/types.js +0 -3
- package/cjs/domain/deflate/types.js.map +0 -1
- package/cjs/domain/error/error.d.ts +0 -28
- package/cjs/domain/error/error.js +0 -131
- package/cjs/domain/error/error.js.map +0 -1
- package/cjs/domain/error/error.types.d.ts +0 -40
- package/cjs/domain/error/error.types.js +0 -13
- package/cjs/domain/error/error.types.js.map +0 -1
- package/cjs/domain/error/trackRuntimeError.d.ts +0 -5
- package/cjs/domain/error/trackRuntimeError.js +0 -21
- package/cjs/domain/error/trackRuntimeError.js.map +0 -1
- package/cjs/domain/eventRateLimiter/createEventRateLimiter.d.ts +0 -5
- package/cjs/domain/eventRateLimiter/createEventRateLimiter.js +0 -40
- package/cjs/domain/eventRateLimiter/createEventRateLimiter.js.map +0 -1
- package/cjs/domain/report/browser.types.d.ts +0 -24
- package/cjs/domain/report/browser.types.js +0 -3
- package/cjs/domain/report/browser.types.js.map +0 -1
- package/cjs/domain/report/reportObservable.d.ts +0 -15
- package/cjs/domain/report/reportObservable.js +0 -94
- package/cjs/domain/report/reportObservable.js.map +0 -1
- package/cjs/domain/resourceUtils.d.ts +0 -16
- package/cjs/domain/resourceUtils.js +0 -3
- package/cjs/domain/resourceUtils.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/sessionConstants.d.ts +0 -2
- package/cjs/domain/session/sessionConstants.js +0 -7
- package/cjs/domain/session/sessionConstants.js.map +0 -1
- package/cjs/domain/session/sessionManager.d.ts +0 -20
- package/cjs/domain/session/sessionManager.js +0 -65
- package/cjs/domain/session/sessionManager.js.map +0 -1
- package/cjs/domain/session/sessionState.d.ts +0 -11
- package/cjs/domain/session/sessionState.js +0 -45
- package/cjs/domain/session/sessionState.js.map +0 -1
- package/cjs/domain/session/sessionStore.d.ts +0 -34
- package/cjs/domain/session/sessionStore.js +0 -144
- package/cjs/domain/session/sessionStore.js.map +0 -1
- package/cjs/domain/session/sessionStoreOperations.d.ts +0 -15
- package/cjs/domain/session/sessionStoreOperations.js +0 -104
- package/cjs/domain/session/sessionStoreOperations.js.map +0 -1
- package/cjs/domain/session/storeStrategies/sessionInCookie.d.ts +0 -6
- package/cjs/domain/session/storeStrategies/sessionInCookie.js +0 -48
- package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +0 -1
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +0 -3
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +0 -40
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js.map +0 -1
- package/cjs/domain/session/storeStrategies/sessionStoreStrategy.d.ts +0 -14
- package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js +0 -5
- package/cjs/domain/session/storeStrategies/sessionStoreStrategy.js.map +0 -1
- package/cjs/domain/synthetics/syntheticsWorkerValues.d.ts +0 -11
- package/cjs/domain/synthetics/syntheticsWorkerValues.js +0 -22
- package/cjs/domain/synthetics/syntheticsWorkerValues.js.map +0 -1
- package/cjs/domain/telemetry/index.d.ts +0 -3
- package/cjs/domain/telemetry/index.js +0 -28
- package/cjs/domain/telemetry/index.js.map +0 -1
- package/cjs/domain/telemetry/rawTelemetryEvent.types.d.ts +0 -11
- package/cjs/domain/telemetry/rawTelemetryEvent.types.js +0 -8
- package/cjs/domain/telemetry/rawTelemetryEvent.types.js.map +0 -1
- package/cjs/domain/telemetry/telemetry.d.ts +0 -112
- package/cjs/domain/telemetry/telemetry.js +0 -146
- package/cjs/domain/telemetry/telemetry.js.map +0 -1
- package/cjs/domain/telemetry/telemetryEvent.types.d.ts +0 -375
- package/cjs/domain/telemetry/telemetryEvent.types.js +0 -7
- package/cjs/domain/telemetry/telemetryEvent.types.js.map +0 -1
- package/cjs/domain/tracekit/computeStackTrace.d.ts +0 -5
- package/cjs/domain/tracekit/computeStackTrace.js +0 -118
- package/cjs/domain/tracekit/computeStackTrace.js.map +0 -1
- package/cjs/domain/tracekit/index.d.ts +0 -3
- package/cjs/domain/tracekit/index.js +0 -8
- package/cjs/domain/tracekit/index.js.map +0 -1
- package/cjs/domain/tracekit/tracekit.d.ts +0 -35
- package/cjs/domain/tracekit/tracekit.js +0 -95
- package/cjs/domain/tracekit/tracekit.js.map +0 -1
- package/cjs/domain/tracekit/types.d.ts +0 -44
- package/cjs/domain/tracekit/types.js +0 -3
- package/cjs/domain/tracekit/types.js.map +0 -1
- package/cjs/domain/user/index.d.ts +0 -2
- package/cjs/domain/user/index.js +0 -19
- package/cjs/domain/user/index.js.map +0 -1
- package/cjs/domain/user/user.d.ts +0 -12
- package/cjs/domain/user/user.js +0 -35
- package/cjs/domain/user/user.js.map +0 -1
- package/cjs/domain/user/user.types.d.ts +0 -6
- package/cjs/domain/user/user.types.js +0 -3
- package/cjs/domain/user/user.types.js.map +0 -1
- package/cjs/index.d.ts +0 -63
- package/cjs/index.js +0 -155
- package/cjs/index.js.map +0 -1
- package/cjs/tools/abstractLifeCycle.d.ts +0 -23
- package/cjs/tools/abstractLifeCycle.js +0 -29
- package/cjs/tools/abstractLifeCycle.js.map +0 -1
- package/cjs/tools/boundedBuffer.d.ts +0 -5
- package/cjs/tools/boundedBuffer.js +0 -22
- package/cjs/tools/boundedBuffer.js.map +0 -1
- package/cjs/tools/catchUserErrors.d.ts +0 -1
- package/cjs/tools/catchUserErrors.js +0 -20
- package/cjs/tools/catchUserErrors.js.map +0 -1
- package/cjs/tools/display.d.ts +0 -35
- package/cjs/tools/display.js +0 -45
- package/cjs/tools/display.js.map +0 -1
- package/cjs/tools/experimentalFeatures.d.ts +0 -24
- package/cjs/tools/experimentalFeatures.js +0 -47
- package/cjs/tools/experimentalFeatures.js.map +0 -1
- package/cjs/tools/getGlobalObject.d.ts +0 -4
- package/cjs/tools/getGlobalObject.js +0 -37
- package/cjs/tools/getGlobalObject.js.map +0 -1
- package/cjs/tools/getZoneJsOriginalValue.d.ts +0 -19
- package/cjs/tools/getZoneJsOriginalValue.js +0 -30
- package/cjs/tools/getZoneJsOriginalValue.js.map +0 -1
- package/cjs/tools/instrumentMethod.d.ts +0 -19
- package/cjs/tools/instrumentMethod.js +0 -83
- package/cjs/tools/instrumentMethod.js.map +0 -1
- package/cjs/tools/matchOption.d.ts +0 -8
- package/cjs/tools/matchOption.js +0 -38
- package/cjs/tools/matchOption.js.map +0 -1
- package/cjs/tools/mergeInto.d.ts +0 -25
- package/cjs/tools/mergeInto.js +0 -105
- package/cjs/tools/mergeInto.js.map +0 -1
- package/cjs/tools/monitor.d.ts +0 -9
- package/cjs/tools/monitor.js +0 -76
- package/cjs/tools/monitor.js.map +0 -1
- package/cjs/tools/observable.d.ts +0 -12
- package/cjs/tools/observable.js +0 -44
- package/cjs/tools/observable.js.map +0 -1
- package/cjs/tools/readBytesFromStream.d.ts +0 -11
- package/cjs/tools/readBytesFromStream.js +0 -64
- package/cjs/tools/readBytesFromStream.js.map +0 -1
- package/cjs/tools/sendToExtension.d.ts +0 -3
- package/cjs/tools/sendToExtension.js +0 -11
- package/cjs/tools/sendToExtension.js.map +0 -1
- package/cjs/tools/serialisation/context.d.ts +0 -6
- package/cjs/tools/serialisation/context.js +0 -3
- package/cjs/tools/serialisation/context.js.map +0 -1
- package/cjs/tools/serialisation/contextManager.d.ts +0 -21
- package/cjs/tools/serialisation/contextManager.js +0 -70
- package/cjs/tools/serialisation/contextManager.js.map +0 -1
- package/cjs/tools/serialisation/heavyCustomerDataWarning.d.ts +0 -8
- package/cjs/tools/serialisation/heavyCustomerDataWarning.js +0 -18
- package/cjs/tools/serialisation/heavyCustomerDataWarning.js.map +0 -1
- package/cjs/tools/serialisation/jsonStringify.d.ts +0 -14
- package/cjs/tools/serialisation/jsonStringify.js +0 -49
- package/cjs/tools/serialisation/jsonStringify.js.map +0 -1
- package/cjs/tools/serialisation/sanitize.d.ts +0 -18
- package/cjs/tools/serialisation/sanitize.js +0 -185
- package/cjs/tools/serialisation/sanitize.js.map +0 -1
- package/cjs/tools/timer.d.ts +0 -5
- package/cjs/tools/timer.js +0 -23
- package/cjs/tools/timer.js.map +0 -1
- package/cjs/tools/utils/arrayUtils.d.ts +0 -1
- package/cjs/tools/utils/arrayUtils.js +0 -11
- package/cjs/tools/utils/arrayUtils.js.map +0 -1
- package/cjs/tools/utils/browserDetection.d.ts +0 -2
- package/cjs/tools/utils/browserDetection.js +0 -12
- package/cjs/tools/utils/browserDetection.js.map +0 -1
- package/cjs/tools/utils/byteUtils.d.ts +0 -4
- package/cjs/tools/utils/byteUtils.js +0 -31
- package/cjs/tools/utils/byteUtils.js.map +0 -1
- package/cjs/tools/utils/functionUtils.d.ts +0 -9
- package/cjs/tools/utils/functionUtils.js +0 -48
- package/cjs/tools/utils/functionUtils.js.map +0 -1
- package/cjs/tools/utils/numberUtils.d.ts +0 -8
- package/cjs/tools/utils/numberUtils.js +0 -24
- package/cjs/tools/utils/numberUtils.js.map +0 -1
- package/cjs/tools/utils/objectUtils.d.ts +0 -10
- package/cjs/tools/utils/objectUtils.js +0 -26
- package/cjs/tools/utils/objectUtils.js.map +0 -1
- package/cjs/tools/utils/polyfills.d.ts +0 -24
- package/cjs/tools/utils/polyfills.js +0 -110
- package/cjs/tools/utils/polyfills.js.map +0 -1
- package/cjs/tools/utils/responseUtils.d.ts +0 -2
- package/cjs/tools/utils/responseUtils.js +0 -18
- package/cjs/tools/utils/responseUtils.js.map +0 -1
- package/cjs/tools/utils/stringUtils.d.ts +0 -7
- package/cjs/tools/utils/stringUtils.js +0 -32
- package/cjs/tools/utils/stringUtils.js.map +0 -1
- package/cjs/tools/utils/timeUtils.d.ts +0 -57
- package/cjs/tools/utils/timeUtils.js +0 -99
- 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 -17
- package/cjs/tools/utils/typeUtils.js.map +0 -1
- package/cjs/tools/utils/urlPolyfill.d.ts +0 -14
- package/cjs/tools/utils/urlPolyfill.js +0 -92
- package/cjs/tools/utils/urlPolyfill.js.map +0 -1
- package/cjs/tools/valueHistory.d.ts +0 -50
- package/cjs/tools/valueHistory.js +0 -106
- package/cjs/tools/valueHistory.js.map +0 -1
- package/cjs/transport/batch.d.ts +0 -19
- package/cjs/transport/batch.js +0 -79
- package/cjs/transport/batch.js.map +0 -1
- package/cjs/transport/eventBridge.d.ts +0 -12
- package/cjs/transport/eventBridge.js +0 -34
- package/cjs/transport/eventBridge.js.map +0 -1
- package/cjs/transport/flushController.d.ts +0 -48
- package/cjs/transport/flushController.js +0 -97
- package/cjs/transport/flushController.js.map +0 -1
- package/cjs/transport/httpRequest.d.ts +0 -37
- package/cjs/transport/httpRequest.js +0 -91
- package/cjs/transport/httpRequest.js.map +0 -1
- package/cjs/transport/index.d.ts +0 -4
- package/cjs/transport/index.js +0 -13
- package/cjs/transport/index.js.map +0 -1
- package/cjs/transport/sendWithRetryStrategy.d.ts +0 -39
- package/cjs/transport/sendWithRetryStrategy.js +0 -151
- package/cjs/transport/sendWithRetryStrategy.js.map +0 -1
- package/cjs/transport/startBatchWithReplica.d.ts +0 -15
- package/cjs/transport/startBatchWithReplica.js +0 -37
- package/cjs/transport/startBatchWithReplica.js.map +0 -1
- package/esm/boot/init.d.ts +0 -5
- package/esm/boot/init.js +0 -31
- package/esm/boot/init.js.map +0 -1
- package/esm/browser/addEventListener.d.ts +0 -76
- package/esm/browser/addEventListener.js +0 -47
- package/esm/browser/addEventListener.js.map +0 -1
- package/esm/browser/cookie.d.ts +0 -10
- package/esm/browser/cookie.js +0 -61
- package/esm/browser/cookie.js.map +0 -1
- package/esm/browser/fetchObservable.d.ts +0 -23
- package/esm/browser/fetchObservable.js +0 -70
- package/esm/browser/fetchObservable.js.map +0 -1
- package/esm/browser/pageExitObservable.d.ts +0 -14
- package/esm/browser/pageExitObservable.js +0 -53
- package/esm/browser/pageExitObservable.js.map +0 -1
- package/esm/browser/runOnReadyState.d.ts +0 -2
- package/esm/browser/runOnReadyState.js +0 -11
- package/esm/browser/runOnReadyState.js.map +0 -1
- package/esm/browser/types.d.ts +0 -19
- package/esm/browser/types.js +0 -5
- package/esm/browser/types.js.map +0 -1
- package/esm/browser/xhrObservable.d.ts +0 -22
- package/esm/browser/xhrObservable.js +0 -89
- package/esm/browser/xhrObservable.js.map +0 -1
- package/esm/domain/configuration/configuration.d.ts +0 -67
- package/esm/domain/configuration/configuration.js +0 -90
- package/esm/domain/configuration/configuration.js.map +0 -1
- package/esm/domain/configuration/endpointBuilder.d.ts +0 -14
- package/esm/domain/configuration/endpointBuilder.js +0 -90
- package/esm/domain/configuration/endpointBuilder.js.map +0 -1
- package/esm/domain/configuration/index.d.ts +0 -3
- package/esm/domain/configuration/index.js +0 -4
- package/esm/domain/configuration/index.js.map +0 -1
- package/esm/domain/configuration/intakeSites.d.ts +0 -5
- package/esm/domain/configuration/intakeSites.js +0 -6
- package/esm/domain/configuration/intakeSites.js.map +0 -1
- package/esm/domain/configuration/tags.d.ts +0 -4
- package/esm/domain/configuration/tags.js +0 -34
- package/esm/domain/configuration/tags.js.map +0 -1
- package/esm/domain/configuration/transportConfiguration.d.ts +0 -16
- package/esm/domain/configuration/transportConfiguration.js +0 -38
- package/esm/domain/configuration/transportConfiguration.js.map +0 -1
- package/esm/domain/console/consoleObservable.d.ts +0 -11
- package/esm/domain/console/consoleObservable.js +0 -70
- package/esm/domain/console/consoleObservable.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/deflate/types.d.ts +0 -26
- package/esm/domain/deflate/types.js +0 -2
- package/esm/domain/deflate/types.js.map +0 -1
- package/esm/domain/error/error.d.ts +0 -28
- package/esm/domain/error/error.js +0 -121
- package/esm/domain/error/error.js.map +0 -1
- package/esm/domain/error/error.types.d.ts +0 -40
- 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 -5
- package/esm/domain/error/trackRuntimeError.js +0 -17
- 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 -36
- package/esm/domain/eventRateLimiter/createEventRateLimiter.js.map +0 -1
- package/esm/domain/report/browser.types.d.ts +0 -24
- 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 -15
- package/esm/domain/report/reportObservable.js +0 -90
- package/esm/domain/report/reportObservable.js.map +0 -1
- package/esm/domain/resourceUtils.d.ts +0 -16
- package/esm/domain/resourceUtils.js +0 -2
- 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 -2
- package/esm/domain/session/sessionConstants.js +0 -4
- package/esm/domain/session/sessionConstants.js.map +0 -1
- package/esm/domain/session/sessionManager.d.ts +0 -20
- package/esm/domain/session/sessionManager.js +0 -60
- package/esm/domain/session/sessionManager.js.map +0 -1
- package/esm/domain/session/sessionState.d.ts +0 -11
- package/esm/domain/session/sessionState.js +0 -38
- package/esm/domain/session/sessionState.js.map +0 -1
- package/esm/domain/session/sessionStore.d.ts +0 -34
- package/esm/domain/session/sessionStore.js +0 -139
- package/esm/domain/session/sessionStore.js.map +0 -1
- package/esm/domain/session/sessionStoreOperations.d.ts +0 -15
- package/esm/domain/session/sessionStoreOperations.js +0 -99
- package/esm/domain/session/sessionStoreOperations.js.map +0 -1
- package/esm/domain/session/storeStrategies/sessionInCookie.d.ts +0 -6
- package/esm/domain/session/storeStrategies/sessionInCookie.js +0 -42
- package/esm/domain/session/storeStrategies/sessionInCookie.js.map +0 -1
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +0 -3
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.js +0 -35
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.js.map +0 -1
- package/esm/domain/session/storeStrategies/sessionStoreStrategy.d.ts +0 -14
- 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 -11
- package/esm/domain/synthetics/syntheticsWorkerValues.js +0 -16
- package/esm/domain/synthetics/syntheticsWorkerValues.js.map +0 -1
- package/esm/domain/telemetry/index.d.ts +0 -3
- package/esm/domain/telemetry/index.js +0 -4
- package/esm/domain/telemetry/index.js.map +0 -1
- package/esm/domain/telemetry/rawTelemetryEvent.types.d.ts +0 -11
- package/esm/domain/telemetry/rawTelemetryEvent.types.js +0 -5
- package/esm/domain/telemetry/rawTelemetryEvent.types.js.map +0 -1
- package/esm/domain/telemetry/telemetry.d.ts +0 -112
- package/esm/domain/telemetry/telemetry.js +0 -134
- package/esm/domain/telemetry/telemetry.js.map +0 -1
- package/esm/domain/telemetry/telemetryEvent.types.d.ts +0 -375
- package/esm/domain/telemetry/telemetryEvent.types.js +0 -6
- package/esm/domain/telemetry/telemetryEvent.types.js.map +0 -1
- package/esm/domain/tracekit/computeStackTrace.d.ts +0 -5
- package/esm/domain/tracekit/computeStackTrace.js +0 -114
- package/esm/domain/tracekit/computeStackTrace.js.map +0 -1
- package/esm/domain/tracekit/index.d.ts +0 -3
- package/esm/domain/tracekit/index.js +0 -3
- package/esm/domain/tracekit/index.js.map +0 -1
- package/esm/domain/tracekit/tracekit.d.ts +0 -35
- package/esm/domain/tracekit/tracekit.js +0 -91
- package/esm/domain/tracekit/tracekit.js.map +0 -1
- package/esm/domain/tracekit/types.d.ts +0 -44
- package/esm/domain/tracekit/types.js +0 -2
- package/esm/domain/tracekit/types.js.map +0 -1
- package/esm/domain/user/index.d.ts +0 -2
- package/esm/domain/user/index.js +0 -3
- package/esm/domain/user/index.js.map +0 -1
- package/esm/domain/user/user.d.ts +0 -12
- package/esm/domain/user/user.js +0 -30
- package/esm/domain/user/user.js.map +0 -1
- package/esm/domain/user/user.types.d.ts +0 -6
- package/esm/domain/user/user.types.js +0 -2
- package/esm/domain/user/user.types.js.map +0 -1
- package/esm/index.d.ts +0 -63
- package/esm/index.js +0 -61
- package/esm/index.js.map +0 -1
- package/esm/tools/abstractLifeCycle.d.ts +0 -23
- package/esm/tools/abstractLifeCycle.js +0 -26
- package/esm/tools/abstractLifeCycle.js.map +0 -1
- package/esm/tools/boundedBuffer.d.ts +0 -5
- package/esm/tools/boundedBuffer.js +0 -19
- package/esm/tools/boundedBuffer.js.map +0 -1
- package/esm/tools/catchUserErrors.d.ts +0 -1
- package/esm/tools/catchUserErrors.js +0 -16
- package/esm/tools/catchUserErrors.js.map +0 -1
- package/esm/tools/display.d.ts +0 -35
- package/esm/tools/display.js +0 -41
- package/esm/tools/display.js.map +0 -1
- package/esm/tools/experimentalFeatures.d.ts +0 -24
- package/esm/tools/experimentalFeatures.js +0 -40
- package/esm/tools/experimentalFeatures.js.map +0 -1
- package/esm/tools/getGlobalObject.d.ts +0 -4
- package/esm/tools/getGlobalObject.js +0 -33
- package/esm/tools/getGlobalObject.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/instrumentMethod.d.ts +0 -19
- package/esm/tools/instrumentMethod.js +0 -77
- package/esm/tools/instrumentMethod.js.map +0 -1
- package/esm/tools/matchOption.d.ts +0 -8
- package/esm/tools/matchOption.js +0 -33
- package/esm/tools/matchOption.js.map +0 -1
- package/esm/tools/mergeInto.d.ts +0 -25
- package/esm/tools/mergeInto.js +0 -99
- package/esm/tools/mergeInto.js.map +0 -1
- package/esm/tools/monitor.d.ts +0 -9
- package/esm/tools/monitor.js +0 -66
- package/esm/tools/monitor.js.map +0 -1
- package/esm/tools/observable.d.ts +0 -12
- package/esm/tools/observable.js +0 -40
- package/esm/tools/observable.js.map +0 -1
- package/esm/tools/readBytesFromStream.d.ts +0 -11
- package/esm/tools/readBytesFromStream.js +0 -60
- package/esm/tools/readBytesFromStream.js.map +0 -1
- package/esm/tools/sendToExtension.d.ts +0 -3
- package/esm/tools/sendToExtension.js +0 -7
- package/esm/tools/sendToExtension.js.map +0 -1
- package/esm/tools/serialisation/context.d.ts +0 -6
- package/esm/tools/serialisation/context.js +0 -2
- package/esm/tools/serialisation/context.js.map +0 -1
- package/esm/tools/serialisation/contextManager.d.ts +0 -21
- package/esm/tools/serialisation/contextManager.js +0 -66
- package/esm/tools/serialisation/contextManager.js.map +0 -1
- package/esm/tools/serialisation/heavyCustomerDataWarning.d.ts +0 -8
- package/esm/tools/serialisation/heavyCustomerDataWarning.js +0 -14
- package/esm/tools/serialisation/heavyCustomerDataWarning.js.map +0 -1
- package/esm/tools/serialisation/jsonStringify.d.ts +0 -14
- 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 -181
- package/esm/tools/serialisation/sanitize.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 -1
- package/esm/tools/utils/arrayUtils.js +0 -7
- package/esm/tools/utils/arrayUtils.js.map +0 -1
- package/esm/tools/utils/browserDetection.d.ts +0 -2
- package/esm/tools/utils/browserDetection.js +0 -7
- package/esm/tools/utils/browserDetection.js.map +0 -1
- package/esm/tools/utils/byteUtils.d.ts +0 -4
- package/esm/tools/utils/byteUtils.js +0 -26
- package/esm/tools/utils/byteUtils.js.map +0 -1
- package/esm/tools/utils/functionUtils.d.ts +0 -9
- package/esm/tools/utils/functionUtils.js +0 -43
- package/esm/tools/utils/functionUtils.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 -19
- package/esm/tools/utils/objectUtils.js.map +0 -1
- package/esm/tools/utils/polyfills.d.ts +0 -24
- package/esm/tools/utils/polyfills.js +0 -95
- 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 -7
- package/esm/tools/utils/stringUtils.js +0 -26
- package/esm/tools/utils/stringUtils.js.map +0 -1
- package/esm/tools/utils/timeUtils.d.ts +0 -57
- package/esm/tools/utils/timeUtils.js +0 -82
- package/esm/tools/utils/timeUtils.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 -14
- package/esm/tools/utils/urlPolyfill.js +0 -80
- package/esm/tools/utils/urlPolyfill.js.map +0 -1
- package/esm/tools/valueHistory.d.ts +0 -50
- package/esm/tools/valueHistory.js +0 -103
- package/esm/tools/valueHistory.js.map +0 -1
- package/esm/transport/batch.d.ts +0 -19
- package/esm/transport/batch.js +0 -76
- package/esm/transport/batch.js.map +0 -1
- package/esm/transport/eventBridge.d.ts +0 -12
- package/esm/transport/eventBridge.js +0 -29
- package/esm/transport/eventBridge.js.map +0 -1
- package/esm/transport/flushController.d.ts +0 -48
- package/esm/transport/flushController.js +0 -93
- package/esm/transport/flushController.js.map +0 -1
- package/esm/transport/httpRequest.d.ts +0 -37
- package/esm/transport/httpRequest.js +0 -85
- package/esm/transport/httpRequest.js.map +0 -1
- package/esm/transport/index.d.ts +0 -4
- package/esm/transport/index.js +0 -5
- package/esm/transport/index.js.map +0 -1
- package/esm/transport/sendWithRetryStrategy.d.ts +0 -39
- package/esm/transport/sendWithRetryStrategy.js +0 -146
- package/esm/transport/sendWithRetryStrategy.js.map +0 -1
- package/esm/transport/startBatchWithReplica.d.ts +0 -15
- package/esm/transport/startBatchWithReplica.js +0 -33
- package/esm/transport/startBatchWithReplica.js.map +0 -1
- package/src/domain/configuration/intakeSites.ts +0 -5
- package/src/domain/configuration/tags.ts +0 -43
- package/src/domain/tracekit/computeStackTrace.ts +0 -141
- package/src/domain/tracekit/index.ts +0 -3
- package/src/domain/tracekit/tracekit.ts +0 -96
- package/src/domain/tracekit/types.ts +0 -47
- package/src/domain/user/index.ts +0 -2
- package/src/domain/user/user.ts +0 -33
- package/src/domain/user/user.types.ts +0 -6
- package/src/tools/serialisation/contextManager.ts +0 -79
- package/src/tools/serialisation/heavyCustomerDataWarning.ts +0 -26
- package/src/transport/startBatchWithReplica.ts +0 -52
|
@@ -1,48 +1,6 @@
|
|
|
1
|
-
export function includes(candidate: string, search: string): boolean
|
|
2
|
-
export function includes<T>(candidate: T[], search: T): boolean
|
|
3
|
-
export function includes(candidate: string | unknown[], search: any) {
|
|
4
|
-
return candidate.indexOf(search) !== -1
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
export function arrayFrom<T>(arrayLike: ArrayLike<T> | Set<T>): T[] {
|
|
8
|
-
if (Array.from) {
|
|
9
|
-
return Array.from(arrayLike)
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
const array = []
|
|
13
|
-
|
|
14
|
-
if (arrayLike instanceof Set) {
|
|
15
|
-
arrayLike.forEach((item) => array.push(item))
|
|
16
|
-
} else {
|
|
17
|
-
for (let i = 0; i < arrayLike.length; i++) {
|
|
18
|
-
array.push(arrayLike[i])
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
return array
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
export function find<T, S extends T>(
|
|
26
|
-
array: ArrayLike<T>,
|
|
27
|
-
predicate: (item: T, index: number) => item is S
|
|
28
|
-
): S | undefined
|
|
29
|
-
export function find<T>(array: ArrayLike<T>, predicate: (item: T, index: number) => boolean): T | undefined
|
|
30
|
-
export function find(
|
|
31
|
-
array: ArrayLike<unknown>,
|
|
32
|
-
predicate: (item: unknown, index: number) => boolean
|
|
33
|
-
): unknown | undefined {
|
|
34
|
-
for (let i = 0; i < array.length; i += 1) {
|
|
35
|
-
const item = array[i]
|
|
36
|
-
if (predicate(item, i)) {
|
|
37
|
-
return item
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
return undefined
|
|
41
|
-
}
|
|
42
|
-
|
|
43
1
|
export function findLast<T, S extends T>(
|
|
44
|
-
array: T[],
|
|
45
|
-
predicate: (item: T, index: number, array: T[]) => item is S
|
|
2
|
+
array: readonly T[],
|
|
3
|
+
predicate: (item: T, index: number, array: readonly T[]) => item is S
|
|
46
4
|
): S | undefined {
|
|
47
5
|
for (let i = array.length - 1; i >= 0; i -= 1) {
|
|
48
6
|
const item = array[i]
|
|
@@ -53,75 +11,13 @@ export function findLast<T, S extends T>(
|
|
|
53
11
|
return undefined
|
|
54
12
|
}
|
|
55
13
|
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
callback: (value: List[number], index: number, parent: List) => void
|
|
59
|
-
) {
|
|
60
|
-
Array.prototype.forEach.call(list, callback as any)
|
|
61
|
-
}
|
|
14
|
+
// Keep the following wrapper functions as it can be mangled and will result in smaller bundle size that using
|
|
15
|
+
// the native Object.values and Object.entries directly
|
|
62
16
|
|
|
63
17
|
export function objectValues<T = unknown>(object: { [key: string]: T }) {
|
|
64
|
-
return Object.
|
|
18
|
+
return Object.values(object)
|
|
65
19
|
}
|
|
66
20
|
|
|
67
21
|
export function objectEntries<T = unknown>(object: { [key: string]: T }): Array<[string, T]> {
|
|
68
|
-
return Object.
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
export function startsWith(candidate: string, search: string) {
|
|
72
|
-
return candidate.slice(0, search.length) === search
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export function endsWith(candidate: string, search: string) {
|
|
76
|
-
return candidate.slice(-search.length) === search
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
export function elementMatches(element: Element & { msMatchesSelector?(selector: string): boolean }, selector: string) {
|
|
80
|
-
if (element.matches) {
|
|
81
|
-
return element.matches(selector)
|
|
82
|
-
}
|
|
83
|
-
// IE11 support
|
|
84
|
-
if (element.msMatchesSelector) {
|
|
85
|
-
return element.msMatchesSelector(selector)
|
|
86
|
-
}
|
|
87
|
-
return false
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// https://github.com/jquery/jquery/blob/a684e6ba836f7c553968d7d026ed7941e1a612d8/src/selector/escapeSelector.js
|
|
91
|
-
export function cssEscape(str: string) {
|
|
92
|
-
if (window.CSS && window.CSS.escape) {
|
|
93
|
-
return window.CSS.escape(str)
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
// eslint-disable-next-line no-control-regex
|
|
97
|
-
return str.replace(/([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, function (ch, asCodePoint) {
|
|
98
|
-
if (asCodePoint) {
|
|
99
|
-
// U+0000 NULL becomes U+FFFD REPLACEMENT CHARACTER
|
|
100
|
-
if (ch === '\0') {
|
|
101
|
-
return '\uFFFD'
|
|
102
|
-
}
|
|
103
|
-
// Control characters and (dependent upon position) numbers get escaped as code points
|
|
104
|
-
return `${ch.slice(0, -1)}\\${ch.charCodeAt(ch.length - 1).toString(16)} `
|
|
105
|
-
}
|
|
106
|
-
// Other potentially-special ASCII characters get backslash-escaped
|
|
107
|
-
return `\\${ch}`
|
|
108
|
-
})
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
interface Assignable {
|
|
112
|
-
[key: string]: any
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
export function assign<T, U>(target: T, source: U): T & U
|
|
116
|
-
export function assign<T, U, V>(target: T, source1: U, source2: V): T & U & V
|
|
117
|
-
export function assign<T, U, V, W>(target: T, source1: U, source2: V, source3: W): T & U & V & W
|
|
118
|
-
export function assign(target: Assignable, ...toAssign: Assignable[]) {
|
|
119
|
-
toAssign.forEach((source: Assignable) => {
|
|
120
|
-
for (const key in source) {
|
|
121
|
-
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
122
|
-
target[key] = source[key]
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
})
|
|
126
|
-
return target
|
|
22
|
+
return Object.entries(object)
|
|
127
23
|
}
|
|
@@ -5,7 +5,7 @@ export function isServerError(status: number) {
|
|
|
5
5
|
export function tryToClone(response: Response): Response | undefined {
|
|
6
6
|
try {
|
|
7
7
|
return response.clone()
|
|
8
|
-
} catch
|
|
8
|
+
} catch {
|
|
9
9
|
// clone can throw if the response has already been used by another instrumentation or is disturbed
|
|
10
10
|
return
|
|
11
11
|
}
|
|
@@ -9,10 +9,68 @@ export function generateUUID(placeholder?: string): string {
|
|
|
9
9
|
: `${1e7}-${1e3}-${4e3}-${8e3}-${1e11}`.replace(/[018]/g, generateUUID)
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
12
|
+
const COMMA_SEPARATED_KEY_VALUE = /([\w-]+)\s*=\s*([^;]+)/g
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Returns the value of the key with the given name
|
|
16
|
+
* If there are multiple values with the same key, returns the first one
|
|
17
|
+
*/
|
|
18
|
+
export function findCommaSeparatedValue(rawString: string, name: string): string | undefined {
|
|
19
|
+
COMMA_SEPARATED_KEY_VALUE.lastIndex = 0
|
|
20
|
+
while (true) {
|
|
21
|
+
const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)
|
|
22
|
+
if (match) {
|
|
23
|
+
if (match[1] === name) {
|
|
24
|
+
return match[2]
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
break
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Returns a map of all the values with the given key
|
|
34
|
+
* If there are multiple values with the same key, returns all the values
|
|
35
|
+
*/
|
|
36
|
+
export function findAllCommaSeparatedValues(rawString: string): Map<string, string[]> {
|
|
37
|
+
const result = new Map<string, string[]>()
|
|
38
|
+
COMMA_SEPARATED_KEY_VALUE.lastIndex = 0
|
|
39
|
+
while (true) {
|
|
40
|
+
const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)
|
|
41
|
+
if (match) {
|
|
42
|
+
const key = match[1]
|
|
43
|
+
const value = match[2]
|
|
44
|
+
if (result.has(key)) {
|
|
45
|
+
result.get(key)!.push(value)
|
|
46
|
+
} else {
|
|
47
|
+
result.set(key, [value])
|
|
48
|
+
}
|
|
49
|
+
} else {
|
|
50
|
+
break
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
return result
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Returns a map of the values with the given key
|
|
58
|
+
* ⚠️ If there are multiple values with the same key, returns the LAST one
|
|
59
|
+
*
|
|
60
|
+
* @deprecated use `findAllCommaSeparatedValues()` instead
|
|
61
|
+
*/
|
|
62
|
+
export function findCommaSeparatedValues(rawString: string): Map<string, string> {
|
|
63
|
+
const result = new Map<string, string>()
|
|
64
|
+
COMMA_SEPARATED_KEY_VALUE.lastIndex = 0
|
|
65
|
+
while (true) {
|
|
66
|
+
const match = COMMA_SEPARATED_KEY_VALUE.exec(rawString)
|
|
67
|
+
if (match) {
|
|
68
|
+
result.set(match[1], match[2])
|
|
69
|
+
} else {
|
|
70
|
+
break
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return result
|
|
16
74
|
}
|
|
17
75
|
|
|
18
76
|
export function safeTruncate(candidate: string, length: number, suffix = '') {
|
|
@@ -10,12 +10,19 @@ export type Duration = number & { d: 'Duration in ms' }
|
|
|
10
10
|
export type ServerDuration = number & { s: 'Duration in ns' }
|
|
11
11
|
export type TimeStamp = number & { t: 'Epoch time' }
|
|
12
12
|
export type RelativeTime = number & { r: 'Time relative to navigation start' } & { d: 'Duration in ms' }
|
|
13
|
-
export
|
|
13
|
+
export interface ClocksState {
|
|
14
|
+
relative: RelativeTime
|
|
15
|
+
timeStamp: TimeStamp
|
|
16
|
+
}
|
|
14
17
|
|
|
15
18
|
export function relativeToClocks(relative: RelativeTime) {
|
|
16
19
|
return { relative, timeStamp: getCorrectedTimeStamp(relative) }
|
|
17
20
|
}
|
|
18
21
|
|
|
22
|
+
export function timeStampToClocks(timeStamp: TimeStamp) {
|
|
23
|
+
return { relative: getRelativeTime(timeStamp), timeStamp }
|
|
24
|
+
}
|
|
25
|
+
|
|
19
26
|
function getCorrectedTimeStamp(relativeTime: RelativeTime) {
|
|
20
27
|
const correctedOrigin = (dateNow() - performance.now()) as TimeStamp
|
|
21
28
|
// apply correction only for positive drift
|
|
@@ -76,13 +83,7 @@ export function addDuration(a: number, b: number) {
|
|
|
76
83
|
return a + b
|
|
77
84
|
}
|
|
78
85
|
|
|
79
|
-
|
|
80
|
-
* Get the time since the navigation was started.
|
|
81
|
-
*
|
|
82
|
-
* Note: this does not use `performance.timeOrigin` because it doesn't seem to reflect the actual
|
|
83
|
-
* time on which the navigation has started: it may be much farther in the past, at least in Firefox 71.
|
|
84
|
-
* Related issue in Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926
|
|
85
|
-
*/
|
|
86
|
+
// Get the time since the navigation was started.
|
|
86
87
|
export function getRelativeTime(timestamp: TimeStamp) {
|
|
87
88
|
return (timestamp - getNavigationStart()) as RelativeTime
|
|
88
89
|
}
|
|
@@ -100,13 +101,17 @@ export function looksLikeRelativeTime(time: RelativeTime | TimeStamp): time is R
|
|
|
100
101
|
*/
|
|
101
102
|
let navigationStart: TimeStamp | undefined
|
|
102
103
|
|
|
104
|
+
/**
|
|
105
|
+
* Notes: this does not use `performance.timeOrigin` because:
|
|
106
|
+
* - It doesn't seem to reflect the actual time on which the navigation has started: it may be much farther in the past,
|
|
107
|
+
* at least in Firefox 71. (see: https://bugzilla.mozilla.org/show_bug.cgi?id=1429926)
|
|
108
|
+
* - It is not supported in Safari <15
|
|
109
|
+
*/
|
|
103
110
|
function getNavigationStart() {
|
|
104
111
|
if (navigationStart === undefined) {
|
|
105
|
-
|
|
112
|
+
// ServiceWorkers do not support navigationStart (it's deprecated), so we fallback to timeOrigin
|
|
113
|
+
navigationStart = (performance.timing?.navigationStart ?? performance.timeOrigin) as TimeStamp
|
|
106
114
|
}
|
|
107
|
-
return navigationStart
|
|
108
|
-
}
|
|
109
115
|
|
|
110
|
-
|
|
111
|
-
navigationStart = undefined
|
|
116
|
+
return navigationStart
|
|
112
117
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { globalObject } from '../globalObject'
|
|
2
2
|
|
|
3
3
|
export function normalizeUrl(url: string) {
|
|
4
|
-
return buildUrl(url,
|
|
4
|
+
return buildUrl(url, location.href).href
|
|
5
5
|
}
|
|
6
6
|
|
|
7
7
|
export function isValidUrl(url: string) {
|
|
@@ -12,75 +12,45 @@ export function isValidUrl(url: string) {
|
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export function getOrigin(url: string) {
|
|
16
|
-
return getLinkElementOrigin(buildUrl(url))
|
|
17
|
-
}
|
|
18
|
-
|
|
19
15
|
export function getPathName(url: string) {
|
|
20
16
|
const pathname = buildUrl(url).pathname
|
|
21
17
|
return pathname[0] === '/' ? pathname : `/${pathname}`
|
|
22
18
|
}
|
|
23
19
|
|
|
24
|
-
export function getSearch(url: string) {
|
|
25
|
-
return buildUrl(url).search
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export function getHash(url: string) {
|
|
29
|
-
return buildUrl(url).hash
|
|
30
|
-
}
|
|
31
|
-
|
|
32
20
|
export function buildUrl(url: string, base?: string) {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
if (base === undefined && !/:/.test(url)) {
|
|
42
|
-
throw new Error(`Invalid URL: '${url}'`)
|
|
43
|
-
}
|
|
44
|
-
let doc = document
|
|
45
|
-
const anchorElement = doc.createElement('a')
|
|
46
|
-
if (base !== undefined) {
|
|
47
|
-
doc = document.implementation.createHTMLDocument('')
|
|
48
|
-
const baseElement = doc.createElement('base')
|
|
49
|
-
baseElement.href = base
|
|
50
|
-
doc.head.appendChild(baseElement)
|
|
51
|
-
doc.body.appendChild(anchorElement)
|
|
21
|
+
const { URL } = getPristineWindow()
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
return base !== undefined ? new URL(url, base) : new URL(url)
|
|
25
|
+
} catch (error) {
|
|
26
|
+
throw new Error(`Failed to construct URL: ${String(error)}`)
|
|
52
27
|
}
|
|
53
|
-
anchorElement.href = url
|
|
54
|
-
return anchorElement
|
|
55
28
|
}
|
|
56
29
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Get native URL constructor from a clean iframe
|
|
32
|
+
* This avoids polyfill issues by getting the native implementation from a fresh iframe context
|
|
33
|
+
* Falls back to the original URL constructor if iframe approach fails
|
|
34
|
+
*/
|
|
35
|
+
let getPristineGlobalObjectCache: Pick<typeof window, 'URL'> | undefined
|
|
36
|
+
|
|
37
|
+
export function getPristineWindow() {
|
|
38
|
+
if (!getPristineGlobalObjectCache) {
|
|
39
|
+
let iframe: HTMLIFrameElement | undefined
|
|
40
|
+
let pristineWindow: Window & typeof globalThis
|
|
61
41
|
try {
|
|
62
|
-
|
|
63
|
-
|
|
42
|
+
iframe = document.createElement('iframe')
|
|
43
|
+
iframe.style.display = 'none'
|
|
44
|
+
document.body.appendChild(iframe)
|
|
45
|
+
pristineWindow = iframe.contentWindow as Window & typeof globalThis
|
|
64
46
|
} catch {
|
|
65
|
-
|
|
47
|
+
pristineWindow = globalObject as unknown as Window & typeof globalThis
|
|
48
|
+
}
|
|
49
|
+
getPristineGlobalObjectCache = {
|
|
50
|
+
URL: pristineWindow.URL,
|
|
66
51
|
}
|
|
52
|
+
iframe?.remove()
|
|
67
53
|
}
|
|
68
|
-
return isURLSupported ? originalURL : undefined
|
|
69
|
-
}
|
|
70
54
|
|
|
71
|
-
|
|
72
|
-
return getLinkElementOrigin(window.location)
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Fallback
|
|
77
|
-
* On IE HTMLAnchorElement origin is not supported: https://developer.mozilla.org/en-US/docs/Web/API/HTMLHyperlinkElementUtils/origin
|
|
78
|
-
* On Firefox window.location.origin is "null" for file: URIs: https://bugzilla.mozilla.org/show_bug.cgi?id=878297
|
|
79
|
-
*/
|
|
80
|
-
export function getLinkElementOrigin(element: Location | HTMLAnchorElement | URL) {
|
|
81
|
-
if (element.origin && element.origin !== 'null') {
|
|
82
|
-
return element.origin
|
|
83
|
-
}
|
|
84
|
-
const sanitizedHost = element.host.replace(/(:80|:443)$/, '')
|
|
85
|
-
return `${element.protocol}//${sanitizedHost}`
|
|
55
|
+
return getPristineGlobalObjectCache
|
|
86
56
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { setInterval, clearInterval } from './timer'
|
|
2
2
|
import type { TimeoutId } from './timer'
|
|
3
|
+
import { removeItem } from './utils/arrayUtils'
|
|
3
4
|
import type { Duration, RelativeTime } from './utils/timeUtils'
|
|
4
5
|
import { addDuration, relativeNow, ONE_MINUTE } from './utils/timeUtils'
|
|
5
6
|
|
|
@@ -16,45 +17,71 @@ export interface ValueHistoryEntry<T> {
|
|
|
16
17
|
export const CLEAR_OLD_VALUES_INTERVAL = ONE_MINUTE
|
|
17
18
|
|
|
18
19
|
/**
|
|
19
|
-
* Store and keep track of values spans. This whole
|
|
20
|
+
* Store and keep track of values spans. This whole cache assumes that values are added in
|
|
20
21
|
* chronological order (i.e. all entries have an increasing start time).
|
|
21
22
|
*/
|
|
22
|
-
export
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
)
|
|
30
|
-
|
|
23
|
+
export interface ValueHistory<Value> {
|
|
24
|
+
add: (value: Value, startTime: RelativeTime) => ValueHistoryEntry<Value>
|
|
25
|
+
find: (startTime?: RelativeTime, options?: { returnInactive: boolean }) => Value | undefined
|
|
26
|
+
|
|
27
|
+
closeActive: (endTime: RelativeTime) => void
|
|
28
|
+
findAll: (startTime?: RelativeTime, duration?: Duration) => Value[]
|
|
29
|
+
reset: () => void
|
|
30
|
+
stop: () => void
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
let cleanupHistoriesInterval: TimeoutId | null = null
|
|
34
|
+
|
|
35
|
+
const cleanupTasks: Set<() => void> = new Set()
|
|
36
|
+
|
|
37
|
+
function cleanupHistories() {
|
|
38
|
+
cleanupTasks.forEach((task) => task())
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export function createValueHistory<Value>({
|
|
42
|
+
expireDelay,
|
|
43
|
+
maxEntries,
|
|
44
|
+
}: {
|
|
45
|
+
expireDelay: number
|
|
46
|
+
maxEntries?: number
|
|
47
|
+
}): ValueHistory<Value> {
|
|
48
|
+
let entries: Array<ValueHistoryEntry<Value>> = []
|
|
49
|
+
|
|
50
|
+
if (!cleanupHistoriesInterval) {
|
|
51
|
+
cleanupHistoriesInterval = setInterval(() => cleanupHistories(), CLEAR_OLD_VALUES_INTERVAL)
|
|
31
52
|
}
|
|
32
53
|
|
|
54
|
+
const clearExpiredValues = () => {
|
|
55
|
+
const oldTimeThreshold = relativeNow() - expireDelay
|
|
56
|
+
while (entries.length > 0 && entries[entries.length - 1].endTime < oldTimeThreshold) {
|
|
57
|
+
entries.pop()
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
cleanupTasks.add(clearExpiredValues)
|
|
62
|
+
|
|
33
63
|
/**
|
|
34
64
|
* Add a value to the history associated with a start time. Returns a reference to this newly
|
|
35
65
|
* added entry that can be removed or closed.
|
|
36
66
|
*/
|
|
37
|
-
add(value: Value, startTime: RelativeTime): ValueHistoryEntry<Value> {
|
|
67
|
+
function add(value: Value, startTime: RelativeTime): ValueHistoryEntry<Value> {
|
|
38
68
|
const entry: ValueHistoryEntry<Value> = {
|
|
39
69
|
value,
|
|
40
70
|
startTime,
|
|
41
71
|
endTime: END_OF_TIMES,
|
|
42
72
|
remove: () => {
|
|
43
|
-
|
|
44
|
-
if (index >= 0) {
|
|
45
|
-
this.entries.splice(index, 1)
|
|
46
|
-
}
|
|
73
|
+
removeItem(entries, entry)
|
|
47
74
|
},
|
|
48
75
|
close: (endTime: RelativeTime) => {
|
|
49
76
|
entry.endTime = endTime
|
|
50
77
|
},
|
|
51
78
|
}
|
|
52
79
|
|
|
53
|
-
if (
|
|
54
|
-
|
|
80
|
+
if (maxEntries && entries.length >= maxEntries) {
|
|
81
|
+
entries.pop()
|
|
55
82
|
}
|
|
56
83
|
|
|
57
|
-
|
|
84
|
+
entries.unshift(entry)
|
|
58
85
|
|
|
59
86
|
return entry
|
|
60
87
|
}
|
|
@@ -62,11 +89,16 @@ export class ValueHistory<Value> {
|
|
|
62
89
|
/**
|
|
63
90
|
* Return the latest value that was active during `startTime`, or the currently active value
|
|
64
91
|
* if no `startTime` is provided. This method assumes that entries are not overlapping.
|
|
92
|
+
*
|
|
93
|
+
* If `option.returnInactive` is true, returns the value at `startTime` (active or not).
|
|
65
94
|
*/
|
|
66
|
-
find(
|
|
67
|
-
|
|
95
|
+
function find(
|
|
96
|
+
startTime: RelativeTime = END_OF_TIMES,
|
|
97
|
+
options: { returnInactive: boolean } = { returnInactive: false }
|
|
98
|
+
): Value | undefined {
|
|
99
|
+
for (const entry of entries) {
|
|
68
100
|
if (entry.startTime <= startTime) {
|
|
69
|
-
if (startTime <= entry.endTime) {
|
|
101
|
+
if (options.returnInactive || startTime <= entry.endTime) {
|
|
70
102
|
return entry.value
|
|
71
103
|
}
|
|
72
104
|
break
|
|
@@ -78,8 +110,8 @@ export class ValueHistory<Value> {
|
|
|
78
110
|
* Helper function to close the currently active value, if any. This method assumes that entries
|
|
79
111
|
* are not overlapping.
|
|
80
112
|
*/
|
|
81
|
-
closeActive(endTime: RelativeTime) {
|
|
82
|
-
const latestEntry =
|
|
113
|
+
function closeActive(endTime: RelativeTime) {
|
|
114
|
+
const latestEntry = entries[0]
|
|
83
115
|
if (latestEntry && latestEntry.endTime === END_OF_TIMES) {
|
|
84
116
|
latestEntry.close(endTime)
|
|
85
117
|
}
|
|
@@ -90,9 +122,9 @@ export class ValueHistory<Value> {
|
|
|
90
122
|
* or all values that were active during `startTime` if no duration is provided,
|
|
91
123
|
* or all currently active values if no `startTime` is provided.
|
|
92
124
|
*/
|
|
93
|
-
findAll(startTime: RelativeTime = END_OF_TIMES, duration = 0 as Duration): Value[] {
|
|
125
|
+
function findAll(startTime: RelativeTime = END_OF_TIMES, duration = 0 as Duration): Value[] {
|
|
94
126
|
const endTime = addDuration(startTime, duration)
|
|
95
|
-
return
|
|
127
|
+
return entries
|
|
96
128
|
.filter((entry) => entry.startTime <= endTime && startTime <= entry.endTime)
|
|
97
129
|
.map((entry) => entry.value)
|
|
98
130
|
}
|
|
@@ -100,21 +132,20 @@ export class ValueHistory<Value> {
|
|
|
100
132
|
/**
|
|
101
133
|
* Remove all entries from this collection.
|
|
102
134
|
*/
|
|
103
|
-
reset() {
|
|
104
|
-
|
|
135
|
+
function reset() {
|
|
136
|
+
entries = []
|
|
105
137
|
}
|
|
106
138
|
|
|
107
139
|
/**
|
|
108
140
|
* Stop internal garbage collection of past entries.
|
|
109
141
|
*/
|
|
110
|
-
stop() {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
const oldTimeThreshold = relativeNow() - this.expireDelay
|
|
116
|
-
while (this.entries.length > 0 && this.entries[this.entries.length - 1].endTime < oldTimeThreshold) {
|
|
117
|
-
this.entries.pop()
|
|
142
|
+
function stop() {
|
|
143
|
+
cleanupTasks.delete(clearExpiredValues)
|
|
144
|
+
if (cleanupTasks.size === 0 && cleanupHistoriesInterval) {
|
|
145
|
+
clearInterval(cleanupHistoriesInterval)
|
|
146
|
+
cleanupHistoriesInterval = null
|
|
118
147
|
}
|
|
119
148
|
}
|
|
149
|
+
|
|
150
|
+
return { add, find, closeActive, findAll, reset, stop }
|
|
120
151
|
}
|