@scalebun/react-native 1.10.4 → 1.10.5
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/android/src/main/java/com/scalebun/replaysdk/tracking/InteractionTracker.kt +19 -0
- package/dist/scalebun.full.js +407 -57
- package/dist/scalebun.slim.js +404 -62
- package/lib/commonjs/bootstrap/SDKBootstrapper.js +17 -3
- package/lib/commonjs/core/config/schema.js +29 -0
- package/lib/commonjs/core/constants/version.js +1 -1
- package/lib/commonjs/debug/redaction.js +227 -41
- package/lib/commonjs/features/journey/ScaleBunDebugRoot.js +9 -1
- package/lib/commonjs/features/navigation/AutoScreenDetector.js +68 -16
- package/lib/commonjs/features/session/BackendSessionAdapter.js +73 -6
- package/lib/commonjs/features/session/SessionManager.js +28 -0
- package/lib/commonjs/public/ScaleBunFacade.js +79 -2
- package/lib/module/bootstrap/SDKBootstrapper.js +17 -3
- package/lib/module/core/config/schema.js +29 -0
- package/lib/module/core/constants/version.js +1 -1
- package/lib/module/debug/redaction.js +227 -41
- package/lib/module/features/journey/ScaleBunDebugRoot.js +9 -1
- package/lib/module/features/navigation/AutoScreenDetector.js +68 -16
- package/lib/module/features/session/BackendSessionAdapter.js +73 -6
- package/lib/module/features/session/SessionManager.js +28 -0
- package/lib/module/public/ScaleBunFacade.js +79 -2
- package/lib/typescript/core/config/schema.d.ts +8 -0
- package/lib/typescript/core/constants/version.d.ts +1 -1
- package/lib/typescript/debug/redaction.d.ts +8 -2
- package/lib/typescript/features/navigation/AutoScreenDetector.d.ts +25 -0
- package/lib/typescript/features/session/BackendSessionAdapter.d.ts +9 -0
- package/lib/typescript/features/session/SessionManager.d.ts +15 -0
- package/lib/typescript/public/ScaleBunFacade.d.ts +36 -2
- package/lib/typescript/public/types.d.ts +1 -1
- package/package.json +6 -2
- package/src/bootstrap/SDKBootstrapper.ts +17 -1
- package/src/core/config/schema.ts +22 -0
- package/src/core/constants/version.ts +1 -1
- package/src/debug/redaction.ts +235 -42
- package/src/features/journey/ScaleBunDebugRoot.tsx +9 -1
- package/src/features/navigation/AutoScreenDetector.ts +70 -16
- package/src/features/session/BackendSessionAdapter.ts +81 -7
- package/src/features/session/SessionManager.ts +31 -0
- package/src/public/ScaleBunFacade.ts +81 -2
- package/src/public/types.ts +1 -1
- package/dist/scalebun.full.js.map +0 -1
- package/dist/scalebun.slim.js.map +0 -1
- package/lib/commonjs/analytics/EventTracker.js.map +0 -1
- package/lib/commonjs/analytics/automaticEvents.js.map +0 -1
- package/lib/commonjs/analytics/batching.js.map +0 -1
- package/lib/commonjs/analytics/eventLane.js.map +0 -1
- package/lib/commonjs/bootstrap/FeatureRegistry.js.map +0 -1
- package/lib/commonjs/bootstrap/SDKBootstrapper.js.map +0 -1
- package/lib/commonjs/bucketing/fnv1a32.js.map +0 -1
- package/lib/commonjs/compat/codepush.js.map +0 -1
- package/lib/commonjs/config/ConfigManager.js.map +0 -1
- package/lib/commonjs/config/configTypes.js.map +0 -1
- package/lib/commonjs/core/architecture.js.map +0 -1
- package/lib/commonjs/core/clock/now.js.map +0 -1
- package/lib/commonjs/core/config/defaults.js.map +0 -1
- package/lib/commonjs/core/config/schema.js.map +0 -1
- package/lib/commonjs/core/constants/endpoints.js.map +0 -1
- package/lib/commonjs/core/constants/protocol.js.map +0 -1
- package/lib/commonjs/core/constants/timings.js.map +0 -1
- package/lib/commonjs/core/constants/version.js.map +0 -1
- package/lib/commonjs/core/context/app.js.map +0 -1
- package/lib/commonjs/core/context/device.js.map +0 -1
- package/lib/commonjs/core/context/session.js.map +0 -1
- package/lib/commonjs/core/context/user.js.map +0 -1
- package/lib/commonjs/core/contracts/IFeature.js.map +0 -1
- package/lib/commonjs/core/di/container.js.map +0 -1
- package/lib/commonjs/core/encoding/base64.js.map +0 -1
- package/lib/commonjs/core/id/deviceId.js.map +0 -1
- package/lib/commonjs/core/id/installationId.js.map +0 -1
- package/lib/commonjs/core/id/sessionId.js.map +0 -1
- package/lib/commonjs/core/lifecycle/appLifecycle.js.map +0 -1
- package/lib/commonjs/core/lifecycle/crashSafe.js.map +0 -1
- package/lib/commonjs/core/logger/errorClassification.js.map +0 -1
- package/lib/commonjs/core/logger/internalLogger.js.map +0 -1
- package/lib/commonjs/core/logger/levels.js.map +0 -1
- package/lib/commonjs/crypto/hmacSha256.js.map +0 -1
- package/lib/commonjs/debug/bootstrap.js.map +0 -1
- package/lib/commonjs/debug/commands.js.map +0 -1
- package/lib/commonjs/debug/configBuilder.js.map +0 -1
- package/lib/commonjs/debug/exportBridge.js.map +0 -1
- package/lib/commonjs/debug/hostResolver.js.map +0 -1
- package/lib/commonjs/debug/index.js.map +0 -1
- package/lib/commonjs/debug/metrics.js.map +0 -1
- package/lib/commonjs/debug/perf.js.map +0 -1
- package/lib/commonjs/debug/perfWiring.js.map +0 -1
- package/lib/commonjs/debug/protocol.js.map +0 -1
- package/lib/commonjs/debug/redaction.js.map +0 -1
- package/lib/commonjs/debug/replayWiring.js.map +0 -1
- package/lib/commonjs/debug/screenTracking.js.map +0 -1
- package/lib/commonjs/debug/sessionWiring.js.map +0 -1
- package/lib/commonjs/debug/stream.js.map +0 -1
- package/lib/commonjs/debug/transport.js.map +0 -1
- package/lib/commonjs/features/bugreport/BugReportFeature.js.map +0 -1
- package/lib/commonjs/features/bugreport/buildPayload.js.map +0 -1
- package/lib/commonjs/features/bugreport/index.js.map +0 -1
- package/lib/commonjs/features/crash/CrashFeature.js.map +0 -1
- package/lib/commonjs/features/crash/CrashReporter.js.map +0 -1
- package/lib/commonjs/features/crash/NativeCrashFeature.js.map +0 -1
- package/lib/commonjs/features/crash/capture.js.map +0 -1
- package/lib/commonjs/features/crash/globalHandler.js.map +0 -1
- package/lib/commonjs/features/crash/index.js.map +0 -1
- package/lib/commonjs/features/crash/nativeCrashBridge.js.map +0 -1
- package/lib/commonjs/features/crash/rejectionHandler.js.map +0 -1
- package/lib/commonjs/features/engage/EngageAnchor.js.map +0 -1
- package/lib/commonjs/features/engage/EngageArchetypeRenderers.js.map +0 -1
- package/lib/commonjs/features/engage/EngageInAppView.js.map +0 -1
- package/lib/commonjs/features/engage/EngageInlinePlacement.js.map +0 -1
- package/lib/commonjs/features/engage/EngagePromptProvider.js.map +0 -1
- package/lib/commonjs/features/engage/EngagePromptView.js.map +0 -1
- package/lib/commonjs/features/engage/EngageTransport.js.map +0 -1
- package/lib/commonjs/features/engage/EngageVariantContent.js.map +0 -1
- package/lib/commonjs/features/engage/__test-support__/reactNativeStub.js.map +0 -1
- package/lib/commonjs/features/engage/attachmentCapture.js.map +0 -1
- package/lib/commonjs/features/engage/captureVoiceAttachment.js.map +0 -1
- package/lib/commonjs/features/engage/engageCoachmarkTour.js.map +0 -1
- package/lib/commonjs/features/engage/engageGameLogic.js.map +0 -1
- package/lib/commonjs/features/engage/engageMediaSizing.js.map +0 -1
- package/lib/commonjs/features/engage/engageMultiStepSheet.js.map +0 -1
- package/lib/commonjs/features/engage/engageOutcome.js.map +0 -1
- package/lib/commonjs/features/engage/engagePushTokenBridge.js.map +0 -1
- package/lib/commonjs/features/engage/engageShakeBridge.js.map +0 -1
- package/lib/commonjs/features/engage/engageSignals.js.map +0 -1
- package/lib/commonjs/features/engage/engageStoreReviewBridge.js.map +0 -1
- package/lib/commonjs/features/engage/engageTestSeenStore.js.map +0 -1
- package/lib/commonjs/features/engage/engageThrottle.js.map +0 -1
- package/lib/commonjs/features/engage/engageTriggerEngine.js.map +0 -1
- package/lib/commonjs/features/engage/engageTypes.js.map +0 -1
- package/lib/commonjs/features/engage/engageVariantResolver.js.map +0 -1
- package/lib/commonjs/features/engage/engageWindowInsets.js.map +0 -1
- package/lib/commonjs/features/engage/gestureTriggerDetector.js.map +0 -1
- package/lib/commonjs/features/engage/transcription/TranscriptionProvider.js.map +0 -1
- package/lib/commonjs/features/install-referrer/installReferrer.js.map +0 -1
- package/lib/commonjs/features/journey/ScaleBunDebugRoot.js.map +0 -1
- package/lib/commonjs/features/journey/ScaleBunFlatList.js.map +0 -1
- package/lib/commonjs/features/journey/ScaleBunImpression.js.map +0 -1
- package/lib/commonjs/features/journey/ScaleBunScrollView.js.map +0 -1
- package/lib/commonjs/features/journey/ScaleBunSectionList.js.map +0 -1
- package/lib/commonjs/features/journey/calibrationContext.js.map +0 -1
- package/lib/commonjs/features/journey/gestureBuffer.js.map +0 -1
- package/lib/commonjs/features/journey/gestureDetector.js.map +0 -1
- package/lib/commonjs/features/journey/impression.js.map +0 -1
- package/lib/commonjs/features/journey/journeyManager.js.map +0 -1
- package/lib/commonjs/features/journey/journeyTypes.js.map +0 -1
- package/lib/commonjs/features/journey/navDetector.js.map +0 -1
- package/lib/commonjs/features/journey/screenshotHelper.js.map +0 -1
- package/lib/commonjs/features/journey/targetRegistry.js.map +0 -1
- package/lib/commonjs/features/journey/touchTarget.js.map +0 -1
- package/lib/commonjs/features/navigation/AutoScreenDetector.js.map +0 -1
- package/lib/commonjs/features/network/NetworkFeature.js.map +0 -1
- package/lib/commonjs/features/network/index.js.map +0 -1
- package/lib/commonjs/features/ota/OtaEventEmitter.js.map +0 -1
- package/lib/commonjs/features/ota/OtaOrchestrator.js.map +0 -1
- package/lib/commonjs/features/ota/OtaTypes.js.map +0 -1
- package/lib/commonjs/features/ota/deviceAttributes.js.map +0 -1
- package/lib/commonjs/features/ota/environment.js.map +0 -1
- package/lib/commonjs/features/ota/geoCountry.js.map +0 -1
- package/lib/commonjs/features/ota/retry.js.map +0 -1
- package/lib/commonjs/features/ota/signature.js.map +0 -1
- package/lib/commonjs/features/ota/useOtaUpdate.js.map +0 -1
- package/lib/commonjs/features/performance/PerformanceFeature.js.map +0 -1
- package/lib/commonjs/features/performance/collectors/AppLaunchCollector.js.map +0 -1
- package/lib/commonjs/features/performance/collectors/AutoScreenLoadCollector.js.map +0 -1
- package/lib/commonjs/features/performance/collectors/CustomTraceCollector.js.map +0 -1
- package/lib/commonjs/features/performance/collectors/FrameMetricsCollector.js.map +0 -1
- package/lib/commonjs/features/performance/collectors/JsStallCollector.js.map +0 -1
- package/lib/commonjs/features/performance/collectors/NetworkPerfCollector.js.map +0 -1
- package/lib/commonjs/features/performance/collectors/ScreenLoadCollector.js.map +0 -1
- package/lib/commonjs/features/performance/collectors/UiHangCollector.js.map +0 -1
- package/lib/commonjs/features/performance/config.js.map +0 -1
- package/lib/commonjs/features/performance/getNativePerformanceModule.js.map +0 -1
- package/lib/commonjs/features/performance/index.js.map +0 -1
- package/lib/commonjs/features/performance/metrics/MetricsEngine.js.map +0 -1
- package/lib/commonjs/features/performance/models.js.map +0 -1
- package/lib/commonjs/features/performance/transport/PerformanceTransport.js.map +0 -1
- package/lib/commonjs/features/profiler/ProfilerFeature.js.map +0 -1
- package/lib/commonjs/features/profiler/config.js.map +0 -1
- package/lib/commonjs/features/profiler/contracts.js.map +0 -1
- package/lib/commonjs/features/profiler/index.js.map +0 -1
- package/lib/commonjs/features/profiler/models.js.map +0 -1
- package/lib/commonjs/features/profiler/transport/ProfilerTransport.js.map +0 -1
- package/lib/commonjs/features/replay/bridge/adapters/bridgeAdapter.js.map +0 -1
- package/lib/commonjs/features/replay/bridge/eventEmitter.js.map +0 -1
- package/lib/commonjs/features/replay/bridge/nativeModule.js.map +0 -1
- package/lib/commonjs/features/replay/core/clock/clock.js.map +0 -1
- package/lib/commonjs/features/replay/core/config/defaults.js.map +0 -1
- package/lib/commonjs/features/replay/core/config/validator.js.map +0 -1
- package/lib/commonjs/features/replay/core/env/environmentDetector.js.map +0 -1
- package/lib/commonjs/features/replay/core/errors/safeCall.js.map +0 -1
- package/lib/commonjs/features/replay/core/ids/sessionId.js.map +0 -1
- package/lib/commonjs/features/replay/core/logger/logger.js.map +0 -1
- package/lib/commonjs/features/replay/core/privacy/privacyTypes.js.map +0 -1
- package/lib/commonjs/features/replay/core/queue/boundedQueue.js.map +0 -1
- package/lib/commonjs/features/replay/integrations/alert/alertInstrumentation.js.map +0 -1
- package/lib/commonjs/features/replay/integrations/logs/consoleIntegration.js.map +0 -1
- package/lib/commonjs/features/replay/integrations/network/networkAdapter.js.map +0 -1
- package/lib/commonjs/features/replay/integrations/react-navigation/navigationIntegration.js.map +0 -1
- package/lib/commonjs/features/replay/integrations/touch/ReplayRoot.js.map +0 -1
- package/lib/commonjs/features/replay/pipeline/batching/batchManager.js.map +0 -1
- package/lib/commonjs/features/replay/pipeline/envelope/envelopeBuilder.js.map +0 -1
- package/lib/commonjs/features/replay/pipeline/retry/retryPolicy.js.map +0 -1
- package/lib/commonjs/features/replay/pipeline/transport/transportTypes.js.map +0 -1
- package/lib/commonjs/features/replay/public/api.js.map +0 -1
- package/lib/commonjs/features/replay/public/enums.js.map +0 -1
- package/lib/commonjs/features/replay/public/types.js.map +0 -1
- package/lib/commonjs/features/replay/replay/breadcrumbs/breadcrumbCollector.js.map +0 -1
- package/lib/commonjs/features/replay/replay/frames/frameModels.js.map +0 -1
- package/lib/commonjs/features/replay/replay/session/sessionOrchestrator.js.map +0 -1
- package/lib/commonjs/features/replay/replay/timeline/timelineModels.js.map +0 -1
- package/lib/commonjs/features/replay/transport/BackendReplayTransport.js.map +0 -1
- package/lib/commonjs/features/replay/transport/CompositeReplayTransport.js.map +0 -1
- package/lib/commonjs/features/replay/transport/DesktopReplayTransport.js.map +0 -1
- package/lib/commonjs/features/replay/transport/ReplayTransport.js.map +0 -1
- package/lib/commonjs/features/session/BackendSessionAdapter.js.map +0 -1
- package/lib/commonjs/features/session/DesktopSessionTransport.js.map +0 -1
- package/lib/commonjs/features/session/JourneyEventPipeline.js.map +0 -1
- package/lib/commonjs/features/session/ReplayCaptureManager.js.map +0 -1
- package/lib/commonjs/features/session/ScrollTracker.js.map +0 -1
- package/lib/commonjs/features/session/SessionManager.js.map +0 -1
- package/lib/commonjs/features/session/SyncDecisionEngine.js.map +0 -1
- package/lib/commonjs/features/session/index.js.map +0 -1
- package/lib/commonjs/features/session/nativeCapture.js.map +0 -1
- package/lib/commonjs/features/session/outboxFrameCapture.js.map +0 -1
- package/lib/commonjs/features/session/sessionTypes.js.map +0 -1
- package/lib/commonjs/features/skan/skanBridge.js.map +0 -1
- package/lib/commonjs/features/skan/skanConversionManager.js.map +0 -1
- package/lib/commonjs/index.js.map +0 -1
- package/lib/commonjs/integrations/fetch/fetchInterceptor.js.map +0 -1
- package/lib/commonjs/integrations/navigation/screenTracker.js.map +0 -1
- package/lib/commonjs/integrations/network/bodyCapture.js.map +0 -1
- package/lib/commonjs/integrations/xhr/xhrInterceptor.js.map +0 -1
- package/lib/commonjs/metro/composeSourceMap.js.map +0 -1
- package/lib/commonjs/metro/featureModules.js.map +0 -1
- package/lib/commonjs/metro/index.js.map +0 -1
- package/lib/commonjs/metro/optionalDependencyStub.js.map +0 -1
- package/lib/commonjs/metro/optionalModules.js.map +0 -1
- package/lib/commonjs/metro/serializerCompose.js.map +0 -1
- package/lib/commonjs/pipeline/dispatcher/dispatcher.js.map +0 -1
- package/lib/commonjs/pipeline/envelope/envelope.js.map +0 -1
- package/lib/commonjs/pipeline/envelope/serializer.js.map +0 -1
- package/lib/commonjs/pipeline/processors/dedupe.js.map +0 -1
- package/lib/commonjs/pipeline/processors/enrich.js.map +0 -1
- package/lib/commonjs/pipeline/processors/sampling.js.map +0 -1
- package/lib/commonjs/pipeline/processors/sanitize.js.map +0 -1
- package/lib/commonjs/pipeline/queue/flushQueue.js.map +0 -1
- package/lib/commonjs/pipeline/queue/memoryQueue.js.map +0 -1
- package/lib/commonjs/pipeline/queue/persistentQueue.js.map +0 -1
- package/lib/commonjs/pipeline/queue/queuePolicy.js.map +0 -1
- package/lib/commonjs/pipeline/scheduler/flushScheduler.js.map +0 -1
- package/lib/commonjs/pipeline/scheduler/retryPolicy.js.map +0 -1
- package/lib/commonjs/public/ScaleBunErrorBoundary.js.map +0 -1
- package/lib/commonjs/public/ScaleBunFacade.js.map +0 -1
- package/lib/commonjs/public/ScaleBunProvider.js.map +0 -1
- package/lib/commonjs/public/typedTracker.js.map +0 -1
- package/lib/commonjs/public/types.js.map +0 -1
- package/lib/commonjs/push/PushManager.js.map +0 -1
- package/lib/commonjs/push/adapters/ManualAdapter.js.map +0 -1
- package/lib/commonjs/push/adapters/NativeBridgeAdapter.js.map +0 -1
- package/lib/commonjs/push/adapters/NoopAdapter.js.map +0 -1
- package/lib/commonjs/push/adapters/RNFirebaseMessagingAdapter.js.map +0 -1
- package/lib/commonjs/push/adapters/loadMessaging.js.map +0 -1
- package/lib/commonjs/push/adapters/loadNotifee.js.map +0 -1
- package/lib/commonjs/push/adapters/selectAdapter.js.map +0 -1
- package/lib/commonjs/push/detect/capabilities.js.map +0 -1
- package/lib/commonjs/push/index.js.map +0 -1
- package/lib/commonjs/push/native/nativeNotifications.js.map +0 -1
- package/lib/commonjs/push/types.js.map +0 -1
- package/lib/commonjs/specs/NativeReplaySdk.js.map +0 -1
- package/lib/commonjs/specs/NativeScaleBunCrash.js.map +0 -1
- package/lib/commonjs/specs/NativeScaleBunInstallReferrer.js.map +0 -1
- package/lib/commonjs/specs/NativeScaleBunOta.js.map +0 -1
- package/lib/commonjs/specs/NativeScaleBunPerformance.js.map +0 -1
- package/lib/commonjs/specs/NativeScaleBunProfiler.js.map +0 -1
- package/lib/commonjs/specs/NativeScaleBunStorage.js.map +0 -1
- package/lib/commonjs/storage/StorageBackend.js.map +0 -1
- package/lib/commonjs/storage/db/sqlite.js.map +0 -1
- package/lib/commonjs/storage/files/fileStore.js.map +0 -1
- package/lib/commonjs/transport/auth/sdkSession.js.map +0 -1
- package/lib/commonjs/transport/backoff/exponentialJitter.js.map +0 -1
- package/lib/commonjs/transport/http/endpoints.js.map +0 -1
- package/lib/commonjs/transport/http/httpClient.js.map +0 -1
- package/lib/commonjs/transport/rateLimit/retryAfter.js.map +0 -1
- package/lib/commonjs/transport/signing/requestSigner.js.map +0 -1
- package/lib/commonjs/vendor/protocol/index.js.map +0 -1
- package/lib/commonjs/vendor/protocol/internal/validation.js.map +0 -1
- package/lib/commonjs/vendor/sdk-contracts/bridge.js.map +0 -1
- package/lib/commonjs/vendor/sdk-contracts/config.js.map +0 -1
- package/lib/commonjs/vendor/sdk-contracts/events.js.map +0 -1
- package/lib/commonjs/vendor/sdk-contracts/features.js.map +0 -1
- package/lib/commonjs/vendor/sdk-contracts/index.js.map +0 -1
- package/lib/commonjs/vendor/sdk-contracts/platform.js.map +0 -1
- package/lib/commonjs/vendor/sdk-contracts/session-boundary.js.map +0 -1
- package/lib/commonjs/vendor/sdk-contracts/session.js.map +0 -1
- package/lib/module/analytics/EventTracker.js.map +0 -1
- package/lib/module/analytics/automaticEvents.js.map +0 -1
- package/lib/module/analytics/batching.js.map +0 -1
- package/lib/module/analytics/eventLane.js.map +0 -1
- package/lib/module/bootstrap/FeatureRegistry.js.map +0 -1
- package/lib/module/bootstrap/SDKBootstrapper.js.map +0 -1
- package/lib/module/bucketing/fnv1a32.js.map +0 -1
- package/lib/module/compat/codepush.js.map +0 -1
- package/lib/module/config/ConfigManager.js.map +0 -1
- package/lib/module/config/configTypes.js.map +0 -1
- package/lib/module/core/architecture.js.map +0 -1
- package/lib/module/core/clock/now.js.map +0 -1
- package/lib/module/core/config/defaults.js.map +0 -1
- package/lib/module/core/config/schema.js.map +0 -1
- package/lib/module/core/constants/endpoints.js.map +0 -1
- package/lib/module/core/constants/protocol.js.map +0 -1
- package/lib/module/core/constants/timings.js.map +0 -1
- package/lib/module/core/constants/version.js.map +0 -1
- package/lib/module/core/context/app.js.map +0 -1
- package/lib/module/core/context/device.js.map +0 -1
- package/lib/module/core/context/session.js.map +0 -1
- package/lib/module/core/context/user.js.map +0 -1
- package/lib/module/core/contracts/IFeature.js.map +0 -1
- package/lib/module/core/di/container.js.map +0 -1
- package/lib/module/core/encoding/base64.js.map +0 -1
- package/lib/module/core/id/deviceId.js.map +0 -1
- package/lib/module/core/id/installationId.js.map +0 -1
- package/lib/module/core/id/sessionId.js.map +0 -1
- package/lib/module/core/lifecycle/appLifecycle.js.map +0 -1
- package/lib/module/core/lifecycle/crashSafe.js.map +0 -1
- package/lib/module/core/logger/errorClassification.js.map +0 -1
- package/lib/module/core/logger/internalLogger.js.map +0 -1
- package/lib/module/core/logger/levels.js.map +0 -1
- package/lib/module/crypto/hmacSha256.js.map +0 -1
- package/lib/module/debug/bootstrap.js.map +0 -1
- package/lib/module/debug/commands.js.map +0 -1
- package/lib/module/debug/configBuilder.js.map +0 -1
- package/lib/module/debug/exportBridge.js.map +0 -1
- package/lib/module/debug/hostResolver.js.map +0 -1
- package/lib/module/debug/index.js.map +0 -1
- package/lib/module/debug/metrics.js.map +0 -1
- package/lib/module/debug/perf.js.map +0 -1
- package/lib/module/debug/perfWiring.js.map +0 -1
- package/lib/module/debug/protocol.js.map +0 -1
- package/lib/module/debug/redaction.js.map +0 -1
- package/lib/module/debug/replayWiring.js.map +0 -1
- package/lib/module/debug/screenTracking.js.map +0 -1
- package/lib/module/debug/sessionWiring.js.map +0 -1
- package/lib/module/debug/stream.js.map +0 -1
- package/lib/module/debug/transport.js.map +0 -1
- package/lib/module/features/bugreport/BugReportFeature.js.map +0 -1
- package/lib/module/features/bugreport/buildPayload.js.map +0 -1
- package/lib/module/features/bugreport/index.js.map +0 -1
- package/lib/module/features/crash/CrashFeature.js.map +0 -1
- package/lib/module/features/crash/CrashReporter.js.map +0 -1
- package/lib/module/features/crash/NativeCrashFeature.js.map +0 -1
- package/lib/module/features/crash/capture.js.map +0 -1
- package/lib/module/features/crash/globalHandler.js.map +0 -1
- package/lib/module/features/crash/index.js.map +0 -1
- package/lib/module/features/crash/nativeCrashBridge.js.map +0 -1
- package/lib/module/features/crash/rejectionHandler.js.map +0 -1
- package/lib/module/features/engage/EngageAnchor.js.map +0 -1
- package/lib/module/features/engage/EngageArchetypeRenderers.js.map +0 -1
- package/lib/module/features/engage/EngageInAppView.js.map +0 -1
- package/lib/module/features/engage/EngageInlinePlacement.js.map +0 -1
- package/lib/module/features/engage/EngagePromptProvider.js.map +0 -1
- package/lib/module/features/engage/EngagePromptView.js.map +0 -1
- package/lib/module/features/engage/EngageTransport.js.map +0 -1
- package/lib/module/features/engage/EngageVariantContent.js.map +0 -1
- package/lib/module/features/engage/__test-support__/reactNativeStub.js.map +0 -1
- package/lib/module/features/engage/attachmentCapture.js.map +0 -1
- package/lib/module/features/engage/captureVoiceAttachment.js.map +0 -1
- package/lib/module/features/engage/engageCoachmarkTour.js.map +0 -1
- package/lib/module/features/engage/engageGameLogic.js.map +0 -1
- package/lib/module/features/engage/engageMediaSizing.js.map +0 -1
- package/lib/module/features/engage/engageMultiStepSheet.js.map +0 -1
- package/lib/module/features/engage/engageOutcome.js.map +0 -1
- package/lib/module/features/engage/engagePushTokenBridge.js.map +0 -1
- package/lib/module/features/engage/engageShakeBridge.js.map +0 -1
- package/lib/module/features/engage/engageSignals.js.map +0 -1
- package/lib/module/features/engage/engageStoreReviewBridge.js.map +0 -1
- package/lib/module/features/engage/engageTestSeenStore.js.map +0 -1
- package/lib/module/features/engage/engageThrottle.js.map +0 -1
- package/lib/module/features/engage/engageTriggerEngine.js.map +0 -1
- package/lib/module/features/engage/engageTypes.js.map +0 -1
- package/lib/module/features/engage/engageVariantResolver.js.map +0 -1
- package/lib/module/features/engage/engageWindowInsets.js.map +0 -1
- package/lib/module/features/engage/gestureTriggerDetector.js.map +0 -1
- package/lib/module/features/engage/transcription/TranscriptionProvider.js.map +0 -1
- package/lib/module/features/install-referrer/installReferrer.js.map +0 -1
- package/lib/module/features/journey/ScaleBunDebugRoot.js.map +0 -1
- package/lib/module/features/journey/ScaleBunFlatList.js.map +0 -1
- package/lib/module/features/journey/ScaleBunImpression.js.map +0 -1
- package/lib/module/features/journey/ScaleBunScrollView.js.map +0 -1
- package/lib/module/features/journey/ScaleBunSectionList.js.map +0 -1
- package/lib/module/features/journey/calibrationContext.js.map +0 -1
- package/lib/module/features/journey/gestureBuffer.js.map +0 -1
- package/lib/module/features/journey/gestureDetector.js.map +0 -1
- package/lib/module/features/journey/impression.js.map +0 -1
- package/lib/module/features/journey/journeyManager.js.map +0 -1
- package/lib/module/features/journey/journeyTypes.js.map +0 -1
- package/lib/module/features/journey/navDetector.js.map +0 -1
- package/lib/module/features/journey/screenshotHelper.js.map +0 -1
- package/lib/module/features/journey/targetRegistry.js.map +0 -1
- package/lib/module/features/journey/touchTarget.js.map +0 -1
- package/lib/module/features/navigation/AutoScreenDetector.js.map +0 -1
- package/lib/module/features/network/NetworkFeature.js.map +0 -1
- package/lib/module/features/network/index.js.map +0 -1
- package/lib/module/features/ota/OtaEventEmitter.js.map +0 -1
- package/lib/module/features/ota/OtaOrchestrator.js.map +0 -1
- package/lib/module/features/ota/OtaTypes.js.map +0 -1
- package/lib/module/features/ota/deviceAttributes.js.map +0 -1
- package/lib/module/features/ota/environment.js.map +0 -1
- package/lib/module/features/ota/geoCountry.js.map +0 -1
- package/lib/module/features/ota/retry.js.map +0 -1
- package/lib/module/features/ota/signature.js.map +0 -1
- package/lib/module/features/ota/useOtaUpdate.js.map +0 -1
- package/lib/module/features/performance/PerformanceFeature.js.map +0 -1
- package/lib/module/features/performance/collectors/AppLaunchCollector.js.map +0 -1
- package/lib/module/features/performance/collectors/AutoScreenLoadCollector.js.map +0 -1
- package/lib/module/features/performance/collectors/CustomTraceCollector.js.map +0 -1
- package/lib/module/features/performance/collectors/FrameMetricsCollector.js.map +0 -1
- package/lib/module/features/performance/collectors/JsStallCollector.js.map +0 -1
- package/lib/module/features/performance/collectors/NetworkPerfCollector.js.map +0 -1
- package/lib/module/features/performance/collectors/ScreenLoadCollector.js.map +0 -1
- package/lib/module/features/performance/collectors/UiHangCollector.js.map +0 -1
- package/lib/module/features/performance/config.js.map +0 -1
- package/lib/module/features/performance/getNativePerformanceModule.js.map +0 -1
- package/lib/module/features/performance/index.js.map +0 -1
- package/lib/module/features/performance/metrics/MetricsEngine.js.map +0 -1
- package/lib/module/features/performance/models.js.map +0 -1
- package/lib/module/features/performance/transport/PerformanceTransport.js.map +0 -1
- package/lib/module/features/profiler/ProfilerFeature.js.map +0 -1
- package/lib/module/features/profiler/config.js.map +0 -1
- package/lib/module/features/profiler/contracts.js.map +0 -1
- package/lib/module/features/profiler/index.js.map +0 -1
- package/lib/module/features/profiler/models.js.map +0 -1
- package/lib/module/features/profiler/transport/ProfilerTransport.js.map +0 -1
- package/lib/module/features/replay/bridge/adapters/bridgeAdapter.js.map +0 -1
- package/lib/module/features/replay/bridge/eventEmitter.js.map +0 -1
- package/lib/module/features/replay/bridge/nativeModule.js.map +0 -1
- package/lib/module/features/replay/core/clock/clock.js.map +0 -1
- package/lib/module/features/replay/core/config/defaults.js.map +0 -1
- package/lib/module/features/replay/core/config/validator.js.map +0 -1
- package/lib/module/features/replay/core/env/environmentDetector.js.map +0 -1
- package/lib/module/features/replay/core/errors/safeCall.js.map +0 -1
- package/lib/module/features/replay/core/ids/sessionId.js.map +0 -1
- package/lib/module/features/replay/core/logger/logger.js.map +0 -1
- package/lib/module/features/replay/core/privacy/privacyTypes.js.map +0 -1
- package/lib/module/features/replay/core/queue/boundedQueue.js.map +0 -1
- package/lib/module/features/replay/integrations/alert/alertInstrumentation.js.map +0 -1
- package/lib/module/features/replay/integrations/logs/consoleIntegration.js.map +0 -1
- package/lib/module/features/replay/integrations/network/networkAdapter.js.map +0 -1
- package/lib/module/features/replay/integrations/react-navigation/navigationIntegration.js.map +0 -1
- package/lib/module/features/replay/integrations/touch/ReplayRoot.js.map +0 -1
- package/lib/module/features/replay/pipeline/batching/batchManager.js.map +0 -1
- package/lib/module/features/replay/pipeline/envelope/envelopeBuilder.js.map +0 -1
- package/lib/module/features/replay/pipeline/retry/retryPolicy.js.map +0 -1
- package/lib/module/features/replay/pipeline/transport/transportTypes.js.map +0 -1
- package/lib/module/features/replay/public/api.js.map +0 -1
- package/lib/module/features/replay/public/enums.js.map +0 -1
- package/lib/module/features/replay/public/types.js.map +0 -1
- package/lib/module/features/replay/replay/breadcrumbs/breadcrumbCollector.js.map +0 -1
- package/lib/module/features/replay/replay/frames/frameModels.js.map +0 -1
- package/lib/module/features/replay/replay/session/sessionOrchestrator.js.map +0 -1
- package/lib/module/features/replay/replay/timeline/timelineModels.js.map +0 -1
- package/lib/module/features/replay/transport/BackendReplayTransport.js.map +0 -1
- package/lib/module/features/replay/transport/CompositeReplayTransport.js.map +0 -1
- package/lib/module/features/replay/transport/DesktopReplayTransport.js.map +0 -1
- package/lib/module/features/replay/transport/ReplayTransport.js.map +0 -1
- package/lib/module/features/session/BackendSessionAdapter.js.map +0 -1
- package/lib/module/features/session/DesktopSessionTransport.js.map +0 -1
- package/lib/module/features/session/JourneyEventPipeline.js.map +0 -1
- package/lib/module/features/session/ReplayCaptureManager.js.map +0 -1
- package/lib/module/features/session/ScrollTracker.js.map +0 -1
- package/lib/module/features/session/SessionManager.js.map +0 -1
- package/lib/module/features/session/SyncDecisionEngine.js.map +0 -1
- package/lib/module/features/session/index.js.map +0 -1
- package/lib/module/features/session/nativeCapture.js.map +0 -1
- package/lib/module/features/session/outboxFrameCapture.js.map +0 -1
- package/lib/module/features/session/sessionTypes.js.map +0 -1
- package/lib/module/features/skan/skanBridge.js.map +0 -1
- package/lib/module/features/skan/skanConversionManager.js.map +0 -1
- package/lib/module/index.js.map +0 -1
- package/lib/module/integrations/fetch/fetchInterceptor.js.map +0 -1
- package/lib/module/integrations/navigation/screenTracker.js.map +0 -1
- package/lib/module/integrations/network/bodyCapture.js.map +0 -1
- package/lib/module/integrations/xhr/xhrInterceptor.js.map +0 -1
- package/lib/module/metro/composeSourceMap.js.map +0 -1
- package/lib/module/metro/featureModules.js.map +0 -1
- package/lib/module/metro/index.js.map +0 -1
- package/lib/module/metro/optionalDependencyStub.js.map +0 -1
- package/lib/module/metro/optionalModules.js.map +0 -1
- package/lib/module/metro/serializerCompose.js.map +0 -1
- package/lib/module/pipeline/dispatcher/dispatcher.js.map +0 -1
- package/lib/module/pipeline/envelope/envelope.js.map +0 -1
- package/lib/module/pipeline/envelope/serializer.js.map +0 -1
- package/lib/module/pipeline/processors/dedupe.js.map +0 -1
- package/lib/module/pipeline/processors/enrich.js.map +0 -1
- package/lib/module/pipeline/processors/sampling.js.map +0 -1
- package/lib/module/pipeline/processors/sanitize.js.map +0 -1
- package/lib/module/pipeline/queue/flushQueue.js.map +0 -1
- package/lib/module/pipeline/queue/memoryQueue.js.map +0 -1
- package/lib/module/pipeline/queue/persistentQueue.js.map +0 -1
- package/lib/module/pipeline/queue/queuePolicy.js.map +0 -1
- package/lib/module/pipeline/scheduler/flushScheduler.js.map +0 -1
- package/lib/module/pipeline/scheduler/retryPolicy.js.map +0 -1
- package/lib/module/public/ScaleBunErrorBoundary.js.map +0 -1
- package/lib/module/public/ScaleBunFacade.js.map +0 -1
- package/lib/module/public/ScaleBunProvider.js.map +0 -1
- package/lib/module/public/typedTracker.js.map +0 -1
- package/lib/module/public/types.js.map +0 -1
- package/lib/module/push/PushManager.js.map +0 -1
- package/lib/module/push/adapters/ManualAdapter.js.map +0 -1
- package/lib/module/push/adapters/NativeBridgeAdapter.js.map +0 -1
- package/lib/module/push/adapters/NoopAdapter.js.map +0 -1
- package/lib/module/push/adapters/RNFirebaseMessagingAdapter.js.map +0 -1
- package/lib/module/push/adapters/loadMessaging.js.map +0 -1
- package/lib/module/push/adapters/loadNotifee.js.map +0 -1
- package/lib/module/push/adapters/selectAdapter.js.map +0 -1
- package/lib/module/push/detect/capabilities.js.map +0 -1
- package/lib/module/push/index.js.map +0 -1
- package/lib/module/push/native/nativeNotifications.js.map +0 -1
- package/lib/module/push/types.js.map +0 -1
- package/lib/module/specs/NativeReplaySdk.js.map +0 -1
- package/lib/module/specs/NativeScaleBunCrash.js.map +0 -1
- package/lib/module/specs/NativeScaleBunInstallReferrer.js.map +0 -1
- package/lib/module/specs/NativeScaleBunOta.js.map +0 -1
- package/lib/module/specs/NativeScaleBunPerformance.js.map +0 -1
- package/lib/module/specs/NativeScaleBunProfiler.js.map +0 -1
- package/lib/module/specs/NativeScaleBunStorage.js.map +0 -1
- package/lib/module/storage/StorageBackend.js.map +0 -1
- package/lib/module/storage/db/sqlite.js.map +0 -1
- package/lib/module/storage/files/fileStore.js.map +0 -1
- package/lib/module/transport/auth/sdkSession.js.map +0 -1
- package/lib/module/transport/backoff/exponentialJitter.js.map +0 -1
- package/lib/module/transport/http/endpoints.js.map +0 -1
- package/lib/module/transport/http/httpClient.js.map +0 -1
- package/lib/module/transport/rateLimit/retryAfter.js.map +0 -1
- package/lib/module/transport/signing/requestSigner.js.map +0 -1
- package/lib/module/vendor/protocol/index.js.map +0 -1
- package/lib/module/vendor/protocol/internal/validation.js.map +0 -1
- package/lib/module/vendor/sdk-contracts/bridge.js.map +0 -1
- package/lib/module/vendor/sdk-contracts/config.js.map +0 -1
- package/lib/module/vendor/sdk-contracts/events.js.map +0 -1
- package/lib/module/vendor/sdk-contracts/features.js.map +0 -1
- package/lib/module/vendor/sdk-contracts/index.js.map +0 -1
- package/lib/module/vendor/sdk-contracts/platform.js.map +0 -1
- package/lib/module/vendor/sdk-contracts/session-boundary.js.map +0 -1
- package/lib/module/vendor/sdk-contracts/session.js.map +0 -1
- package/lib/typescript/analytics/EventTracker.d.ts.map +0 -1
- package/lib/typescript/analytics/automaticEvents.d.ts.map +0 -1
- package/lib/typescript/analytics/batching.d.ts.map +0 -1
- package/lib/typescript/analytics/eventLane.d.ts.map +0 -1
- package/lib/typescript/bootstrap/FeatureRegistry.d.ts.map +0 -1
- package/lib/typescript/bootstrap/SDKBootstrapper.d.ts.map +0 -1
- package/lib/typescript/bucketing/fnv1a32.d.ts.map +0 -1
- package/lib/typescript/compat/codepush.d.ts.map +0 -1
- package/lib/typescript/config/ConfigManager.d.ts.map +0 -1
- package/lib/typescript/config/configTypes.d.ts.map +0 -1
- package/lib/typescript/core/architecture.d.ts.map +0 -1
- package/lib/typescript/core/clock/now.d.ts.map +0 -1
- package/lib/typescript/core/config/defaults.d.ts.map +0 -1
- package/lib/typescript/core/config/schema.d.ts.map +0 -1
- package/lib/typescript/core/constants/endpoints.d.ts.map +0 -1
- package/lib/typescript/core/constants/protocol.d.ts.map +0 -1
- package/lib/typescript/core/constants/timings.d.ts.map +0 -1
- package/lib/typescript/core/constants/version.d.ts.map +0 -1
- package/lib/typescript/core/context/app.d.ts.map +0 -1
- package/lib/typescript/core/context/device.d.ts.map +0 -1
- package/lib/typescript/core/context/session.d.ts.map +0 -1
- package/lib/typescript/core/context/user.d.ts.map +0 -1
- package/lib/typescript/core/contracts/IFeature.d.ts.map +0 -1
- package/lib/typescript/core/di/container.d.ts.map +0 -1
- package/lib/typescript/core/encoding/base64.d.ts.map +0 -1
- package/lib/typescript/core/id/deviceId.d.ts.map +0 -1
- package/lib/typescript/core/id/installationId.d.ts.map +0 -1
- package/lib/typescript/core/id/sessionId.d.ts.map +0 -1
- package/lib/typescript/core/lifecycle/appLifecycle.d.ts.map +0 -1
- package/lib/typescript/core/lifecycle/crashSafe.d.ts.map +0 -1
- package/lib/typescript/core/logger/errorClassification.d.ts.map +0 -1
- package/lib/typescript/core/logger/internalLogger.d.ts.map +0 -1
- package/lib/typescript/core/logger/levels.d.ts.map +0 -1
- package/lib/typescript/crypto/hmacSha256.d.ts.map +0 -1
- package/lib/typescript/debug/bootstrap.d.ts.map +0 -1
- package/lib/typescript/debug/commands.d.ts.map +0 -1
- package/lib/typescript/debug/configBuilder.d.ts.map +0 -1
- package/lib/typescript/debug/exportBridge.d.ts.map +0 -1
- package/lib/typescript/debug/hostResolver.d.ts.map +0 -1
- package/lib/typescript/debug/index.d.ts.map +0 -1
- package/lib/typescript/debug/metrics.d.ts.map +0 -1
- package/lib/typescript/debug/perf.d.ts.map +0 -1
- package/lib/typescript/debug/perfWiring.d.ts.map +0 -1
- package/lib/typescript/debug/protocol.d.ts.map +0 -1
- package/lib/typescript/debug/redaction.d.ts.map +0 -1
- package/lib/typescript/debug/replayWiring.d.ts.map +0 -1
- package/lib/typescript/debug/screenTracking.d.ts.map +0 -1
- package/lib/typescript/debug/sessionWiring.d.ts.map +0 -1
- package/lib/typescript/debug/stream.d.ts.map +0 -1
- package/lib/typescript/debug/transport.d.ts.map +0 -1
- package/lib/typescript/features/bugreport/BugReportFeature.d.ts.map +0 -1
- package/lib/typescript/features/bugreport/buildPayload.d.ts.map +0 -1
- package/lib/typescript/features/bugreport/index.d.ts.map +0 -1
- package/lib/typescript/features/crash/CrashFeature.d.ts.map +0 -1
- package/lib/typescript/features/crash/CrashReporter.d.ts.map +0 -1
- package/lib/typescript/features/crash/NativeCrashFeature.d.ts.map +0 -1
- package/lib/typescript/features/crash/capture.d.ts.map +0 -1
- package/lib/typescript/features/crash/globalHandler.d.ts.map +0 -1
- package/lib/typescript/features/crash/index.d.ts.map +0 -1
- package/lib/typescript/features/crash/nativeCrashBridge.d.ts.map +0 -1
- package/lib/typescript/features/crash/rejectionHandler.d.ts.map +0 -1
- package/lib/typescript/features/engage/EngageAnchor.d.ts.map +0 -1
- package/lib/typescript/features/engage/EngageArchetypeRenderers.d.ts.map +0 -1
- package/lib/typescript/features/engage/EngageInAppView.d.ts.map +0 -1
- package/lib/typescript/features/engage/EngageInlinePlacement.d.ts.map +0 -1
- package/lib/typescript/features/engage/EngagePromptProvider.d.ts.map +0 -1
- package/lib/typescript/features/engage/EngagePromptView.d.ts.map +0 -1
- package/lib/typescript/features/engage/EngageTransport.d.ts.map +0 -1
- package/lib/typescript/features/engage/EngageVariantContent.d.ts.map +0 -1
- package/lib/typescript/features/engage/attachmentCapture.d.ts.map +0 -1
- package/lib/typescript/features/engage/captureVoiceAttachment.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageCoachmarkTour.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageGameLogic.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageMediaSizing.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageMultiStepSheet.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageOutcome.d.ts.map +0 -1
- package/lib/typescript/features/engage/engagePushTokenBridge.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageShakeBridge.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageSignals.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageStoreReviewBridge.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageTestSeenStore.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageThrottle.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageTriggerEngine.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageTypes.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageVariantResolver.d.ts.map +0 -1
- package/lib/typescript/features/engage/engageWindowInsets.d.ts.map +0 -1
- package/lib/typescript/features/engage/gestureTriggerDetector.d.ts.map +0 -1
- package/lib/typescript/features/engage/transcription/TranscriptionProvider.d.ts.map +0 -1
- package/lib/typescript/features/install-referrer/installReferrer.d.ts.map +0 -1
- package/lib/typescript/features/journey/ScaleBunDebugRoot.d.ts.map +0 -1
- package/lib/typescript/features/journey/ScaleBunFlatList.d.ts.map +0 -1
- package/lib/typescript/features/journey/ScaleBunImpression.d.ts.map +0 -1
- package/lib/typescript/features/journey/ScaleBunScrollView.d.ts.map +0 -1
- package/lib/typescript/features/journey/ScaleBunSectionList.d.ts.map +0 -1
- package/lib/typescript/features/journey/calibrationContext.d.ts.map +0 -1
- package/lib/typescript/features/journey/gestureBuffer.d.ts.map +0 -1
- package/lib/typescript/features/journey/gestureDetector.d.ts.map +0 -1
- package/lib/typescript/features/journey/impression.d.ts.map +0 -1
- package/lib/typescript/features/journey/journeyManager.d.ts.map +0 -1
- package/lib/typescript/features/journey/journeyTypes.d.ts.map +0 -1
- package/lib/typescript/features/journey/navDetector.d.ts.map +0 -1
- package/lib/typescript/features/journey/screenshotHelper.d.ts.map +0 -1
- package/lib/typescript/features/journey/targetRegistry.d.ts.map +0 -1
- package/lib/typescript/features/journey/touchTarget.d.ts.map +0 -1
- package/lib/typescript/features/navigation/AutoScreenDetector.d.ts.map +0 -1
- package/lib/typescript/features/network/NetworkFeature.d.ts.map +0 -1
- package/lib/typescript/features/network/index.d.ts.map +0 -1
- package/lib/typescript/features/ota/OtaEventEmitter.d.ts.map +0 -1
- package/lib/typescript/features/ota/OtaOrchestrator.d.ts.map +0 -1
- package/lib/typescript/features/ota/OtaTypes.d.ts.map +0 -1
- package/lib/typescript/features/ota/deviceAttributes.d.ts.map +0 -1
- package/lib/typescript/features/ota/environment.d.ts.map +0 -1
- package/lib/typescript/features/ota/geoCountry.d.ts.map +0 -1
- package/lib/typescript/features/ota/retry.d.ts.map +0 -1
- package/lib/typescript/features/ota/signature.d.ts.map +0 -1
- package/lib/typescript/features/ota/useOtaUpdate.d.ts.map +0 -1
- package/lib/typescript/features/performance/PerformanceFeature.d.ts.map +0 -1
- package/lib/typescript/features/performance/collectors/AppLaunchCollector.d.ts.map +0 -1
- package/lib/typescript/features/performance/collectors/AutoScreenLoadCollector.d.ts.map +0 -1
- package/lib/typescript/features/performance/collectors/CustomTraceCollector.d.ts.map +0 -1
- package/lib/typescript/features/performance/collectors/FrameMetricsCollector.d.ts.map +0 -1
- package/lib/typescript/features/performance/collectors/JsStallCollector.d.ts.map +0 -1
- package/lib/typescript/features/performance/collectors/NetworkPerfCollector.d.ts.map +0 -1
- package/lib/typescript/features/performance/collectors/ScreenLoadCollector.d.ts.map +0 -1
- package/lib/typescript/features/performance/collectors/UiHangCollector.d.ts.map +0 -1
- package/lib/typescript/features/performance/config.d.ts.map +0 -1
- package/lib/typescript/features/performance/getNativePerformanceModule.d.ts.map +0 -1
- package/lib/typescript/features/performance/index.d.ts.map +0 -1
- package/lib/typescript/features/performance/metrics/MetricsEngine.d.ts.map +0 -1
- package/lib/typescript/features/performance/models.d.ts.map +0 -1
- package/lib/typescript/features/performance/transport/PerformanceTransport.d.ts.map +0 -1
- package/lib/typescript/features/profiler/ProfilerFeature.d.ts.map +0 -1
- package/lib/typescript/features/profiler/config.d.ts.map +0 -1
- package/lib/typescript/features/profiler/contracts.d.ts.map +0 -1
- package/lib/typescript/features/profiler/index.d.ts.map +0 -1
- package/lib/typescript/features/profiler/models.d.ts.map +0 -1
- package/lib/typescript/features/profiler/transport/ProfilerTransport.d.ts.map +0 -1
- package/lib/typescript/features/replay/bridge/adapters/bridgeAdapter.d.ts.map +0 -1
- package/lib/typescript/features/replay/bridge/eventEmitter.d.ts.map +0 -1
- package/lib/typescript/features/replay/bridge/nativeModule.d.ts.map +0 -1
- package/lib/typescript/features/replay/core/clock/clock.d.ts.map +0 -1
- package/lib/typescript/features/replay/core/config/defaults.d.ts.map +0 -1
- package/lib/typescript/features/replay/core/config/validator.d.ts.map +0 -1
- package/lib/typescript/features/replay/core/env/environmentDetector.d.ts.map +0 -1
- package/lib/typescript/features/replay/core/errors/safeCall.d.ts.map +0 -1
- package/lib/typescript/features/replay/core/ids/sessionId.d.ts.map +0 -1
- package/lib/typescript/features/replay/core/logger/logger.d.ts.map +0 -1
- package/lib/typescript/features/replay/core/privacy/privacyTypes.d.ts.map +0 -1
- package/lib/typescript/features/replay/core/queue/boundedQueue.d.ts.map +0 -1
- package/lib/typescript/features/replay/integrations/alert/alertInstrumentation.d.ts.map +0 -1
- package/lib/typescript/features/replay/integrations/logs/consoleIntegration.d.ts.map +0 -1
- package/lib/typescript/features/replay/integrations/network/networkAdapter.d.ts.map +0 -1
- package/lib/typescript/features/replay/integrations/react-navigation/navigationIntegration.d.ts.map +0 -1
- package/lib/typescript/features/replay/integrations/touch/ReplayRoot.d.ts.map +0 -1
- package/lib/typescript/features/replay/pipeline/batching/batchManager.d.ts.map +0 -1
- package/lib/typescript/features/replay/pipeline/envelope/envelopeBuilder.d.ts.map +0 -1
- package/lib/typescript/features/replay/pipeline/retry/retryPolicy.d.ts.map +0 -1
- package/lib/typescript/features/replay/pipeline/transport/transportTypes.d.ts.map +0 -1
- package/lib/typescript/features/replay/public/api.d.ts.map +0 -1
- package/lib/typescript/features/replay/public/enums.d.ts.map +0 -1
- package/lib/typescript/features/replay/public/types.d.ts.map +0 -1
- package/lib/typescript/features/replay/replay/breadcrumbs/breadcrumbCollector.d.ts.map +0 -1
- package/lib/typescript/features/replay/replay/frames/frameModels.d.ts.map +0 -1
- package/lib/typescript/features/replay/replay/session/sessionOrchestrator.d.ts.map +0 -1
- package/lib/typescript/features/replay/replay/timeline/timelineModels.d.ts.map +0 -1
- package/lib/typescript/features/replay/transport/BackendReplayTransport.d.ts.map +0 -1
- package/lib/typescript/features/replay/transport/CompositeReplayTransport.d.ts.map +0 -1
- package/lib/typescript/features/replay/transport/DesktopReplayTransport.d.ts.map +0 -1
- package/lib/typescript/features/replay/transport/ReplayTransport.d.ts.map +0 -1
- package/lib/typescript/features/session/BackendSessionAdapter.d.ts.map +0 -1
- package/lib/typescript/features/session/DesktopSessionTransport.d.ts.map +0 -1
- package/lib/typescript/features/session/JourneyEventPipeline.d.ts.map +0 -1
- package/lib/typescript/features/session/ReplayCaptureManager.d.ts.map +0 -1
- package/lib/typescript/features/session/ScrollTracker.d.ts.map +0 -1
- package/lib/typescript/features/session/SessionManager.d.ts.map +0 -1
- package/lib/typescript/features/session/SyncDecisionEngine.d.ts.map +0 -1
- package/lib/typescript/features/session/index.d.ts.map +0 -1
- package/lib/typescript/features/session/nativeCapture.d.ts.map +0 -1
- package/lib/typescript/features/session/outboxFrameCapture.d.ts.map +0 -1
- package/lib/typescript/features/session/sessionTypes.d.ts.map +0 -1
- package/lib/typescript/features/skan/skanBridge.d.ts.map +0 -1
- package/lib/typescript/features/skan/skanConversionManager.d.ts.map +0 -1
- package/lib/typescript/index.d.ts.map +0 -1
- package/lib/typescript/integrations/fetch/fetchInterceptor.d.ts.map +0 -1
- package/lib/typescript/integrations/navigation/screenTracker.d.ts.map +0 -1
- package/lib/typescript/integrations/network/bodyCapture.d.ts.map +0 -1
- package/lib/typescript/integrations/xhr/xhrInterceptor.d.ts.map +0 -1
- package/lib/typescript/metro/composeSourceMap.d.ts.map +0 -1
- package/lib/typescript/metro/featureModules.d.ts.map +0 -1
- package/lib/typescript/metro/index.d.ts.map +0 -1
- package/lib/typescript/metro/optionalDependencyStub.d.ts.map +0 -1
- package/lib/typescript/metro/optionalModules.d.ts.map +0 -1
- package/lib/typescript/metro/serializerCompose.d.ts.map +0 -1
- package/lib/typescript/pipeline/dispatcher/dispatcher.d.ts.map +0 -1
- package/lib/typescript/pipeline/envelope/envelope.d.ts.map +0 -1
- package/lib/typescript/pipeline/envelope/serializer.d.ts.map +0 -1
- package/lib/typescript/pipeline/processors/dedupe.d.ts.map +0 -1
- package/lib/typescript/pipeline/processors/enrich.d.ts.map +0 -1
- package/lib/typescript/pipeline/processors/sampling.d.ts.map +0 -1
- package/lib/typescript/pipeline/processors/sanitize.d.ts.map +0 -1
- package/lib/typescript/pipeline/queue/flushQueue.d.ts.map +0 -1
- package/lib/typescript/pipeline/queue/memoryQueue.d.ts.map +0 -1
- package/lib/typescript/pipeline/queue/persistentQueue.d.ts.map +0 -1
- package/lib/typescript/pipeline/queue/queuePolicy.d.ts.map +0 -1
- package/lib/typescript/pipeline/scheduler/flushScheduler.d.ts.map +0 -1
- package/lib/typescript/pipeline/scheduler/retryPolicy.d.ts.map +0 -1
- package/lib/typescript/public/ScaleBunErrorBoundary.d.ts.map +0 -1
- package/lib/typescript/public/ScaleBunFacade.d.ts.map +0 -1
- package/lib/typescript/public/ScaleBunProvider.d.ts.map +0 -1
- package/lib/typescript/public/typedTracker.d.ts.map +0 -1
- package/lib/typescript/public/types.d.ts.map +0 -1
- package/lib/typescript/push/PushManager.d.ts.map +0 -1
- package/lib/typescript/push/adapters/ManualAdapter.d.ts.map +0 -1
- package/lib/typescript/push/adapters/NativeBridgeAdapter.d.ts.map +0 -1
- package/lib/typescript/push/adapters/NoopAdapter.d.ts.map +0 -1
- package/lib/typescript/push/adapters/RNFirebaseMessagingAdapter.d.ts.map +0 -1
- package/lib/typescript/push/adapters/loadMessaging.d.ts.map +0 -1
- package/lib/typescript/push/adapters/loadNotifee.d.ts.map +0 -1
- package/lib/typescript/push/adapters/selectAdapter.d.ts.map +0 -1
- package/lib/typescript/push/detect/capabilities.d.ts.map +0 -1
- package/lib/typescript/push/index.d.ts.map +0 -1
- package/lib/typescript/push/native/nativeNotifications.d.ts.map +0 -1
- package/lib/typescript/push/types.d.ts.map +0 -1
- package/lib/typescript/specs/NativeReplaySdk.d.ts.map +0 -1
- package/lib/typescript/specs/NativeScaleBunCrash.d.ts.map +0 -1
- package/lib/typescript/specs/NativeScaleBunInstallReferrer.d.ts.map +0 -1
- package/lib/typescript/specs/NativeScaleBunOta.d.ts.map +0 -1
- package/lib/typescript/specs/NativeScaleBunPerformance.d.ts.map +0 -1
- package/lib/typescript/specs/NativeScaleBunProfiler.d.ts.map +0 -1
- package/lib/typescript/specs/NativeScaleBunStorage.d.ts.map +0 -1
- package/lib/typescript/storage/StorageBackend.d.ts.map +0 -1
- package/lib/typescript/storage/db/sqlite.d.ts.map +0 -1
- package/lib/typescript/storage/files/fileStore.d.ts.map +0 -1
- package/lib/typescript/transport/auth/sdkSession.d.ts.map +0 -1
- package/lib/typescript/transport/backoff/exponentialJitter.d.ts.map +0 -1
- package/lib/typescript/transport/http/endpoints.d.ts.map +0 -1
- package/lib/typescript/transport/http/httpClient.d.ts.map +0 -1
- package/lib/typescript/transport/rateLimit/retryAfter.d.ts.map +0 -1
- package/lib/typescript/transport/signing/requestSigner.d.ts.map +0 -1
- package/lib/typescript/vendor/protocol/index.d.ts.map +0 -1
- package/lib/typescript/vendor/protocol/internal/validation.d.ts.map +0 -1
- package/lib/typescript/vendor/sdk-contracts/bridge.d.ts.map +0 -1
- package/lib/typescript/vendor/sdk-contracts/config.d.ts.map +0 -1
- package/lib/typescript/vendor/sdk-contracts/events.d.ts.map +0 -1
- package/lib/typescript/vendor/sdk-contracts/features.d.ts.map +0 -1
- package/lib/typescript/vendor/sdk-contracts/index.d.ts.map +0 -1
- package/lib/typescript/vendor/sdk-contracts/platform.d.ts.map +0 -1
- package/lib/typescript/vendor/sdk-contracts/session-boundary.d.ts.map +0 -1
- package/lib/typescript/vendor/sdk-contracts/session.d.ts.map +0 -1
package/dist/scalebun.full.js
CHANGED
|
@@ -170,6 +170,45 @@ function redactHeaders(headers) {
|
|
|
170
170
|
}
|
|
171
171
|
return result;
|
|
172
172
|
}
|
|
173
|
+
function _normalizeKey(key) {
|
|
174
|
+
return key.toLowerCase().replace(/[_\-\s]/g, "");
|
|
175
|
+
}
|
|
176
|
+
function _isSensitiveKey(key) {
|
|
177
|
+
return NORMALIZED_SENSITIVE_KEYS.has(_normalizeKey(key));
|
|
178
|
+
}
|
|
179
|
+
function _luhnValid(digits) {
|
|
180
|
+
const s = digits.replace(/[^\d]/g, "");
|
|
181
|
+
if (s.length < 12 || s.length > 19) return false;
|
|
182
|
+
let sum = 0;
|
|
183
|
+
let alt = false;
|
|
184
|
+
for (let i = s.length - 1; i >= 0; i--) {
|
|
185
|
+
let d = s.charCodeAt(i) - 48;
|
|
186
|
+
if (alt) {
|
|
187
|
+
d *= 2;
|
|
188
|
+
if (d > 9) d -= 9;
|
|
189
|
+
}
|
|
190
|
+
sum += d;
|
|
191
|
+
alt = !alt;
|
|
192
|
+
}
|
|
193
|
+
return sum % 10 === 0;
|
|
194
|
+
}
|
|
195
|
+
function _scrubSecretsInString(value) {
|
|
196
|
+
if (value.length > MAX_STRING_SCRUB_CHARS) {
|
|
197
|
+
value = value.slice(0, MAX_STRING_SCRUB_CHARS);
|
|
198
|
+
}
|
|
199
|
+
let out = value;
|
|
200
|
+
try {
|
|
201
|
+
for (const {
|
|
202
|
+
pattern,
|
|
203
|
+
luhn
|
|
204
|
+
} of VALUE_SCRUB_PATTERNS) {
|
|
205
|
+
pattern.lastIndex = 0;
|
|
206
|
+
out = out.replace(pattern, (m) => luhn && !_luhnValid(m) ? m : REDACTED);
|
|
207
|
+
}
|
|
208
|
+
} catch {
|
|
209
|
+
}
|
|
210
|
+
return out;
|
|
211
|
+
}
|
|
173
212
|
function redactBody(body, maxDepth = 10) {
|
|
174
213
|
try {
|
|
175
214
|
return _redactValue(body, 0, maxDepth);
|
|
@@ -181,7 +220,7 @@ function _redactValue(value, depth, maxDepth) {
|
|
|
181
220
|
if (depth > maxDepth) return "[MAX_DEPTH]";
|
|
182
221
|
if (value === null || value === void 0) return value;
|
|
183
222
|
if (typeof value === "string") {
|
|
184
|
-
return value;
|
|
223
|
+
return _redactString(value, depth, maxDepth);
|
|
185
224
|
}
|
|
186
225
|
if (Array.isArray(value)) {
|
|
187
226
|
return value.map((item) => _redactValue(item, depth + 1, maxDepth));
|
|
@@ -189,7 +228,7 @@ function _redactValue(value, depth, maxDepth) {
|
|
|
189
228
|
if (typeof value === "object") {
|
|
190
229
|
const result = {};
|
|
191
230
|
for (const [key, val] of Object.entries(value)) {
|
|
192
|
-
if (
|
|
231
|
+
if (_isSensitiveKey(key)) {
|
|
193
232
|
result[key] = REDACTED;
|
|
194
233
|
} else {
|
|
195
234
|
result[key] = _redactValue(val, depth + 1, maxDepth);
|
|
@@ -199,52 +238,103 @@ function _redactValue(value, depth, maxDepth) {
|
|
|
199
238
|
}
|
|
200
239
|
return value;
|
|
201
240
|
}
|
|
202
|
-
function
|
|
203
|
-
const
|
|
241
|
+
function _redactString(value, depth, maxDepth) {
|
|
242
|
+
const trimmed = value.trimStart();
|
|
243
|
+
if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
|
|
244
|
+
try {
|
|
245
|
+
const parsed = JSON.parse(value);
|
|
246
|
+
if (parsed !== null && typeof parsed === "object") {
|
|
247
|
+
const redacted = _redactValue(parsed, depth + 1, maxDepth);
|
|
248
|
+
return JSON.stringify(redacted);
|
|
249
|
+
}
|
|
250
|
+
} catch {
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
return _scrubSecretsInString(value);
|
|
254
|
+
}
|
|
255
|
+
function _newScanContext() {
|
|
256
|
+
return {
|
|
257
|
+
warnings: [],
|
|
258
|
+
byType: {},
|
|
259
|
+
deadline: Date.now() + SCAN_TIME_BUDGET_MS,
|
|
260
|
+
truncated: false,
|
|
261
|
+
total: 0
|
|
262
|
+
};
|
|
263
|
+
}
|
|
264
|
+
function _pushWarning(ctx, type, rawMatch, location) {
|
|
265
|
+
ctx.total += 1;
|
|
266
|
+
ctx.byType[type] = (ctx.byType[type] ?? 0) + 1;
|
|
267
|
+
if (ctx.warnings.length < MAX_PII_WARNINGS) {
|
|
268
|
+
ctx.warnings.push({
|
|
269
|
+
type,
|
|
270
|
+
match: _maskPII(rawMatch),
|
|
271
|
+
location
|
|
272
|
+
});
|
|
273
|
+
} else {
|
|
274
|
+
ctx.truncated = true;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
function _finalizeScan(ctx) {
|
|
278
|
+
if (ctx.truncated) {
|
|
279
|
+
ctx.warnings.push({
|
|
280
|
+
type: "_summary",
|
|
281
|
+
match: `truncated: ${ctx.total} matches`,
|
|
282
|
+
location: `counts:${JSON.stringify(ctx.byType)}`
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
return ctx.warnings;
|
|
286
|
+
}
|
|
287
|
+
function _scanTextInto(text2, location, ctx) {
|
|
288
|
+
const input = text2.length > MAX_SCAN_INPUT_CHARS ? text2.slice(0, MAX_SCAN_INPUT_CHARS) : text2;
|
|
204
289
|
try {
|
|
205
290
|
for (const {
|
|
206
291
|
name,
|
|
207
292
|
pattern
|
|
208
293
|
} of PII_PATTERNS) {
|
|
209
294
|
pattern.lastIndex = 0;
|
|
210
|
-
let match = pattern.exec(
|
|
295
|
+
let match = pattern.exec(input);
|
|
211
296
|
while (match) {
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
}
|
|
217
|
-
match
|
|
297
|
+
_pushWarning(ctx, name, match[0], location);
|
|
298
|
+
if (Date.now() > ctx.deadline) {
|
|
299
|
+
ctx.truncated = true;
|
|
300
|
+
return;
|
|
301
|
+
}
|
|
302
|
+
if (pattern.lastIndex === match.index) pattern.lastIndex++;
|
|
303
|
+
match = pattern.exec(input);
|
|
218
304
|
}
|
|
219
305
|
}
|
|
220
306
|
} catch {
|
|
221
307
|
}
|
|
222
|
-
return warnings;
|
|
223
308
|
}
|
|
224
309
|
function scanObjectForPII(obj, basePath = "", maxDepth = 10) {
|
|
225
|
-
const
|
|
310
|
+
const ctx = _newScanContext();
|
|
226
311
|
try {
|
|
227
|
-
|
|
312
|
+
_scanObjectInto(obj, basePath, 0, maxDepth, ctx);
|
|
228
313
|
} catch {
|
|
229
314
|
}
|
|
230
|
-
return
|
|
315
|
+
return _finalizeScan(ctx);
|
|
231
316
|
}
|
|
232
|
-
function
|
|
317
|
+
function _scanObjectInto(value, path, depth, maxDepth, ctx) {
|
|
233
318
|
if (depth > maxDepth || value === null || value === void 0) return;
|
|
319
|
+
if (ctx.truncated || Date.now() > ctx.deadline) {
|
|
320
|
+
ctx.truncated = true;
|
|
321
|
+
return;
|
|
322
|
+
}
|
|
234
323
|
if (typeof value === "string") {
|
|
235
|
-
|
|
236
|
-
warnings.push(...found);
|
|
324
|
+
_scanTextInto(value, path, ctx);
|
|
237
325
|
return;
|
|
238
326
|
}
|
|
239
327
|
if (Array.isArray(value)) {
|
|
240
|
-
value.
|
|
241
|
-
|
|
242
|
-
|
|
328
|
+
for (let i = 0; i < value.length; i++) {
|
|
329
|
+
if (ctx.truncated) return;
|
|
330
|
+
_scanObjectInto(value[i], `${path}[${i}]`, depth + 1, maxDepth, ctx);
|
|
331
|
+
}
|
|
243
332
|
return;
|
|
244
333
|
}
|
|
245
334
|
if (typeof value === "object") {
|
|
246
335
|
for (const [key, val] of Object.entries(value)) {
|
|
247
|
-
|
|
336
|
+
if (ctx.truncated) return;
|
|
337
|
+
_scanObjectInto(val, path ? `${path}.${key}` : key, depth + 1, maxDepth, ctx);
|
|
248
338
|
}
|
|
249
339
|
}
|
|
250
340
|
}
|
|
@@ -267,16 +357,17 @@ function redactUrl(url) {
|
|
|
267
357
|
}
|
|
268
358
|
}
|
|
269
359
|
function redactNetworkEvent(event) {
|
|
270
|
-
const
|
|
360
|
+
const ctx = _newScanContext();
|
|
271
361
|
if (event.url) {
|
|
272
|
-
|
|
362
|
+
_scanTextInto(event.url, "url", ctx);
|
|
273
363
|
}
|
|
274
364
|
if (event.requestBody) {
|
|
275
|
-
|
|
365
|
+
_scanObjectInto(event.requestBody, "requestBody", 0, 10, ctx);
|
|
276
366
|
}
|
|
277
367
|
if (event.responseBody) {
|
|
278
|
-
|
|
368
|
+
_scanObjectInto(event.responseBody, "responseBody", 0, 10, ctx);
|
|
279
369
|
}
|
|
370
|
+
const piiWarnings = _finalizeScan(ctx);
|
|
280
371
|
return {
|
|
281
372
|
url: event.url ? redactUrl(event.url) : "",
|
|
282
373
|
method: event.method ?? "GET",
|
|
@@ -289,29 +380,54 @@ function redactNetworkEvent(event) {
|
|
|
289
380
|
piiWarnings
|
|
290
381
|
};
|
|
291
382
|
}
|
|
292
|
-
var REDACTED, SENSITIVE_HEADERS, PII_PATTERNS, SENSITIVE_BODY_KEYS;
|
|
383
|
+
var REDACTED, MAX_SCAN_INPUT_CHARS, SCAN_TIME_BUDGET_MS, MAX_PII_WARNINGS, MAX_STRING_SCRUB_CHARS, SENSITIVE_HEADERS, PII_PATTERNS, VALUE_SCRUB_PATTERNS, SENSITIVE_BODY_KEYS, NORMALIZED_SENSITIVE_KEYS;
|
|
293
384
|
var init_redaction = __esm({
|
|
294
385
|
"lib/module/debug/redaction.js"() {
|
|
295
386
|
"use strict";
|
|
296
387
|
REDACTED = "[REDACTED]";
|
|
388
|
+
MAX_SCAN_INPUT_CHARS = 16 * 1024;
|
|
389
|
+
SCAN_TIME_BUDGET_MS = 10;
|
|
390
|
+
MAX_PII_WARNINGS = 20;
|
|
391
|
+
MAX_STRING_SCRUB_CHARS = 64 * 1024;
|
|
297
392
|
SENSITIVE_HEADERS = /* @__PURE__ */ new Set(["authorization", "cookie", "set-cookie", "x-api-key", "x-auth-token", "proxy-authorization"]);
|
|
298
393
|
PII_PATTERNS = [{
|
|
299
394
|
name: "email",
|
|
300
|
-
pattern: /[
|
|
395
|
+
pattern: /[A-Za-z0-9._%+-]{1,64}@[A-Za-z0-9-]{1,63}(?:\.[A-Za-z0-9-]{1,63}){0,8}\.[A-Za-z]{2,24}/g
|
|
301
396
|
}, {
|
|
302
397
|
name: "phone",
|
|
303
|
-
pattern:
|
|
398
|
+
pattern: /\+?\d{1,3}[-.\s]?\(?\d{2,4}\)?[-.\s]?\d{3,4}[-.\s]?\d{3,4}/g
|
|
304
399
|
}, {
|
|
305
400
|
name: "ssn",
|
|
306
401
|
pattern: /\b\d{3}-\d{2}-\d{4}\b/g
|
|
307
402
|
}, {
|
|
308
403
|
name: "credit_card",
|
|
309
404
|
pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b/g
|
|
405
|
+
}, {
|
|
406
|
+
name: "iban",
|
|
407
|
+
pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g
|
|
408
|
+
}, {
|
|
409
|
+
name: "jwt",
|
|
410
|
+
pattern: /\beyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\b/g
|
|
310
411
|
}, {
|
|
311
412
|
name: "ip_address",
|
|
312
413
|
pattern: /\b(?:\d{1,3}\.){3}\d{1,3}\b/g
|
|
313
414
|
}];
|
|
314
|
-
|
|
415
|
+
VALUE_SCRUB_PATTERNS = [{
|
|
416
|
+
name: "jwt",
|
|
417
|
+
pattern: /eyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}/g
|
|
418
|
+
}, {
|
|
419
|
+
name: "email",
|
|
420
|
+
pattern: /[A-Za-z0-9._%+-]{1,64}@[A-Za-z0-9-]{1,63}(?:\.[A-Za-z0-9-]{1,63}){0,8}\.[A-Za-z]{2,24}/g
|
|
421
|
+
}, {
|
|
422
|
+
name: "iban",
|
|
423
|
+
pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g
|
|
424
|
+
}, {
|
|
425
|
+
name: "credit_card",
|
|
426
|
+
pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{2,7}\b/g,
|
|
427
|
+
luhn: true
|
|
428
|
+
}];
|
|
429
|
+
SENSITIVE_BODY_KEYS = /* @__PURE__ */ new Set(["password", "passwd", "secret", "token", "access_token", "refresh_token", "id_token", "api_key", "apiKey", "private_key", "privateKey", "credit_card", "creditCard", "ccnumber", "cardnumber", "card_number", "pan", "cvv", "cvc", "ssn", "social_security", "nationalid", "national_id", "iban", "otp", "pin", "totp", "mfa", "mnemonic", "seed"]);
|
|
430
|
+
NORMALIZED_SENSITIVE_KEYS = new Set(Array.from(SENSITIVE_BODY_KEYS, _normalizeKey));
|
|
315
431
|
}
|
|
316
432
|
});
|
|
317
433
|
|
|
@@ -489,7 +605,7 @@ var SDK_VERSION;
|
|
|
489
605
|
var init_version = __esm({
|
|
490
606
|
"lib/module/core/constants/version.js"() {
|
|
491
607
|
"use strict";
|
|
492
|
-
SDK_VERSION = "1.10.
|
|
608
|
+
SDK_VERSION = "1.10.5";
|
|
493
609
|
}
|
|
494
610
|
});
|
|
495
611
|
|
|
@@ -3336,12 +3452,22 @@ var init_AutoScreenDetector = __esm({
|
|
|
3336
3452
|
_manualScreen = null;
|
|
3337
3453
|
_manualScreenTs = 0;
|
|
3338
3454
|
_autoScreen = null;
|
|
3455
|
+
/** `name#key` of the last auto-detected screen VISIT — see _extractActiveVisit. */
|
|
3456
|
+
_autoVisitSig = null;
|
|
3339
3457
|
_navigationRef = null;
|
|
3340
3458
|
_navListenerRemover = null;
|
|
3341
3459
|
_navListenerWired = false;
|
|
3342
3460
|
_heuristicTimer = null;
|
|
3343
3461
|
_started = false;
|
|
3344
3462
|
_lastEmittedScreen = null;
|
|
3463
|
+
_lastEmittedTs = 0;
|
|
3464
|
+
/**
|
|
3465
|
+
* Cross-source emit dedup window — see _emitScreenChange. Long enough to absorb the manual
|
|
3466
|
+
* beacon and the navRef listener both reporting the SAME transition (they land within the
|
|
3467
|
+
* 30ms nav debounce plus a render), short enough that a genuine re-visit of the same route
|
|
3468
|
+
* a moment later is a new screen view rather than silence.
|
|
3469
|
+
*/
|
|
3470
|
+
static EMIT_DEDUP_WINDOW_MS = 800;
|
|
3345
3471
|
_navDebounceTimer = null;
|
|
3346
3472
|
/** Whether the React Navigation exports were actually replaced — see _autoHookReactNavigation. */
|
|
3347
3473
|
_autoHookInstalled = false;
|
|
@@ -3393,6 +3519,7 @@ var init_AutoScreenDetector = __esm({
|
|
|
3393
3519
|
if (this.isManualScreenActive()) return;
|
|
3394
3520
|
if (name !== this._autoScreen) {
|
|
3395
3521
|
this._autoScreen = name;
|
|
3522
|
+
this._autoVisitSig = name;
|
|
3396
3523
|
this._emitScreenChange(name, "heuristic");
|
|
3397
3524
|
}
|
|
3398
3525
|
} catch {
|
|
@@ -3443,10 +3570,11 @@ var init_AutoScreenDetector = __esm({
|
|
|
3443
3570
|
try {
|
|
3444
3571
|
const state = typeof container.getRootState === "function" ? container.getRootState() : null;
|
|
3445
3572
|
if (state) {
|
|
3446
|
-
const
|
|
3447
|
-
if (
|
|
3448
|
-
this._autoScreen =
|
|
3449
|
-
this.
|
|
3573
|
+
const visit = this._extractActiveVisit(state);
|
|
3574
|
+
if (visit && this._visitSig(visit) !== this._autoVisitSig) {
|
|
3575
|
+
this._autoScreen = visit.name;
|
|
3576
|
+
this._autoVisitSig = this._visitSig(visit);
|
|
3577
|
+
this._emitScreenChange(visit.name, "navRef");
|
|
3450
3578
|
}
|
|
3451
3579
|
}
|
|
3452
3580
|
} catch {
|
|
@@ -3460,10 +3588,11 @@ var init_AutoScreenDetector = __esm({
|
|
|
3460
3588
|
if (typeof container.getRootState === "function") {
|
|
3461
3589
|
const state = container.getRootState();
|
|
3462
3590
|
if (state) {
|
|
3463
|
-
const
|
|
3464
|
-
if (
|
|
3465
|
-
this._autoScreen =
|
|
3466
|
-
this.
|
|
3591
|
+
const visit = this._extractActiveVisit(state);
|
|
3592
|
+
if (visit) {
|
|
3593
|
+
this._autoScreen = visit.name;
|
|
3594
|
+
this._autoVisitSig = this._visitSig(visit);
|
|
3595
|
+
this._emitScreenChange(visit.name, "navRef");
|
|
3467
3596
|
}
|
|
3468
3597
|
}
|
|
3469
3598
|
}
|
|
@@ -3489,10 +3618,11 @@ var init_AutoScreenDetector = __esm({
|
|
|
3489
3618
|
if (navContainer) {
|
|
3490
3619
|
const state = typeof navContainer.getRootState === "function" ? navContainer.getRootState() : null;
|
|
3491
3620
|
if (state) {
|
|
3492
|
-
const
|
|
3493
|
-
if (
|
|
3494
|
-
this._autoScreen =
|
|
3495
|
-
this.
|
|
3621
|
+
const visit = this._extractActiveVisit(state);
|
|
3622
|
+
if (visit && this._visitSig(visit) !== this._autoVisitSig) {
|
|
3623
|
+
this._autoScreen = visit.name;
|
|
3624
|
+
this._autoVisitSig = this._visitSig(visit);
|
|
3625
|
+
this._emitScreenChange(visit.name, "heuristic");
|
|
3496
3626
|
}
|
|
3497
3627
|
}
|
|
3498
3628
|
}
|
|
@@ -3524,19 +3654,43 @@ var init_AutoScreenDetector = __esm({
|
|
|
3524
3654
|
* Handles nested navigators by walking to the deepest active route.
|
|
3525
3655
|
*/
|
|
3526
3656
|
_extractActiveRoute(state) {
|
|
3657
|
+
return this._extractActiveVisit(state)?.name ?? null;
|
|
3658
|
+
}
|
|
3659
|
+
/**
|
|
3660
|
+
* Extract the active route's name AND its React Navigation route `key`.
|
|
3661
|
+
*
|
|
3662
|
+
* The key is what makes re-VISITS detectable. Comparing names alone collapses two
|
|
3663
|
+
* different visits to the same route into one screen view: leave Details, open Details
|
|
3664
|
+
* again, and `name === _autoScreen` swallowed the second visit entirely (QA: "opened the
|
|
3665
|
+
* same route again and no screen event was recorded"). React Navigation mints a fresh
|
|
3666
|
+
* `key` for every pushed route instance, so a re-push of the same name is a NEW key —
|
|
3667
|
+
* name+key comparison records each visit while a mere re-render of the same instance
|
|
3668
|
+
* (same key) still emits nothing. States without keys degrade to name-only, i.e. the
|
|
3669
|
+
* old behaviour, never worse.
|
|
3670
|
+
*/
|
|
3671
|
+
_extractActiveVisit(state) {
|
|
3527
3672
|
try {
|
|
3528
3673
|
if (!state?.routes || typeof state.index !== "number") return null;
|
|
3529
3674
|
const activeRoute = state.routes[state.index];
|
|
3530
3675
|
if (!activeRoute) return null;
|
|
3531
3676
|
if (activeRoute.state?.routes && typeof activeRoute.state.index === "number") {
|
|
3532
|
-
const nested = this.
|
|
3677
|
+
const nested = this._extractActiveVisit(activeRoute.state);
|
|
3533
3678
|
if (nested) return nested;
|
|
3534
3679
|
}
|
|
3535
|
-
|
|
3680
|
+
if (!activeRoute.name) return null;
|
|
3681
|
+
const rawKey = activeRoute.key;
|
|
3682
|
+
return {
|
|
3683
|
+
name: activeRoute.name,
|
|
3684
|
+
key: typeof rawKey === "string" ? rawKey : null
|
|
3685
|
+
};
|
|
3536
3686
|
} catch {
|
|
3537
3687
|
return null;
|
|
3538
3688
|
}
|
|
3539
3689
|
}
|
|
3690
|
+
/** `name#key` signature of one screen VISIT — what the auto paths dedup on. */
|
|
3691
|
+
_visitSig(visit) {
|
|
3692
|
+
return visit.key ? `${visit.name}#${visit.key}` : visit.name;
|
|
3693
|
+
}
|
|
3540
3694
|
// ─── Lifecycle ──────────────────────────────────────────────────────
|
|
3541
3695
|
/** Start auto-detection (idempotent) */
|
|
3542
3696
|
start() {
|
|
@@ -3701,8 +3855,10 @@ var init_AutoScreenDetector = __esm({
|
|
|
3701
3855
|
// ─── Internal ───────────────────────────────────────────────────────
|
|
3702
3856
|
_emitScreenChange(name, source) {
|
|
3703
3857
|
try {
|
|
3704
|
-
|
|
3858
|
+
const emitNow = Date.now();
|
|
3859
|
+
if (name === this._lastEmittedScreen && emitNow - this._lastEmittedTs < _AutoScreenDetector.EMIT_DEDUP_WINDOW_MS) return;
|
|
3705
3860
|
this._lastEmittedScreen = name;
|
|
3861
|
+
this._lastEmittedTs = emitNow;
|
|
3706
3862
|
for (const cb of this._listeners) {
|
|
3707
3863
|
try {
|
|
3708
3864
|
cb(name, source);
|
|
@@ -5587,6 +5743,21 @@ var init_SessionManager = __esm({
|
|
|
5587
5743
|
* differently across devices and pushes markers ~10% off vertically).
|
|
5588
5744
|
*/
|
|
5589
5745
|
_lastNativeViewportJsUnits = null;
|
|
5746
|
+
/**
|
|
5747
|
+
* Exact-duplicate gesture suppression (QA: one physical tap recorded 2–3×).
|
|
5748
|
+
*
|
|
5749
|
+
* Measured in production data: the native tracker re-emitted the SAME tap — identical
|
|
5750
|
+
* gestureType and identical coordinates to the SUB-PIXEL (e.g. x=466.962890625) — at
|
|
5751
|
+
* 160–240ms gaps, sometimes twice. A human re-tap cannot reproduce a sub-pixel float
|
|
5752
|
+
* exactly, so exact coordinate equality within the window is a safe discriminator: real
|
|
5753
|
+
* double-taps land on at least slightly different pixels and pass through untouched.
|
|
5754
|
+
* The pipeline's own 100ms dedup was too narrow for these; this window covers what was
|
|
5755
|
+
* actually observed with margin. Sits at the ONE entry point every gesture source funnels
|
|
5756
|
+
* through, so recording and analytics lanes are protected equally.
|
|
5757
|
+
*/
|
|
5758
|
+
_lastGestureSig = null;
|
|
5759
|
+
_lastGestureTs = 0;
|
|
5760
|
+
static GESTURE_DEDUP_WINDOW_MS = 400;
|
|
5590
5761
|
/** Memoized native file-outbox frame adapter (gated by the backend transport). */
|
|
5591
5762
|
_outboxFrameCapture = null;
|
|
5592
5763
|
constructor(debugTransport, nativeCapture2, managerConfig) {
|
|
@@ -6235,6 +6406,14 @@ var init_SessionManager = __esm({
|
|
|
6235
6406
|
* Emits a USER_ACTION event with gesture-specific subtype and payload.
|
|
6236
6407
|
*/
|
|
6237
6408
|
onGestureDetected(gestureType, details) {
|
|
6409
|
+
const dedupSig = `${gestureType}|${String(details?.x)}|${String(details?.y)}|${String(details?.endX)}|${String(details?.endY)}`;
|
|
6410
|
+
const nowTs = Date.now();
|
|
6411
|
+
if (dedupSig === this._lastGestureSig && nowTs - this._lastGestureTs <= _SessionManager.GESTURE_DEDUP_WINDOW_MS) {
|
|
6412
|
+
this._lastGestureTs = nowTs;
|
|
6413
|
+
return;
|
|
6414
|
+
}
|
|
6415
|
+
this._lastGestureSig = dedupSig;
|
|
6416
|
+
this._lastGestureTs = nowTs;
|
|
6238
6417
|
const payload = {
|
|
6239
6418
|
gestureType,
|
|
6240
6419
|
x: details?.x,
|
|
@@ -14145,6 +14324,35 @@ var SHAPE = {
|
|
|
14145
14324
|
})
|
|
14146
14325
|
}
|
|
14147
14326
|
},
|
|
14327
|
+
// SB-10: the public, documented top-level privacy config. Previously only the
|
|
14328
|
+
// nested replay privacy took effect; this is validated here and mapped onto the
|
|
14329
|
+
// effective replay privacy policy in the bootstrapper so it actually masks.
|
|
14330
|
+
privacy: {
|
|
14331
|
+
kind: "obj",
|
|
14332
|
+
opt: true,
|
|
14333
|
+
shape: {
|
|
14334
|
+
maskTextInputs: {
|
|
14335
|
+
kind: "bool",
|
|
14336
|
+
opt: true
|
|
14337
|
+
},
|
|
14338
|
+
maskImages: {
|
|
14339
|
+
kind: "bool",
|
|
14340
|
+
opt: true
|
|
14341
|
+
},
|
|
14342
|
+
redactAuth: {
|
|
14343
|
+
kind: "bool",
|
|
14344
|
+
opt: true
|
|
14345
|
+
},
|
|
14346
|
+
redactCookies: {
|
|
14347
|
+
kind: "bool",
|
|
14348
|
+
opt: true
|
|
14349
|
+
},
|
|
14350
|
+
redactBodies: {
|
|
14351
|
+
kind: "bool",
|
|
14352
|
+
opt: true
|
|
14353
|
+
}
|
|
14354
|
+
}
|
|
14355
|
+
},
|
|
14148
14356
|
captureInteractionHeatmap: bool(true),
|
|
14149
14357
|
// Opt-in: intercept console.* and ship the lines to the Diagnose → Logs lane in SaaS
|
|
14150
14358
|
// mode. OFF by default — console output can carry PII/secrets and adds ingest volume,
|
|
@@ -15498,6 +15706,13 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
15498
15706
|
// the flush timer retries, so nothing is lost to a start/child race. The durable native
|
|
15499
15707
|
// outbox path has its own ordering; this guards only the JS in-memory fallback.
|
|
15500
15708
|
_startedSessionIds = /* @__PURE__ */ new Set();
|
|
15709
|
+
// §11 offline-start recovery: INGESTION_START payloads whose POST failed (e.g. the app
|
|
15710
|
+
// launched with no connectivity). Without this, a failed START was logged and forgotten —
|
|
15711
|
+
// the row-ready gate never opened, every child lane re-buffered forever, and the session
|
|
15712
|
+
// stayed stuck until an app restart even after the network returned. Each flush tick
|
|
15713
|
+
// re-attempts these until acked (network errors keep retrying; permanent 4xx gives up).
|
|
15714
|
+
_pendingStartPayloads = /* @__PURE__ */ new Map();
|
|
15715
|
+
_startRetryInFlight = false;
|
|
15501
15716
|
pendingFrames = [];
|
|
15502
15717
|
pendingEvents = [];
|
|
15503
15718
|
pendingNetworkRequests = [];
|
|
@@ -15621,10 +15836,16 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
15621
15836
|
}
|
|
15622
15837
|
};
|
|
15623
15838
|
__DEV__ && logger.debug(`[BackendSessionAdapter] POST session start: ${session.sessionId}`);
|
|
15624
|
-
return this._post(startEndpoint, payload)
|
|
15625
|
-
|
|
15626
|
-
|
|
15627
|
-
|
|
15839
|
+
return this._post(startEndpoint, payload).then(() => {
|
|
15840
|
+
this._startedSessionIds.add(session.sessionId);
|
|
15841
|
+
this._pendingStartPayloads.delete(session.sessionId);
|
|
15842
|
+
__DEV__ && logger.info(`[ScaleBun Replay] backend session upload success`);
|
|
15843
|
+
}, (err) => {
|
|
15844
|
+
if (!_BackendSessionAdapter._isPermanentHttpError(err)) {
|
|
15845
|
+
this._pendingStartPayloads.set(session.sessionId, payload);
|
|
15846
|
+
}
|
|
15847
|
+
logger.info(`[ScaleBun Replay] backend session upload failure`);
|
|
15848
|
+
});
|
|
15628
15849
|
}).catch(() => logger.info(`[ScaleBun Replay] backend session upload failure`));
|
|
15629
15850
|
}
|
|
15630
15851
|
sendSessionEnd(session) {
|
|
@@ -15697,8 +15918,16 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
15697
15918
|
environment: m?.buildType
|
|
15698
15919
|
}
|
|
15699
15920
|
};
|
|
15700
|
-
|
|
15921
|
+
try {
|
|
15922
|
+
await this._post(startEndpoint, payload);
|
|
15923
|
+
} catch (err) {
|
|
15924
|
+
if (!_BackendSessionAdapter._isPermanentHttpError(err)) {
|
|
15925
|
+
this._pendingStartPayloads.set(session.sessionId, payload);
|
|
15926
|
+
}
|
|
15927
|
+
throw err;
|
|
15928
|
+
}
|
|
15701
15929
|
this._startedSessionIds.add(session.sessionId);
|
|
15930
|
+
this._pendingStartPayloads.delete(session.sessionId);
|
|
15702
15931
|
this._flushAnalyticsEvents().catch(() => {
|
|
15703
15932
|
});
|
|
15704
15933
|
__DEV__ && logger.info(`[ScaleBun Analytics] session start upload success: ${session.sessionId}`);
|
|
@@ -15706,6 +15935,40 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
15706
15935
|
__DEV__ && logger.info(`[ScaleBun Analytics] session start upload failure`);
|
|
15707
15936
|
}
|
|
15708
15937
|
}
|
|
15938
|
+
/**
|
|
15939
|
+
* Re-attempt any INGESTION_START whose POST failed (offline app launch). Runs on every
|
|
15940
|
+
* flush tick of BOTH lanes — cheap no-op when the map is empty, single-flight guarded.
|
|
15941
|
+
* On ack: opens the row-ready gate and drains whichever lane the id belongs to, which is
|
|
15942
|
+
* exactly what un-sticks a replay that started offline once connectivity returns.
|
|
15943
|
+
*/
|
|
15944
|
+
_retryPendingStarts() {
|
|
15945
|
+
if (this.destroyed || this._startRetryInFlight || this._pendingStartPayloads.size === 0) return;
|
|
15946
|
+
const entry = this._pendingStartPayloads.entries().next().value;
|
|
15947
|
+
if (!entry) return;
|
|
15948
|
+
const [sessionId, payload] = entry;
|
|
15949
|
+
const stillRelevant = sessionId === this.currentSessionId || sessionId === this._analyticsSessionId;
|
|
15950
|
+
if (!stillRelevant) {
|
|
15951
|
+
this._pendingStartPayloads.delete(sessionId);
|
|
15952
|
+
return;
|
|
15953
|
+
}
|
|
15954
|
+
this._startRetryInFlight = true;
|
|
15955
|
+
const startEndpoint = this.config.clientKey ? ENDPOINTS.INGESTION_START : "/replay/sessions";
|
|
15956
|
+
this._post(startEndpoint, payload).then(() => {
|
|
15957
|
+
this._startedSessionIds.add(sessionId);
|
|
15958
|
+
this._pendingStartPayloads.delete(sessionId);
|
|
15959
|
+
__DEV__ && logger.info(`[ScaleBun Replay] deferred session start delivered: ${sessionId}`);
|
|
15960
|
+
if (sessionId === this._analyticsSessionId) {
|
|
15961
|
+
this._flushAnalyticsEvents().catch(() => {
|
|
15962
|
+
});
|
|
15963
|
+
}
|
|
15964
|
+
}).catch((err) => {
|
|
15965
|
+
if (_BackendSessionAdapter._isPermanentHttpError(err)) {
|
|
15966
|
+
this._pendingStartPayloads.delete(sessionId);
|
|
15967
|
+
}
|
|
15968
|
+
}).finally(() => {
|
|
15969
|
+
this._startRetryInFlight = false;
|
|
15970
|
+
});
|
|
15971
|
+
}
|
|
15709
15972
|
/**
|
|
15710
15973
|
* Enqueue a user track() event. Buffers (bounded, drop-oldest) when the
|
|
15711
15974
|
* analytics session is not yet open; flushes at >=20 once it is.
|
|
@@ -15820,6 +16083,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
15820
16083
|
_startAnalyticsFlushTimer() {
|
|
15821
16084
|
this._stopAnalyticsFlushTimer();
|
|
15822
16085
|
this.analyticsFlushTimer = setInterval(() => {
|
|
16086
|
+
this._retryPendingStarts();
|
|
15823
16087
|
this._flushAnalyticsEvents().catch(() => {
|
|
15824
16088
|
});
|
|
15825
16089
|
}, this.config.flushIntervalMs);
|
|
@@ -16046,6 +16310,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
16046
16310
|
this._analyticsSessionId = null;
|
|
16047
16311
|
this._pendingFinalizeId = null;
|
|
16048
16312
|
this._startedSessionIds.clear();
|
|
16313
|
+
this._pendingStartPayloads.clear();
|
|
16049
16314
|
}
|
|
16050
16315
|
// ─── Internal: Flush ────────────────────────────────────────────────
|
|
16051
16316
|
/** Wire metadata for a frame — real format/sizeBytes from native (no hardcoded literals). */
|
|
@@ -16564,6 +16829,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
16564
16829
|
_startFlushTimer() {
|
|
16565
16830
|
this._stopFlushTimer();
|
|
16566
16831
|
this.flushTimer = setInterval(() => {
|
|
16832
|
+
this._retryPendingStarts();
|
|
16567
16833
|
this._flushFrames().catch(() => {
|
|
16568
16834
|
});
|
|
16569
16835
|
this._flushEvents().catch(() => {
|
|
@@ -16894,6 +17160,18 @@ var SDKBootstrapper = class {
|
|
|
16894
17160
|
if (features.replay !== false) {
|
|
16895
17161
|
try {
|
|
16896
17162
|
__DEV__ && logger.debug("[Bootstrap] Initializing unified SessionManager");
|
|
17163
|
+
const pub = this.config.privacy ?? {};
|
|
17164
|
+
const sessionReplay = {
|
|
17165
|
+
...this.config.replay ?? {}
|
|
17166
|
+
};
|
|
17167
|
+
if (typeof pub.maskTextInputs === "boolean" || typeof pub.maskImages === "boolean") {
|
|
17168
|
+
sessionReplay.privacyPolicy = {
|
|
17169
|
+
redactTextInputs: pub.maskTextInputs ?? true,
|
|
17170
|
+
redactImages: pub.maskImages ?? false,
|
|
17171
|
+
blockTestIds: [],
|
|
17172
|
+
captureExclusions: []
|
|
17173
|
+
};
|
|
17174
|
+
}
|
|
16897
17175
|
const sessionManager = SessionManager.getInstance(
|
|
16898
17176
|
null,
|
|
16899
17177
|
// No desktop transport initially
|
|
@@ -16904,9 +17182,7 @@ var SDKBootstrapper = class {
|
|
|
16904
17182
|
// Also flow the Feature #4 heatmap flag so tap/gesture coords
|
|
16905
17183
|
// route to the analytics lane even when no recording is active.
|
|
16906
17184
|
{
|
|
16907
|
-
|
|
16908
|
-
sessionReplay: this.config.replay
|
|
16909
|
-
} : {},
|
|
17185
|
+
sessionReplay,
|
|
16910
17186
|
captureInteractionHeatmap: this.config.captureInteractionHeatmap === true
|
|
16911
17187
|
}
|
|
16912
17188
|
);
|
|
@@ -19863,16 +20139,90 @@ var ScaleBunFacade = class {
|
|
|
19863
20139
|
});
|
|
19864
20140
|
});
|
|
19865
20141
|
}
|
|
19866
|
-
/**
|
|
19867
|
-
|
|
20142
|
+
/**
|
|
20143
|
+
* Clear user identity.
|
|
20144
|
+
*
|
|
20145
|
+
* SB-11: pass `{ purgeLocal: true }` on logout / consent withdrawal to also
|
|
20146
|
+
* erase all locally-stored SDK data (see {@link eraseLocalData}). Without it,
|
|
20147
|
+
* behaviour is unchanged (identity-only clear).
|
|
20148
|
+
*/
|
|
20149
|
+
clearUser(options) {
|
|
19868
20150
|
return noThrow(() => {
|
|
19869
20151
|
this._identifiedUserId = null;
|
|
19870
20152
|
this._pendingIdentity = null;
|
|
19871
20153
|
if (!this.initialized) return;
|
|
19872
20154
|
this._eventTracker?.clearIdentity();
|
|
19873
20155
|
this.track("$clear_user", {});
|
|
20156
|
+
if (options?.purgeLocal) void this.eraseLocalData();
|
|
20157
|
+
});
|
|
20158
|
+
}
|
|
20159
|
+
/**
|
|
20160
|
+
* SB-11: erase all locally-stored SDK data from the device — the durable event
|
|
20161
|
+
* queue, the pre-init buffer, and the first-party KV store (cached install /
|
|
20162
|
+
* anonymous / session IDs, plus any queued payloads including SB-26 disk data).
|
|
20163
|
+
*
|
|
20164
|
+
* Order matters: capture is stopped FIRST so nothing is written back in behind
|
|
20165
|
+
* the delete. Best-effort and never throws.
|
|
20166
|
+
*
|
|
20167
|
+
* Note: native replay frames written to disk on iOS are addressed separately
|
|
20168
|
+
* (SB-15); this covers every store reachable from JS today.
|
|
20169
|
+
*/
|
|
20170
|
+
async eraseLocalData() {
|
|
20171
|
+
try {
|
|
20172
|
+
try {
|
|
20173
|
+
SessionManager.getExistingInstance()?.endSession("ended");
|
|
20174
|
+
} catch {
|
|
20175
|
+
}
|
|
20176
|
+
try {
|
|
20177
|
+
this._getQueue().clear();
|
|
20178
|
+
} catch {
|
|
20179
|
+
}
|
|
20180
|
+
try {
|
|
20181
|
+
this._preInitBuffer.clear();
|
|
20182
|
+
} catch {
|
|
20183
|
+
}
|
|
20184
|
+
try {
|
|
20185
|
+
const store = createStorageBackend();
|
|
20186
|
+
for (const key of store.getAllKeys()) {
|
|
20187
|
+
store.delete(key);
|
|
20188
|
+
}
|
|
20189
|
+
} catch {
|
|
20190
|
+
}
|
|
20191
|
+
} catch {
|
|
20192
|
+
}
|
|
20193
|
+
}
|
|
20194
|
+
/**
|
|
20195
|
+
* SB-11: record the user's data-collection consent. When `enabled` is false,
|
|
20196
|
+
* capture is stopped immediately; pass `{ purgeLocal: true }` to also erase
|
|
20197
|
+
* everything already stored locally. Never throws.
|
|
20198
|
+
*/
|
|
20199
|
+
setConsent(enabled, options) {
|
|
20200
|
+
noThrow(() => {
|
|
20201
|
+
if (enabled) return;
|
|
20202
|
+
try {
|
|
20203
|
+
SessionManager.getExistingInstance()?.endSession("ended");
|
|
20204
|
+
} catch {
|
|
20205
|
+
}
|
|
20206
|
+
if (options?.purgeLocal) void this.eraseLocalData();
|
|
19874
20207
|
});
|
|
19875
20208
|
}
|
|
20209
|
+
/**
|
|
20210
|
+
* SB-10: return the effective privacy policy actually in force, resolving the
|
|
20211
|
+
* public config against the SDK's safe defaults. Lets callers and tests assert
|
|
20212
|
+
* what is active rather than guessing from the (previously dead) config object.
|
|
20213
|
+
*/
|
|
20214
|
+
getEffectivePrivacyPolicy() {
|
|
20215
|
+
const p = this._privacyConfig ?? {};
|
|
20216
|
+
return {
|
|
20217
|
+
// Real default is true (matches the replay capture default) — the old
|
|
20218
|
+
// doc comment claiming "false" was both wrong and less safe.
|
|
20219
|
+
maskTextInputs: p.maskTextInputs ?? true,
|
|
20220
|
+
maskImages: p.maskImages ?? false,
|
|
20221
|
+
redactAuth: p.redactAuth ?? true,
|
|
20222
|
+
redactCookies: p.redactCookies ?? true,
|
|
20223
|
+
redactBodies: p.redactBodies ?? false
|
|
20224
|
+
};
|
|
20225
|
+
}
|
|
19876
20226
|
/**
|
|
19877
20227
|
* Submit in-app rating (1-5 stars).
|
|
19878
20228
|
* Attaches to current session when available; otherwise sends standalone.
|
|
@@ -32953,7 +33303,7 @@ function ScaleBunDebugRoot({
|
|
|
32953
33303
|
}
|
|
32954
33304
|
} catch {
|
|
32955
33305
|
}
|
|
32956
|
-
},
|
|
33306
|
+
}, 600);
|
|
32957
33307
|
}
|
|
32958
33308
|
touchStartRef.current = null;
|
|
32959
33309
|
} catch {
|