@scalebun/react-native 1.10.4 → 1.10.6

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.
Files changed (802) hide show
  1. package/android/src/main/java/com/scalebun/replaysdk/tracking/InteractionTracker.kt +19 -0
  2. package/dist/scalebun.full.js +460 -57
  3. package/dist/scalebun.slim.js +457 -62
  4. package/ios/Core/DeviceIdentity.swift +50 -0
  5. package/ios/Profiler/ScaleBunProfilerModule.swift +2 -8
  6. package/ios/ReplaySdk.swift +3 -1
  7. package/lib/commonjs/analytics/EventTracker.js +22 -0
  8. package/lib/commonjs/bootstrap/SDKBootstrapper.js +17 -3
  9. package/lib/commonjs/core/config/schema.js +29 -0
  10. package/lib/commonjs/core/constants/version.js +1 -1
  11. package/lib/commonjs/core/context/device.js +5 -0
  12. package/lib/commonjs/debug/redaction.js +227 -41
  13. package/lib/commonjs/features/journey/ScaleBunDebugRoot.js +9 -1
  14. package/lib/commonjs/features/navigation/AutoScreenDetector.js +68 -16
  15. package/lib/commonjs/features/session/BackendSessionAdapter.js +73 -6
  16. package/lib/commonjs/features/session/SessionManager.js +28 -0
  17. package/lib/commonjs/public/ScaleBunFacade.js +113 -2
  18. package/lib/module/analytics/EventTracker.js +22 -0
  19. package/lib/module/bootstrap/SDKBootstrapper.js +17 -3
  20. package/lib/module/core/config/schema.js +29 -0
  21. package/lib/module/core/constants/version.js +1 -1
  22. package/lib/module/core/context/device.js +5 -0
  23. package/lib/module/debug/redaction.js +227 -41
  24. package/lib/module/features/journey/ScaleBunDebugRoot.js +9 -1
  25. package/lib/module/features/navigation/AutoScreenDetector.js +68 -16
  26. package/lib/module/features/session/BackendSessionAdapter.js +73 -6
  27. package/lib/module/features/session/SessionManager.js +28 -0
  28. package/lib/module/public/ScaleBunFacade.js +114 -3
  29. package/lib/typescript/analytics/EventTracker.d.ts +15 -0
  30. package/lib/typescript/core/config/schema.d.ts +8 -0
  31. package/lib/typescript/core/constants/version.d.ts +1 -1
  32. package/lib/typescript/core/context/device.d.ts +1 -0
  33. package/lib/typescript/debug/redaction.d.ts +8 -2
  34. package/lib/typescript/features/navigation/AutoScreenDetector.d.ts +25 -0
  35. package/lib/typescript/features/session/BackendSessionAdapter.d.ts +9 -0
  36. package/lib/typescript/features/session/SessionManager.d.ts +15 -0
  37. package/lib/typescript/public/ScaleBunFacade.d.ts +44 -2
  38. package/lib/typescript/public/types.d.ts +1 -1
  39. package/package.json +6 -2
  40. package/src/analytics/EventTracker.ts +19 -0
  41. package/src/bootstrap/SDKBootstrapper.ts +17 -1
  42. package/src/core/config/schema.ts +22 -0
  43. package/src/core/constants/version.ts +1 -1
  44. package/src/core/context/device.ts +6 -0
  45. package/src/debug/redaction.ts +235 -42
  46. package/src/features/journey/ScaleBunDebugRoot.tsx +9 -1
  47. package/src/features/navigation/AutoScreenDetector.ts +70 -16
  48. package/src/features/session/BackendSessionAdapter.ts +81 -7
  49. package/src/features/session/SessionManager.ts +31 -0
  50. package/src/public/ScaleBunFacade.ts +122 -3
  51. package/src/public/types.ts +1 -1
  52. package/dist/scalebun.full.js.map +0 -1
  53. package/dist/scalebun.slim.js.map +0 -1
  54. package/lib/commonjs/analytics/EventTracker.js.map +0 -1
  55. package/lib/commonjs/analytics/automaticEvents.js.map +0 -1
  56. package/lib/commonjs/analytics/batching.js.map +0 -1
  57. package/lib/commonjs/analytics/eventLane.js.map +0 -1
  58. package/lib/commonjs/bootstrap/FeatureRegistry.js.map +0 -1
  59. package/lib/commonjs/bootstrap/SDKBootstrapper.js.map +0 -1
  60. package/lib/commonjs/bucketing/fnv1a32.js.map +0 -1
  61. package/lib/commonjs/compat/codepush.js.map +0 -1
  62. package/lib/commonjs/config/ConfigManager.js.map +0 -1
  63. package/lib/commonjs/config/configTypes.js.map +0 -1
  64. package/lib/commonjs/core/architecture.js.map +0 -1
  65. package/lib/commonjs/core/clock/now.js.map +0 -1
  66. package/lib/commonjs/core/config/defaults.js.map +0 -1
  67. package/lib/commonjs/core/config/schema.js.map +0 -1
  68. package/lib/commonjs/core/constants/endpoints.js.map +0 -1
  69. package/lib/commonjs/core/constants/protocol.js.map +0 -1
  70. package/lib/commonjs/core/constants/timings.js.map +0 -1
  71. package/lib/commonjs/core/constants/version.js.map +0 -1
  72. package/lib/commonjs/core/context/app.js.map +0 -1
  73. package/lib/commonjs/core/context/device.js.map +0 -1
  74. package/lib/commonjs/core/context/session.js.map +0 -1
  75. package/lib/commonjs/core/context/user.js.map +0 -1
  76. package/lib/commonjs/core/contracts/IFeature.js.map +0 -1
  77. package/lib/commonjs/core/di/container.js.map +0 -1
  78. package/lib/commonjs/core/encoding/base64.js.map +0 -1
  79. package/lib/commonjs/core/id/deviceId.js.map +0 -1
  80. package/lib/commonjs/core/id/installationId.js.map +0 -1
  81. package/lib/commonjs/core/id/sessionId.js.map +0 -1
  82. package/lib/commonjs/core/lifecycle/appLifecycle.js.map +0 -1
  83. package/lib/commonjs/core/lifecycle/crashSafe.js.map +0 -1
  84. package/lib/commonjs/core/logger/errorClassification.js.map +0 -1
  85. package/lib/commonjs/core/logger/internalLogger.js.map +0 -1
  86. package/lib/commonjs/core/logger/levels.js.map +0 -1
  87. package/lib/commonjs/crypto/hmacSha256.js.map +0 -1
  88. package/lib/commonjs/debug/bootstrap.js.map +0 -1
  89. package/lib/commonjs/debug/commands.js.map +0 -1
  90. package/lib/commonjs/debug/configBuilder.js.map +0 -1
  91. package/lib/commonjs/debug/exportBridge.js.map +0 -1
  92. package/lib/commonjs/debug/hostResolver.js.map +0 -1
  93. package/lib/commonjs/debug/index.js.map +0 -1
  94. package/lib/commonjs/debug/metrics.js.map +0 -1
  95. package/lib/commonjs/debug/perf.js.map +0 -1
  96. package/lib/commonjs/debug/perfWiring.js.map +0 -1
  97. package/lib/commonjs/debug/protocol.js.map +0 -1
  98. package/lib/commonjs/debug/redaction.js.map +0 -1
  99. package/lib/commonjs/debug/replayWiring.js.map +0 -1
  100. package/lib/commonjs/debug/screenTracking.js.map +0 -1
  101. package/lib/commonjs/debug/sessionWiring.js.map +0 -1
  102. package/lib/commonjs/debug/stream.js.map +0 -1
  103. package/lib/commonjs/debug/transport.js.map +0 -1
  104. package/lib/commonjs/features/bugreport/BugReportFeature.js.map +0 -1
  105. package/lib/commonjs/features/bugreport/buildPayload.js.map +0 -1
  106. package/lib/commonjs/features/bugreport/index.js.map +0 -1
  107. package/lib/commonjs/features/crash/CrashFeature.js.map +0 -1
  108. package/lib/commonjs/features/crash/CrashReporter.js.map +0 -1
  109. package/lib/commonjs/features/crash/NativeCrashFeature.js.map +0 -1
  110. package/lib/commonjs/features/crash/capture.js.map +0 -1
  111. package/lib/commonjs/features/crash/globalHandler.js.map +0 -1
  112. package/lib/commonjs/features/crash/index.js.map +0 -1
  113. package/lib/commonjs/features/crash/nativeCrashBridge.js.map +0 -1
  114. package/lib/commonjs/features/crash/rejectionHandler.js.map +0 -1
  115. package/lib/commonjs/features/engage/EngageAnchor.js.map +0 -1
  116. package/lib/commonjs/features/engage/EngageArchetypeRenderers.js.map +0 -1
  117. package/lib/commonjs/features/engage/EngageInAppView.js.map +0 -1
  118. package/lib/commonjs/features/engage/EngageInlinePlacement.js.map +0 -1
  119. package/lib/commonjs/features/engage/EngagePromptProvider.js.map +0 -1
  120. package/lib/commonjs/features/engage/EngagePromptView.js.map +0 -1
  121. package/lib/commonjs/features/engage/EngageTransport.js.map +0 -1
  122. package/lib/commonjs/features/engage/EngageVariantContent.js.map +0 -1
  123. package/lib/commonjs/features/engage/__test-support__/reactNativeStub.js.map +0 -1
  124. package/lib/commonjs/features/engage/attachmentCapture.js.map +0 -1
  125. package/lib/commonjs/features/engage/captureVoiceAttachment.js.map +0 -1
  126. package/lib/commonjs/features/engage/engageCoachmarkTour.js.map +0 -1
  127. package/lib/commonjs/features/engage/engageGameLogic.js.map +0 -1
  128. package/lib/commonjs/features/engage/engageMediaSizing.js.map +0 -1
  129. package/lib/commonjs/features/engage/engageMultiStepSheet.js.map +0 -1
  130. package/lib/commonjs/features/engage/engageOutcome.js.map +0 -1
  131. package/lib/commonjs/features/engage/engagePushTokenBridge.js.map +0 -1
  132. package/lib/commonjs/features/engage/engageShakeBridge.js.map +0 -1
  133. package/lib/commonjs/features/engage/engageSignals.js.map +0 -1
  134. package/lib/commonjs/features/engage/engageStoreReviewBridge.js.map +0 -1
  135. package/lib/commonjs/features/engage/engageTestSeenStore.js.map +0 -1
  136. package/lib/commonjs/features/engage/engageThrottle.js.map +0 -1
  137. package/lib/commonjs/features/engage/engageTriggerEngine.js.map +0 -1
  138. package/lib/commonjs/features/engage/engageTypes.js.map +0 -1
  139. package/lib/commonjs/features/engage/engageVariantResolver.js.map +0 -1
  140. package/lib/commonjs/features/engage/engageWindowInsets.js.map +0 -1
  141. package/lib/commonjs/features/engage/gestureTriggerDetector.js.map +0 -1
  142. package/lib/commonjs/features/engage/transcription/TranscriptionProvider.js.map +0 -1
  143. package/lib/commonjs/features/install-referrer/installReferrer.js.map +0 -1
  144. package/lib/commonjs/features/journey/ScaleBunDebugRoot.js.map +0 -1
  145. package/lib/commonjs/features/journey/ScaleBunFlatList.js.map +0 -1
  146. package/lib/commonjs/features/journey/ScaleBunImpression.js.map +0 -1
  147. package/lib/commonjs/features/journey/ScaleBunScrollView.js.map +0 -1
  148. package/lib/commonjs/features/journey/ScaleBunSectionList.js.map +0 -1
  149. package/lib/commonjs/features/journey/calibrationContext.js.map +0 -1
  150. package/lib/commonjs/features/journey/gestureBuffer.js.map +0 -1
  151. package/lib/commonjs/features/journey/gestureDetector.js.map +0 -1
  152. package/lib/commonjs/features/journey/impression.js.map +0 -1
  153. package/lib/commonjs/features/journey/journeyManager.js.map +0 -1
  154. package/lib/commonjs/features/journey/journeyTypes.js.map +0 -1
  155. package/lib/commonjs/features/journey/navDetector.js.map +0 -1
  156. package/lib/commonjs/features/journey/screenshotHelper.js.map +0 -1
  157. package/lib/commonjs/features/journey/targetRegistry.js.map +0 -1
  158. package/lib/commonjs/features/journey/touchTarget.js.map +0 -1
  159. package/lib/commonjs/features/navigation/AutoScreenDetector.js.map +0 -1
  160. package/lib/commonjs/features/network/NetworkFeature.js.map +0 -1
  161. package/lib/commonjs/features/network/index.js.map +0 -1
  162. package/lib/commonjs/features/ota/OtaEventEmitter.js.map +0 -1
  163. package/lib/commonjs/features/ota/OtaOrchestrator.js.map +0 -1
  164. package/lib/commonjs/features/ota/OtaTypes.js.map +0 -1
  165. package/lib/commonjs/features/ota/deviceAttributes.js.map +0 -1
  166. package/lib/commonjs/features/ota/environment.js.map +0 -1
  167. package/lib/commonjs/features/ota/geoCountry.js.map +0 -1
  168. package/lib/commonjs/features/ota/retry.js.map +0 -1
  169. package/lib/commonjs/features/ota/signature.js.map +0 -1
  170. package/lib/commonjs/features/ota/useOtaUpdate.js.map +0 -1
  171. package/lib/commonjs/features/performance/PerformanceFeature.js.map +0 -1
  172. package/lib/commonjs/features/performance/collectors/AppLaunchCollector.js.map +0 -1
  173. package/lib/commonjs/features/performance/collectors/AutoScreenLoadCollector.js.map +0 -1
  174. package/lib/commonjs/features/performance/collectors/CustomTraceCollector.js.map +0 -1
  175. package/lib/commonjs/features/performance/collectors/FrameMetricsCollector.js.map +0 -1
  176. package/lib/commonjs/features/performance/collectors/JsStallCollector.js.map +0 -1
  177. package/lib/commonjs/features/performance/collectors/NetworkPerfCollector.js.map +0 -1
  178. package/lib/commonjs/features/performance/collectors/ScreenLoadCollector.js.map +0 -1
  179. package/lib/commonjs/features/performance/collectors/UiHangCollector.js.map +0 -1
  180. package/lib/commonjs/features/performance/config.js.map +0 -1
  181. package/lib/commonjs/features/performance/getNativePerformanceModule.js.map +0 -1
  182. package/lib/commonjs/features/performance/index.js.map +0 -1
  183. package/lib/commonjs/features/performance/metrics/MetricsEngine.js.map +0 -1
  184. package/lib/commonjs/features/performance/models.js.map +0 -1
  185. package/lib/commonjs/features/performance/transport/PerformanceTransport.js.map +0 -1
  186. package/lib/commonjs/features/profiler/ProfilerFeature.js.map +0 -1
  187. package/lib/commonjs/features/profiler/config.js.map +0 -1
  188. package/lib/commonjs/features/profiler/contracts.js.map +0 -1
  189. package/lib/commonjs/features/profiler/index.js.map +0 -1
  190. package/lib/commonjs/features/profiler/models.js.map +0 -1
  191. package/lib/commonjs/features/profiler/transport/ProfilerTransport.js.map +0 -1
  192. package/lib/commonjs/features/replay/bridge/adapters/bridgeAdapter.js.map +0 -1
  193. package/lib/commonjs/features/replay/bridge/eventEmitter.js.map +0 -1
  194. package/lib/commonjs/features/replay/bridge/nativeModule.js.map +0 -1
  195. package/lib/commonjs/features/replay/core/clock/clock.js.map +0 -1
  196. package/lib/commonjs/features/replay/core/config/defaults.js.map +0 -1
  197. package/lib/commonjs/features/replay/core/config/validator.js.map +0 -1
  198. package/lib/commonjs/features/replay/core/env/environmentDetector.js.map +0 -1
  199. package/lib/commonjs/features/replay/core/errors/safeCall.js.map +0 -1
  200. package/lib/commonjs/features/replay/core/ids/sessionId.js.map +0 -1
  201. package/lib/commonjs/features/replay/core/logger/logger.js.map +0 -1
  202. package/lib/commonjs/features/replay/core/privacy/privacyTypes.js.map +0 -1
  203. package/lib/commonjs/features/replay/core/queue/boundedQueue.js.map +0 -1
  204. package/lib/commonjs/features/replay/integrations/alert/alertInstrumentation.js.map +0 -1
  205. package/lib/commonjs/features/replay/integrations/logs/consoleIntegration.js.map +0 -1
  206. package/lib/commonjs/features/replay/integrations/network/networkAdapter.js.map +0 -1
  207. package/lib/commonjs/features/replay/integrations/react-navigation/navigationIntegration.js.map +0 -1
  208. package/lib/commonjs/features/replay/integrations/touch/ReplayRoot.js.map +0 -1
  209. package/lib/commonjs/features/replay/pipeline/batching/batchManager.js.map +0 -1
  210. package/lib/commonjs/features/replay/pipeline/envelope/envelopeBuilder.js.map +0 -1
  211. package/lib/commonjs/features/replay/pipeline/retry/retryPolicy.js.map +0 -1
  212. package/lib/commonjs/features/replay/pipeline/transport/transportTypes.js.map +0 -1
  213. package/lib/commonjs/features/replay/public/api.js.map +0 -1
  214. package/lib/commonjs/features/replay/public/enums.js.map +0 -1
  215. package/lib/commonjs/features/replay/public/types.js.map +0 -1
  216. package/lib/commonjs/features/replay/replay/breadcrumbs/breadcrumbCollector.js.map +0 -1
  217. package/lib/commonjs/features/replay/replay/frames/frameModels.js.map +0 -1
  218. package/lib/commonjs/features/replay/replay/session/sessionOrchestrator.js.map +0 -1
  219. package/lib/commonjs/features/replay/replay/timeline/timelineModels.js.map +0 -1
  220. package/lib/commonjs/features/replay/transport/BackendReplayTransport.js.map +0 -1
  221. package/lib/commonjs/features/replay/transport/CompositeReplayTransport.js.map +0 -1
  222. package/lib/commonjs/features/replay/transport/DesktopReplayTransport.js.map +0 -1
  223. package/lib/commonjs/features/replay/transport/ReplayTransport.js.map +0 -1
  224. package/lib/commonjs/features/session/BackendSessionAdapter.js.map +0 -1
  225. package/lib/commonjs/features/session/DesktopSessionTransport.js.map +0 -1
  226. package/lib/commonjs/features/session/JourneyEventPipeline.js.map +0 -1
  227. package/lib/commonjs/features/session/ReplayCaptureManager.js.map +0 -1
  228. package/lib/commonjs/features/session/ScrollTracker.js.map +0 -1
  229. package/lib/commonjs/features/session/SessionManager.js.map +0 -1
  230. package/lib/commonjs/features/session/SyncDecisionEngine.js.map +0 -1
  231. package/lib/commonjs/features/session/index.js.map +0 -1
  232. package/lib/commonjs/features/session/nativeCapture.js.map +0 -1
  233. package/lib/commonjs/features/session/outboxFrameCapture.js.map +0 -1
  234. package/lib/commonjs/features/session/sessionTypes.js.map +0 -1
  235. package/lib/commonjs/features/skan/skanBridge.js.map +0 -1
  236. package/lib/commonjs/features/skan/skanConversionManager.js.map +0 -1
  237. package/lib/commonjs/index.js.map +0 -1
  238. package/lib/commonjs/integrations/fetch/fetchInterceptor.js.map +0 -1
  239. package/lib/commonjs/integrations/navigation/screenTracker.js.map +0 -1
  240. package/lib/commonjs/integrations/network/bodyCapture.js.map +0 -1
  241. package/lib/commonjs/integrations/xhr/xhrInterceptor.js.map +0 -1
  242. package/lib/commonjs/metro/composeSourceMap.js.map +0 -1
  243. package/lib/commonjs/metro/featureModules.js.map +0 -1
  244. package/lib/commonjs/metro/index.js.map +0 -1
  245. package/lib/commonjs/metro/optionalDependencyStub.js.map +0 -1
  246. package/lib/commonjs/metro/optionalModules.js.map +0 -1
  247. package/lib/commonjs/metro/serializerCompose.js.map +0 -1
  248. package/lib/commonjs/pipeline/dispatcher/dispatcher.js.map +0 -1
  249. package/lib/commonjs/pipeline/envelope/envelope.js.map +0 -1
  250. package/lib/commonjs/pipeline/envelope/serializer.js.map +0 -1
  251. package/lib/commonjs/pipeline/processors/dedupe.js.map +0 -1
  252. package/lib/commonjs/pipeline/processors/enrich.js.map +0 -1
  253. package/lib/commonjs/pipeline/processors/sampling.js.map +0 -1
  254. package/lib/commonjs/pipeline/processors/sanitize.js.map +0 -1
  255. package/lib/commonjs/pipeline/queue/flushQueue.js.map +0 -1
  256. package/lib/commonjs/pipeline/queue/memoryQueue.js.map +0 -1
  257. package/lib/commonjs/pipeline/queue/persistentQueue.js.map +0 -1
  258. package/lib/commonjs/pipeline/queue/queuePolicy.js.map +0 -1
  259. package/lib/commonjs/pipeline/scheduler/flushScheduler.js.map +0 -1
  260. package/lib/commonjs/pipeline/scheduler/retryPolicy.js.map +0 -1
  261. package/lib/commonjs/public/ScaleBunErrorBoundary.js.map +0 -1
  262. package/lib/commonjs/public/ScaleBunFacade.js.map +0 -1
  263. package/lib/commonjs/public/ScaleBunProvider.js.map +0 -1
  264. package/lib/commonjs/public/typedTracker.js.map +0 -1
  265. package/lib/commonjs/public/types.js.map +0 -1
  266. package/lib/commonjs/push/PushManager.js.map +0 -1
  267. package/lib/commonjs/push/adapters/ManualAdapter.js.map +0 -1
  268. package/lib/commonjs/push/adapters/NativeBridgeAdapter.js.map +0 -1
  269. package/lib/commonjs/push/adapters/NoopAdapter.js.map +0 -1
  270. package/lib/commonjs/push/adapters/RNFirebaseMessagingAdapter.js.map +0 -1
  271. package/lib/commonjs/push/adapters/loadMessaging.js.map +0 -1
  272. package/lib/commonjs/push/adapters/loadNotifee.js.map +0 -1
  273. package/lib/commonjs/push/adapters/selectAdapter.js.map +0 -1
  274. package/lib/commonjs/push/detect/capabilities.js.map +0 -1
  275. package/lib/commonjs/push/index.js.map +0 -1
  276. package/lib/commonjs/push/native/nativeNotifications.js.map +0 -1
  277. package/lib/commonjs/push/types.js.map +0 -1
  278. package/lib/commonjs/specs/NativeReplaySdk.js.map +0 -1
  279. package/lib/commonjs/specs/NativeScaleBunCrash.js.map +0 -1
  280. package/lib/commonjs/specs/NativeScaleBunInstallReferrer.js.map +0 -1
  281. package/lib/commonjs/specs/NativeScaleBunOta.js.map +0 -1
  282. package/lib/commonjs/specs/NativeScaleBunPerformance.js.map +0 -1
  283. package/lib/commonjs/specs/NativeScaleBunProfiler.js.map +0 -1
  284. package/lib/commonjs/specs/NativeScaleBunStorage.js.map +0 -1
  285. package/lib/commonjs/storage/StorageBackend.js.map +0 -1
  286. package/lib/commonjs/storage/db/sqlite.js.map +0 -1
  287. package/lib/commonjs/storage/files/fileStore.js.map +0 -1
  288. package/lib/commonjs/transport/auth/sdkSession.js.map +0 -1
  289. package/lib/commonjs/transport/backoff/exponentialJitter.js.map +0 -1
  290. package/lib/commonjs/transport/http/endpoints.js.map +0 -1
  291. package/lib/commonjs/transport/http/httpClient.js.map +0 -1
  292. package/lib/commonjs/transport/rateLimit/retryAfter.js.map +0 -1
  293. package/lib/commonjs/transport/signing/requestSigner.js.map +0 -1
  294. package/lib/commonjs/vendor/protocol/index.js.map +0 -1
  295. package/lib/commonjs/vendor/protocol/internal/validation.js.map +0 -1
  296. package/lib/commonjs/vendor/sdk-contracts/bridge.js.map +0 -1
  297. package/lib/commonjs/vendor/sdk-contracts/config.js.map +0 -1
  298. package/lib/commonjs/vendor/sdk-contracts/events.js.map +0 -1
  299. package/lib/commonjs/vendor/sdk-contracts/features.js.map +0 -1
  300. package/lib/commonjs/vendor/sdk-contracts/index.js.map +0 -1
  301. package/lib/commonjs/vendor/sdk-contracts/platform.js.map +0 -1
  302. package/lib/commonjs/vendor/sdk-contracts/session-boundary.js.map +0 -1
  303. package/lib/commonjs/vendor/sdk-contracts/session.js.map +0 -1
  304. package/lib/module/analytics/EventTracker.js.map +0 -1
  305. package/lib/module/analytics/automaticEvents.js.map +0 -1
  306. package/lib/module/analytics/batching.js.map +0 -1
  307. package/lib/module/analytics/eventLane.js.map +0 -1
  308. package/lib/module/bootstrap/FeatureRegistry.js.map +0 -1
  309. package/lib/module/bootstrap/SDKBootstrapper.js.map +0 -1
  310. package/lib/module/bucketing/fnv1a32.js.map +0 -1
  311. package/lib/module/compat/codepush.js.map +0 -1
  312. package/lib/module/config/ConfigManager.js.map +0 -1
  313. package/lib/module/config/configTypes.js.map +0 -1
  314. package/lib/module/core/architecture.js.map +0 -1
  315. package/lib/module/core/clock/now.js.map +0 -1
  316. package/lib/module/core/config/defaults.js.map +0 -1
  317. package/lib/module/core/config/schema.js.map +0 -1
  318. package/lib/module/core/constants/endpoints.js.map +0 -1
  319. package/lib/module/core/constants/protocol.js.map +0 -1
  320. package/lib/module/core/constants/timings.js.map +0 -1
  321. package/lib/module/core/constants/version.js.map +0 -1
  322. package/lib/module/core/context/app.js.map +0 -1
  323. package/lib/module/core/context/device.js.map +0 -1
  324. package/lib/module/core/context/session.js.map +0 -1
  325. package/lib/module/core/context/user.js.map +0 -1
  326. package/lib/module/core/contracts/IFeature.js.map +0 -1
  327. package/lib/module/core/di/container.js.map +0 -1
  328. package/lib/module/core/encoding/base64.js.map +0 -1
  329. package/lib/module/core/id/deviceId.js.map +0 -1
  330. package/lib/module/core/id/installationId.js.map +0 -1
  331. package/lib/module/core/id/sessionId.js.map +0 -1
  332. package/lib/module/core/lifecycle/appLifecycle.js.map +0 -1
  333. package/lib/module/core/lifecycle/crashSafe.js.map +0 -1
  334. package/lib/module/core/logger/errorClassification.js.map +0 -1
  335. package/lib/module/core/logger/internalLogger.js.map +0 -1
  336. package/lib/module/core/logger/levels.js.map +0 -1
  337. package/lib/module/crypto/hmacSha256.js.map +0 -1
  338. package/lib/module/debug/bootstrap.js.map +0 -1
  339. package/lib/module/debug/commands.js.map +0 -1
  340. package/lib/module/debug/configBuilder.js.map +0 -1
  341. package/lib/module/debug/exportBridge.js.map +0 -1
  342. package/lib/module/debug/hostResolver.js.map +0 -1
  343. package/lib/module/debug/index.js.map +0 -1
  344. package/lib/module/debug/metrics.js.map +0 -1
  345. package/lib/module/debug/perf.js.map +0 -1
  346. package/lib/module/debug/perfWiring.js.map +0 -1
  347. package/lib/module/debug/protocol.js.map +0 -1
  348. package/lib/module/debug/redaction.js.map +0 -1
  349. package/lib/module/debug/replayWiring.js.map +0 -1
  350. package/lib/module/debug/screenTracking.js.map +0 -1
  351. package/lib/module/debug/sessionWiring.js.map +0 -1
  352. package/lib/module/debug/stream.js.map +0 -1
  353. package/lib/module/debug/transport.js.map +0 -1
  354. package/lib/module/features/bugreport/BugReportFeature.js.map +0 -1
  355. package/lib/module/features/bugreport/buildPayload.js.map +0 -1
  356. package/lib/module/features/bugreport/index.js.map +0 -1
  357. package/lib/module/features/crash/CrashFeature.js.map +0 -1
  358. package/lib/module/features/crash/CrashReporter.js.map +0 -1
  359. package/lib/module/features/crash/NativeCrashFeature.js.map +0 -1
  360. package/lib/module/features/crash/capture.js.map +0 -1
  361. package/lib/module/features/crash/globalHandler.js.map +0 -1
  362. package/lib/module/features/crash/index.js.map +0 -1
  363. package/lib/module/features/crash/nativeCrashBridge.js.map +0 -1
  364. package/lib/module/features/crash/rejectionHandler.js.map +0 -1
  365. package/lib/module/features/engage/EngageAnchor.js.map +0 -1
  366. package/lib/module/features/engage/EngageArchetypeRenderers.js.map +0 -1
  367. package/lib/module/features/engage/EngageInAppView.js.map +0 -1
  368. package/lib/module/features/engage/EngageInlinePlacement.js.map +0 -1
  369. package/lib/module/features/engage/EngagePromptProvider.js.map +0 -1
  370. package/lib/module/features/engage/EngagePromptView.js.map +0 -1
  371. package/lib/module/features/engage/EngageTransport.js.map +0 -1
  372. package/lib/module/features/engage/EngageVariantContent.js.map +0 -1
  373. package/lib/module/features/engage/__test-support__/reactNativeStub.js.map +0 -1
  374. package/lib/module/features/engage/attachmentCapture.js.map +0 -1
  375. package/lib/module/features/engage/captureVoiceAttachment.js.map +0 -1
  376. package/lib/module/features/engage/engageCoachmarkTour.js.map +0 -1
  377. package/lib/module/features/engage/engageGameLogic.js.map +0 -1
  378. package/lib/module/features/engage/engageMediaSizing.js.map +0 -1
  379. package/lib/module/features/engage/engageMultiStepSheet.js.map +0 -1
  380. package/lib/module/features/engage/engageOutcome.js.map +0 -1
  381. package/lib/module/features/engage/engagePushTokenBridge.js.map +0 -1
  382. package/lib/module/features/engage/engageShakeBridge.js.map +0 -1
  383. package/lib/module/features/engage/engageSignals.js.map +0 -1
  384. package/lib/module/features/engage/engageStoreReviewBridge.js.map +0 -1
  385. package/lib/module/features/engage/engageTestSeenStore.js.map +0 -1
  386. package/lib/module/features/engage/engageThrottle.js.map +0 -1
  387. package/lib/module/features/engage/engageTriggerEngine.js.map +0 -1
  388. package/lib/module/features/engage/engageTypes.js.map +0 -1
  389. package/lib/module/features/engage/engageVariantResolver.js.map +0 -1
  390. package/lib/module/features/engage/engageWindowInsets.js.map +0 -1
  391. package/lib/module/features/engage/gestureTriggerDetector.js.map +0 -1
  392. package/lib/module/features/engage/transcription/TranscriptionProvider.js.map +0 -1
  393. package/lib/module/features/install-referrer/installReferrer.js.map +0 -1
  394. package/lib/module/features/journey/ScaleBunDebugRoot.js.map +0 -1
  395. package/lib/module/features/journey/ScaleBunFlatList.js.map +0 -1
  396. package/lib/module/features/journey/ScaleBunImpression.js.map +0 -1
  397. package/lib/module/features/journey/ScaleBunScrollView.js.map +0 -1
  398. package/lib/module/features/journey/ScaleBunSectionList.js.map +0 -1
  399. package/lib/module/features/journey/calibrationContext.js.map +0 -1
  400. package/lib/module/features/journey/gestureBuffer.js.map +0 -1
  401. package/lib/module/features/journey/gestureDetector.js.map +0 -1
  402. package/lib/module/features/journey/impression.js.map +0 -1
  403. package/lib/module/features/journey/journeyManager.js.map +0 -1
  404. package/lib/module/features/journey/journeyTypes.js.map +0 -1
  405. package/lib/module/features/journey/navDetector.js.map +0 -1
  406. package/lib/module/features/journey/screenshotHelper.js.map +0 -1
  407. package/lib/module/features/journey/targetRegistry.js.map +0 -1
  408. package/lib/module/features/journey/touchTarget.js.map +0 -1
  409. package/lib/module/features/navigation/AutoScreenDetector.js.map +0 -1
  410. package/lib/module/features/network/NetworkFeature.js.map +0 -1
  411. package/lib/module/features/network/index.js.map +0 -1
  412. package/lib/module/features/ota/OtaEventEmitter.js.map +0 -1
  413. package/lib/module/features/ota/OtaOrchestrator.js.map +0 -1
  414. package/lib/module/features/ota/OtaTypes.js.map +0 -1
  415. package/lib/module/features/ota/deviceAttributes.js.map +0 -1
  416. package/lib/module/features/ota/environment.js.map +0 -1
  417. package/lib/module/features/ota/geoCountry.js.map +0 -1
  418. package/lib/module/features/ota/retry.js.map +0 -1
  419. package/lib/module/features/ota/signature.js.map +0 -1
  420. package/lib/module/features/ota/useOtaUpdate.js.map +0 -1
  421. package/lib/module/features/performance/PerformanceFeature.js.map +0 -1
  422. package/lib/module/features/performance/collectors/AppLaunchCollector.js.map +0 -1
  423. package/lib/module/features/performance/collectors/AutoScreenLoadCollector.js.map +0 -1
  424. package/lib/module/features/performance/collectors/CustomTraceCollector.js.map +0 -1
  425. package/lib/module/features/performance/collectors/FrameMetricsCollector.js.map +0 -1
  426. package/lib/module/features/performance/collectors/JsStallCollector.js.map +0 -1
  427. package/lib/module/features/performance/collectors/NetworkPerfCollector.js.map +0 -1
  428. package/lib/module/features/performance/collectors/ScreenLoadCollector.js.map +0 -1
  429. package/lib/module/features/performance/collectors/UiHangCollector.js.map +0 -1
  430. package/lib/module/features/performance/config.js.map +0 -1
  431. package/lib/module/features/performance/getNativePerformanceModule.js.map +0 -1
  432. package/lib/module/features/performance/index.js.map +0 -1
  433. package/lib/module/features/performance/metrics/MetricsEngine.js.map +0 -1
  434. package/lib/module/features/performance/models.js.map +0 -1
  435. package/lib/module/features/performance/transport/PerformanceTransport.js.map +0 -1
  436. package/lib/module/features/profiler/ProfilerFeature.js.map +0 -1
  437. package/lib/module/features/profiler/config.js.map +0 -1
  438. package/lib/module/features/profiler/contracts.js.map +0 -1
  439. package/lib/module/features/profiler/index.js.map +0 -1
  440. package/lib/module/features/profiler/models.js.map +0 -1
  441. package/lib/module/features/profiler/transport/ProfilerTransport.js.map +0 -1
  442. package/lib/module/features/replay/bridge/adapters/bridgeAdapter.js.map +0 -1
  443. package/lib/module/features/replay/bridge/eventEmitter.js.map +0 -1
  444. package/lib/module/features/replay/bridge/nativeModule.js.map +0 -1
  445. package/lib/module/features/replay/core/clock/clock.js.map +0 -1
  446. package/lib/module/features/replay/core/config/defaults.js.map +0 -1
  447. package/lib/module/features/replay/core/config/validator.js.map +0 -1
  448. package/lib/module/features/replay/core/env/environmentDetector.js.map +0 -1
  449. package/lib/module/features/replay/core/errors/safeCall.js.map +0 -1
  450. package/lib/module/features/replay/core/ids/sessionId.js.map +0 -1
  451. package/lib/module/features/replay/core/logger/logger.js.map +0 -1
  452. package/lib/module/features/replay/core/privacy/privacyTypes.js.map +0 -1
  453. package/lib/module/features/replay/core/queue/boundedQueue.js.map +0 -1
  454. package/lib/module/features/replay/integrations/alert/alertInstrumentation.js.map +0 -1
  455. package/lib/module/features/replay/integrations/logs/consoleIntegration.js.map +0 -1
  456. package/lib/module/features/replay/integrations/network/networkAdapter.js.map +0 -1
  457. package/lib/module/features/replay/integrations/react-navigation/navigationIntegration.js.map +0 -1
  458. package/lib/module/features/replay/integrations/touch/ReplayRoot.js.map +0 -1
  459. package/lib/module/features/replay/pipeline/batching/batchManager.js.map +0 -1
  460. package/lib/module/features/replay/pipeline/envelope/envelopeBuilder.js.map +0 -1
  461. package/lib/module/features/replay/pipeline/retry/retryPolicy.js.map +0 -1
  462. package/lib/module/features/replay/pipeline/transport/transportTypes.js.map +0 -1
  463. package/lib/module/features/replay/public/api.js.map +0 -1
  464. package/lib/module/features/replay/public/enums.js.map +0 -1
  465. package/lib/module/features/replay/public/types.js.map +0 -1
  466. package/lib/module/features/replay/replay/breadcrumbs/breadcrumbCollector.js.map +0 -1
  467. package/lib/module/features/replay/replay/frames/frameModels.js.map +0 -1
  468. package/lib/module/features/replay/replay/session/sessionOrchestrator.js.map +0 -1
  469. package/lib/module/features/replay/replay/timeline/timelineModels.js.map +0 -1
  470. package/lib/module/features/replay/transport/BackendReplayTransport.js.map +0 -1
  471. package/lib/module/features/replay/transport/CompositeReplayTransport.js.map +0 -1
  472. package/lib/module/features/replay/transport/DesktopReplayTransport.js.map +0 -1
  473. package/lib/module/features/replay/transport/ReplayTransport.js.map +0 -1
  474. package/lib/module/features/session/BackendSessionAdapter.js.map +0 -1
  475. package/lib/module/features/session/DesktopSessionTransport.js.map +0 -1
  476. package/lib/module/features/session/JourneyEventPipeline.js.map +0 -1
  477. package/lib/module/features/session/ReplayCaptureManager.js.map +0 -1
  478. package/lib/module/features/session/ScrollTracker.js.map +0 -1
  479. package/lib/module/features/session/SessionManager.js.map +0 -1
  480. package/lib/module/features/session/SyncDecisionEngine.js.map +0 -1
  481. package/lib/module/features/session/index.js.map +0 -1
  482. package/lib/module/features/session/nativeCapture.js.map +0 -1
  483. package/lib/module/features/session/outboxFrameCapture.js.map +0 -1
  484. package/lib/module/features/session/sessionTypes.js.map +0 -1
  485. package/lib/module/features/skan/skanBridge.js.map +0 -1
  486. package/lib/module/features/skan/skanConversionManager.js.map +0 -1
  487. package/lib/module/index.js.map +0 -1
  488. package/lib/module/integrations/fetch/fetchInterceptor.js.map +0 -1
  489. package/lib/module/integrations/navigation/screenTracker.js.map +0 -1
  490. package/lib/module/integrations/network/bodyCapture.js.map +0 -1
  491. package/lib/module/integrations/xhr/xhrInterceptor.js.map +0 -1
  492. package/lib/module/metro/composeSourceMap.js.map +0 -1
  493. package/lib/module/metro/featureModules.js.map +0 -1
  494. package/lib/module/metro/index.js.map +0 -1
  495. package/lib/module/metro/optionalDependencyStub.js.map +0 -1
  496. package/lib/module/metro/optionalModules.js.map +0 -1
  497. package/lib/module/metro/serializerCompose.js.map +0 -1
  498. package/lib/module/pipeline/dispatcher/dispatcher.js.map +0 -1
  499. package/lib/module/pipeline/envelope/envelope.js.map +0 -1
  500. package/lib/module/pipeline/envelope/serializer.js.map +0 -1
  501. package/lib/module/pipeline/processors/dedupe.js.map +0 -1
  502. package/lib/module/pipeline/processors/enrich.js.map +0 -1
  503. package/lib/module/pipeline/processors/sampling.js.map +0 -1
  504. package/lib/module/pipeline/processors/sanitize.js.map +0 -1
  505. package/lib/module/pipeline/queue/flushQueue.js.map +0 -1
  506. package/lib/module/pipeline/queue/memoryQueue.js.map +0 -1
  507. package/lib/module/pipeline/queue/persistentQueue.js.map +0 -1
  508. package/lib/module/pipeline/queue/queuePolicy.js.map +0 -1
  509. package/lib/module/pipeline/scheduler/flushScheduler.js.map +0 -1
  510. package/lib/module/pipeline/scheduler/retryPolicy.js.map +0 -1
  511. package/lib/module/public/ScaleBunErrorBoundary.js.map +0 -1
  512. package/lib/module/public/ScaleBunFacade.js.map +0 -1
  513. package/lib/module/public/ScaleBunProvider.js.map +0 -1
  514. package/lib/module/public/typedTracker.js.map +0 -1
  515. package/lib/module/public/types.js.map +0 -1
  516. package/lib/module/push/PushManager.js.map +0 -1
  517. package/lib/module/push/adapters/ManualAdapter.js.map +0 -1
  518. package/lib/module/push/adapters/NativeBridgeAdapter.js.map +0 -1
  519. package/lib/module/push/adapters/NoopAdapter.js.map +0 -1
  520. package/lib/module/push/adapters/RNFirebaseMessagingAdapter.js.map +0 -1
  521. package/lib/module/push/adapters/loadMessaging.js.map +0 -1
  522. package/lib/module/push/adapters/loadNotifee.js.map +0 -1
  523. package/lib/module/push/adapters/selectAdapter.js.map +0 -1
  524. package/lib/module/push/detect/capabilities.js.map +0 -1
  525. package/lib/module/push/index.js.map +0 -1
  526. package/lib/module/push/native/nativeNotifications.js.map +0 -1
  527. package/lib/module/push/types.js.map +0 -1
  528. package/lib/module/specs/NativeReplaySdk.js.map +0 -1
  529. package/lib/module/specs/NativeScaleBunCrash.js.map +0 -1
  530. package/lib/module/specs/NativeScaleBunInstallReferrer.js.map +0 -1
  531. package/lib/module/specs/NativeScaleBunOta.js.map +0 -1
  532. package/lib/module/specs/NativeScaleBunPerformance.js.map +0 -1
  533. package/lib/module/specs/NativeScaleBunProfiler.js.map +0 -1
  534. package/lib/module/specs/NativeScaleBunStorage.js.map +0 -1
  535. package/lib/module/storage/StorageBackend.js.map +0 -1
  536. package/lib/module/storage/db/sqlite.js.map +0 -1
  537. package/lib/module/storage/files/fileStore.js.map +0 -1
  538. package/lib/module/transport/auth/sdkSession.js.map +0 -1
  539. package/lib/module/transport/backoff/exponentialJitter.js.map +0 -1
  540. package/lib/module/transport/http/endpoints.js.map +0 -1
  541. package/lib/module/transport/http/httpClient.js.map +0 -1
  542. package/lib/module/transport/rateLimit/retryAfter.js.map +0 -1
  543. package/lib/module/transport/signing/requestSigner.js.map +0 -1
  544. package/lib/module/vendor/protocol/index.js.map +0 -1
  545. package/lib/module/vendor/protocol/internal/validation.js.map +0 -1
  546. package/lib/module/vendor/sdk-contracts/bridge.js.map +0 -1
  547. package/lib/module/vendor/sdk-contracts/config.js.map +0 -1
  548. package/lib/module/vendor/sdk-contracts/events.js.map +0 -1
  549. package/lib/module/vendor/sdk-contracts/features.js.map +0 -1
  550. package/lib/module/vendor/sdk-contracts/index.js.map +0 -1
  551. package/lib/module/vendor/sdk-contracts/platform.js.map +0 -1
  552. package/lib/module/vendor/sdk-contracts/session-boundary.js.map +0 -1
  553. package/lib/module/vendor/sdk-contracts/session.js.map +0 -1
  554. package/lib/typescript/analytics/EventTracker.d.ts.map +0 -1
  555. package/lib/typescript/analytics/automaticEvents.d.ts.map +0 -1
  556. package/lib/typescript/analytics/batching.d.ts.map +0 -1
  557. package/lib/typescript/analytics/eventLane.d.ts.map +0 -1
  558. package/lib/typescript/bootstrap/FeatureRegistry.d.ts.map +0 -1
  559. package/lib/typescript/bootstrap/SDKBootstrapper.d.ts.map +0 -1
  560. package/lib/typescript/bucketing/fnv1a32.d.ts.map +0 -1
  561. package/lib/typescript/compat/codepush.d.ts.map +0 -1
  562. package/lib/typescript/config/ConfigManager.d.ts.map +0 -1
  563. package/lib/typescript/config/configTypes.d.ts.map +0 -1
  564. package/lib/typescript/core/architecture.d.ts.map +0 -1
  565. package/lib/typescript/core/clock/now.d.ts.map +0 -1
  566. package/lib/typescript/core/config/defaults.d.ts.map +0 -1
  567. package/lib/typescript/core/config/schema.d.ts.map +0 -1
  568. package/lib/typescript/core/constants/endpoints.d.ts.map +0 -1
  569. package/lib/typescript/core/constants/protocol.d.ts.map +0 -1
  570. package/lib/typescript/core/constants/timings.d.ts.map +0 -1
  571. package/lib/typescript/core/constants/version.d.ts.map +0 -1
  572. package/lib/typescript/core/context/app.d.ts.map +0 -1
  573. package/lib/typescript/core/context/device.d.ts.map +0 -1
  574. package/lib/typescript/core/context/session.d.ts.map +0 -1
  575. package/lib/typescript/core/context/user.d.ts.map +0 -1
  576. package/lib/typescript/core/contracts/IFeature.d.ts.map +0 -1
  577. package/lib/typescript/core/di/container.d.ts.map +0 -1
  578. package/lib/typescript/core/encoding/base64.d.ts.map +0 -1
  579. package/lib/typescript/core/id/deviceId.d.ts.map +0 -1
  580. package/lib/typescript/core/id/installationId.d.ts.map +0 -1
  581. package/lib/typescript/core/id/sessionId.d.ts.map +0 -1
  582. package/lib/typescript/core/lifecycle/appLifecycle.d.ts.map +0 -1
  583. package/lib/typescript/core/lifecycle/crashSafe.d.ts.map +0 -1
  584. package/lib/typescript/core/logger/errorClassification.d.ts.map +0 -1
  585. package/lib/typescript/core/logger/internalLogger.d.ts.map +0 -1
  586. package/lib/typescript/core/logger/levels.d.ts.map +0 -1
  587. package/lib/typescript/crypto/hmacSha256.d.ts.map +0 -1
  588. package/lib/typescript/debug/bootstrap.d.ts.map +0 -1
  589. package/lib/typescript/debug/commands.d.ts.map +0 -1
  590. package/lib/typescript/debug/configBuilder.d.ts.map +0 -1
  591. package/lib/typescript/debug/exportBridge.d.ts.map +0 -1
  592. package/lib/typescript/debug/hostResolver.d.ts.map +0 -1
  593. package/lib/typescript/debug/index.d.ts.map +0 -1
  594. package/lib/typescript/debug/metrics.d.ts.map +0 -1
  595. package/lib/typescript/debug/perf.d.ts.map +0 -1
  596. package/lib/typescript/debug/perfWiring.d.ts.map +0 -1
  597. package/lib/typescript/debug/protocol.d.ts.map +0 -1
  598. package/lib/typescript/debug/redaction.d.ts.map +0 -1
  599. package/lib/typescript/debug/replayWiring.d.ts.map +0 -1
  600. package/lib/typescript/debug/screenTracking.d.ts.map +0 -1
  601. package/lib/typescript/debug/sessionWiring.d.ts.map +0 -1
  602. package/lib/typescript/debug/stream.d.ts.map +0 -1
  603. package/lib/typescript/debug/transport.d.ts.map +0 -1
  604. package/lib/typescript/features/bugreport/BugReportFeature.d.ts.map +0 -1
  605. package/lib/typescript/features/bugreport/buildPayload.d.ts.map +0 -1
  606. package/lib/typescript/features/bugreport/index.d.ts.map +0 -1
  607. package/lib/typescript/features/crash/CrashFeature.d.ts.map +0 -1
  608. package/lib/typescript/features/crash/CrashReporter.d.ts.map +0 -1
  609. package/lib/typescript/features/crash/NativeCrashFeature.d.ts.map +0 -1
  610. package/lib/typescript/features/crash/capture.d.ts.map +0 -1
  611. package/lib/typescript/features/crash/globalHandler.d.ts.map +0 -1
  612. package/lib/typescript/features/crash/index.d.ts.map +0 -1
  613. package/lib/typescript/features/crash/nativeCrashBridge.d.ts.map +0 -1
  614. package/lib/typescript/features/crash/rejectionHandler.d.ts.map +0 -1
  615. package/lib/typescript/features/engage/EngageAnchor.d.ts.map +0 -1
  616. package/lib/typescript/features/engage/EngageArchetypeRenderers.d.ts.map +0 -1
  617. package/lib/typescript/features/engage/EngageInAppView.d.ts.map +0 -1
  618. package/lib/typescript/features/engage/EngageInlinePlacement.d.ts.map +0 -1
  619. package/lib/typescript/features/engage/EngagePromptProvider.d.ts.map +0 -1
  620. package/lib/typescript/features/engage/EngagePromptView.d.ts.map +0 -1
  621. package/lib/typescript/features/engage/EngageTransport.d.ts.map +0 -1
  622. package/lib/typescript/features/engage/EngageVariantContent.d.ts.map +0 -1
  623. package/lib/typescript/features/engage/attachmentCapture.d.ts.map +0 -1
  624. package/lib/typescript/features/engage/captureVoiceAttachment.d.ts.map +0 -1
  625. package/lib/typescript/features/engage/engageCoachmarkTour.d.ts.map +0 -1
  626. package/lib/typescript/features/engage/engageGameLogic.d.ts.map +0 -1
  627. package/lib/typescript/features/engage/engageMediaSizing.d.ts.map +0 -1
  628. package/lib/typescript/features/engage/engageMultiStepSheet.d.ts.map +0 -1
  629. package/lib/typescript/features/engage/engageOutcome.d.ts.map +0 -1
  630. package/lib/typescript/features/engage/engagePushTokenBridge.d.ts.map +0 -1
  631. package/lib/typescript/features/engage/engageShakeBridge.d.ts.map +0 -1
  632. package/lib/typescript/features/engage/engageSignals.d.ts.map +0 -1
  633. package/lib/typescript/features/engage/engageStoreReviewBridge.d.ts.map +0 -1
  634. package/lib/typescript/features/engage/engageTestSeenStore.d.ts.map +0 -1
  635. package/lib/typescript/features/engage/engageThrottle.d.ts.map +0 -1
  636. package/lib/typescript/features/engage/engageTriggerEngine.d.ts.map +0 -1
  637. package/lib/typescript/features/engage/engageTypes.d.ts.map +0 -1
  638. package/lib/typescript/features/engage/engageVariantResolver.d.ts.map +0 -1
  639. package/lib/typescript/features/engage/engageWindowInsets.d.ts.map +0 -1
  640. package/lib/typescript/features/engage/gestureTriggerDetector.d.ts.map +0 -1
  641. package/lib/typescript/features/engage/transcription/TranscriptionProvider.d.ts.map +0 -1
  642. package/lib/typescript/features/install-referrer/installReferrer.d.ts.map +0 -1
  643. package/lib/typescript/features/journey/ScaleBunDebugRoot.d.ts.map +0 -1
  644. package/lib/typescript/features/journey/ScaleBunFlatList.d.ts.map +0 -1
  645. package/lib/typescript/features/journey/ScaleBunImpression.d.ts.map +0 -1
  646. package/lib/typescript/features/journey/ScaleBunScrollView.d.ts.map +0 -1
  647. package/lib/typescript/features/journey/ScaleBunSectionList.d.ts.map +0 -1
  648. package/lib/typescript/features/journey/calibrationContext.d.ts.map +0 -1
  649. package/lib/typescript/features/journey/gestureBuffer.d.ts.map +0 -1
  650. package/lib/typescript/features/journey/gestureDetector.d.ts.map +0 -1
  651. package/lib/typescript/features/journey/impression.d.ts.map +0 -1
  652. package/lib/typescript/features/journey/journeyManager.d.ts.map +0 -1
  653. package/lib/typescript/features/journey/journeyTypes.d.ts.map +0 -1
  654. package/lib/typescript/features/journey/navDetector.d.ts.map +0 -1
  655. package/lib/typescript/features/journey/screenshotHelper.d.ts.map +0 -1
  656. package/lib/typescript/features/journey/targetRegistry.d.ts.map +0 -1
  657. package/lib/typescript/features/journey/touchTarget.d.ts.map +0 -1
  658. package/lib/typescript/features/navigation/AutoScreenDetector.d.ts.map +0 -1
  659. package/lib/typescript/features/network/NetworkFeature.d.ts.map +0 -1
  660. package/lib/typescript/features/network/index.d.ts.map +0 -1
  661. package/lib/typescript/features/ota/OtaEventEmitter.d.ts.map +0 -1
  662. package/lib/typescript/features/ota/OtaOrchestrator.d.ts.map +0 -1
  663. package/lib/typescript/features/ota/OtaTypes.d.ts.map +0 -1
  664. package/lib/typescript/features/ota/deviceAttributes.d.ts.map +0 -1
  665. package/lib/typescript/features/ota/environment.d.ts.map +0 -1
  666. package/lib/typescript/features/ota/geoCountry.d.ts.map +0 -1
  667. package/lib/typescript/features/ota/retry.d.ts.map +0 -1
  668. package/lib/typescript/features/ota/signature.d.ts.map +0 -1
  669. package/lib/typescript/features/ota/useOtaUpdate.d.ts.map +0 -1
  670. package/lib/typescript/features/performance/PerformanceFeature.d.ts.map +0 -1
  671. package/lib/typescript/features/performance/collectors/AppLaunchCollector.d.ts.map +0 -1
  672. package/lib/typescript/features/performance/collectors/AutoScreenLoadCollector.d.ts.map +0 -1
  673. package/lib/typescript/features/performance/collectors/CustomTraceCollector.d.ts.map +0 -1
  674. package/lib/typescript/features/performance/collectors/FrameMetricsCollector.d.ts.map +0 -1
  675. package/lib/typescript/features/performance/collectors/JsStallCollector.d.ts.map +0 -1
  676. package/lib/typescript/features/performance/collectors/NetworkPerfCollector.d.ts.map +0 -1
  677. package/lib/typescript/features/performance/collectors/ScreenLoadCollector.d.ts.map +0 -1
  678. package/lib/typescript/features/performance/collectors/UiHangCollector.d.ts.map +0 -1
  679. package/lib/typescript/features/performance/config.d.ts.map +0 -1
  680. package/lib/typescript/features/performance/getNativePerformanceModule.d.ts.map +0 -1
  681. package/lib/typescript/features/performance/index.d.ts.map +0 -1
  682. package/lib/typescript/features/performance/metrics/MetricsEngine.d.ts.map +0 -1
  683. package/lib/typescript/features/performance/models.d.ts.map +0 -1
  684. package/lib/typescript/features/performance/transport/PerformanceTransport.d.ts.map +0 -1
  685. package/lib/typescript/features/profiler/ProfilerFeature.d.ts.map +0 -1
  686. package/lib/typescript/features/profiler/config.d.ts.map +0 -1
  687. package/lib/typescript/features/profiler/contracts.d.ts.map +0 -1
  688. package/lib/typescript/features/profiler/index.d.ts.map +0 -1
  689. package/lib/typescript/features/profiler/models.d.ts.map +0 -1
  690. package/lib/typescript/features/profiler/transport/ProfilerTransport.d.ts.map +0 -1
  691. package/lib/typescript/features/replay/bridge/adapters/bridgeAdapter.d.ts.map +0 -1
  692. package/lib/typescript/features/replay/bridge/eventEmitter.d.ts.map +0 -1
  693. package/lib/typescript/features/replay/bridge/nativeModule.d.ts.map +0 -1
  694. package/lib/typescript/features/replay/core/clock/clock.d.ts.map +0 -1
  695. package/lib/typescript/features/replay/core/config/defaults.d.ts.map +0 -1
  696. package/lib/typescript/features/replay/core/config/validator.d.ts.map +0 -1
  697. package/lib/typescript/features/replay/core/env/environmentDetector.d.ts.map +0 -1
  698. package/lib/typescript/features/replay/core/errors/safeCall.d.ts.map +0 -1
  699. package/lib/typescript/features/replay/core/ids/sessionId.d.ts.map +0 -1
  700. package/lib/typescript/features/replay/core/logger/logger.d.ts.map +0 -1
  701. package/lib/typescript/features/replay/core/privacy/privacyTypes.d.ts.map +0 -1
  702. package/lib/typescript/features/replay/core/queue/boundedQueue.d.ts.map +0 -1
  703. package/lib/typescript/features/replay/integrations/alert/alertInstrumentation.d.ts.map +0 -1
  704. package/lib/typescript/features/replay/integrations/logs/consoleIntegration.d.ts.map +0 -1
  705. package/lib/typescript/features/replay/integrations/network/networkAdapter.d.ts.map +0 -1
  706. package/lib/typescript/features/replay/integrations/react-navigation/navigationIntegration.d.ts.map +0 -1
  707. package/lib/typescript/features/replay/integrations/touch/ReplayRoot.d.ts.map +0 -1
  708. package/lib/typescript/features/replay/pipeline/batching/batchManager.d.ts.map +0 -1
  709. package/lib/typescript/features/replay/pipeline/envelope/envelopeBuilder.d.ts.map +0 -1
  710. package/lib/typescript/features/replay/pipeline/retry/retryPolicy.d.ts.map +0 -1
  711. package/lib/typescript/features/replay/pipeline/transport/transportTypes.d.ts.map +0 -1
  712. package/lib/typescript/features/replay/public/api.d.ts.map +0 -1
  713. package/lib/typescript/features/replay/public/enums.d.ts.map +0 -1
  714. package/lib/typescript/features/replay/public/types.d.ts.map +0 -1
  715. package/lib/typescript/features/replay/replay/breadcrumbs/breadcrumbCollector.d.ts.map +0 -1
  716. package/lib/typescript/features/replay/replay/frames/frameModels.d.ts.map +0 -1
  717. package/lib/typescript/features/replay/replay/session/sessionOrchestrator.d.ts.map +0 -1
  718. package/lib/typescript/features/replay/replay/timeline/timelineModels.d.ts.map +0 -1
  719. package/lib/typescript/features/replay/transport/BackendReplayTransport.d.ts.map +0 -1
  720. package/lib/typescript/features/replay/transport/CompositeReplayTransport.d.ts.map +0 -1
  721. package/lib/typescript/features/replay/transport/DesktopReplayTransport.d.ts.map +0 -1
  722. package/lib/typescript/features/replay/transport/ReplayTransport.d.ts.map +0 -1
  723. package/lib/typescript/features/session/BackendSessionAdapter.d.ts.map +0 -1
  724. package/lib/typescript/features/session/DesktopSessionTransport.d.ts.map +0 -1
  725. package/lib/typescript/features/session/JourneyEventPipeline.d.ts.map +0 -1
  726. package/lib/typescript/features/session/ReplayCaptureManager.d.ts.map +0 -1
  727. package/lib/typescript/features/session/ScrollTracker.d.ts.map +0 -1
  728. package/lib/typescript/features/session/SessionManager.d.ts.map +0 -1
  729. package/lib/typescript/features/session/SyncDecisionEngine.d.ts.map +0 -1
  730. package/lib/typescript/features/session/index.d.ts.map +0 -1
  731. package/lib/typescript/features/session/nativeCapture.d.ts.map +0 -1
  732. package/lib/typescript/features/session/outboxFrameCapture.d.ts.map +0 -1
  733. package/lib/typescript/features/session/sessionTypes.d.ts.map +0 -1
  734. package/lib/typescript/features/skan/skanBridge.d.ts.map +0 -1
  735. package/lib/typescript/features/skan/skanConversionManager.d.ts.map +0 -1
  736. package/lib/typescript/index.d.ts.map +0 -1
  737. package/lib/typescript/integrations/fetch/fetchInterceptor.d.ts.map +0 -1
  738. package/lib/typescript/integrations/navigation/screenTracker.d.ts.map +0 -1
  739. package/lib/typescript/integrations/network/bodyCapture.d.ts.map +0 -1
  740. package/lib/typescript/integrations/xhr/xhrInterceptor.d.ts.map +0 -1
  741. package/lib/typescript/metro/composeSourceMap.d.ts.map +0 -1
  742. package/lib/typescript/metro/featureModules.d.ts.map +0 -1
  743. package/lib/typescript/metro/index.d.ts.map +0 -1
  744. package/lib/typescript/metro/optionalDependencyStub.d.ts.map +0 -1
  745. package/lib/typescript/metro/optionalModules.d.ts.map +0 -1
  746. package/lib/typescript/metro/serializerCompose.d.ts.map +0 -1
  747. package/lib/typescript/pipeline/dispatcher/dispatcher.d.ts.map +0 -1
  748. package/lib/typescript/pipeline/envelope/envelope.d.ts.map +0 -1
  749. package/lib/typescript/pipeline/envelope/serializer.d.ts.map +0 -1
  750. package/lib/typescript/pipeline/processors/dedupe.d.ts.map +0 -1
  751. package/lib/typescript/pipeline/processors/enrich.d.ts.map +0 -1
  752. package/lib/typescript/pipeline/processors/sampling.d.ts.map +0 -1
  753. package/lib/typescript/pipeline/processors/sanitize.d.ts.map +0 -1
  754. package/lib/typescript/pipeline/queue/flushQueue.d.ts.map +0 -1
  755. package/lib/typescript/pipeline/queue/memoryQueue.d.ts.map +0 -1
  756. package/lib/typescript/pipeline/queue/persistentQueue.d.ts.map +0 -1
  757. package/lib/typescript/pipeline/queue/queuePolicy.d.ts.map +0 -1
  758. package/lib/typescript/pipeline/scheduler/flushScheduler.d.ts.map +0 -1
  759. package/lib/typescript/pipeline/scheduler/retryPolicy.d.ts.map +0 -1
  760. package/lib/typescript/public/ScaleBunErrorBoundary.d.ts.map +0 -1
  761. package/lib/typescript/public/ScaleBunFacade.d.ts.map +0 -1
  762. package/lib/typescript/public/ScaleBunProvider.d.ts.map +0 -1
  763. package/lib/typescript/public/typedTracker.d.ts.map +0 -1
  764. package/lib/typescript/public/types.d.ts.map +0 -1
  765. package/lib/typescript/push/PushManager.d.ts.map +0 -1
  766. package/lib/typescript/push/adapters/ManualAdapter.d.ts.map +0 -1
  767. package/lib/typescript/push/adapters/NativeBridgeAdapter.d.ts.map +0 -1
  768. package/lib/typescript/push/adapters/NoopAdapter.d.ts.map +0 -1
  769. package/lib/typescript/push/adapters/RNFirebaseMessagingAdapter.d.ts.map +0 -1
  770. package/lib/typescript/push/adapters/loadMessaging.d.ts.map +0 -1
  771. package/lib/typescript/push/adapters/loadNotifee.d.ts.map +0 -1
  772. package/lib/typescript/push/adapters/selectAdapter.d.ts.map +0 -1
  773. package/lib/typescript/push/detect/capabilities.d.ts.map +0 -1
  774. package/lib/typescript/push/index.d.ts.map +0 -1
  775. package/lib/typescript/push/native/nativeNotifications.d.ts.map +0 -1
  776. package/lib/typescript/push/types.d.ts.map +0 -1
  777. package/lib/typescript/specs/NativeReplaySdk.d.ts.map +0 -1
  778. package/lib/typescript/specs/NativeScaleBunCrash.d.ts.map +0 -1
  779. package/lib/typescript/specs/NativeScaleBunInstallReferrer.d.ts.map +0 -1
  780. package/lib/typescript/specs/NativeScaleBunOta.d.ts.map +0 -1
  781. package/lib/typescript/specs/NativeScaleBunPerformance.d.ts.map +0 -1
  782. package/lib/typescript/specs/NativeScaleBunProfiler.d.ts.map +0 -1
  783. package/lib/typescript/specs/NativeScaleBunStorage.d.ts.map +0 -1
  784. package/lib/typescript/storage/StorageBackend.d.ts.map +0 -1
  785. package/lib/typescript/storage/db/sqlite.d.ts.map +0 -1
  786. package/lib/typescript/storage/files/fileStore.d.ts.map +0 -1
  787. package/lib/typescript/transport/auth/sdkSession.d.ts.map +0 -1
  788. package/lib/typescript/transport/backoff/exponentialJitter.d.ts.map +0 -1
  789. package/lib/typescript/transport/http/endpoints.d.ts.map +0 -1
  790. package/lib/typescript/transport/http/httpClient.d.ts.map +0 -1
  791. package/lib/typescript/transport/rateLimit/retryAfter.d.ts.map +0 -1
  792. package/lib/typescript/transport/signing/requestSigner.d.ts.map +0 -1
  793. package/lib/typescript/vendor/protocol/index.d.ts.map +0 -1
  794. package/lib/typescript/vendor/protocol/internal/validation.d.ts.map +0 -1
  795. package/lib/typescript/vendor/sdk-contracts/bridge.d.ts.map +0 -1
  796. package/lib/typescript/vendor/sdk-contracts/config.d.ts.map +0 -1
  797. package/lib/typescript/vendor/sdk-contracts/events.d.ts.map +0 -1
  798. package/lib/typescript/vendor/sdk-contracts/features.d.ts.map +0 -1
  799. package/lib/typescript/vendor/sdk-contracts/index.d.ts.map +0 -1
  800. package/lib/typescript/vendor/sdk-contracts/platform.d.ts.map +0 -1
  801. package/lib/typescript/vendor/sdk-contracts/session-boundary.d.ts.map +0 -1
  802. package/lib/typescript/vendor/sdk-contracts/session.d.ts.map +0 -1
