@scalebun/react-native 1.10.3 → 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 +417 -57
- package/dist/scalebun.slim.js +414 -62
- package/lib/commonjs/bootstrap/SDKBootstrapper.js +31 -5
- 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 +30 -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 +32 -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
|
-
}
|
|
227
|
-
function scanObjectForPII(obj, basePath = "", maxDepth = 10) {
|
|
228
|
-
const warnings = [];
|
|
229
|
-
try {
|
|
230
|
-
_scanObject(obj, basePath, 0, maxDepth, warnings);
|
|
231
|
-
} catch {
|
|
232
|
-
}
|
|
233
|
-
return warnings;
|
|
234
311
|
}
|
|
235
|
-
function
|
|
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,
|
|
@@ -5690,6 +5861,14 @@ var init_NativeScaleBunCrash = __esm({
|
|
|
5690
5861
|
});
|
|
5691
5862
|
|
|
5692
5863
|
// lib/module/features/crash/nativeCrashBridge.js
|
|
5864
|
+
var nativeCrashBridge_exports = {};
|
|
5865
|
+
__export(nativeCrashBridge_exports, {
|
|
5866
|
+
drainNativeCrash: () => drainNativeCrash,
|
|
5867
|
+
installNativeCrashHandler: () => installNativeCrashHandler,
|
|
5868
|
+
persistFatalJsCrash: () => persistFatalJsCrash,
|
|
5869
|
+
setNativeActiveSession: () => setNativeActiveSession,
|
|
5870
|
+
triggerNativeCrash: () => triggerNativeCrash
|
|
5871
|
+
});
|
|
5693
5872
|
function getCrashModule() {
|
|
5694
5873
|
if (_crashModule) return _crashModule.mod;
|
|
5695
5874
|
try {
|
|
@@ -9491,6 +9670,35 @@ var SHAPE = {
|
|
|
9491
9670
|
})
|
|
9492
9671
|
}
|
|
9493
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
|
+
},
|
|
9494
9702
|
captureInteractionHeatmap: bool(true),
|
|
9495
9703
|
// Opt-in: intercept console.* and ship the lines to the Diagnose → Logs lane in SaaS
|
|
9496
9704
|
// mode. OFF by default — console output can carry PII/secrets and adds ingest volume,
|
|
@@ -12288,6 +12496,13 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12288
12496
|
// the flush timer retries, so nothing is lost to a start/child race. The durable native
|
|
12289
12497
|
// outbox path has its own ordering; this guards only the JS in-memory fallback.
|
|
12290
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;
|
|
12291
12506
|
pendingFrames = [];
|
|
12292
12507
|
pendingEvents = [];
|
|
12293
12508
|
pendingNetworkRequests = [];
|
|
@@ -12411,10 +12626,16 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12411
12626
|
}
|
|
12412
12627
|
};
|
|
12413
12628
|
__DEV__ && logger.debug(`[BackendSessionAdapter] POST session start: ${session.sessionId}`);
|
|
12414
|
-
return this._post(startEndpoint, payload)
|
|
12415
|
-
|
|
12416
|
-
|
|
12417
|
-
|
|
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
|
+
});
|
|
12418
12639
|
}).catch(() => logger.info(`[ScaleBun Replay] backend session upload failure`));
|
|
12419
12640
|
}
|
|
12420
12641
|
sendSessionEnd(session) {
|
|
@@ -12487,8 +12708,16 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12487
12708
|
environment: m?.buildType
|
|
12488
12709
|
}
|
|
12489
12710
|
};
|
|
12490
|
-
|
|
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
|
+
}
|
|
12491
12719
|
this._startedSessionIds.add(session.sessionId);
|
|
12720
|
+
this._pendingStartPayloads.delete(session.sessionId);
|
|
12492
12721
|
this._flushAnalyticsEvents().catch(() => {
|
|
12493
12722
|
});
|
|
12494
12723
|
__DEV__ && logger.info(`[ScaleBun Analytics] session start upload success: ${session.sessionId}`);
|
|
@@ -12496,6 +12725,40 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12496
12725
|
__DEV__ && logger.info(`[ScaleBun Analytics] session start upload failure`);
|
|
12497
12726
|
}
|
|
12498
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
|
+
}
|
|
12499
12762
|
/**
|
|
12500
12763
|
* Enqueue a user track() event. Buffers (bounded, drop-oldest) when the
|
|
12501
12764
|
* analytics session is not yet open; flushes at >=20 once it is.
|
|
@@ -12610,6 +12873,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12610
12873
|
_startAnalyticsFlushTimer() {
|
|
12611
12874
|
this._stopAnalyticsFlushTimer();
|
|
12612
12875
|
this.analyticsFlushTimer = setInterval(() => {
|
|
12876
|
+
this._retryPendingStarts();
|
|
12613
12877
|
this._flushAnalyticsEvents().catch(() => {
|
|
12614
12878
|
});
|
|
12615
12879
|
}, this.config.flushIntervalMs);
|
|
@@ -12836,6 +13100,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
12836
13100
|
this._analyticsSessionId = null;
|
|
12837
13101
|
this._pendingFinalizeId = null;
|
|
12838
13102
|
this._startedSessionIds.clear();
|
|
13103
|
+
this._pendingStartPayloads.clear();
|
|
12839
13104
|
}
|
|
12840
13105
|
// ─── Internal: Flush ────────────────────────────────────────────────
|
|
12841
13106
|
/** Wire metadata for a frame — real format/sizeBytes from native (no hardcoded literals). */
|
|
@@ -13354,6 +13619,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
|
|
|
13354
13619
|
_startFlushTimer() {
|
|
13355
13620
|
this._stopFlushTimer();
|
|
13356
13621
|
this.flushTimer = setInterval(() => {
|
|
13622
|
+
this._retryPendingStarts();
|
|
13357
13623
|
this._flushFrames().catch(() => {
|
|
13358
13624
|
});
|
|
13359
13625
|
this._flushEvents().catch(() => {
|
|
@@ -13684,6 +13950,18 @@ var SDKBootstrapper = class {
|
|
|
13684
13950
|
if (features.replay !== false) {
|
|
13685
13951
|
try {
|
|
13686
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
|
+
}
|
|
13687
13965
|
const sessionManager = SessionManager.getInstance(
|
|
13688
13966
|
null,
|
|
13689
13967
|
// No desktop transport initially
|
|
@@ -13694,9 +13972,7 @@ var SDKBootstrapper = class {
|
|
|
13694
13972
|
// Also flow the Feature #4 heatmap flag so tap/gesture coords
|
|
13695
13973
|
// route to the analytics lane even when no recording is active.
|
|
13696
13974
|
{
|
|
13697
|
-
|
|
13698
|
-
sessionReplay: this.config.replay
|
|
13699
|
-
} : {},
|
|
13975
|
+
sessionReplay,
|
|
13700
13976
|
captureInteractionHeatmap: this.config.captureInteractionHeatmap === true
|
|
13701
13977
|
}
|
|
13702
13978
|
);
|
|
@@ -13724,6 +14000,8 @@ var SDKBootstrapper = class {
|
|
|
13724
14000
|
}
|
|
13725
14001
|
});
|
|
13726
14002
|
sessionManager.setBackendTransport(backendAdapter);
|
|
14003
|
+
Promise.resolve().then(() => (init_nativeCrashBridge(), nativeCrashBridge_exports)).then((m) => m.drainNativeCrash()).catch(() => {
|
|
14004
|
+
});
|
|
13727
14005
|
if (this.config.clientKey && this.config.captureConsoleLogs) {
|
|
13728
14006
|
installConsoleIntegration();
|
|
13729
14007
|
}
|
|
@@ -16650,16 +16928,90 @@ var ScaleBunFacade = class {
|
|
|
16650
16928
|
});
|
|
16651
16929
|
});
|
|
16652
16930
|
}
|
|
16653
|
-
/**
|
|
16654
|
-
|
|
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) {
|
|
16655
16939
|
return noThrow(() => {
|
|
16656
16940
|
this._identifiedUserId = null;
|
|
16657
16941
|
this._pendingIdentity = null;
|
|
16658
16942
|
if (!this.initialized) return;
|
|
16659
16943
|
this._eventTracker?.clearIdentity();
|
|
16660
16944
|
this.track("$clear_user", {});
|
|
16945
|
+
if (options?.purgeLocal) void this.eraseLocalData();
|
|
16661
16946
|
});
|
|
16662
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
|
+
}
|
|
16663
17015
|
/**
|
|
16664
17016
|
* Submit in-app rating (1-5 stars).
|
|
16665
17017
|
* Attaches to current session when available; otherwise sends standalone.
|
|
@@ -29740,7 +30092,7 @@ function ScaleBunDebugRoot({
|
|
|
29740
30092
|
}
|
|
29741
30093
|
} catch {
|
|
29742
30094
|
}
|
|
29743
|
-
},
|
|
30095
|
+
}, 600);
|
|
29744
30096
|
}
|
|
29745
30097
|
touchStartRef.current = null;
|
|
29746
30098
|
} catch {
|