@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.slim.js
CHANGED
|
@@ -173,6 +173,45 @@ function redactHeaders(headers) {
|
|
|
173
173
|
}
|
|
174
174
|
return result;
|
|
175
175
|
}
|
|
176
|
+
function _normalizeKey(key) {
|
|
177
|
+
return key.toLowerCase().replace(/[_\-\s]/g, "");
|
|
178
|
+
}
|
|
179
|
+
function _isSensitiveKey(key) {
|
|
180
|
+
return NORMALIZED_SENSITIVE_KEYS.has(_normalizeKey(key));
|
|
181
|
+
}
|
|
182
|
+
function _luhnValid(digits) {
|
|
183
|
+
const s = digits.replace(/[^\d]/g, "");
|
|
184
|
+
if (s.length < 12 || s.length > 19) return false;
|
|
185
|
+
let sum = 0;
|
|
186
|
+
let alt = false;
|
|
187
|
+
for (let i = s.length - 1; i >= 0; i--) {
|
|
188
|
+
let d = s.charCodeAt(i) - 48;
|
|
189
|
+
if (alt) {
|
|
190
|
+
d *= 2;
|
|
191
|
+
if (d > 9) d -= 9;
|
|
192
|
+
}
|
|
193
|
+
sum += d;
|
|
194
|
+
alt = !alt;
|
|
195
|
+
}
|
|
196
|
+
return sum % 10 === 0;
|
|
197
|
+
}
|
|
198
|
+
function _scrubSecretsInString(value) {
|
|
199
|
+
if (value.length > MAX_STRING_SCRUB_CHARS) {
|
|
200
|
+
value = value.slice(0, MAX_STRING_SCRUB_CHARS);
|
|
201
|
+
}
|
|
202
|
+
let out = value;
|
|
203
|
+
try {
|
|
204
|
+
for (const {
|
|
205
|
+
pattern,
|
|
206
|
+
luhn
|
|
207
|
+
} of VALUE_SCRUB_PATTERNS) {
|
|
208
|
+
pattern.lastIndex = 0;
|
|
209
|
+
out = out.replace(pattern, (m) => luhn && !_luhnValid(m) ? m : REDACTED);
|
|
210
|
+
}
|
|
211
|
+
} catch {
|
|
212
|
+
}
|
|
213
|
+
return out;
|
|
214
|
+
}
|
|
176
215
|
function redactBody(body, maxDepth = 10) {
|
|
177
216
|
try {
|
|
178
217
|
return _redactValue(body, 0, maxDepth);
|
|
@@ -184,7 +223,7 @@ function _redactValue(value, depth, maxDepth) {
|
|
|
184
223
|
if (depth > maxDepth) return "[MAX_DEPTH]";
|
|
185
224
|
if (value === null || value === void 0) return value;
|
|
186
225
|
if (typeof value === "string") {
|
|
187
|
-
return value;
|
|
226
|
+
return _redactString(value, depth, maxDepth);
|
|
188
227
|
}
|
|
189
228
|
if (Array.isArray(value)) {
|
|
190
229
|
return value.map((item) => _redactValue(item, depth + 1, maxDepth));
|
|
@@ -192,7 +231,7 @@ function _redactValue(value, depth, maxDepth) {
|
|
|
192
231
|
if (typeof value === "object") {
|
|
193
232
|
const result = {};
|
|
194
233
|
for (const [key, val] of Object.entries(value)) {
|
|
195
|
-
if (
|
|
234
|
+
if (_isSensitiveKey(key)) {
|
|
196
235
|
result[key] = REDACTED;
|
|
197
236
|
} else {
|
|
198
237
|
result[key] = _redactValue(val, depth + 1, maxDepth);
|
|
@@ -202,52 +241,95 @@ function _redactValue(value, depth, maxDepth) {
|
|
|
202
241
|
}
|
|
203
242
|
return value;
|
|
204
243
|
}
|
|
205
|
-
function
|
|
206
|
-
const
|
|
244
|
+
function _redactString(value, depth, maxDepth) {
|
|
245
|
+
const trimmed = value.trimStart();
|
|
246
|
+
if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
|
|
247
|
+
try {
|
|
248
|
+
const parsed = JSON.parse(value);
|
|
249
|
+
if (parsed !== null && typeof parsed === "object") {
|
|
250
|
+
const redacted = _redactValue(parsed, depth + 1, maxDepth);
|
|
251
|
+
return JSON.stringify(redacted);
|
|
252
|
+
}
|
|
253
|
+
} catch {
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return _scrubSecretsInString(value);
|
|
257
|
+
}
|
|
258
|
+
function _newScanContext() {
|
|
259
|
+
return {
|
|
260
|
+
warnings: [],
|
|
261
|
+
byType: {},
|
|
262
|
+
deadline: Date.now() + SCAN_TIME_BUDGET_MS,
|
|
263
|
+
truncated: false,
|
|
264
|
+
total: 0
|
|
265
|
+
};
|
|
266
|
+
}
|
|
267
|
+
function _pushWarning(ctx, type, rawMatch, location) {
|
|
268
|
+
ctx.total += 1;
|
|
269
|
+
ctx.byType[type] = (ctx.byType[type] ?? 0) + 1;
|
|
270
|
+
if (ctx.warnings.length < MAX_PII_WARNINGS) {
|
|
271
|
+
ctx.warnings.push({
|
|
272
|
+
type,
|
|
273
|
+
match: _maskPII(rawMatch),
|
|
274
|
+
location
|
|
275
|
+
});
|
|
276
|
+
} else {
|
|
277
|
+
ctx.truncated = true;
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
function _finalizeScan(ctx) {
|
|
281
|
+
if (ctx.truncated) {
|
|
282
|
+
ctx.warnings.push({
|
|
283
|
+
type: "_summary",
|
|
284
|
+
match: `truncated: ${ctx.total} matches`,
|
|
285
|
+
location: `counts:${JSON.stringify(ctx.byType)}`
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
return ctx.warnings;
|
|
289
|
+
}
|
|
290
|
+
function _scanTextInto(text2, location, ctx) {
|
|
291
|
+
const input = text2.length > MAX_SCAN_INPUT_CHARS ? text2.slice(0, MAX_SCAN_INPUT_CHARS) : text2;
|
|
207
292
|
try {
|
|
208
293
|
for (const {
|
|
209
294
|
name,
|
|
210
295
|
pattern
|
|
211
296
|
} of PII_PATTERNS) {
|
|
212
297
|
pattern.lastIndex = 0;
|
|
213
|
-
let match = pattern.exec(
|
|
298
|
+
let match = pattern.exec(input);
|
|
214
299
|
while (match) {
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
}
|
|
220
|
-
match
|
|
300
|
+
_pushWarning(ctx, name, match[0], location);
|
|
301
|
+
if (Date.now() > ctx.deadline) {
|
|
302
|
+
ctx.truncated = true;
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
if (pattern.lastIndex === match.index) pattern.lastIndex++;
|
|
306
|
+
match = pattern.exec(input);
|
|
221
307
|
}
|
|
222
308
|
}
|
|
223
309
|
} catch {
|
|
224
310
|
}
|
|
225
|
-
return warnings;
|
|
226
311
|
}
|
|
227
|
-
function
|
|
228
|
-
const warnings = [];
|
|
229
|
-
try {
|
|
230
|
-
_scanObject(obj, basePath, 0, maxDepth, warnings);
|
|
231
|
-
} catch {
|
|
232
|
-
}
|
|
233
|
-
return warnings;
|
|
234
|
-
}
|
|
235
|
-
function _scanObject(value, path, depth, maxDepth, warnings) {
|
|
312
|
+
function _scanObjectInto(value, path, depth, maxDepth, ctx) {
|
|
236
313
|
if (depth > maxDepth || value === null || value === void 0) return;
|
|
314
|
+
if (ctx.truncated || Date.now() > ctx.deadline) {
|
|
315
|
+
ctx.truncated = true;
|
|
316
|
+
return;
|
|
317
|
+
}
|
|
237
318
|
if (typeof value === "string") {
|
|
238
|
-
|
|
239
|
-
warnings.push(...found);
|
|
319
|
+
_scanTextInto(value, path, ctx);
|
|
240
320
|
return;
|
|
241
321
|
}
|
|
242
322
|
if (Array.isArray(value)) {
|
|
243
|
-
value.
|
|
244
|
-
|
|
245
|
-
|
|
323
|
+
for (let i = 0; i < value.length; i++) {
|
|
324
|
+
if (ctx.truncated) return;
|
|
325
|
+
_scanObjectInto(value[i], `${path}[${i}]`, depth + 1, maxDepth, ctx);
|
|
326
|
+
}
|
|
246
327
|
return;
|
|
247
328
|
}
|
|
248
329
|
if (typeof value === "object") {
|
|
249
330
|
for (const [key, val] of Object.entries(value)) {
|
|
250
|
-
|
|
331
|
+
if (ctx.truncated) return;
|
|
332
|
+
_scanObjectInto(val, path ? `${path}.${key}` : key, depth + 1, maxDepth, ctx);
|
|
251
333
|
}
|
|
252
334
|
}
|
|
253
335
|
}
|
|
@@ -270,16 +352,17 @@ function redactUrl(url) {
|
|
|
270
352
|
}
|
|
271
353
|
}
|
|
272
354
|
function redactNetworkEvent(event) {
|
|
273
|
-
const
|
|
355
|
+
const ctx = _newScanContext();
|
|
274
356
|
if (event.url) {
|
|
275
|
-
|
|
357
|
+
_scanTextInto(event.url, "url", ctx);
|
|
276
358
|
}
|
|
277
359
|
if (event.requestBody) {
|
|
278
|
-
|
|
360
|
+
_scanObjectInto(event.requestBody, "requestBody", 0, 10, ctx);
|
|
279
361
|
}
|
|
280
362
|
if (event.responseBody) {
|
|
281
|
-
|
|
363
|
+
_scanObjectInto(event.responseBody, "responseBody", 0, 10, ctx);
|
|
282
364
|
}
|
|
365
|
+
const piiWarnings = _finalizeScan(ctx);
|
|
283
366
|
return {
|
|
284
367
|
url: event.url ? redactUrl(event.url) : "",
|
|
285
368
|
method: event.method ?? "GET",
|
|
@@ -292,29 +375,54 @@ function redactNetworkEvent(event) {
|
|
|
292
375
|
piiWarnings
|
|
293
376
|
};
|
|
294
377
|
}
|
|
295
|
-
var REDACTED, SENSITIVE_HEADERS, PII_PATTERNS, SENSITIVE_BODY_KEYS;
|
|
378
|
+
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;
|
|
296
379
|
var init_redaction = __esm({
|
|
297
380
|
"lib/module/debug/redaction.js"() {
|
|
298
381
|
"use strict";
|
|
299
382
|
REDACTED = "[REDACTED]";
|
|
383
|
+
MAX_SCAN_INPUT_CHARS = 16 * 1024;
|
|
384
|
+
SCAN_TIME_BUDGET_MS = 10;
|
|
385
|
+
MAX_PII_WARNINGS = 20;
|
|
386
|
+
MAX_STRING_SCRUB_CHARS = 64 * 1024;
|
|
300
387
|
SENSITIVE_HEADERS = /* @__PURE__ */ new Set(["authorization", "cookie", "set-cookie", "x-api-key", "x-auth-token", "proxy-authorization"]);
|
|
301
388
|
PII_PATTERNS = [{
|
|
302
389
|
name: "email",
|
|
303
|
-
pattern: /[
|
|
390
|
+
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
|
|
304
391
|
}, {
|
|
305
392
|
name: "phone",
|
|
306
|
-
pattern:
|
|
393
|
+
pattern: /\+?\d{1,3}[-.\s]?\(?\d{2,4}\)?[-.\s]?\d{3,4}[-.\s]?\d{3,4}/g
|
|
307
394
|
}, {
|
|
308
395
|
name: "ssn",
|
|
309
396
|
pattern: /\b\d{3}-\d{2}-\d{4}\b/g
|
|
310
397
|
}, {
|
|
311
398
|
name: "credit_card",
|
|
312
399
|
pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b/g
|
|
400
|
+
}, {
|
|
401
|
+
name: "iban",
|
|
402
|
+
pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g
|
|
403
|
+
}, {
|
|
404
|
+
name: "jwt",
|
|
405
|
+
pattern: /\beyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\b/g
|
|
313
406
|
}, {
|
|
314
407
|
name: "ip_address",
|
|
315
408
|
pattern: /\b(?:\d{1,3}\.){3}\d{1,3}\b/g
|
|
316
409
|
}];
|
|
317
|
-
|
|
410
|
+
VALUE_SCRUB_PATTERNS = [{
|
|
411
|
+
name: "jwt",
|
|
412
|
+
pattern: /eyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}/g
|
|
413
|
+
}, {
|
|
414
|
+
name: "email",
|
|
415
|
+
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
|
|
416
|
+
}, {
|
|
417
|
+
name: "iban",
|
|
418
|
+
pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g
|
|
419
|
+
}, {
|
|
420
|
+
name: "credit_card",
|
|
421
|
+
pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{2,7}\b/g,
|
|
422
|
+
luhn: true
|
|
423
|
+
}];
|
|
424
|
+
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"]);
|
|
425
|
+
NORMALIZED_SENSITIVE_KEYS = new Set(Array.from(SENSITIVE_BODY_KEYS, _normalizeKey));
|
|
318
426
|
}
|
|
319
427
|
});
|
|
320
428
|
|
|
@@ -492,7 +600,7 @@ var SDK_VERSION;
|
|
|
492
600
|
var init_version = __esm({
|
|
493
601
|
"lib/module/core/constants/version.js"() {
|
|
494
602
|
"use strict";
|
|
495
|
-
SDK_VERSION = "1.10.
|
|
603
|
+
SDK_VERSION = "1.10.5";
|
|
496
604
|
}
|
|
497
605
|
});
|
|
498
606
|
|
|
@@ -1236,12 +1344,22 @@ var init_AutoScreenDetector = __esm({
|
|
|
1236
1344
|
_manualScreen = null;
|
|
1237
1345
|
_manualScreenTs = 0;
|
|
1238
1346
|
_autoScreen = null;
|
|
1347
|
+
/** `name#key` of the last auto-detected screen VISIT — see _extractActiveVisit. */
|
|
1348
|
+
_autoVisitSig = null;
|
|
1239
1349
|
_navigationRef = null;
|
|
1240
1350
|
_navListenerRemover = null;
|
|
1241
1351
|
_navListenerWired = false;
|
|
1242
1352
|
_heuristicTimer = null;
|
|
1243
1353
|
_started = false;
|
|
1244
1354
|
_lastEmittedScreen = null;
|
|
1355
|
+
_lastEmittedTs = 0;
|
|
1356
|
+
/**
|
|
1357
|
+
* Cross-source emit dedup window — see _emitScreenChange. Long enough to absorb the manual
|
|
1358
|
+
* beacon and the navRef listener both reporting the SAME transition (they land within the
|
|
1359
|
+
* 30ms nav debounce plus a render), short enough that a genuine re-visit of the same route
|
|
1360
|
+
* a moment later is a new screen view rather than silence.
|
|
1361
|
+
*/
|
|
1362
|
+
static EMIT_DEDUP_WINDOW_MS = 800;
|
|
1245
1363
|
_navDebounceTimer = null;
|
|
1246
1364
|
/** Whether the React Navigation exports were actually replaced — see _autoHookReactNavigation. */
|
|
1247
1365
|
_autoHookInstalled = false;
|
|
@@ -1293,6 +1411,7 @@ var init_AutoScreenDetector = __esm({
|
|
|
1293
1411
|
if (this.isManualScreenActive()) return;
|
|
1294
1412
|
if (name !== this._autoScreen) {
|
|
1295
1413
|
this._autoScreen = name;
|
|
1414
|
+
this._autoVisitSig = name;
|
|
1296
1415
|
this._emitScreenChange(name, "heuristic");
|
|
1297
1416
|
}
|
|
1298
1417
|
} catch {
|
|
@@ -1343,10 +1462,11 @@ var init_AutoScreenDetector = __esm({
|
|
|
1343
1462
|
try {
|
|
1344
1463
|
const state = typeof container.getRootState === "function" ? container.getRootState() : null;
|
|
1345
1464
|
if (state) {
|
|
1346
|
-
const
|
|
1347
|
-
if (
|
|
1348
|
-
this._autoScreen =
|
|
1349
|
-
this.
|
|
1465
|
+
const visit = this._extractActiveVisit(state);
|
|
1466
|
+
if (visit && this._visitSig(visit) !== this._autoVisitSig) {
|
|
1467
|
+
this._autoScreen = visit.name;
|
|
1468
|
+
this._autoVisitSig = this._visitSig(visit);
|
|
1469
|
+
this._emitScreenChange(visit.name, "navRef");
|
|
1350
1470
|
}
|
|
1351
1471
|
}
|
|
1352
1472
|
} catch {
|
|
@@ -1360,10 +1480,11 @@ var init_AutoScreenDetector = __esm({
|
|
|
1360
1480
|
if (typeof container.getRootState === "function") {
|
|
1361
1481
|
const state = container.getRootState();
|
|
1362
1482
|
if (state) {
|
|
1363
|
-
const
|
|
1364
|
-
if (
|
|
1365
|
-
this._autoScreen =
|
|
1366
|
-
this.
|
|
1483
|
+
const visit = this._extractActiveVisit(state);
|
|
1484
|
+
if (visit) {
|
|
1485
|
+
this._autoScreen = visit.name;
|
|
1486
|
+
this._autoVisitSig = this._visitSig(visit);
|
|
1487
|
+
this._emitScreenChange(visit.name, "navRef");
|
|
1367
1488
|
}
|
|
1368
1489
|
}
|
|
1369
1490
|
}
|
|
@@ -1389,10 +1510,11 @@ var init_AutoScreenDetector = __esm({
|
|
|
1389
1510
|
if (navContainer) {
|
|
1390
1511
|
const state = typeof navContainer.getRootState === "function" ? navContainer.getRootState() : null;
|
|
1391
1512
|
if (state) {
|
|
1392
|
-
const
|
|
1393
|
-
if (
|
|
1394
|
-
this._autoScreen =
|
|
1395
|
-
this.
|
|
1513
|
+
const visit = this._extractActiveVisit(state);
|
|
1514
|
+
if (visit && this._visitSig(visit) !== this._autoVisitSig) {
|
|
1515
|
+
this._autoScreen = visit.name;
|
|
1516
|
+
this._autoVisitSig = this._visitSig(visit);
|
|
1517
|
+
this._emitScreenChange(visit.name, "heuristic");
|
|
1396
1518
|
}
|
|
1397
1519
|
}
|
|
1398
1520
|
}
|
|
@@ -1424,19 +1546,43 @@ var init_AutoScreenDetector = __esm({
|
|
|
1424
1546
|
* Handles nested navigators by walking to the deepest active route.
|
|
1425
1547
|
*/
|
|
1426
1548
|
_extractActiveRoute(state) {
|
|
1549
|
+
return this._extractActiveVisit(state)?.name ?? null;
|
|
1550
|
+
}
|
|
1551
|
+
/**
|
|
1552
|
+
* Extract the active route's name AND its React Navigation route `key`.
|
|
1553
|
+
*
|
|
1554
|
+
* The key is what makes re-VISITS detectable. Comparing names alone collapses two
|
|
1555
|
+
* different visits to the same route into one screen view: leave Details, open Details
|
|
1556
|
+
* again, and `name === _autoScreen` swallowed the second visit entirely (QA: "opened the
|
|
1557
|
+
* same route again and no screen event was recorded"). React Navigation mints a fresh
|
|
1558
|
+
* `key` for every pushed route instance, so a re-push of the same name is a NEW key —
|
|
1559
|
+
* name+key comparison records each visit while a mere re-render of the same instance
|
|
1560
|
+
* (same key) still emits nothing. States without keys degrade to name-only, i.e. the
|
|
1561
|
+
* old behaviour, never worse.
|
|
1562
|
+
*/
|
|
1563
|
+
_extractActiveVisit(state) {
|
|
1427
1564
|
try {
|
|
1428
1565
|
if (!state?.routes || typeof state.index !== "number") return null;
|
|
1429
1566
|
const activeRoute = state.routes[state.index];
|
|
1430
1567
|
if (!activeRoute) return null;
|
|
1431
1568
|
if (activeRoute.state?.routes && typeof activeRoute.state.index === "number") {
|
|
1432
|
-
const nested = this.
|
|
1569
|
+
const nested = this._extractActiveVisit(activeRoute.state);
|
|
1433
1570
|
if (nested) return nested;
|
|
1434
1571
|
}
|
|
1435
|
-
|
|
1572
|
+
if (!activeRoute.name) return null;
|
|
1573
|
+
const rawKey = activeRoute.key;
|
|
1574
|
+
return {
|
|
1575
|
+
name: activeRoute.name,
|
|
1576
|
+
key: typeof rawKey === "string" ? rawKey : null
|
|
1577
|
+
};
|
|
1436
1578
|
} catch {
|
|
1437
1579
|
return null;
|
|
1438
1580
|
}
|
|
1439
1581
|
}
|
|
1582
|
+
/** `name#key` signature of one screen VISIT — what the auto paths dedup on. */
|
|
1583
|
+
_visitSig(visit) {
|
|
1584
|
+
return visit.key ? `${visit.name}#${visit.key}` : visit.name;
|
|
1585
|
+
}
|
|
1440
1586
|
// ─── Lifecycle ──────────────────────────────────────────────────────
|
|
1441
1587
|
/** Start auto-detection (idempotent) */
|
|
1442
1588
|
start() {
|
|
@@ -1601,8 +1747,10 @@ var init_AutoScreenDetector = __esm({
|
|
|
1601
1747
|
// ─── Internal ───────────────────────────────────────────────────────
|
|
1602
1748
|
_emitScreenChange(name, source) {
|
|
1603
1749
|
try {
|
|
1604
|
-
|
|
1750
|
+
const emitNow = Date.now();
|
|
1751
|
+
if (name === this._lastEmittedScreen && emitNow - this._lastEmittedTs < _AutoScreenDetector.EMIT_DEDUP_WINDOW_MS) return;
|
|
1605
1752
|
this._lastEmittedScreen = name;
|
|
1753
|
+
this._lastEmittedTs = emitNow;
|
|
1606
1754
|
for (const cb of this._listeners) {
|
|
1607
1755
|
try {
|
|
1608
1756
|
cb(name, source);
|
|
@@ -3487,6 +3635,21 @@ var init_SessionManager = __esm({
|
|
|
3487
3635
|
* differently across devices and pushes markers ~10% off vertically).
|
|
3488
3636
|
*/
|
|
3489
3637
|
_lastNativeViewportJsUnits = null;
|
|
3638
|
+
/**
|
|
3639
|
+
* Exact-duplicate gesture suppression (QA: one physical tap recorded 2–3×).
|
|
3640
|
+
*
|
|
3641
|
+
* Measured in production data: the native tracker re-emitted the SAME tap — identical
|
|
3642
|
+
* gestureType and identical coordinates to the SUB-PIXEL (e.g. x=466.962890625) — at
|
|
3643
|
+
* 160–240ms gaps, sometimes twice. A human re-tap cannot reproduce a sub-pixel float
|
|
3644
|
+
* exactly, so exact coordinate equality within the window is a safe discriminator: real
|
|
3645
|
+
* double-taps land on at least slightly different pixels and pass through untouched.
|
|
3646
|
+
* The pipeline's own 100ms dedup was too narrow for these; this window covers what was
|
|
3647
|
+
* actually observed with margin. Sits at the ONE entry point every gesture source funnels
|
|
3648
|
+
* through, so recording and analytics lanes are protected equally.
|
|
3649
|
+
*/
|
|
3650
|
+
_lastGestureSig = null;
|
|
3651
|
+
_lastGestureTs = 0;
|
|
3652
|
+
static GESTURE_DEDUP_WINDOW_MS = 400;
|
|
3490
3653
|
/** Memoized native file-outbox frame adapter (gated by the backend transport). */
|
|
3491
3654
|
_outboxFrameCapture = null;
|
|
3492
3655
|
constructor(debugTransport, nativeCapture2, managerConfig) {
|
|
@@ -4135,6 +4298,14 @@ var init_SessionManager = __esm({
|
|
|
4135
4298
|
* Emits a USER_ACTION event with gesture-specific subtype and payload.
|
|
4136
4299
|
*/
|
|
4137
4300
|
onGestureDetected(gestureType, details) {
|
|
4301
|
+
const dedupSig = `${gestureType}|${String(details?.x)}|${String(details?.y)}|${String(details?.endX)}|${String(details?.endY)}`;
|
|
4302
|
+
const nowTs = Date.now();
|
|
4303
|
+
if (dedupSig === this._lastGestureSig && nowTs - this._lastGestureTs <= _SessionManager.GESTURE_DEDUP_WINDOW_MS) {
|
|
4304
|
+
this._lastGestureTs = nowTs;
|
|
4305
|
+
return;
|
|
4306
|
+
}
|
|
4307
|
+
this._lastGestureSig = dedupSig;
|
|
4308
|
+
this._lastGestureTs = nowTs;
|
|
4138
4309
|
const payload = {
|
|
4139
4310
|
gestureType,
|
|
4140
4311
|
x: details?.x,
|
|
@@ -9499,6 +9670,35 @@ var SHAPE = {
|
|
|
9499
9670
|
})
|
|
9500
9671
|
}
|
|
9501
9672
|
},
|
|
9673
|
+
// SB-10: the public, documented top-level privacy config. Previously only the
|
|
9674
|
+
// nested replay privacy took effect; this is validated here and mapped onto the
|
|
9675
|
+
// effective replay privacy policy in the bootstrapper so it actually masks.
|
|
9676
|
+
privacy: {
|
|
9677
|
+
kind: "obj",
|
|
9678
|
+
opt: true,
|
|
9679
|
+
shape: {
|
|
9680
|
+
maskTextInputs: {
|
|
9681
|
+
kind: "bool",
|
|
9682
|
+
opt: true
|
|
9683
|
+
},
|
|
9684
|
+
maskImages: {
|
|
9685
|
+
kind: "bool",
|
|
9686
|
+
opt: true
|
|
9687
|
+
},
|
|
9688
|
+
redactAuth: {
|
|
9689
|
+
kind: "bool",
|
|
9690
|
+
opt: true
|
|
9691
|
+
},
|
|
9692
|
+
redactCookies: {
|
|
9693
|
+
kind: "bool",
|
|
9694
|
+
opt: true
|
|
9695
|
+
},
|
|
9696
|
+
redactBodies: {
|
|
9697
|
+
kind: "bool",
|
|
9698
|
+
opt: true
|
|
9699
|
+
}
|
|
9700
|
+
}
|
|
9701
|
+
},
|
|
9502
9702
|
captureInteractionHeatmap: bool(true),
|
|
9503
9703
|
// Opt-in: intercept console.* and ship the lines to the Diagnose → Logs lane in SaaS
|
|
9504
9704
|
// mode. OFF by default — console output can carry PII/secrets and adds ingest volume,
|
|
@@ -12296,6 +12496,13 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12296
12496
|
// the flush timer retries, so nothing is lost to a start/child race. The durable native
|
|
12297
12497
|
// outbox path has its own ordering; this guards only the JS in-memory fallback.
|
|
12298
12498
|
_startedSessionIds = /* @__PURE__ */ new Set();
|
|
12499
|
+
// §11 offline-start recovery: INGESTION_START payloads whose POST failed (e.g. the app
|
|
12500
|
+
// launched with no connectivity). Without this, a failed START was logged and forgotten —
|
|
12501
|
+
// the row-ready gate never opened, every child lane re-buffered forever, and the session
|
|
12502
|
+
// stayed stuck until an app restart even after the network returned. Each flush tick
|
|
12503
|
+
// re-attempts these until acked (network errors keep retrying; permanent 4xx gives up).
|
|
12504
|
+
_pendingStartPayloads = /* @__PURE__ */ new Map();
|
|
12505
|
+
_startRetryInFlight = false;
|
|
12299
12506
|
pendingFrames = [];
|
|
12300
12507
|
pendingEvents = [];
|
|
12301
12508
|
pendingNetworkRequests = [];
|
|
@@ -12419,10 +12626,16 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12419
12626
|
}
|
|
12420
12627
|
};
|
|
12421
12628
|
__DEV__ && logger.debug(`[BackendSessionAdapter] POST session start: ${session.sessionId}`);
|
|
12422
|
-
return this._post(startEndpoint, payload)
|
|
12423
|
-
|
|
12424
|
-
|
|
12425
|
-
|
|
12629
|
+
return this._post(startEndpoint, payload).then(() => {
|
|
12630
|
+
this._startedSessionIds.add(session.sessionId);
|
|
12631
|
+
this._pendingStartPayloads.delete(session.sessionId);
|
|
12632
|
+
__DEV__ && logger.info(`[ScaleBun Replay] backend session upload success`);
|
|
12633
|
+
}, (err) => {
|
|
12634
|
+
if (!_BackendSessionAdapter._isPermanentHttpError(err)) {
|
|
12635
|
+
this._pendingStartPayloads.set(session.sessionId, payload);
|
|
12636
|
+
}
|
|
12637
|
+
logger.info(`[ScaleBun Replay] backend session upload failure`);
|
|
12638
|
+
});
|
|
12426
12639
|
}).catch(() => logger.info(`[ScaleBun Replay] backend session upload failure`));
|
|
12427
12640
|
}
|
|
12428
12641
|
sendSessionEnd(session) {
|
|
@@ -12495,8 +12708,16 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12495
12708
|
environment: m?.buildType
|
|
12496
12709
|
}
|
|
12497
12710
|
};
|
|
12498
|
-
|
|
12711
|
+
try {
|
|
12712
|
+
await this._post(startEndpoint, payload);
|
|
12713
|
+
} catch (err) {
|
|
12714
|
+
if (!_BackendSessionAdapter._isPermanentHttpError(err)) {
|
|
12715
|
+
this._pendingStartPayloads.set(session.sessionId, payload);
|
|
12716
|
+
}
|
|
12717
|
+
throw err;
|
|
12718
|
+
}
|
|
12499
12719
|
this._startedSessionIds.add(session.sessionId);
|
|
12720
|
+
this._pendingStartPayloads.delete(session.sessionId);
|
|
12500
12721
|
this._flushAnalyticsEvents().catch(() => {
|
|
12501
12722
|
});
|
|
12502
12723
|
__DEV__ && logger.info(`[ScaleBun Analytics] session start upload success: ${session.sessionId}`);
|
|
@@ -12504,6 +12725,40 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12504
12725
|
__DEV__ && logger.info(`[ScaleBun Analytics] session start upload failure`);
|
|
12505
12726
|
}
|
|
12506
12727
|
}
|
|
12728
|
+
/**
|
|
12729
|
+
* Re-attempt any INGESTION_START whose POST failed (offline app launch). Runs on every
|
|
12730
|
+
* flush tick of BOTH lanes — cheap no-op when the map is empty, single-flight guarded.
|
|
12731
|
+
* On ack: opens the row-ready gate and drains whichever lane the id belongs to, which is
|
|
12732
|
+
* exactly what un-sticks a replay that started offline once connectivity returns.
|
|
12733
|
+
*/
|
|
12734
|
+
_retryPendingStarts() {
|
|
12735
|
+
if (this.destroyed || this._startRetryInFlight || this._pendingStartPayloads.size === 0) return;
|
|
12736
|
+
const entry = this._pendingStartPayloads.entries().next().value;
|
|
12737
|
+
if (!entry) return;
|
|
12738
|
+
const [sessionId, payload] = entry;
|
|
12739
|
+
const stillRelevant = sessionId === this.currentSessionId || sessionId === this._analyticsSessionId;
|
|
12740
|
+
if (!stillRelevant) {
|
|
12741
|
+
this._pendingStartPayloads.delete(sessionId);
|
|
12742
|
+
return;
|
|
12743
|
+
}
|
|
12744
|
+
this._startRetryInFlight = true;
|
|
12745
|
+
const startEndpoint = this.config.clientKey ? ENDPOINTS.INGESTION_START : "/replay/sessions";
|
|
12746
|
+
this._post(startEndpoint, payload).then(() => {
|
|
12747
|
+
this._startedSessionIds.add(sessionId);
|
|
12748
|
+
this._pendingStartPayloads.delete(sessionId);
|
|
12749
|
+
__DEV__ && logger.info(`[ScaleBun Replay] deferred session start delivered: ${sessionId}`);
|
|
12750
|
+
if (sessionId === this._analyticsSessionId) {
|
|
12751
|
+
this._flushAnalyticsEvents().catch(() => {
|
|
12752
|
+
});
|
|
12753
|
+
}
|
|
12754
|
+
}).catch((err) => {
|
|
12755
|
+
if (_BackendSessionAdapter._isPermanentHttpError(err)) {
|
|
12756
|
+
this._pendingStartPayloads.delete(sessionId);
|
|
12757
|
+
}
|
|
12758
|
+
}).finally(() => {
|
|
12759
|
+
this._startRetryInFlight = false;
|
|
12760
|
+
});
|
|
12761
|
+
}
|
|
12507
12762
|
/**
|
|
12508
12763
|
* Enqueue a user track() event. Buffers (bounded, drop-oldest) when the
|
|
12509
12764
|
* analytics session is not yet open; flushes at >=20 once it is.
|
|
@@ -12618,6 +12873,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12618
12873
|
_startAnalyticsFlushTimer() {
|
|
12619
12874
|
this._stopAnalyticsFlushTimer();
|
|
12620
12875
|
this.analyticsFlushTimer = setInterval(() => {
|
|
12876
|
+
this._retryPendingStarts();
|
|
12621
12877
|
this._flushAnalyticsEvents().catch(() => {
|
|
12622
12878
|
});
|
|
12623
12879
|
}, this.config.flushIntervalMs);
|
|
@@ -12844,6 +13100,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12844
13100
|
this._analyticsSessionId = null;
|
|
12845
13101
|
this._pendingFinalizeId = null;
|
|
12846
13102
|
this._startedSessionIds.clear();
|
|
13103
|
+
this._pendingStartPayloads.clear();
|
|
12847
13104
|
}
|
|
12848
13105
|
// ─── Internal: Flush ────────────────────────────────────────────────
|
|
12849
13106
|
/** Wire metadata for a frame — real format/sizeBytes from native (no hardcoded literals). */
|
|
@@ -13362,6 +13619,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
13362
13619
|
_startFlushTimer() {
|
|
13363
13620
|
this._stopFlushTimer();
|
|
13364
13621
|
this.flushTimer = setInterval(() => {
|
|
13622
|
+
this._retryPendingStarts();
|
|
13365
13623
|
this._flushFrames().catch(() => {
|
|
13366
13624
|
});
|
|
13367
13625
|
this._flushEvents().catch(() => {
|
|
@@ -13692,6 +13950,18 @@ var SDKBootstrapper = class {
|
|
|
13692
13950
|
if (features.replay !== false) {
|
|
13693
13951
|
try {
|
|
13694
13952
|
__DEV__ && logger.debug("[Bootstrap] Initializing unified SessionManager");
|
|
13953
|
+
const pub = this.config.privacy ?? {};
|
|
13954
|
+
const sessionReplay = {
|
|
13955
|
+
...this.config.replay ?? {}
|
|
13956
|
+
};
|
|
13957
|
+
if (typeof pub.maskTextInputs === "boolean" || typeof pub.maskImages === "boolean") {
|
|
13958
|
+
sessionReplay.privacyPolicy = {
|
|
13959
|
+
redactTextInputs: pub.maskTextInputs ?? true,
|
|
13960
|
+
redactImages: pub.maskImages ?? false,
|
|
13961
|
+
blockTestIds: [],
|
|
13962
|
+
captureExclusions: []
|
|
13963
|
+
};
|
|
13964
|
+
}
|
|
13695
13965
|
const sessionManager = SessionManager.getInstance(
|
|
13696
13966
|
null,
|
|
13697
13967
|
// No desktop transport initially
|
|
@@ -13702,9 +13972,7 @@ var SDKBootstrapper = class {
|
|
|
13702
13972
|
// Also flow the Feature #4 heatmap flag so tap/gesture coords
|
|
13703
13973
|
// route to the analytics lane even when no recording is active.
|
|
13704
13974
|
{
|
|
13705
|
-
|
|
13706
|
-
sessionReplay: this.config.replay
|
|
13707
|
-
} : {},
|
|
13975
|
+
sessionReplay,
|
|
13708
13976
|
captureInteractionHeatmap: this.config.captureInteractionHeatmap === true
|
|
13709
13977
|
}
|
|
13710
13978
|
);
|
|
@@ -16660,16 +16928,90 @@ var ScaleBunFacade = class {
|
|
|
16660
16928
|
});
|
|
16661
16929
|
});
|
|
16662
16930
|
}
|
|
16663
|
-
/**
|
|
16664
|
-
|
|
16931
|
+
/**
|
|
16932
|
+
* Clear user identity.
|
|
16933
|
+
*
|
|
16934
|
+
* SB-11: pass `{ purgeLocal: true }` on logout / consent withdrawal to also
|
|
16935
|
+
* erase all locally-stored SDK data (see {@link eraseLocalData}). Without it,
|
|
16936
|
+
* behaviour is unchanged (identity-only clear).
|
|
16937
|
+
*/
|
|
16938
|
+
clearUser(options) {
|
|
16665
16939
|
return noThrow(() => {
|
|
16666
16940
|
this._identifiedUserId = null;
|
|
16667
16941
|
this._pendingIdentity = null;
|
|
16668
16942
|
if (!this.initialized) return;
|
|
16669
16943
|
this._eventTracker?.clearIdentity();
|
|
16670
16944
|
this.track("$clear_user", {});
|
|
16945
|
+
if (options?.purgeLocal) void this.eraseLocalData();
|
|
16671
16946
|
});
|
|
16672
16947
|
}
|
|
16948
|
+
/**
|
|
16949
|
+
* SB-11: erase all locally-stored SDK data from the device — the durable event
|
|
16950
|
+
* queue, the pre-init buffer, and the first-party KV store (cached install /
|
|
16951
|
+
* anonymous / session IDs, plus any queued payloads including SB-26 disk data).
|
|
16952
|
+
*
|
|
16953
|
+
* Order matters: capture is stopped FIRST so nothing is written back in behind
|
|
16954
|
+
* the delete. Best-effort and never throws.
|
|
16955
|
+
*
|
|
16956
|
+
* Note: native replay frames written to disk on iOS are addressed separately
|
|
16957
|
+
* (SB-15); this covers every store reachable from JS today.
|
|
16958
|
+
*/
|
|
16959
|
+
async eraseLocalData() {
|
|
16960
|
+
try {
|
|
16961
|
+
try {
|
|
16962
|
+
SessionManager.getExistingInstance()?.endSession("ended");
|
|
16963
|
+
} catch {
|
|
16964
|
+
}
|
|
16965
|
+
try {
|
|
16966
|
+
this._getQueue().clear();
|
|
16967
|
+
} catch {
|
|
16968
|
+
}
|
|
16969
|
+
try {
|
|
16970
|
+
this._preInitBuffer.clear();
|
|
16971
|
+
} catch {
|
|
16972
|
+
}
|
|
16973
|
+
try {
|
|
16974
|
+
const store = createStorageBackend();
|
|
16975
|
+
for (const key of store.getAllKeys()) {
|
|
16976
|
+
store.delete(key);
|
|
16977
|
+
}
|
|
16978
|
+
} catch {
|
|
16979
|
+
}
|
|
16980
|
+
} catch {
|
|
16981
|
+
}
|
|
16982
|
+
}
|
|
16983
|
+
/**
|
|
16984
|
+
* SB-11: record the user's data-collection consent. When `enabled` is false,
|
|
16985
|
+
* capture is stopped immediately; pass `{ purgeLocal: true }` to also erase
|
|
16986
|
+
* everything already stored locally. Never throws.
|
|
16987
|
+
*/
|
|
16988
|
+
setConsent(enabled, options) {
|
|
16989
|
+
noThrow(() => {
|
|
16990
|
+
if (enabled) return;
|
|
16991
|
+
try {
|
|
16992
|
+
SessionManager.getExistingInstance()?.endSession("ended");
|
|
16993
|
+
} catch {
|
|
16994
|
+
}
|
|
16995
|
+
if (options?.purgeLocal) void this.eraseLocalData();
|
|
16996
|
+
});
|
|
16997
|
+
}
|
|
16998
|
+
/**
|
|
16999
|
+
* SB-10: return the effective privacy policy actually in force, resolving the
|
|
17000
|
+
* public config against the SDK's safe defaults. Lets callers and tests assert
|
|
17001
|
+
* what is active rather than guessing from the (previously dead) config object.
|
|
17002
|
+
*/
|
|
17003
|
+
getEffectivePrivacyPolicy() {
|
|
17004
|
+
const p = this._privacyConfig ?? {};
|
|
17005
|
+
return {
|
|
17006
|
+
// Real default is true (matches the replay capture default) — the old
|
|
17007
|
+
// doc comment claiming "false" was both wrong and less safe.
|
|
17008
|
+
maskTextInputs: p.maskTextInputs ?? true,
|
|
17009
|
+
maskImages: p.maskImages ?? false,
|
|
17010
|
+
redactAuth: p.redactAuth ?? true,
|
|
17011
|
+
redactCookies: p.redactCookies ?? true,
|
|
17012
|
+
redactBodies: p.redactBodies ?? false
|
|
17013
|
+
};
|
|
17014
|
+
}
|
|
16673
17015
|
/**
|
|
16674
17016
|
* Submit in-app rating (1-5 stars).
|
|
16675
17017
|
* Attaches to current session when available; otherwise sends standalone.
|
|
@@ -29750,7 +30092,7 @@ function ScaleBunDebugRoot({
|
|
|
29750
30092
|
}
|
|
29751
30093
|
} catch {
|
|
29752
30094
|
}
|
|
29753
|
-
},
|
|
30095
|
+
}, 600);
|
|
29754
30096
|
}
|
|
29755
30097
|
touchStartRef.current = null;
|
|
29756
30098
|
} catch {
|