@scalebun-release/react-native 2.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +154 -0
- package/android/build.gradle +94 -0
- package/android/consumer-rules.pro +28 -0
- package/android/src/androidTest/java/com/scalebun/rn/ota/ScaleBunOtaVerifierInstrumentedTest.kt +112 -0
- package/android/src/main/AndroidManifest.xml +14 -0
- package/android/src/main/java/com/scalebun/core/crash/CrashStorage.kt +155 -0
- package/android/src/main/java/com/scalebun/core/crash/NativeCrashHandler.kt +93 -0
- package/android/src/main/java/com/scalebun/core/performance/ANRWatchdog.kt +100 -0
- package/android/src/main/java/com/scalebun/core/performance/AppStartCollector.kt +180 -0
- package/android/src/main/java/com/scalebun/core/performance/FrameMetricsCollector.kt +230 -0
- package/android/src/main/java/com/scalebun/core/performance/PerformanceCore.kt +165 -0
- package/android/src/main/java/com/scalebun/profiler/ProfilerModule.kt +398 -0
- package/android/src/main/java/com/scalebun/profiler/ProfilerPackage.kt +24 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/CpuCollector.kt +161 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/IncidentDetector.kt +223 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/MemoryCollector.kt +157 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/RenderCollector.kt +194 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/SamplerScheduler.kt +218 -0
- package/android/src/main/java/com/scalebun/profiler/collectors/ThreadCollector.kt +142 -0
- package/android/src/main/java/com/scalebun/replaysdk/ReplaySdkModule.kt +1117 -0
- package/android/src/main/java/com/scalebun/replaysdk/ReplaySdkPackage.kt +24 -0
- package/android/src/main/java/com/scalebun/replaysdk/capture/CaptureReason.kt +47 -0
- package/android/src/main/java/com/scalebun/replaysdk/capture/FrameCaptureManager.kt +574 -0
- package/android/src/main/java/com/scalebun/replaysdk/capture/FrameCaptureScheduler.kt +187 -0
- package/android/src/main/java/com/scalebun/replaysdk/capture/UiStabilityDetector.kt +214 -0
- package/android/src/main/java/com/scalebun/replaysdk/core/ReplayConfig.kt +144 -0
- package/android/src/main/java/com/scalebun/replaysdk/core/ReplayLogger.kt +31 -0
- package/android/src/main/java/com/scalebun/replaysdk/core/SessionIdGenerator.kt +15 -0
- package/android/src/main/java/com/scalebun/replaysdk/models/ReplayModels.kt +94 -0
- package/android/src/main/java/com/scalebun/replaysdk/outbox/NativeOutbox.kt +574 -0
- package/android/src/main/java/com/scalebun/replaysdk/outbox/OutboxUploader.kt +559 -0
- package/android/src/main/java/com/scalebun/replaysdk/privacy/PrivacyMaskProcessor.kt +126 -0
- package/android/src/main/java/com/scalebun/replaysdk/session/SessionManager.kt +322 -0
- package/android/src/main/java/com/scalebun/replaysdk/storage/ReplayStorage.kt +136 -0
- package/android/src/main/java/com/scalebun/replaysdk/timeline/TimelineCollector.kt +28 -0
- package/android/src/main/java/com/scalebun/replaysdk/tracking/InteractionTracker.kt +470 -0
- package/android/src/main/java/com/scalebun/replaysdk/tracking/ScreenTracker.kt +20 -0
- package/android/src/main/java/com/scalebun/replaysdk/tracking/ScrollContextProbe.kt +188 -0
- package/android/src/main/java/com/scalebun/replaysdk/transport/ReplayTransport.kt +99 -0
- package/android/src/main/java/com/scalebun/replaysdk/voice/VoiceRecorder.kt +121 -0
- package/android/src/main/java/com/scalebun/replaysdk/voice/VoiceTranscriber.kt +170 -0
- package/android/src/main/java/com/scalebun/rn/ScaleBunPackage.kt +113 -0
- package/android/src/main/java/com/scalebun/rn/crash/ScaleBunCrashModule.kt +188 -0
- package/android/src/main/java/com/scalebun/rn/crash/ScaleBunCrashPackage.kt +22 -0
- package/android/src/main/java/com/scalebun/rn/engage/ScaleBunEngageModule.kt +579 -0
- package/android/src/main/java/com/scalebun/rn/engage/ScaleBunEngagePackage.kt +22 -0
- package/android/src/main/java/com/scalebun/rn/engage/ScaleBunNotificationPresenter.kt +110 -0
- package/android/src/main/java/com/scalebun/rn/ota/BsPatch.kt +240 -0
- package/android/src/main/java/com/scalebun/rn/ota/BundleDownloader.kt +195 -0
- package/android/src/main/java/com/scalebun/rn/ota/DeviceIntegrity.kt +81 -0
- package/android/src/main/java/com/scalebun/rn/ota/DownloadFailure.kt +55 -0
- package/android/src/main/java/com/scalebun/rn/ota/OtaProtocol.kt +244 -0
- package/android/src/main/java/com/scalebun/rn/ota/ScaleBunOtaKeyRegistry.kt +100 -0
- package/android/src/main/java/com/scalebun/rn/ota/ScaleBunOtaModule.kt +683 -0
- package/android/src/main/java/com/scalebun/rn/ota/ScaleBunOtaReleaseVerifier.kt +136 -0
- package/android/src/main/java/com/scalebun/rn/ota/SlotManager.kt +578 -0
- package/android/src/main/java/com/scalebun/rn/ota/TlsPinning.kt +118 -0
- package/android/src/main/java/com/scalebun/rn/performance/PerformanceModule.kt +217 -0
- package/android/src/main/java/com/scalebun/rn/referrer/ScaleBunInstallReferrerModule.kt +77 -0
- package/android/src/main/java/com/scalebun/rn/storage/ScaleBunStorageModule.kt +68 -0
- package/android/src/main/java/com/scalebun/storage/KvFileStore.kt +174 -0
- package/android/src/newarch/java/com/scalebun/profiler/ProfilerSpec.kt +12 -0
- package/android/src/newarch/java/com/scalebun/replaysdk/ReplaySdkSpec.kt +12 -0
- package/android/src/newarch/java/com/scalebun/rn/crash/ScaleBunCrashSpec.kt +15 -0
- package/android/src/newarch/java/com/scalebun/rn/ota/ScaleBunOtaSpec.kt +16 -0
- package/android/src/newarch/java/com/scalebun/rn/performance/PerformanceSpec.kt +12 -0
- package/android/src/newarch/java/com/scalebun/rn/referrer/ScaleBunInstallReferrerSpec.kt +14 -0
- package/android/src/newarch/java/com/scalebun/rn/storage/ScaleBunStorageSpec.kt +16 -0
- package/android/src/oldarch/java/com/scalebun/profiler/ProfilerSpec.kt +34 -0
- package/android/src/oldarch/java/com/scalebun/replaysdk/ReplaySdkSpec.kt +77 -0
- package/android/src/oldarch/java/com/scalebun/rn/crash/ScaleBunCrashSpec.kt +40 -0
- package/android/src/oldarch/java/com/scalebun/rn/ota/ScaleBunOtaSpec.kt +42 -0
- package/android/src/oldarch/java/com/scalebun/rn/performance/PerformanceSpec.kt +27 -0
- package/android/src/oldarch/java/com/scalebun/rn/referrer/ScaleBunInstallReferrerSpec.kt +18 -0
- package/android/src/oldarch/java/com/scalebun/rn/storage/ScaleBunStorageSpec.kt +26 -0
- package/bin/lib/androidCodemod.js +370 -0
- package/bin/lib/iosCodemod.js +343 -0
- package/bin/scalebun.js +1004 -0
- package/dist/scalebun.full.js +37348 -0
- package/dist/scalebun.slim.js +34137 -0
- package/ios/Capture/InteractionTracker.swift +237 -0
- package/ios/Capture/PrivacyMaskProcessor.swift +158 -0
- package/ios/Capture/ScreenshotCaptureManager.swift +398 -0
- package/ios/Capture/WindowResolver.swift +63 -0
- package/ios/Core/DeviceIdentity.swift +50 -0
- package/ios/Core/ReplayConfig.swift +100 -0
- package/ios/Core/ReplayLogger.swift +22 -0
- package/ios/Core/SessionIdGenerator.swift +18 -0
- package/ios/Crash/ScaleBunCrashBridge.mm +74 -0
- package/ios/Crash/ScaleBunCrashHandler.swift +84 -0
- package/ios/Crash/ScaleBunCrashModule.swift +98 -0
- package/ios/Crash/ScaleBunCrashSignalBridge.h +49 -0
- package/ios/Crash/ScaleBunCrashSignalBridge.m +296 -0
- package/ios/Crash/ScaleBunCrashSignalStress.c +137 -0
- package/ios/Crash/ScaleBunCrashStorage.swift +121 -0
- package/ios/Crash/ScaleBunExceptionChain.swift +71 -0
- package/ios/CrashTests/ScaleBunExceptionChainTests.swift +144 -0
- package/ios/Engage/ScaleBunEngageBridge.m +32 -0
- package/ios/Engage/ScaleBunEngageModule.swift +250 -0
- package/ios/Engage/ScaleBunPushNotificationCenter.swift +185 -0
- package/ios/Ota/BsPatch.swift +203 -0
- package/ios/Ota/BundleDownloader.swift +249 -0
- package/ios/Ota/DeviceIntegrity.swift +112 -0
- package/ios/Ota/DownloadFailure.swift +56 -0
- package/ios/Ota/OtaProtocol.swift +246 -0
- package/ios/Ota/OtaSlotManager.swift +613 -0
- package/ios/Ota/ScaleBunOtaBridge.mm +92 -0
- package/ios/Ota/ScaleBunOtaEventsModule.swift +61 -0
- package/ios/Ota/ScaleBunOtaKeyRegistry.swift +147 -0
- package/ios/Ota/ScaleBunOtaModule.swift +587 -0
- package/ios/Ota/ScaleBunOtaReleaseVerifier.swift +119 -0
- package/ios/Ota/TlsPinning.swift +222 -0
- package/ios/OtaTests/DownloadFailureTests.swift +78 -0
- package/ios/OtaTests/ScaleBunOtaVerifierTests.swift +548 -0
- package/ios/Outbox/NativeOutbox.swift +632 -0
- package/ios/Outbox/OutboxUploader.swift +578 -0
- package/ios/Performance/ScaleBunPerformanceBridge.m +32 -0
- package/ios/Performance/ScaleBunPerformanceModule.swift +290 -0
- package/ios/PrivacyInfo.xcprivacy +97 -0
- package/ios/Profiler/ScaleBunProfilerBridge.m +55 -0
- package/ios/Profiler/ScaleBunProfilerModule.swift +966 -0
- package/ios/ReplaySdk-Bridging-Header.h +2 -0
- package/ios/ReplaySdk.swift +793 -0
- package/ios/ReplaySdkBridge.m +97 -0
- package/ios/Session/SessionManager.swift +273 -0
- package/ios/Skan/ScaleBunSkanBridge.m +14 -0
- package/ios/Skan/ScaleBunSkanModule.swift +61 -0
- package/ios/Storage/ReplayStorage.swift +61 -0
- package/ios/Storage/ScaleBunKvFileStore.swift +125 -0
- package/ios/Storage/ScaleBunStorageBridge.mm +72 -0
- package/ios/Storage/ScaleBunStorageModule.swift +57 -0
- package/ios/Transport/ReplayTransport.swift +70 -0
- package/ios/VoiceRecorder.swift +145 -0
- package/lib/commonjs/analytics/EventTracker.js +598 -0
- package/lib/commonjs/analytics/automaticEvents.js +71 -0
- package/lib/commonjs/analytics/batching.js +64 -0
- package/lib/commonjs/analytics/eventLane.js +55 -0
- package/lib/commonjs/analytics/revenue.js +125 -0
- package/lib/commonjs/analytics/subscription.js +94 -0
- package/lib/commonjs/bootstrap/FeatureRegistry.js +86 -0
- package/lib/commonjs/bootstrap/SDKBootstrapper.js +748 -0
- package/lib/commonjs/bucketing/fnv1a32.js +45 -0
- package/lib/commonjs/compat/codepush.js +153 -0
- package/lib/commonjs/config/ConfigManager.js +238 -0
- package/lib/commonjs/config/configTypes.js +16 -0
- package/lib/commonjs/config/otaPolicyState.js +85 -0
- package/lib/commonjs/config/quotaState.js +435 -0
- package/lib/commonjs/core/architecture.js +45 -0
- package/lib/commonjs/core/clock/now.js +13 -0
- package/lib/commonjs/core/config/defaults.js +2 -0
- package/lib/commonjs/core/config/schema.js +512 -0
- package/lib/commonjs/core/constants/endpoints.js +19 -0
- package/lib/commonjs/core/constants/protocol.js +31 -0
- package/lib/commonjs/core/constants/timings.js +39 -0
- package/lib/commonjs/core/constants/version.js +18 -0
- package/lib/commonjs/core/context/app.js +2 -0
- package/lib/commonjs/core/context/device.js +155 -0
- package/lib/commonjs/core/context/session.js +2 -0
- package/lib/commonjs/core/context/user.js +2 -0
- package/lib/commonjs/core/contracts/IFeature.js +2 -0
- package/lib/commonjs/core/di/container.js +29 -0
- package/lib/commonjs/core/encoding/base64.js +50 -0
- package/lib/commonjs/core/id/deviceId.js +52 -0
- package/lib/commonjs/core/id/installationId.js +55 -0
- package/lib/commonjs/core/id/sessionId.js +2 -0
- package/lib/commonjs/core/lifecycle/appLifecycle.js +31 -0
- package/lib/commonjs/core/lifecycle/crashSafe.js +33 -0
- package/lib/commonjs/core/logger/errorClassification.js +107 -0
- package/lib/commonjs/core/logger/internalLogger.js +63 -0
- package/lib/commonjs/core/logger/levels.js +2 -0
- package/lib/commonjs/crypto/hmacSha256.js +132 -0
- package/lib/commonjs/debug/bootstrap.js +429 -0
- package/lib/commonjs/debug/commands.js +732 -0
- package/lib/commonjs/debug/configBuilder.js +70 -0
- package/lib/commonjs/debug/exportBridge.js +155 -0
- package/lib/commonjs/debug/hostResolver.js +42 -0
- package/lib/commonjs/debug/index.js +141 -0
- package/lib/commonjs/debug/metrics.js +39 -0
- package/lib/commonjs/debug/perf.js +186 -0
- package/lib/commonjs/debug/perfWiring.js +109 -0
- package/lib/commonjs/debug/protocol.js +121 -0
- package/lib/commonjs/debug/redaction.js +422 -0
- package/lib/commonjs/debug/replayWiring.js +149 -0
- package/lib/commonjs/debug/screenTracking.js +60 -0
- package/lib/commonjs/debug/sessionWiring.js +48 -0
- package/lib/commonjs/debug/stream.js +542 -0
- package/lib/commonjs/debug/transport.js +368 -0
- package/lib/commonjs/features/bugreport/BugReportFeature.js +112 -0
- package/lib/commonjs/features/bugreport/buildPayload.js +97 -0
- package/lib/commonjs/features/bugreport/index.js +2 -0
- package/lib/commonjs/features/crash/CrashFeature.js +86 -0
- package/lib/commonjs/features/crash/CrashReporter.js +160 -0
- package/lib/commonjs/features/crash/NativeCrashFeature.js +42 -0
- package/lib/commonjs/features/crash/capture.js +48 -0
- package/lib/commonjs/features/crash/globalHandler.js +41 -0
- package/lib/commonjs/features/crash/index.js +14 -0
- package/lib/commonjs/features/crash/nativeCrashBridge.js +361 -0
- package/lib/commonjs/features/crash/rejectionHandler.js +180 -0
- package/lib/commonjs/features/crash/scrubCrash.js +158 -0
- package/lib/commonjs/features/engage/EngageAnchor.js +132 -0
- package/lib/commonjs/features/engage/EngageArchetypeRenderers.js +4292 -0
- package/lib/commonjs/features/engage/EngageInAppView.js +2670 -0
- package/lib/commonjs/features/engage/EngageInlinePlacement.js +133 -0
- package/lib/commonjs/features/engage/EngagePromptProvider.js +1063 -0
- package/lib/commonjs/features/engage/EngagePromptView.js +1252 -0
- package/lib/commonjs/features/engage/EngageTransport.js +608 -0
- package/lib/commonjs/features/engage/EngageVariantContent.js +1778 -0
- package/lib/commonjs/features/engage/__test-support__/reactNativeStub.js +54 -0
- package/lib/commonjs/features/engage/attachmentCapture.js +48 -0
- package/lib/commonjs/features/engage/captureVoiceAttachment.js +88 -0
- package/lib/commonjs/features/engage/engageCoachmarkTour.js +106 -0
- package/lib/commonjs/features/engage/engageGameLogic.js +308 -0
- package/lib/commonjs/features/engage/engageMediaSizing.js +60 -0
- package/lib/commonjs/features/engage/engageMultiStepSheet.js +43 -0
- package/lib/commonjs/features/engage/engageOutcome.js +118 -0
- package/lib/commonjs/features/engage/engagePushTokenBridge.js +72 -0
- package/lib/commonjs/features/engage/engageShakeBridge.js +62 -0
- package/lib/commonjs/features/engage/engageSignals.js +39 -0
- package/lib/commonjs/features/engage/engageStoreReviewBridge.js +49 -0
- package/lib/commonjs/features/engage/engageTestSeenStore.js +99 -0
- package/lib/commonjs/features/engage/engageThrottle.js +404 -0
- package/lib/commonjs/features/engage/engageTriggerEngine.js +365 -0
- package/lib/commonjs/features/engage/engageTypes.js +116 -0
- package/lib/commonjs/features/engage/engageVariantResolver.js +143 -0
- package/lib/commonjs/features/engage/engageWindowInsets.js +98 -0
- package/lib/commonjs/features/engage/gestureTriggerDetector.js +85 -0
- package/lib/commonjs/features/engage/transcription/TranscriptionProvider.js +55 -0
- package/lib/commonjs/features/install-referrer/installReferrer.js +113 -0
- package/lib/commonjs/features/journey/ScaleBunDebugRoot.js +1038 -0
- package/lib/commonjs/features/journey/ScaleBunFlatList.js +39 -0
- package/lib/commonjs/features/journey/ScaleBunImpression.js +113 -0
- package/lib/commonjs/features/journey/ScaleBunScrollView.js +102 -0
- package/lib/commonjs/features/journey/ScaleBunSectionList.js +39 -0
- package/lib/commonjs/features/journey/autoInstrumentScroll.js +161 -0
- package/lib/commonjs/features/journey/calibrationContext.js +42 -0
- package/lib/commonjs/features/journey/gestureBuffer.js +63 -0
- package/lib/commonjs/features/journey/gestureDetector.js +176 -0
- package/lib/commonjs/features/journey/impression.js +93 -0
- package/lib/commonjs/features/journey/interactionProtocol.js +168 -0
- package/lib/commonjs/features/journey/journeyManager.js +466 -0
- package/lib/commonjs/features/journey/journeyTypes.js +55 -0
- package/lib/commonjs/features/journey/nativeScroll.js +85 -0
- package/lib/commonjs/features/journey/navDetector.js +161 -0
- package/lib/commonjs/features/journey/screenshotHelper.js +136 -0
- package/lib/commonjs/features/journey/scrollContext.js +154 -0
- package/lib/commonjs/features/journey/targetGeometry.js +185 -0
- package/lib/commonjs/features/journey/targetRegistry.js +53 -0
- package/lib/commonjs/features/journey/touchTarget.js +249 -0
- package/lib/commonjs/features/journey/uiState.js +188 -0
- package/lib/commonjs/features/navigation/AutoScreenDetector.js +607 -0
- package/lib/commonjs/features/network/NetworkFeature.js +216 -0
- package/lib/commonjs/features/network/index.js +23 -0
- package/lib/commonjs/features/network/thirdParty.js +151 -0
- package/lib/commonjs/features/ota/OtaEventEmitter.js +129 -0
- package/lib/commonjs/features/ota/OtaOrchestrator.js +1309 -0
- package/lib/commonjs/features/ota/OtaTypes.js +6 -0
- package/lib/commonjs/features/ota/deviceAttributes.js +48 -0
- package/lib/commonjs/features/ota/environment.js +172 -0
- package/lib/commonjs/features/ota/geoCountry.js +93 -0
- package/lib/commonjs/features/ota/retry.js +96 -0
- package/lib/commonjs/features/ota/signedDownload.js +187 -0
- package/lib/commonjs/features/ota/useOtaUpdate.js +106 -0
- package/lib/commonjs/features/performance/PerformanceFeature.js +649 -0
- package/lib/commonjs/features/performance/collectors/AppLaunchCollector.js +122 -0
- package/lib/commonjs/features/performance/collectors/AutoScreenLoadCollector.js +232 -0
- package/lib/commonjs/features/performance/collectors/CustomTraceCollector.js +99 -0
- package/lib/commonjs/features/performance/collectors/FrameMetricsCollector.js +184 -0
- package/lib/commonjs/features/performance/collectors/JsStallCollector.js +165 -0
- package/lib/commonjs/features/performance/collectors/NetworkPerfCollector.js +59 -0
- package/lib/commonjs/features/performance/collectors/ScreenLoadCollector.js +78 -0
- package/lib/commonjs/features/performance/collectors/UiHangCollector.js +78 -0
- package/lib/commonjs/features/performance/config.js +58 -0
- package/lib/commonjs/features/performance/getNativePerformanceModule.js +44 -0
- package/lib/commonjs/features/performance/index.js +58 -0
- package/lib/commonjs/features/performance/metrics/MetricsEngine.js +148 -0
- package/lib/commonjs/features/performance/models.js +48 -0
- package/lib/commonjs/features/performance/transport/PerformanceTransport.js +168 -0
- package/lib/commonjs/features/profiler/ProfilerFeature.js +600 -0
- package/lib/commonjs/features/profiler/config.js +151 -0
- package/lib/commonjs/features/profiler/contracts.js +62 -0
- package/lib/commonjs/features/profiler/index.js +40 -0
- package/lib/commonjs/features/profiler/models.js +112 -0
- package/lib/commonjs/features/profiler/transport/ProfilerTransport.js +94 -0
- package/lib/commonjs/features/replay/bridge/adapters/bridgeAdapter.js +203 -0
- package/lib/commonjs/features/replay/bridge/eventEmitter.js +128 -0
- package/lib/commonjs/features/replay/bridge/nativeModule.js +95 -0
- package/lib/commonjs/features/replay/bridge/nativeQuota.js +121 -0
- package/lib/commonjs/features/replay/core/clock/clock.js +47 -0
- package/lib/commonjs/features/replay/core/config/defaults.js +88 -0
- package/lib/commonjs/features/replay/core/config/validator.js +109 -0
- package/lib/commonjs/features/replay/core/env/environmentDetector.js +28 -0
- package/lib/commonjs/features/replay/core/errors/safeCall.js +42 -0
- package/lib/commonjs/features/replay/core/ids/sessionId.js +53 -0
- package/lib/commonjs/features/replay/core/logger/logger.js +36 -0
- package/lib/commonjs/features/replay/core/privacy/privacyTypes.js +34 -0
- package/lib/commonjs/features/replay/core/queue/boundedQueue.js +71 -0
- package/lib/commonjs/features/replay/integrations/alert/alertInstrumentation.js +259 -0
- package/lib/commonjs/features/replay/integrations/logs/consoleIntegration.js +139 -0
- package/lib/commonjs/features/replay/integrations/network/networkAdapter.js +77 -0
- package/lib/commonjs/features/replay/integrations/react-navigation/navigationIntegration.js +88 -0
- package/lib/commonjs/features/replay/integrations/touch/ReplayRoot.js +103 -0
- package/lib/commonjs/features/replay/pipeline/batching/batchManager.js +119 -0
- package/lib/commonjs/features/replay/pipeline/envelope/envelopeBuilder.js +52 -0
- package/lib/commonjs/features/replay/pipeline/retry/retryPolicy.js +53 -0
- package/lib/commonjs/features/replay/pipeline/transport/transportTypes.js +67 -0
- package/lib/commonjs/features/replay/public/api.js +336 -0
- package/lib/commonjs/features/replay/public/enums.js +85 -0
- package/lib/commonjs/features/replay/public/types.js +6 -0
- package/lib/commonjs/features/replay/replay/breadcrumbs/breadcrumbCollector.js +119 -0
- package/lib/commonjs/features/replay/replay/frames/frameModels.js +40 -0
- package/lib/commonjs/features/replay/replay/session/sessionOrchestrator.js +279 -0
- package/lib/commonjs/features/replay/replay/timeline/timelineModels.js +120 -0
- package/lib/commonjs/features/replay/transport/BackendReplayTransport.js +175 -0
- package/lib/commonjs/features/replay/transport/CompositeReplayTransport.js +75 -0
- package/lib/commonjs/features/replay/transport/DesktopReplayTransport.js +124 -0
- package/lib/commonjs/features/replay/transport/ReplayTransport.js +2 -0
- package/lib/commonjs/features/session/BackendSessionAdapter.js +1915 -0
- package/lib/commonjs/features/session/DesktopSessionTransport.js +124 -0
- package/lib/commonjs/features/session/JourneyEventPipeline.js +244 -0
- package/lib/commonjs/features/session/ReplayCaptureManager.js +1253 -0
- package/lib/commonjs/features/session/ScrollTracker.js +147 -0
- package/lib/commonjs/features/session/SessionManager.js +1448 -0
- package/lib/commonjs/features/session/SyncDecisionEngine.js +95 -0
- package/lib/commonjs/features/session/frameLink.js +36 -0
- package/lib/commonjs/features/session/frameScrollState.js +41 -0
- package/lib/commonjs/features/session/index.js +84 -0
- package/lib/commonjs/features/session/nativeCapture.js +53 -0
- package/lib/commonjs/features/session/outboxFrameCapture.js +83 -0
- package/lib/commonjs/features/session/sessionTypes.js +230 -0
- package/lib/commonjs/features/session/viewportPlausibility.js +143 -0
- package/lib/commonjs/features/skan/skanBridge.js +54 -0
- package/lib/commonjs/features/skan/skanConversionManager.js +134 -0
- package/lib/commonjs/index.js +267 -0
- package/lib/commonjs/integrations/fetch/fetchInterceptor.js +174 -0
- package/lib/commonjs/integrations/navigation/screenTracker.js +2 -0
- package/lib/commonjs/integrations/network/bodyCapture.js +336 -0
- package/lib/commonjs/integrations/xhr/xhrInterceptor.js +224 -0
- package/lib/commonjs/metro/composeSourceMap.js +105 -0
- package/lib/commonjs/metro/featureModules.js +131 -0
- package/lib/commonjs/metro/index.js +230 -0
- package/lib/commonjs/metro/optionalDependencyStub.js +6 -0
- package/lib/commonjs/metro/optionalModules.js +31 -0
- package/lib/commonjs/metro/serializerCompose.js +161 -0
- package/lib/commonjs/pipeline/dispatcher/dispatcher.js +28 -0
- package/lib/commonjs/pipeline/envelope/envelope.js +17 -0
- package/lib/commonjs/pipeline/envelope/serializer.js +14 -0
- package/lib/commonjs/pipeline/processors/dedupe.js +2 -0
- package/lib/commonjs/pipeline/processors/enrich.js +16 -0
- package/lib/commonjs/pipeline/processors/sampling.js +2 -0
- package/lib/commonjs/pipeline/processors/sanitize.js +28 -0
- package/lib/commonjs/pipeline/queue/flushQueue.js +107 -0
- package/lib/commonjs/pipeline/queue/memoryQueue.js +31 -0
- package/lib/commonjs/pipeline/queue/persistentQueue.js +342 -0
- package/lib/commonjs/pipeline/queue/queuePolicy.js +2 -0
- package/lib/commonjs/pipeline/scheduler/flushScheduler.js +45 -0
- package/lib/commonjs/pipeline/scheduler/retryPolicy.js +15 -0
- package/lib/commonjs/public/ScaleBunErrorBoundary.js +91 -0
- package/lib/commonjs/public/ScaleBunFacade.js +2044 -0
- package/lib/commonjs/public/ScaleBunProvider.js +62 -0
- package/lib/commonjs/public/typedTracker.js +79 -0
- package/lib/commonjs/public/types.js +6 -0
- package/lib/commonjs/push/PushManager.js +270 -0
- package/lib/commonjs/push/adapters/ManualAdapter.js +86 -0
- package/lib/commonjs/push/adapters/NativeBridgeAdapter.js +131 -0
- package/lib/commonjs/push/adapters/NoopAdapter.js +45 -0
- package/lib/commonjs/push/adapters/RNFirebaseMessagingAdapter.js +248 -0
- package/lib/commonjs/push/adapters/loadMessaging.js +29 -0
- package/lib/commonjs/push/adapters/loadNotifee.js +36 -0
- package/lib/commonjs/push/adapters/selectAdapter.js +153 -0
- package/lib/commonjs/push/detect/capabilities.js +136 -0
- package/lib/commonjs/push/index.js +33 -0
- package/lib/commonjs/push/native/nativeNotifications.js +168 -0
- package/lib/commonjs/push/types.js +2 -0
- package/lib/commonjs/specs/NativeReplaySdk.js +28 -0
- package/lib/commonjs/specs/NativeScaleBunCrash.js +30 -0
- package/lib/commonjs/specs/NativeScaleBunInstallReferrer.js +24 -0
- package/lib/commonjs/specs/NativeScaleBunOta.js +32 -0
- package/lib/commonjs/specs/NativeScaleBunPerformance.js +25 -0
- package/lib/commonjs/specs/NativeScaleBunProfiler.js +26 -0
- package/lib/commonjs/specs/NativeScaleBunStorage.js +40 -0
- package/lib/commonjs/storage/StorageBackend.js +240 -0
- package/lib/commonjs/storage/db/sqlite.js +2 -0
- package/lib/commonjs/storage/files/fileStore.js +2 -0
- package/lib/commonjs/transport/auth/sdkSession.js +28 -0
- package/lib/commonjs/transport/backoff/exponentialJitter.js +16 -0
- package/lib/commonjs/transport/http/endpoints.js +46 -0
- package/lib/commonjs/transport/http/httpClient.js +72 -0
- package/lib/commonjs/transport/rateLimit/retryAfter.js +2 -0
- package/lib/commonjs/transport/signing/requestSigner.js +2 -0
- package/lib/commonjs/vendor/protocol/index.js +327 -0
- package/lib/commonjs/vendor/protocol/internal/validation.js +429 -0
- package/lib/commonjs/vendor/sdk-contracts/bridge.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/config.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/events.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/features.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/index.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/platform.js +2 -0
- package/lib/commonjs/vendor/sdk-contracts/session-boundary.js +6 -0
- package/lib/commonjs/vendor/sdk-contracts/session.js +2 -0
- package/lib/commonjs/vendor/vendor.manifest +10 -0
- package/lib/module/analytics/EventTracker.js +592 -0
- package/lib/module/analytics/automaticEvents.js +63 -0
- package/lib/module/analytics/batching.js +55 -0
- package/lib/module/analytics/eventLane.js +47 -0
- package/lib/module/analytics/revenue.js +117 -0
- package/lib/module/analytics/subscription.js +86 -0
- package/lib/module/bootstrap/FeatureRegistry.js +79 -0
- package/lib/module/bootstrap/SDKBootstrapper.js +742 -0
- package/lib/module/bucketing/fnv1a32.js +37 -0
- package/lib/module/compat/codepush.js +147 -0
- package/lib/module/config/ConfigManager.js +230 -0
- package/lib/module/config/configTypes.js +10 -0
- package/lib/module/config/otaPolicyState.js +76 -0
- package/lib/module/config/quotaState.js +423 -0
- package/lib/module/core/architecture.js +38 -0
- package/lib/module/core/clock/now.js +7 -0
- package/lib/module/core/config/defaults.js +2 -0
- package/lib/module/core/config/schema.js +506 -0
- package/lib/module/core/constants/endpoints.js +13 -0
- package/lib/module/core/constants/protocol.js +25 -0
- package/lib/module/core/constants/timings.js +26 -0
- package/lib/module/core/constants/version.js +12 -0
- package/lib/module/core/context/app.js +2 -0
- package/lib/module/core/context/device.js +143 -0
- package/lib/module/core/context/session.js +2 -0
- package/lib/module/core/context/user.js +2 -0
- package/lib/module/core/contracts/IFeature.js +2 -0
- package/lib/module/core/di/container.js +22 -0
- package/lib/module/core/encoding/base64.js +44 -0
- package/lib/module/core/id/deviceId.js +45 -0
- package/lib/module/core/id/installationId.js +50 -0
- package/lib/module/core/id/sessionId.js +2 -0
- package/lib/module/core/lifecycle/appLifecycle.js +25 -0
- package/lib/module/core/lifecycle/crashSafe.js +26 -0
- package/lib/module/core/logger/errorClassification.js +96 -0
- package/lib/module/core/logger/internalLogger.js +59 -0
- package/lib/module/core/logger/levels.js +2 -0
- package/lib/module/crypto/hmacSha256.js +126 -0
- package/lib/module/debug/bootstrap.js +393 -0
- package/lib/module/debug/commands.js +726 -0
- package/lib/module/debug/configBuilder.js +63 -0
- package/lib/module/debug/exportBridge.js +148 -0
- package/lib/module/debug/hostResolver.js +37 -0
- package/lib/module/debug/index.js +13 -0
- package/lib/module/debug/metrics.js +33 -0
- package/lib/module/debug/perf.js +180 -0
- package/lib/module/debug/perfWiring.js +102 -0
- package/lib/module/debug/protocol.js +19 -0
- package/lib/module/debug/redaction.js +411 -0
- package/lib/module/debug/replayWiring.js +139 -0
- package/lib/module/debug/screenTracking.js +53 -0
- package/lib/module/debug/sessionWiring.js +43 -0
- package/lib/module/debug/stream.js +536 -0
- package/lib/module/debug/transport.js +362 -0
- package/lib/module/features/bugreport/BugReportFeature.js +105 -0
- package/lib/module/features/bugreport/buildPayload.js +91 -0
- package/lib/module/features/bugreport/index.js +2 -0
- package/lib/module/features/crash/CrashFeature.js +79 -0
- package/lib/module/features/crash/CrashReporter.js +151 -0
- package/lib/module/features/crash/NativeCrashFeature.js +36 -0
- package/lib/module/features/crash/capture.js +42 -0
- package/lib/module/features/crash/globalHandler.js +36 -0
- package/lib/module/features/crash/index.js +8 -0
- package/lib/module/features/crash/nativeCrashBridge.js +350 -0
- package/lib/module/features/crash/rejectionHandler.js +171 -0
- package/lib/module/features/crash/scrubCrash.js +149 -0
- package/lib/module/features/engage/EngageAnchor.js +121 -0
- package/lib/module/features/engage/EngageArchetypeRenderers.js +4264 -0
- package/lib/module/features/engage/EngageInAppView.js +2656 -0
- package/lib/module/features/engage/EngageInlinePlacement.js +123 -0
- package/lib/module/features/engage/EngagePromptProvider.js +1054 -0
- package/lib/module/features/engage/EngagePromptView.js +1243 -0
- package/lib/module/features/engage/EngageTransport.js +602 -0
- package/lib/module/features/engage/EngageVariantContent.js +1771 -0
- package/lib/module/features/engage/__test-support__/reactNativeStub.js +52 -0
- package/lib/module/features/engage/attachmentCapture.js +42 -0
- package/lib/module/features/engage/captureVoiceAttachment.js +80 -0
- package/lib/module/features/engage/engageCoachmarkTour.js +94 -0
- package/lib/module/features/engage/engageGameLogic.js +287 -0
- package/lib/module/features/engage/engageMediaSizing.js +51 -0
- package/lib/module/features/engage/engageMultiStepSheet.js +35 -0
- package/lib/module/features/engage/engageOutcome.js +108 -0
- package/lib/module/features/engage/engagePushTokenBridge.js +65 -0
- package/lib/module/features/engage/engageShakeBridge.js +56 -0
- package/lib/module/features/engage/engageSignals.js +34 -0
- package/lib/module/features/engage/engageStoreReviewBridge.js +43 -0
- package/lib/module/features/engage/engageTestSeenStore.js +92 -0
- package/lib/module/features/engage/engageThrottle.js +390 -0
- package/lib/module/features/engage/engageTriggerEngine.js +360 -0
- package/lib/module/features/engage/engageTypes.js +110 -0
- package/lib/module/features/engage/engageVariantResolver.js +135 -0
- package/lib/module/features/engage/engageWindowInsets.js +89 -0
- package/lib/module/features/engage/gestureTriggerDetector.js +80 -0
- package/lib/module/features/engage/transcription/TranscriptionProvider.js +46 -0
- package/lib/module/features/install-referrer/installReferrer.js +104 -0
- package/lib/module/features/journey/ScaleBunDebugRoot.js +1030 -0
- package/lib/module/features/journey/ScaleBunFlatList.js +32 -0
- package/lib/module/features/journey/ScaleBunImpression.js +105 -0
- package/lib/module/features/journey/ScaleBunScrollView.js +95 -0
- package/lib/module/features/journey/ScaleBunSectionList.js +32 -0
- package/lib/module/features/journey/autoInstrumentScroll.js +155 -0
- package/lib/module/features/journey/calibrationContext.js +35 -0
- package/lib/module/features/journey/gestureBuffer.js +56 -0
- package/lib/module/features/journey/gestureDetector.js +169 -0
- package/lib/module/features/journey/impression.js +84 -0
- package/lib/module/features/journey/interactionProtocol.js +158 -0
- package/lib/module/features/journey/journeyManager.js +459 -0
- package/lib/module/features/journey/journeyTypes.js +49 -0
- package/lib/module/features/journey/nativeScroll.js +77 -0
- package/lib/module/features/journey/navDetector.js +154 -0
- package/lib/module/features/journey/screenshotHelper.js +129 -0
- package/lib/module/features/journey/scrollContext.js +142 -0
- package/lib/module/features/journey/targetGeometry.js +175 -0
- package/lib/module/features/journey/targetRegistry.js +44 -0
- package/lib/module/features/journey/touchTarget.js +241 -0
- package/lib/module/features/journey/uiState.js +176 -0
- package/lib/module/features/navigation/AutoScreenDetector.js +601 -0
- package/lib/module/features/network/NetworkFeature.js +209 -0
- package/lib/module/features/network/index.js +17 -0
- package/lib/module/features/network/thirdParty.js +142 -0
- package/lib/module/features/ota/OtaEventEmitter.js +123 -0
- package/lib/module/features/ota/OtaOrchestrator.js +1302 -0
- package/lib/module/features/ota/OtaTypes.js +2 -0
- package/lib/module/features/ota/deviceAttributes.js +43 -0
- package/lib/module/features/ota/environment.js +165 -0
- package/lib/module/features/ota/geoCountry.js +86 -0
- package/lib/module/features/ota/retry.js +87 -0
- package/lib/module/features/ota/signedDownload.js +174 -0
- package/lib/module/features/ota/useOtaUpdate.js +100 -0
- package/lib/module/features/performance/PerformanceFeature.js +643 -0
- package/lib/module/features/performance/collectors/AppLaunchCollector.js +115 -0
- package/lib/module/features/performance/collectors/AutoScreenLoadCollector.js +225 -0
- package/lib/module/features/performance/collectors/CustomTraceCollector.js +92 -0
- package/lib/module/features/performance/collectors/FrameMetricsCollector.js +177 -0
- package/lib/module/features/performance/collectors/JsStallCollector.js +158 -0
- package/lib/module/features/performance/collectors/NetworkPerfCollector.js +52 -0
- package/lib/module/features/performance/collectors/ScreenLoadCollector.js +71 -0
- package/lib/module/features/performance/collectors/UiHangCollector.js +71 -0
- package/lib/module/features/performance/config.js +51 -0
- package/lib/module/features/performance/getNativePerformanceModule.js +39 -0
- package/lib/module/features/performance/index.js +9 -0
- package/lib/module/features/performance/metrics/MetricsEngine.js +139 -0
- package/lib/module/features/performance/models.js +42 -0
- package/lib/module/features/performance/transport/PerformanceTransport.js +162 -0
- package/lib/module/features/profiler/ProfilerFeature.js +594 -0
- package/lib/module/features/profiler/config.js +143 -0
- package/lib/module/features/profiler/contracts.js +56 -0
- package/lib/module/features/profiler/index.js +11 -0
- package/lib/module/features/profiler/models.js +106 -0
- package/lib/module/features/profiler/transport/ProfilerTransport.js +87 -0
- package/lib/module/features/replay/bridge/adapters/bridgeAdapter.js +198 -0
- package/lib/module/features/replay/bridge/eventEmitter.js +122 -0
- package/lib/module/features/replay/bridge/nativeModule.js +89 -0
- package/lib/module/features/replay/bridge/nativeQuota.js +109 -0
- package/lib/module/features/replay/core/clock/clock.js +37 -0
- package/lib/module/features/replay/core/config/defaults.js +82 -0
- package/lib/module/features/replay/core/config/validator.js +103 -0
- package/lib/module/features/replay/core/env/environmentDetector.js +22 -0
- package/lib/module/features/replay/core/errors/safeCall.js +35 -0
- package/lib/module/features/replay/core/ids/sessionId.js +44 -0
- package/lib/module/features/replay/core/logger/logger.js +29 -0
- package/lib/module/features/replay/core/privacy/privacyTypes.js +27 -0
- package/lib/module/features/replay/core/queue/boundedQueue.js +64 -0
- package/lib/module/features/replay/integrations/alert/alertInstrumentation.js +252 -0
- package/lib/module/features/replay/integrations/logs/consoleIntegration.js +131 -0
- package/lib/module/features/replay/integrations/network/networkAdapter.js +70 -0
- package/lib/module/features/replay/integrations/react-navigation/navigationIntegration.js +82 -0
- package/lib/module/features/replay/integrations/touch/ReplayRoot.js +96 -0
- package/lib/module/features/replay/pipeline/batching/batchManager.js +113 -0
- package/lib/module/features/replay/pipeline/envelope/envelopeBuilder.js +43 -0
- package/lib/module/features/replay/pipeline/retry/retryPolicy.js +45 -0
- package/lib/module/features/replay/pipeline/transport/transportTypes.js +60 -0
- package/lib/module/features/replay/public/api.js +332 -0
- package/lib/module/features/replay/public/enums.js +85 -0
- package/lib/module/features/replay/public/types.js +2 -0
- package/lib/module/features/replay/replay/breadcrumbs/breadcrumbCollector.js +113 -0
- package/lib/module/features/replay/replay/frames/frameModels.js +33 -0
- package/lib/module/features/replay/replay/session/sessionOrchestrator.js +272 -0
- package/lib/module/features/replay/replay/timeline/timelineModels.js +108 -0
- package/lib/module/features/replay/transport/BackendReplayTransport.js +169 -0
- package/lib/module/features/replay/transport/CompositeReplayTransport.js +68 -0
- package/lib/module/features/replay/transport/DesktopReplayTransport.js +119 -0
- package/lib/module/features/replay/transport/ReplayTransport.js +2 -0
- package/lib/module/features/session/BackendSessionAdapter.js +1908 -0
- package/lib/module/features/session/DesktopSessionTransport.js +118 -0
- package/lib/module/features/session/JourneyEventPipeline.js +239 -0
- package/lib/module/features/session/ReplayCaptureManager.js +1248 -0
- package/lib/module/features/session/ScrollTracker.js +141 -0
- package/lib/module/features/session/SessionManager.js +1443 -0
- package/lib/module/features/session/SyncDecisionEngine.js +88 -0
- package/lib/module/features/session/frameLink.js +29 -0
- package/lib/module/features/session/frameScrollState.js +34 -0
- package/lib/module/features/session/index.js +35 -0
- package/lib/module/features/session/nativeCapture.js +45 -0
- package/lib/module/features/session/outboxFrameCapture.js +77 -0
- package/lib/module/features/session/sessionTypes.js +226 -0
- package/lib/module/features/session/viewportPlausibility.js +137 -0
- package/lib/module/features/skan/skanBridge.js +48 -0
- package/lib/module/features/skan/skanConversionManager.js +128 -0
- package/lib/module/index.js +80 -0
- package/lib/module/integrations/fetch/fetchInterceptor.js +169 -0
- package/lib/module/integrations/navigation/screenTracker.js +2 -0
- package/lib/module/integrations/network/bodyCapture.js +320 -0
- package/lib/module/integrations/xhr/xhrInterceptor.js +219 -0
- package/lib/module/metro/composeSourceMap.js +97 -0
- package/lib/module/metro/featureModules.js +123 -0
- package/lib/module/metro/index.js +218 -0
- package/lib/module/metro/optionalDependencyStub.js +14 -0
- package/lib/module/metro/optionalModules.js +25 -0
- package/lib/module/metro/serializerCompose.js +152 -0
- package/lib/module/pipeline/dispatcher/dispatcher.js +21 -0
- package/lib/module/pipeline/envelope/envelope.js +11 -0
- package/lib/module/pipeline/envelope/serializer.js +8 -0
- package/lib/module/pipeline/processors/dedupe.js +2 -0
- package/lib/module/pipeline/processors/enrich.js +10 -0
- package/lib/module/pipeline/processors/sampling.js +2 -0
- package/lib/module/pipeline/processors/sanitize.js +22 -0
- package/lib/module/pipeline/queue/flushQueue.js +102 -0
- package/lib/module/pipeline/queue/memoryQueue.js +24 -0
- package/lib/module/pipeline/queue/persistentQueue.js +336 -0
- package/lib/module/pipeline/queue/queuePolicy.js +2 -0
- package/lib/module/pipeline/scheduler/flushScheduler.js +38 -0
- package/lib/module/pipeline/scheduler/retryPolicy.js +9 -0
- package/lib/module/public/ScaleBunErrorBoundary.js +82 -0
- package/lib/module/public/ScaleBunFacade.js +2038 -0
- package/lib/module/public/ScaleBunProvider.js +54 -0
- package/lib/module/public/typedTracker.js +72 -0
- package/lib/module/public/types.js +2 -0
- package/lib/module/push/PushManager.js +263 -0
- package/lib/module/push/adapters/ManualAdapter.js +79 -0
- package/lib/module/push/adapters/NativeBridgeAdapter.js +124 -0
- package/lib/module/push/adapters/NoopAdapter.js +38 -0
- package/lib/module/push/adapters/RNFirebaseMessagingAdapter.js +241 -0
- package/lib/module/push/adapters/loadMessaging.js +23 -0
- package/lib/module/push/adapters/loadNotifee.js +30 -0
- package/lib/module/push/adapters/selectAdapter.js +147 -0
- package/lib/module/push/detect/capabilities.js +130 -0
- package/lib/module/push/index.js +9 -0
- package/lib/module/push/native/nativeNotifications.js +155 -0
- package/lib/module/push/types.js +2 -0
- package/lib/module/specs/NativeReplaySdk.js +24 -0
- package/lib/module/specs/NativeScaleBunCrash.js +26 -0
- package/lib/module/specs/NativeScaleBunInstallReferrer.js +20 -0
- package/lib/module/specs/NativeScaleBunOta.js +28 -0
- package/lib/module/specs/NativeScaleBunPerformance.js +21 -0
- package/lib/module/specs/NativeScaleBunProfiler.js +22 -0
- package/lib/module/specs/NativeScaleBunStorage.js +36 -0
- package/lib/module/storage/StorageBackend.js +231 -0
- package/lib/module/storage/db/sqlite.js +2 -0
- package/lib/module/storage/files/fileStore.js +2 -0
- package/lib/module/transport/auth/sdkSession.js +21 -0
- package/lib/module/transport/backoff/exponentialJitter.js +10 -0
- package/lib/module/transport/http/endpoints.js +40 -0
- package/lib/module/transport/http/httpClient.js +64 -0
- package/lib/module/transport/rateLimit/retryAfter.js +2 -0
- package/lib/module/transport/signing/requestSigner.js +2 -0
- package/lib/module/vendor/protocol/index.js +312 -0
- package/lib/module/vendor/protocol/internal/validation.js +423 -0
- package/lib/module/vendor/sdk-contracts/bridge.js +2 -0
- package/lib/module/vendor/sdk-contracts/config.js +2 -0
- package/lib/module/vendor/sdk-contracts/events.js +2 -0
- package/lib/module/vendor/sdk-contracts/features.js +2 -0
- package/lib/module/vendor/sdk-contracts/index.js +2 -0
- package/lib/module/vendor/sdk-contracts/platform.js +2 -0
- package/lib/module/vendor/sdk-contracts/session-boundary.js +2 -0
- package/lib/module/vendor/sdk-contracts/session.js +2 -0
- package/lib/module/vendor/vendor.manifest +10 -0
- package/lib/typescript/analytics/EventTracker.d.ts +197 -0
- package/lib/typescript/analytics/automaticEvents.d.ts +30 -0
- package/lib/typescript/analytics/batching.d.ts +33 -0
- package/lib/typescript/analytics/eventLane.d.ts +22 -0
- package/lib/typescript/analytics/revenue.d.ts +94 -0
- package/lib/typescript/analytics/subscription.d.ts +35 -0
- package/lib/typescript/bootstrap/FeatureRegistry.d.ts +36 -0
- package/lib/typescript/bootstrap/SDKBootstrapper.d.ts +82 -0
- package/lib/typescript/bucketing/fnv1a32.d.ts +20 -0
- package/lib/typescript/compat/codepush.d.ts +76 -0
- package/lib/typescript/config/ConfigManager.d.ts +82 -0
- package/lib/typescript/config/configTypes.d.ts +73 -0
- package/lib/typescript/config/otaPolicyState.d.ts +55 -0
- package/lib/typescript/config/quotaState.d.ts +155 -0
- package/lib/typescript/core/architecture.d.ts +29 -0
- package/lib/typescript/core/clock/now.d.ts +5 -0
- package/lib/typescript/core/config/defaults.d.ts +1 -0
- package/lib/typescript/core/config/schema.d.ts +107 -0
- package/lib/typescript/core/constants/endpoints.d.ts +13 -0
- package/lib/typescript/core/constants/protocol.d.ts +23 -0
- package/lib/typescript/core/constants/timings.d.ts +22 -0
- package/lib/typescript/core/constants/version.d.ts +12 -0
- package/lib/typescript/core/context/app.d.ts +1 -0
- package/lib/typescript/core/context/device.d.ts +61 -0
- package/lib/typescript/core/context/session.d.ts +1 -0
- package/lib/typescript/core/context/user.d.ts +24 -0
- package/lib/typescript/core/contracts/IFeature.d.ts +44 -0
- package/lib/typescript/core/di/container.d.ts +9 -0
- package/lib/typescript/core/encoding/base64.d.ts +13 -0
- package/lib/typescript/core/id/deviceId.d.ts +9 -0
- package/lib/typescript/core/id/installationId.d.ts +20 -0
- package/lib/typescript/core/id/sessionId.d.ts +1 -0
- package/lib/typescript/core/lifecycle/appLifecycle.d.ts +14 -0
- package/lib/typescript/core/lifecycle/crashSafe.d.ts +7 -0
- package/lib/typescript/core/logger/errorClassification.d.ts +46 -0
- package/lib/typescript/core/logger/internalLogger.d.ts +24 -0
- package/lib/typescript/core/logger/levels.d.ts +1 -0
- package/lib/typescript/crypto/hmacSha256.d.ts +10 -0
- package/lib/typescript/debug/bootstrap.d.ts +148 -0
- package/lib/typescript/debug/commands.d.ts +77 -0
- package/lib/typescript/debug/configBuilder.d.ts +13 -0
- package/lib/typescript/debug/exportBridge.d.ts +27 -0
- package/lib/typescript/debug/hostResolver.d.ts +14 -0
- package/lib/typescript/debug/index.d.ts +12 -0
- package/lib/typescript/debug/metrics.d.ts +2 -0
- package/lib/typescript/debug/perf.d.ts +43 -0
- package/lib/typescript/debug/perfWiring.d.ts +33 -0
- package/lib/typescript/debug/protocol.d.ts +15 -0
- package/lib/typescript/debug/redaction.d.ts +69 -0
- package/lib/typescript/debug/replayWiring.d.ts +25 -0
- package/lib/typescript/debug/screenTracking.d.ts +16 -0
- package/lib/typescript/debug/sessionWiring.d.ts +16 -0
- package/lib/typescript/debug/stream.d.ts +77 -0
- package/lib/typescript/debug/transport.d.ts +110 -0
- package/lib/typescript/features/bugreport/BugReportFeature.d.ts +59 -0
- package/lib/typescript/features/bugreport/buildPayload.d.ts +51 -0
- package/lib/typescript/features/bugreport/index.d.ts +1 -0
- package/lib/typescript/features/crash/CrashFeature.d.ts +21 -0
- package/lib/typescript/features/crash/CrashReporter.d.ts +107 -0
- package/lib/typescript/features/crash/NativeCrashFeature.d.ts +17 -0
- package/lib/typescript/features/crash/capture.d.ts +22 -0
- package/lib/typescript/features/crash/globalHandler.d.ts +14 -0
- package/lib/typescript/features/crash/index.d.ts +2 -0
- package/lib/typescript/features/crash/nativeCrashBridge.d.ts +43 -0
- package/lib/typescript/features/crash/rejectionHandler.d.ts +65 -0
- package/lib/typescript/features/crash/scrubCrash.d.ts +35 -0
- package/lib/typescript/features/engage/EngageAnchor.d.ts +36 -0
- package/lib/typescript/features/engage/EngageArchetypeRenderers.d.ts +66 -0
- package/lib/typescript/features/engage/EngageInAppView.d.ts +164 -0
- package/lib/typescript/features/engage/EngageInlinePlacement.d.ts +42 -0
- package/lib/typescript/features/engage/EngagePromptProvider.d.ts +233 -0
- package/lib/typescript/features/engage/EngagePromptView.d.ts +97 -0
- package/lib/typescript/features/engage/EngageTransport.d.ts +158 -0
- package/lib/typescript/features/engage/EngageVariantContent.d.ts +12 -0
- package/lib/typescript/features/engage/attachmentCapture.d.ts +17 -0
- package/lib/typescript/features/engage/captureVoiceAttachment.d.ts +31 -0
- package/lib/typescript/features/engage/engageCoachmarkTour.d.ts +18 -0
- package/lib/typescript/features/engage/engageGameLogic.d.ts +34 -0
- package/lib/typescript/features/engage/engageMediaSizing.d.ts +23 -0
- package/lib/typescript/features/engage/engageMultiStepSheet.d.ts +25 -0
- package/lib/typescript/features/engage/engageOutcome.d.ts +38 -0
- package/lib/typescript/features/engage/engagePushTokenBridge.d.ts +30 -0
- package/lib/typescript/features/engage/engageShakeBridge.d.ts +20 -0
- package/lib/typescript/features/engage/engageSignals.d.ts +13 -0
- package/lib/typescript/features/engage/engageStoreReviewBridge.d.ts +23 -0
- package/lib/typescript/features/engage/engageTestSeenStore.d.ts +46 -0
- package/lib/typescript/features/engage/engageThrottle.d.ts +180 -0
- package/lib/typescript/features/engage/engageTriggerEngine.d.ts +16 -0
- package/lib/typescript/features/engage/engageTypes.d.ts +576 -0
- package/lib/typescript/features/engage/engageVariantResolver.d.ts +46 -0
- package/lib/typescript/features/engage/engageWindowInsets.d.ts +25 -0
- package/lib/typescript/features/engage/gestureTriggerDetector.d.ts +20 -0
- package/lib/typescript/features/engage/transcription/TranscriptionProvider.d.ts +51 -0
- package/lib/typescript/features/install-referrer/installReferrer.d.ts +39 -0
- package/lib/typescript/features/journey/ScaleBunDebugRoot.d.ts +49 -0
- package/lib/typescript/features/journey/ScaleBunFlatList.d.ts +20 -0
- package/lib/typescript/features/journey/ScaleBunImpression.d.ts +30 -0
- package/lib/typescript/features/journey/ScaleBunScrollView.d.ts +25 -0
- package/lib/typescript/features/journey/ScaleBunSectionList.d.ts +20 -0
- package/lib/typescript/features/journey/autoInstrumentScroll.d.ts +46 -0
- package/lib/typescript/features/journey/calibrationContext.d.ts +26 -0
- package/lib/typescript/features/journey/gestureBuffer.d.ts +27 -0
- package/lib/typescript/features/journey/gestureDetector.d.ts +40 -0
- package/lib/typescript/features/journey/impression.d.ts +48 -0
- package/lib/typescript/features/journey/interactionProtocol.d.ts +159 -0
- package/lib/typescript/features/journey/journeyManager.d.ts +62 -0
- package/lib/typescript/features/journey/journeyTypes.d.ts +161 -0
- package/lib/typescript/features/journey/nativeScroll.d.ts +47 -0
- package/lib/typescript/features/journey/navDetector.d.ts +42 -0
- package/lib/typescript/features/journey/screenshotHelper.d.ts +33 -0
- package/lib/typescript/features/journey/scrollContext.d.ts +49 -0
- package/lib/typescript/features/journey/targetGeometry.d.ts +126 -0
- package/lib/typescript/features/journey/targetRegistry.d.ts +28 -0
- package/lib/typescript/features/journey/touchTarget.d.ts +174 -0
- package/lib/typescript/features/journey/uiState.d.ts +93 -0
- package/lib/typescript/features/navigation/AutoScreenDetector.d.ts +196 -0
- package/lib/typescript/features/network/NetworkFeature.d.ts +43 -0
- package/lib/typescript/features/network/index.d.ts +46 -0
- package/lib/typescript/features/network/thirdParty.d.ts +95 -0
- package/lib/typescript/features/ota/OtaEventEmitter.d.ts +93 -0
- package/lib/typescript/features/ota/OtaOrchestrator.d.ts +287 -0
- package/lib/typescript/features/ota/OtaTypes.d.ts +193 -0
- package/lib/typescript/features/ota/deviceAttributes.d.ts +18 -0
- package/lib/typescript/features/ota/environment.d.ts +99 -0
- package/lib/typescript/features/ota/geoCountry.d.ts +14 -0
- package/lib/typescript/features/ota/retry.d.ts +53 -0
- package/lib/typescript/features/ota/signedDownload.d.ts +81 -0
- package/lib/typescript/features/ota/useOtaUpdate.d.ts +72 -0
- package/lib/typescript/features/performance/PerformanceFeature.d.ts +132 -0
- package/lib/typescript/features/performance/collectors/AppLaunchCollector.d.ts +27 -0
- package/lib/typescript/features/performance/collectors/AutoScreenLoadCollector.d.ts +70 -0
- package/lib/typescript/features/performance/collectors/CustomTraceCollector.d.ts +35 -0
- package/lib/typescript/features/performance/collectors/FrameMetricsCollector.d.ts +74 -0
- package/lib/typescript/features/performance/collectors/JsStallCollector.d.ts +45 -0
- package/lib/typescript/features/performance/collectors/NetworkPerfCollector.d.ts +23 -0
- package/lib/typescript/features/performance/collectors/ScreenLoadCollector.d.ts +30 -0
- package/lib/typescript/features/performance/collectors/UiHangCollector.d.ts +21 -0
- package/lib/typescript/features/performance/config.d.ts +73 -0
- package/lib/typescript/features/performance/getNativePerformanceModule.d.ts +2 -0
- package/lib/typescript/features/performance/index.d.ts +10 -0
- package/lib/typescript/features/performance/metrics/MetricsEngine.d.ts +69 -0
- package/lib/typescript/features/performance/models.d.ts +169 -0
- package/lib/typescript/features/performance/transport/PerformanceTransport.d.ts +40 -0
- package/lib/typescript/features/profiler/ProfilerFeature.d.ts +92 -0
- package/lib/typescript/features/profiler/config.d.ts +85 -0
- package/lib/typescript/features/profiler/contracts.d.ts +142 -0
- package/lib/typescript/features/profiler/index.d.ts +13 -0
- package/lib/typescript/features/profiler/models.d.ts +332 -0
- package/lib/typescript/features/profiler/transport/ProfilerTransport.d.ts +30 -0
- package/lib/typescript/features/replay/bridge/adapters/bridgeAdapter.d.ts +52 -0
- package/lib/typescript/features/replay/bridge/eventEmitter.d.ts +100 -0
- package/lib/typescript/features/replay/bridge/nativeModule.d.ts +166 -0
- package/lib/typescript/features/replay/bridge/nativeQuota.d.ts +26 -0
- package/lib/typescript/features/replay/core/clock/clock.d.ts +16 -0
- package/lib/typescript/features/replay/core/config/defaults.d.ts +28 -0
- package/lib/typescript/features/replay/core/config/validator.d.ts +13 -0
- package/lib/typescript/features/replay/core/env/environmentDetector.d.ts +14 -0
- package/lib/typescript/features/replay/core/errors/safeCall.d.ts +12 -0
- package/lib/typescript/features/replay/core/ids/sessionId.d.ts +15 -0
- package/lib/typescript/features/replay/core/logger/logger.d.ts +15 -0
- package/lib/typescript/features/replay/core/privacy/privacyTypes.d.ts +24 -0
- package/lib/typescript/features/replay/core/queue/boundedQueue.d.ts +29 -0
- package/lib/typescript/features/replay/integrations/alert/alertInstrumentation.d.ts +48 -0
- package/lib/typescript/features/replay/integrations/logs/consoleIntegration.d.ts +18 -0
- package/lib/typescript/features/replay/integrations/network/networkAdapter.d.ts +31 -0
- package/lib/typescript/features/replay/integrations/react-navigation/navigationIntegration.d.ts +25 -0
- package/lib/typescript/features/replay/integrations/touch/ReplayRoot.d.ts +26 -0
- package/lib/typescript/features/replay/pipeline/batching/batchManager.d.ts +47 -0
- package/lib/typescript/features/replay/pipeline/envelope/envelopeBuilder.d.ts +12 -0
- package/lib/typescript/features/replay/pipeline/retry/retryPolicy.d.ts +17 -0
- package/lib/typescript/features/replay/pipeline/transport/transportTypes.d.ts +40 -0
- package/lib/typescript/features/replay/public/api.d.ts +83 -0
- package/lib/typescript/features/replay/public/enums.d.ts +73 -0
- package/lib/typescript/features/replay/public/types.d.ts +249 -0
- package/lib/typescript/features/replay/replay/breadcrumbs/breadcrumbCollector.d.ts +26 -0
- package/lib/typescript/features/replay/replay/frames/frameModels.d.ts +23 -0
- package/lib/typescript/features/replay/replay/session/sessionOrchestrator.d.ts +53 -0
- package/lib/typescript/features/replay/replay/timeline/timelineModels.d.ts +29 -0
- package/lib/typescript/features/replay/transport/BackendReplayTransport.d.ts +45 -0
- package/lib/typescript/features/replay/transport/CompositeReplayTransport.d.ts +22 -0
- package/lib/typescript/features/replay/transport/DesktopReplayTransport.d.ts +35 -0
- package/lib/typescript/features/replay/transport/ReplayTransport.d.ts +72 -0
- package/lib/typescript/features/session/BackendSessionAdapter.d.ts +528 -0
- package/lib/typescript/features/session/DesktopSessionTransport.d.ts +28 -0
- package/lib/typescript/features/session/JourneyEventPipeline.d.ts +74 -0
- package/lib/typescript/features/session/ReplayCaptureManager.d.ts +391 -0
- package/lib/typescript/features/session/ScrollTracker.d.ts +48 -0
- package/lib/typescript/features/session/SessionManager.d.ts +414 -0
- package/lib/typescript/features/session/SyncDecisionEngine.d.ts +33 -0
- package/lib/typescript/features/session/frameLink.d.ts +27 -0
- package/lib/typescript/features/session/frameScrollState.d.ts +27 -0
- package/lib/typescript/features/session/index.d.ts +23 -0
- package/lib/typescript/features/session/nativeCapture.d.ts +18 -0
- package/lib/typescript/features/session/outboxFrameCapture.d.ts +20 -0
- package/lib/typescript/features/session/sessionTypes.d.ts +362 -0
- package/lib/typescript/features/session/viewportPlausibility.d.ts +72 -0
- package/lib/typescript/features/skan/skanBridge.d.ts +18 -0
- package/lib/typescript/features/skan/skanConversionManager.d.ts +69 -0
- package/lib/typescript/index.d.ts +59 -0
- package/lib/typescript/integrations/fetch/fetchInterceptor.d.ts +41 -0
- package/lib/typescript/integrations/navigation/screenTracker.d.ts +1 -0
- package/lib/typescript/integrations/network/bodyCapture.d.ts +101 -0
- package/lib/typescript/integrations/xhr/xhrInterceptor.d.ts +46 -0
- package/lib/typescript/metro/composeSourceMap.d.ts +26 -0
- package/lib/typescript/metro/featureModules.d.ts +49 -0
- package/lib/typescript/metro/index.d.ts +99 -0
- package/lib/typescript/metro/optionalDependencyStub.d.ts +14 -0
- package/lib/typescript/metro/optionalModules.d.ts +20 -0
- package/lib/typescript/metro/serializerCompose.d.ts +46 -0
- package/lib/typescript/pipeline/dispatcher/dispatcher.d.ts +7 -0
- package/lib/typescript/pipeline/envelope/envelope.d.ts +16 -0
- package/lib/typescript/pipeline/envelope/serializer.d.ts +7 -0
- package/lib/typescript/pipeline/processors/dedupe.d.ts +1 -0
- package/lib/typescript/pipeline/processors/enrich.d.ts +3 -0
- package/lib/typescript/pipeline/processors/sampling.d.ts +1 -0
- package/lib/typescript/pipeline/processors/sanitize.d.ts +3 -0
- package/lib/typescript/pipeline/queue/flushQueue.d.ts +12 -0
- package/lib/typescript/pipeline/queue/memoryQueue.d.ts +12 -0
- package/lib/typescript/pipeline/queue/persistentQueue.d.ts +120 -0
- package/lib/typescript/pipeline/queue/queuePolicy.d.ts +1 -0
- package/lib/typescript/pipeline/scheduler/flushScheduler.d.ts +9 -0
- package/lib/typescript/pipeline/scheduler/retryPolicy.d.ts +5 -0
- package/lib/typescript/public/ScaleBunErrorBoundary.d.ts +44 -0
- package/lib/typescript/public/ScaleBunFacade.d.ts +800 -0
- package/lib/typescript/public/ScaleBunProvider.d.ts +23 -0
- package/lib/typescript/public/typedTracker.d.ts +88 -0
- package/lib/typescript/public/types.d.ts +316 -0
- package/lib/typescript/push/PushManager.d.ts +69 -0
- package/lib/typescript/push/adapters/ManualAdapter.d.ts +40 -0
- package/lib/typescript/push/adapters/NativeBridgeAdapter.d.ts +37 -0
- package/lib/typescript/push/adapters/NoopAdapter.d.ts +21 -0
- package/lib/typescript/push/adapters/RNFirebaseMessagingAdapter.d.ts +39 -0
- package/lib/typescript/push/adapters/loadMessaging.d.ts +17 -0
- package/lib/typescript/push/adapters/loadNotifee.d.ts +15 -0
- package/lib/typescript/push/adapters/selectAdapter.d.ts +20 -0
- package/lib/typescript/push/detect/capabilities.d.ts +15 -0
- package/lib/typescript/push/index.d.ts +10 -0
- package/lib/typescript/push/native/nativeNotifications.d.ts +65 -0
- package/lib/typescript/push/types.d.ts +143 -0
- package/lib/typescript/specs/NativeReplaySdk.d.ts +69 -0
- package/lib/typescript/specs/NativeScaleBunCrash.d.ts +58 -0
- package/lib/typescript/specs/NativeScaleBunInstallReferrer.d.ts +28 -0
- package/lib/typescript/specs/NativeScaleBunOta.d.ts +141 -0
- package/lib/typescript/specs/NativeScaleBunPerformance.d.ts +31 -0
- package/lib/typescript/specs/NativeScaleBunProfiler.d.ts +38 -0
- package/lib/typescript/specs/NativeScaleBunStorage.d.ts +55 -0
- package/lib/typescript/storage/StorageBackend.d.ts +131 -0
- package/lib/typescript/storage/db/sqlite.d.ts +1 -0
- package/lib/typescript/storage/files/fileStore.d.ts +1 -0
- package/lib/typescript/transport/auth/sdkSession.d.ts +10 -0
- package/lib/typescript/transport/backoff/exponentialJitter.d.ts +5 -0
- package/lib/typescript/transport/http/endpoints.d.ts +26 -0
- package/lib/typescript/transport/http/httpClient.d.ts +23 -0
- package/lib/typescript/transport/rateLimit/retryAfter.d.ts +1 -0
- package/lib/typescript/transport/signing/requestSigner.d.ts +1 -0
- package/lib/typescript/vendor/protocol/index.d.ts +345 -0
- package/lib/typescript/vendor/protocol/internal/validation.d.ts +114 -0
- package/lib/typescript/vendor/sdk-contracts/bridge.d.ts +104 -0
- package/lib/typescript/vendor/sdk-contracts/config.d.ts +156 -0
- package/lib/typescript/vendor/sdk-contracts/events.d.ts +42 -0
- package/lib/typescript/vendor/sdk-contracts/features.d.ts +38 -0
- package/lib/typescript/vendor/sdk-contracts/index.d.ts +15 -0
- package/lib/typescript/vendor/sdk-contracts/platform.d.ts +35 -0
- package/lib/typescript/vendor/sdk-contracts/session-boundary.d.ts +42 -0
- package/lib/typescript/vendor/sdk-contracts/session.d.ts +157 -0
- package/package.json +153 -0
- package/react-native.config.js +24 -0
- package/scalebun-react-native.podspec +44 -0
- package/src/analytics/EventTracker.ts +654 -0
- package/src/analytics/automaticEvents.ts +109 -0
- package/src/analytics/batching.ts +54 -0
- package/src/analytics/eventLane.ts +48 -0
- package/src/analytics/revenue.ts +143 -0
- package/src/analytics/subscription.ts +145 -0
- package/src/bootstrap/FeatureRegistry.ts +81 -0
- package/src/bootstrap/SDKBootstrapper.ts +769 -0
- package/src/bucketing/fnv1a32.ts +40 -0
- package/src/compat/codepush.ts +189 -0
- package/src/config/ConfigManager.ts +233 -0
- package/src/config/configTypes.ts +62 -0
- package/src/config/otaPolicyState.ts +79 -0
- package/src/config/quotaState.ts +484 -0
- package/src/core/architecture.ts +39 -0
- package/src/core/clock/now.ts +6 -0
- package/src/core/config/defaults.ts +0 -0
- package/src/core/config/schema.ts +455 -0
- package/src/core/constants/endpoints.ts +12 -0
- package/src/core/constants/protocol.ts +24 -0
- package/src/core/constants/timings.ts +25 -0
- package/src/core/constants/version.ts +11 -0
- package/src/core/context/app.ts +0 -0
- package/src/core/context/device.ts +169 -0
- package/src/core/context/session.ts +0 -0
- package/src/core/context/user.ts +26 -0
- package/src/core/contracts/IFeature.ts +53 -0
- package/src/core/di/container.ts +26 -0
- package/src/core/encoding/base64.ts +46 -0
- package/src/core/id/deviceId.ts +51 -0
- package/src/core/id/installationId.ts +52 -0
- package/src/core/id/sessionId.ts +0 -0
- package/src/core/lifecycle/appLifecycle.ts +33 -0
- package/src/core/lifecycle/crashSafe.ts +29 -0
- package/src/core/logger/errorClassification.ts +108 -0
- package/src/core/logger/internalLogger.ts +65 -0
- package/src/core/logger/levels.ts +0 -0
- package/src/crypto/hmacSha256.ts +106 -0
- package/src/debug/bootstrap.ts +436 -0
- package/src/debug/commands.ts +597 -0
- package/src/debug/configBuilder.ts +56 -0
- package/src/debug/exportBridge.ts +155 -0
- package/src/debug/hostResolver.ts +34 -0
- package/src/debug/index.ts +25 -0
- package/src/debug/metrics.ts +29 -0
- package/src/debug/perf.ts +212 -0
- package/src/debug/perfWiring.ts +119 -0
- package/src/debug/protocol.ts +58 -0
- package/src/debug/redaction.ts +483 -0
- package/src/debug/replayWiring.ts +148 -0
- package/src/debug/screenTracking.ts +55 -0
- package/src/debug/sessionWiring.ts +59 -0
- package/src/debug/stream.ts +561 -0
- package/src/debug/transport.ts +440 -0
- package/src/features/bugreport/BugReportFeature.ts +128 -0
- package/src/features/bugreport/buildPayload.ts +116 -0
- package/src/features/bugreport/index.ts +0 -0
- package/src/features/crash/CrashFeature.ts +87 -0
- package/src/features/crash/CrashReporter.ts +189 -0
- package/src/features/crash/NativeCrashFeature.ts +42 -0
- package/src/features/crash/capture.ts +48 -0
- package/src/features/crash/globalHandler.ts +39 -0
- package/src/features/crash/index.ts +8 -0
- package/src/features/crash/nativeCrashBridge.ts +352 -0
- package/src/features/crash/rejectionHandler.ts +196 -0
- package/src/features/crash/scrubCrash.ts +175 -0
- package/src/features/engage/EngageAnchor.tsx +159 -0
- package/src/features/engage/EngageArchetypeRenderers.tsx +3705 -0
- package/src/features/engage/EngageInAppView.tsx +2678 -0
- package/src/features/engage/EngageInlinePlacement.tsx +169 -0
- package/src/features/engage/EngagePromptProvider.tsx +1318 -0
- package/src/features/engage/EngagePromptView.tsx +1400 -0
- package/src/features/engage/EngageTransport.ts +668 -0
- package/src/features/engage/EngageVariantContent.tsx +1483 -0
- package/src/features/engage/__test-support__/reactNativeStub.js +40 -0
- package/src/features/engage/attachmentCapture.ts +45 -0
- package/src/features/engage/captureVoiceAttachment.ts +81 -0
- package/src/features/engage/engageCoachmarkTour.ts +120 -0
- package/src/features/engage/engageGameLogic.ts +347 -0
- package/src/features/engage/engageMediaSizing.ts +76 -0
- package/src/features/engage/engageMultiStepSheet.ts +53 -0
- package/src/features/engage/engageOutcome.ts +157 -0
- package/src/features/engage/engagePushTokenBridge.ts +84 -0
- package/src/features/engage/engageShakeBridge.ts +67 -0
- package/src/features/engage/engageSignals.ts +40 -0
- package/src/features/engage/engageStoreReviewBridge.ts +48 -0
- package/src/features/engage/engageTestSeenStore.ts +95 -0
- package/src/features/engage/engageThrottle.ts +478 -0
- package/src/features/engage/engageTriggerEngine.ts +350 -0
- package/src/features/engage/engageTypes.ts +712 -0
- package/src/features/engage/engageVariantResolver.ts +364 -0
- package/src/features/engage/engageWindowInsets.ts +108 -0
- package/src/features/engage/gestureTriggerDetector.ts +83 -0
- package/src/features/engage/transcription/TranscriptionProvider.ts +68 -0
- package/src/features/install-referrer/installReferrer.ts +112 -0
- package/src/features/journey/ScaleBunDebugRoot.tsx +1045 -0
- package/src/features/journey/ScaleBunFlatList.tsx +39 -0
- package/src/features/journey/ScaleBunImpression.tsx +109 -0
- package/src/features/journey/ScaleBunScrollView.tsx +101 -0
- package/src/features/journey/ScaleBunSectionList.tsx +39 -0
- package/src/features/journey/autoInstrumentScroll.ts +155 -0
- package/src/features/journey/calibrationContext.ts +44 -0
- package/src/features/journey/gestureBuffer.ts +59 -0
- package/src/features/journey/gestureDetector.ts +162 -0
- package/src/features/journey/impression.ts +92 -0
- package/src/features/journey/interactionProtocol.ts +243 -0
- package/src/features/journey/journeyManager.ts +469 -0
- package/src/features/journey/journeyTypes.ts +215 -0
- package/src/features/journey/nativeScroll.ts +94 -0
- package/src/features/journey/navDetector.ts +149 -0
- package/src/features/journey/screenshotHelper.ts +137 -0
- package/src/features/journey/scrollContext.ts +146 -0
- package/src/features/journey/targetGeometry.ts +197 -0
- package/src/features/journey/targetRegistry.ts +43 -0
- package/src/features/journey/touchTarget.ts +339 -0
- package/src/features/journey/uiState.ts +182 -0
- package/src/features/navigation/AutoScreenDetector.ts +617 -0
- package/src/features/network/NetworkFeature.ts +232 -0
- package/src/features/network/index.ts +59 -0
- package/src/features/network/thirdParty.ts +160 -0
- package/src/features/ota/OtaEventEmitter.ts +187 -0
- package/src/features/ota/OtaOrchestrator.ts +1513 -0
- package/src/features/ota/OtaTypes.ts +230 -0
- package/src/features/ota/deviceAttributes.ts +46 -0
- package/src/features/ota/environment.ts +199 -0
- package/src/features/ota/geoCountry.ts +85 -0
- package/src/features/ota/retry.ts +123 -0
- package/src/features/ota/signedDownload.ts +202 -0
- package/src/features/ota/useOtaUpdate.ts +161 -0
- package/src/features/performance/PerformanceFeature.ts +729 -0
- package/src/features/performance/collectors/AppLaunchCollector.ts +131 -0
- package/src/features/performance/collectors/AutoScreenLoadCollector.ts +258 -0
- package/src/features/performance/collectors/CustomTraceCollector.ts +116 -0
- package/src/features/performance/collectors/FrameMetricsCollector.ts +210 -0
- package/src/features/performance/collectors/JsStallCollector.ts +184 -0
- package/src/features/performance/collectors/NetworkPerfCollector.ts +69 -0
- package/src/features/performance/collectors/ScreenLoadCollector.ts +95 -0
- package/src/features/performance/collectors/UiHangCollector.ts +98 -0
- package/src/features/performance/config.ts +136 -0
- package/src/features/performance/getNativePerformanceModule.ts +38 -0
- package/src/features/performance/index.ts +28 -0
- package/src/features/performance/metrics/MetricsEngine.ts +152 -0
- package/src/features/performance/models.ts +235 -0
- package/src/features/performance/transport/PerformanceTransport.ts +161 -0
- package/src/features/profiler/ProfilerFeature.ts +661 -0
- package/src/features/profiler/config.ts +230 -0
- package/src/features/profiler/contracts.ts +176 -0
- package/src/features/profiler/index.ts +45 -0
- package/src/features/profiler/models.ts +430 -0
- package/src/features/profiler/transport/ProfilerTransport.ts +93 -0
- package/src/features/replay/bridge/adapters/bridgeAdapter.ts +235 -0
- package/src/features/replay/bridge/eventEmitter.ts +176 -0
- package/src/features/replay/bridge/nativeModule.ts +252 -0
- package/src/features/replay/bridge/nativeQuota.ts +111 -0
- package/src/features/replay/core/clock/clock.ts +38 -0
- package/src/features/replay/core/config/defaults.ts +66 -0
- package/src/features/replay/core/config/validator.ts +113 -0
- package/src/features/replay/core/env/environmentDetector.ts +21 -0
- package/src/features/replay/core/errors/safeCall.ts +34 -0
- package/src/features/replay/core/ids/sessionId.ts +44 -0
- package/src/features/replay/core/logger/logger.ts +36 -0
- package/src/features/replay/core/privacy/privacyTypes.ts +41 -0
- package/src/features/replay/core/queue/boundedQueue.ts +71 -0
- package/src/features/replay/integrations/alert/alertInstrumentation.ts +277 -0
- package/src/features/replay/integrations/logs/consoleIntegration.ts +136 -0
- package/src/features/replay/integrations/network/networkAdapter.ts +73 -0
- package/src/features/replay/integrations/react-navigation/navigationIntegration.ts +89 -0
- package/src/features/replay/integrations/touch/ReplayRoot.tsx +114 -0
- package/src/features/replay/pipeline/batching/batchManager.ts +133 -0
- package/src/features/replay/pipeline/envelope/envelopeBuilder.ts +66 -0
- package/src/features/replay/pipeline/retry/retryPolicy.ts +62 -0
- package/src/features/replay/pipeline/transport/transportTypes.ts +85 -0
- package/src/features/replay/public/api.ts +364 -0
- package/src/features/replay/public/enums.ts +78 -0
- package/src/features/replay/public/types.ts +297 -0
- package/src/features/replay/replay/breadcrumbs/breadcrumbCollector.ts +115 -0
- package/src/features/replay/replay/frames/frameModels.ts +45 -0
- package/src/features/replay/replay/session/sessionOrchestrator.ts +286 -0
- package/src/features/replay/replay/timeline/timelineModels.ts +129 -0
- package/src/features/replay/transport/BackendReplayTransport.ts +215 -0
- package/src/features/replay/transport/CompositeReplayTransport.ts +82 -0
- package/src/features/replay/transport/DesktopReplayTransport.ts +140 -0
- package/src/features/replay/transport/ReplayTransport.ts +84 -0
- package/src/features/session/BackendSessionAdapter.ts +1977 -0
- package/src/features/session/DesktopSessionTransport.ts +130 -0
- package/src/features/session/JourneyEventPipeline.ts +278 -0
- package/src/features/session/ReplayCaptureManager.ts +1401 -0
- package/src/features/session/ScrollTracker.ts +166 -0
- package/src/features/session/SessionManager.ts +1687 -0
- package/src/features/session/SyncDecisionEngine.ts +117 -0
- package/src/features/session/frameLink.ts +41 -0
- package/src/features/session/frameScrollState.ts +36 -0
- package/src/features/session/index.ts +88 -0
- package/src/features/session/nativeCapture.ts +43 -0
- package/src/features/session/outboxFrameCapture.ts +79 -0
- package/src/features/session/sessionTypes.ts +528 -0
- package/src/features/session/viewportPlausibility.ts +134 -0
- package/src/features/skan/skanBridge.ts +53 -0
- package/src/features/skan/skanConversionManager.ts +173 -0
- package/src/index.ts +206 -0
- package/src/integrations/fetch/fetchInterceptor.ts +201 -0
- package/src/integrations/navigation/screenTracker.ts +0 -0
- package/src/integrations/network/bodyCapture.ts +328 -0
- package/src/integrations/xhr/xhrInterceptor.ts +259 -0
- package/src/metro/composeSourceMap.ts +104 -0
- package/src/metro/featureModules.ts +143 -0
- package/src/metro/index.ts +336 -0
- package/src/metro/optionalDependencyStub.ts +13 -0
- package/src/metro/optionalModules.ts +27 -0
- package/src/metro/serializerCompose.ts +193 -0
- package/src/pipeline/dispatcher/dispatcher.ts +22 -0
- package/src/pipeline/envelope/envelope.ts +31 -0
- package/src/pipeline/envelope/serializer.ts +14 -0
- package/src/pipeline/processors/dedupe.ts +0 -0
- package/src/pipeline/processors/enrich.ts +11 -0
- package/src/pipeline/processors/sampling.ts +0 -0
- package/src/pipeline/processors/sanitize.ts +23 -0
- package/src/pipeline/queue/flushQueue.ts +144 -0
- package/src/pipeline/queue/memoryQueue.ts +31 -0
- package/src/pipeline/queue/persistentQueue.ts +385 -0
- package/src/pipeline/queue/queuePolicy.ts +0 -0
- package/src/pipeline/scheduler/flushScheduler.ts +47 -0
- package/src/pipeline/scheduler/retryPolicy.ts +8 -0
- package/src/public/ScaleBunErrorBoundary.tsx +91 -0
- package/src/public/ScaleBunFacade.ts +2129 -0
- package/src/public/ScaleBunProvider.tsx +91 -0
- package/src/public/typedTracker.ts +123 -0
- package/src/public/types.ts +362 -0
- package/src/push/PushManager.ts +318 -0
- package/src/push/adapters/ManualAdapter.ts +100 -0
- package/src/push/adapters/NativeBridgeAdapter.ts +142 -0
- package/src/push/adapters/NoopAdapter.ts +46 -0
- package/src/push/adapters/RNFirebaseMessagingAdapter.ts +271 -0
- package/src/push/adapters/loadMessaging.ts +24 -0
- package/src/push/adapters/loadNotifee.ts +29 -0
- package/src/push/adapters/selectAdapter.ts +176 -0
- package/src/push/detect/capabilities.ts +124 -0
- package/src/push/index.ts +22 -0
- package/src/push/native/nativeNotifications.ts +207 -0
- package/src/push/types.ts +159 -0
- package/src/specs/NativeReplaySdk.ts +101 -0
- package/src/specs/NativeScaleBunCrash.ts +64 -0
- package/src/specs/NativeScaleBunInstallReferrer.ts +29 -0
- package/src/specs/NativeScaleBunOta.ts +154 -0
- package/src/specs/NativeScaleBunPerformance.ts +34 -0
- package/src/specs/NativeScaleBunProfiler.ts +41 -0
- package/src/specs/NativeScaleBunStorage.ts +59 -0
- package/src/storage/StorageBackend.ts +272 -0
- package/src/storage/db/sqlite.ts +0 -0
- package/src/storage/files/fileStore.ts +0 -0
- package/src/transport/auth/sdkSession.ts +27 -0
- package/src/transport/backoff/exponentialJitter.ts +9 -0
- package/src/transport/http/endpoints.ts +33 -0
- package/src/transport/http/httpClient.ts +73 -0
- package/src/transport/rateLimit/retryAfter.ts +0 -0
- package/src/transport/signing/requestSigner.ts +0 -0
- package/src/vendor/protocol/index.ts +391 -0
- package/src/vendor/protocol/internal/validation.ts +497 -0
- package/src/vendor/sdk-contracts/bridge.ts +162 -0
- package/src/vendor/sdk-contracts/config.ts +192 -0
- package/src/vendor/sdk-contracts/events.ts +50 -0
- package/src/vendor/sdk-contracts/features.ts +42 -0
- package/src/vendor/sdk-contracts/index.ts +98 -0
- package/src/vendor/sdk-contracts/platform.ts +42 -0
- package/src/vendor/sdk-contracts/session-boundary.ts +55 -0
- package/src/vendor/sdk-contracts/session.ts +225 -0
- package/src/vendor/vendor.manifest +10 -0
|
@@ -0,0 +1,800 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — Public Facade
|
|
3
|
+
*
|
|
4
|
+
* Single clean entry point for the ScaleBun SDK.
|
|
5
|
+
* Delegates initialization to SDKBootstrapper, which handles config validation,
|
|
6
|
+
* core service setup, handshake, and feature registration via FeatureRegistry.
|
|
7
|
+
*
|
|
8
|
+
* Config model preserved exactly: projectId, publishableKey, apiBaseUrl.
|
|
9
|
+
* Features are default-on with explicit opt-out via `features: { replay: false }`.
|
|
10
|
+
*/
|
|
11
|
+
import type { BugSubmitResult } from '../features/bugreport/BugReportFeature';
|
|
12
|
+
import type { DebugConfig } from '../debug';
|
|
13
|
+
import type { ReplayUser, ReplayBreadcrumb, ReplayPrivacyOptions } from '../features/replay/public/types';
|
|
14
|
+
import type { SubscriptionInput } from '../analytics/subscription';
|
|
15
|
+
import type { RevenueInput } from '../analytics/revenue';
|
|
16
|
+
import { type SubmitStage } from '../features/engage/EngageTransport';
|
|
17
|
+
import type { EnablePushOptions, EnablePushResult, PushNotification } from '../push/types';
|
|
18
|
+
import type { EngageAttachmentDraft, EngageConfigContext, EngageConfigResponse, EngageEventInput, EngageResponseInput, RatingFunnelEventInput, SurveyImpressionInput } from '../features/engage/engageTypes';
|
|
19
|
+
import { type SkanCoarseValue } from '../features/skan/skanBridge';
|
|
20
|
+
import type { ScaleBunInitConfig, ScaleBunUser, ScaleBunFeatures, SimplifiedInitConfig, PrivacyConfig, BrandingConfig, ExportPresetName, SimplifiedExportOptions, ExportResult } from './types';
|
|
21
|
+
declare class ScaleBunFacade {
|
|
22
|
+
private initialized;
|
|
23
|
+
/** In-flight init promise — guards against a second init() racing before the first resolves. */
|
|
24
|
+
private _initInFlight;
|
|
25
|
+
private bootstrapper;
|
|
26
|
+
private _features;
|
|
27
|
+
private _performanceFeature;
|
|
28
|
+
private _privacyConfig;
|
|
29
|
+
private _brandingConfig;
|
|
30
|
+
private _clientKey;
|
|
31
|
+
private _apiBaseUrl;
|
|
32
|
+
private _engageTransport;
|
|
33
|
+
private _engageTokenUnsubscribe;
|
|
34
|
+
private _pushManager;
|
|
35
|
+
/** Phase 1 envelope event-tracking lane (POST /v1/batch). Null until init with appId. */
|
|
36
|
+
private _eventTracker;
|
|
37
|
+
/** External identity last supplied through identify(); used by config targeting. */
|
|
38
|
+
private _identifiedUserId;
|
|
39
|
+
/** Identity supplied while async initialization is still in flight. */
|
|
40
|
+
private _pendingIdentity;
|
|
41
|
+
private _configManager;
|
|
42
|
+
/**
|
|
43
|
+
* The ConfigManager that owns /config refreshes for quota: `_configManager` when the event
|
|
44
|
+
* tracker created one, else a quota-only instance (no appId → no tracker, but a clientKey still
|
|
45
|
+
* has a plan with limits). Never exposed through the flags/experiments API.
|
|
46
|
+
*/
|
|
47
|
+
private _configRefresher;
|
|
48
|
+
private _configForegroundListener;
|
|
49
|
+
/** The developer's locally-configured replay captureMode — the value to revert to when an
|
|
50
|
+
* admin-forced frequency override (from /config) is withdrawn. Default matches the SDK default. */
|
|
51
|
+
private _devCaptureMode;
|
|
52
|
+
/** True while an admin frequency override from /config is applied, so we know to revert. */
|
|
53
|
+
private _replayOverrideActive;
|
|
54
|
+
/** Signature of the last identity POSTed to the ingestion identify endpoint, to skip redundant re-sends. */
|
|
55
|
+
private _lastIngestionIdentityKey;
|
|
56
|
+
/** Phase 3: auto-applies SKAN conversion values from the server schema (iOS only). */
|
|
57
|
+
private _skanManager;
|
|
58
|
+
/**
|
|
59
|
+
* Pre-init memory buffer.
|
|
60
|
+
* Events tracked before init() completes are buffered here,
|
|
61
|
+
* then drained into the real persistent queue post-init.
|
|
62
|
+
*/
|
|
63
|
+
private _preInitBuffer;
|
|
64
|
+
/** Resolve the active queue (DI container or pre-init buffer) */
|
|
65
|
+
private _getQueue;
|
|
66
|
+
/**
|
|
67
|
+
* Initialize the ScaleBun SDK.
|
|
68
|
+
*
|
|
69
|
+
* **Simplified usage** (recommended):
|
|
70
|
+
* ```ts
|
|
71
|
+
* await ScaleBun.init({
|
|
72
|
+
* projectId: 'proj_xxx',
|
|
73
|
+
* publishableKey: 'pk_xxx',
|
|
74
|
+
* apiBaseUrl: 'https://api.scalebun.com',
|
|
75
|
+
* debug: true,
|
|
76
|
+
* });
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* Accepts both `SimplifiedInitConfig` (new) and `ScaleBunInitConfig` (legacy).
|
|
80
|
+
* If `debug` key is present, auto-connects to the desktop debugger.
|
|
81
|
+
*/
|
|
82
|
+
init(rawConfig: SimplifiedInitConfig | ScaleBunInitConfig | any): Promise<void>;
|
|
83
|
+
/**
|
|
84
|
+
* Boot the OTA orchestrator when the init config asks for it.
|
|
85
|
+
*
|
|
86
|
+
* Signature enforcement is no longer configured from JS. Signed releases are
|
|
87
|
+
* verified and staged in NATIVE code against RSA keys embedded in the app
|
|
88
|
+
* package (SB-OTA-RSA-SHA256-V1); unsigned releases keep working on SHA-256
|
|
89
|
+
* integrity. There are no signing-key or `verifySignature` options to pass
|
|
90
|
+
* through — the host embeds its trusted keys natively.
|
|
91
|
+
*/
|
|
92
|
+
private _maybeStartOta;
|
|
93
|
+
/** Guards against overlapping config-driven OTA checks. */
|
|
94
|
+
private _otaCheckInFlight;
|
|
95
|
+
/** Wall clock of the last config-driven check, for the foreground floor. */
|
|
96
|
+
private _otaLastCheckAt;
|
|
97
|
+
private _otaForegroundListener;
|
|
98
|
+
/**
|
|
99
|
+
* Minimum gap between config-driven checks.
|
|
100
|
+
*
|
|
101
|
+
* A foreground transition is cheap to trigger — app switchers, permission
|
|
102
|
+
* dialogs and share sheets all produce one — so an unthrottled check would
|
|
103
|
+
* put a request on the hot path every time the user glanced away. Ten
|
|
104
|
+
* minutes is well below any realistic release cadence and well above that
|
|
105
|
+
* noise. A host that wants a check on demand calls `useOtaUpdate().sync()`,
|
|
106
|
+
* which is never throttled.
|
|
107
|
+
*/
|
|
108
|
+
private static readonly OTA_MIN_CHECK_INTERVAL_MS;
|
|
109
|
+
/**
|
|
110
|
+
* Drive OTA checks from init config: once at startup, then on each
|
|
111
|
+
* foreground when `checkOnForeground` is on (the schema default).
|
|
112
|
+
*
|
|
113
|
+
* `appVersion` is resolved from the native bridge rather than asked of the
|
|
114
|
+
* integrator, because it gates the server's `targetAppVersion` semver check
|
|
115
|
+
* — sending a wrong or invented value is worse than sending none, and there
|
|
116
|
+
* is no honest default. If it cannot be resolved, the check is skipped with
|
|
117
|
+
* a warning instead of guessing.
|
|
118
|
+
*/
|
|
119
|
+
private _startOtaChecks;
|
|
120
|
+
private _autoEnableDebug;
|
|
121
|
+
/**
|
|
122
|
+
* Keep /config (and with it the per-feature quota state) live for any clientKey-configured app.
|
|
123
|
+
*
|
|
124
|
+
* - Creates a quota-only ConfigManager when the appId-gated event tracker did not create one.
|
|
125
|
+
* Its exposure/stamp hooks are inert; it is not the flags API's manager.
|
|
126
|
+
* - Registers the FORCED refresh quotaState runs when a block's refresh time is reached (the
|
|
127
|
+
* only way a block is lifted — never the device clock alone).
|
|
128
|
+
* - Refreshes on foreground, throttled by ConfigManager's 5-minute TTL (ETag-aware), which is how
|
|
129
|
+
* a raised limit reaches a long-lived app.
|
|
130
|
+
*
|
|
131
|
+
* BEHAVIOUR CHANGE, deliberate (quota contract v1): apps WITHOUT an appId now fetch /config once
|
|
132
|
+
* per launch, and every clientKey app re-fetches it on foreground after 5 minutes. That fetch is
|
|
133
|
+
* how a block — and the raising of a limit — reaches the device; it is not an ingestion request.
|
|
134
|
+
* The quota-only manager applies NOTHING else from /config: no flags API, no experiment
|
|
135
|
+
* exposure, and no admin replayCapture override (that stays an appId-app behaviour, as before).
|
|
136
|
+
*/
|
|
137
|
+
private _startConfigLifecycle;
|
|
138
|
+
/**
|
|
139
|
+
* Release what _startConfigLifecycle registered (the forced-refresh hook and the foreground
|
|
140
|
+
* listener). The facade has no teardown path today; this is the one to call when it gets one.
|
|
141
|
+
*/
|
|
142
|
+
private _stopConfigLifecycle;
|
|
143
|
+
/** Boot the Phase 1 envelope tracking lane if an appId is configured. */
|
|
144
|
+
private _maybeStartEventTracker;
|
|
145
|
+
/**
|
|
146
|
+
* Fold the native bridge's device facts into the analytics context once it answers.
|
|
147
|
+
*
|
|
148
|
+
* Detected values never overwrite a populated one with an empty one — `nativeDeviceContext`
|
|
149
|
+
* drops absent keys and `applyDetectedContext` ignores an empty patch — so a bridge that
|
|
150
|
+
* cannot answer leaves whatever `Platform.constants` already found.
|
|
151
|
+
*/
|
|
152
|
+
private _applyNativeDeviceContext;
|
|
153
|
+
/**
|
|
154
|
+
* Apply (or revert) the admin-controlled replay capture override delivered via GET /config.
|
|
155
|
+
*
|
|
156
|
+
* When the super-admin has forced timer capture, `override` is `{ mode: 'frequency', intervalMs }`
|
|
157
|
+
* and we switch replay to frequency at that interval — overriding the developer's local
|
|
158
|
+
* captureMode (which Part 1 restricts to navigation/interactions). When the override is withdrawn
|
|
159
|
+
* (`null`) AND we had previously applied one, we revert to the developer's configured mode.
|
|
160
|
+
*
|
|
161
|
+
* Non-throwing and a no-op when replay is disabled. Idempotent — re-applying the same override
|
|
162
|
+
* just re-asserts the native state, which is harmless.
|
|
163
|
+
*/
|
|
164
|
+
private _applyReplayCaptureOverride;
|
|
165
|
+
/**
|
|
166
|
+
* Android-only: read the Play Install Referrer once per install and route it into
|
|
167
|
+
* attribution. `scalebun_click_id` → the deterministic click path; the full
|
|
168
|
+
* referrer (utm_source/gclid/…) rides on a one-off `install_referrer` event. A
|
|
169
|
+
* `null` fetch (Play unavailable/transient) is not marked captured, so a later
|
|
170
|
+
* launch retries while Play still has the referrer. Never throws.
|
|
171
|
+
*/
|
|
172
|
+
private _captureInstallReferrer;
|
|
173
|
+
/**
|
|
174
|
+
* Phase 1 envelope event tracking API (POST /v1/batch).
|
|
175
|
+
* Methods are no-ops (never throw) until init() is called with an `appId`.
|
|
176
|
+
*/
|
|
177
|
+
get events(): {
|
|
178
|
+
track: (eventName: string, properties?: Record<string, any>) => void | undefined;
|
|
179
|
+
identify: (userId: string, traits?: Record<string, any>) => void | undefined;
|
|
180
|
+
trackPurchase: (input: RevenueInput) => void | undefined;
|
|
181
|
+
trackSubscription: (input: SubscriptionInput) => void | undefined;
|
|
182
|
+
setIdentifiers: (ids: {
|
|
183
|
+
idfa?: string;
|
|
184
|
+
gaid?: string;
|
|
185
|
+
idfv?: string;
|
|
186
|
+
}) => void | undefined;
|
|
187
|
+
setAttributionClickId: (clickId: string) => void | undefined;
|
|
188
|
+
flush: () => Promise<void>;
|
|
189
|
+
newSession: () => void | undefined;
|
|
190
|
+
ids: () => {
|
|
191
|
+
installationId: string;
|
|
192
|
+
anonymousId: string;
|
|
193
|
+
sessionId: string;
|
|
194
|
+
userId: string | undefined;
|
|
195
|
+
} | null;
|
|
196
|
+
/** Pending and dropped event counts for host diagnostics. */
|
|
197
|
+
stats: () => import("../analytics/EventTracker").EventTrackerStats | null;
|
|
198
|
+
updateSkanConversionValue: (value: number, coarseValue?: SkanCoarseValue, lockWindow?: boolean) => Promise<boolean>;
|
|
199
|
+
};
|
|
200
|
+
/**
|
|
201
|
+
* Phase 4: runtime config delivered via GET /v1/config. All resolution is local
|
|
202
|
+
* and non-throwing; values default sensibly until init() runs / config is fetched.
|
|
203
|
+
*
|
|
204
|
+
* ScaleBun.config.get('max_items', 10)
|
|
205
|
+
* ScaleBun.flags.isEnabled('new_checkout')
|
|
206
|
+
* ScaleBun.rollouts.isOn('beta_paywall')
|
|
207
|
+
* ScaleBun.experiments.variant('checkout_cta') // → 'control' | 'treatment' | null
|
|
208
|
+
*/
|
|
209
|
+
get config(): {
|
|
210
|
+
get: <T = any>(key: string, fallback: T) => T;
|
|
211
|
+
refresh: () => Promise<void>;
|
|
212
|
+
};
|
|
213
|
+
get flags(): {
|
|
214
|
+
isEnabled: (key: string) => boolean;
|
|
215
|
+
};
|
|
216
|
+
get rollouts(): {
|
|
217
|
+
isOn: (key: string) => boolean;
|
|
218
|
+
};
|
|
219
|
+
get experiments(): {
|
|
220
|
+
variant: (key: string) => string | null;
|
|
221
|
+
};
|
|
222
|
+
/** Convenience: emit a Phase 1 purchase event (revenue + currency + transaction_id). */
|
|
223
|
+
/**
|
|
224
|
+
* Declare which UI state the user is looking at, so taps are attributed to the surface they
|
|
225
|
+
* happened on rather than averaged across every variant of the screen.
|
|
226
|
+
*
|
|
227
|
+
* ScaleBun.setUiState('filter-sheet', 'open');
|
|
228
|
+
* ScaleBun.setUiState('checkout-step', 'payment');
|
|
229
|
+
*
|
|
230
|
+
* Call it when the state CHANGES — the value is read at tap time, so it only has to be right by
|
|
231
|
+
* the time the next tap lands. On React Native this is the ONLY source of UI state: unlike the web,
|
|
232
|
+
* there is no queryable accessibility tree that says a sheet is up, and guessing would produce a
|
|
233
|
+
* state key that is right on some apps and silently wrong on others.
|
|
234
|
+
*
|
|
235
|
+
* Names and values are identifiers, not content: they become query keys in the dashboard, so a
|
|
236
|
+
* person's name or a cart total does not belong in one. `;`, `:` and `|` are stripped and both
|
|
237
|
+
* halves are capped at 32 characters.
|
|
238
|
+
*/
|
|
239
|
+
setUiState(name: string, value: string): void;
|
|
240
|
+
/**
|
|
241
|
+
* Stop reporting a UI state dimension — or, with no argument, all of them.
|
|
242
|
+
*
|
|
243
|
+
* Clear on screen unmount. A declaration left behind follows the user onto a surface where it means
|
|
244
|
+
* nothing, and every tap there is filed under a state that was not on screen.
|
|
245
|
+
*/
|
|
246
|
+
clearUiState(name?: string): void;
|
|
247
|
+
trackPurchase(input: RevenueInput): void;
|
|
248
|
+
/** Record a trial, renewal, plan change or cancellation in the subscription ledger. */
|
|
249
|
+
trackSubscription(input: SubscriptionInput): void;
|
|
250
|
+
/**
|
|
251
|
+
* Phase 3: set the SKAdNetwork fine conversion value (0–63), optionally with a
|
|
252
|
+
* SKAN 4.0 coarse value and window-lock. iOS only — a no-op on Android / Expo Go.
|
|
253
|
+
*/
|
|
254
|
+
updateSkanConversionValue(value: number, coarseValue?: SkanCoarseValue, lockWindow?: boolean): void;
|
|
255
|
+
/** Get the current feature flags (consumed by enableDebug) */
|
|
256
|
+
getFeatureFlags(): ScaleBunFeatures;
|
|
257
|
+
/** Identify a user by ID and optional traits */
|
|
258
|
+
identify(userId: string, traits?: Record<string, any>): void | undefined;
|
|
259
|
+
/**
|
|
260
|
+
* Stable public alias for {@link identify}. Part of the minimal public push
|
|
261
|
+
* API surface (ScaleBun.init / identifyUser / enablePush) that stays
|
|
262
|
+
* identical across RN versions and future platforms.
|
|
263
|
+
*/
|
|
264
|
+
identifyUser(userId: string, traits?: Record<string, any>): void | undefined;
|
|
265
|
+
/** POST user identity to the SaaS ingestion identify endpoint */
|
|
266
|
+
private _callIngestionIdentify;
|
|
267
|
+
/** Set user identity (for session context) */
|
|
268
|
+
setUser(user: ScaleBunUser): void | undefined;
|
|
269
|
+
/**
|
|
270
|
+
* Clear user identity.
|
|
271
|
+
*
|
|
272
|
+
* SB-11: pass `{ purgeLocal: true }` on logout / consent withdrawal to also
|
|
273
|
+
* erase all locally-stored SDK data (see {@link eraseLocalData}). Without it,
|
|
274
|
+
* behaviour is unchanged (identity-only clear).
|
|
275
|
+
*/
|
|
276
|
+
clearUser(options?: {
|
|
277
|
+
purgeLocal?: boolean;
|
|
278
|
+
}): void | undefined;
|
|
279
|
+
/**
|
|
280
|
+
* SB-11: erase all locally-stored SDK data from the device — the durable event
|
|
281
|
+
* queue, the pre-init buffer, and the first-party KV store (cached install /
|
|
282
|
+
* anonymous / session IDs, plus any queued payloads including SB-26 disk data).
|
|
283
|
+
*
|
|
284
|
+
* Order matters: capture is stopped FIRST so nothing is written back in behind
|
|
285
|
+
* the delete. Best-effort and never throws.
|
|
286
|
+
*
|
|
287
|
+
* Note: native replay frames written to disk on iOS are addressed separately
|
|
288
|
+
* (SB-15); this covers every store reachable from JS today.
|
|
289
|
+
*/
|
|
290
|
+
eraseLocalData(): Promise<void>;
|
|
291
|
+
/**
|
|
292
|
+
* SB-11: record the user's data-collection consent. When `enabled` is false,
|
|
293
|
+
* capture is stopped immediately; pass `{ purgeLocal: true }` to also erase
|
|
294
|
+
* everything already stored locally. Never throws.
|
|
295
|
+
*/
|
|
296
|
+
setConsent(enabled: boolean, options?: {
|
|
297
|
+
purgeLocal?: boolean;
|
|
298
|
+
}): void;
|
|
299
|
+
/**
|
|
300
|
+
* SB-10: return the effective privacy policy actually in force, resolving the
|
|
301
|
+
* public config against the SDK's safe defaults. Lets callers and tests assert
|
|
302
|
+
* what is active rather than guessing from the (previously dead) config object.
|
|
303
|
+
*/
|
|
304
|
+
getEffectivePrivacyPolicy(): Required<Pick<PrivacyConfig, 'maskTextInputs' | 'maskImages' | 'redactAuth' | 'redactCookies' | 'redactBodies'>>;
|
|
305
|
+
/**
|
|
306
|
+
* Submit in-app rating (1-5 stars).
|
|
307
|
+
* Attaches to current session when available; otherwise sends standalone.
|
|
308
|
+
* Never throws.
|
|
309
|
+
*/
|
|
310
|
+
submitRating(input: {
|
|
311
|
+
rating: number;
|
|
312
|
+
comment?: string;
|
|
313
|
+
source?: 'in_app' | 'prompt' | 'manual';
|
|
314
|
+
/** [ADDITIVE] client-generated UUID for app-rating idempotency (contract §1.4, D8). */
|
|
315
|
+
clientRatingId?: string;
|
|
316
|
+
}): Promise<{
|
|
317
|
+
ok: boolean;
|
|
318
|
+
reason: "sdk_not_configured";
|
|
319
|
+
status?: undefined;
|
|
320
|
+
} | {
|
|
321
|
+
ok: boolean;
|
|
322
|
+
reason: "invalid_rating";
|
|
323
|
+
status?: undefined;
|
|
324
|
+
} | {
|
|
325
|
+
ok: boolean;
|
|
326
|
+
reason: "http_error";
|
|
327
|
+
status: number;
|
|
328
|
+
} | {
|
|
329
|
+
ok: true;
|
|
330
|
+
reason?: undefined;
|
|
331
|
+
status?: undefined;
|
|
332
|
+
} | {
|
|
333
|
+
ok: boolean;
|
|
334
|
+
reason: "network_error";
|
|
335
|
+
status?: undefined;
|
|
336
|
+
} | undefined>;
|
|
337
|
+
private getActiveSessionId;
|
|
338
|
+
/**
|
|
339
|
+
* Thin feature object; the facade owns the HTTP, mirroring the web SDK split.
|
|
340
|
+
* Its only job here is raising the 'report' capture signal so replay flushes.
|
|
341
|
+
*/
|
|
342
|
+
private readonly _bugReport;
|
|
343
|
+
/**
|
|
344
|
+
* Submit a bug report against the CURRENT session.
|
|
345
|
+
*
|
|
346
|
+
* Mirrors the web SDK's `reportBugDetailed` ordering, which is load-bearing rather than
|
|
347
|
+
* incidental:
|
|
348
|
+
*
|
|
349
|
+
* 1. resolve the session — a report with no session cannot be joined to its evidence
|
|
350
|
+
* 2. signal 'report' — replay flushes its buffer so the report has visual context
|
|
351
|
+
* 3. snapshot the anchor — BEFORE the POST. A flush asks the recorder to deliver pending
|
|
352
|
+
* bytes; it cannot retroactively manufacture a frame, so an absent
|
|
353
|
+
* coordinate must stay absent rather than becoming a misleading
|
|
354
|
+
* "start of session" link in the dashboard
|
|
355
|
+
* 4. build + POST — bounds enforced by buildBugReportPayload against the server DTO
|
|
356
|
+
*
|
|
357
|
+
* Returns the report id, or `{ e }` naming which branch failed — 'init' (SDK not configured)
|
|
358
|
+
* reads differently from 'send' (network), and that difference is what tells an integrator
|
|
359
|
+
* whether to check their setup or their connection. It never throws: this is called from a UI
|
|
360
|
+
* the host app renders, usually from a user gesture, and an exception escaping into a React
|
|
361
|
+
* Native render tree is a redbox shown to the customer's user over a report they were sending us.
|
|
362
|
+
*/
|
|
363
|
+
reportBugDetailed(input: {
|
|
364
|
+
message: string;
|
|
365
|
+
title?: string;
|
|
366
|
+
email?: string;
|
|
367
|
+
clientReportId?: string;
|
|
368
|
+
}): Promise<BugSubmitResult>;
|
|
369
|
+
/**
|
|
370
|
+
* The replay coordinate at submit time, or null.
|
|
371
|
+
*
|
|
372
|
+
* Deliberately returns null rather than a zeroed coordinate when replay is disabled, paused, or
|
|
373
|
+
* has not produced a frame yet — see the anchor note on reportBug.
|
|
374
|
+
*/
|
|
375
|
+
/**
|
|
376
|
+
* The replay coordinate at submit time.
|
|
377
|
+
*
|
|
378
|
+
* ALWAYS null today, deliberately and visibly.
|
|
379
|
+
*
|
|
380
|
+
* The web SDK reads this from its recorder, but the RN replay subsystem exposes no sequence or
|
|
381
|
+
* segment accessor on its public API (features/replay/public/api.ts) -- there is currently no
|
|
382
|
+
* supported way to ask it where playback is. Probing for it through an `any` cast would compile,
|
|
383
|
+
* miss, and leave every report anchor-less while looking wired: the same defect as the existing
|
|
384
|
+
* reportBug(), which emits an analytics event and looks like it files a report.
|
|
385
|
+
*
|
|
386
|
+
* Returning null keeps the payload HONEST -- buildBugReportPayload omits replaySeq entirely, so
|
|
387
|
+
* the dashboard shows no anchor rather than a false one pointing at the start of the session.
|
|
388
|
+
* To finish this: expose the current seq + segment id from the replay recorder, then read them
|
|
389
|
+
* here. The payload builder and its contract tests already handle a real coordinate, including
|
|
390
|
+
* a genuine seq of 0.
|
|
391
|
+
*/
|
|
392
|
+
private _replayCoord;
|
|
393
|
+
/** Recent console breadcrumbs for quick triage. The full set already travels with the session. */
|
|
394
|
+
private _recentBreadcrumbs;
|
|
395
|
+
/**
|
|
396
|
+
* Lazily resolve the Engage transport. Requires a configured SaaS clientKey +
|
|
397
|
+
* apiBaseUrl (same gate as the rating/ingestion lanes); returns null otherwise.
|
|
398
|
+
* The transport mirrors the existing BackendSessionAdapter outbox: upload lanes
|
|
399
|
+
* batch-flush and re-queue on failure, the config GET is a direct fetch.
|
|
400
|
+
*/
|
|
401
|
+
private _getEngageTransport;
|
|
402
|
+
/**
|
|
403
|
+
* Engage surface namespace (foundation: transport + native push-token plumbing).
|
|
404
|
+
*
|
|
405
|
+
* Rendering of campaigns/in-app messages is a SHARED cross-platform JS overlay
|
|
406
|
+
* (D4) built in a later stage. This namespace exposes only the foundation:
|
|
407
|
+
* versioned config fetch, idempotent response/event upload (via the existing
|
|
408
|
+
* outbox), and native push-token registration on both platforms.
|
|
409
|
+
*/
|
|
410
|
+
engage: {
|
|
411
|
+
/** Current external identity, forwarded by the provider for segment targeting. */
|
|
412
|
+
getIdentifiedUserId: () => string | undefined;
|
|
413
|
+
/**
|
|
414
|
+
* Fetch the versioned Engage config (campaigns + in-app messages).
|
|
415
|
+
*
|
|
416
|
+
* slice-agent: the shared cross-platform JS overlay renderer consumes this
|
|
417
|
+
* payload (EngageConfigResponse.campaigns / .inAppMessages) in a later stage.
|
|
418
|
+
*/
|
|
419
|
+
fetchConfig: (context?: EngageConfigContext) => Promise<EngageConfigResponse | null>;
|
|
420
|
+
/** Internal bridge used by the shared renderer to feed standalone tour analytics. */
|
|
421
|
+
trackCoachmarkEvent: (name: string, properties: Record<string, unknown>) => void;
|
|
422
|
+
/**
|
|
423
|
+
* DEBUG/DEV ONLY — clear the persisted in-app/campaign frequency-cap state
|
|
424
|
+
* (every `scalebun_engage_throttle:*` key: impressions, showOnce/completed, cooldown).
|
|
425
|
+
* Lets a tester see throttled/dismissed messages again WITHOUT uninstalling the
|
|
426
|
+
* app. Does NOT change the device id (identity is preserved). Returns the number
|
|
427
|
+
* of cleared entries. NOT a substitute for the real fix (revision-scoped state +
|
|
428
|
+
* test-preview bypass already make normal Send Test work without this).
|
|
429
|
+
*/
|
|
430
|
+
clearInAppMessageCache: () => number;
|
|
431
|
+
/**
|
|
432
|
+
* DEBUG/DEV ONLY — alias of {@link clearInAppMessageCache} with the broader name
|
|
433
|
+
* used in docs. Resets all on-device in-app frequency/dismiss/impression state so
|
|
434
|
+
* the next config poll can show messages again. Identity (device id) is untouched.
|
|
435
|
+
*/
|
|
436
|
+
resetInAppState: () => number;
|
|
437
|
+
/**
|
|
438
|
+
* Force an immediate flush of queued in-app events. The provider calls this right
|
|
439
|
+
* after a TEST preview's impression/dismiss ACK so the backend consumes the
|
|
440
|
+
* one-shot preview row promptly — a fast close→kill→reopen can't re-serve a
|
|
441
|
+
* still-`delivered` test. Best-effort, never throws.
|
|
442
|
+
*/
|
|
443
|
+
flushEvents: () => void;
|
|
444
|
+
/**
|
|
445
|
+
* DEBUG/DEV ONLY — force a fresh config fetch (deviceId in context) and return the
|
|
446
|
+
* in-app messages the backend is serving THIS device right now, including any
|
|
447
|
+
* queued test previews (`preview:true`). Use it to verify Send Test targeting/
|
|
448
|
+
* delivery without rendering. Logs a one-line summary for the dev console.
|
|
449
|
+
*/
|
|
450
|
+
debugFetchInAppMessages: (context?: EngageConfigContext) => Promise<EngageConfigResponse["inAppMessages"]>;
|
|
451
|
+
/** Upload a survey/NPS/feedback response (idempotent, rides the outbox). */
|
|
452
|
+
submitResponse: (input: EngageResponseInput) => void;
|
|
453
|
+
/**
|
|
454
|
+
* [P3-e] Submit a response carrying native attachments (screenshot/voice).
|
|
455
|
+
* Presigns + PUTs bytes direct to storage, then enqueues the response with
|
|
456
|
+
* key-only metadata linked by responseId. Falls back to a plain response
|
|
457
|
+
* (no media) when storage is disabled. Best-effort, never throws.
|
|
458
|
+
*/
|
|
459
|
+
submitResponseWithAttachments: (input: EngageResponseInput, attachments: EngageAttachmentDraft[]) => void;
|
|
460
|
+
/**
|
|
461
|
+
* [Slice D5] CONFIRMED response submit for the in-prompt submitting→success→error
|
|
462
|
+
* UI. UNLIKE submitResponse*, this AWAITS real server persistence (presign+PUT any
|
|
463
|
+
* audio/screenshot bytes, then a direct response POST) and REJECTS on failure so the
|
|
464
|
+
* caller can show a retryable error. Idempotent: pass the SAME `responseId` on retry
|
|
465
|
+
* — both response and attachments de-dupe server-side. Used by EVERY question type.
|
|
466
|
+
*/
|
|
467
|
+
submitResponseConfirmed: (input: EngageResponseInput, attachments: EngageAttachmentDraft[], opts: {
|
|
468
|
+
responseId: string;
|
|
469
|
+
onStage?: (stage: SubmitStage) => void;
|
|
470
|
+
}) => Promise<void>;
|
|
471
|
+
/** Upload an in-app impression/click/dismiss event (idempotent, rides the outbox). */
|
|
472
|
+
trackEvent: (input: EngageEventInput) => void;
|
|
473
|
+
/** Upload an idempotent survey shown/started funnel beacon. */
|
|
474
|
+
trackSurveyImpression: (input: SurveyImpressionInput) => void;
|
|
475
|
+
/**
|
|
476
|
+
* Emit a rating-funnel tracking event (ratings-rebuild CONTRACT §1.2). These
|
|
477
|
+
* are dimensioned FACTS feeding the Overview funnel — NOT campaign responses
|
|
478
|
+
* (D1) — so they ride their own `/ingestion/rating-events` lane. Idempotent
|
|
479
|
+
* (client `eventId`, D8). Best-effort, never throws.
|
|
480
|
+
*/
|
|
481
|
+
emitRatingEvent: (input: RatingFunnelEventInput) => void;
|
|
482
|
+
/**
|
|
483
|
+
* Trigger the native in-app review sheet (Play In-App Review on Android,
|
|
484
|
+
* SKStoreReviewController on iOS) — the genuinely-native leg of the rating
|
|
485
|
+
* funnel (D5). Resolves `true` ONLY when the OS flow ran/resolved after a
|
|
486
|
+
* positive route, so the caller emits `store_redirect_clicked` solely on a
|
|
487
|
+
* `true` result. Fail-soft: resolves `false` when native review is unavailable.
|
|
488
|
+
*/
|
|
489
|
+
requestStoreReview: () => Promise<boolean>;
|
|
490
|
+
/**
|
|
491
|
+
* Submit a 1–5 app-store rating via the EXISTING app-rating lane (D1 keeps
|
|
492
|
+
* ratings a distinct funnel — NOT submitResponse). Delegates to the
|
|
493
|
+
* facade's `submitRating`, threading the renderer's `clientRatingId` for
|
|
494
|
+
* idempotency (D8). Used by the RATING_PROMPT render branch.
|
|
495
|
+
*/
|
|
496
|
+
submitRating: (input: {
|
|
497
|
+
rating: number;
|
|
498
|
+
comment?: string;
|
|
499
|
+
source?: "in_app" | "prompt" | "manual";
|
|
500
|
+
clientRatingId?: string;
|
|
501
|
+
}) => void;
|
|
502
|
+
/**
|
|
503
|
+
* Acquire the native push token (FCM/APNs) and register it for delivery.
|
|
504
|
+
* Subscribes to native token-refresh (rotation) so the backend always holds
|
|
505
|
+
* the live token. Fail-soft: no-op when native push is unavailable.
|
|
506
|
+
*/
|
|
507
|
+
registerForPush: () => Promise<void>;
|
|
508
|
+
};
|
|
509
|
+
/**
|
|
510
|
+
* Lazily build the PushManager. Backend token registration is injected and
|
|
511
|
+
* routes through the existing Engage outbox (EngageTransport.registerDeviceToken),
|
|
512
|
+
* so push reuses the SDK's single device-token lane rather than a parallel
|
|
513
|
+
* fetch. Returns {ok:false} when the SDK isn't configured (clientKey absent).
|
|
514
|
+
*/
|
|
515
|
+
private _getPushManager;
|
|
516
|
+
/**
|
|
517
|
+
* Enable push notifications with smart, version-aware adapter selection.
|
|
518
|
+
*
|
|
519
|
+
* Detects the RN version, architecture (legacy bridge vs New
|
|
520
|
+
* Architecture/bridgeless), whether @react-native-firebase/messaging is
|
|
521
|
+
* installed & compatible, and whether the ScaleBunEngage native token bridge is
|
|
522
|
+
* linked, then picks the safest supported path automatically: RNFirebase
|
|
523
|
+
* (full callbacks) → native ScaleBunEngage bridge (token-only fallback that works
|
|
524
|
+
* under bridgeless regardless of RNFirebase version) → manual → noop.
|
|
525
|
+
*
|
|
526
|
+
* Requests OS permission, creates the Android channel, acquires the push
|
|
527
|
+
* token, keeps it in sync on refresh, registers it with the ScaleBun backend
|
|
528
|
+
* (via the Engage outbox), and wires foreground/opened callbacks.
|
|
529
|
+
*
|
|
530
|
+
* Fails clearly (ok:false + actionable reason) when no usable provider
|
|
531
|
+
* exists — never silently breaks. Never throws.
|
|
532
|
+
*
|
|
533
|
+
* ```ts
|
|
534
|
+
* await ScaleBun.enablePush({
|
|
535
|
+
* onForegroundNotification: (n) => {},
|
|
536
|
+
* onNotificationOpened: (n) => {},
|
|
537
|
+
* });
|
|
538
|
+
* ```
|
|
539
|
+
*/
|
|
540
|
+
enablePush(options?: EnablePushOptions): Promise<EnablePushResult>;
|
|
541
|
+
/**
|
|
542
|
+
* Subscribe to notifications received while the app is foregrounded. Thin,
|
|
543
|
+
* platform-agnostic alias for `enablePush({ onForegroundNotification })`; use it
|
|
544
|
+
* to attach a handler after enablePush. Returns an unsubscribe function. Inert
|
|
545
|
+
* until push is enabled. (iOS direct APNs delivers these via the native
|
|
546
|
+
* UNUserNotificationCenter surface.)
|
|
547
|
+
*/
|
|
548
|
+
onForegroundNotification(cb: (notification: PushNotification) => void): () => void;
|
|
549
|
+
/**
|
|
550
|
+
* Subscribe to the user tapping a notification (open / deep-link), including the
|
|
551
|
+
* cold-start notification that launched the app. Thin alias for
|
|
552
|
+
* `enablePush({ onNotificationOpened })`. Returns an unsubscribe function. The
|
|
553
|
+
* event shape ({ data, title?, body? }) matches across Android and iOS.
|
|
554
|
+
*/
|
|
555
|
+
onNotificationOpened(cb: (notification: PushNotification) => void): () => void;
|
|
556
|
+
/**
|
|
557
|
+
* Push control namespace. Most apps only need {@link enablePush}; these are
|
|
558
|
+
* for the manual/custom provider path and diagnostics.
|
|
559
|
+
*/
|
|
560
|
+
push: {
|
|
561
|
+
/** Inject/rotate a token (manual provider) — syncs to the backend. */
|
|
562
|
+
setToken: (token: string) => void;
|
|
563
|
+
/** Current push token, if acquired. */
|
|
564
|
+
getToken: () => string | null;
|
|
565
|
+
/** Deliver a foreground notification to registered callbacks (manual provider). */
|
|
566
|
+
emitForeground: (message: PushNotification) => void;
|
|
567
|
+
/** Deliver a notification-open event to registered callbacks (manual provider). */
|
|
568
|
+
emitNotificationOpened: (message: PushNotification) => void;
|
|
569
|
+
/** Current push status: selected adapter, usability, reason, token. */
|
|
570
|
+
status: () => import("../push/PushManager").PushStatus;
|
|
571
|
+
/** Tear down all push listeners. */
|
|
572
|
+
teardown: () => void;
|
|
573
|
+
};
|
|
574
|
+
/**
|
|
575
|
+
* Report the outcome of an OS permission prompt.
|
|
576
|
+
*
|
|
577
|
+
* Permission results were state the SDK held privately and never an event, so the core mobile
|
|
578
|
+
* growth loop — "reached the paywall → was prompted → granted" — could not be expressed as a funnel.
|
|
579
|
+
*
|
|
580
|
+
* Notification permission is captured AUTOMATICALLY (the SDK runs that prompt itself, see
|
|
581
|
+
* PushManager). Every other permission belongs to the host app: the SDK never sees a camera or
|
|
582
|
+
* location request, so guessing at one would be inventing data. Call this right after the prompt
|
|
583
|
+
* resolves:
|
|
584
|
+
*
|
|
585
|
+
* ```ts
|
|
586
|
+
* const { status } = await Location.requestForegroundPermissionsAsync();
|
|
587
|
+
* ScaleBun.trackPermission('location', status === 'granted' ? 'granted' : 'denied');
|
|
588
|
+
* ```
|
|
589
|
+
*
|
|
590
|
+
* `permission` is free-form on purpose — platforms disagree on names and a fixed enum would go
|
|
591
|
+
* stale — but stick to one spelling per permission or the funnel splits in two.
|
|
592
|
+
*/
|
|
593
|
+
trackPermission(permission: string, status: 'granted' | 'denied' | 'blocked' | 'undetermined' | 'limited', details?: Record<string, any>): void | undefined;
|
|
594
|
+
/** Track a named event with optional payload */
|
|
595
|
+
track(name: string, payload?: Record<string, any>): void | undefined;
|
|
596
|
+
/**
|
|
597
|
+
* Log a message. Delivered to BOTH lanes:
|
|
598
|
+
* - the Diagnose → Logs lane (tagged `source: 'sdk'`), so an explicit `log()` call shows
|
|
599
|
+
* up where a developer looks for logs. The method name promised this, but it previously
|
|
600
|
+
* only emitted a `$log` analytics EVENT and never reached the Logs page.
|
|
601
|
+
* - the analytics `$log` event (unchanged), so anything already built on it keeps working.
|
|
602
|
+
* `queueLog` self-gates on `clientKey`, so the Logs-lane write is a no-op outside SaaS mode.
|
|
603
|
+
*/
|
|
604
|
+
log(level: 'debug' | 'info' | 'warn' | 'error', message: string, data?: Record<string, unknown>): void | undefined;
|
|
605
|
+
/**
|
|
606
|
+
* Capture a handled error/exception and deliver it to the backend
|
|
607
|
+
* errors endpoint (shows up in the dashboard Crashes view).
|
|
608
|
+
*
|
|
609
|
+
* No-throw. Routes to: desktop debug stream ($crash event) + SaaS
|
|
610
|
+
* backend errors ingestion (when a clientKey session is active).
|
|
611
|
+
*/
|
|
612
|
+
captureError(error: Error | string, context?: {
|
|
613
|
+
screenName?: string;
|
|
614
|
+
fatal?: boolean;
|
|
615
|
+
type?: string;
|
|
616
|
+
metadata?: Record<string, unknown>;
|
|
617
|
+
}): void | undefined;
|
|
618
|
+
/**
|
|
619
|
+
* DEV/TEST ONLY — trigger a real native crash to validate the native
|
|
620
|
+
* capture → next-launch drain → backend pipeline. No-op when the native
|
|
621
|
+
* module is unavailable. Do not ship calls to this in production code.
|
|
622
|
+
*/
|
|
623
|
+
nativeCrash(): Promise<void> | undefined;
|
|
624
|
+
/** Report a bug (convenience wrapper over track) */
|
|
625
|
+
reportBug(description: string, metadata?: Record<string, unknown>): void | undefined;
|
|
626
|
+
/** Set a custom attribute on the current session */
|
|
627
|
+
setAttribute(key: string, value: string | number | boolean): void | undefined;
|
|
628
|
+
/** Force-flush all pending events */
|
|
629
|
+
flush(): Promise<void | undefined>;
|
|
630
|
+
/**
|
|
631
|
+
* Enable the debug subsystem.
|
|
632
|
+
*
|
|
633
|
+
* @deprecated Use `ScaleBun.init({ debug: true })` instead.
|
|
634
|
+
* This method still works for backward compatibility.
|
|
635
|
+
*/
|
|
636
|
+
enableDebug(config: DebugConfig): void | undefined;
|
|
637
|
+
/** Disable the debug subsystem and clean up */
|
|
638
|
+
disableDebug(): void | undefined;
|
|
639
|
+
/**
|
|
640
|
+
* Diagnostic-only: stamp the *expected* target for the very next gesture
|
|
641
|
+
* event. Calibration screens call this immediately before their onPress
|
|
642
|
+
* fires so SessionManager merges expectedTargetId / expectedNX / expectedNY
|
|
643
|
+
* into the stored gesture payload. Pure observability — never affects
|
|
644
|
+
* capture, normalization, or marker placement. TTL ≈ 500 ms.
|
|
645
|
+
*/
|
|
646
|
+
setCalibrationTarget(target: {
|
|
647
|
+
targetId: string;
|
|
648
|
+
expectedNX: number;
|
|
649
|
+
expectedNY: number;
|
|
650
|
+
}): void;
|
|
651
|
+
/**
|
|
652
|
+
* Debug utilities namespace.
|
|
653
|
+
* All methods are no-op if debug is not enabled.
|
|
654
|
+
*/
|
|
655
|
+
debug: {
|
|
656
|
+
addBreadcrumb: (message: string, data?: Record<string, unknown>) => void;
|
|
657
|
+
ping: () => void;
|
|
658
|
+
isEnabled: () => boolean;
|
|
659
|
+
sendMetric: (name: string, value: number, unit?: string, tags?: Record<string, string>) => void;
|
|
660
|
+
};
|
|
661
|
+
/**
|
|
662
|
+
* Session Replay namespace.
|
|
663
|
+
* Provides control over session replay: recording, capture,
|
|
664
|
+
* user identity, privacy, breadcrumbs, and transport.
|
|
665
|
+
* All methods are no-op if replay feature is disabled.
|
|
666
|
+
*/
|
|
667
|
+
replay: {
|
|
668
|
+
start: () => Promise<void>;
|
|
669
|
+
stop: () => Promise<void>;
|
|
670
|
+
pause: () => Promise<void>;
|
|
671
|
+
resume: () => Promise<void>;
|
|
672
|
+
captureFrame: () => Promise<void>;
|
|
673
|
+
setUser: (user: ReplayUser) => Promise<void>;
|
|
674
|
+
clearUser: () => Promise<void>;
|
|
675
|
+
addBreadcrumb: (breadcrumb: ReplayBreadcrumb) => Promise<void>;
|
|
676
|
+
setPrivacy: (opts: Partial<ReplayPrivacyOptions>) => Promise<void>;
|
|
677
|
+
setEnabled: (enabled: boolean) => Promise<void>;
|
|
678
|
+
setQuality: (quality: any) => Promise<void>;
|
|
679
|
+
setCaptureMode: (mode: any) => Promise<void>;
|
|
680
|
+
setScreen: (name: string) => Promise<void>;
|
|
681
|
+
flush: () => Promise<void>;
|
|
682
|
+
readonly isRecording: boolean;
|
|
683
|
+
readonly sessionId: string | null;
|
|
684
|
+
};
|
|
685
|
+
/**
|
|
686
|
+
* Performance monitoring namespace.
|
|
687
|
+
* Provides control over custom traces, screen load markers,
|
|
688
|
+
* and access to captured metrics.
|
|
689
|
+
* All methods are no-op if performance feature is disabled.
|
|
690
|
+
*/
|
|
691
|
+
performance: {
|
|
692
|
+
/** Start a custom trace. Returns traceId or null. */
|
|
693
|
+
startTrace: (name: string) => string | null;
|
|
694
|
+
/** Stop a custom trace by ID. */
|
|
695
|
+
stopTrace: (traceId: string) => void;
|
|
696
|
+
/** Add a span to an active custom trace. */
|
|
697
|
+
addTraceSpan: (traceId: string, name: string, durationMs: number, data?: Record<string, unknown>) => void;
|
|
698
|
+
/** Attach a measurement to an active custom trace. */
|
|
699
|
+
addTraceMeasurement: (traceId: string, name: string, value: number, unit: string) => void;
|
|
700
|
+
/** Mark the start of a screen load. */
|
|
701
|
+
markScreenLoadStart: (screenName: string) => void;
|
|
702
|
+
/** Mark the end of a screen load. */
|
|
703
|
+
markScreenLoadEnd: (screenName: string) => void;
|
|
704
|
+
/** Set the current screen for context correlation. */
|
|
705
|
+
setCurrentScreen: (screenName: string) => void;
|
|
706
|
+
/** Forward navigation state changes for auto screen load detection. */
|
|
707
|
+
onNavigationStateChange: (state: unknown) => void;
|
|
708
|
+
/** Check if performance monitoring is active */
|
|
709
|
+
isActive: () => boolean;
|
|
710
|
+
/**
|
|
711
|
+
* Send a raw performance metric through the transport.
|
|
712
|
+
* Used for manual/simulated performance metrics.
|
|
713
|
+
*/
|
|
714
|
+
sendMetric: (name: string, value: number, unit?: string, tags?: Record<string, string>) => void;
|
|
715
|
+
};
|
|
716
|
+
/**
|
|
717
|
+
* Unified Session namespace.
|
|
718
|
+
* Provides access to the unified SessionManager.
|
|
719
|
+
* Sessions auto-start on desktop connect.
|
|
720
|
+
*/
|
|
721
|
+
session: {
|
|
722
|
+
readonly isActive: boolean;
|
|
723
|
+
readonly currentSessionId: string | null;
|
|
724
|
+
start: (metadata?: Record<string, unknown>) => boolean;
|
|
725
|
+
end: (reason?: "ended" | "timeout") => boolean;
|
|
726
|
+
emitEvent: (type: string, data?: Record<string, unknown>) => void;
|
|
727
|
+
};
|
|
728
|
+
/** Start a session (delegates to session namespace) */
|
|
729
|
+
startSession(metadata?: Record<string, unknown>): boolean;
|
|
730
|
+
/** Stop the current session (delegates to session namespace) */
|
|
731
|
+
stopSession(reason?: 'ended' | 'timeout'): boolean;
|
|
732
|
+
/**
|
|
733
|
+
* Report generation and export namespace.
|
|
734
|
+
*
|
|
735
|
+
* Usage:
|
|
736
|
+
* ```ts
|
|
737
|
+
* // Export with default preset
|
|
738
|
+
* const result = await ScaleBun.report.export();
|
|
739
|
+
*
|
|
740
|
+
* // Export with a named preset
|
|
741
|
+
* const result = await ScaleBun.report.export('engineering');
|
|
742
|
+
*
|
|
743
|
+
* // Export with custom options
|
|
744
|
+
* const result = await ScaleBun.report.export({ format: 'pdf', detail: 'detailed' });
|
|
745
|
+
* ```
|
|
746
|
+
*
|
|
747
|
+
* Requires an active desktop debug connection (`debug: true` in init).
|
|
748
|
+
*/
|
|
749
|
+
report: {
|
|
750
|
+
/**
|
|
751
|
+
* Trigger a report export on the desktop application.
|
|
752
|
+
*
|
|
753
|
+
* @param presetOrOptions - Optional. A preset name ('executive', 'engineering', 'qa',
|
|
754
|
+
* 'forensic', 'journey', 'compact') or a SimplifiedExportOptions object.
|
|
755
|
+
* @returns Promise<ExportResult> with success status, file path, or error.
|
|
756
|
+
*/
|
|
757
|
+
export: (presetOrOptions?: ExportPresetName | SimplifiedExportOptions) => Promise<ExportResult>;
|
|
758
|
+
/** Set SDK-wide privacy settings for report generation. */
|
|
759
|
+
setPrivacy: (config: PrivacyConfig) => void;
|
|
760
|
+
/** Set branding for exported reports. */
|
|
761
|
+
setBranding: (config: BrandingConfig) => void;
|
|
762
|
+
/** Get current privacy config. */
|
|
763
|
+
getPrivacy: () => PrivacyConfig;
|
|
764
|
+
/** Get current branding config. */
|
|
765
|
+
getBranding: () => BrandingConfig;
|
|
766
|
+
};
|
|
767
|
+
/**
|
|
768
|
+
* Set the React Navigation container ref for automatic screen detection.
|
|
769
|
+
*
|
|
770
|
+
* This is the **recommended** way to enable auto screen detection.
|
|
771
|
+
* Once set, the SDK automatically detects screen changes and feeds them
|
|
772
|
+
* to all subsystems (SessionManager, PerformanceFeature, ProfilerFeature).
|
|
773
|
+
* No per-screen `<ScaleBunScreen>` or `useScaleBunScreen()` needed.
|
|
774
|
+
*
|
|
775
|
+
* ```ts
|
|
776
|
+
* import { NavigationContainer } from '@react-navigation/native';
|
|
777
|
+
* import ScaleBun from '@scalebun/react-native';
|
|
778
|
+
*
|
|
779
|
+
* const navigationRef = React.createRef();
|
|
780
|
+
*
|
|
781
|
+
* function App() {
|
|
782
|
+
* useEffect(() => {
|
|
783
|
+
* ScaleBun.setNavigationRef(navigationRef);
|
|
784
|
+
* }, []);
|
|
785
|
+
*
|
|
786
|
+
* return (
|
|
787
|
+
* <NavigationContainer ref={navigationRef}>
|
|
788
|
+
* ...screens...
|
|
789
|
+
* </NavigationContainer>
|
|
790
|
+
* );
|
|
791
|
+
* }
|
|
792
|
+
* ```
|
|
793
|
+
*/
|
|
794
|
+
setNavigationRef(ref: any): void;
|
|
795
|
+
}
|
|
796
|
+
/** Singleton Facade instance */
|
|
797
|
+
declare const instance: ScaleBunFacade;
|
|
798
|
+
export default instance;
|
|
799
|
+
export { ScaleBunFacade };
|
|
800
|
+
//# sourceMappingURL=ScaleBunFacade.d.ts.map
|