@pratham.raval/browser-core 6.22.3
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/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 +14 -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 +18 -0
- package/cjs/browser/cookie.js +101 -0
- package/cjs/browser/cookie.js.map +1 -0
- package/cjs/browser/fetchObservable.d.ts +25 -0
- package/cjs/browser/fetchObservable.js +79 -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 +23 -0
- package/cjs/browser/xhrObservable.js +83 -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 +303 -0
- package/cjs/domain/configuration/configuration.js +152 -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 +78 -0
- package/cjs/domain/configuration/endpointBuilder.js.map +1 -0
- package/cjs/domain/configuration/index.d.ts +5 -0
- package/cjs/domain/configuration/index.js +16 -0
- package/cjs/domain/configuration/index.js.map +1 -0
- package/cjs/domain/configuration/transportConfiguration.d.ts +20 -0
- package/cjs/domain/configuration/transportConfiguration.js +54 -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 +60 -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 +29 -0
- package/cjs/domain/contexts/userContext.js +45 -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 +74 -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 +39 -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 +8 -0
- package/cjs/domain/intakeSites.js +11 -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 +185 -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 +76 -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 +181 -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 +8 -0
- package/cjs/domain/session/storeStrategies/sessionInCookie.js +56 -0
- package/cjs/domain/session/storeStrategies/sessionInCookie.js.map +1 -0
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.d.ts +4 -0
- package/cjs/domain/session/storeStrategies/sessionInLocalStorage.js +41 -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 +67 -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 +248 -0
- package/cjs/domain/telemetry/telemetry.js.map +1 -0
- package/cjs/domain/telemetry/telemetryEvent.types.d.ts +858 -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/index.d.ts +100 -0
- package/cjs/index.js +193 -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 +20 -0
- package/cjs/tools/experimentalFeatures.js +49 -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 +62 -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 +11 -0
- package/cjs/tools/readBytesFromStream.js +63 -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 +30 -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 +9 -0
- package/cjs/tools/utils/numberUtils.js +24 -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 +8 -0
- package/cjs/tools/utils/stringUtils.js +55 -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 +108 -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 +58 -0
- package/cjs/transport/flushController.js +109 -0
- package/cjs/transport/flushController.js.map +1 -0
- package/cjs/transport/httpRequest.d.ts +51 -0
- package/cjs/transport/httpRequest.js +80 -0
- package/cjs/transport/httpRequest.js.map +1 -0
- package/cjs/transport/index.d.ts +7 -0
- package/cjs/transport/index.js +14 -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 +14 -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 +18 -0
- package/esm/browser/cookie.js +91 -0
- package/esm/browser/cookie.js.map +1 -0
- package/esm/browser/fetchObservable.d.ts +25 -0
- package/esm/browser/fetchObservable.js +75 -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 +23 -0
- package/esm/browser/xhrObservable.js +80 -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 +303 -0
- package/esm/domain/configuration/configuration.js +146 -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 +74 -0
- package/esm/domain/configuration/endpointBuilder.js.map +1 -0
- package/esm/domain/configuration/index.d.ts +5 -0
- package/esm/domain/configuration/index.js +4 -0
- package/esm/domain/configuration/index.js.map +1 -0
- package/esm/domain/configuration/transportConfiguration.d.ts +20 -0
- package/esm/domain/configuration/transportConfiguration.js +50 -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 +57 -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 +29 -0
- package/esm/domain/contexts/userContext.js +41 -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 +65 -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 +36 -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 +8 -0
- package/esm/domain/intakeSites.js +8 -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 +180 -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 +66 -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 +175 -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 +8 -0
- package/esm/domain/session/storeStrategies/sessionInCookie.js +50 -0
- package/esm/domain/session/storeStrategies/sessionInCookie.js.map +1 -0
- package/esm/domain/session/storeStrategies/sessionInLocalStorage.d.ts +4 -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 +60 -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 +235 -0
- package/esm/domain/telemetry/telemetry.js.map +1 -0
- package/esm/domain/telemetry/telemetryEvent.types.d.ts +858 -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/index.d.ts +100 -0
- package/esm/index.js +76 -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 +20 -0
- package/esm/tools/experimentalFeatures.js +41 -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 +52 -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 +11 -0
- package/esm/tools/readBytesFromStream.js +60 -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 +25 -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 +9 -0
- package/esm/tools/utils/numberUtils.js +18 -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 +8 -0
- package/esm/tools/utils/stringUtils.js +49 -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 +105 -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 +58 -0
- package/esm/transport/flushController.js +106 -0
- package/esm/transport/flushController.js.map +1 -0
- package/esm/transport/httpRequest.d.ts +51 -0
- package/esm/transport/httpRequest.js +75 -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 +31 -0
- package/src/boot/displayAlreadyInitializedError.ts +8 -0
- package/src/boot/init.ts +55 -0
- package/src/browser/addEventListener.ts +145 -0
- package/src/browser/browser.types.ts +82 -0
- package/src/browser/cookie.ts +107 -0
- package/src/browser/fetchObservable.ts +127 -0
- package/src/browser/pageMayExitObservable.ts +56 -0
- package/src/browser/runOnReadyState.ts +25 -0
- package/src/browser/xhrObservable.ts +130 -0
- package/src/domain/allowedTrackingOrigins.ts +30 -0
- package/src/domain/bufferedData.ts +32 -0
- package/src/domain/configuration/configuration.ts +472 -0
- package/src/domain/configuration/endpointBuilder.ts +119 -0
- package/src/domain/configuration/index.ts +11 -0
- package/src/domain/configuration/transportConfiguration.ts +78 -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 +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/deflate.types.ts +57 -0
- package/src/domain/deflate/index.ts +1 -0
- package/src/domain/error/error.ts +103 -0
- package/src/domain/error/error.types.ts +64 -0
- package/src/domain/error/trackRuntimeError.ts +50 -0
- package/src/domain/eventRateLimiter/createEventRateLimiter.ts +46 -0
- package/src/domain/extension/extensionUtils.ts +28 -0
- package/src/domain/intakeSites.ts +17 -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 +244 -0
- package/src/domain/session/sessionState.ts +88 -0
- package/src/domain/session/sessionStateValidation.ts +9 -0
- package/src/domain/session/sessionStore.ts +244 -0
- package/src/domain/session/sessionStoreOperations.ts +131 -0
- package/src/domain/session/storeStrategies/sessionInCookie.ts +85 -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 +76 -0
- package/src/domain/telemetry/index.ts +22 -0
- package/src/domain/telemetry/rawTelemetryEvent.types.ts +22 -0
- package/src/domain/telemetry/telemetry.ts +345 -0
- package/src/domain/telemetry/telemetryEvent.types.ts +899 -0
- package/src/domain/trackingConsent.ts +34 -0
- package/src/index.ts +164 -0
- package/src/tools/abstractHooks.ts +72 -0
- package/src/tools/abstractLifeCycle.ts +46 -0
- package/src/tools/boundedBuffer.ts +45 -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 +51 -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 +72 -0
- package/src/tools/observable.ts +104 -0
- package/src/tools/queueMicrotask.ts +13 -0
- package/src/tools/readBytesFromStream.ts +77 -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 +250 -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 +15 -0
- package/src/tools/utils/browserDetection.ts +39 -0
- package/src/tools/utils/byteUtils.ts +35 -0
- package/src/tools/utils/functionUtils.ts +45 -0
- package/src/tools/utils/numberUtils.ts +20 -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 +52 -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 +56 -0
- package/src/tools/valueHistory.ts +151 -0
- package/src/transport/batch.ts +144 -0
- package/src/transport/eventBridge.ts +61 -0
- package/src/transport/flushController.ts +144 -0
- package/src/transport/httpRequest.ts +164 -0
- package/src/transport/index.ts +7 -0
- package/src/transport/sendWithRetryStrategy.ts +222 -0
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Cross-browser stack trace computation.
|
|
3
|
+
*
|
|
4
|
+
* Reference implementation: https://github.com/csnover/TraceKit/blob/04530298073c3823de72deb0b97e7b38ca7bcb59/tracekit.js
|
|
5
|
+
*/
|
|
6
|
+
const UNKNOWN_FUNCTION = '?';
|
|
7
|
+
export function computeStackTrace(ex) {
|
|
8
|
+
var _a, _b;
|
|
9
|
+
const stack = [];
|
|
10
|
+
let stackProperty = tryToGetString(ex, 'stack');
|
|
11
|
+
const exString = String(ex);
|
|
12
|
+
if (stackProperty && stackProperty.startsWith(exString)) {
|
|
13
|
+
stackProperty = stackProperty.slice(exString.length);
|
|
14
|
+
}
|
|
15
|
+
if (stackProperty) {
|
|
16
|
+
stackProperty.split('\n').forEach((line) => {
|
|
17
|
+
const stackFrame = parseChromeLine(line) || parseChromeAnonymousLine(line) || parseWinLine(line) || parseGeckoLine(line);
|
|
18
|
+
if (stackFrame) {
|
|
19
|
+
if (!stackFrame.func && stackFrame.line) {
|
|
20
|
+
stackFrame.func = UNKNOWN_FUNCTION;
|
|
21
|
+
}
|
|
22
|
+
stack.push(stackFrame);
|
|
23
|
+
}
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
if (stack.length > 0 && isWronglyReportingCustomErrors() && ex instanceof Error) {
|
|
27
|
+
// if we are wrongly reporting custom errors
|
|
28
|
+
const constructors = [];
|
|
29
|
+
// go through each inherited constructor
|
|
30
|
+
let currentPrototype = ex;
|
|
31
|
+
while ((currentPrototype = Object.getPrototypeOf(currentPrototype)) &&
|
|
32
|
+
isNonNativeClassPrototype(currentPrototype)) {
|
|
33
|
+
const constructorName = ((_a = currentPrototype.constructor) === null || _a === void 0 ? void 0 : _a.name) || UNKNOWN_FUNCTION;
|
|
34
|
+
constructors.push(constructorName);
|
|
35
|
+
}
|
|
36
|
+
// traverse the stacktrace in reverse order because the stacktrace starts with the last inherited constructor
|
|
37
|
+
// we check constructor names to ensure we remove the correct frame (and there isn't a weird unsupported environment behavior)
|
|
38
|
+
for (let i = constructors.length - 1; i >= 0 && ((_b = stack[0]) === null || _b === void 0 ? void 0 : _b.func) === constructors[i]; i--) {
|
|
39
|
+
// if the first stack frame is the custom error constructor
|
|
40
|
+
// null stack frames may represent frames that failed to be parsed because the error class did not have a constructor
|
|
41
|
+
stack.shift(); // remove it
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return {
|
|
45
|
+
message: tryToGetString(ex, 'message'),
|
|
46
|
+
name: tryToGetString(ex, 'name'),
|
|
47
|
+
stack,
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const fileUrl = '((?:file|https?|blob|chrome-extension|electron|native|eval|webpack|snippet|<anonymous>|\\w+\\.|\\/).*?)';
|
|
51
|
+
const filePosition = '(?::(\\d+))';
|
|
52
|
+
const CHROME_LINE_RE = new RegExp(`^\\s*at (.*?) ?\\(${fileUrl}${filePosition}?${filePosition}?\\)?\\s*$`, 'i');
|
|
53
|
+
const CHROME_EVAL_RE = new RegExp(`\\((\\S*)${filePosition}${filePosition}\\)`);
|
|
54
|
+
function parseChromeLine(line) {
|
|
55
|
+
const parts = CHROME_LINE_RE.exec(line);
|
|
56
|
+
if (!parts) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line
|
|
60
|
+
const isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line
|
|
61
|
+
const submatch = CHROME_EVAL_RE.exec(parts[2]);
|
|
62
|
+
if (isEval && submatch) {
|
|
63
|
+
// throw out eval line/column and use top-most line/column number
|
|
64
|
+
parts[2] = submatch[1]; // url
|
|
65
|
+
parts[3] = submatch[2]; // line
|
|
66
|
+
parts[4] = submatch[3]; // column
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
args: isNative ? [parts[2]] : [],
|
|
70
|
+
column: parts[4] ? +parts[4] : undefined,
|
|
71
|
+
func: parts[1] || UNKNOWN_FUNCTION,
|
|
72
|
+
line: parts[3] ? +parts[3] : undefined,
|
|
73
|
+
url: !isNative ? parts[2] : undefined,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
const CHROME_ANONYMOUS_FUNCTION_RE = new RegExp(`^\\s*at ?${fileUrl}${filePosition}?${filePosition}??\\s*$`, 'i');
|
|
77
|
+
function parseChromeAnonymousLine(line) {
|
|
78
|
+
const parts = CHROME_ANONYMOUS_FUNCTION_RE.exec(line);
|
|
79
|
+
if (!parts) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
args: [],
|
|
84
|
+
column: parts[3] ? +parts[3] : undefined,
|
|
85
|
+
func: UNKNOWN_FUNCTION,
|
|
86
|
+
line: parts[2] ? +parts[2] : undefined,
|
|
87
|
+
url: parts[1],
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
const WINJS_LINE_RE = /^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;
|
|
91
|
+
function parseWinLine(line) {
|
|
92
|
+
const parts = WINJS_LINE_RE.exec(line);
|
|
93
|
+
if (!parts) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
args: [],
|
|
98
|
+
column: parts[4] ? +parts[4] : undefined,
|
|
99
|
+
func: parts[1] || UNKNOWN_FUNCTION,
|
|
100
|
+
line: +parts[3],
|
|
101
|
+
url: parts[2],
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
const GECKO_LINE_RE = /^\s*(.*?)(?:\((.*?)\))?(?:(?:(?:^|@)((?:file|https?|blob|chrome|webpack|resource|capacitor|\[native).*?|[^@]*bundle|\[wasm code\])(?::(\d+))?(?::(\d+))?)|@)\s*$/i;
|
|
105
|
+
const GECKO_EVAL_RE = /(\S+) line (\d+)(?: > eval line \d+)* > eval/i;
|
|
106
|
+
function parseGeckoLine(line) {
|
|
107
|
+
const parts = GECKO_LINE_RE.exec(line);
|
|
108
|
+
if (!parts) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
const isEval = parts[3] && parts[3].indexOf(' > eval') > -1;
|
|
112
|
+
const submatch = GECKO_EVAL_RE.exec(parts[3]);
|
|
113
|
+
if (isEval && submatch) {
|
|
114
|
+
// throw out eval line/column and use top-most line number
|
|
115
|
+
parts[3] = submatch[1];
|
|
116
|
+
parts[4] = submatch[2];
|
|
117
|
+
parts[5] = undefined; // no column when eval
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
args: parts[2] ? parts[2].split(',') : [],
|
|
121
|
+
column: parts[5] ? +parts[5] : undefined,
|
|
122
|
+
func: parts[1] || UNKNOWN_FUNCTION,
|
|
123
|
+
line: parts[4] ? +parts[4] : undefined,
|
|
124
|
+
url: parts[3],
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function tryToGetString(candidate, property) {
|
|
128
|
+
if (typeof candidate !== 'object' || !candidate || !(property in candidate)) {
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
const value = candidate[property];
|
|
132
|
+
return typeof value === 'string' ? value : undefined;
|
|
133
|
+
}
|
|
134
|
+
export function computeStackTraceFromOnErrorMessage(messageObj, url, line, column) {
|
|
135
|
+
if (url === undefined) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const { name, message } = tryToParseMessage(messageObj);
|
|
139
|
+
return {
|
|
140
|
+
name,
|
|
141
|
+
message,
|
|
142
|
+
stack: [{ url, column, line }],
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error#Error_types
|
|
146
|
+
const ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?([\s\S]*)$/;
|
|
147
|
+
function tryToParseMessage(messageObj) {
|
|
148
|
+
let name;
|
|
149
|
+
let message;
|
|
150
|
+
if ({}.toString.call(messageObj) === '[object String]') {
|
|
151
|
+
;
|
|
152
|
+
[, name, message] = ERROR_TYPES_RE.exec(messageObj);
|
|
153
|
+
}
|
|
154
|
+
return { name, message };
|
|
155
|
+
}
|
|
156
|
+
// Custom error stacktrace fix
|
|
157
|
+
// Some browsers (safari/firefox) add the error constructor as a frame in the stacktrace
|
|
158
|
+
// In order to normalize the stacktrace, we need to remove it
|
|
159
|
+
function isNonNativeClassPrototype(prototype) {
|
|
160
|
+
return String(prototype.constructor).startsWith('class ');
|
|
161
|
+
}
|
|
162
|
+
let isWronglyReportingCustomErrorsCache;
|
|
163
|
+
function isWronglyReportingCustomErrors() {
|
|
164
|
+
if (isWronglyReportingCustomErrorsCache !== undefined) {
|
|
165
|
+
return isWronglyReportingCustomErrorsCache;
|
|
166
|
+
}
|
|
167
|
+
/* eslint-disable no-restricted-syntax */
|
|
168
|
+
class DatadogTestCustomError extends Error {
|
|
169
|
+
constructor() {
|
|
170
|
+
super();
|
|
171
|
+
this.name = 'Error'; // set name to Error so that no browser would default to the constructor name
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
const [customError, nativeError] = [DatadogTestCustomError, Error].map((errConstructor) => new errConstructor()); // so that both errors should exactly have the same stacktrace
|
|
175
|
+
isWronglyReportingCustomErrorsCache =
|
|
176
|
+
// If customError is not a class, it means that this was built with ES5 as target, converting the class to a normal object.
|
|
177
|
+
// Thus, error constructors will be reported on all browsers, which is the expected behavior.
|
|
178
|
+
isNonNativeClassPrototype(Object.getPrototypeOf(customError)) &&
|
|
179
|
+
// If the browser is correctly reporting the stacktrace, the normal error stacktrace should be the same as the custom error stacktrace
|
|
180
|
+
nativeError.stack !== customError.stack;
|
|
181
|
+
return isWronglyReportingCustomErrorsCache;
|
|
182
|
+
}
|
|
183
|
+
//# sourceMappingURL=computeStackTrace.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"computeStackTrace.js","sourceRoot":"","sources":["../../../src/tools/stackTrace/computeStackTrace.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { StackTrace } from './computeStackTrace';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a stacktrace without SDK internal frames.
|
|
4
|
+
* Constraints:
|
|
5
|
+
* - Has to be called at the utmost position of the call stack.
|
|
6
|
+
* - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.
|
|
7
|
+
*/
|
|
8
|
+
export declare function createHandlingStack(type: 'console error' | 'action' | 'error' | 'instrumented method' | 'log' | 'react error'): string;
|
|
9
|
+
export declare function toStackTraceString(stack: StackTrace): string;
|
|
10
|
+
export declare function formatErrorMessage(stack: StackTrace): string;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { callMonitored } from '../monitor';
|
|
2
|
+
import { computeStackTrace } from './computeStackTrace';
|
|
3
|
+
/**
|
|
4
|
+
* Creates a stacktrace without SDK internal frames.
|
|
5
|
+
* Constraints:
|
|
6
|
+
* - Has to be called at the utmost position of the call stack.
|
|
7
|
+
* - No monitored function should encapsulate it, that is why we need to use callMonitored inside it.
|
|
8
|
+
*/
|
|
9
|
+
export function createHandlingStack(type) {
|
|
10
|
+
/**
|
|
11
|
+
* Skip the two internal frames:
|
|
12
|
+
* - SDK API (console.error, ...)
|
|
13
|
+
* - this function
|
|
14
|
+
* in order to keep only the user calls
|
|
15
|
+
*/
|
|
16
|
+
const internalFramesToSkip = 2;
|
|
17
|
+
const error = new Error(type);
|
|
18
|
+
error.name = 'HandlingStack';
|
|
19
|
+
let formattedStack;
|
|
20
|
+
callMonitored(() => {
|
|
21
|
+
const stackTrace = computeStackTrace(error);
|
|
22
|
+
stackTrace.stack = stackTrace.stack.slice(internalFramesToSkip);
|
|
23
|
+
formattedStack = toStackTraceString(stackTrace);
|
|
24
|
+
});
|
|
25
|
+
return formattedStack;
|
|
26
|
+
}
|
|
27
|
+
export function toStackTraceString(stack) {
|
|
28
|
+
let result = formatErrorMessage(stack);
|
|
29
|
+
stack.stack.forEach((frame) => {
|
|
30
|
+
const func = frame.func === '?' ? '<anonymous>' : frame.func;
|
|
31
|
+
const args = frame.args && frame.args.length > 0 ? `(${frame.args.join(', ')})` : '';
|
|
32
|
+
const line = frame.line ? `:${frame.line}` : '';
|
|
33
|
+
const column = frame.line && frame.column ? `:${frame.column}` : '';
|
|
34
|
+
result += `\n at ${func}${args} @ ${frame.url}${line}${column}`;
|
|
35
|
+
});
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
export function formatErrorMessage(stack) {
|
|
39
|
+
return `${stack.name || 'Error'}: ${stack.message}`;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=handlingStack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handlingStack.js","sourceRoot":"","sources":["../../../src/tools/stackTrace/handlingStack.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAE1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;;;;GAKG;AACH,MAAM,UAAU,mBAAmB,CACjC,IAA0F;IAE1F;;;;;OAKG;IACH,MAAM,oBAAoB,GAAG,CAAC,CAAA;IAC9B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7B,KAAK,CAAC,IAAI,GAAG,eAAe,CAAA;IAC5B,IAAI,cAAsB,CAAA;IAE1B,aAAa,CAAC,GAAG,EAAE;QACjB,MAAM,UAAU,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;QAC3C,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAC/D,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAA;IACjD,CAAC,CAAC,CAAA;IAEF,OAAO,cAAe,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IAClD,IAAI,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAA;IACtC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAA;QAC5D,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAA;QACpF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAA;QACnE,MAAM,IAAI,UAAU,IAAK,GAAG,IAAI,MAAM,KAAK,CAAC,GAAI,GAAG,IAAI,GAAG,MAAM,EAAE,CAAA;IACpE,CAAC,CAAC,CAAA;IACF,OAAO,MAAM,CAAA;AACf,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IAClD,OAAO,GAAG,KAAK,CAAC,IAAI,IAAI,OAAO,KAAK,KAAK,CAAC,OAAQ,EAAE,CAAA;AACtD,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Maximum amount of time allocated to running tasks when a timeout (`IDLE_CALLBACK_TIMEOUT`) is
|
|
3
|
+
* reached. We should not run tasks for too long as it will hurt performance, but we should still
|
|
4
|
+
* run some tasks to avoid postponing them forever.
|
|
5
|
+
*
|
|
6
|
+
* Rational: Running tasks for 30ms every second (IDLE_CALLBACK_TIMEOUT) should be acceptable.
|
|
7
|
+
*/
|
|
8
|
+
export declare const MAX_EXECUTION_TIME_ON_TIMEOUT = 30;
|
|
9
|
+
export interface TaskQueue {
|
|
10
|
+
push(task: Task): void;
|
|
11
|
+
stop(): void;
|
|
12
|
+
}
|
|
13
|
+
type Task = () => void;
|
|
14
|
+
export declare function createTaskQueue(): TaskQueue;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { ONE_SECOND } from './utils/timeUtils';
|
|
2
|
+
import { requestIdleCallback } from './requestIdleCallback';
|
|
3
|
+
/**
|
|
4
|
+
* Maximum delay before starting to execute tasks in the queue. We don't want to wait too long
|
|
5
|
+
* before running tasks, as it might hurt reliability (ex: if the user navigates away, we might lose
|
|
6
|
+
* the opportunity to send some data). We also don't want to run tasks too often, as it might hurt
|
|
7
|
+
* performance.
|
|
8
|
+
*/
|
|
9
|
+
const IDLE_CALLBACK_TIMEOUT = ONE_SECOND;
|
|
10
|
+
/**
|
|
11
|
+
* Maximum amount of time allocated to running tasks when a timeout (`IDLE_CALLBACK_TIMEOUT`) is
|
|
12
|
+
* reached. We should not run tasks for too long as it will hurt performance, but we should still
|
|
13
|
+
* run some tasks to avoid postponing them forever.
|
|
14
|
+
*
|
|
15
|
+
* Rational: Running tasks for 30ms every second (IDLE_CALLBACK_TIMEOUT) should be acceptable.
|
|
16
|
+
*/
|
|
17
|
+
export const MAX_EXECUTION_TIME_ON_TIMEOUT = 30;
|
|
18
|
+
export function createTaskQueue() {
|
|
19
|
+
const pendingTasks = [];
|
|
20
|
+
function run(deadline) {
|
|
21
|
+
let executionTimeRemaining;
|
|
22
|
+
if (deadline.didTimeout) {
|
|
23
|
+
const start = performance.now();
|
|
24
|
+
executionTimeRemaining = () => MAX_EXECUTION_TIME_ON_TIMEOUT - (performance.now() - start);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
executionTimeRemaining = deadline.timeRemaining.bind(deadline);
|
|
28
|
+
}
|
|
29
|
+
while (executionTimeRemaining() > 0 && pendingTasks.length) {
|
|
30
|
+
pendingTasks.shift()();
|
|
31
|
+
}
|
|
32
|
+
if (pendingTasks.length) {
|
|
33
|
+
scheduleNextRun();
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function scheduleNextRun() {
|
|
37
|
+
requestIdleCallback(run, { timeout: IDLE_CALLBACK_TIMEOUT });
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
push(task) {
|
|
41
|
+
if (pendingTasks.push(task) === 1) {
|
|
42
|
+
scheduleNextRun();
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
stop() {
|
|
46
|
+
pendingTasks.length = 0;
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=taskQueue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"taskQueue.js","sourceRoot":"","sources":["../../src/tools/taskQueue.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D;;;;;GAKG;AACH,MAAM,qBAAqB,GAAG,UAAU,CAAA;AAExC;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,6BAA6B,GAAG,EAAE,CAAA;AAS/C,MAAM,UAAU,eAAe;IAC7B,MAAM,YAAY,GAAW,EAAE,CAAA;IAE/B,SAAS,GAAG,CAAC,QAAsB;QACjC,IAAI,sBAAoC,CAAA;QACxC,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;YAC/B,sBAAsB,GAAG,GAAG,EAAE,CAAC,6BAA6B,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,CAAA;QAC5F,CAAC;aAAM,CAAC;YACN,sBAAsB,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QAChE,CAAC;QAED,OAAO,sBAAsB,EAAE,GAAG,CAAC,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YAC3D,YAAY,CAAC,KAAK,EAAG,EAAE,CAAA;QACzB,CAAC;QAED,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;YACxB,eAAe,EAAE,CAAA;QACnB,CAAC;IACH,CAAC;IAED,SAAS,eAAe;QACtB,mBAAmB,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,qBAAqB,EAAE,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO;QACL,IAAI,CAAC,IAAI;YACP,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,eAAe,EAAE,CAAA;YACnB,CAAC;QACH,CAAC;QACD,IAAI;YACF,YAAY,CAAC,MAAM,GAAG,CAAC,CAAA;QACzB,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type TimeoutId = ReturnType<typeof globalThis.setTimeout>;
|
|
2
|
+
export declare function setTimeout(callback: () => void, delay?: number): TimeoutId;
|
|
3
|
+
export declare function clearTimeout(timeoutId: TimeoutId | undefined): void;
|
|
4
|
+
export declare function setInterval(callback: () => void, delay?: number): TimeoutId;
|
|
5
|
+
export declare function clearInterval(timeoutId: TimeoutId | undefined): void;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { getZoneJsOriginalValue } from './getZoneJsOriginalValue';
|
|
2
|
+
import { monitor } from './monitor';
|
|
3
|
+
import { getGlobalObject } from './globalObject';
|
|
4
|
+
export function setTimeout(callback, delay) {
|
|
5
|
+
return getZoneJsOriginalValue(getGlobalObject(), 'setTimeout')(monitor(callback), delay);
|
|
6
|
+
}
|
|
7
|
+
export function clearTimeout(timeoutId) {
|
|
8
|
+
getZoneJsOriginalValue(getGlobalObject(), 'clearTimeout')(timeoutId);
|
|
9
|
+
}
|
|
10
|
+
export function setInterval(callback, delay) {
|
|
11
|
+
return getZoneJsOriginalValue(getGlobalObject(), 'setInterval')(monitor(callback), delay);
|
|
12
|
+
}
|
|
13
|
+
export function clearInterval(timeoutId) {
|
|
14
|
+
getZoneJsOriginalValue(getGlobalObject(), 'clearInterval')(timeoutId);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=timer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"timer.js","sourceRoot":"","sources":["../../src/tools/timer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAIhD,MAAM,UAAU,UAAU,CAAC,QAAoB,EAAE,KAAc;IAC7D,OAAO,sBAAsB,CAAC,eAAe,EAAE,EAAE,YAAY,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAA;AAC1F,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,SAAgC;IAC3D,sBAAsB,CAAC,eAAe,EAAE,EAAE,cAAc,CAAC,CAAC,SAAS,CAAC,CAAA;AACtE,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,QAAoB,EAAE,KAAc;IAC9D,OAAO,sBAAsB,CAAC,eAAe,EAAE,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,CAAA;AAC3F,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,SAAgC;IAC5D,sBAAsB,CAAC,eAAe,EAAE,EAAE,eAAe,CAAC,CAAC,SAAS,CAAC,CAAA;AACvE,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function removeDuplicates(array) {
|
|
2
|
+
const set = new Set();
|
|
3
|
+
array.forEach((item) => set.add(item));
|
|
4
|
+
return Array.from(set);
|
|
5
|
+
}
|
|
6
|
+
export function removeItem(array, item) {
|
|
7
|
+
const index = array.indexOf(item);
|
|
8
|
+
if (index >= 0) {
|
|
9
|
+
array.splice(index, 1);
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
export function isNonEmptyArray(value) {
|
|
13
|
+
return Array.isArray(value) && value.length > 0;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=arrayUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrayUtils.js","sourceRoot":"","sources":["../../../src/tools/utils/arrayUtils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,gBAAgB,CAAI,KAAU;IAC5C,MAAM,GAAG,GAAG,IAAI,GAAG,EAAK,CAAA;IACxB,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAA;IACtC,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAED,MAAM,UAAU,UAAU,CAAI,KAAU,EAAE,IAAO;IAC/C,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACjC,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;QACf,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACxB,CAAC;AACH,CAAC;AACD,MAAM,UAAU,eAAe,CAAI,KAAc;IAC/C,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAA;AACjD,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export function isChromium() {
|
|
2
|
+
return detectBrowserCached() === 0 /* Browser.CHROMIUM */;
|
|
3
|
+
}
|
|
4
|
+
export function isSafari() {
|
|
5
|
+
return detectBrowserCached() === 1 /* Browser.SAFARI */;
|
|
6
|
+
}
|
|
7
|
+
let browserCache;
|
|
8
|
+
function detectBrowserCached() {
|
|
9
|
+
return browserCache !== null && browserCache !== void 0 ? browserCache : (browserCache = detectBrowser());
|
|
10
|
+
}
|
|
11
|
+
// Exported only for tests
|
|
12
|
+
export function detectBrowser(browserWindow = window) {
|
|
13
|
+
var _a;
|
|
14
|
+
const userAgent = browserWindow.navigator.userAgent;
|
|
15
|
+
if (browserWindow.chrome || /HeadlessChrome/.test(userAgent)) {
|
|
16
|
+
return 0 /* Browser.CHROMIUM */;
|
|
17
|
+
}
|
|
18
|
+
if (
|
|
19
|
+
// navigator.vendor is deprecated, but it is the most resilient way we found to detect
|
|
20
|
+
// "Apple maintained browsers" (AKA Safari). If one day it gets removed, we still have the
|
|
21
|
+
// useragent test as a semi-working fallback.
|
|
22
|
+
((_a = browserWindow.navigator.vendor) === null || _a === void 0 ? void 0 : _a.indexOf('Apple')) === 0 ||
|
|
23
|
+
(/safari/i.test(userAgent) && !/chrome|android/i.test(userAgent))) {
|
|
24
|
+
return 1 /* Browser.SAFARI */;
|
|
25
|
+
}
|
|
26
|
+
return 2 /* Browser.OTHER */;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=browserDetection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"browserDetection.js","sourceRoot":"","sources":["../../../src/tools/utils/browserDetection.ts"],"names":[],"mappings":"AAOA,MAAM,UAAU,UAAU;IACxB,OAAO,mBAAmB,EAAE,6BAAqB,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,QAAQ;IACtB,OAAO,mBAAmB,EAAE,2BAAmB,CAAA;AACjD,CAAC;AAED,IAAI,YAAiC,CAAA;AACrC,SAAS,mBAAmB;IAC1B,OAAO,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,CAAC,YAAY,GAAG,aAAa,EAAE,CAAC,CAAA;AACzD,CAAC;AAED,0BAA0B;AAC1B,MAAM,UAAU,aAAa,CAAC,gBAAwB,MAAM;;IAC1D,MAAM,SAAS,GAAG,aAAa,CAAC,SAAS,CAAC,SAAS,CAAA;IACnD,IAAK,aAAqB,CAAC,MAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QACtE,gCAAuB;IACzB,CAAC;IAED;IACE,sFAAsF;IACtF,0FAA0F;IAC1F,6CAA6C;IAC7C,CAAA,MAAA,aAAa,CAAC,SAAS,CAAC,MAAM,0CAAE,OAAO,CAAC,OAAO,CAAC,MAAK,CAAC;QACtD,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EACjE,CAAC;QACD,8BAAqB;IACvB,CAAC;IAED,6BAAoB;AACtB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare const ONE_KIBI_BYTE = 1024;
|
|
2
|
+
export declare const ONE_MEBI_BYTE: number;
|
|
3
|
+
export interface Uint8ArrayBuffer extends Uint8Array {
|
|
4
|
+
readonly buffer: ArrayBuffer;
|
|
5
|
+
subarray(begin?: number, end?: number): Uint8ArrayBuffer;
|
|
6
|
+
}
|
|
7
|
+
export declare function computeBytesCount(candidate: string): number;
|
|
8
|
+
export declare function concatBuffers(buffers: Uint8ArrayBuffer[]): Uint8ArrayBuffer;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
export const ONE_KIBI_BYTE = 1024;
|
|
2
|
+
export const ONE_MEBI_BYTE = 1024 * ONE_KIBI_BYTE;
|
|
3
|
+
// eslint-disable-next-line no-control-regex
|
|
4
|
+
const HAS_MULTI_BYTES_CHARACTERS = /[^\u0000-\u007F]/;
|
|
5
|
+
export function computeBytesCount(candidate) {
|
|
6
|
+
// Accurate bytes count computations can degrade performances when there is a lot of events to process
|
|
7
|
+
if (!HAS_MULTI_BYTES_CHARACTERS.test(candidate)) {
|
|
8
|
+
return candidate.length;
|
|
9
|
+
}
|
|
10
|
+
if (window.TextEncoder !== undefined) {
|
|
11
|
+
return new TextEncoder().encode(candidate).length;
|
|
12
|
+
}
|
|
13
|
+
return new Blob([candidate]).size;
|
|
14
|
+
}
|
|
15
|
+
export function concatBuffers(buffers) {
|
|
16
|
+
const length = buffers.reduce((total, buffer) => total + buffer.length, 0);
|
|
17
|
+
const result = new Uint8Array(length);
|
|
18
|
+
let offset = 0;
|
|
19
|
+
for (const buffer of buffers) {
|
|
20
|
+
result.set(buffer, offset);
|
|
21
|
+
offset += buffer.length;
|
|
22
|
+
}
|
|
23
|
+
return result;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=byteUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"byteUtils.js","sourceRoot":"","sources":["../../../src/tools/utils/byteUtils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAA;AACjC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,aAAa,CAAA;AAEjD,4CAA4C;AAC5C,MAAM,0BAA0B,GAAG,kBAAkB,CAAA;AAQrD,MAAM,UAAU,iBAAiB,CAAC,SAAiB;IACjD,sGAAsG;IACtG,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAChD,OAAO,SAAS,CAAC,MAAM,CAAA;IACzB,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;QACrC,OAAO,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,MAAM,CAAA;IACnD,CAAC;IAED,OAAO,IAAI,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;AACnC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,OAA2B;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;IAC1E,MAAM,MAAM,GAAqB,IAAI,UAAU,CAAC,MAAM,CAAC,CAAA;IACvD,IAAI,MAAM,GAAG,CAAC,CAAA;IACd,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC1B,MAAM,IAAI,MAAM,CAAC,MAAM,CAAA;IACzB,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare function throttle<T extends (...args: any[]) => void>(fn: T, wait: number, options?: {
|
|
2
|
+
leading?: boolean;
|
|
3
|
+
trailing?: boolean;
|
|
4
|
+
}): {
|
|
5
|
+
throttled: (...parameters: Parameters<T>) => void;
|
|
6
|
+
cancel: () => void;
|
|
7
|
+
};
|
|
8
|
+
export declare function noop(): void;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { setTimeout, clearTimeout } from '../timer';
|
|
2
|
+
// use lodash API
|
|
3
|
+
export function throttle(fn, wait, options) {
|
|
4
|
+
const needLeadingExecution = options && options.leading !== undefined ? options.leading : true;
|
|
5
|
+
const needTrailingExecution = options && options.trailing !== undefined ? options.trailing : true;
|
|
6
|
+
let inWaitPeriod = false;
|
|
7
|
+
let pendingExecutionWithParameters;
|
|
8
|
+
let pendingTimeoutId;
|
|
9
|
+
return {
|
|
10
|
+
throttled: (...parameters) => {
|
|
11
|
+
if (inWaitPeriod) {
|
|
12
|
+
pendingExecutionWithParameters = parameters;
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
if (needLeadingExecution) {
|
|
16
|
+
fn(...parameters);
|
|
17
|
+
}
|
|
18
|
+
else {
|
|
19
|
+
pendingExecutionWithParameters = parameters;
|
|
20
|
+
}
|
|
21
|
+
inWaitPeriod = true;
|
|
22
|
+
pendingTimeoutId = setTimeout(() => {
|
|
23
|
+
if (needTrailingExecution && pendingExecutionWithParameters) {
|
|
24
|
+
fn(...pendingExecutionWithParameters);
|
|
25
|
+
}
|
|
26
|
+
inWaitPeriod = false;
|
|
27
|
+
pendingExecutionWithParameters = undefined;
|
|
28
|
+
}, wait);
|
|
29
|
+
},
|
|
30
|
+
cancel: () => {
|
|
31
|
+
clearTimeout(pendingTimeoutId);
|
|
32
|
+
inWaitPeriod = false;
|
|
33
|
+
pendingExecutionWithParameters = undefined;
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
38
|
+
export function noop() { }
|
|
39
|
+
//# sourceMappingURL=functionUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"functionUtils.js","sourceRoot":"","sources":["../../../src/tools/utils/functionUtils.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAEnD,iBAAiB;AACjB,MAAM,UAAU,QAAQ,CACtB,EAAK,EACL,IAAY,EACZ,OAAmD;IAEnD,MAAM,oBAAoB,GAAG,OAAO,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAA;IAC9F,MAAM,qBAAqB,GAAG,OAAO,IAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA;IACjG,IAAI,YAAY,GAAG,KAAK,CAAA;IACxB,IAAI,8BAAyD,CAAA;IAC7D,IAAI,gBAA2B,CAAA;IAE/B,OAAO;QACL,SAAS,EAAE,CAAC,GAAG,UAAyB,EAAE,EAAE;YAC1C,IAAI,YAAY,EAAE,CAAC;gBACjB,8BAA8B,GAAG,UAAU,CAAA;gBAC3C,OAAM;YACR,CAAC;YACD,IAAI,oBAAoB,EAAE,CAAC;gBACzB,EAAE,CAAC,GAAG,UAAU,CAAC,CAAA;YACnB,CAAC;iBAAM,CAAC;gBACN,8BAA8B,GAAG,UAAU,CAAA;YAC7C,CAAC;YACD,YAAY,GAAG,IAAI,CAAA;YACnB,gBAAgB,GAAG,UAAU,CAAC,GAAG,EAAE;gBACjC,IAAI,qBAAqB,IAAI,8BAA8B,EAAE,CAAC;oBAC5D,EAAE,CAAC,GAAG,8BAA8B,CAAC,CAAA;gBACvC,CAAC;gBACD,YAAY,GAAG,KAAK,CAAA;gBACpB,8BAA8B,GAAG,SAAS,CAAA;YAC5C,CAAC,EAAE,IAAI,CAAC,CAAA;QACV,CAAC;QACD,MAAM,EAAE,GAAG,EAAE;YACX,YAAY,CAAC,gBAAgB,CAAC,CAAA;YAC9B,YAAY,GAAG,KAAK,CAAA;YACpB,8BAA8B,GAAG,SAAS,CAAA;QAC5C,CAAC;KACF,CAAA;AACH,CAAC;AAED,gEAAgE;AAChE,MAAM,UAAU,IAAI,KAAI,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return true if the draw is successful
|
|
3
|
+
*
|
|
4
|
+
* @param threshold - Threshold between 0 and 100
|
|
5
|
+
*/
|
|
6
|
+
export declare function performDraw(threshold: number): boolean;
|
|
7
|
+
export declare function round(num: number, decimals: 0 | 1 | 2 | 3 | 4): number;
|
|
8
|
+
export declare function isPercentage(value: unknown): boolean;
|
|
9
|
+
export declare function isNumber(value: unknown): value is number;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return true if the draw is successful
|
|
3
|
+
*
|
|
4
|
+
* @param threshold - Threshold between 0 and 100
|
|
5
|
+
*/
|
|
6
|
+
export function performDraw(threshold) {
|
|
7
|
+
return threshold !== 0 && Math.random() * 100 <= threshold;
|
|
8
|
+
}
|
|
9
|
+
export function round(num, decimals) {
|
|
10
|
+
return +num.toFixed(decimals);
|
|
11
|
+
}
|
|
12
|
+
export function isPercentage(value) {
|
|
13
|
+
return isNumber(value) && value >= 0 && value <= 100;
|
|
14
|
+
}
|
|
15
|
+
export function isNumber(value) {
|
|
16
|
+
return typeof value === 'number';
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=numberUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numberUtils.js","sourceRoot":"","sources":["../../../src/tools/utils/numberUtils.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,SAAiB;IAC3C,OAAO,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,SAAS,CAAA;AAC5D,CAAC;AAED,MAAM,UAAU,KAAK,CAAC,GAAW,EAAE,QAA2B;IAC5D,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;AAC/B,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,OAAO,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,KAAK,IAAI,GAAG,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,KAAc;IACrC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAA;AAClC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export declare function shallowClone<T>(object: T): T & Record<string, never>;
|
|
2
|
+
export declare function objectHasValue<T extends {
|
|
3
|
+
[key: string]: unknown;
|
|
4
|
+
}>(object: T, value: unknown): value is T[keyof T];
|
|
5
|
+
export declare function isEmptyObject(object: object): boolean;
|
|
6
|
+
export declare function mapValues<A, B>(object: {
|
|
7
|
+
[key: string]: A;
|
|
8
|
+
}, fn: (arg: A) => B): {
|
|
9
|
+
[key: string]: B;
|
|
10
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export function shallowClone(object) {
|
|
2
|
+
return { ...object };
|
|
3
|
+
}
|
|
4
|
+
export function objectHasValue(object, value) {
|
|
5
|
+
return Object.keys(object).some((key) => object[key] === value);
|
|
6
|
+
}
|
|
7
|
+
export function isEmptyObject(object) {
|
|
8
|
+
return Object.keys(object).length === 0;
|
|
9
|
+
}
|
|
10
|
+
export function mapValues(object, fn) {
|
|
11
|
+
const newObject = {};
|
|
12
|
+
for (const key of Object.keys(object)) {
|
|
13
|
+
newObject[key] = fn(object[key]);
|
|
14
|
+
}
|
|
15
|
+
return newObject;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=objectUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"objectUtils.js","sourceRoot":"","sources":["../../../src/tools/utils/objectUtils.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,YAAY,CAAI,MAAS;IACvC,OAAO,EAAE,GAAG,MAAM,EAA+B,CAAA;AACnD,CAAC;AAED,MAAM,UAAU,cAAc,CAAuC,MAAS,EAAE,KAAc;IAC5F,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,CAAA;AACjE,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,MAAc;IAC1C,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,CAAA;AACzC,CAAC;AAED,MAAM,UAAU,SAAS,CAAO,MAA4B,EAAE,EAAiB;IAC7E,MAAM,SAAS,GAAyB,EAAE,CAAA;IAC1C,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACtC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;IAClC,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function findLast<T, S extends T>(array: readonly T[], predicate: (item: T, index: number, array: readonly T[]) => item is S): S | undefined;
|
|
2
|
+
export declare function objectValues<T = unknown>(object: {
|
|
3
|
+
[key: string]: T;
|
|
4
|
+
}): T[];
|
|
5
|
+
export declare function objectEntries<T = unknown>(object: {
|
|
6
|
+
[key: string]: T;
|
|
7
|
+
}): Array<[string, T]>;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export function findLast(array, predicate) {
|
|
2
|
+
for (let i = array.length - 1; i >= 0; i -= 1) {
|
|
3
|
+
const item = array[i];
|
|
4
|
+
if (predicate(item, i, array)) {
|
|
5
|
+
return item;
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
return undefined;
|
|
9
|
+
}
|
|
10
|
+
// Keep the following wrapper functions as it can be mangled and will result in smaller bundle size that using
|
|
11
|
+
// the native Object.values and Object.entries directly
|
|
12
|
+
export function objectValues(object) {
|
|
13
|
+
return Object.values(object);
|
|
14
|
+
}
|
|
15
|
+
export function objectEntries(object) {
|
|
16
|
+
return Object.entries(object);
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=polyfills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polyfills.js","sourceRoot":"","sources":["../../../src/tools/utils/polyfills.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,QAAQ,CACtB,KAAmB,EACnB,SAAqE;IAErE,KAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAED,8GAA8G;AAC9G,uDAAuD;AAEvD,MAAM,UAAU,YAAY,CAAc,MAA4B;IACpE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;AAC9B,CAAC;AAED,MAAM,UAAU,aAAa,CAAc,MAA4B;IACrE,OAAO,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;AAC/B,CAAC"}
|