@@ -86,6 +86,22 @@ export class SessionManager {
86
86
  * differently across devices and pushes markers ~10% off vertically).
87
87
  */
88
88
  _lastNativeViewportJsUnits = null;
89
+
90
+ /**
91
+ * Exact-duplicate gesture suppression (QA: one physical tap recorded 2–3×).
92
+ *
93
+ * Measured in production data: the native tracker re-emitted the SAME tap — identical
94
+ * gestureType and identical coordinates to the SUB-PIXEL (e.g. x=466.962890625) — at
95
+ * 160–240ms gaps, sometimes twice. A human re-tap cannot reproduce a sub-pixel float
96
+ * exactly, so exact coordinate equality within the window is a safe discriminator: real
97
+ * double-taps land on at least slightly different pixels and pass through untouched.
98
+ * The pipeline's own 100ms dedup was too narrow for these; this window covers what was
99
+ * actually observed with margin. Sits at the ONE entry point every gesture source funnels
100
+ * through, so recording and analytics lanes are protected equally.
101
+ */
102
+ _lastGestureSig = null;
103
+ _lastGestureTs = 0;
104
+ static GESTURE_DEDUP_WINDOW_MS = 400;
89
105
  /** Memoized native file-outbox frame adapter (gated by the backend transport). */
90
106
  _outboxFrameCapture = null;
