@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,164 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — Engage In-App Message View (shared cross-platform JS overlay, D4)
|
|
3
|
+
*
|
|
4
|
+
* One renderer, seven layout branches — chosen from `InAppMessageConfig.layout`
|
|
5
|
+
* delivered by the config lane. App developers import and mount ONE component
|
|
6
|
+
* (`EngageInAppView` or via `EngagePromptProvider`) and write zero layout code:
|
|
7
|
+
* the SDK reads the layout field and auto-selects the correct branch.
|
|
8
|
+
*
|
|
9
|
+
* Layout → branch mapping (1:1, config-driven):
|
|
10
|
+
* modal → centered dialog (backdrop + rounded card)
|
|
11
|
+
* fullscreen → edge-to-edge takeover (no margins, no rounded corners)
|
|
12
|
+
* bottom_sheet → slides up from bottom (rounded top corners)
|
|
13
|
+
* top_banner → absolute strip pinned to top
|
|
14
|
+
* bottom_banner→ absolute strip pinned to bottom
|
|
15
|
+
* tooltip → small compact popup (anchored look, top-right close)
|
|
16
|
+
* toast → transient strip, auto-dismisses after 3 seconds
|
|
17
|
+
*
|
|
18
|
+
* Legacy `banner` (old wire value) gracefully maps to `top_banner`.
|
|
19
|
+
*
|
|
20
|
+
* Callbacks (unchanged):
|
|
21
|
+
* onShow() — fired once when first visible (provider records impression)
|
|
22
|
+
* onCta(cta) — primary CTA tap (provider emits `click`; deep link surfaced to host)
|
|
23
|
+
* onComplete() — guided flow finished (provider emits `completion`)
|
|
24
|
+
* onDismiss() — secondary CTA / close / backdrop / auto-dismiss (provider emits `dismiss`)
|
|
25
|
+
*/
|
|
26
|
+
import { type ReactElement, type ReactNode } from 'react';
|
|
27
|
+
import type { InAppGameRequestHandler, InAppGameResult, InAppMessageConfig, InAppRenderSpec } from './engageTypes';
|
|
28
|
+
import { type EngageAnchorRect } from './EngageAnchor';
|
|
29
|
+
import { type InAppMountModel, type ResolvedInAppPresentation } from './engageVariantResolver';
|
|
30
|
+
import { type InAppOutcomeRequest } from './engageOutcome';
|
|
31
|
+
/** The seven distinct presentation branches (config-driven, 1:1 with layout strings). */
|
|
32
|
+
export type InAppLayout = 'modal' | 'fullscreen' | 'bottom_sheet' | 'top_banner' | 'bottom_banner' | 'tooltip' | 'toast';
|
|
33
|
+
/**
|
|
34
|
+
* Map the contract `layout` string onto one of the seven render branches.
|
|
35
|
+
* Legacy `banner` value → `top_banner` for backward compat with old configs.
|
|
36
|
+
* Any unknown future value → `modal` (safe default).
|
|
37
|
+
*/
|
|
38
|
+
export declare function resolveInAppLayout(layout: InAppMessageConfig['layout']): InAppLayout;
|
|
39
|
+
/** Props every in-app render branch receives (the Open/Closed contract). */
|
|
40
|
+
export interface InAppBranchProps {
|
|
41
|
+
spec: InAppRenderSpec;
|
|
42
|
+
/** Canonical registry key, used to select family-specific content modes. */
|
|
43
|
+
variantKey?: string;
|
|
44
|
+
/** Resolved design tokens (dashboard-matching defaults + spec overrides). */
|
|
45
|
+
theme: InAppTheme;
|
|
46
|
+
/** Primary CTA tapped — provider emits `click` and surfaces `cta.deepLink`. */
|
|
47
|
+
onCta: (cta: NonNullable<InAppRenderSpec['cta']>) => void;
|
|
48
|
+
/** Dismissed (secondary CTA / close / backdrop / auto-timeout) — provider emits `dismiss`. */
|
|
49
|
+
onDismiss: () => void;
|
|
50
|
+
/** Finished a guided flow — provider emits `completion`, never a click/dismiss. */
|
|
51
|
+
onComplete?: () => void;
|
|
52
|
+
/** Present an authored terminal result/confirmation card before the final action. */
|
|
53
|
+
onOutcome?: (request: InAppOutcomeRequest) => void;
|
|
54
|
+
/** Optional additive gameplay telemetry; never used to determine a reward. */
|
|
55
|
+
onInteraction?: (interaction: InAppMechanicInteraction) => void;
|
|
56
|
+
/** Customer-backend result resolver. Retries reuse the same SDK-owned attempt id. */
|
|
57
|
+
requestGameResult?: (attempt?: number, input?: Record<string, unknown>) => Promise<InAppGameResult>;
|
|
58
|
+
/** Anchored surfaces call this only after their native target has been measured. */
|
|
59
|
+
onReady?: () => void;
|
|
60
|
+
/** Anchored surfaces report a missing/invalid target instead of faking a position. */
|
|
61
|
+
onRenderError?: (reason: string) => void;
|
|
62
|
+
/** Optional family-specific body. The layout branch remains responsible for mounting. */
|
|
63
|
+
children?: ReactNode;
|
|
64
|
+
}
|
|
65
|
+
export interface InAppMechanicInteraction {
|
|
66
|
+
mechanic: string;
|
|
67
|
+
phase: 'started' | 'progress' | 'decision' | 'resolved' | 'claimed' | 'completed';
|
|
68
|
+
attempt?: number;
|
|
69
|
+
progress?: number;
|
|
70
|
+
result?: string;
|
|
71
|
+
value?: string | number | boolean;
|
|
72
|
+
meta?: Record<string, unknown>;
|
|
73
|
+
}
|
|
74
|
+
/** A render branch for one in-app layout. */
|
|
75
|
+
export type InAppRenderer = (props: InAppBranchProps) => ReactElement | null;
|
|
76
|
+
export type CoachmarkPlacement = 'auto' | 'top' | 'bottom' | 'left' | 'right';
|
|
77
|
+
export interface CoachmarkGeometry {
|
|
78
|
+
spotlight: EngageAnchorRect;
|
|
79
|
+
scrims: EngageAnchorRect[];
|
|
80
|
+
tooltip: {
|
|
81
|
+
left: number;
|
|
82
|
+
width: number;
|
|
83
|
+
top?: number;
|
|
84
|
+
bottom?: number;
|
|
85
|
+
maxHeight: number;
|
|
86
|
+
placement: Exclude<CoachmarkPlacement, 'auto'>;
|
|
87
|
+
arrowLeft?: number;
|
|
88
|
+
arrowTop?: number;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
/** Pure geometry shared by iOS/Android and covered without a native measurement mock. */
|
|
92
|
+
export declare function resolveCoachmarkGeometry(anchor: EngageAnchorRect, viewport: {
|
|
93
|
+
width: number;
|
|
94
|
+
height: number;
|
|
95
|
+
}, preferred?: CoachmarkPlacement, options?: {
|
|
96
|
+
insets?: {
|
|
97
|
+
top: number;
|
|
98
|
+
right: number;
|
|
99
|
+
bottom: number;
|
|
100
|
+
left: number;
|
|
101
|
+
};
|
|
102
|
+
cardHeight?: number;
|
|
103
|
+
}): CoachmarkGeometry;
|
|
104
|
+
export interface InAppTheme {
|
|
105
|
+
dark: boolean;
|
|
106
|
+
rtl: boolean;
|
|
107
|
+
accent: string;
|
|
108
|
+
cardBg: string;
|
|
109
|
+
titleColor: string;
|
|
110
|
+
bodyColor: string;
|
|
111
|
+
ctaText: string;
|
|
112
|
+
secondaryColor: string;
|
|
113
|
+
couponBg: string;
|
|
114
|
+
couponFg: string;
|
|
115
|
+
couponBorder: string;
|
|
116
|
+
backdrop: string;
|
|
117
|
+
}
|
|
118
|
+
/** Resolve dashboard-matching tokens, applying `spec.style` overrides on top. */
|
|
119
|
+
export declare function resolveTheme(spec: InAppRenderSpec): InAppTheme;
|
|
120
|
+
export declare function resolveToastDuration(value: unknown): number;
|
|
121
|
+
export declare const INAPP_RENDERERS: Record<InAppLayout, InAppRenderer>;
|
|
122
|
+
/** Resolve the render branch for a config layout (always defined). */
|
|
123
|
+
export declare function resolveInAppRenderer(layout: InAppMessageConfig['layout']): InAppRenderer;
|
|
124
|
+
/**
|
|
125
|
+
* Resolve canonical additive surfaces before degrading to the stable seven-layout
|
|
126
|
+
* registry. Content remains a child of the selected surface in either path.
|
|
127
|
+
*/
|
|
128
|
+
export declare function resolveInAppPresentationRenderer(presentation: Pick<ResolvedInAppPresentation, 'archetype' | 'mountModel' | 'legacyLayout' | 'variantKey'>, mountModelOverride?: InAppMountModel): InAppRenderer;
|
|
129
|
+
export interface EngageInAppViewProps {
|
|
130
|
+
message: InAppMessageConfig | null;
|
|
131
|
+
visible: boolean;
|
|
132
|
+
/**
|
|
133
|
+
* Optional render spec override (A/B experiment, D8/J6). When supplied, this
|
|
134
|
+
* spec is rendered instead of `message.spec` — the provider resolves the chosen
|
|
135
|
+
* variant's content and passes it here. Omitted ⇒ render `message.spec`.
|
|
136
|
+
*/
|
|
137
|
+
spec?: InAppRenderSpec;
|
|
138
|
+
/**
|
|
139
|
+
* Provider-only graceful degradation for an unavailable host placement.
|
|
140
|
+
* Content still resolves from the canonical variant; only its physical mount changes.
|
|
141
|
+
*/
|
|
142
|
+
mountModelOverride?: InAppMountModel;
|
|
143
|
+
/** Fired once when the message first becomes visible (provider → impression). */
|
|
144
|
+
onShow: () => void;
|
|
145
|
+
/** Primary CTA tapped — provider emits `click` + surfaces the deep link. */
|
|
146
|
+
onCta: (cta: NonNullable<InAppRenderSpec['cta']>) => void;
|
|
147
|
+
/** Dismissed — provider emits `dismiss`. */
|
|
148
|
+
onDismiss: () => void;
|
|
149
|
+
/** Guided flow finished — provider emits `completion`. */
|
|
150
|
+
onComplete?: () => void;
|
|
151
|
+
/** Optional host-visible mechanic lifecycle callback. */
|
|
152
|
+
onInteraction?: (interaction: InAppMechanicInteraction) => void;
|
|
153
|
+
/** Customer-owned backend resolver for the eight gamified variants. */
|
|
154
|
+
onInAppGameRequest?: InAppGameRequestHandler;
|
|
155
|
+
/** Render failed (malformed spec / render throw) — provider emits `render_failed`. */
|
|
156
|
+
onRenderError?: (reason: string) => void;
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Single mount point for in-app messages. Reads `message.layout`, auto-selects
|
|
160
|
+
* the correct renderer from the registry, fires `onShow()` exactly once per
|
|
161
|
+
* message. App developers write zero layout code.
|
|
162
|
+
*/
|
|
163
|
+
export declare function EngageInAppView({ message, visible, spec, mountModelOverride, onShow, onCta, onDismiss, onComplete, onInteraction, onInAppGameRequest, onRenderError, }: EngageInAppViewProps): ReactElement | null;
|
|
164
|
+
//# sourceMappingURL=EngageInAppView.d.ts.map
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type ReactElement, type ReactNode } from "react";
|
|
2
|
+
import { type EngageInAppViewProps } from "./EngageInAppView";
|
|
3
|
+
import type { InAppRenderSpec } from "./engageTypes";
|
|
4
|
+
/** Everything a registered host slot needs to render one provider-owned message. */
|
|
5
|
+
export type EngageInlineDelivery = Omit<EngageInAppViewProps, "visible">;
|
|
6
|
+
type DeliverySink = (delivery: EngageInlineDelivery | null) => void;
|
|
7
|
+
export interface EngageInlinePlacementRegistry {
|
|
8
|
+
register: (placementKey: string, sink: DeliverySink) => () => void;
|
|
9
|
+
deliver: (placementKey: string, delivery: EngageInlineDelivery) => boolean;
|
|
10
|
+
clear: (placementKey: string, messageId?: string) => void;
|
|
11
|
+
has: (placementKey: string) => boolean;
|
|
12
|
+
subscribe: (placementKey: string, listener: () => void) => () => void;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Pure React placement registry. A pending delivery is retained so provider effects
|
|
16
|
+
* and slot effects are order-independent. Only the newest slot owns a key; replacing
|
|
17
|
+
* one clears the older sink and stale cleanup cannot unregister the new owner.
|
|
18
|
+
*/
|
|
19
|
+
export declare function createEngageInlinePlacementRegistry(): EngageInlinePlacementRegistry;
|
|
20
|
+
export interface EngageInlinePlacementRoute {
|
|
21
|
+
placementKey: string;
|
|
22
|
+
fallback: "overlay" | "skip";
|
|
23
|
+
}
|
|
24
|
+
/** Normalize the existing `ext.placementKey` / `ext.fallback` wire contract. */
|
|
25
|
+
export declare function resolveEngageInlinePlacement(spec: InAppRenderSpec | undefined): EngageInlinePlacementRoute;
|
|
26
|
+
export declare function EngageInlinePlacementProvider({ registry, children, }: {
|
|
27
|
+
registry: EngageInlinePlacementRegistry;
|
|
28
|
+
children: ReactNode;
|
|
29
|
+
}): ReactElement;
|
|
30
|
+
export interface ScaleBunInlineSlotProps {
|
|
31
|
+
/** Must match the dashboard-authored `placementKey` (for example `feed.top`). */
|
|
32
|
+
placementKey: string;
|
|
33
|
+
/** Host content shown while no campaign owns this placement. */
|
|
34
|
+
children?: ReactNode;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Host placeholder for provider-delivered inline campaigns. The active message is
|
|
38
|
+
* rendered here in the normal React Native layout tree, never as a root sibling.
|
|
39
|
+
*/
|
|
40
|
+
export declare function ScaleBunInlineSlot({ placementKey, children, }: ScaleBunInlineSlotProps): ReactElement;
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=EngageInlinePlacement.d.ts.map
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — Engage Prompt Provider (campaign renderer core, D4)
|
|
3
|
+
*
|
|
4
|
+
* Wraps the host app and owns the campaign-render lifecycle for the shared
|
|
5
|
+
* cross-platform JS overlay:
|
|
6
|
+
* 1. on a trigger (app-controlled via `showEngagePrompt()` and/or the campaign's
|
|
7
|
+
* own `trigger` from config), calls `facade.engage.fetchConfig()`,
|
|
8
|
+
* 2. runs the throttle/decision core (`selectCampaignToRender`) to pick which
|
|
9
|
+
* campaign — if any — is eligible, honoring frequency caps,
|
|
10
|
+
* 3. mounts the parameterized `EngagePromptView` (Open/Closed: NPS now,
|
|
11
|
+
* ratings/feedback/survey later via the renderer registry),
|
|
12
|
+
* 4. on submit → `facade.engage.submitResponse({ surveyId, score, text })`
|
|
13
|
+
* (transport stamps `responseId` UUID + `schemaVersion` per contract),
|
|
14
|
+
* records the impression as completed, and emits an in-app dismiss/submit
|
|
15
|
+
* tracking event,
|
|
16
|
+
* 5. on dismiss → `facade.engage.trackEvent` with a `dismiss` event.
|
|
17
|
+
*
|
|
18
|
+
* The provider depends only on the `engage` namespace shape — NOT the whole
|
|
19
|
+
* facade — so it stays decoupled and testable, and reuses the existing transport
|
|
20
|
+
* (no second HTTP path).
|
|
21
|
+
*
|
|
22
|
+
* IN-APP MESSAGES (the second Engage family, §2.4/§2.5) are surfaced by this SAME
|
|
23
|
+
* provider — NOT a parallel one. `showInAppMessage()` fetches the config, picks an
|
|
24
|
+
* eligible message from `inAppMessages[]` (shared throttle store), and mounts the
|
|
25
|
+
* config-driven `EngageInAppView` (banner/modal/overlay). Events: `impression` on
|
|
26
|
+
* show, `click` on CTA tap (the resolved deep link is surfaced to the host via
|
|
27
|
+
* `onInAppDeepLink` — the SDK never opens URLs), `dismiss` on close.
|
|
28
|
+
*
|
|
29
|
+
* PRECEDENCE (campaign vs in-app): a campaign prompt wins the screen. If a
|
|
30
|
+
* campaign prompt is already visible, `showInAppMessage()` is a no-op (returns
|
|
31
|
+
* false) and the mounted in-app view is hidden while a campaign is up, so the two
|
|
32
|
+
* families never fight for the screen.
|
|
33
|
+
*/
|
|
34
|
+
import { type ReactNode, type ReactElement } from 'react';
|
|
35
|
+
import { type RatingPromptConfig } from './EngagePromptView';
|
|
36
|
+
import type { SubmitStage } from './EngageTransport';
|
|
37
|
+
import type { EngageAttachmentDraft, EngageCampaignConfig, EngageCampaignType, EngageConfigContext, EngageConfigResponse, EngageEventInput, InAppGameRequestHandler, EngageResponseInput, InAppMessageConfig, InAppRenderSpec, RatingFunnelEventInput, SurveyAnswer, SurveyImpressionInput } from './engageTypes';
|
|
38
|
+
/** Preserve a multi-question survey answer in the keyed wire shape (§1.4). */
|
|
39
|
+
export declare function toWireAnswers(answers: SurveyAnswer[]): {
|
|
40
|
+
key: string;
|
|
41
|
+
value: string | number | string[];
|
|
42
|
+
}[];
|
|
43
|
+
/**
|
|
44
|
+
* The slice of the SDK facade the renderer consumes (the `engage` namespace).
|
|
45
|
+
* Matching this shape — rather than importing the facade — keeps the renderer a
|
|
46
|
+
* pure consumer of the foundation transport and trivially testable.
|
|
47
|
+
*/
|
|
48
|
+
export interface EngageRendererFacade {
|
|
49
|
+
/** External user id last supplied through ScaleBun.identify(). */
|
|
50
|
+
getIdentifiedUserId?: () => string | undefined;
|
|
51
|
+
fetchConfig: (context?: EngageConfigContext) => Promise<EngageConfigResponse | null>;
|
|
52
|
+
trackCoachmarkEvent?: (name: string, properties: Record<string, unknown>) => void;
|
|
53
|
+
submitResponse: (input: EngageResponseInput) => void;
|
|
54
|
+
/**
|
|
55
|
+
* [P3-e] Submit a response with native attachments (screenshot/voice). Optional
|
|
56
|
+
* so a host wired to an older facade still renders prompts (media silently
|
|
57
|
+
* degrades to a plain response).
|
|
58
|
+
*/
|
|
59
|
+
submitResponseWithAttachments?: (input: EngageResponseInput, attachments: EngageAttachmentDraft[]) => void;
|
|
60
|
+
/**
|
|
61
|
+
* [Slice D5] CONFIRMED submit used by the reusable submitting→success→error state
|
|
62
|
+
* machine: resolves only on real server persistence, rejects on failure, idempotent
|
|
63
|
+
* on `responseId`. Optional so an older facade still renders prompts (falls back to
|
|
64
|
+
* the fire-and-forget lanes, which resolve immediately).
|
|
65
|
+
*/
|
|
66
|
+
submitResponseConfirmed?: (input: EngageResponseInput, attachments: EngageAttachmentDraft[], opts: {
|
|
67
|
+
responseId: string;
|
|
68
|
+
onStage?: (stage: SubmitStage) => void;
|
|
69
|
+
}) => Promise<void>;
|
|
70
|
+
trackEvent: (input: EngageEventInput) => void;
|
|
71
|
+
trackSurveyImpression?: (input: SurveyImpressionInput) => void;
|
|
72
|
+
/**
|
|
73
|
+
* Force-flush queued in-app events immediately (bypassing the batch threshold/timer).
|
|
74
|
+
* Called right after a TEST preview's impression/dismiss ACK so the backend consumes
|
|
75
|
+
* the one-shot preview row before the app can be backgrounded/killed — otherwise a
|
|
76
|
+
* still-`delivered` row re-serves on the next reopen. Optional: an older facade simply
|
|
77
|
+
* relies on the periodic flush (eventual consistency).
|
|
78
|
+
*/
|
|
79
|
+
flushEvents?: () => void;
|
|
80
|
+
/**
|
|
81
|
+
* Submit a 1–5 app-store rating via the EXISTING rating lane (NOT
|
|
82
|
+
* submitResponse — D1 keeps app-ratings a distinct funnel). The provider
|
|
83
|
+
* passes a client `clientRatingId` for idempotency (D8). Optional so a host
|
|
84
|
+
* that never shows RATING_PROMPT need not supply it.
|
|
85
|
+
*/
|
|
86
|
+
submitRating?: (input: {
|
|
87
|
+
rating: number;
|
|
88
|
+
comment?: string;
|
|
89
|
+
source?: 'in_app' | 'prompt' | 'manual';
|
|
90
|
+
clientRatingId?: string;
|
|
91
|
+
}) => unknown;
|
|
92
|
+
/**
|
|
93
|
+
* Emit a rating-funnel tracking fact (ratings-rebuild CONTRACT §1.2) — eligible/
|
|
94
|
+
* shown/dismissed/selected/redirect. NOT a campaign response (D1). Optional so an
|
|
95
|
+
* older facade still renders rating prompts (the funnel just goes uninstrumented).
|
|
96
|
+
*/
|
|
97
|
+
emitRatingEvent?: (input: RatingFunnelEventInput) => void;
|
|
98
|
+
/**
|
|
99
|
+
* Trigger the native in-app review sheet (D5). Resolves `true` only when the OS
|
|
100
|
+
* flow ran/resolved after a positive route, so the provider emits
|
|
101
|
+
* `store_redirect_clicked` solely on a `true` result. Optional/fail-soft.
|
|
102
|
+
*/
|
|
103
|
+
requestStoreReview?: () => Promise<boolean>;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Host-app RATING_PROMPT routing config. The store deeplink is NEVER hardcoded —
|
|
107
|
+
* the host supplies either a static `storeUrl` or an `onHighRating` callback (e.g.
|
|
108
|
+
* `Linking.openURL(...)` / native `requestReview()`), and an `onLowRating` for the
|
|
109
|
+
* feedback hand-off. The provider only decides WHICH callback to invoke.
|
|
110
|
+
*/
|
|
111
|
+
export interface EngageRatingRouting extends RatingPromptConfig {
|
|
112
|
+
/** App-store deeplink opened on a high rating (host owns the navigation). */
|
|
113
|
+
storeUrl?: string;
|
|
114
|
+
/** Called on a high rating (>= threshold). Receives the resolved store URL if set. */
|
|
115
|
+
onHighRating?: (info: {
|
|
116
|
+
rating: number;
|
|
117
|
+
campaign: EngageCampaignConfig;
|
|
118
|
+
storeUrl?: string;
|
|
119
|
+
}) => void;
|
|
120
|
+
/** Called on a low rating when routing to feedback (host opens its form). */
|
|
121
|
+
onLowRating?: (info: {
|
|
122
|
+
rating: number;
|
|
123
|
+
campaign: EngageCampaignConfig;
|
|
124
|
+
}) => void;
|
|
125
|
+
}
|
|
126
|
+
export interface ShowEngagePromptOptions {
|
|
127
|
+
/** Restrict to specific campaign types. Defaults to `['NPS']` (NPS-first slice). */
|
|
128
|
+
types?: EngageCampaignType[];
|
|
129
|
+
/** Match a campaign's `targetScreen` to the current screen. */
|
|
130
|
+
screen?: string;
|
|
131
|
+
/**
|
|
132
|
+
* Restrict to campaigns whose `trigger` equals this value (behavioral-trigger
|
|
133
|
+
* path, e.g. `'screen_exit'`). Omitted ⇒ trigger-agnostic (manual fire).
|
|
134
|
+
*/
|
|
135
|
+
trigger?: string;
|
|
136
|
+
/** Event name for `custom_event` / `after_purchase` (matches `triggerConfig.event`). */
|
|
137
|
+
event?: string;
|
|
138
|
+
/** Action label for `failed_action` (matches `triggerConfig.action`). */
|
|
139
|
+
action?: string;
|
|
140
|
+
/** Fired `time_in_app` threshold, used to select only that configured timer. */
|
|
141
|
+
seconds?: number;
|
|
142
|
+
/** App/user context forwarded to the config fetch for server-side targeting. */
|
|
143
|
+
context?: EngageConfigContext;
|
|
144
|
+
}
|
|
145
|
+
export interface ShowInAppMessageOptions {
|
|
146
|
+
/** Match a message's `targetScreen` to the current screen. */
|
|
147
|
+
screen?: string;
|
|
148
|
+
/**
|
|
149
|
+
* Restrict to messages whose `trigger` equals this value (behavioral-trigger
|
|
150
|
+
* path, e.g. `'session_start'`). Omitted ⇒ trigger-agnostic (manual host call).
|
|
151
|
+
*/
|
|
152
|
+
trigger?: string;
|
|
153
|
+
/** Fired business/custom event name, matched against `message.eventName`. */
|
|
154
|
+
event?: string;
|
|
155
|
+
/** Fired action value for forward-compatible action-specific messages. */
|
|
156
|
+
action?: string;
|
|
157
|
+
/** Fired `time_delay` threshold, used to select only that configured message. */
|
|
158
|
+
seconds?: number;
|
|
159
|
+
/** App/user context forwarded to the config fetch for server-side targeting. */
|
|
160
|
+
context?: EngageConfigContext;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* The host's deep-link sink for an in-app CTA tap. The SDK NEVER opens a URL — it
|
|
164
|
+
* hands the resolved `deepLink` (and full message/cta) to the host, which decides
|
|
165
|
+
* how to navigate (e.g. `Linking.openURL` / a router push). Only fired for a CTA
|
|
166
|
+
* whose `action` resolves to a link with a `deepLink`.
|
|
167
|
+
*/
|
|
168
|
+
export type InAppDeepLinkHandler = (info: {
|
|
169
|
+
message: InAppMessageConfig;
|
|
170
|
+
cta: NonNullable<InAppRenderSpec['cta']>;
|
|
171
|
+
deepLink: string;
|
|
172
|
+
}) => void;
|
|
173
|
+
/** Imperative controller a host app uses to trigger a prompt / in-app message. */
|
|
174
|
+
export interface EngagePromptController {
|
|
175
|
+
/** Fetch config, pick an eligible campaign, and show it. Returns whether one was shown. */
|
|
176
|
+
showEngagePrompt: (options?: ShowEngagePromptOptions) => Promise<boolean>;
|
|
177
|
+
/** Dismiss the currently visible prompt (no response submitted). */
|
|
178
|
+
dismissEngagePrompt: () => void;
|
|
179
|
+
/**
|
|
180
|
+
* Fetch config, pick an eligible in-app message (`inAppMessages[]`), and show
|
|
181
|
+
* it. Returns whether one was shown. PRECEDENCE: a campaign prompt already on
|
|
182
|
+
* screen wins — an in-app message is NOT shown over it (see provider doc).
|
|
183
|
+
*/
|
|
184
|
+
showInAppMessage: (options?: ShowInAppMessageOptions) => Promise<boolean>;
|
|
185
|
+
/** Dismiss the currently visible in-app message (emits a `dismiss` event). */
|
|
186
|
+
dismissInAppMessage: () => void;
|
|
187
|
+
}
|
|
188
|
+
export interface EngagePromptProviderProps {
|
|
189
|
+
/** The SDK facade's `engage` namespace (e.g. `ScaleBun.engage`). */
|
|
190
|
+
engage: EngageRendererFacade;
|
|
191
|
+
/** Default campaign types to consider. Defaults to NPS-first. */
|
|
192
|
+
defaultTypes?: EngageCampaignType[];
|
|
193
|
+
/**
|
|
194
|
+
* RATING_PROMPT routing config (host-supplied). The app-store deeplink and
|
|
195
|
+
* feedback hand-off are NEVER hardcoded in the SDK — supplied here.
|
|
196
|
+
*/
|
|
197
|
+
ratingRouting?: EngageRatingRouting;
|
|
198
|
+
/**
|
|
199
|
+
* Host sink for an in-app message CTA deep link. The SDK never opens URLs —
|
|
200
|
+
* it surfaces the resolved `deepLink` here for the host to navigate. Optional:
|
|
201
|
+
* a host that never uses link-action CTAs need not supply it.
|
|
202
|
+
*/
|
|
203
|
+
onInAppDeepLink?: InAppDeepLinkHandler;
|
|
204
|
+
/**
|
|
205
|
+
* Required when a production gamified campaign is used. The SDK calls this
|
|
206
|
+
* only at play/load/check-in/quiz resolution time; the host's authenticated
|
|
207
|
+
* backend owns eligibility, granting, and the returned result.
|
|
208
|
+
*/
|
|
209
|
+
onInAppGameRequest?: InAppGameRequestHandler;
|
|
210
|
+
/**
|
|
211
|
+
* DEV/TEST ONLY — poll interval (ms) for queued test previews while the app is
|
|
212
|
+
* already foregrounded. `checkForPreview` runs on mount + every AppState→active,
|
|
213
|
+
* which covers "reopen the app". But if you press "Send Test" while the app is
|
|
214
|
+
* ALREADY open and in the foreground, there is no background→foreground edge to
|
|
215
|
+
* trigger a refetch. Setting e.g. `previewPollMs={4000}` makes a warm, foreground
|
|
216
|
+
* app pick up a Send Test within a few seconds with no app switch. Leave UNSET in
|
|
217
|
+
* production (0/undefined ⇒ no polling — the foreground/cold-start fetch is enough).
|
|
218
|
+
*/
|
|
219
|
+
previewPollMs?: number;
|
|
220
|
+
children: ReactNode;
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Provider that mounts the shared overlay and exposes the imperative controller
|
|
224
|
+
* via `useEngagePrompt()`.
|
|
225
|
+
*/
|
|
226
|
+
export declare function EngagePromptProvider({ engage, defaultTypes, ratingRouting, onInAppDeepLink, onInAppGameRequest, previewPollMs, children, }: EngagePromptProviderProps): ReactElement;
|
|
227
|
+
/**
|
|
228
|
+
* Hook a host app uses to trigger/dismiss the prompt:
|
|
229
|
+
* const { showEngagePrompt } = useEngagePrompt();
|
|
230
|
+
* showEngagePrompt({ types: ['NPS'] });
|
|
231
|
+
*/
|
|
232
|
+
export declare function useEngagePrompt(): EngagePromptController;
|
|
233
|
+
//# sourceMappingURL=EngagePromptProvider.d.ts.map
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ScaleBun SDK — Engage Prompt View (shared cross-platform JS overlay, D4)
|
|
3
|
+
*
|
|
4
|
+
* The ONE reusable campaign renderer. It is parameterized by config (Open/Closed):
|
|
5
|
+
* a `PROMPT_RENDERERS` registry maps an `EngageCampaignType` to a render branch.
|
|
6
|
+
* NPS is implemented now; ratings/feedback/survey plug in later as ADDITIONAL
|
|
7
|
+
* entries in that registry — NOT four copies of this overlay.
|
|
8
|
+
*
|
|
9
|
+
* The view is presentation-minimal but real (a genuine 0–10 NPS selector + an
|
|
10
|
+
* optional reason field). It is fully controlled: it owns no transport/throttle
|
|
11
|
+
* logic — it raises `onSubmit(result)` / `onDismiss()` and the provider wires
|
|
12
|
+
* those to `facade.engage.submitResponse` / `facade.engage.trackEvent`.
|
|
13
|
+
*/
|
|
14
|
+
import { type ReactElement } from 'react';
|
|
15
|
+
import type { EngageAttachmentDraft, EngageCampaignConfig, EngageCampaignType, SurveyAnswer } from './engageTypes';
|
|
16
|
+
import type { SubmitStage } from './EngageTransport';
|
|
17
|
+
/**
|
|
18
|
+
* [Slice D5] The ONE submit state machine status, shared by EVERY question type.
|
|
19
|
+
* The overlay renders from this — bespoke per-type submit UIs are not allowed.
|
|
20
|
+
*/
|
|
21
|
+
export type EngageSubmitStatus = {
|
|
22
|
+
phase: 'idle';
|
|
23
|
+
} | {
|
|
24
|
+
phase: 'submitting';
|
|
25
|
+
stage: SubmitStage;
|
|
26
|
+
} | {
|
|
27
|
+
phase: 'success';
|
|
28
|
+
} | {
|
|
29
|
+
phase: 'error';
|
|
30
|
+
message?: string;
|
|
31
|
+
};
|
|
32
|
+
/** How a RATING_PROMPT star selection should be routed by the host app. */
|
|
33
|
+
export type RatingRoute = 'store' | 'feedback' | 'submit';
|
|
34
|
+
/** Normalized result a prompt branch raises on submit. */
|
|
35
|
+
export interface EngagePromptResult {
|
|
36
|
+
/** Selected numeric value (NPS 0–10 / CSAT 1–5 / RATING_PROMPT 1–5 stars). */
|
|
37
|
+
score?: number;
|
|
38
|
+
/** Optional free-text follow-up (NPS reason / feedback body). */
|
|
39
|
+
reason?: string;
|
|
40
|
+
/** Optional categorization tags (FEEDBACK). */
|
|
41
|
+
tags?: string[];
|
|
42
|
+
/** Per-question answers (SURVEY multi-question). */
|
|
43
|
+
answers?: SurveyAnswer[];
|
|
44
|
+
/** [P3-e] Native attachments captured in the prompt (screenshot/voice). */
|
|
45
|
+
attachments?: EngageAttachmentDraft[];
|
|
46
|
+
/**
|
|
47
|
+
* For RATING_PROMPT: how the provider should route this rating. `store` =
|
|
48
|
+
* high rating → app-store deeplink; `feedback` = low rating → feedback form;
|
|
49
|
+
* `submit` = record only. The provider, not the view, owns the side effect.
|
|
50
|
+
*/
|
|
51
|
+
route?: RatingRoute;
|
|
52
|
+
}
|
|
53
|
+
/** Props every prompt-type render branch receives (the Open/Closed contract). */
|
|
54
|
+
export interface PromptBranchProps {
|
|
55
|
+
campaign: EngageCampaignConfig;
|
|
56
|
+
onSubmit: (result: EngagePromptResult) => void;
|
|
57
|
+
onDismiss: () => void;
|
|
58
|
+
onStart?: () => void;
|
|
59
|
+
/**
|
|
60
|
+
* RATING_PROMPT routing config (host-app supplied, never hardcoded). The star
|
|
61
|
+
* branch reads `highRatingThreshold` to decide store vs feedback routing.
|
|
62
|
+
*/
|
|
63
|
+
rating?: RatingPromptConfig;
|
|
64
|
+
}
|
|
65
|
+
/** Host-app-supplied RATING_PROMPT routing config (deeplink is NEVER hardcoded). */
|
|
66
|
+
export interface RatingPromptConfig {
|
|
67
|
+
/** Ratings >= this go to the app-store route; below go to feedback. Default 4. */
|
|
68
|
+
highRatingThreshold?: number;
|
|
69
|
+
/** Whether a low rating routes to the in-app feedback form (else just submits). */
|
|
70
|
+
routeLowToFeedback?: boolean;
|
|
71
|
+
}
|
|
72
|
+
/** A render branch for one campaign type. Add entries to extend the renderer. */
|
|
73
|
+
export type PromptRenderer = (props: PromptBranchProps) => ReactElement | null;
|
|
74
|
+
export declare const PROMPT_RENDERERS: Partial<Record<EngageCampaignType, PromptRenderer>>;
|
|
75
|
+
/** Resolve the render branch for a campaign, or null if its type isn't supported yet. */
|
|
76
|
+
export declare function resolvePromptRenderer(type: EngageCampaignType): PromptRenderer | null;
|
|
77
|
+
export interface EngagePromptViewProps {
|
|
78
|
+
campaign: EngageCampaignConfig | null;
|
|
79
|
+
visible: boolean;
|
|
80
|
+
onSubmit: (result: EngagePromptResult) => void;
|
|
81
|
+
onDismiss: () => void;
|
|
82
|
+
onStart?: () => void;
|
|
83
|
+
/** RATING_PROMPT routing config forwarded to the star branch (host-supplied). */
|
|
84
|
+
rating?: RatingPromptConfig;
|
|
85
|
+
/** [Slice D5] Reusable submit state — drives the in-prompt submitting/success/error overlay. */
|
|
86
|
+
submitStatus?: EngageSubmitStatus;
|
|
87
|
+
/** Retry the last submit (same idempotent responseId). */
|
|
88
|
+
onRetrySubmit?: () => void;
|
|
89
|
+
/** Close the prompt after a terminal submit state (success/error). */
|
|
90
|
+
onCloseSubmit?: () => void;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Modal overlay shell. Branches on `campaign.type` via the registry — renders the
|
|
94
|
+
* matching prompt or nothing. This is the single mount point a host app shows.
|
|
95
|
+
*/
|
|
96
|
+
export declare function EngagePromptView({ campaign, visible, onSubmit, onDismiss, onStart, rating, submitStatus, onRetrySubmit, onCloseSubmit, }: EngagePromptViewProps): ReactElement | null;
|
|
97
|
+
//# sourceMappingURL=EngagePromptView.d.ts.map
|