@scalebun/web 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +59 -0
- package/dist/bootstrap/FeatureRegistry.d.ts +44 -0
- package/dist/bootstrap/FeatureRegistry.d.ts.map +1 -0
- package/dist/bootstrap/FeatureRegistry.js +85 -0
- package/dist/bootstrap/FeatureRegistry.js.map +1 -0
- package/dist/bootstrap/SDKBootstrapper.d.ts +37 -0
- package/dist/bootstrap/SDKBootstrapper.d.ts.map +1 -0
- package/dist/bootstrap/SDKBootstrapper.js +248 -0
- package/dist/bootstrap/SDKBootstrapper.js.map +1 -0
- package/dist/browser.d.ts +51 -0
- package/dist/browser.d.ts.map +1 -0
- package/dist/browser.js +81 -0
- package/dist/browser.js.map +1 -0
- package/dist/config/schema.d.ts +108 -0
- package/dist/config/schema.d.ts.map +1 -0
- package/dist/config/schema.js +95 -0
- package/dist/config/schema.js.map +1 -0
- package/dist/core/breadcrumbs.d.ts +56 -0
- package/dist/core/breadcrumbs.d.ts.map +1 -0
- package/dist/core/breadcrumbs.js +141 -0
- package/dist/core/breadcrumbs.js.map +1 -0
- package/dist/core/capabilities.d.ts +38 -0
- package/dist/core/capabilities.d.ts.map +1 -0
- package/dist/core/capabilities.js +78 -0
- package/dist/core/capabilities.js.map +1 -0
- package/dist/core/consent.d.ts +17 -0
- package/dist/core/consent.d.ts.map +1 -0
- package/dist/core/consent.js +38 -0
- package/dist/core/consent.js.map +1 -0
- package/dist/core/csp.d.ts +31 -0
- package/dist/core/csp.d.ts.map +1 -0
- package/dist/core/csp.js +74 -0
- package/dist/core/csp.js.map +1 -0
- package/dist/core/evalContext.d.ts +7 -0
- package/dist/core/evalContext.d.ts.map +1 -0
- package/dist/core/evalContext.js +22 -0
- package/dist/core/evalContext.js.map +1 -0
- package/dist/core/ids.d.ts +6 -0
- package/dist/core/ids.d.ts.map +1 -0
- package/dist/core/ids.js +35 -0
- package/dist/core/ids.js.map +1 -0
- package/dist/core/index.d.ts +15 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +15 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/lifecycle.d.ts +4 -0
- package/dist/core/lifecycle.d.ts.map +1 -0
- package/dist/core/lifecycle.js +24 -0
- package/dist/core/lifecycle.js.map +1 -0
- package/dist/core/logger.d.ts +12 -0
- package/dist/core/logger.d.ts.map +1 -0
- package/dist/core/logger.js +14 -0
- package/dist/core/logger.js.map +1 -0
- package/dist/core/observe.d.ts +3 -0
- package/dist/core/observe.d.ts.map +1 -0
- package/dist/core/observe.js +22 -0
- package/dist/core/observe.js.map +1 -0
- package/dist/core/pageContext.d.ts +13 -0
- package/dist/core/pageContext.d.ts.map +1 -0
- package/dist/core/pageContext.js +73 -0
- package/dist/core/pageContext.js.map +1 -0
- package/dist/core/prune.d.ts +7 -0
- package/dist/core/prune.d.ts.map +1 -0
- package/dist/core/prune.js +31 -0
- package/dist/core/prune.js.map +1 -0
- package/dist/core/redact.d.ts +15 -0
- package/dist/core/redact.d.ts.map +1 -0
- package/dist/core/redact.js +50 -0
- package/dist/core/redact.js.map +1 -0
- package/dist/core/replayCoord.d.ts +22 -0
- package/dist/core/replayCoord.d.ts.map +1 -0
- package/dist/core/replayCoord.js +20 -0
- package/dist/core/replayCoord.js.map +1 -0
- package/dist/core/retry.d.ts +25 -0
- package/dist/core/retry.d.ts.map +1 -0
- package/dist/core/retry.js +44 -0
- package/dist/core/retry.js.map +1 -0
- package/dist/core/runtime.d.ts +28 -0
- package/dist/core/runtime.d.ts.map +1 -0
- package/dist/core/runtime.js +67 -0
- package/dist/core/runtime.js.map +1 -0
- package/dist/core/scrollDepth.d.ts +48 -0
- package/dist/core/scrollDepth.d.ts.map +1 -0
- package/dist/core/scrollDepth.js +63 -0
- package/dist/core/scrollDepth.js.map +1 -0
- package/dist/debug/index.d.ts +6 -0
- package/dist/debug/index.d.ts.map +1 -0
- package/dist/debug/index.js +2 -0
- package/dist/debug/index.js.map +1 -0
- package/dist/features/analytics/AnalyticsFeature.d.ts +122 -0
- package/dist/features/analytics/AnalyticsFeature.d.ts.map +1 -0
- package/dist/features/analytics/AnalyticsFeature.js +757 -0
- package/dist/features/analytics/AnalyticsFeature.js.map +1 -0
- package/dist/features/analytics/autocapture.d.ts +13 -0
- package/dist/features/analytics/autocapture.d.ts.map +1 -0
- package/dist/features/analytics/autocapture.js +398 -0
- package/dist/features/analytics/autocapture.js.map +1 -0
- package/dist/features/analytics/governance.d.ts +15 -0
- package/dist/features/analytics/governance.d.ts.map +1 -0
- package/dist/features/analytics/governance.js +30 -0
- package/dist/features/analytics/governance.js.map +1 -0
- package/dist/features/analytics/revenue.d.ts +38 -0
- package/dist/features/analytics/revenue.d.ts.map +1 -0
- package/dist/features/analytics/revenue.js +26 -0
- package/dist/features/analytics/revenue.js.map +1 -0
- package/dist/features/analytics/sampler.d.ts +2 -0
- package/dist/features/analytics/sampler.d.ts.map +1 -0
- package/dist/features/analytics/sampler.js +24 -0
- package/dist/features/analytics/sampler.js.map +1 -0
- package/dist/features/analytics/subscription.d.ts +25 -0
- package/dist/features/analytics/subscription.d.ts.map +1 -0
- package/dist/features/analytics/subscription.js +51 -0
- package/dist/features/analytics/subscription.js.map +1 -0
- package/dist/features/attention/index.d.ts +29 -0
- package/dist/features/attention/index.d.ts.map +1 -0
- package/dist/features/attention/index.js +128 -0
- package/dist/features/attention/index.js.map +1 -0
- package/dist/features/bugreport/BugReportFeature.d.ts +36 -0
- package/dist/features/bugreport/BugReportFeature.d.ts.map +1 -0
- package/dist/features/bugreport/BugReportFeature.js +55 -0
- package/dist/features/bugreport/BugReportFeature.js.map +1 -0
- package/dist/features/bugreport/collect.d.ts +21 -0
- package/dist/features/bugreport/collect.d.ts.map +1 -0
- package/dist/features/bugreport/collect.js +27 -0
- package/dist/features/bugreport/collect.js.map +1 -0
- package/dist/features/bugreport/widget.d.ts +21 -0
- package/dist/features/bugreport/widget.d.ts.map +1 -0
- package/dist/features/bugreport/widget.js +111 -0
- package/dist/features/bugreport/widget.js.map +1 -0
- package/dist/features/coach/CoachmarkFeature.d.ts +78 -0
- package/dist/features/coach/CoachmarkFeature.d.ts.map +1 -0
- package/dist/features/coach/CoachmarkFeature.js +161 -0
- package/dist/features/coach/CoachmarkFeature.js.map +1 -0
- package/dist/features/coach/anchor.d.ts +32 -0
- package/dist/features/coach/anchor.d.ts.map +1 -0
- package/dist/features/coach/anchor.js +128 -0
- package/dist/features/coach/anchor.js.map +1 -0
- package/dist/features/coach/observers.d.ts +17 -0
- package/dist/features/coach/observers.d.ts.map +1 -0
- package/dist/features/coach/observers.js +49 -0
- package/dist/features/coach/observers.js.map +1 -0
- package/dist/features/coach/overlay.d.ts +15 -0
- package/dist/features/coach/overlay.d.ts.map +1 -0
- package/dist/features/coach/overlay.js +183 -0
- package/dist/features/coach/overlay.js.map +1 -0
- package/dist/features/coach/position.d.ts +9 -0
- package/dist/features/coach/position.d.ts.map +1 -0
- package/dist/features/coach/position.js +83 -0
- package/dist/features/coach/position.js.map +1 -0
- package/dist/features/coach/predicate.d.ts +10 -0
- package/dist/features/coach/predicate.d.ts.map +1 -0
- package/dist/features/coach/predicate.js +36 -0
- package/dist/features/coach/predicate.js.map +1 -0
- package/dist/features/coach/tour.d.ts +55 -0
- package/dist/features/coach/tour.d.ts.map +1 -0
- package/dist/features/coach/tour.js +181 -0
- package/dist/features/coach/tour.js.map +1 -0
- package/dist/features/coach/types.d.ts +161 -0
- package/dist/features/coach/types.d.ts.map +1 -0
- package/dist/features/coach/types.js +2 -0
- package/dist/features/coach/types.js.map +1 -0
- package/dist/features/coach/wait.d.ts +34 -0
- package/dist/features/coach/wait.d.ts.map +1 -0
- package/dist/features/coach/wait.js +107 -0
- package/dist/features/coach/wait.js.map +1 -0
- package/dist/features/config/ConfigFeature.d.ts +117 -0
- package/dist/features/config/ConfigFeature.d.ts.map +1 -0
- package/dist/features/config/ConfigFeature.js +437 -0
- package/dist/features/config/ConfigFeature.js.map +1 -0
- package/dist/features/config/bucketing.d.ts +20 -0
- package/dist/features/config/bucketing.d.ts.map +1 -0
- package/dist/features/config/bucketing.js +37 -0
- package/dist/features/config/bucketing.js.map +1 -0
- package/dist/features/config/configStore.d.ts +11 -0
- package/dist/features/config/configStore.d.ts.map +1 -0
- package/dist/features/config/configStore.js +66 -0
- package/dist/features/config/configStore.js.map +1 -0
- package/dist/features/config/targeting.d.ts +11 -0
- package/dist/features/config/targeting.d.ts.map +1 -0
- package/dist/features/config/targeting.js +57 -0
- package/dist/features/config/targeting.js.map +1 -0
- package/dist/features/config/types.d.ts +100 -0
- package/dist/features/config/types.d.ts.map +1 -0
- package/dist/features/config/types.js +9 -0
- package/dist/features/config/types.js.map +1 -0
- package/dist/features/console/ConsoleFeature.d.ts +31 -0
- package/dist/features/console/ConsoleFeature.d.ts.map +1 -0
- package/dist/features/console/ConsoleFeature.js +98 -0
- package/dist/features/console/ConsoleFeature.js.map +1 -0
- package/dist/features/console/normalize.d.ts +18 -0
- package/dist/features/console/normalize.d.ts.map +1 -0
- package/dist/features/console/normalize.js +64 -0
- package/dist/features/console/normalize.js.map +1 -0
- package/dist/features/console/serialize.d.ts +24 -0
- package/dist/features/console/serialize.d.ts.map +1 -0
- package/dist/features/console/serialize.js +99 -0
- package/dist/features/console/serialize.js.map +1 -0
- package/dist/features/console/throttle.d.ts +27 -0
- package/dist/features/console/throttle.d.ts.map +1 -0
- package/dist/features/console/throttle.js +37 -0
- package/dist/features/console/throttle.js.map +1 -0
- package/dist/features/crash/CrashFeature.d.ts +46 -0
- package/dist/features/crash/CrashFeature.d.ts.map +1 -0
- package/dist/features/crash/CrashFeature.js +173 -0
- package/dist/features/crash/CrashFeature.js.map +1 -0
- package/dist/features/crash/liveness.d.ts +30 -0
- package/dist/features/crash/liveness.d.ts.map +1 -0
- package/dist/features/crash/liveness.js +131 -0
- package/dist/features/crash/liveness.js.map +1 -0
- package/dist/features/engage/EngageFeature.d.ts +61 -0
- package/dist/features/engage/EngageFeature.d.ts.map +1 -0
- package/dist/features/engage/EngageFeature.js +221 -0
- package/dist/features/engage/EngageFeature.js.map +1 -0
- package/dist/features/engage/attachments.d.ts +24 -0
- package/dist/features/engage/attachments.d.ts.map +1 -0
- package/dist/features/engage/attachments.js +209 -0
- package/dist/features/engage/attachments.js.map +1 -0
- package/dist/features/engage/gameLogic.d.ts +60 -0
- package/dist/features/engage/gameLogic.d.ts.map +1 -0
- package/dist/features/engage/gameLogic.js +213 -0
- package/dist/features/engage/gameLogic.js.map +1 -0
- package/dist/features/engage/gameResolver.d.ts +35 -0
- package/dist/features/engage/gameResolver.d.ts.map +1 -0
- package/dist/features/engage/gameResolver.js +81 -0
- package/dist/features/engage/gameResolver.js.map +1 -0
- package/dist/features/engage/gameTypes.d.ts +76 -0
- package/dist/features/engage/gameTypes.d.ts.map +1 -0
- package/dist/features/engage/gameTypes.js +17 -0
- package/dist/features/engage/gameTypes.js.map +1 -0
- package/dist/features/engage/inappSlots.d.ts +39 -0
- package/dist/features/engage/inappSlots.d.ts.map +1 -0
- package/dist/features/engage/inappSlots.js +50 -0
- package/dist/features/engage/inappSlots.js.map +1 -0
- package/dist/features/engage/normalize.d.ts +11 -0
- package/dist/features/engage/normalize.d.ts.map +1 -0
- package/dist/features/engage/normalize.js +203 -0
- package/dist/features/engage/normalize.js.map +1 -0
- package/dist/features/engage/richInApp.d.ts +64 -0
- package/dist/features/engage/richInApp.d.ts.map +1 -0
- package/dist/features/engage/richInApp.js +1082 -0
- package/dist/features/engage/richInApp.js.map +1 -0
- package/dist/features/engage/runtime.d.ts +78 -0
- package/dist/features/engage/runtime.d.ts.map +1 -0
- package/dist/features/engage/runtime.js +349 -0
- package/dist/features/engage/runtime.js.map +1 -0
- package/dist/features/engage/shakeDetector.d.ts +6 -0
- package/dist/features/engage/shakeDetector.d.ts.map +1 -0
- package/dist/features/engage/shakeDetector.js +105 -0
- package/dist/features/engage/shakeDetector.js.map +1 -0
- package/dist/features/engage/theme.d.ts +129 -0
- package/dist/features/engage/theme.d.ts.map +1 -0
- package/dist/features/engage/theme.js +270 -0
- package/dist/features/engage/theme.js.map +1 -0
- package/dist/features/engage/throttle.d.ts +31 -0
- package/dist/features/engage/throttle.d.ts.map +1 -0
- package/dist/features/engage/throttle.js +130 -0
- package/dist/features/engage/throttle.js.map +1 -0
- package/dist/features/engage/transport.d.ts +62 -0
- package/dist/features/engage/transport.d.ts.map +1 -0
- package/dist/features/engage/transport.js +185 -0
- package/dist/features/engage/transport.js.map +1 -0
- package/dist/features/engage/triggerEngine.d.ts +39 -0
- package/dist/features/engage/triggerEngine.d.ts.map +1 -0
- package/dist/features/engage/triggerEngine.js +105 -0
- package/dist/features/engage/triggerEngine.js.map +1 -0
- package/dist/features/engage/types.d.ts +265 -0
- package/dist/features/engage/types.d.ts.map +1 -0
- package/dist/features/engage/types.js +3 -0
- package/dist/features/engage/types.js.map +1 -0
- package/dist/features/engage/widget/InAppWidget.d.ts +10 -0
- package/dist/features/engage/widget/InAppWidget.d.ts.map +1 -0
- package/dist/features/engage/widget/InAppWidget.js +136 -0
- package/dist/features/engage/widget/InAppWidget.js.map +1 -0
- package/dist/features/engage/widget/SurveyWidget.d.ts +11 -0
- package/dist/features/engage/widget/SurveyWidget.d.ts.map +1 -0
- package/dist/features/engage/widget/SurveyWidget.js +546 -0
- package/dist/features/engage/widget/SurveyWidget.js.map +1 -0
- package/dist/features/errors/ErrorsFeature.d.ts +62 -0
- package/dist/features/errors/ErrorsFeature.d.ts.map +1 -0
- package/dist/features/errors/ErrorsFeature.js +209 -0
- package/dist/features/errors/ErrorsFeature.js.map +1 -0
- package/dist/features/errors/causes.d.ts +15 -0
- package/dist/features/errors/causes.d.ts.map +1 -0
- package/dist/features/errors/causes.js +29 -0
- package/dist/features/errors/causes.js.map +1 -0
- package/dist/features/errors/dedup.d.ts +28 -0
- package/dist/features/errors/dedup.d.ts.map +1 -0
- package/dist/features/errors/dedup.js +42 -0
- package/dist/features/errors/dedup.js.map +1 -0
- package/dist/features/errors/group/fingerprint.d.ts +13 -0
- package/dist/features/errors/group/fingerprint.d.ts.map +1 -0
- package/dist/features/errors/group/fingerprint.js +45 -0
- package/dist/features/errors/group/fingerprint.js.map +1 -0
- package/dist/features/errors/lazy.d.ts +8 -0
- package/dist/features/errors/lazy.d.ts.map +1 -0
- package/dist/features/errors/lazy.js +8 -0
- package/dist/features/errors/lazy.js.map +1 -0
- package/dist/features/errors/normalize.d.ts +26 -0
- package/dist/features/errors/normalize.d.ts.map +1 -0
- package/dist/features/errors/normalize.js +58 -0
- package/dist/features/errors/normalize.js.map +1 -0
- package/dist/features/errors/parse/stacktrace.d.ts +13 -0
- package/dist/features/errors/parse/stacktrace.d.ts.map +1 -0
- package/dist/features/errors/parse/stacktrace.js +85 -0
- package/dist/features/errors/parse/stacktrace.js.map +1 -0
- package/dist/features/errors/redact.d.ts +7 -0
- package/dist/features/errors/redact.d.ts.map +1 -0
- package/dist/features/errors/redact.js +39 -0
- package/dist/features/errors/redact.js.map +1 -0
- package/dist/features/errors/sampling.d.ts +2 -0
- package/dist/features/errors/sampling.d.ts.map +1 -0
- package/dist/features/errors/sampling.js +24 -0
- package/dist/features/errors/sampling.js.map +1 -0
- package/dist/features/errors/scope.d.ts +26 -0
- package/dist/features/errors/scope.d.ts.map +1 -0
- package/dist/features/errors/scope.js +30 -0
- package/dist/features/errors/scope.js.map +1 -0
- package/dist/features/exit-intent/ExitIntentFeature.d.ts +16 -0
- package/dist/features/exit-intent/ExitIntentFeature.d.ts.map +1 -0
- package/dist/features/exit-intent/ExitIntentFeature.js +25 -0
- package/dist/features/exit-intent/ExitIntentFeature.js.map +1 -0
- package/dist/features/exit-intent/engine.d.ts +127 -0
- package/dist/features/exit-intent/engine.d.ts.map +1 -0
- package/dist/features/exit-intent/engine.js +227 -0
- package/dist/features/exit-intent/engine.js.map +1 -0
- package/dist/features/forms/index.d.ts +83 -0
- package/dist/features/forms/index.d.ts.map +1 -0
- package/dist/features/forms/index.js +405 -0
- package/dist/features/forms/index.js.map +1 -0
- package/dist/features/inapp/InApp2Feature.d.ts +24 -0
- package/dist/features/inapp/InApp2Feature.d.ts.map +1 -0
- package/dist/features/inapp/InApp2Feature.js +43 -0
- package/dist/features/inapp/InApp2Feature.js.map +1 -0
- package/dist/features/inapp/a11y/focus.d.ts +24 -0
- package/dist/features/inapp/a11y/focus.d.ts.map +1 -0
- package/dist/features/inapp/a11y/focus.js +112 -0
- package/dist/features/inapp/a11y/focus.js.map +1 -0
- package/dist/features/inapp/anchor/controller.d.ts +64 -0
- package/dist/features/inapp/anchor/controller.d.ts.map +1 -0
- package/dist/features/inapp/anchor/controller.js +155 -0
- package/dist/features/inapp/anchor/controller.js.map +1 -0
- package/dist/features/inapp/api.d.ts +28 -0
- package/dist/features/inapp/api.d.ts.map +1 -0
- package/dist/features/inapp/api.js +41 -0
- package/dist/features/inapp/api.js.map +1 -0
- package/dist/features/inapp/blocks/blocks.d.ts +65 -0
- package/dist/features/inapp/blocks/blocks.d.ts.map +1 -0
- package/dist/features/inapp/blocks/blocks.js +196 -0
- package/dist/features/inapp/blocks/blocks.js.map +1 -0
- package/dist/features/inapp/blocks/feedback.d.ts +13 -0
- package/dist/features/inapp/blocks/feedback.d.ts.map +1 -0
- package/dist/features/inapp/blocks/feedback.js +154 -0
- package/dist/features/inapp/blocks/feedback.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/carousel.d.ts +8 -0
- package/dist/features/inapp/blocks/heavy/carousel.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/carousel.js +67 -0
- package/dist/features/inapp/blocks/heavy/carousel.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/chart.d.ts +9 -0
- package/dist/features/inapp/blocks/heavy/chart.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/chart.js +83 -0
- package/dist/features/inapp/blocks/heavy/chart.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/code.d.ts +8 -0
- package/dist/features/inapp/blocks/heavy/code.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/code.js +47 -0
- package/dist/features/inapp/blocks/heavy/code.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/confetti.d.ts +9 -0
- package/dist/features/inapp/blocks/heavy/confetti.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/confetti.js +76 -0
- package/dist/features/inapp/blocks/heavy/confetti.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/countdown.d.ts +9 -0
- package/dist/features/inapp/blocks/heavy/countdown.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/countdown.js +59 -0
- package/dist/features/inapp/blocks/heavy/countdown.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/index.d.ts +11 -0
- package/dist/features/inapp/blocks/heavy/index.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/index.js +45 -0
- package/dist/features/inapp/blocks/heavy/index.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/markdown.d.ts +9 -0
- package/dist/features/inapp/blocks/heavy/markdown.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/markdown.js +76 -0
- package/dist/features/inapp/blocks/heavy/markdown.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/productgrid.d.ts +8 -0
- package/dist/features/inapp/blocks/heavy/productgrid.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/productgrid.js +46 -0
- package/dist/features/inapp/blocks/heavy/productgrid.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/qr.d.ts +10 -0
- package/dist/features/inapp/blocks/heavy/qr.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/qr.js +69 -0
- package/dist/features/inapp/blocks/heavy/qr.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/scratch.d.ts +8 -0
- package/dist/features/inapp/blocks/heavy/scratch.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/scratch.js +141 -0
- package/dist/features/inapp/blocks/heavy/scratch.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/slot.d.ts +8 -0
- package/dist/features/inapp/blocks/heavy/slot.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/slot.js +96 -0
- package/dist/features/inapp/blocks/heavy/slot.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/spinwheel.d.ts +9 -0
- package/dist/features/inapp/blocks/heavy/spinwheel.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/spinwheel.js +127 -0
- package/dist/features/inapp/blocks/heavy/spinwheel.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/steps.d.ts +27 -0
- package/dist/features/inapp/blocks/heavy/steps.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/steps.js +127 -0
- package/dist/features/inapp/blocks/heavy/steps.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/streak.d.ts +18 -0
- package/dist/features/inapp/blocks/heavy/streak.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/streak.js +52 -0
- package/dist/features/inapp/blocks/heavy/streak.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/table.d.ts +7 -0
- package/dist/features/inapp/blocks/heavy/table.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/table.js +30 -0
- package/dist/features/inapp/blocks/heavy/table.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/unavailable.d.ts +28 -0
- package/dist/features/inapp/blocks/heavy/unavailable.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/unavailable.js +33 -0
- package/dist/features/inapp/blocks/heavy/unavailable.js.map +1 -0
- package/dist/features/inapp/blocks/heavy/video.d.ts +7 -0
- package/dist/features/inapp/blocks/heavy/video.d.ts.map +1 -0
- package/dist/features/inapp/blocks/heavy/video.js +38 -0
- package/dist/features/inapp/blocks/heavy/video.js.map +1 -0
- package/dist/features/inapp/blocks/styles.d.ts +7 -0
- package/dist/features/inapp/blocks/styles.d.ts.map +1 -0
- package/dist/features/inapp/blocks/styles.js +198 -0
- package/dist/features/inapp/blocks/styles.js.map +1 -0
- package/dist/features/inapp/center/bridge.d.ts +12 -0
- package/dist/features/inapp/center/bridge.d.ts.map +1 -0
- package/dist/features/inapp/center/bridge.js +59 -0
- package/dist/features/inapp/center/bridge.js.map +1 -0
- package/dist/features/inapp/center/panel.d.ts +20 -0
- package/dist/features/inapp/center/panel.d.ts.map +1 -0
- package/dist/features/inapp/center/panel.js +194 -0
- package/dist/features/inapp/center/panel.js.map +1 -0
- package/dist/features/inapp/center/store.d.ts +50 -0
- package/dist/features/inapp/center/store.d.ts.map +1 -0
- package/dist/features/inapp/center/store.js +188 -0
- package/dist/features/inapp/center/store.js.map +1 -0
- package/dist/features/inapp/center/sync.d.ts +32 -0
- package/dist/features/inapp/center/sync.d.ts.map +1 -0
- package/dist/features/inapp/center/sync.js +60 -0
- package/dist/features/inapp/center/sync.js.map +1 -0
- package/dist/features/inapp/center/types.d.ts +46 -0
- package/dist/features/inapp/center/types.d.ts.map +1 -0
- package/dist/features/inapp/center/types.js +5 -0
- package/dist/features/inapp/center/types.js.map +1 -0
- package/dist/features/inapp/core/analytics.d.ts +35 -0
- package/dist/features/inapp/core/analytics.d.ts.map +1 -0
- package/dist/features/inapp/core/analytics.js +70 -0
- package/dist/features/inapp/core/analytics.js.map +1 -0
- package/dist/features/inapp/core/compat.d.ts +28 -0
- package/dist/features/inapp/core/compat.d.ts.map +1 -0
- package/dist/features/inapp/core/compat.js +104 -0
- package/dist/features/inapp/core/compat.js.map +1 -0
- package/dist/features/inapp/core/debugOverlay.d.ts +5 -0
- package/dist/features/inapp/core/debugOverlay.d.ts.map +1 -0
- package/dist/features/inapp/core/debugOverlay.js +79 -0
- package/dist/features/inapp/core/debugOverlay.js.map +1 -0
- package/dist/features/inapp/core/engine.d.ts +70 -0
- package/dist/features/inapp/core/engine.d.ts.map +1 -0
- package/dist/features/inapp/core/engine.js +248 -0
- package/dist/features/inapp/core/engine.js.map +1 -0
- package/dist/features/inapp/core/environment.d.ts +21 -0
- package/dist/features/inapp/core/environment.d.ts.map +1 -0
- package/dist/features/inapp/core/environment.js +57 -0
- package/dist/features/inapp/core/environment.js.map +1 -0
- package/dist/features/inapp/core/host.d.ts +53 -0
- package/dist/features/inapp/core/host.d.ts.map +1 -0
- package/dist/features/inapp/core/host.js +239 -0
- package/dist/features/inapp/core/host.js.map +1 -0
- package/dist/features/inapp/core/keyboard.d.ts +27 -0
- package/dist/features/inapp/core/keyboard.d.ts.map +1 -0
- package/dist/features/inapp/core/keyboard.js +69 -0
- package/dist/features/inapp/core/keyboard.js.map +1 -0
- package/dist/features/inapp/core/metrics.d.ts +73 -0
- package/dist/features/inapp/core/metrics.d.ts.map +1 -0
- package/dist/features/inapp/core/metrics.js +125 -0
- package/dist/features/inapp/core/metrics.js.map +1 -0
- package/dist/features/inapp/core/migration.d.ts +32 -0
- package/dist/features/inapp/core/migration.d.ts.map +1 -0
- package/dist/features/inapp/core/migration.js +28 -0
- package/dist/features/inapp/core/migration.js.map +1 -0
- package/dist/features/inapp/core/orchestrator.d.ts +77 -0
- package/dist/features/inapp/core/orchestrator.d.ts.map +1 -0
- package/dist/features/inapp/core/orchestrator.js +144 -0
- package/dist/features/inapp/core/orchestrator.js.map +1 -0
- package/dist/features/inapp/core/respect.d.ts +51 -0
- package/dist/features/inapp/core/respect.d.ts.map +1 -0
- package/dist/features/inapp/core/respect.js +78 -0
- package/dist/features/inapp/core/respect.js.map +1 -0
- package/dist/features/inapp/core/slots.d.ts +19 -0
- package/dist/features/inapp/core/slots.d.ts.map +1 -0
- package/dist/features/inapp/core/slots.js +53 -0
- package/dist/features/inapp/core/slots.js.map +1 -0
- package/dist/features/inapp/core/targeting.d.ts +58 -0
- package/dist/features/inapp/core/targeting.d.ts.map +1 -0
- package/dist/features/inapp/core/targeting.js +181 -0
- package/dist/features/inapp/core/targeting.js.map +1 -0
- package/dist/features/inapp/core/transport.d.ts +66 -0
- package/dist/features/inapp/core/transport.d.ts.map +1 -0
- package/dist/features/inapp/core/transport.js +154 -0
- package/dist/features/inapp/core/transport.js.map +1 -0
- package/dist/features/inapp/core/triggers.d.ts +94 -0
- package/dist/features/inapp/core/triggers.d.ts.map +1 -0
- package/dist/features/inapp/core/triggers.js +368 -0
- package/dist/features/inapp/core/triggers.js.map +1 -0
- package/dist/features/inapp/inappContract.web.d.ts +47 -0
- package/dist/features/inapp/inappContract.web.d.ts.map +1 -0
- package/dist/features/inapp/inappContract.web.js +219 -0
- package/dist/features/inapp/inappContract.web.js.map +1 -0
- package/dist/features/inapp/index.d.ts +23 -0
- package/dist/features/inapp/index.d.ts.map +1 -0
- package/dist/features/inapp/index.js +23 -0
- package/dist/features/inapp/index.js.map +1 -0
- package/dist/features/inapp/registry.canonical.hash.d.ts +7 -0
- package/dist/features/inapp/registry.canonical.hash.d.ts.map +1 -0
- package/dist/features/inapp/registry.canonical.hash.js +7 -0
- package/dist/features/inapp/registry.canonical.hash.js.map +1 -0
- package/dist/features/inapp/registry.web.canonical.d.ts +21 -0
- package/dist/features/inapp/registry.web.canonical.d.ts.map +1 -0
- package/dist/features/inapp/registry.web.canonical.js +136 -0
- package/dist/features/inapp/registry.web.canonical.js.map +1 -0
- package/dist/features/inapp/registry.web.catalog.d.ts +12 -0
- package/dist/features/inapp/registry.web.catalog.d.ts.map +1 -0
- package/dist/features/inapp/registry.web.catalog.js +208 -0
- package/dist/features/inapp/registry.web.catalog.js.map +1 -0
- package/dist/features/inapp/surfaces/banner.d.ts +7 -0
- package/dist/features/inapp/surfaces/banner.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/banner.js +30 -0
- package/dist/features/inapp/surfaces/banner.js.map +1 -0
- package/dist/features/inapp/surfaces/checklist.d.ts +13 -0
- package/dist/features/inapp/surfaces/checklist.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/checklist.js +127 -0
- package/dist/features/inapp/surfaces/checklist.js.map +1 -0
- package/dist/features/inapp/surfaces/coachmark.d.ts +10 -0
- package/dist/features/inapp/surfaces/coachmark.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/coachmark.js +92 -0
- package/dist/features/inapp/surfaces/coachmark.js.map +1 -0
- package/dist/features/inapp/surfaces/hotspot.d.ts +8 -0
- package/dist/features/inapp/surfaces/hotspot.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/hotspot.js +88 -0
- package/dist/features/inapp/surfaces/hotspot.js.map +1 -0
- package/dist/features/inapp/surfaces/inline.d.ts +13 -0
- package/dist/features/inapp/surfaces/inline.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/inline.js +72 -0
- package/dist/features/inapp/surfaces/inline.js.map +1 -0
- package/dist/features/inapp/surfaces/launcher.d.ts +9 -0
- package/dist/features/inapp/surfaces/launcher.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/launcher.js +54 -0
- package/dist/features/inapp/surfaces/launcher.js.map +1 -0
- package/dist/features/inapp/surfaces/modal.d.ts +8 -0
- package/dist/features/inapp/surfaces/modal.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/modal.js +70 -0
- package/dist/features/inapp/surfaces/modal.js.map +1 -0
- package/dist/features/inapp/surfaces/mount.d.ts +19 -0
- package/dist/features/inapp/surfaces/mount.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/mount.js +29 -0
- package/dist/features/inapp/surfaces/mount.js.map +1 -0
- package/dist/features/inapp/surfaces/palette.d.ts +9 -0
- package/dist/features/inapp/surfaces/palette.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/palette.js +127 -0
- package/dist/features/inapp/surfaces/palette.js.map +1 -0
- package/dist/features/inapp/surfaces/panel.d.ts +14 -0
- package/dist/features/inapp/surfaces/panel.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/panel.js +91 -0
- package/dist/features/inapp/surfaces/panel.js.map +1 -0
- package/dist/features/inapp/surfaces/popover.d.ts +10 -0
- package/dist/features/inapp/surfaces/popover.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/popover.js +66 -0
- package/dist/features/inapp/surfaces/popover.js.map +1 -0
- package/dist/features/inapp/surfaces/render.d.ts +34 -0
- package/dist/features/inapp/surfaces/render.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/render.js +52 -0
- package/dist/features/inapp/surfaces/render.js.map +1 -0
- package/dist/features/inapp/surfaces/slideover.d.ts +9 -0
- package/dist/features/inapp/surfaces/slideover.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/slideover.js +144 -0
- package/dist/features/inapp/surfaces/slideover.js.map +1 -0
- package/dist/features/inapp/surfaces/styles.d.ts +7 -0
- package/dist/features/inapp/surfaces/styles.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/styles.js +186 -0
- package/dist/features/inapp/surfaces/styles.js.map +1 -0
- package/dist/features/inapp/surfaces/surface.d.ts +69 -0
- package/dist/features/inapp/surfaces/surface.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/surface.js +80 -0
- package/dist/features/inapp/surfaces/surface.js.map +1 -0
- package/dist/features/inapp/surfaces/takeover.d.ts +9 -0
- package/dist/features/inapp/surfaces/takeover.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/takeover.js +60 -0
- package/dist/features/inapp/surfaces/takeover.js.map +1 -0
- package/dist/features/inapp/surfaces/toast.d.ts +7 -0
- package/dist/features/inapp/surfaces/toast.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/toast.js +48 -0
- package/dist/features/inapp/surfaces/toast.js.map +1 -0
- package/dist/features/inapp/surfaces/toolbar.d.ts +8 -0
- package/dist/features/inapp/surfaces/toolbar.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/toolbar.js +62 -0
- package/dist/features/inapp/surfaces/toolbar.js.map +1 -0
- package/dist/features/inapp/surfaces/tour.d.ts +14 -0
- package/dist/features/inapp/surfaces/tour.d.ts.map +1 -0
- package/dist/features/inapp/surfaces/tour.js +199 -0
- package/dist/features/inapp/surfaces/tour.js.map +1 -0
- package/dist/features/inapp/types.d.ts +163 -0
- package/dist/features/inapp/types.d.ts.map +1 -0
- package/dist/features/inapp/types.js +12 -0
- package/dist/features/inapp/types.js.map +1 -0
- package/dist/features/inbox/InboxFeature.d.ts +57 -0
- package/dist/features/inbox/InboxFeature.d.ts.map +1 -0
- package/dist/features/inbox/InboxFeature.js +225 -0
- package/dist/features/inbox/InboxFeature.js.map +1 -0
- package/dist/features/inbox/runtime.d.ts +67 -0
- package/dist/features/inbox/runtime.d.ts.map +1 -0
- package/dist/features/inbox/runtime.js +376 -0
- package/dist/features/inbox/runtime.js.map +1 -0
- package/dist/features/inbox/store.d.ts +37 -0
- package/dist/features/inbox/store.d.ts.map +1 -0
- package/dist/features/inbox/store.js +149 -0
- package/dist/features/inbox/store.js.map +1 -0
- package/dist/features/inbox/sync.d.ts +49 -0
- package/dist/features/inbox/sync.d.ts.map +1 -0
- package/dist/features/inbox/sync.js +131 -0
- package/dist/features/inbox/sync.js.map +1 -0
- package/dist/features/inbox/types.d.ts +275 -0
- package/dist/features/inbox/types.d.ts.map +1 -0
- package/dist/features/inbox/types.js +42 -0
- package/dist/features/inbox/types.js.map +1 -0
- package/dist/features/inbox/widget/InboxWidget.d.ts +16 -0
- package/dist/features/inbox/widget/InboxWidget.d.ts.map +1 -0
- package/dist/features/inbox/widget/InboxWidget.js +608 -0
- package/dist/features/inbox/widget/InboxWidget.js.map +1 -0
- package/dist/features/index.d.ts +21 -0
- package/dist/features/index.d.ts.map +1 -0
- package/dist/features/index.js +2 -0
- package/dist/features/index.js.map +1 -0
- package/dist/features/journey/InteractionTracker.d.ts +34 -0
- package/dist/features/journey/InteractionTracker.d.ts.map +1 -0
- package/dist/features/journey/InteractionTracker.js +125 -0
- package/dist/features/journey/InteractionTracker.js.map +1 -0
- package/dist/features/journey/JourneyFeature.d.ts +18 -0
- package/dist/features/journey/JourneyFeature.d.ts.map +1 -0
- package/dist/features/journey/JourneyFeature.js +57 -0
- package/dist/features/journey/JourneyFeature.js.map +1 -0
- package/dist/features/journey/NavigationTracker.d.ts +16 -0
- package/dist/features/journey/NavigationTracker.d.ts.map +1 -0
- package/dist/features/journey/NavigationTracker.js +92 -0
- package/dist/features/journey/NavigationTracker.js.map +1 -0
- package/dist/features/journey/friction.d.ts +29 -0
- package/dist/features/journey/friction.d.ts.map +1 -0
- package/dist/features/journey/friction.js +65 -0
- package/dist/features/journey/friction.js.map +1 -0
- package/dist/features/manifest.d.ts +20 -0
- package/dist/features/manifest.d.ts.map +1 -0
- package/dist/features/manifest.js +76 -0
- package/dist/features/manifest.js.map +1 -0
- package/dist/features/network/NetworkFeature.d.ts +56 -0
- package/dist/features/network/NetworkFeature.d.ts.map +1 -0
- package/dist/features/network/NetworkFeature.js +235 -0
- package/dist/features/network/NetworkFeature.js.map +1 -0
- package/dist/features/network/capture/body.d.ts +31 -0
- package/dist/features/network/capture/body.d.ts.map +1 -0
- package/dist/features/network/capture/body.js +81 -0
- package/dist/features/network/capture/body.js.map +1 -0
- package/dist/features/network/classify.d.ts +21 -0
- package/dist/features/network/classify.d.ts.map +1 -0
- package/dist/features/network/classify.js +50 -0
- package/dist/features/network/classify.js.map +1 -0
- package/dist/features/network/dedup.d.ts +36 -0
- package/dist/features/network/dedup.d.ts.map +1 -0
- package/dist/features/network/dedup.js +68 -0
- package/dist/features/network/dedup.js.map +1 -0
- package/dist/features/network/fetchInterceptor.d.ts +20 -0
- package/dist/features/network/fetchInterceptor.d.ts.map +1 -0
- package/dist/features/network/fetchInterceptor.js +158 -0
- package/dist/features/network/fetchInterceptor.js.map +1 -0
- package/dist/features/network/intercept/beacon.d.ts +14 -0
- package/dist/features/network/intercept/beacon.d.ts.map +1 -0
- package/dist/features/network/intercept/beacon.js +56 -0
- package/dist/features/network/intercept/beacon.js.map +1 -0
- package/dist/features/network/intercept/sse.d.ts +16 -0
- package/dist/features/network/intercept/sse.d.ts.map +1 -0
- package/dist/features/network/intercept/sse.js +74 -0
- package/dist/features/network/intercept/sse.js.map +1 -0
- package/dist/features/network/intercept/streams.d.ts +23 -0
- package/dist/features/network/intercept/streams.d.ts.map +1 -0
- package/dist/features/network/intercept/streams.js +25 -0
- package/dist/features/network/intercept/streams.js.map +1 -0
- package/dist/features/network/intercept/websocket.d.ts +14 -0
- package/dist/features/network/intercept/websocket.d.ts.map +1 -0
- package/dist/features/network/intercept/websocket.js +97 -0
- package/dist/features/network/intercept/websocket.js.map +1 -0
- package/dist/features/network/lazy.d.ts +23 -0
- package/dist/features/network/lazy.d.ts.map +1 -0
- package/dist/features/network/lazy.js +65 -0
- package/dist/features/network/lazy.js.map +1 -0
- package/dist/features/network/normalize.d.ts +9 -0
- package/dist/features/network/normalize.d.ts.map +1 -0
- package/dist/features/network/normalize.js +49 -0
- package/dist/features/network/normalize.js.map +1 -0
- package/dist/features/network/parse/graphql.d.ts +17 -0
- package/dist/features/network/parse/graphql.d.ts.map +1 -0
- package/dist/features/network/parse/graphql.js +106 -0
- package/dist/features/network/parse/graphql.js.map +1 -0
- package/dist/features/network/parse/url.d.ts +12 -0
- package/dist/features/network/parse/url.d.ts.map +1 -0
- package/dist/features/network/parse/url.js +52 -0
- package/dist/features/network/parse/url.js.map +1 -0
- package/dist/features/network/sampler.d.ts +21 -0
- package/dist/features/network/sampler.d.ts.map +1 -0
- package/dist/features/network/sampler.js +25 -0
- package/dist/features/network/sampler.js.map +1 -0
- package/dist/features/network/size.d.ts +21 -0
- package/dist/features/network/size.d.ts.map +1 -0
- package/dist/features/network/size.js +63 -0
- package/dist/features/network/size.js.map +1 -0
- package/dist/features/network/timing.d.ts +41 -0
- package/dist/features/network/timing.d.ts.map +1 -0
- package/dist/features/network/timing.js +134 -0
- package/dist/features/network/timing.js.map +1 -0
- package/dist/features/network/tracing.d.ts +18 -0
- package/dist/features/network/tracing.d.ts.map +1 -0
- package/dist/features/network/tracing.js +46 -0
- package/dist/features/network/tracing.js.map +1 -0
- package/dist/features/network/types.d.ts +75 -0
- package/dist/features/network/types.d.ts.map +1 -0
- package/dist/features/network/types.js +2 -0
- package/dist/features/network/types.js.map +1 -0
- package/dist/features/network/xhrInterceptor.d.ts +12 -0
- package/dist/features/network/xhrInterceptor.d.ts.map +1 -0
- package/dist/features/network/xhrInterceptor.js +108 -0
- package/dist/features/network/xhrInterceptor.js.map +1 -0
- package/dist/features/performance/PerformanceFeature.d.ts +76 -0
- package/dist/features/performance/PerformanceFeature.d.ts.map +1 -0
- package/dist/features/performance/PerformanceFeature.js +265 -0
- package/dist/features/performance/PerformanceFeature.js.map +1 -0
- package/dist/features/performance/jankTap.d.ts +23 -0
- package/dist/features/performance/jankTap.d.ts.map +1 -0
- package/dist/features/performance/jankTap.js +20 -0
- package/dist/features/performance/jankTap.js.map +1 -0
- package/dist/features/performance/longTasks.d.ts +14 -0
- package/dist/features/performance/longTasks.d.ts.map +1 -0
- package/dist/features/performance/longTasks.js +55 -0
- package/dist/features/performance/longTasks.js.map +1 -0
- package/dist/features/performance/normalize.d.ts +15 -0
- package/dist/features/performance/normalize.d.ts.map +1 -0
- package/dist/features/performance/normalize.js +30 -0
- package/dist/features/performance/normalize.js.map +1 -0
- package/dist/features/performance/resources.d.ts +19 -0
- package/dist/features/performance/resources.d.ts.map +1 -0
- package/dist/features/performance/resources.js +78 -0
- package/dist/features/performance/resources.js.map +1 -0
- package/dist/features/performance/sampler.d.ts +10 -0
- package/dist/features/performance/sampler.d.ts.map +1 -0
- package/dist/features/performance/sampler.js +23 -0
- package/dist/features/performance/sampler.js.map +1 -0
- package/dist/features/performance/spa.d.ts +2 -0
- package/dist/features/performance/spa.d.ts.map +1 -0
- package/dist/features/performance/spa.js +40 -0
- package/dist/features/performance/spa.js.map +1 -0
- package/dist/features/performance/throttle.d.ts +21 -0
- package/dist/features/performance/throttle.d.ts.map +1 -0
- package/dist/features/performance/throttle.js +26 -0
- package/dist/features/performance/throttle.js.map +1 -0
- package/dist/features/performance/trace/context.d.ts +17 -0
- package/dist/features/performance/trace/context.d.ts.map +1 -0
- package/dist/features/performance/trace/context.js +33 -0
- package/dist/features/performance/trace/context.js.map +1 -0
- package/dist/features/performance/trace/index.d.ts +7 -0
- package/dist/features/performance/trace/index.d.ts.map +1 -0
- package/dist/features/performance/trace/index.js +6 -0
- package/dist/features/performance/trace/index.js.map +1 -0
- package/dist/features/performance/trace/pageload.d.ts +3 -0
- package/dist/features/performance/trace/pageload.d.ts.map +1 -0
- package/dist/features/performance/trace/pageload.js +34 -0
- package/dist/features/performance/trace/pageload.js.map +1 -0
- package/dist/features/performance/trace/transaction.d.ts +61 -0
- package/dist/features/performance/trace/transaction.d.ts.map +1 -0
- package/dist/features/performance/trace/transaction.js +90 -0
- package/dist/features/performance/trace/transaction.js.map +1 -0
- package/dist/features/performance/trace/types.d.ts +23 -0
- package/dist/features/performance/trace/types.d.ts.map +1 -0
- package/dist/features/performance/trace/types.js +10 -0
- package/dist/features/performance/trace/types.js.map +1 -0
- package/dist/features/performance/traces.d.ts +36 -0
- package/dist/features/performance/traces.d.ts.map +1 -0
- package/dist/features/performance/traces.js +50 -0
- package/dist/features/performance/traces.js.map +1 -0
- package/dist/features/profiler/ProfilerFeature.d.ts +28 -0
- package/dist/features/profiler/ProfilerFeature.d.ts.map +1 -0
- package/dist/features/profiler/ProfilerFeature.js +82 -0
- package/dist/features/profiler/ProfilerFeature.js.map +1 -0
- package/dist/features/profiler/capture.d.ts +8 -0
- package/dist/features/profiler/capture.d.ts.map +1 -0
- package/dist/features/profiler/capture.js +21 -0
- package/dist/features/profiler/capture.js.map +1 -0
- package/dist/features/push/PushFeature.d.ts +120 -0
- package/dist/features/push/PushFeature.d.ts.map +1 -0
- package/dist/features/push/PushFeature.js +319 -0
- package/dist/features/push/PushFeature.js.map +1 -0
- package/dist/features/push/diagnostics.d.ts +55 -0
- package/dist/features/push/diagnostics.d.ts.map +1 -0
- package/dist/features/push/diagnostics.js +383 -0
- package/dist/features/push/diagnostics.js.map +1 -0
- package/dist/features/push/pushState.d.ts +58 -0
- package/dist/features/push/pushState.d.ts.map +1 -0
- package/dist/features/push/pushState.js +75 -0
- package/dist/features/push/pushState.js.map +1 -0
- package/dist/features/push/softAsk.d.ts +68 -0
- package/dist/features/push/softAsk.d.ts.map +1 -0
- package/dist/features/push/softAsk.js +141 -0
- package/dist/features/push/softAsk.js.map +1 -0
- package/dist/features/replay/ReplayFeature.d.ts +32 -0
- package/dist/features/replay/ReplayFeature.d.ts.map +1 -0
- package/dist/features/replay/ReplayFeature.js +132 -0
- package/dist/features/replay/ReplayFeature.js.map +1 -0
- package/dist/features/replay/engine/canvas.d.ts +45 -0
- package/dist/features/replay/engine/canvas.d.ts.map +1 -0
- package/dist/features/replay/engine/canvas.js +122 -0
- package/dist/features/replay/engine/canvas.js.map +1 -0
- package/dist/features/replay/engine/crossOrigin.d.ts +23 -0
- package/dist/features/replay/engine/crossOrigin.d.ts.map +1 -0
- package/dist/features/replay/engine/crossOrigin.js +108 -0
- package/dist/features/replay/engine/crossOrigin.js.map +1 -0
- package/dist/features/replay/engine/cssom.d.ts +31 -0
- package/dist/features/replay/engine/cssom.d.ts.map +1 -0
- package/dist/features/replay/engine/cssom.js +128 -0
- package/dist/features/replay/engine/cssom.js.map +1 -0
- package/dist/features/replay/engine/iframe.d.ts +65 -0
- package/dist/features/replay/engine/iframe.d.ts.map +1 -0
- package/dist/features/replay/engine/iframe.js +186 -0
- package/dist/features/replay/engine/iframe.js.map +1 -0
- package/dist/features/replay/engine/interactions.d.ts +142 -0
- package/dist/features/replay/engine/interactions.d.ts.map +1 -0
- package/dist/features/replay/engine/interactions.js +371 -0
- package/dist/features/replay/engine/interactions.js.map +1 -0
- package/dist/features/replay/engine/mutations.d.ts +49 -0
- package/dist/features/replay/engine/mutations.d.ts.map +1 -0
- package/dist/features/replay/engine/mutations.js +261 -0
- package/dist/features/replay/engine/mutations.js.map +1 -0
- package/dist/features/replay/engine/nodeRegistry.d.ts +23 -0
- package/dist/features/replay/engine/nodeRegistry.d.ts.map +1 -0
- package/dist/features/replay/engine/nodeRegistry.js +51 -0
- package/dist/features/replay/engine/nodeRegistry.js.map +1 -0
- package/dist/features/replay/engine/player.d.ts +11 -0
- package/dist/features/replay/engine/player.d.ts.map +1 -0
- package/dist/features/replay/engine/player.js +284 -0
- package/dist/features/replay/engine/player.js.map +1 -0
- package/dist/features/replay/engine/rebuild.d.ts +8 -0
- package/dist/features/replay/engine/rebuild.d.ts.map +1 -0
- package/dist/features/replay/engine/rebuild.js +46 -0
- package/dist/features/replay/engine/rebuild.js.map +1 -0
- package/dist/features/replay/engine/replayWorker.d.ts +33 -0
- package/dist/features/replay/engine/replayWorker.d.ts.map +1 -0
- package/dist/features/replay/engine/replayWorker.js +175 -0
- package/dist/features/replay/engine/replayWorker.js.map +1 -0
- package/dist/features/replay/engine/resources.d.ts +52 -0
- package/dist/features/replay/engine/resources.d.ts.map +1 -0
- package/dist/features/replay/engine/resources.js +132 -0
- package/dist/features/replay/engine/resources.js.map +1 -0
- package/dist/features/replay/engine/snapshot.d.ts +103 -0
- package/dist/features/replay/engine/snapshot.d.ts.map +1 -0
- package/dist/features/replay/engine/snapshot.js +409 -0
- package/dist/features/replay/engine/snapshot.js.map +1 -0
- package/dist/features/replay/engine/traverse.d.ts +19 -0
- package/dist/features/replay/engine/traverse.d.ts.map +1 -0
- package/dist/features/replay/engine/traverse.js +39 -0
- package/dist/features/replay/engine/traverse.js.map +1 -0
- package/dist/features/replay/engine/types.d.ts +137 -0
- package/dist/features/replay/engine/types.d.ts.map +1 -0
- package/dist/features/replay/engine/types.js +6 -0
- package/dist/features/replay/engine/types.js.map +1 -0
- package/dist/features/replay/engine/webglPatch.d.ts +26 -0
- package/dist/features/replay/engine/webglPatch.d.ts.map +1 -0
- package/dist/features/replay/engine/webglPatch.js +83 -0
- package/dist/features/replay/engine/webglPatch.js.map +1 -0
- package/dist/features/replay/lifecycle/adaptive.d.ts +38 -0
- package/dist/features/replay/lifecycle/adaptive.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/adaptive.js +90 -0
- package/dist/features/replay/lifecycle/adaptive.js.map +1 -0
- package/dist/features/replay/lifecycle/cadence.d.ts +20 -0
- package/dist/features/replay/lifecycle/cadence.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/cadence.js +62 -0
- package/dist/features/replay/lifecycle/cadence.js.map +1 -0
- package/dist/features/replay/lifecycle/deviceSignals.d.ts +35 -0
- package/dist/features/replay/lifecycle/deviceSignals.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/deviceSignals.js +61 -0
- package/dist/features/replay/lifecycle/deviceSignals.js.map +1 -0
- package/dist/features/replay/lifecycle/pii.d.ts +14 -0
- package/dist/features/replay/lifecycle/pii.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/pii.js +52 -0
- package/dist/features/replay/lifecycle/pii.js.map +1 -0
- package/dist/features/replay/lifecycle/recorder.d.ts +129 -0
- package/dist/features/replay/lifecycle/recorder.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/recorder.js +509 -0
- package/dist/features/replay/lifecycle/recorder.js.map +1 -0
- package/dist/features/replay/lifecycle/sampling.d.ts +28 -0
- package/dist/features/replay/lifecycle/sampling.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/sampling.js +31 -0
- package/dist/features/replay/lifecycle/sampling.js.map +1 -0
- package/dist/features/replay/lifecycle/segmentBuffer.d.ts +75 -0
- package/dist/features/replay/lifecycle/segmentBuffer.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/segmentBuffer.js +130 -0
- package/dist/features/replay/lifecycle/segmentBuffer.js.map +1 -0
- package/dist/features/replay/lifecycle/viewContext.d.ts +7 -0
- package/dist/features/replay/lifecycle/viewContext.d.ts.map +1 -0
- package/dist/features/replay/lifecycle/viewContext.js +51 -0
- package/dist/features/replay/lifecycle/viewContext.js.map +1 -0
- package/dist/features/scroll/index.d.ts +31 -0
- package/dist/features/scroll/index.d.ts.map +1 -0
- package/dist/features/scroll/index.js +102 -0
- package/dist/features/scroll/index.js.map +1 -0
- package/dist/features/session/sessionManager.d.ts +25 -0
- package/dist/features/session/sessionManager.d.ts.map +1 -0
- package/dist/features/session/sessionManager.js +36 -0
- package/dist/features/session/sessionManager.js.map +1 -0
- package/dist/features/session/sessionStore.d.ts +106 -0
- package/dist/features/session/sessionStore.d.ts.map +1 -0
- package/dist/features/session/sessionStore.js +265 -0
- package/dist/features/session/sessionStore.js.map +1 -0
- package/dist/features/watchdog/WatchdogFeature.d.ts +23 -0
- package/dist/features/watchdog/WatchdogFeature.d.ts.map +1 -0
- package/dist/features/watchdog/WatchdogFeature.js +29 -0
- package/dist/features/watchdog/WatchdogFeature.js.map +1 -0
- package/dist/features/watchdog/collectors.d.ts +18 -0
- package/dist/features/watchdog/collectors.d.ts.map +1 -0
- package/dist/features/watchdog/collectors.js +107 -0
- package/dist/features/watchdog/collectors.js.map +1 -0
- package/dist/features/watchdog/config.d.ts +51 -0
- package/dist/features/watchdog/config.d.ts.map +1 -0
- package/dist/features/watchdog/config.js +28 -0
- package/dist/features/watchdog/config.js.map +1 -0
- package/dist/features/watchdog/engine.d.ts +22 -0
- package/dist/features/watchdog/engine.d.ts.map +1 -0
- package/dist/features/watchdog/engine.js +123 -0
- package/dist/features/watchdog/engine.js.map +1 -0
- package/dist/features/watchdog/incidents.d.ts +79 -0
- package/dist/features/watchdog/incidents.d.ts.map +1 -0
- package/dist/features/watchdog/incidents.js +204 -0
- package/dist/features/watchdog/incidents.js.map +1 -0
- package/dist/features/watchdog/rollup.d.ts +41 -0
- package/dist/features/watchdog/rollup.d.ts.map +1 -0
- package/dist/features/watchdog/rollup.js +76 -0
- package/dist/features/watchdog/rollup.js.map +1 -0
- package/dist/features/webVitals/WebVitalsFeature.d.ts +46 -0
- package/dist/features/webVitals/WebVitalsFeature.d.ts.map +1 -0
- package/dist/features/webVitals/WebVitalsFeature.js +252 -0
- package/dist/features/webVitals/WebVitalsFeature.js.map +1 -0
- package/dist/features/webVitals/attribution.d.ts +50 -0
- package/dist/features/webVitals/attribution.d.ts.map +1 -0
- package/dist/features/webVitals/attribution.js +186 -0
- package/dist/features/webVitals/attribution.js.map +1 -0
- package/dist/features/webVitals/observe.d.ts +6 -0
- package/dist/features/webVitals/observe.d.ts.map +1 -0
- package/dist/features/webVitals/observe.js +6 -0
- package/dist/features/webVitals/observe.js.map +1 -0
- package/dist/features/webVitals/vitals.d.ts +99 -0
- package/dist/features/webVitals/vitals.d.ts.map +1 -0
- package/dist/features/webVitals/vitals.js +166 -0
- package/dist/features/webVitals/vitals.js.map +1 -0
- package/dist/features/webperf/WebPerfFeature.d.ts +19 -0
- package/dist/features/webperf/WebPerfFeature.d.ts.map +1 -0
- package/dist/features/webperf/WebPerfFeature.js +48 -0
- package/dist/features/webperf/WebPerfFeature.js.map +1 -0
- package/dist/features/webperf/collectors.d.ts +3 -0
- package/dist/features/webperf/collectors.d.ts.map +1 -0
- package/dist/features/webperf/collectors.js +118 -0
- package/dist/features/webperf/collectors.js.map +1 -0
- package/dist/features/webperf/math.d.ts +12 -0
- package/dist/features/webperf/math.d.ts.map +1 -0
- package/dist/features/webperf/math.js +26 -0
- package/dist/features/webperf/math.js.map +1 -0
- package/dist/inapp.d.ts +6 -0
- package/dist/inapp.d.ts.map +1 -0
- package/dist/inapp.js +6 -0
- package/dist/inapp.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/integrations/index.d.ts +7 -0
- package/dist/integrations/index.d.ts.map +1 -0
- package/dist/integrations/index.js +2 -0
- package/dist/integrations/index.js.map +1 -0
- package/dist/pipeline/index.d.ts +3 -0
- package/dist/pipeline/index.d.ts.map +1 -0
- package/dist/pipeline/index.js +3 -0
- package/dist/pipeline/index.js.map +1 -0
- package/dist/pipeline/pipeline.d.ts +84 -0
- package/dist/pipeline/pipeline.d.ts.map +1 -0
- package/dist/pipeline/pipeline.js +284 -0
- package/dist/pipeline/pipeline.js.map +1 -0
- package/dist/public/ScaleBunFacade.d.ts +382 -0
- package/dist/public/ScaleBunFacade.d.ts.map +1 -0
- package/dist/public/ScaleBunFacade.js +787 -0
- package/dist/public/ScaleBunFacade.js.map +1 -0
- package/dist/public/index.d.ts +5 -0
- package/dist/public/index.d.ts.map +1 -0
- package/dist/public/index.js +4 -0
- package/dist/public/index.js.map +1 -0
- package/dist/public/typedTracker.d.ts +91 -0
- package/dist/public/typedTracker.d.ts.map +1 -0
- package/dist/public/typedTracker.js +60 -0
- package/dist/public/typedTracker.js.map +1 -0
- package/dist/scalebun-push-sw.js +236 -0
- package/dist/scalebun.min.js +635 -0
- package/dist/scalebun.min.js.map +7 -0
- package/dist/storage/idb.d.ts +16 -0
- package/dist/storage/idb.d.ts.map +1 -0
- package/dist/storage/idb.js +76 -0
- package/dist/storage/idb.js.map +1 -0
- package/dist/storage/index.d.ts +3 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +3 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/transport/gzip.d.ts +2 -0
- package/dist/transport/gzip.d.ts.map +1 -0
- package/dist/transport/gzip.js +20 -0
- package/dist/transport/gzip.js.map +1 -0
- package/dist/transport/httpClient.d.ts +60 -0
- package/dist/transport/httpClient.d.ts.map +1 -0
- package/dist/transport/httpClient.js +154 -0
- package/dist/transport/httpClient.js.map +1 -0
- package/dist/transport/index.d.ts +3 -0
- package/dist/transport/index.d.ts.map +1 -0
- package/dist/transport/index.js +3 -0
- package/dist/transport/index.js.map +1 -0
- package/dist/transport/sign.d.ts +25 -0
- package/dist/transport/sign.d.ts.map +1 -0
- package/dist/transport/sign.js +58 -0
- package/dist/transport/sign.js.map +1 -0
- package/package.json +60 -0
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared text redaction. A minimal, dependency-free scrub used by features that ship free-text
|
|
3
|
+
* (errors, console) so they never drift. Deliberately light — strips the obvious PII/secrets that
|
|
4
|
+
* must never leave the client by default; a full redaction policy can deepen later. The network
|
|
5
|
+
* feature has its own structured (header/body) denylist; this is for human-readable strings.
|
|
6
|
+
*/
|
|
7
|
+
/** Strip obvious emails + long opaque tokens from a free-text string. */
|
|
8
|
+
export function scrubText(msg) {
|
|
9
|
+
return msg
|
|
10
|
+
.replace(/[\w.+-]+@[\w-]+\.[\w.-]+/g, '[email]')
|
|
11
|
+
.replace(/\b[A-Za-z0-9_-]{24,}\b/g, '[token]');
|
|
12
|
+
}
|
|
13
|
+
// A3 — structured-props PII scrub. Keys matching secrets are fully redacted; string values lose
|
|
14
|
+
// emails + long digit runs (cards/SSNs/phones). Intentionally does NOT apply scrubText's aggressive
|
|
15
|
+
// 24+ token rule — that would nuke legitimate ids/uuids that belong in analytics properties.
|
|
16
|
+
const PII_KEY = /pass(word|wd)?|secret|token|api[_-]?key|authorization|auth|ssn|social|credit|card[_-]?(number|num)|cardnum|cvv|cvc/i;
|
|
17
|
+
const EMAIL_RE = /[\w.+-]+@[\w-]+\.[\w.-]+/g;
|
|
18
|
+
const LONGNUM_RE = /\b\d[\d -]{11,18}\d\b/g; // 13–20 digit sequences
|
|
19
|
+
function scrubValue(v) {
|
|
20
|
+
return v.replace(EMAIL_RE, '[email]').replace(LONGNUM_RE, '[redacted]');
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Scrub PII/secrets from a structured props object (analytics `track()` props, super-properties).
|
|
24
|
+
* Denylisted KEYS → fully redacted; string VALUES → emails + long digit runs stripped. Bounded
|
|
25
|
+
* depth/breadth (cycle- & blowup-safe); returns a NEW value, never mutates the caller's object.
|
|
26
|
+
*/
|
|
27
|
+
export function scrubProps(value, depth = 0) {
|
|
28
|
+
if (value == null || depth > 4)
|
|
29
|
+
return value;
|
|
30
|
+
if (typeof value === 'string')
|
|
31
|
+
return scrubValue(value);
|
|
32
|
+
if (Array.isArray(value)) {
|
|
33
|
+
return value.slice(0, 1000).map((v) => scrubProps(v, depth + 1));
|
|
34
|
+
}
|
|
35
|
+
if (typeof value === 'object') {
|
|
36
|
+
const out = {};
|
|
37
|
+
let n = 0;
|
|
38
|
+
for (const k in value) {
|
|
39
|
+
if (n++ > 200)
|
|
40
|
+
break;
|
|
41
|
+
if (!Object.prototype.hasOwnProperty.call(value, k))
|
|
42
|
+
continue;
|
|
43
|
+
const v = value[k];
|
|
44
|
+
out[k] = PII_KEY.test(k) ? '[redacted]' : scrubProps(v, depth + 1);
|
|
45
|
+
}
|
|
46
|
+
return out;
|
|
47
|
+
}
|
|
48
|
+
return value;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=redact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"redact.js","sourceRoot":"","sources":["../../src/core/redact.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,yEAAyE;AACzE,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,OAAO,GAAG;SACP,OAAO,CAAC,2BAA2B,EAAE,SAAS,CAAC;SAC/C,OAAO,CAAC,yBAAyB,EAAE,SAAS,CAAC,CAAC;AACnD,CAAC;AAED,gGAAgG;AAChG,oGAAoG;AACpG,6FAA6F;AAC7F,MAAM,OAAO,GAAG,qHAAqH,CAAC;AACtI,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAC7C,MAAM,UAAU,GAAG,wBAAwB,CAAC,CAAC,wBAAwB;AAErE,SAAS,UAAU,CAAC,CAAS;IAC3B,OAAO,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,CAAC;AAC1E,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAI,KAAQ,EAAE,KAAK,GAAG,CAAC;IAC/C,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,GAAG,CAAC;QAAE,OAAO,KAAK,CAAC;IAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,UAAU,CAAC,KAAK,CAAiB,CAAC;IACxE,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAiB,CAAC;IACnF,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,GAAG,GAA4B,EAAE,CAAC;QACxC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,KAAK,MAAM,CAAC,IAAI,KAAgC,EAAE,CAAC;YACjD,IAAI,CAAC,EAAE,GAAG,GAAG;gBAAE,MAAM;YACrB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;gBAAE,SAAS;YAC9D,MAAM,CAAC,GAAI,KAAiC,CAAC,CAAC,CAAC,CAAC;YAChD,GAAG,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,GAAmB,CAAC;IAC7B,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Replay coordinate tracking (M5) — the ScaleBun differentiator: stamp each error with WHERE the
|
|
3
|
+
* session replay was when it fired, so the dashboard can deep-link the player to the exact frame
|
|
4
|
+
* (not just "open the session"). Competitors link error↔session; we link error↔frame.
|
|
5
|
+
*
|
|
6
|
+
* Zero new coupling: replay frame items already flow through the bootstrap emit boundary, so we just
|
|
7
|
+
* remember the latest frame's `seq` + the current segment (last keyframe's id) as they pass. Errors
|
|
8
|
+
* read it at capture time. Cheap (a kind-check + two assignments) so it's safe on the streaming path.
|
|
9
|
+
*/
|
|
10
|
+
import type { Item } from '@scalebun/protocol';
|
|
11
|
+
export interface ReplayCoord {
|
|
12
|
+
/** Monotonic frame sequence at error time — the player seeks here. */
|
|
13
|
+
seq?: number;
|
|
14
|
+
/** Current segment = the last keyframe's id (segment-aware seeking). */
|
|
15
|
+
segmentId?: string;
|
|
16
|
+
}
|
|
17
|
+
/** Note a frame as it passes the emit boundary (no-op for non-frame items). */
|
|
18
|
+
export declare function noteReplayFrame(item: Item): void;
|
|
19
|
+
/** The current replay coordinate, or undefined when replay isn't producing frames. */
|
|
20
|
+
export declare function getReplayCoord(): ReplayCoord | undefined;
|
|
21
|
+
export declare function clearReplayCoord(): void;
|
|
22
|
+
//# sourceMappingURL=replayCoord.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replayCoord.d.ts","sourceRoot":"","sources":["../../src/core/replayCoord.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAE/C,MAAM,WAAW,WAAW;IAC1B,sEAAsE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,+EAA+E;AAC/E,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAIhD;AAED,sFAAsF;AACtF,wBAAgB,cAAc,IAAI,WAAW,GAAG,SAAS,CAExD;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAGvC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
let seq;
|
|
2
|
+
let segmentId;
|
|
3
|
+
/** Note a frame as it passes the emit boundary (no-op for non-frame items). */
|
|
4
|
+
export function noteReplayFrame(item) {
|
|
5
|
+
if (item.kind !== 'frame')
|
|
6
|
+
return;
|
|
7
|
+
if (typeof item.seq === 'number')
|
|
8
|
+
seq = item.seq;
|
|
9
|
+
if (item.frameType === 'keyframe' && item.frameId)
|
|
10
|
+
segmentId = item.frameId;
|
|
11
|
+
}
|
|
12
|
+
/** The current replay coordinate, or undefined when replay isn't producing frames. */
|
|
13
|
+
export function getReplayCoord() {
|
|
14
|
+
return seq != null || segmentId != null ? { seq, segmentId } : undefined;
|
|
15
|
+
}
|
|
16
|
+
export function clearReplayCoord() {
|
|
17
|
+
seq = undefined;
|
|
18
|
+
segmentId = undefined;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=replayCoord.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"replayCoord.js","sourceRoot":"","sources":["../../src/core/replayCoord.ts"],"names":[],"mappings":"AAkBA,IAAI,GAAuB,CAAC;AAC5B,IAAI,SAA6B,CAAC;AAElC,+EAA+E;AAC/E,MAAM,UAAU,eAAe,CAAC,IAAU;IACxC,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,OAAO;IAClC,IAAI,OAAO,IAAI,CAAC,GAAG,KAAK,QAAQ;QAAE,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;IACjD,IAAI,IAAI,CAAC,SAAS,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO;QAAE,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC;AAC9E,CAAC;AAED,sFAAsF;AACtF,MAAM,UAAU,cAAc;IAC5B,OAAO,GAAG,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;AAC3E,CAAC;AAED,MAAM,UAAU,gBAAgB;IAC9B,GAAG,GAAG,SAAS,CAAC;IAChB,SAAS,GAAG,SAAS,CAAC;AACxB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared retry primitives for the egress lanes (session pipeline + analytics /batch). Zero deps.
|
|
3
|
+
*
|
|
4
|
+
* - Exponential backoff with full jitter so a struggling/offline server isn't hit every flush tick.
|
|
5
|
+
* - Tiny online helpers so a reconnect flushes immediately instead of waiting for the next tick.
|
|
6
|
+
*
|
|
7
|
+
* Applied to the AUTO (timer/reconnect-driven) flush only; explicit/keepalive flushes still attempt
|
|
8
|
+
* unconditionally so ScaleBun.flush() and page-hide sends are never gated.
|
|
9
|
+
*/
|
|
10
|
+
/** navigator.onLine is false ONLY when the browser is sure it's offline; treat unknown as online. */
|
|
11
|
+
export declare function isOnline(): boolean;
|
|
12
|
+
/** Subscribe to the browser regaining connectivity. Returns an unsubscribe (no-op when off-DOM). */
|
|
13
|
+
export declare function onOnline(cb: () => void): () => void;
|
|
14
|
+
/** Exponential backoff (1s base → 30s cap, full jitter). Gates the auto-flush during an outage. */
|
|
15
|
+
export declare class Backoff {
|
|
16
|
+
private fails;
|
|
17
|
+
private nextAt;
|
|
18
|
+
/** True once the backoff window has elapsed and a send may be attempted. */
|
|
19
|
+
ready(nowMs: number): boolean;
|
|
20
|
+
/** Record a failed send → widen the window (capped, full jitter de-correlates retries). */
|
|
21
|
+
fail(nowMs: number): void;
|
|
22
|
+
/** Collapse the window so the next attempt fires immediately (on success or reconnect). */
|
|
23
|
+
reset(): void;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/core/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,qGAAqG;AACrG,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,oGAAoG;AACpG,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAInD;AAKD,mGAAmG;AACnG,qBAAa,OAAO;IAClB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;IAEnB,4EAA4E;IAC5E,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAI7B,2FAA2F;IAC3F,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKzB,2FAA2F;IAC3F,KAAK,IAAI,IAAI;CAId"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared retry primitives for the egress lanes (session pipeline + analytics /batch). Zero deps.
|
|
3
|
+
*
|
|
4
|
+
* - Exponential backoff with full jitter so a struggling/offline server isn't hit every flush tick.
|
|
5
|
+
* - Tiny online helpers so a reconnect flushes immediately instead of waiting for the next tick.
|
|
6
|
+
*
|
|
7
|
+
* Applied to the AUTO (timer/reconnect-driven) flush only; explicit/keepalive flushes still attempt
|
|
8
|
+
* unconditionally so ScaleBun.flush() and page-hide sends are never gated.
|
|
9
|
+
*/
|
|
10
|
+
/** navigator.onLine is false ONLY when the browser is sure it's offline; treat unknown as online. */
|
|
11
|
+
export function isOnline() {
|
|
12
|
+
return typeof navigator === 'undefined' || navigator.onLine !== false;
|
|
13
|
+
}
|
|
14
|
+
/** Subscribe to the browser regaining connectivity. Returns an unsubscribe (no-op when off-DOM). */
|
|
15
|
+
export function onOnline(cb) {
|
|
16
|
+
if (typeof window === 'undefined')
|
|
17
|
+
return () => { };
|
|
18
|
+
window.addEventListener('online', cb);
|
|
19
|
+
return () => window.removeEventListener('online', cb);
|
|
20
|
+
}
|
|
21
|
+
const BASE_MS = 1000;
|
|
22
|
+
const MAX_MS = 30000;
|
|
23
|
+
/** Exponential backoff (1s base → 30s cap, full jitter). Gates the auto-flush during an outage. */
|
|
24
|
+
export class Backoff {
|
|
25
|
+
constructor() {
|
|
26
|
+
this.fails = 0;
|
|
27
|
+
this.nextAt = 0;
|
|
28
|
+
}
|
|
29
|
+
/** True once the backoff window has elapsed and a send may be attempted. */
|
|
30
|
+
ready(nowMs) {
|
|
31
|
+
return nowMs >= this.nextAt;
|
|
32
|
+
}
|
|
33
|
+
/** Record a failed send → widen the window (capped, full jitter de-correlates retries). */
|
|
34
|
+
fail(nowMs) {
|
|
35
|
+
const exp = Math.min(MAX_MS, BASE_MS * 2 ** this.fails++);
|
|
36
|
+
this.nextAt = nowMs + Math.random() * exp;
|
|
37
|
+
}
|
|
38
|
+
/** Collapse the window so the next attempt fires immediately (on success or reconnect). */
|
|
39
|
+
reset() {
|
|
40
|
+
this.fails = 0;
|
|
41
|
+
this.nextAt = 0;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/core/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,qGAAqG;AACrG,MAAM,UAAU,QAAQ;IACtB,OAAO,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,CAAC,MAAM,KAAK,KAAK,CAAC;AACxE,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,QAAQ,CAAC,EAAc;IACrC,IAAI,OAAO,MAAM,KAAK,WAAW;QAAE,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IACnD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IACtC,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,OAAO,GAAG,IAAI,CAAC;AACrB,MAAM,MAAM,GAAG,KAAK,CAAC;AAErB,mGAAmG;AACnG,MAAM,OAAO,OAAO;IAApB;QACU,UAAK,GAAG,CAAC,CAAC;QACV,WAAM,GAAG,CAAC,CAAC;IAkBrB,CAAC;IAhBC,4EAA4E;IAC5E,KAAK,CAAC,KAAa;QACjB,OAAO,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC;IAC9B,CAAC;IAED,2FAA2F;IAC3F,IAAI,CAAC,KAAa;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC;IAC5C,CAAC;IAED,2FAA2F;IAC3F,KAAK;QACH,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAClB,CAAC;CACF"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* core/runtime.ts — the ONE place the SDK decides which JavaScript runtime it is executing in.
|
|
3
|
+
*
|
|
4
|
+
* Replaces scattered `typeof window !== 'undefined'` checks with a single, memoized detection so every
|
|
5
|
+
* feature can reason about the ENVIRONMENT (browser / SSR-node / edge / worker) instead of probing
|
|
6
|
+
* globals ad-hoc. Import-safe: detection is LAZY (first call), so importing this module touches no
|
|
7
|
+
* global. Conservative: anything not confidently a browser is treated as a server, so the SDK never
|
|
8
|
+
* runs DOM code in an ambiguous runtime.
|
|
9
|
+
*
|
|
10
|
+
* Nothing consumes this yet (P0 foundation) — `init()`/features wire into it in later phases.
|
|
11
|
+
*/
|
|
12
|
+
export type Runtime = 'browser' | 'ssr-node' | 'edge' | 'worker' | 'unknown';
|
|
13
|
+
/** The current runtime, detected once and memoized. */
|
|
14
|
+
export declare function getRuntime(): Runtime;
|
|
15
|
+
/** True only in a real browser (DOM present). Everything else is a server-side runtime. */
|
|
16
|
+
export declare function isBrowser(): boolean;
|
|
17
|
+
/** True on any non-browser runtime (SSR-node, edge, worker, unknown). */
|
|
18
|
+
export declare function isServer(): boolean;
|
|
19
|
+
/** True on an edge / WinterCG runtime (Vercel Edge, Cloudflare Workers). */
|
|
20
|
+
export declare function isEdge(): boolean;
|
|
21
|
+
/** Test-only: clear the memoized runtime so a suite can re-detect under mocked globals. */
|
|
22
|
+
export declare function __resetRuntimeForTests(): void;
|
|
23
|
+
/**
|
|
24
|
+
* Test-only: force the runtime, bypassing detection. Lets node-based integration suites (real `fetch`
|
|
25
|
+
* + a local http server) drive the browser `init()` path without a DOM. Pair with `__resetRuntimeForTests`.
|
|
26
|
+
*/
|
|
27
|
+
export declare function __setRuntimeForTests(rt: Runtime): void;
|
|
28
|
+
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAmC7E,uDAAuD;AACvD,wBAAgB,UAAU,IAAI,OAAO,CAGpC;AAED,2FAA2F;AAC3F,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,IAAI,OAAO,CAElC;AAED,4EAA4E;AAC5E,wBAAgB,MAAM,IAAI,OAAO,CAEhC;AAED,2FAA2F;AAC3F,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAEtD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* core/runtime.ts — the ONE place the SDK decides which JavaScript runtime it is executing in.
|
|
3
|
+
*
|
|
4
|
+
* Replaces scattered `typeof window !== 'undefined'` checks with a single, memoized detection so every
|
|
5
|
+
* feature can reason about the ENVIRONMENT (browser / SSR-node / edge / worker) instead of probing
|
|
6
|
+
* globals ad-hoc. Import-safe: detection is LAZY (first call), so importing this module touches no
|
|
7
|
+
* global. Conservative: anything not confidently a browser is treated as a server, so the SDK never
|
|
8
|
+
* runs DOM code in an ambiguous runtime.
|
|
9
|
+
*
|
|
10
|
+
* Nothing consumes this yet (P0 foundation) — `init()`/features wire into it in later phases.
|
|
11
|
+
*/
|
|
12
|
+
let cached = null;
|
|
13
|
+
function detect() {
|
|
14
|
+
const g = globalThis;
|
|
15
|
+
// Browser: a real DOM (document) + window. The only runtime that runs the full capture pipeline.
|
|
16
|
+
if (typeof window !== 'undefined' && typeof document !== 'undefined')
|
|
17
|
+
return 'browser';
|
|
18
|
+
// Edge / WinterCG (Vercel Edge, Cloudflare Workers) — no DOM, fetch present. Checked before the
|
|
19
|
+
// worker heuristic so a CF Worker classifies as 'edge', not 'worker'.
|
|
20
|
+
const nav = g.navigator;
|
|
21
|
+
const caches = g.caches;
|
|
22
|
+
if (typeof g.EdgeRuntime !== 'undefined' ||
|
|
23
|
+
nav?.userAgent === 'Cloudflare-Workers' ||
|
|
24
|
+
typeof g.WebSocketPair !== 'undefined' ||
|
|
25
|
+
(caches !== undefined && typeof caches.default !== 'undefined')) {
|
|
26
|
+
return 'edge';
|
|
27
|
+
}
|
|
28
|
+
// Dedicated / service worker (worker global scope; no document).
|
|
29
|
+
if (typeof g.importScripts === 'function' || typeof g.ServiceWorkerGlobalScope !== 'undefined') {
|
|
30
|
+
return 'worker';
|
|
31
|
+
}
|
|
32
|
+
// Node SSR (Next SSR/RSC/SSG/ISR, Node servers).
|
|
33
|
+
const proc = g.process;
|
|
34
|
+
if (proc?.versions?.node)
|
|
35
|
+
return 'ssr-node';
|
|
36
|
+
return 'unknown';
|
|
37
|
+
}
|
|
38
|
+
/** The current runtime, detected once and memoized. */
|
|
39
|
+
export function getRuntime() {
|
|
40
|
+
if (cached === null)
|
|
41
|
+
cached = detect();
|
|
42
|
+
return cached;
|
|
43
|
+
}
|
|
44
|
+
/** True only in a real browser (DOM present). Everything else is a server-side runtime. */
|
|
45
|
+
export function isBrowser() {
|
|
46
|
+
return getRuntime() === 'browser';
|
|
47
|
+
}
|
|
48
|
+
/** True on any non-browser runtime (SSR-node, edge, worker, unknown). */
|
|
49
|
+
export function isServer() {
|
|
50
|
+
return !isBrowser();
|
|
51
|
+
}
|
|
52
|
+
/** True on an edge / WinterCG runtime (Vercel Edge, Cloudflare Workers). */
|
|
53
|
+
export function isEdge() {
|
|
54
|
+
return getRuntime() === 'edge';
|
|
55
|
+
}
|
|
56
|
+
/** Test-only: clear the memoized runtime so a suite can re-detect under mocked globals. */
|
|
57
|
+
export function __resetRuntimeForTests() {
|
|
58
|
+
cached = null;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Test-only: force the runtime, bypassing detection. Lets node-based integration suites (real `fetch`
|
|
62
|
+
* + a local http server) drive the browser `init()` path without a DOM. Pair with `__resetRuntimeForTests`.
|
|
63
|
+
*/
|
|
64
|
+
export function __setRuntimeForTests(rt) {
|
|
65
|
+
cached = rt;
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=runtime.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../src/core/runtime.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,IAAI,MAAM,GAAmB,IAAI,CAAC;AAElC,SAAS,MAAM;IACb,MAAM,CAAC,GAAG,UAAqC,CAAC;IAEhD,iGAAiG;IACjG,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,QAAQ,KAAK,WAAW;QAAE,OAAO,SAAS,CAAC;IAEvF,gGAAgG;IAChG,sEAAsE;IACtE,MAAM,GAAG,GAAG,CAAC,CAAC,SAA+C,CAAC;IAC9D,MAAM,MAAM,GAAG,CAAC,CAAC,MAA2C,CAAC;IAC7D,IACE,OAAO,CAAC,CAAC,WAAW,KAAK,WAAW;QACpC,GAAG,EAAE,SAAS,KAAK,oBAAoB;QACvC,OAAO,CAAC,CAAC,aAAa,KAAK,WAAW;QACtC,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,WAAW,CAAC,EAC/D,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,iEAAiE;IACjE,IAAI,OAAO,CAAC,CAAC,aAAa,KAAK,UAAU,IAAI,OAAO,CAAC,CAAC,wBAAwB,KAAK,WAAW,EAAE,CAAC;QAC/F,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iDAAiD;IACjD,MAAM,IAAI,GAAG,CAAC,CAAC,OAAuD,CAAC;IACvE,IAAI,IAAI,EAAE,QAAQ,EAAE,IAAI;QAAE,OAAO,UAAU,CAAC;IAE5C,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,uDAAuD;AACvD,MAAM,UAAU,UAAU;IACxB,IAAI,MAAM,KAAK,IAAI;QAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IACvC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,SAAS;IACvB,OAAO,UAAU,EAAE,KAAK,SAAS,CAAC;AACpC,CAAC;AAED,yEAAyE;AACzE,MAAM,UAAU,QAAQ;IACtB,OAAO,CAAC,SAAS,EAAE,CAAC;AACtB,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,MAAM;IACpB,OAAO,UAAU,EAAE,KAAK,MAAM,CAAC;AACjC,CAAC;AAED,2FAA2F;AAC3F,MAAM,UAAU,sBAAsB;IACpC,MAAM,GAAG,IAAI,CAAC;AAChB,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,EAAW;IAC9C,MAAM,GAAG,EAAE,CAAC;AACd,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scroll depth — the ONE definition, shared by the three places that report it (the lazy scroll
|
|
3
|
+
* producer, autocapture's fallback scalar, and exit-intent). All three previously carried their own
|
|
4
|
+
* copy of the same formula, and that formula was wrong in two ways.
|
|
5
|
+
*
|
|
6
|
+
* NOT re-exported from `core/index.ts` on purpose: only lazy chunks import it, so the eager core pays
|
|
7
|
+
* nothing for it.
|
|
8
|
+
*
|
|
9
|
+
* ## What "depth" means
|
|
10
|
+
*
|
|
11
|
+
* Depth is **how much of the page the visitor actually saw**, not how far the scrollbar travelled:
|
|
12
|
+
*
|
|
13
|
+
* depth = (min(scrollY, scrollable) + viewportH) / docH
|
|
14
|
+
*
|
|
15
|
+
* The old formula was `scrollY / (docH - viewportH)`, which measures the travel of the viewport's TOP
|
|
16
|
+
* edge and ignores the screenful the visitor is looking at. Landing on a 5,683px page, reading the
|
|
17
|
+
* whole first screen and leaving reported **0%** — but 774px were seen, which is 14%. It understated
|
|
18
|
+
* every route, and reported a hard 0 for the extremely common "read the top, didn't scroll" visit.
|
|
19
|
+
* Both formulas agree at the bottom of the page (100%); they diverge everywhere above it.
|
|
20
|
+
*
|
|
21
|
+
* ## Pages that do not scroll
|
|
22
|
+
*
|
|
23
|
+
* `docH - viewportH` is rarely exactly 0 — a 1px border or sub-pixel rounding leaves a few pixels of
|
|
24
|
+
* slop. The old guard was a bare `scrollable > 0`, so a page with **5px** of overflow divided by 5:
|
|
25
|
+
* a 2px twitch reported 40% depth, and no movement reported 0% on a page with nothing to scroll to.
|
|
26
|
+
* Below {@link MIN_SCROLLABLE_RATIO} of the viewport there is no content beneath the fold, so the page
|
|
27
|
+
* is fully seen. (The content-seen formula above mostly handles this on its own — 776/781 is 99% — but
|
|
28
|
+
* "99% of a page that fits on screen" is still a false negative, and callers need the flag anyway to
|
|
29
|
+
* avoid ranking an unscrollable page as their best-read one.)
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* A scrollable run smaller than 1% of the screen is not scrollable in any meaningful sense. Relative
|
|
33
|
+
* rather than absolute because viewports range from ~600px to ~1400px tall.
|
|
34
|
+
*/
|
|
35
|
+
export declare const MIN_SCROLLABLE_RATIO = 0.01;
|
|
36
|
+
/** Does this page actually scroll? False → depth is trivially 100% and means nothing. */
|
|
37
|
+
export declare function isScrollable(docH: number, viewportH: number): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Deepest fraction of the document seen, as an integer 0–100.
|
|
40
|
+
*
|
|
41
|
+
* @param maxScrollY deepest `window.scrollY` reached (not the current position)
|
|
42
|
+
* @param docH tallest the document ever was during this pageview
|
|
43
|
+
* @param viewportH visible height
|
|
44
|
+
*/
|
|
45
|
+
export declare function scrollDepthPct(maxScrollY: number, docH: number, viewportH: number): number;
|
|
46
|
+
/** The 0/25/50/75/100 fold a depth lands in. */
|
|
47
|
+
export declare function foldBucketOf(pct: number): 0 | 25 | 50 | 75 | 100;
|
|
48
|
+
//# sourceMappingURL=scrollDepth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrollDepth.d.ts","sourceRoot":"","sources":["../../src/core/scrollDepth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;GAGG;AACH,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC,yFAAyF;AACzF,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAGrE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAO1F;AAED,gDAAgD;AAChD,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,CAEhE"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Scroll depth — the ONE definition, shared by the three places that report it (the lazy scroll
|
|
3
|
+
* producer, autocapture's fallback scalar, and exit-intent). All three previously carried their own
|
|
4
|
+
* copy of the same formula, and that formula was wrong in two ways.
|
|
5
|
+
*
|
|
6
|
+
* NOT re-exported from `core/index.ts` on purpose: only lazy chunks import it, so the eager core pays
|
|
7
|
+
* nothing for it.
|
|
8
|
+
*
|
|
9
|
+
* ## What "depth" means
|
|
10
|
+
*
|
|
11
|
+
* Depth is **how much of the page the visitor actually saw**, not how far the scrollbar travelled:
|
|
12
|
+
*
|
|
13
|
+
* depth = (min(scrollY, scrollable) + viewportH) / docH
|
|
14
|
+
*
|
|
15
|
+
* The old formula was `scrollY / (docH - viewportH)`, which measures the travel of the viewport's TOP
|
|
16
|
+
* edge and ignores the screenful the visitor is looking at. Landing on a 5,683px page, reading the
|
|
17
|
+
* whole first screen and leaving reported **0%** — but 774px were seen, which is 14%. It understated
|
|
18
|
+
* every route, and reported a hard 0 for the extremely common "read the top, didn't scroll" visit.
|
|
19
|
+
* Both formulas agree at the bottom of the page (100%); they diverge everywhere above it.
|
|
20
|
+
*
|
|
21
|
+
* ## Pages that do not scroll
|
|
22
|
+
*
|
|
23
|
+
* `docH - viewportH` is rarely exactly 0 — a 1px border or sub-pixel rounding leaves a few pixels of
|
|
24
|
+
* slop. The old guard was a bare `scrollable > 0`, so a page with **5px** of overflow divided by 5:
|
|
25
|
+
* a 2px twitch reported 40% depth, and no movement reported 0% on a page with nothing to scroll to.
|
|
26
|
+
* Below {@link MIN_SCROLLABLE_RATIO} of the viewport there is no content beneath the fold, so the page
|
|
27
|
+
* is fully seen. (The content-seen formula above mostly handles this on its own — 776/781 is 99% — but
|
|
28
|
+
* "99% of a page that fits on screen" is still a false negative, and callers need the flag anyway to
|
|
29
|
+
* avoid ranking an unscrollable page as their best-read one.)
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* A scrollable run smaller than 1% of the screen is not scrollable in any meaningful sense. Relative
|
|
33
|
+
* rather than absolute because viewports range from ~600px to ~1400px tall.
|
|
34
|
+
*/
|
|
35
|
+
export const MIN_SCROLLABLE_RATIO = 0.01;
|
|
36
|
+
/** Does this page actually scroll? False → depth is trivially 100% and means nothing. */
|
|
37
|
+
export function isScrollable(docH, viewportH) {
|
|
38
|
+
if (!(docH > 0) || !(viewportH > 0))
|
|
39
|
+
return false;
|
|
40
|
+
return docH - viewportH > viewportH * MIN_SCROLLABLE_RATIO;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Deepest fraction of the document seen, as an integer 0–100.
|
|
44
|
+
*
|
|
45
|
+
* @param maxScrollY deepest `window.scrollY` reached (not the current position)
|
|
46
|
+
* @param docH tallest the document ever was during this pageview
|
|
47
|
+
* @param viewportH visible height
|
|
48
|
+
*/
|
|
49
|
+
export function scrollDepthPct(maxScrollY, docH, viewportH) {
|
|
50
|
+
if (!(docH > 0))
|
|
51
|
+
return 100; // nothing measurable — don't invent a shortfall
|
|
52
|
+
if (!isScrollable(docH, viewportH))
|
|
53
|
+
return 100;
|
|
54
|
+
const scrollable = docH - viewportH;
|
|
55
|
+
// Clamp scroll to the run first: over-scroll (rubber-banding on iOS) must not exceed 100%.
|
|
56
|
+
const seen = Math.min(Math.max(maxScrollY, 0), scrollable) + viewportH;
|
|
57
|
+
return Math.min(100, Math.max(0, Math.round((seen / docH) * 100)));
|
|
58
|
+
}
|
|
59
|
+
/** The 0/25/50/75/100 fold a depth lands in. */
|
|
60
|
+
export function foldBucketOf(pct) {
|
|
61
|
+
return pct >= 100 ? 100 : pct >= 75 ? 75 : pct >= 50 ? 50 : pct >= 25 ? 25 : 0;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=scrollDepth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scrollDepth.js","sourceRoot":"","sources":["../../src/core/scrollDepth.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH;;;GAGG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,yFAAyF;AACzF,MAAM,UAAU,YAAY,CAAC,IAAY,EAAE,SAAiB;IAC1D,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAClD,OAAO,IAAI,GAAG,SAAS,GAAG,SAAS,GAAG,oBAAoB,CAAC;AAC7D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,UAAkB,EAAE,IAAY,EAAE,SAAiB;IAChF,IAAI,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC;QAAE,OAAO,GAAG,CAAC,CAAC,gDAAgD;IAC7E,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS,CAAC;QAAE,OAAO,GAAG,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAI,GAAG,SAAS,CAAC;IACpC,2FAA2F;IAC3F,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,SAAS,CAAC;IACvE,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC;AACrE,CAAC;AAED,gDAAgD;AAChD,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,OAAO,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/debug/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* F-ANL — Product-analytics lane. A dedicated batched transport to POST /batch writing `Event`
|
|
3
|
+
* envelopes (eventName, properties, revenue/currency/transactionId), DISTINCT from the replay/session
|
|
4
|
+
* pipeline. This is what the events/funnels/retention/revenue dashboards read (they query the `Event`
|
|
5
|
+
* table, not `ReplayEvent`). The facade's track()/trackPurchase()/identify() fan out here AND to the
|
|
6
|
+
* pipeline (so replay correlation — P1.3 CWV→revenue, P2.2 watch-experiment — keeps working).
|
|
7
|
+
*
|
|
8
|
+
* Mirrors the RN EventTracker wire shape (snake_case envelope). Zero third-party deps.
|
|
9
|
+
*/
|
|
10
|
+
import type { IFeature, FeatureContext } from '@scalebun/sdk-contracts';
|
|
11
|
+
import { type RevenueInput } from './revenue';
|
|
12
|
+
import { type SubscriptionInput } from './subscription';
|
|
13
|
+
export type PurchaseInput = RevenueInput;
|
|
14
|
+
export declare class AnalyticsFeature implements IFeature {
|
|
15
|
+
readonly name = "analytics";
|
|
16
|
+
private ctx;
|
|
17
|
+
private active;
|
|
18
|
+
private clientKey;
|
|
19
|
+
private apiBaseUrl;
|
|
20
|
+
private deviceId;
|
|
21
|
+
private installationId;
|
|
22
|
+
private clickId?;
|
|
23
|
+
private attributionProps;
|
|
24
|
+
private anonymousId;
|
|
25
|
+
private userId?;
|
|
26
|
+
private superProps;
|
|
27
|
+
private groups;
|
|
28
|
+
private queue;
|
|
29
|
+
private timer?;
|
|
30
|
+
private onHide?;
|
|
31
|
+
private stopAutocapture?;
|
|
32
|
+
private readonly buffer;
|
|
33
|
+
private persisted;
|
|
34
|
+
private readonly backoff;
|
|
35
|
+
private offOnline?;
|
|
36
|
+
private offSignal?;
|
|
37
|
+
private plan?;
|
|
38
|
+
private sampleRate;
|
|
39
|
+
private cookieDomain?;
|
|
40
|
+
private droppedCount;
|
|
41
|
+
private sampledOutCount;
|
|
42
|
+
private flushCount;
|
|
43
|
+
/** Egress telemetry (Dev Panel / debug): events waiting to send + events dropped (queue overflow
|
|
44
|
+
* or stale-on-reload). */
|
|
45
|
+
get pending(): number;
|
|
46
|
+
get dropped(): number;
|
|
47
|
+
/** A7 — analytics-lane observability (parity with perfStats/egressStats). */
|
|
48
|
+
get stats(): {
|
|
49
|
+
pending: number;
|
|
50
|
+
dropped: number;
|
|
51
|
+
sampledOut: number;
|
|
52
|
+
flushes: number;
|
|
53
|
+
sampleRate: number;
|
|
54
|
+
};
|
|
55
|
+
get isActive(): boolean;
|
|
56
|
+
setup(ctx: FeatureContext): void;
|
|
57
|
+
private get usable();
|
|
58
|
+
private get sessionId();
|
|
59
|
+
/** W6.1 — record the acquisition touchpoint once (fire-and-forget). The backend classifies the channel
|
|
60
|
+
* from these signals (org rules), stitches to the session/subject, and lights up the Traffic Sources
|
|
61
|
+
* report. Fail-soft: the same signals also ride Event.properties, so nothing is lost if this drops. */
|
|
62
|
+
private recordTouchpoint;
|
|
63
|
+
/** W1b — emit `first_open` once per install. Guarded by localStorage; if storage is unavailable it may
|
|
64
|
+
* re-emit across loads, which the backend once-guard (Installation.firstOpenAt) absorbs. */
|
|
65
|
+
private maybeFirstOpen;
|
|
66
|
+
/** W1b — the current install id (for the host / attribution API). */
|
|
67
|
+
getInstallationId(): string;
|
|
68
|
+
/** W1b — set the deferred deep-link attribution token manually (for hosts running their own redirect).
|
|
69
|
+
* Rides `identifiers.click_id` on every subsequent event; the backend matches it to a Click row. */
|
|
70
|
+
setClickId(id: string): void;
|
|
71
|
+
private build;
|
|
72
|
+
/** A0/A1 — the current analytics identity + global context, shared with the session lane so both
|
|
73
|
+
* transports stamp the same anon/user id, super-properties and groups onto every event. */
|
|
74
|
+
get identity(): {
|
|
75
|
+
anonymousId: string;
|
|
76
|
+
userId?: string;
|
|
77
|
+
groups: Record<string, string>;
|
|
78
|
+
superProps: Record<string, unknown>;
|
|
79
|
+
};
|
|
80
|
+
/** A3 — evaluate a user event against the tracking plan (if configured). Warns on violations and
|
|
81
|
+
* returns whether to DROP it (strict mode). The facade calls this once to gate BOTH lanes. */
|
|
82
|
+
evaluate(name: string, props?: Record<string, unknown>): {
|
|
83
|
+
drop: boolean;
|
|
84
|
+
};
|
|
85
|
+
/** A1 — register global "super" properties merged into every subsequent event (persisted). */
|
|
86
|
+
register(props: Record<string, unknown>): void;
|
|
87
|
+
/** A1 — remove a previously-registered super-property. */
|
|
88
|
+
unregister(key: string): void;
|
|
89
|
+
/** A1 — associate the user with a B2B group; stamps `groups` on every event + emits one `$group`
|
|
90
|
+
* carrying the group traits (server upserts the group profile, like `$identify` for users). */
|
|
91
|
+
group(groupType: string, groupKey: string, traits?: Record<string, unknown>): void;
|
|
92
|
+
/** A1 — link the current identity to a prior id (anon→known or cross-device). Sets user_id + emits
|
|
93
|
+
* an `$alias` carrying the previous id so the backend graph links them deterministically. */
|
|
94
|
+
alias(newUserId: string, previousId?: string): void;
|
|
95
|
+
/** A1 — logout: mint a fresh anonymous id and clear user/super-props/groups so the next user's
|
|
96
|
+
* events aren't attributed to the previous one. */
|
|
97
|
+
reset(): void;
|
|
98
|
+
track(name: string, props?: Record<string, unknown>): void;
|
|
99
|
+
/** A4 — revenue event (one-time / subscription / refund). revenue/currency top-level (normalized),
|
|
100
|
+
* revenue_type + LTV fields (product/quantity/recurrence) in properties; server-deduped by
|
|
101
|
+
* transaction_id. Group attribution is automatic via the stamped `groups`. */
|
|
102
|
+
trackPurchase(input: RevenueInput): void;
|
|
103
|
+
/** W2 — record a subscription lifecycle change. Emits a `$subscription` event whose properties carry
|
|
104
|
+
* the subscription payload (+ the replay coord, so the backend ledger can deep-link the session of the
|
|
105
|
+
* change). Validate-or-drop, like trackPurchase. */
|
|
106
|
+
trackSubscription(input: SubscriptionInput): void;
|
|
107
|
+
/** Stamp user_id onto subsequent events + emit one $identify so the backend links the profile now. */
|
|
108
|
+
identify(userId: string, traits?: Record<string, unknown>): void;
|
|
109
|
+
private enqueue;
|
|
110
|
+
/** Bound the in-memory queue to QUEUE_CAP, counting the oldest dropped events for telemetry. */
|
|
111
|
+
private trim;
|
|
112
|
+
/** Timer/threshold/reconnect-driven flush: skip while offline or inside the backoff window so a
|
|
113
|
+
* struggling/offline server isn't hit every tick. Explicit flush()/keepalive sends bypass this. */
|
|
114
|
+
private autoFlush;
|
|
115
|
+
flush(keepalive?: boolean): Promise<void>;
|
|
116
|
+
private requeue;
|
|
117
|
+
/** Keep the IDB snapshot in sync with the in-memory queue. Writes only when state changes:
|
|
118
|
+
* saves a non-empty queue (so it survives reload/crash), clears once everything has flushed. */
|
|
119
|
+
private persist;
|
|
120
|
+
teardown(): void;
|
|
121
|
+
}
|
|
122
|
+
//# sourceMappingURL=AnalyticsFeature.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnalyticsFeature.d.ts","sourceRoot":"","sources":["../../../src/features/analytics/AnalyticsFeature.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAgB,MAAM,yBAAyB,CAAC;AAGtF,OAAO,EAAoB,KAAK,YAAY,EAAE,MAAM,WAAW,CAAC;AAChE,OAAO,EAAyB,KAAK,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAqH/E,MAAM,MAAM,aAAa,GAAG,YAAY,CAAC;AAyJzC,qBAAa,gBAAiB,YAAW,QAAQ;IAC/C,QAAQ,CAAC,IAAI,eAAe;IAC5B,OAAO,CAAC,GAAG,CAA+B;IAC1C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,UAAU,CAAM;IACxB,OAAO,CAAC,QAAQ,CAAM;IACtB,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,gBAAgB,CAA8B;IACtD,OAAO,CAAC,WAAW,CAAM;IACzB,OAAO,CAAC,MAAM,CAAC,CAAqB;IACpC,OAAO,CAAC,UAAU,CAA+B;IACjD,OAAO,CAAC,MAAM,CAA8B;IAC5C,OAAO,CAAC,KAAK,CAAuB;IACpC,OAAO,CAAC,KAAK,CAAC,CAAiC;IAC/C,OAAO,CAAC,MAAM,CAAC,CAAa;IAC5B,OAAO,CAAC,eAAe,CAAC,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiC;IACxD,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiB;IACzC,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAa;IAC/B,OAAO,CAAC,IAAI,CAAC,CAAe;IAC5B,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,eAAe,CAAK;IAC5B,OAAO,CAAC,UAAU,CAAK;IAEvB;+BAC2B;IAC3B,IAAI,OAAO,IAAI,MAAM,CAEpB;IACD,IAAI,OAAO,IAAI,MAAM,CAEpB;IAED,6EAA6E;IAC7E,IAAI,KAAK,IAAI;QACX,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,EAAE,MAAM,CAAC;KACpB,CAQA;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAED,KAAK,CAAC,GAAG,EAAE,cAAc,GAAG,IAAI;IA+GhC,OAAO,KAAK,MAAM,GAEjB;IAED,OAAO,KAAK,SAAS,GAEpB;IAED;;4GAEwG;YAC1F,gBAAgB;IA2B9B;iGAC6F;IAC7F,OAAO,CAAC,cAAc;IAgBtB,qEAAqE;IACrE,iBAAiB,IAAI,MAAM;IAI3B;yGACqG;IACrG,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI;IAU5B,OAAO,CAAC,KAAK;IA4Bb;gGAC4F;IAC5F,IAAI,QAAQ,IAAI;QACd,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACrC,CAOA;IAED;mGAC+F;IAC/F,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE;IAa1E,8FAA8F;IAC9F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM9C,0DAA0D;IAC1D,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAO7B;oGACgG;IAChG,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IASlF;kGAC8F;IAC9F,KAAK,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI;IAQnD;wDACoD;IACpD,KAAK,IAAI,IAAI;IAgBb,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAS1D;;mFAE+E;IAC/E,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAUxC;;yDAEqD;IACrD,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAQjD,sGAAsG;IACtG,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAOhE,OAAO,CAAC,OAAO;IAMf,gGAAgG;IAChG,OAAO,CAAC,IAAI;IAQZ;wGACoG;IACpG,OAAO,CAAC,SAAS;IAKX,KAAK,CAAC,SAAS,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAgC7C,OAAO,CAAC,OAAO;IAKf;qGACiG;YACnF,OAAO;IAUrB,QAAQ,IAAI,IAAI;CAoBjB"}
|