91
107
  constructor(debugTransport, nativeCapture, managerConfig) {
@@ -933,6 +949,18 @@ export class SessionManager {
933
949
  * Emits a USER_ACTION event with gesture-specific subtype and payload.
934
950
  */
935
951
  onGestureDetected(gestureType, details) {
952
+ // Exact-duplicate suppression — see _lastGestureSig. Signature is the gesture type plus
953
+ // raw coordinates verbatim; String() keeps undefined coords distinct from 0 (a payload
954
+ // with no coords never collides with a real origin tap).
955
+ const dedupSig = `${gestureType}|${String(details?.x)}|${String(details?.y)}|${String(details?.endX)}|${String(details?.endY)}`;
956
+ const nowTs = Date.now();
957
+ if (dedupSig === this._lastGestureSig && nowTs - this._lastGestureTs <= SessionManager.GESTURE_DEDUP_WINDOW_MS) {
958
+ this._lastGestureTs = nowTs; // a burst of 3 stays suppressed even if gaps chain past the window
959
+ return;
960
+ }
961
+ this._lastGestureSig = dedupSig;
962
+ this._lastGestureTs = nowTs;
963
+
936
964
  // Build the canonical gesture payload ONCE so the recording lane and the
937
965
  // (additive) analytics lane carry byte-identical keys (normalizedX/Y,
938
966
  // gestureType, etc.). Same object shape that was previously inlined.
@@ -18,13 +18,14 @@ import { BugReportFeature } from '../features/bugreport/BugReportFeature';
18
18
  import { PersistentQueue } from '../pipeline/queue/persistentQueue';
19
19
  import { MemoryBackend, createStorageBackend } from '../storage/StorageBackend';
20
20
  import { getDeviceId } from '../core/id/deviceId';
21
- import { mergeDeviceContext, resolveEventPlatform } from '../core/context/device';
21
+ import { mergeDeviceContext, nativeDeviceContext, resolveEventPlatform } from '../core/context/device';
22
22
  import { coreContainer } from '../core/di/container';
23
23
  import { flushQueue } from '../pipeline/queue/flushQueue';
24
24
  import { enableDebug as _enableDebug, disableDebug as _disableDebug, isDebugEnabled, addBreadcrumb as _addBreadcrumb, ping as _ping, _getStream, _setFlushFn, getPerformanceFeature as _getPerformanceFeature, requestExport as _requestExport, buildDebugConfigFromInitConfig, applyFeatureGatesToDebugConfig, sendDebugMetric } from '../debug';
25
25
  import { ReplaySdk } from '../features/replay/public/api';
26
26
  import { SDKBootstrapper } from '../bootstrap/SDKBootstrapper';
27
27
  import { EventTracker } from '../analytics/EventTracker';
28
+ import { bridgeAdapter } from '../features/replay/bridge/adapters/bridgeAdapter';
28
29
  import { emitAutomaticEvent } from '../analytics/automaticEvents';
29
30
  import { resolveEventLane, isUploadedSessionEvent } from '../analytics/eventLane';
30
31
  import { ConfigManager } from '../config/ConfigManager';
@@ -307,6 +308,8 @@ class ScaleBunFacade {
307
308
  * the whole time. The SDK knows the device; the integrator is guessing at it.
308
309
  * Everything outside the detected keys is still theirs.
309
310
  */
311
+ // Everything Platform.constants knows. On iOS that is neither the model nor the
312
+ // manufacturer, so the bridge completes it below once it answers.
310
313
  context: mergeDeviceContext(rawConfig?.context),
311
314
  // Use the same foreground id as replay/journey capture. The
312
315
  // callback is resolved per event because the session subsystem
@@ -321,6 +324,19 @@ class ScaleBunFacade {
321
324
  this._eventTracker.start();
322
325
  __DEV__ && logger.info('[ScaleBun] Envelope event tracking started → /v1/batch.');
323
326
 
327
+ // Complete the device context from the native bridge.
328
+ //
329
+ // `Platform.constants` answers Android synchronously — model and manufacturer ride the
330
+ // first event. It answers NEITHER on iOS, so without this every iOS installation
331
+ // reported no device model at all: `nativeDeviceContext` existed for exactly this and
332
+ // had no caller, and the bridge's own answer was `UIDevice.current.model` — the string
333
+ // "iPhone", identical on every iPhone ever made.
334
+ //
335
+ // Fire-and-forget on purpose. The bridge is async and absent entirely on Expo Go or an
336
+ // older native binary; waiting on it would delay the first event, and failing on it
337
+ // would take analytics down over a nice-to-have field.
338
+ this._applyNativeDeviceContext(this._eventTracker);
339
+
324
340
  // Android: capture the Play Install Referrer once per install → feeds the
325
341
  // deterministic click_id path + a one-off install_referrer event (UTM/gclid).
326
342
  // Fire-and-forget; no-op off Android.
@@ -345,6 +361,24 @@ class ScaleBunFacade {
345
361
  }
346
362
  }
347
363
 
364
+ /**
365
+ * Fold the native bridge's device facts into the analytics context once it answers.
366
+ *
367
+ * Detected values never overwrite a populated one with an empty one — `nativeDeviceContext`
368
+ * drops absent keys and `applyDetectedContext` ignores an empty patch — so a bridge that
369
+ * cannot answer leaves whatever `Platform.constants` already found.
370
+ */
371
+ _applyNativeDeviceContext(tracker) {
372
+ Promise.resolve().then(() => bridgeAdapter.getDeviceInfo()).then(info => {
373
+ if (!info) return;
374
+ tracker.applyDetectedContext(nativeDeviceContext({
375
+ osVersion: info.osVersion,
376
+ deviceModel: info.deviceModel
377
+ // iOS ships no manufacturer over the bridge; it is a constant there and the
378
+ // static path already set it. Android's arrives via Platform.constants.
379
+ }));
380
+ }).catch(() => {/* bridge unavailable — the static context stands */});
381
+ }
348
382
  /**
349
383
  * Android-only: read the Play Install Referrer once per install and route it into
350
384
  * attribution. `scalebun_click_id` → the deterministic click path; the full
@@ -543,17 +577,94 @@ class ScaleBunFacade {
543
577
  });
544
578
  }
545
579
 
546
- /** Clear user identity */
547
- clearUser() {
580
+ /**
581
+ * Clear user identity.
582
+ *
583
+ * SB-11: pass `{ purgeLocal: true }` on logout / consent withdrawal to also
584
+ * erase all locally-stored SDK data (see {@link eraseLocalData}). Without it,
585
+ * behaviour is unchanged (identity-only clear).
586
+ */
587
+ clearUser(options) {
548
588
  return noThrow(() => {
549
589
  this._identifiedUserId = null;
550
590
  this._pendingIdentity = null;
551
591
  if (!this.initialized) return;
552
592
  this._eventTracker?.clearIdentity();
553
593
  this.track('$clear_user', {});
594
+ if (options?.purgeLocal) void this.eraseLocalData();
595
+ });
596
+ }
597
+
598
+ /**
599
+ * SB-11: erase all locally-stored SDK data from the device — the durable event
600
+ * queue, the pre-init buffer, and the first-party KV store (cached install /
601
+ * anonymous / session IDs, plus any queued payloads including SB-26 disk data).
602
+ *
603
+ * Order matters: capture is stopped FIRST so nothing is written back in behind
604
+ * the delete. Best-effort and never throws.
605
+ *
606
+ * Note: native replay frames written to disk on iOS are addressed separately
607
+ * (SB-15); this covers every store reachable from JS today.
608
+ */
609
+ async eraseLocalData() {
610
+ try {
611
+ // 1) Stop capture so no new frames/events are produced mid-erase.
612
+ try {
613
+ SessionManager.getExistingInstance()?.endSession('ended');
614
+ } catch {/* best-effort */}
615
+ // 2) Clear the durable queue and the pre-init buffer.
616
+ try {
617
+ this._getQueue().clear();
618
+ } catch {/* best-effort */}
619
+ try {
620
+ this._preInitBuffer.clear();
621
+ } catch {/* best-effort */}
622
+ // 3) Wipe the first-party KV store (cached IDs + any on-disk queue
623
+ // residue) by removing every key through the backend interface.
624
+ try {
625
+ const store = createStorageBackend();
626
+ for (const key of store.getAllKeys()) {
627
+ store.delete(key);
628
+ }
629
+ } catch {/* best-effort */}
630
+ } catch {
631
+ // Never throw — erasure is a safety operation on a best-effort basis.
632
+ }
633
+ }
634
+
635
+ /**
636
+ * SB-11: record the user's data-collection consent. When `enabled` is false,
637
+ * capture is stopped immediately; pass `{ purgeLocal: true }` to also erase
638
+ * everything already stored locally. Never throws.
639
+ */
640
+ setConsent(enabled, options) {
641
+ noThrow(() => {
642
+ if (enabled) return;
643
+ try {
644
+ SessionManager.getExistingInstance()?.endSession('ended');
645
+ } catch {/* best-effort */}
646
+ if (options?.purgeLocal) void this.eraseLocalData();
554
647
  });
555
648
  }
556
649
 
650
+ /**
651
+ * SB-10: return the effective privacy policy actually in force, resolving the
652
+ * public config against the SDK's safe defaults. Lets callers and tests assert
653
+ * what is active rather than guessing from the (previously dead) config object.
654
+ */
655
+ getEffectivePrivacyPolicy() {
656
+ const p = this._privacyConfig ?? {};
657
+ return {
658
+ // Real default is true (matches the replay capture default) — the old
659
+ // doc comment claiming "false" was both wrong and less safe.
660
+ maskTextInputs: p.maskTextInputs ?? true,
661
+ maskImages: p.maskImages ?? false,
662
+ redactAuth: p.redactAuth ?? true,
663
+ redactCookies: p.redactCookies ?? true,
664
+ redactBodies: p.redactBodies ?? false
665
+ };
666
+ }
667
+
557
668
  /**
558
669
  * Submit in-app rating (1-5 stars).
559
670
  * Attaches to current session when available; otherwise sends standalone.
@@ -134,6 +134,21 @@ export declare class EventTracker {
134
134
  }): void;
135
135
  flush(): Promise<void>;
136
136
  stop(): void;
137
+ /**
138
+ * Fold in device facts that were not knowable at init.
139
+ *
140
+ * `Platform.constants` answers Android synchronously, so its model and manufacturer ride the
141
+ * very first event. iOS exposes neither there — only the native bridge knows, and the bridge is
142
+ * async and may not be installed at all. Without this the iOS half of every install reported no
143
+ * model whatsoever.
144
+ *
145
+ * `buildEnvelope` reads `cfg.context` per event, so applying it here reaches every event from
146
+ * the next one onward. Detected keys WIN over whatever the integrator configured, for the same
147
+ * reason `mergeDeviceContext` inverts the usual precedence: a measurement must not be
148
+ * overridable by a guess. Empty patches are ignored so a bridge that answered with nothing
149
+ * cannot blank a value the static path already found.
150
+ */
151
+ applyDetectedContext(patch: Record<string, string>): void;
137
152
  private buildEnvelope;
138
153
  private enqueue;
139
154
  private scheduleFlush;
@@ -77,6 +77,14 @@ export interface ScaleBunConfig {
77
77
  deltaEncoding?: boolean;
78
78
  deltaKeyframeInterval?: number;
79
79
  };
80
+ /** SB-10: public top-level privacy config, mapped onto the replay privacy policy. */
81
+ privacy?: {
82
+ maskTextInputs?: boolean;
83
+ maskImages?: boolean;
84
+ redactAuth?: boolean;
85
+ redactCookies?: boolean;
86
+ redactBodies?: boolean;
87
+ };
80
88
  captureInteractionHeatmap: boolean;
81
89
  /** Opt-in: capture console.* into the Logs lane in SaaS mode. Default false. */
82
90
  captureConsoleLogs: boolean;
@@ -3,5 +3,5 @@
3
3
  * can attribute telemetry to the SDK build that produced it.
4
4
  * Keep in sync with package.json "version".
5
5
  */
6
- export declare const SDK_VERSION = "1.10.4";
6
+ export declare const SDK_VERSION = "1.10.6";
7
7
  //# sourceMappingURL=version.d.ts.map
@@ -34,6 +34,7 @@ export declare function nativeDeviceContext(info: {
34
34
  platform?: string;
35
35
  osVersion?: string;
36
36
  deviceModel?: string;
37
+ manufacturer?: string;
37
38
  } | null): Record<string, string>;
38
39
  /**
39
40
  * Merge the integrator's context with what we detected — DETECTED WINS on the keys above.
@@ -13,6 +13,12 @@ export declare function redactHeaders(headers: Record<string, string> | undefine
13
13
  /**
14
14
  * Deep-redact sensitive keys in a body object. Returns a new object.
15
15
  * Handles nested objects and arrays. Never throws.
16
+ *
17
+ * SB-02: string bodies (what JSON.stringify produces — i.e. essentially every
18
+ * React Native network body) are no longer passed through untouched. If a string
19
+ * parses as JSON it is deep-redacted and re-serialized; otherwise structured
20
+ * secrets in the string are scrubbed. This closes the "6 of 9 seeded secrets
21
+ * survived" leak while leaving non-sensitive metadata intact.
16
22
  */
17
23
  export declare function redactBody(body: unknown, maxDepth?: number): unknown;
18
24
  export interface PIIWarning {
@@ -22,12 +28,12 @@ export interface PIIWarning {
22
28
  location: string;
23
29
  }
24
30
  /**
25
- * Scan a string for PII patterns. Returns list of warnings.
31
+ * Scan a string for PII patterns. Returns a bounded list of warnings.
26
32
  * Never throws.
27
33
  */
28
34
  export declare function scanForPII(text: string, location?: string): PIIWarning[];
29
35
  /**
30
- * Scan an object deeply for PII. Returns list of warnings.
36
+ * Scan an object deeply for PII. Returns a bounded list of warnings.
31
37
  * Never throws.
32
38
  */
33
39
  export declare function scanObjectForPII(obj: unknown, basePath?: string, maxDepth?: number): PIIWarning[];
@@ -30,12 +30,22 @@ export declare class AutoScreenDetector {
30
30
  private _manualScreen;
31
31
  private _manualScreenTs;
32
32
  private _autoScreen;
33
+ /** `name#key` of the last auto-detected screen VISIT — see _extractActiveVisit. */
34
+ private _autoVisitSig;
33
35
  private _navigationRef;
34
36
  private _navListenerRemover;
35
37
  private _navListenerWired;
36
38
  private _heuristicTimer;
37
39
  private _started;
38
40
  private _lastEmittedScreen;
41
+ private _lastEmittedTs;
42
+ /**
43
+ * Cross-source emit dedup window — see _emitScreenChange. Long enough to absorb the manual
44
+ * beacon and the navRef listener both reporting the SAME transition (they land within the
45
+ * 30ms nav debounce plus a render), short enough that a genuine re-visit of the same route
46
+ * a moment later is a new screen view rather than silence.
47
+ */
48
+ private static readonly EMIT_DEDUP_WINDOW_MS;
39
49
  private _navDebounceTimer;
40
50
  /** Whether the React Navigation exports were actually replaced — see _autoHookReactNavigation. */
41
51
  private _autoHookInstalled;
@@ -90,6 +100,21 @@ export declare class AutoScreenDetector {
90
100
  * Handles nested navigators by walking to the deepest active route.
91
101
  */
92
102
  private _extractActiveRoute;
103
+ /**
104
+ * Extract the active route's name AND its React Navigation route `key`.
105
+ *
106
+ * The key is what makes re-VISITS detectable. Comparing names alone collapses two
107
+ * different visits to the same route into one screen view: leave Details, open Details
108
+ * again, and `name === _autoScreen` swallowed the second visit entirely (QA: "opened the
109
+ * same route again and no screen event was recorded"). React Navigation mints a fresh
110
+ * `key` for every pushed route instance, so a re-push of the same name is a NEW key —
111
+ * name+key comparison records each visit while a mere re-render of the same instance
112
+ * (same key) still emits nothing. States without keys degrade to name-only, i.e. the
113
+ * old behaviour, never worse.
114
+ */
115
+ private _extractActiveVisit;
116
+ /** `name#key` signature of one screen VISIT — what the auto paths dedup on. */
117
+ private _visitSig;
93
118
  /** Start auto-detection (idempotent) */
94
119
  start(): void;
95
120
  /**
@@ -119,6 +119,8 @@ export declare class BackendSessionAdapter implements SessionTransport {
119
119
  private _nativeOutboxReady;
120
120
  private currentSessionId;
121
121
  private readonly _startedSessionIds;
122
+ private readonly _pendingStartPayloads;
123
+ private _startRetryInFlight;
122
124
  private pendingFrames;
123
125
  private pendingEvents;
124
126
  private pendingNetworkRequests;
@@ -170,6 +172,13 @@ export declare class BackendSessionAdapter implements SessionTransport {
170
172
  * backend so the dashboard uses the same value to draw idle bands. */
171
173
  idleThresholdMs?: number;
172
174
  }): Promise<void>;
175
+ /**
176
+ * Re-attempt any INGESTION_START whose POST failed (offline app launch). Runs on every
177
+ * flush tick of BOTH lanes — cheap no-op when the map is empty, single-flight guarded.
178
+ * On ack: opens the row-ready gate and drains whichever lane the id belongs to, which is
179
+ * exactly what un-sticks a replay that started offline once connectivity returns.
180
+ */
181
+ private _retryPendingStarts;
173
182
  /**
174
183
  * Enqueue a user track() event. Buffers (bounded, drop-oldest) when the
175
184
  * analytics session is not yet open; flushes at >=20 once it is.
@@ -77,6 +77,21 @@ export declare class SessionManager {
77
77
  * differently across devices and pushes markers ~10% off vertically).
78
78
  */
79
79
  private _lastNativeViewportJsUnits;
80
+ /**
81
+ * Exact-duplicate gesture suppression (QA: one physical tap recorded 2–3×).
82
+ *
83
+ * Measured in production data: the native tracker re-emitted the SAME tap — identical
84
+ * gestureType and identical coordinates to the SUB-PIXEL (e.g. x=466.962890625) — at
85
+ * 160–240ms gaps, sometimes twice. A human re-tap cannot reproduce a sub-pixel float
86
+ * exactly, so exact coordinate equality within the window is a safe discriminator: real
87
+ * double-taps land on at least slightly different pixels and pass through untouched.
88
+ * The pipeline's own 100ms dedup was too narrow for these; this window covers what was
89
+ * actually observed with margin. Sits at the ONE entry point every gesture source funnels
90
+ * through, so recording and analytics lanes are protected equally.
91
+ */
92
+ private _lastGestureSig;
93
+ private _lastGestureTs;
94
+ private static readonly GESTURE_DEDUP_WINDOW_MS;
80
95
  private _nativeCapture;
81
96
  private _rawTransport;
82
97
  /** Memoized native file-outbox frame adapter (gated by the backend transport). */
@@ -80,6 +80,14 @@ declare class ScaleBunFacade {
80
80
  private _autoEnableDebug;
81
81
  /** Boot the Phase 1 envelope tracking lane if an appId is configured. */
82
82
  private _maybeStartEventTracker;
83
+ /**
84
+ * Fold the native bridge's device facts into the analytics context once it answers.
85
+ *
86
+ * Detected values never overwrite a populated one with an empty one — `nativeDeviceContext`
87
+ * drops absent keys and `applyDetectedContext` ignores an empty patch — so a bridge that
88
+ * cannot answer leaves whatever `Platform.constants` already found.
89
+ */
90
+ private _applyNativeDeviceContext;
83
91
  /**
84
92
  * Android-only: read the Play Install Referrer once per install and route it into
85
93
  * attribution. `scalebun_click_id` → the deterministic click path; the full
@@ -165,8 +173,42 @@ declare class ScaleBunFacade {
165
173
  private _callIngestionIdentify;
166
174
  /** Set user identity (for session context) */
167
175
  setUser(user: ScaleBunUser): void | undefined;
168
- /** Clear user identity */
169
- clearUser(): void | undefined;
176
+ /**
177
+ * Clear user identity.
178
+ *
179
+ * SB-11: pass `{ purgeLocal: true }` on logout / consent withdrawal to also
180
+ * erase all locally-stored SDK data (see {@link eraseLocalData}). Without it,
181
+ * behaviour is unchanged (identity-only clear).
182
+ */
183
+ clearUser(options?: {
184
+ purgeLocal?: boolean;
185
+ }): void | undefined;
186
+ /**
187
+ * SB-11: erase all locally-stored SDK data from the device — the durable event
188
+ * queue, the pre-init buffer, and the first-party KV store (cached install /
189
+ * anonymous / session IDs, plus any queued payloads including SB-26 disk data).
190
+ *
191
+ * Order matters: capture is stopped FIRST so nothing is written back in behind
192
+ * the delete. Best-effort and never throws.
193
+ *
194
+ * Note: native replay frames written to disk on iOS are addressed separately
195
+ * (SB-15); this covers every store reachable from JS today.
196
+ */
197
+ eraseLocalData(): Promise<void>;
198
+ /**
199
+ * SB-11: record the user's data-collection consent. When `enabled` is false,
200
+ * capture is stopped immediately; pass `{ purgeLocal: true }` to also erase
201
+ * everything already stored locally. Never throws.
202
+ */
203
+ setConsent(enabled: boolean, options?: {
204
+ purgeLocal?: boolean;
205
+ }): void;
206
+ /**
207
+ * SB-10: return the effective privacy policy actually in force, resolving the
208
+ * public config against the SDK's safe defaults. Lets callers and tests assert
209
+ * what is active rather than guessing from the (previously dead) config object.
210
+ */
211
+ getEffectivePrivacyPolicy(): Required<Pick<PrivacyConfig, 'maskTextInputs' | 'maskImages' | 'redactAuth' | 'redactCookies' | 'redactBodies'>>;
170
212
  /**
171
213
  * Submit in-app rating (1-5 stars).
172
214
  * Attaches to current session when available; otherwise sends standalone.
@@ -167,7 +167,7 @@ export interface PrivacyConfig {
167
167
  redactCookies?: boolean;
168
168
  /** Redact request/response bodies in network capture. Default: false */
169
169
  redactBodies?: boolean;
170
- /** Mask text input values in session replay. Default: false */
170
+ /** Mask text input values in session replay. Default: true */
171
171
  maskTextInputs?: boolean;
172
172
  /** Mask image content in session replay. Default: false */
173
173
  maskImages?: boolean;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@scalebun/react-native",
3
- "version": "1.10.4",
4
- "description": "Production-grade React Native SDK for ScaleBun",
3
+ "version": "1.10.6",
4
+ "description": "React Native SDK for ScaleBun",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
7
7
  "types": "lib/typescript/index.d.ts",
@@ -24,6 +24,10 @@
24
24
  "!**/__tests__",
25
25
  "!**/__fixtures__",
26
26
  "!**/__mocks__",
27
+ "!android/build",
28
+ "!android/.cxx",
29
+ "!android/.gradle",
30
+ "!**/*.map",
27
31
  "!**/.*"
28
32
  ],
29
33
  "exports": {
@@ -387,6 +387,25 @@ export class EventTracker {
387
387
  this.persistQueue();
388
388
  }
389
389
 
390
+ /**
391
+ * Fold in device facts that were not knowable at init.
392
+ *
393
+ * `Platform.constants` answers Android synchronously, so its model and manufacturer ride the
394
+ * very first event. iOS exposes neither there — only the native bridge knows, and the bridge is
395
+ * async and may not be installed at all. Without this the iOS half of every install reported no
396
+ * model whatsoever.
397
+ *
398
+ * `buildEnvelope` reads `cfg.context` per event, so applying it here reaches every event from
399
+ * the next one onward. Detected keys WIN over whatever the integrator configured, for the same
400
+ * reason `mergeDeviceContext` inverts the usual precedence: a measurement must not be
401
+ * overridable by a guess. Empty patches are ignored so a bridge that answered with nothing
402
+ * cannot blank a value the static path already found.
403
+ */
404
+ applyDetectedContext(patch: Record<string, string>): void {
405
+ if (!patch || Object.keys(patch).length === 0) return;
406
+ this.cfg.context = { ...(this.cfg.context ?? {}), ...patch };
407
+ }
408
+
390
409
  // ─── internals ─────────────────────────────────────────────────────────────
391
410
 
392
411
  private buildEnvelope(eventName: string, properties?: Record<string, any>): Envelope {
@@ -36,6 +36,7 @@ import { PerformanceFeature } from '../features/performance/PerformanceFeature';
36
36
  import { PersistentQueue } from '../pipeline/queue/persistentQueue';
37
37
  import { createStorageBackend, MemoryBackend } from '../storage/StorageBackend';
38
38
  import { SessionManager } from '../features/session/SessionManager';
39
+ import type { SessionReplayConfig } from '../features/session/sessionTypes';
39
40
  import { nativeCapture } from '../features/session/nativeCapture';
40
41
  import { installAlertInstrumentation, uninstallAlertInstrumentation } from '../features/replay/integrations/alert/alertInstrumentation';
41
42
  import { installConsoleIntegration, uninstallConsoleIntegration } from '../features/replay/integrations/logs/consoleIntegration';
@@ -342,6 +343,21 @@ export class SDKBootstrapper {
342
343
  if (features.replay !== false) {
343
344
  try {
344
345
  __DEV__ && logger.debug('[Bootstrap] Initializing unified SessionManager');
346
+ // SB-10: map the public top-level privacy config onto the replay
347
+ // privacy policy — the field the native capture path actually reads.
348
+ // Unspecified fields fall back to the SDK's safe defaults
349
+ // (redactTextInputs: true), so this only ever tightens masking.
350
+ const pub = this.config.privacy ?? {};
351
+ const sessionReplay: Record<string, unknown> = { ...(this.config.replay ?? {}) };
352
+ if (typeof pub.maskTextInputs === 'boolean' || typeof pub.maskImages === 'boolean') {
353
+ sessionReplay.privacyPolicy = {
354
+ redactTextInputs: pub.maskTextInputs ?? true,
355
+ redactImages: pub.maskImages ?? false,
356
+ blockTestIds: [],
357
+ captureExclusions: [],
358
+ };
359
+ }
360
+
345
361
  const sessionManager = SessionManager.getInstance(
346
362
  null, // No desktop transport initially
347
363
  nativeCapture,
@@ -351,7 +367,7 @@ export class SDKBootstrapper {
351
367
  // Also flow the Feature #4 heatmap flag so tap/gesture coords
352
368
  // route to the analytics lane even when no recording is active.
353
369
  {
354
- ...(this.config.replay ? { sessionReplay: this.config.replay } : {}),
370
+ sessionReplay: sessionReplay as Partial<SessionReplayConfig>,
355
371
  captureInteractionHeatmap: this.config.captureInteractionHeatmap === true,
356
372
  }
357
373
  );
@@ -169,6 +169,20 @@ const SHAPE: Record<string, Field> = {
169
169
  deltaKeyframeInterval: num({ min: 1, int: true, opt: true }),
170
170
  },
171
171
  },
172
+ // SB-10: the public, documented top-level privacy config. Previously only the
173
+ // nested replay privacy took effect; this is validated here and mapped onto the
174
+ // effective replay privacy policy in the bootstrapper so it actually masks.
175
+ privacy: {
176
+ kind: 'obj',
177
+ opt: true,
178
+ shape: {
179
+ maskTextInputs: { kind: 'bool', opt: true },
180
+ maskImages: { kind: 'bool', opt: true },
181
+ redactAuth: { kind: 'bool', opt: true },
182
+ redactCookies: { kind: 'bool', opt: true },
183
+ redactBodies: { kind: 'bool', opt: true },
184
+ },
185
+ },
172
186
  captureInteractionHeatmap: bool(true),
173
187
  // Opt-in: intercept console.* and ship the lines to the Diagnose → Logs lane in SaaS
174
188
  // mode. OFF by default — console output can carry PII/secrets and adds ingest volume,
@@ -351,6 +365,14 @@ export interface ScaleBunConfig {
351
365
  deltaEncoding?: boolean;
352
366
  deltaKeyframeInterval?: number;
353
367
  };
368
+ /** SB-10: public top-level privacy config, mapped onto the replay privacy policy. */
369
+ privacy?: {
370
+ maskTextInputs?: boolean;
371
+ maskImages?: boolean;
372
+ redactAuth?: boolean;
373
+ redactCookies?: boolean;
374
+ redactBodies?: boolean;
375
+ };
354
376
  captureInteractionHeatmap: boolean;
355
377
  /** Opt-in: capture console.* into the Logs lane in SaaS mode. Default false. */
356
378
  captureConsoleLogs: boolean;
@@ -3,4 +3,4 @@
3
3
  * can attribute telemetry to the SDK build that produced it.
4
4
  * Keep in sync with package.json "version".
5
5
  */
6
- export const SDK_VERSION = '1.10.4';
6
+ export const SDK_VERSION = '1.10.6';
@@ -114,6 +114,10 @@ export function staticDeviceContext(): Record<string, string> {
114
114
  if (c.Model) out.device_model = String(c.Model);
115
115
  if (c.Manufacturer) out.manufacturer = String(c.Manufacturer);
116
116
  else if (c.Brand) out.manufacturer = String(c.Brand);
117
+ // iOS exposes no manufacturer because it does not need to: every device running iOS is Apple's.
118
+ // A tautology, not a guess — and it means the field is populated on event #1 rather than waiting
119
+ // for a bridge that may never answer.
120
+ else if (out.platform_os === 'ios') out.manufacturer = 'Apple';
117
121
  return out;
118
122
  }
119
123
 
@@ -122,11 +126,13 @@ export function nativeDeviceContext(info: {
122
126
  platform?: string;
123
127
  osVersion?: string;
124
128
  deviceModel?: string;
129
+ manufacturer?: string;
125
130
  } | null): Record<string, string> {
126
131
  const out: Record<string, string> = {};
127
132
  if (!info) return out;
128
133
  if (info.osVersion) out.os_version = info.osVersion;
129
134
  if (info.deviceModel) out.device_model = info.deviceModel;
135
+ if (info.manufacturer) out.manufacturer = info.manufacturer;
130
136
  return out;
131
137
  }
132
138