@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
@@ -173,6 +173,45 @@ function redactHeaders(headers) {
173
173
  }
174
174
  return result;
175
175
  }
176
+ function _normalizeKey(key) {
177
+ return key.toLowerCase().replace(/[_\-\s]/g, "");
178
+ }
179
+ function _isSensitiveKey(key) {
180
+ return NORMALIZED_SENSITIVE_KEYS.has(_normalizeKey(key));
181
+ }
182
+ function _luhnValid(digits) {
183
+ const s = digits.replace(/[^\d]/g, "");
184
+ if (s.length < 12 || s.length > 19) return false;
185
+ let sum = 0;
186
+ let alt = false;
187
+ for (let i = s.length - 1; i >= 0; i--) {
188
+ let d = s.charCodeAt(i) - 48;
189
+ if (alt) {
190
+ d *= 2;
191
+ if (d > 9) d -= 9;
192
+ }
193
+ sum += d;
194
+ alt = !alt;
195
+ }
196
+ return sum % 10 === 0;
197
+ }
198
+ function _scrubSecretsInString(value) {
199
+ if (value.length > MAX_STRING_SCRUB_CHARS) {
200
+ value = value.slice(0, MAX_STRING_SCRUB_CHARS);
201
+ }
202
+ let out = value;
203
+ try {
204
+ for (const {
205
+ pattern,
206
+ luhn
207
+ } of VALUE_SCRUB_PATTERNS) {
208
+ pattern.lastIndex = 0;
209
+ out = out.replace(pattern, (m) => luhn && !_luhnValid(m) ? m : REDACTED);
210
+ }
211
+ } catch {
212
+ }
213
+ return out;
214
+ }
176
215
  function redactBody(body, maxDepth = 10) {
177
216
  try {
178
217
  return _redactValue(body, 0, maxDepth);
@@ -184,7 +223,7 @@ function _redactValue(value, depth, maxDepth) {
184
223
  if (depth > maxDepth) return "[MAX_DEPTH]";
185
224
  if (value === null || value === void 0) return value;
186
225
  if (typeof value === "string") {
187
- return value;
226
+ return _redactString(value, depth, maxDepth);
188
227
  }
189
228
  if (Array.isArray(value)) {
190
229
  return value.map((item) => _redactValue(item, depth + 1, maxDepth));
@@ -192,7 +231,7 @@ function _redactValue(value, depth, maxDepth) {
192
231
  if (typeof value === "object") {
193
232
  const result = {};
194
233
  for (const [key, val] of Object.entries(value)) {
195
- if (SENSITIVE_BODY_KEYS.has(key) || SENSITIVE_BODY_KEYS.has(key.toLowerCase())) {
234
+ if (_isSensitiveKey(key)) {
196
235
  result[key] = REDACTED;
197
236
  } else {
198
237
  result[key] = _redactValue(val, depth + 1, maxDepth);
@@ -202,52 +241,95 @@ function _redactValue(value, depth, maxDepth) {
202
241
  }
203
242
  return value;
204
243
  }
205
- function scanForPII(text2, location = "unknown") {
206
- const warnings = [];
244
+ function _redactString(value, depth, maxDepth) {
245
+ const trimmed = value.trimStart();
246
+ if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
247
+ try {
248
+ const parsed = JSON.parse(value);
249
+ if (parsed !== null && typeof parsed === "object") {
250
+ const redacted = _redactValue(parsed, depth + 1, maxDepth);
251
+ return JSON.stringify(redacted);
252
+ }
253
+ } catch {
254
+ }
255
+ }
256
+ return _scrubSecretsInString(value);
257
+ }
258
+ function _newScanContext() {
259
+ return {
260
+ warnings: [],
261
+ byType: {},
262
+ deadline: Date.now() + SCAN_TIME_BUDGET_MS,
263
+ truncated: false,
264
+ total: 0
265
+ };
266
+ }
267
+ function _pushWarning(ctx, type, rawMatch, location) {
268
+ ctx.total += 1;
269
+ ctx.byType[type] = (ctx.byType[type] ?? 0) + 1;
270
+ if (ctx.warnings.length < MAX_PII_WARNINGS) {
271
+ ctx.warnings.push({
272
+ type,
273
+ match: _maskPII(rawMatch),
274
+ location
275
+ });
276
+ } else {
277
+ ctx.truncated = true;
278
+ }
279
+ }
280
+ function _finalizeScan(ctx) {
281
+ if (ctx.truncated) {
282
+ ctx.warnings.push({
283
+ type: "_summary",
284
+ match: `truncated: ${ctx.total} matches`,
285
+ location: `counts:${JSON.stringify(ctx.byType)}`
286
+ });
287
+ }
288
+ return ctx.warnings;
289
+ }
290
+ function _scanTextInto(text2, location, ctx) {
291
+ const input = text2.length > MAX_SCAN_INPUT_CHARS ? text2.slice(0, MAX_SCAN_INPUT_CHARS) : text2;
207
292
  try {
208
293
  for (const {
209
294
  name,
210
295
  pattern
211
296
  } of PII_PATTERNS) {
212
297
  pattern.lastIndex = 0;
213
- let match = pattern.exec(text2);
298
+ let match = pattern.exec(input);
214
299
  while (match) {
215
- warnings.push({
216
- type: name,
217
- match: _maskPII(match[0]),
218
- location
219
- });
220
- match = pattern.exec(text2);
300
+ _pushWarning(ctx, name, match[0], location);
301
+ if (Date.now() > ctx.deadline) {
302
+ ctx.truncated = true;
303
+ return;
304
+ }
305
+ if (pattern.lastIndex === match.index) pattern.lastIndex++;
306
+ match = pattern.exec(input);
221
307
  }
222
308
  }
223
309
  } catch {
224
310
  }
225
- return warnings;
226
- }
227
- function scanObjectForPII(obj, basePath = "", maxDepth = 10) {
228
- const warnings = [];
229
- try {
230
- _scanObject(obj, basePath, 0, maxDepth, warnings);
231
- } catch {
232
- }
233
- return warnings;
234
311
  }
235
- function _scanObject(value, path, depth, maxDepth, warnings) {
312
+ function _scanObjectInto(value, path, depth, maxDepth, ctx) {
236
313
  if (depth > maxDepth || value === null || value === void 0) return;
314
+ if (ctx.truncated || Date.now() > ctx.deadline) {
315
+ ctx.truncated = true;
316
+ return;
317
+ }
237
318
  if (typeof value === "string") {
238
- const found = scanForPII(value, path);
239
- warnings.push(...found);
319
+ _scanTextInto(value, path, ctx);
240
320
  return;
241
321
  }
242
322
  if (Array.isArray(value)) {
243
- value.forEach((item, i) => {
244
- _scanObject(item, `${path}[${i}]`, depth + 1, maxDepth, warnings);
245
- });
323
+ for (let i = 0; i < value.length; i++) {
324
+ if (ctx.truncated) return;
325
+ _scanObjectInto(value[i], `${path}[${i}]`, depth + 1, maxDepth, ctx);
326
+ }
246
327
  return;
247
328
  }
248
329
  if (typeof value === "object") {
249
330
  for (const [key, val] of Object.entries(value)) {
250
- _scanObject(val, path ? `${path}.${key}` : key, depth + 1, maxDepth, warnings);
331
+ if (ctx.truncated) return;
332
+ _scanObjectInto(val, path ? `${path}.${key}` : key, depth + 1, maxDepth, ctx);
251
333
  }
252
334
  }
253
335
  }
@@ -270,16 +352,17 @@ function redactUrl(url) {
270
352
  }
271
353
  }
272
354
  function redactNetworkEvent(event) {
273
- const piiWarnings = [];
355
+ const ctx = _newScanContext();
274
356
  if (event.url) {
275
- piiWarnings.push(...scanForPII(event.url, "url"));
357
+ _scanTextInto(event.url, "url", ctx);
276
358
  }
277
359
  if (event.requestBody) {
278
- piiWarnings.push(...scanObjectForPII(event.requestBody, "requestBody"));
360
+ _scanObjectInto(event.requestBody, "requestBody", 0, 10, ctx);
279
361
  }
280
362
  if (event.responseBody) {
281
- piiWarnings.push(...scanObjectForPII(event.responseBody, "responseBody"));
363
+ _scanObjectInto(event.responseBody, "responseBody", 0, 10, ctx);
282
364
  }
365
+ const piiWarnings = _finalizeScan(ctx);
283
366
  return {
284
367
  url: event.url ? redactUrl(event.url) : "",
285
368
  method: event.method ?? "GET",
@@ -292,29 +375,54 @@ function redactNetworkEvent(event) {
292
375
  piiWarnings
293
376
  };
294
377
  }
295
- var REDACTED, SENSITIVE_HEADERS, PII_PATTERNS, SENSITIVE_BODY_KEYS;
378
+ var REDACTED, MAX_SCAN_INPUT_CHARS, SCAN_TIME_BUDGET_MS, MAX_PII_WARNINGS, MAX_STRING_SCRUB_CHARS, SENSITIVE_HEADERS, PII_PATTERNS, VALUE_SCRUB_PATTERNS, SENSITIVE_BODY_KEYS, NORMALIZED_SENSITIVE_KEYS;
296
379
  var init_redaction = __esm({
297
380
  "lib/module/debug/redaction.js"() {
298
381
  "use strict";
299
382
  REDACTED = "[REDACTED]";
383
+ MAX_SCAN_INPUT_CHARS = 16 * 1024;
384
+ SCAN_TIME_BUDGET_MS = 10;
385
+ MAX_PII_WARNINGS = 20;
386
+ MAX_STRING_SCRUB_CHARS = 64 * 1024;
300
387
  SENSITIVE_HEADERS = /* @__PURE__ */ new Set(["authorization", "cookie", "set-cookie", "x-api-key", "x-auth-token", "proxy-authorization"]);
301
388
  PII_PATTERNS = [{
302
389
  name: "email",
303
- pattern: /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g
390
+ pattern: /[A-Za-z0-9._%+-]{1,64}@[A-Za-z0-9-]{1,63}(?:\.[A-Za-z0-9-]{1,63}){0,8}\.[A-Za-z]{2,24}/g
304
391
  }, {
305
392
  name: "phone",
306
- pattern: /(?:\+?\d{1,3}[-.\s]?)?\(?\d{2,4}\)?[-.\s]?\d{3,4}[-.\s]?\d{3,4}/g
393
+ pattern: /\+?\d{1,3}[-.\s]?\(?\d{2,4}\)?[-.\s]?\d{3,4}[-.\s]?\d{3,4}/g
307
394
  }, {
308
395
  name: "ssn",
309
396
  pattern: /\b\d{3}-\d{2}-\d{4}\b/g
310
397
  }, {
311
398
  name: "credit_card",
312
399
  pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b/g
400
+ }, {
401
+ name: "iban",
402
+ pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g
403
+ }, {
404
+ name: "jwt",
405
+ pattern: /\beyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\b/g
313
406
  }, {
314
407
  name: "ip_address",
315
408
  pattern: /\b(?:\d{1,3}\.){3}\d{1,3}\b/g
316
409
  }];
317
- SENSITIVE_BODY_KEYS = /* @__PURE__ */ new Set(["password", "passwd", "secret", "token", "access_token", "refresh_token", "api_key", "apiKey", "private_key", "privateKey", "credit_card", "creditCard", "ccNumber", "cvv", "ssn", "social_security"]);
410
+ VALUE_SCRUB_PATTERNS = [{
411
+ name: "jwt",
412
+ pattern: /eyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}/g
413
+ }, {
414
+ name: "email",
415
+ pattern: /[A-Za-z0-9._%+-]{1,64}@[A-Za-z0-9-]{1,63}(?:\.[A-Za-z0-9-]{1,63}){0,8}\.[A-Za-z]{2,24}/g
416
+ }, {
417
+ name: "iban",
418
+ pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g
419
+ }, {
420
+ name: "credit_card",
421
+ pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{2,7}\b/g,
422
+ luhn: true
423
+ }];
424
+ SENSITIVE_BODY_KEYS = /* @__PURE__ */ new Set(["password", "passwd", "secret", "token", "access_token", "refresh_token", "id_token", "api_key", "apiKey", "private_key", "privateKey", "credit_card", "creditCard", "ccnumber", "cardnumber", "card_number", "pan", "cvv", "cvc", "ssn", "social_security", "nationalid", "national_id", "iban", "otp", "pin", "totp", "mfa", "mnemonic", "seed"]);
425
+ NORMALIZED_SENSITIVE_KEYS = new Set(Array.from(SENSITIVE_BODY_KEYS, _normalizeKey));
318
426
  }
319
427
  });
320
428
 
@@ -492,7 +600,7 @@ var SDK_VERSION;
492
600
  var init_version = __esm({
493
601
  "lib/module/core/constants/version.js"() {
494
602
  "use strict";
495
- SDK_VERSION = "1.10.4";
603
+ SDK_VERSION = "1.10.6";
496
604
  }
497
605
  });
498
606
 
@@ -534,6 +642,15 @@ function staticDeviceContext() {
534
642
  if (c.Model) out.device_model = String(c.Model);
535
643
  if (c.Manufacturer) out.manufacturer = String(c.Manufacturer);
536
644
  else if (c.Brand) out.manufacturer = String(c.Brand);
645
+ else if (out.platform_os === "ios") out.manufacturer = "Apple";
646
+ return out;
647
+ }
648
+ function nativeDeviceContext(info) {
649
+ const out = {};
650
+ if (!info) return out;
651
+ if (info.osVersion) out.os_version = info.osVersion;
652
+ if (info.deviceModel) out.device_model = info.deviceModel;
653
+ if (info.manufacturer) out.manufacturer = info.manufacturer;
537
654
  return out;
538
655
  }
539
656
  function mergeDeviceContext(configured, detected = staticDeviceContext()) {
@@ -1236,12 +1353,22 @@ var init_AutoScreenDetector = __esm({
1236
1353
  _manualScreen = null;
1237
1354
  _manualScreenTs = 0;
1238
1355
  _autoScreen = null;
1356
+ /** `name#key` of the last auto-detected screen VISIT — see _extractActiveVisit. */
1357
+ _autoVisitSig = null;
1239
1358
  _navigationRef = null;
1240
1359
  _navListenerRemover = null;
1241
1360
  _navListenerWired = false;
1242
1361
  _heuristicTimer = null;
1243
1362
  _started = false;
1244
1363
  _lastEmittedScreen = null;
1364
+ _lastEmittedTs = 0;
1365
+ /**
1366
+ * Cross-source emit dedup window — see _emitScreenChange. Long enough to absorb the manual
1367
+ * beacon and the navRef listener both reporting the SAME transition (they land within the
1368
+ * 30ms nav debounce plus a render), short enough that a genuine re-visit of the same route
1369
+ * a moment later is a new screen view rather than silence.
1370
+ */
1371
+ static EMIT_DEDUP_WINDOW_MS = 800;
1245
1372
  _navDebounceTimer = null;
1246
1373
  /** Whether the React Navigation exports were actually replaced — see _autoHookReactNavigation. */
1247
1374
  _autoHookInstalled = false;
@@ -1293,6 +1420,7 @@ var init_AutoScreenDetector = __esm({
1293
1420
  if (this.isManualScreenActive()) return;
1294
1421
  if (name !== this._autoScreen) {
1295
1422
  this._autoScreen = name;
1423
+ this._autoVisitSig = name;
1296
1424
  this._emitScreenChange(name, "heuristic");
1297
1425
  }
1298
1426
  } catch {
@@ -1343,10 +1471,11 @@ var init_AutoScreenDetector = __esm({
1343
1471
  try {
1344
1472
  const state = typeof container.getRootState === "function" ? container.getRootState() : null;
1345
1473
  if (state) {
1346
- const screen = this._extractActiveRoute(state);
1347
- if (screen && screen !== this._autoScreen) {
1348
- this._autoScreen = screen;
1349
- this._emitScreenChange(screen, "navRef");
1474
+ const visit = this._extractActiveVisit(state);
1475
+ if (visit && this._visitSig(visit) !== this._autoVisitSig) {
1476
+ this._autoScreen = visit.name;
1477
+ this._autoVisitSig = this._visitSig(visit);
1478
+ this._emitScreenChange(visit.name, "navRef");
1350
1479
  }
1351
1480
  }
1352
1481
  } catch {
@@ -1360,10 +1489,11 @@ var init_AutoScreenDetector = __esm({
1360
1489
  if (typeof container.getRootState === "function") {
1361
1490
  const state = container.getRootState();
1362
1491
  if (state) {
1363
- const screen = this._extractActiveRoute(state);
1364
- if (screen) {
1365
- this._autoScreen = screen;
1366
- this._emitScreenChange(screen, "navRef");
1492
+ const visit = this._extractActiveVisit(state);
1493
+ if (visit) {
1494
+ this._autoScreen = visit.name;
1495
+ this._autoVisitSig = this._visitSig(visit);
1496
+ this._emitScreenChange(visit.name, "navRef");
1367
1497
  }
1368
1498
  }
1369
1499
  }
@@ -1389,10 +1519,11 @@ var init_AutoScreenDetector = __esm({
1389
1519
  if (navContainer) {
1390
1520
  const state = typeof navContainer.getRootState === "function" ? navContainer.getRootState() : null;
1391
1521
  if (state) {
1392
- const screen = this._extractActiveRoute(state);
1393
- if (screen && screen !== this._autoScreen) {
1394
- this._autoScreen = screen;
1395
- this._emitScreenChange(screen, "heuristic");
1522
+ const visit = this._extractActiveVisit(state);
1523
+ if (visit && this._visitSig(visit) !== this._autoVisitSig) {
1524
+ this._autoScreen = visit.name;
1525
+ this._autoVisitSig = this._visitSig(visit);
1526
+ this._emitScreenChange(visit.name, "heuristic");
1396
1527
  }
1397
1528
  }
1398
1529
  }
@@ -1424,19 +1555,43 @@ var init_AutoScreenDetector = __esm({
1424
1555
  * Handles nested navigators by walking to the deepest active route.
1425
1556
  */
1426
1557
  _extractActiveRoute(state) {
1558
+ return this._extractActiveVisit(state)?.name ?? null;
1559
+ }
1560
+ /**
1561
+ * Extract the active route's name AND its React Navigation route `key`.
1562
+ *
1563
+ * The key is what makes re-VISITS detectable. Comparing names alone collapses two
1564
+ * different visits to the same route into one screen view: leave Details, open Details
1565
+ * again, and `name === _autoScreen` swallowed the second visit entirely (QA: "opened the
1566
+ * same route again and no screen event was recorded"). React Navigation mints a fresh
1567
+ * `key` for every pushed route instance, so a re-push of the same name is a NEW key —
1568
+ * name+key comparison records each visit while a mere re-render of the same instance
1569
+ * (same key) still emits nothing. States without keys degrade to name-only, i.e. the
1570
+ * old behaviour, never worse.
1571
+ */
1572
+ _extractActiveVisit(state) {
1427
1573
  try {
1428
1574
  if (!state?.routes || typeof state.index !== "number") return null;
1429
1575
  const activeRoute = state.routes[state.index];
1430
1576
  if (!activeRoute) return null;
1431
1577
  if (activeRoute.state?.routes && typeof activeRoute.state.index === "number") {
1432
- const nested = this._extractActiveRoute(activeRoute.state);
1578
+ const nested = this._extractActiveVisit(activeRoute.state);
1433
1579
  if (nested) return nested;
1434
1580
  }
1435
- return activeRoute.name || null;
1581
+ if (!activeRoute.name) return null;
1582
+ const rawKey = activeRoute.key;
1583
+ return {
1584
+ name: activeRoute.name,
1585
+ key: typeof rawKey === "string" ? rawKey : null
1586
+ };
1436
1587
  } catch {
1437
1588
  return null;
1438
1589
  }
1439
1590
  }
1591
+ /** `name#key` signature of one screen VISIT — what the auto paths dedup on. */
1592
+ _visitSig(visit) {
1593
+ return visit.key ? `${visit.name}#${visit.key}` : visit.name;
1594
+ }
1440
1595
  // ─── Lifecycle ──────────────────────────────────────────────────────
1441
1596
  /** Start auto-detection (idempotent) */
1442
1597
  start() {
@@ -1601,8 +1756,10 @@ var init_AutoScreenDetector = __esm({
1601
1756
  // ─── Internal ───────────────────────────────────────────────────────
1602
1757
  _emitScreenChange(name, source) {
1603
1758
  try {
1604
- if (name === this._lastEmittedScreen) return;
1759
+ const emitNow = Date.now();
1760
+ if (name === this._lastEmittedScreen && emitNow - this._lastEmittedTs < _AutoScreenDetector.EMIT_DEDUP_WINDOW_MS) return;
1605
1761
  this._lastEmittedScreen = name;
1762
+ this._lastEmittedTs = emitNow;
1606
1763
  for (const cb of this._listeners) {
1607
1764
  try {
1608
1765
  cb(name, source);
@@ -3487,6 +3644,21 @@ var init_SessionManager = __esm({
3487
3644
  * differently across devices and pushes markers ~10% off vertically).
3488
3645
  */
3489
3646
  _lastNativeViewportJsUnits = null;
3647
+ /**
3648
+ * Exact-duplicate gesture suppression (QA: one physical tap recorded 2–3×).
3649
+ *
3650
+ * Measured in production data: the native tracker re-emitted the SAME tap — identical
3651
+ * gestureType and identical coordinates to the SUB-PIXEL (e.g. x=466.962890625) — at
3652
+ * 160–240ms gaps, sometimes twice. A human re-tap cannot reproduce a sub-pixel float
3653
+ * exactly, so exact coordinate equality within the window is a safe discriminator: real
3654
+ * double-taps land on at least slightly different pixels and pass through untouched.
3655
+ * The pipeline's own 100ms dedup was too narrow for these; this window covers what was
3656
+ * actually observed with margin. Sits at the ONE entry point every gesture source funnels
3657
+ * through, so recording and analytics lanes are protected equally.
3658
+ */
3659
+ _lastGestureSig = null;
3660
+ _lastGestureTs = 0;
3661
+ static GESTURE_DEDUP_WINDOW_MS = 400;
3490
3662
  /** Memoized native file-outbox frame adapter (gated by the backend transport). */
3491
3663
  _outboxFrameCapture = null;
3492
3664
  constructor(debugTransport, nativeCapture2, managerConfig) {
@@ -4135,6 +4307,14 @@ var init_SessionManager = __esm({
4135
4307
  * Emits a USER_ACTION event with gesture-specific subtype and payload.
4136
4308
  */
4137
4309
  onGestureDetected(gestureType, details) {
4310
+ const dedupSig = `${gestureType}|${String(details?.x)}|${String(details?.y)}|${String(details?.endX)}|${String(details?.endY)}`;
4311
+ const nowTs = Date.now();
4312
+ if (dedupSig === this._lastGestureSig && nowTs - this._lastGestureTs <= _SessionManager.GESTURE_DEDUP_WINDOW_MS) {
4313
+ this._lastGestureTs = nowTs;
4314
+ return;
4315
+ }
4316
+ this._lastGestureSig = dedupSig;
4317
+ this._lastGestureTs = nowTs;
4138
4318
  const payload = {
4139
4319
  gestureType,
4140
4320
  x: details?.x,
@@ -6357,6 +6537,27 @@ var init_EventTracker = __esm({
6357
6537
  }
6358
6538
  this.persistQueue();
6359
6539
  }
6540
+ /**
6541
+ * Fold in device facts that were not knowable at init.
6542
+ *
6543
+ * `Platform.constants` answers Android synchronously, so its model and manufacturer ride the
6544
+ * very first event. iOS exposes neither there — only the native bridge knows, and the bridge is
6545
+ * async and may not be installed at all. Without this the iOS half of every install reported no
6546
+ * model whatsoever.
6547
+ *
6548
+ * `buildEnvelope` reads `cfg.context` per event, so applying it here reaches every event from
6549
+ * the next one onward. Detected keys WIN over whatever the integrator configured, for the same
6550
+ * reason `mergeDeviceContext` inverts the usual precedence: a measurement must not be
6551
+ * overridable by a guess. Empty patches are ignored so a bridge that answered with nothing
6552
+ * cannot blank a value the static path already found.
6553
+ */
6554
+ applyDetectedContext(patch) {
6555
+ if (!patch || Object.keys(patch).length === 0) return;
6556
+ this.cfg.context = {
6557
+ ...this.cfg.context ?? {},
6558
+ ...patch
6559
+ };
6560
+ }
6360
6561
  // ─── internals ─────────────────────────────────────────────────────────────
6361
6562
  buildEnvelope(eventName, properties) {
6362
6563
  const ctx = this.cfg.context ?? {};
@@ -9499,6 +9700,35 @@ var SHAPE = {
9499
9700
  })
9500
9701
  }
9501
9702
  },
9703
+ // SB-10: the public, documented top-level privacy config. Previously only the
9704
+ // nested replay privacy took effect; this is validated here and mapped onto the
9705
+ // effective replay privacy policy in the bootstrapper so it actually masks.
9706
+ privacy: {
9707
+ kind: "obj",
9708
+ opt: true,
9709
+ shape: {
9710
+ maskTextInputs: {
9711
+ kind: "bool",
9712
+ opt: true
9713
+ },
9714
+ maskImages: {
9715
+ kind: "bool",
9716
+ opt: true
9717
+ },
9718
+ redactAuth: {
9719
+ kind: "bool",
9720
+ opt: true
9721
+ },
9722
+ redactCookies: {
9723
+ kind: "bool",
9724
+ opt: true
9725
+ },
9726
+ redactBodies: {
9727
+ kind: "bool",
9728
+ opt: true
9729
+ }
9730
+ }
9731
+ },
9502
9732
  captureInteractionHeatmap: bool(true),
9503
9733
  // Opt-in: intercept console.* and ship the lines to the Diagnose → Logs lane in SaaS
9504
9734
  // mode. OFF by default — console output can carry PII/secrets and adds ingest volume,
@@ -12296,6 +12526,13 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
12296
12526
  // the flush timer retries, so nothing is lost to a start/child race. The durable native
12297
12527
  // outbox path has its own ordering; this guards only the JS in-memory fallback.
12298
12528
  _startedSessionIds = /* @__PURE__ */ new Set();
12529
+ // §11 offline-start recovery: INGESTION_START payloads whose POST failed (e.g. the app
12530
+ // launched with no connectivity). Without this, a failed START was logged and forgotten —
12531
+ // the row-ready gate never opened, every child lane re-buffered forever, and the session
12532
+ // stayed stuck until an app restart even after the network returned. Each flush tick
12533
+ // re-attempts these until acked (network errors keep retrying; permanent 4xx gives up).
12534
+ _pendingStartPayloads = /* @__PURE__ */ new Map();
12535
+ _startRetryInFlight = false;
12299
12536
  pendingFrames = [];
12300
12537
  pendingEvents = [];
12301
12538
  pendingNetworkRequests = [];
@@ -12419,10 +12656,16 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
12419
12656
  }
12420
12657
  };
12421
12658
  __DEV__ && logger.debug(`[BackendSessionAdapter] POST session start: ${session.sessionId}`);
12422
- return this._post(startEndpoint, payload);
12423
- }).then(() => {
12424
- this._startedSessionIds.add(session.sessionId);
12425
- __DEV__ && logger.info(`[ScaleBun Replay] backend session upload success`);
12659
+ return this._post(startEndpoint, payload).then(() => {
12660
+ this._startedSessionIds.add(session.sessionId);
12661
+ this._pendingStartPayloads.delete(session.sessionId);
12662
+ __DEV__ && logger.info(`[ScaleBun Replay] backend session upload success`);
12663
+ }, (err) => {
12664
+ if (!_BackendSessionAdapter._isPermanentHttpError(err)) {
12665
+ this._pendingStartPayloads.set(session.sessionId, payload);
12666
+ }
12667
+ logger.info(`[ScaleBun Replay] backend session upload failure`);
12668
+ });
12426
12669
  }).catch(() => logger.info(`[ScaleBun Replay] backend session upload failure`));
12427
12670
  }
12428
12671
  sendSessionEnd(session) {
@@ -12495,8 +12738,16 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
12495
12738
  environment: m?.buildType
12496
12739
  }
12497
12740
  };
12498
- await this._post(startEndpoint, payload);
12741
+ try {
12742
+ await this._post(startEndpoint, payload);
12743
+ } catch (err) {
12744
+ if (!_BackendSessionAdapter._isPermanentHttpError(err)) {
12745
+ this._pendingStartPayloads.set(session.sessionId, payload);
12746
+ }
12747
+ throw err;
12748
+ }
12499
12749
  this._startedSessionIds.add(session.sessionId);
12750
+ this._pendingStartPayloads.delete(session.sessionId);
12500
12751
  this._flushAnalyticsEvents().catch(() => {
12501
12752
  });
12502
12753
  __DEV__ && logger.info(`[ScaleBun Analytics] session start upload success: ${session.sessionId}`);
@@ -12504,6 +12755,40 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
12504
12755
  __DEV__ && logger.info(`[ScaleBun Analytics] session start upload failure`);
12505
12756
  }
12506
12757
  }
12758
+ /**
12759
+ * Re-attempt any INGESTION_START whose POST failed (offline app launch). Runs on every
12760
+ * flush tick of BOTH lanes — cheap no-op when the map is empty, single-flight guarded.
12761
+ * On ack: opens the row-ready gate and drains whichever lane the id belongs to, which is
12762
+ * exactly what un-sticks a replay that started offline once connectivity returns.
12763
+ */
12764
+ _retryPendingStarts() {
12765
+ if (this.destroyed || this._startRetryInFlight || this._pendingStartPayloads.size === 0) return;
12766
+ const entry = this._pendingStartPayloads.entries().next().value;
12767
+ if (!entry) return;
12768
+ const [sessionId, payload] = entry;
12769
+ const stillRelevant = sessionId === this.currentSessionId || sessionId === this._analyticsSessionId;
12770
+ if (!stillRelevant) {
12771
+ this._pendingStartPayloads.delete(sessionId);
12772
+ return;
12773
+ }
12774
+ this._startRetryInFlight = true;
12775
+ const startEndpoint = this.config.clientKey ? ENDPOINTS.INGESTION_START : "/replay/sessions";
12776
+ this._post(startEndpoint, payload).then(() => {
12777
+ this._startedSessionIds.add(sessionId);
12778
+ this._pendingStartPayloads.delete(sessionId);
12779
+ __DEV__ && logger.info(`[ScaleBun Replay] deferred session start delivered: ${sessionId}`);
12780
+ if (sessionId === this._analyticsSessionId) {
12781
+ this._flushAnalyticsEvents().catch(() => {
12782
+ });
12783
+ }
12784
+ }).catch((err) => {
12785
+ if (_BackendSessionAdapter._isPermanentHttpError(err)) {
12786
+ this._pendingStartPayloads.delete(sessionId);
12787
+ }
12788
+ }).finally(() => {
12789
+ this._startRetryInFlight = false;
12790
+ });
12791
+ }
12507
12792
  /**
12508
12793
  * Enqueue a user track() event. Buffers (bounded, drop-oldest) when the
12509
12794
  * analytics session is not yet open; flushes at >=20 once it is.
@@ -12618,6 +12903,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
12618
12903
  _startAnalyticsFlushTimer() {
12619
12904
  this._stopAnalyticsFlushTimer();
12620
12905
  this.analyticsFlushTimer = setInterval(() => {
12906
+ this._retryPendingStarts();
12621
12907
  this._flushAnalyticsEvents().catch(() => {
12622
12908
  });
12623
12909
  }, this.config.flushIntervalMs);
@@ -12844,6 +13130,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
12844
13130
  this._analyticsSessionId = null;
12845
13131
  this._pendingFinalizeId = null;
12846
13132
  this._startedSessionIds.clear();
13133
+ this._pendingStartPayloads.clear();
12847
13134
  }
12848
13135
  // ─── Internal: Flush ────────────────────────────────────────────────
12849
13136
  /** Wire metadata for a frame — real format/sizeBytes from native (no hardcoded literals). */
@@ -13362,6 +13649,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
13362
13649
  _startFlushTimer() {
13363
13650
  this._stopFlushTimer();
13364
13651
  this.flushTimer = setInterval(() => {
13652
+ this._retryPendingStarts();
13365
13653
  this._flushFrames().catch(() => {
13366
13654
  });
13367
13655
  this._flushEvents().catch(() => {
@@ -13692,6 +13980,18 @@ var SDKBootstrapper = class {
13692
13980
  if (features.replay !== false) {
13693
13981
  try {
13694
13982
  __DEV__ && logger.debug("[Bootstrap] Initializing unified SessionManager");
13983
+ const pub = this.config.privacy ?? {};
13984
+ const sessionReplay = {
13985
+ ...this.config.replay ?? {}
13986
+ };
13987
+ if (typeof pub.maskTextInputs === "boolean" || typeof pub.maskImages === "boolean") {
13988
+ sessionReplay.privacyPolicy = {
13989
+ redactTextInputs: pub.maskTextInputs ?? true,
13990
+ redactImages: pub.maskImages ?? false,
13991
+ blockTestIds: [],
13992
+ captureExclusions: []
13993
+ };
13994
+ }
13695
13995
  const sessionManager = SessionManager.getInstance(
13696
13996
  null,
13697
13997
  // No desktop transport initially
@@ -13702,9 +14002,7 @@ var SDKBootstrapper = class {
13702
14002
  // Also flow the Feature #4 heatmap flag so tap/gesture coords
13703
14003
  // route to the analytics lane even when no recording is active.
13704
14004
  {
13705
- ...this.config.replay ? {
13706
- sessionReplay: this.config.replay
13707
- } : {},
14005
+ sessionReplay,
13708
14006
  captureInteractionHeatmap: this.config.captureInteractionHeatmap === true
13709
14007
  }
13710
14008
  );
@@ -13930,6 +14228,7 @@ var SDKBootstrapper = class {
13930
14228
 
13931
14229
  // lib/module/public/ScaleBunFacade.js
13932
14230
  init_EventTracker();
14231
+ init_bridgeAdapter();
13933
14232
  init_automaticEvents();
13934
14233
 
13935
14234
  // lib/module/analytics/eventLane.js
@@ -16446,6 +16745,8 @@ var ScaleBunFacade = class {
16446
16745
  * the whole time. The SDK knows the device; the integrator is guessing at it.
16447
16746
  * Everything outside the detected keys is still theirs.
16448
16747
  */
16748
+ // Everything Platform.constants knows. On iOS that is neither the model nor the
16749
+ // manufacturer, so the bridge completes it below once it answers.
16449
16750
  context: mergeDeviceContext(rawConfig?.context),
16450
16751
  // Use the same foreground id as replay/journey capture. The
16451
16752
  // callback is resolved per event because the session subsystem
@@ -16459,6 +16760,7 @@ var ScaleBunFacade = class {
16459
16760
  });
16460
16761
  this._eventTracker.start();
16461
16762
  __DEV__ && logger.info("[ScaleBun] Envelope event tracking started \u2192 /v1/batch.");
16763
+ this._applyNativeDeviceContext(this._eventTracker);
16462
16764
  this._captureInstallReferrer(this._eventTracker);
16463
16765
  const tracker = this._eventTracker;
16464
16766
  this._configManager = new ConfigManager({
@@ -16477,6 +16779,25 @@ var ScaleBunFacade = class {
16477
16779
  logger.warn("[ScaleBun] Failed to start envelope event tracking:", err?.message);
16478
16780
  }
16479
16781
  }
16782
+ /**
16783
+ * Fold the native bridge's device facts into the analytics context once it answers.
16784
+ *
16785
+ * Detected values never overwrite a populated one with an empty one — `nativeDeviceContext`
16786
+ * drops absent keys and `applyDetectedContext` ignores an empty patch — so a bridge that
16787
+ * cannot answer leaves whatever `Platform.constants` already found.
16788
+ */
16789
+ _applyNativeDeviceContext(tracker) {
16790
+ Promise.resolve().then(() => bridgeAdapter.getDeviceInfo()).then((info) => {
16791
+ if (!info) return;
16792
+ tracker.applyDetectedContext(nativeDeviceContext({
16793
+ osVersion: info.osVersion,
16794
+ deviceModel: info.deviceModel
16795
+ // iOS ships no manufacturer over the bridge; it is a constant there and the
16796
+ // static path already set it. Android's arrives via Platform.constants.
16797
+ }));
16798
+ }).catch(() => {
16799
+ });
16800
+ }
16480
16801
  /**
16481
16802
  * Android-only: read the Play Install Referrer once per install and route it into
16482
16803
  * attribution. `scalebun_click_id` → the deterministic click path; the full
@@ -16660,16 +16981,90 @@ var ScaleBunFacade = class {
16660
16981
  });
16661
16982
  });
16662
16983
  }
16663
- /** Clear user identity */
16664
- clearUser() {
16984
+ /**
16985
+ * Clear user identity.
16986
+ *
16987
+ * SB-11: pass `{ purgeLocal: true }` on logout / consent withdrawal to also
16988
+ * erase all locally-stored SDK data (see {@link eraseLocalData}). Without it,
16989
+ * behaviour is unchanged (identity-only clear).
16990
+ */
16991
+ clearUser(options) {
16665
16992
  return noThrow(() => {
16666
16993
  this._identifiedUserId = null;
16667
16994
  this._pendingIdentity = null;
16668
16995
  if (!this.initialized) return;
16669
16996
  this._eventTracker?.clearIdentity();
16670
16997
  this.track("$clear_user", {});
16998
+ if (options?.purgeLocal) void this.eraseLocalData();
16671
16999
  });
16672
17000
  }
17001
+ /**
17002
+ * SB-11: erase all locally-stored SDK data from the device — the durable event
17003
+ * queue, the pre-init buffer, and the first-party KV store (cached install /
17004
+ * anonymous / session IDs, plus any queued payloads including SB-26 disk data).
17005
+ *
17006
+ * Order matters: capture is stopped FIRST so nothing is written back in behind
17007
+ * the delete. Best-effort and never throws.
17008
+ *
17009
+ * Note: native replay frames written to disk on iOS are addressed separately
17010
+ * (SB-15); this covers every store reachable from JS today.
17011
+ */
17012
+ async eraseLocalData() {
17013
+ try {
17014
+ try {
17015
+ SessionManager.getExistingInstance()?.endSession("ended");
17016
+ } catch {
17017
+ }
17018
+ try {
17019
+ this._getQueue().clear();
17020
+ } catch {
17021
+ }
17022
+ try {
17023
+ this._preInitBuffer.clear();
17024
+ } catch {
17025
+ }
17026
+ try {
17027
+ const store = createStorageBackend();
17028
+ for (const key of store.getAllKeys()) {
17029
+ store.delete(key);
17030
+ }
17031
+ } catch {
17032
+ }
17033
+ } catch {
17034
+ }
17035
+ }
17036
+ /**
17037
+ * SB-11: record the user's data-collection consent. When `enabled` is false,
17038
+ * capture is stopped immediately; pass `{ purgeLocal: true }` to also erase
17039
+ * everything already stored locally. Never throws.
17040
+ */
17041
+ setConsent(enabled, options) {
17042
+ noThrow(() => {
17043
+ if (enabled) return;
17044
+ try {
17045
+ SessionManager.getExistingInstance()?.endSession("ended");
17046
+ } catch {
17047
+ }
17048
+ if (options?.purgeLocal) void this.eraseLocalData();
17049
+ });
17050
+ }
17051
+ /**
17052
+ * SB-10: return the effective privacy policy actually in force, resolving the
17053
+ * public config against the SDK's safe defaults. Lets callers and tests assert
17054
+ * what is active rather than guessing from the (previously dead) config object.
17055
+ */
17056
+ getEffectivePrivacyPolicy() {
17057
+ const p = this._privacyConfig ?? {};
17058
+ return {
17059
+ // Real default is true (matches the replay capture default) — the old
17060
+ // doc comment claiming "false" was both wrong and less safe.
17061
+ maskTextInputs: p.maskTextInputs ?? true,
17062
+ maskImages: p.maskImages ?? false,
17063
+ redactAuth: p.redactAuth ?? true,
17064
+ redactCookies: p.redactCookies ?? true,
17065
+ redactBodies: p.redactBodies ?? false
17066
+ };
17067
+ }
16673
17068
  /**
16674
17069
  * Submit in-app rating (1-5 stars).
16675
17070
  * Attaches to current session when available; otherwise sends standalone.
@@ -29750,7 +30145,7 @@ function ScaleBunDebugRoot({
29750
30145
  }
29751
30146
  } catch {
29752
30147
  }
29753
- }, 200);
30148
+ }, 600);
29754
30149
  }
29755
30150
  touchStartRef.current = null;
29756
30151
  } catch {