@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
@@ -170,6 +170,45 @@ function redactHeaders(headers) {
170
170
  }
171
171
  return result;
172
172
  }
173
+ function _normalizeKey(key) {
174
+ return key.toLowerCase().replace(/[_\-\s]/g, "");
175
+ }
176
+ function _isSensitiveKey(key) {
177
+ return NORMALIZED_SENSITIVE_KEYS.has(_normalizeKey(key));
178
+ }
179
+ function _luhnValid(digits) {
180
+ const s = digits.replace(/[^\d]/g, "");
181
+ if (s.length < 12 || s.length > 19) return false;
182
+ let sum = 0;
183
+ let alt = false;
184
+ for (let i = s.length - 1; i >= 0; i--) {
185
+ let d = s.charCodeAt(i) - 48;
186
+ if (alt) {
187
+ d *= 2;
188
+ if (d > 9) d -= 9;
189
+ }
190
+ sum += d;
191
+ alt = !alt;
192
+ }
193
+ return sum % 10 === 0;
194
+ }
195
+ function _scrubSecretsInString(value) {
196
+ if (value.length > MAX_STRING_SCRUB_CHARS) {
197
+ value = value.slice(0, MAX_STRING_SCRUB_CHARS);
198
+ }
199
+ let out = value;
200
+ try {
201
+ for (const {
202
+ pattern,
203
+ luhn
204
+ } of VALUE_SCRUB_PATTERNS) {
205
+ pattern.lastIndex = 0;
206
+ out = out.replace(pattern, (m) => luhn && !_luhnValid(m) ? m : REDACTED);
207
+ }
208
+ } catch {
209
+ }
210
+ return out;
211
+ }
173
212
  function redactBody(body, maxDepth = 10) {
174
213
  try {
175
214
  return _redactValue(body, 0, maxDepth);
@@ -181,7 +220,7 @@ function _redactValue(value, depth, maxDepth) {
181
220
  if (depth > maxDepth) return "[MAX_DEPTH]";
182
221
  if (value === null || value === void 0) return value;
183
222
  if (typeof value === "string") {
184
- return value;
223
+ return _redactString(value, depth, maxDepth);
185
224
  }
186
225
  if (Array.isArray(value)) {
187
226
  return value.map((item) => _redactValue(item, depth + 1, maxDepth));
@@ -189,7 +228,7 @@ function _redactValue(value, depth, maxDepth) {
189
228
  if (typeof value === "object") {
190
229
  const result = {};
191
230
  for (const [key, val] of Object.entries(value)) {
192
- if (SENSITIVE_BODY_KEYS.has(key) || SENSITIVE_BODY_KEYS.has(key.toLowerCase())) {
231
+ if (_isSensitiveKey(key)) {
193
232
  result[key] = REDACTED;
194
233
  } else {
195
234
  result[key] = _redactValue(val, depth + 1, maxDepth);
@@ -199,52 +238,103 @@ function _redactValue(value, depth, maxDepth) {
199
238
  }
200
239
  return value;
201
240
  }
202
- function scanForPII(text2, location = "unknown") {
203
- const warnings = [];
241
+ function _redactString(value, depth, maxDepth) {
242
+ const trimmed = value.trimStart();
243
+ if (trimmed.startsWith("{") || trimmed.startsWith("[")) {
244
+ try {
245
+ const parsed = JSON.parse(value);
246
+ if (parsed !== null && typeof parsed === "object") {
247
+ const redacted = _redactValue(parsed, depth + 1, maxDepth);
248
+ return JSON.stringify(redacted);
249
+ }
250
+ } catch {
251
+ }
252
+ }
253
+ return _scrubSecretsInString(value);
254
+ }
255
+ function _newScanContext() {
256
+ return {
257
+ warnings: [],
258
+ byType: {},
259
+ deadline: Date.now() + SCAN_TIME_BUDGET_MS,
260
+ truncated: false,
261
+ total: 0
262
+ };
263
+ }
264
+ function _pushWarning(ctx, type, rawMatch, location) {
265
+ ctx.total += 1;
266
+ ctx.byType[type] = (ctx.byType[type] ?? 0) + 1;
267
+ if (ctx.warnings.length < MAX_PII_WARNINGS) {
268
+ ctx.warnings.push({
269
+ type,
270
+ match: _maskPII(rawMatch),
271
+ location
272
+ });
273
+ } else {
274
+ ctx.truncated = true;
275
+ }
276
+ }
277
+ function _finalizeScan(ctx) {
278
+ if (ctx.truncated) {
279
+ ctx.warnings.push({
280
+ type: "_summary",
281
+ match: `truncated: ${ctx.total} matches`,
282
+ location: `counts:${JSON.stringify(ctx.byType)}`
283
+ });
284
+ }
285
+ return ctx.warnings;
286
+ }
287
+ function _scanTextInto(text2, location, ctx) {
288
+ const input = text2.length > MAX_SCAN_INPUT_CHARS ? text2.slice(0, MAX_SCAN_INPUT_CHARS) : text2;
204
289
  try {
205
290
  for (const {
206
291
  name,
207
292
  pattern
208
293
  } of PII_PATTERNS) {
209
294
  pattern.lastIndex = 0;
210
- let match = pattern.exec(text2);
295
+ let match = pattern.exec(input);
211
296
  while (match) {
212
- warnings.push({
213
- type: name,
214
- match: _maskPII(match[0]),
215
- location
216
- });
217
- match = pattern.exec(text2);
297
+ _pushWarning(ctx, name, match[0], location);
298
+ if (Date.now() > ctx.deadline) {
299
+ ctx.truncated = true;
300
+ return;
301
+ }
302
+ if (pattern.lastIndex === match.index) pattern.lastIndex++;
303
+ match = pattern.exec(input);
218
304
  }
219
305
  }
220
306
  } catch {
221
307
  }
222
- return warnings;
223
308
  }
224
309
  function scanObjectForPII(obj, basePath = "", maxDepth = 10) {
225
- const warnings = [];
310
+ const ctx = _newScanContext();
226
311
  try {
227
- _scanObject(obj, basePath, 0, maxDepth, warnings);
312
+ _scanObjectInto(obj, basePath, 0, maxDepth, ctx);
228
313
  } catch {
229
314
  }
230
- return warnings;
315
+ return _finalizeScan(ctx);
231
316
  }
232
- function _scanObject(value, path, depth, maxDepth, warnings) {
317
+ function _scanObjectInto(value, path, depth, maxDepth, ctx) {
233
318
  if (depth > maxDepth || value === null || value === void 0) return;
319
+ if (ctx.truncated || Date.now() > ctx.deadline) {
320
+ ctx.truncated = true;
321
+ return;
322
+ }
234
323
  if (typeof value === "string") {
235
- const found = scanForPII(value, path);
236
- warnings.push(...found);
324
+ _scanTextInto(value, path, ctx);
237
325
  return;
238
326
  }
239
327
  if (Array.isArray(value)) {
240
- value.forEach((item, i) => {
241
- _scanObject(item, `${path}[${i}]`, depth + 1, maxDepth, warnings);
242
- });
328
+ for (let i = 0; i < value.length; i++) {
329
+ if (ctx.truncated) return;
330
+ _scanObjectInto(value[i], `${path}[${i}]`, depth + 1, maxDepth, ctx);
331
+ }
243
332
  return;
244
333
  }
245
334
  if (typeof value === "object") {
246
335
  for (const [key, val] of Object.entries(value)) {
247
- _scanObject(val, path ? `${path}.${key}` : key, depth + 1, maxDepth, warnings);
336
+ if (ctx.truncated) return;
337
+ _scanObjectInto(val, path ? `${path}.${key}` : key, depth + 1, maxDepth, ctx);
248
338
  }
249
339
  }
250
340
  }
@@ -267,16 +357,17 @@ function redactUrl(url) {
267
357
  }
268
358
  }
269
359
  function redactNetworkEvent(event) {
270
- const piiWarnings = [];
360
+ const ctx = _newScanContext();
271
361
  if (event.url) {
272
- piiWarnings.push(...scanForPII(event.url, "url"));
362
+ _scanTextInto(event.url, "url", ctx);
273
363
  }
274
364
  if (event.requestBody) {
275
- piiWarnings.push(...scanObjectForPII(event.requestBody, "requestBody"));
365
+ _scanObjectInto(event.requestBody, "requestBody", 0, 10, ctx);
276
366
  }
277
367
  if (event.responseBody) {
278
- piiWarnings.push(...scanObjectForPII(event.responseBody, "responseBody"));
368
+ _scanObjectInto(event.responseBody, "responseBody", 0, 10, ctx);
279
369
  }
370
+ const piiWarnings = _finalizeScan(ctx);
280
371
  return {
281
372
  url: event.url ? redactUrl(event.url) : "",
282
373
  method: event.method ?? "GET",
@@ -289,29 +380,54 @@ function redactNetworkEvent(event) {
289
380
  piiWarnings
290
381
  };
291
382
  }
292
- var REDACTED, SENSITIVE_HEADERS, PII_PATTERNS, SENSITIVE_BODY_KEYS;
383
+ 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;
293
384
  var init_redaction = __esm({
294
385
  "lib/module/debug/redaction.js"() {
295
386
  "use strict";
296
387
  REDACTED = "[REDACTED]";
388
+ MAX_SCAN_INPUT_CHARS = 16 * 1024;
389
+ SCAN_TIME_BUDGET_MS = 10;
390
+ MAX_PII_WARNINGS = 20;
391
+ MAX_STRING_SCRUB_CHARS = 64 * 1024;
297
392
  SENSITIVE_HEADERS = /* @__PURE__ */ new Set(["authorization", "cookie", "set-cookie", "x-api-key", "x-auth-token", "proxy-authorization"]);
298
393
  PII_PATTERNS = [{
299
394
  name: "email",
300
- pattern: /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g
395
+ 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
301
396
  }, {
302
397
  name: "phone",
303
- pattern: /(?:\+?\d{1,3}[-.\s]?)?\(?\d{2,4}\)?[-.\s]?\d{3,4}[-.\s]?\d{3,4}/g
398
+ pattern: /\+?\d{1,3}[-.\s]?\(?\d{2,4}\)?[-.\s]?\d{3,4}[-.\s]?\d{3,4}/g
304
399
  }, {
305
400
  name: "ssn",
306
401
  pattern: /\b\d{3}-\d{2}-\d{4}\b/g
307
402
  }, {
308
403
  name: "credit_card",
309
404
  pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b/g
405
+ }, {
406
+ name: "iban",
407
+ pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g
408
+ }, {
409
+ name: "jwt",
410
+ pattern: /\beyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\b/g
310
411
  }, {
311
412
  name: "ip_address",
312
413
  pattern: /\b(?:\d{1,3}\.){3}\d{1,3}\b/g
313
414
  }];
314
- 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"]);
415
+ VALUE_SCRUB_PATTERNS = [{
416
+ name: "jwt",
417
+ pattern: /eyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}/g
418
+ }, {
419
+ name: "email",
420
+ 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
421
+ }, {
422
+ name: "iban",
423
+ pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g
424
+ }, {
425
+ name: "credit_card",
426
+ pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{2,7}\b/g,
427
+ luhn: true
428
+ }];
429
+ 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"]);
430
+ NORMALIZED_SENSITIVE_KEYS = new Set(Array.from(SENSITIVE_BODY_KEYS, _normalizeKey));
315
431
  }
316
432
  });
317
433
 
@@ -489,7 +605,7 @@ var SDK_VERSION;
489
605
  var init_version = __esm({
490
606
  "lib/module/core/constants/version.js"() {
491
607
  "use strict";
492
- SDK_VERSION = "1.10.4";
608
+ SDK_VERSION = "1.10.6";
493
609
  }
494
610
  });
495
611
 
@@ -531,6 +647,15 @@ function staticDeviceContext() {
531
647
  if (c.Model) out.device_model = String(c.Model);
532
648
  if (c.Manufacturer) out.manufacturer = String(c.Manufacturer);
533
649
  else if (c.Brand) out.manufacturer = String(c.Brand);
650
+ else if (out.platform_os === "ios") out.manufacturer = "Apple";
651
+ return out;
652
+ }
653
+ function nativeDeviceContext(info) {
654
+ const out = {};
655
+ if (!info) return out;
656
+ if (info.osVersion) out.os_version = info.osVersion;
657
+ if (info.deviceModel) out.device_model = info.deviceModel;
658
+ if (info.manufacturer) out.manufacturer = info.manufacturer;
534
659
  return out;
535
660
  }
536
661
  function mergeDeviceContext(configured, detected = staticDeviceContext()) {
@@ -3336,12 +3461,22 @@ var init_AutoScreenDetector = __esm({
3336
3461
  _manualScreen = null;
3337
3462
  _manualScreenTs = 0;
3338
3463
  _autoScreen = null;
3464
+ /** `name#key` of the last auto-detected screen VISIT — see _extractActiveVisit. */
3465
+ _autoVisitSig = null;
3339
3466
  _navigationRef = null;
3340
3467
  _navListenerRemover = null;
3341
3468
  _navListenerWired = false;
3342
3469
  _heuristicTimer = null;
3343
3470
  _started = false;
3344
3471
  _lastEmittedScreen = null;
3472
+ _lastEmittedTs = 0;
3473
+ /**
3474
+ * Cross-source emit dedup window — see _emitScreenChange. Long enough to absorb the manual
3475
+ * beacon and the navRef listener both reporting the SAME transition (they land within the
3476
+ * 30ms nav debounce plus a render), short enough that a genuine re-visit of the same route
3477
+ * a moment later is a new screen view rather than silence.
3478
+ */
3479
+ static EMIT_DEDUP_WINDOW_MS = 800;
3345
3480
  _navDebounceTimer = null;
3346
3481
  /** Whether the React Navigation exports were actually replaced — see _autoHookReactNavigation. */
3347
3482
  _autoHookInstalled = false;
@@ -3393,6 +3528,7 @@ var init_AutoScreenDetector = __esm({
3393
3528
  if (this.isManualScreenActive()) return;
3394
3529
  if (name !== this._autoScreen) {
3395
3530
  this._autoScreen = name;
3531
+ this._autoVisitSig = name;
3396
3532
  this._emitScreenChange(name, "heuristic");
3397
3533
  }
3398
3534
  } catch {
@@ -3443,10 +3579,11 @@ var init_AutoScreenDetector = __esm({
3443
3579
  try {
3444
3580
  const state = typeof container.getRootState === "function" ? container.getRootState() : null;
3445
3581
  if (state) {
3446
- const screen = this._extractActiveRoute(state);
3447
- if (screen && screen !== this._autoScreen) {
3448
- this._autoScreen = screen;
3449
- this._emitScreenChange(screen, "navRef");
3582
+ const visit = this._extractActiveVisit(state);
3583
+ if (visit && this._visitSig(visit) !== this._autoVisitSig) {
3584
+ this._autoScreen = visit.name;
3585
+ this._autoVisitSig = this._visitSig(visit);
3586
+ this._emitScreenChange(visit.name, "navRef");
3450
3587
  }
3451
3588
  }
3452
3589
  } catch {
@@ -3460,10 +3597,11 @@ var init_AutoScreenDetector = __esm({
3460
3597
  if (typeof container.getRootState === "function") {
3461
3598
  const state = container.getRootState();
3462
3599
  if (state) {
3463
- const screen = this._extractActiveRoute(state);
3464
- if (screen) {
3465
- this._autoScreen = screen;
3466
- this._emitScreenChange(screen, "navRef");
3600
+ const visit = this._extractActiveVisit(state);
3601
+ if (visit) {
3602
+ this._autoScreen = visit.name;
3603
+ this._autoVisitSig = this._visitSig(visit);
3604
+ this._emitScreenChange(visit.name, "navRef");
3467
3605
  }
3468
3606
  }
3469
3607
  }
@@ -3489,10 +3627,11 @@ var init_AutoScreenDetector = __esm({
3489
3627
  if (navContainer) {
3490
3628
  const state = typeof navContainer.getRootState === "function" ? navContainer.getRootState() : null;
3491
3629
  if (state) {
3492
- const screen = this._extractActiveRoute(state);
3493
- if (screen && screen !== this._autoScreen) {
3494
- this._autoScreen = screen;
3495
- this._emitScreenChange(screen, "heuristic");
3630
+ const visit = this._extractActiveVisit(state);
3631
+ if (visit && this._visitSig(visit) !== this._autoVisitSig) {
3632
+ this._autoScreen = visit.name;
3633
+ this._autoVisitSig = this._visitSig(visit);
3634
+ this._emitScreenChange(visit.name, "heuristic");
3496
3635
  }
3497
3636
  }
3498
3637
  }
@@ -3524,19 +3663,43 @@ var init_AutoScreenDetector = __esm({
3524
3663
  * Handles nested navigators by walking to the deepest active route.
3525
3664
  */
3526
3665
  _extractActiveRoute(state) {
3666
+ return this._extractActiveVisit(state)?.name ?? null;
3667
+ }
3668
+ /**
3669
+ * Extract the active route's name AND its React Navigation route `key`.
3670
+ *
3671
+ * The key is what makes re-VISITS detectable. Comparing names alone collapses two
3672
+ * different visits to the same route into one screen view: leave Details, open Details
3673
+ * again, and `name === _autoScreen` swallowed the second visit entirely (QA: "opened the
3674
+ * same route again and no screen event was recorded"). React Navigation mints a fresh
3675
+ * `key` for every pushed route instance, so a re-push of the same name is a NEW key —
3676
+ * name+key comparison records each visit while a mere re-render of the same instance
3677
+ * (same key) still emits nothing. States without keys degrade to name-only, i.e. the
3678
+ * old behaviour, never worse.
3679
+ */
3680
+ _extractActiveVisit(state) {
3527
3681
  try {
3528
3682
  if (!state?.routes || typeof state.index !== "number") return null;
3529
3683
  const activeRoute = state.routes[state.index];
3530
3684
  if (!activeRoute) return null;
3531
3685
  if (activeRoute.state?.routes && typeof activeRoute.state.index === "number") {
3532
- const nested = this._extractActiveRoute(activeRoute.state);
3686
+ const nested = this._extractActiveVisit(activeRoute.state);
3533
3687
  if (nested) return nested;
3534
3688
  }
3535
- return activeRoute.name || null;
3689
+ if (!activeRoute.name) return null;
3690
+ const rawKey = activeRoute.key;
3691
+ return {
3692
+ name: activeRoute.name,
3693
+ key: typeof rawKey === "string" ? rawKey : null
3694
+ };
3536
3695
  } catch {
3537
3696
  return null;
3538
3697
  }
3539
3698
  }
3699
+ /** `name#key` signature of one screen VISIT — what the auto paths dedup on. */
3700
+ _visitSig(visit) {
3701
+ return visit.key ? `${visit.name}#${visit.key}` : visit.name;
3702
+ }
3540
3703
  // ─── Lifecycle ──────────────────────────────────────────────────────
3541
3704
  /** Start auto-detection (idempotent) */
3542
3705
  start() {
@@ -3701,8 +3864,10 @@ var init_AutoScreenDetector = __esm({
3701
3864
  // ─── Internal ───────────────────────────────────────────────────────
3702
3865
  _emitScreenChange(name, source) {
3703
3866
  try {
3704
- if (name === this._lastEmittedScreen) return;
3867
+ const emitNow = Date.now();
3868
+ if (name === this._lastEmittedScreen && emitNow - this._lastEmittedTs < _AutoScreenDetector.EMIT_DEDUP_WINDOW_MS) return;
3705
3869
  this._lastEmittedScreen = name;
3870
+ this._lastEmittedTs = emitNow;
3706
3871
  for (const cb of this._listeners) {
3707
3872
  try {
3708
3873
  cb(name, source);
@@ -5587,6 +5752,21 @@ var init_SessionManager = __esm({
5587
5752
  * differently across devices and pushes markers ~10% off vertically).
5588
5753
  */
5589
5754
  _lastNativeViewportJsUnits = null;
5755
+ /**
5756
+ * Exact-duplicate gesture suppression (QA: one physical tap recorded 2–3×).
5757
+ *
5758
+ * Measured in production data: the native tracker re-emitted the SAME tap — identical
5759
+ * gestureType and identical coordinates to the SUB-PIXEL (e.g. x=466.962890625) — at
5760
+ * 160–240ms gaps, sometimes twice. A human re-tap cannot reproduce a sub-pixel float
5761
+ * exactly, so exact coordinate equality within the window is a safe discriminator: real
5762
+ * double-taps land on at least slightly different pixels and pass through untouched.
5763
+ * The pipeline's own 100ms dedup was too narrow for these; this window covers what was
5764
+ * actually observed with margin. Sits at the ONE entry point every gesture source funnels
5765
+ * through, so recording and analytics lanes are protected equally.
5766
+ */
5767
+ _lastGestureSig = null;
5768
+ _lastGestureTs = 0;
5769
+ static GESTURE_DEDUP_WINDOW_MS = 400;
5590
5770
  /** Memoized native file-outbox frame adapter (gated by the backend transport). */
5591
5771
  _outboxFrameCapture = null;
5592
5772
  constructor(debugTransport, nativeCapture2, managerConfig) {
@@ -6235,6 +6415,14 @@ var init_SessionManager = __esm({
6235
6415
  * Emits a USER_ACTION event with gesture-specific subtype and payload.
6236
6416
  */
6237
6417
  onGestureDetected(gestureType, details) {
6418
+ const dedupSig = `${gestureType}|${String(details?.x)}|${String(details?.y)}|${String(details?.endX)}|${String(details?.endY)}`;
6419
+ const nowTs = Date.now();
6420
+ if (dedupSig === this._lastGestureSig && nowTs - this._lastGestureTs <= _SessionManager.GESTURE_DEDUP_WINDOW_MS) {
6421
+ this._lastGestureTs = nowTs;
6422
+ return;
6423
+ }
6424
+ this._lastGestureSig = dedupSig;
6425
+ this._lastGestureTs = nowTs;
6238
6426
  const payload = {
6239
6427
  gestureType,
6240
6428
  x: details?.x,
@@ -11053,6 +11241,27 @@ var init_EventTracker = __esm({
11053
11241
  }
11054
11242
  this.persistQueue();
11055
11243
  }
11244
+ /**
11245
+ * Fold in device facts that were not knowable at init.
11246
+ *
11247
+ * `Platform.constants` answers Android synchronously, so its model and manufacturer ride the
11248
+ * very first event. iOS exposes neither there — only the native bridge knows, and the bridge is
11249
+ * async and may not be installed at all. Without this the iOS half of every install reported no
11250
+ * model whatsoever.
11251
+ *
11252
+ * `buildEnvelope` reads `cfg.context` per event, so applying it here reaches every event from
11253
+ * the next one onward. Detected keys WIN over whatever the integrator configured, for the same
11254
+ * reason `mergeDeviceContext` inverts the usual precedence: a measurement must not be
11255
+ * overridable by a guess. Empty patches are ignored so a bridge that answered with nothing
11256
+ * cannot blank a value the static path already found.
11257
+ */
11258
+ applyDetectedContext(patch) {
11259
+ if (!patch || Object.keys(patch).length === 0) return;
11260
+ this.cfg.context = {
11261
+ ...this.cfg.context ?? {},
11262
+ ...patch
11263
+ };
11264
+ }
11056
11265
  // ─── internals ─────────────────────────────────────────────────────────────
11057
11266
  buildEnvelope(eventName, properties) {
11058
11267
  const ctx = this.cfg.context ?? {};
@@ -14145,6 +14354,35 @@ var SHAPE = {
14145
14354
  })
14146
14355
  }
14147
14356
  },
14357
+ // SB-10: the public, documented top-level privacy config. Previously only the
14358
+ // nested replay privacy took effect; this is validated here and mapped onto the
14359
+ // effective replay privacy policy in the bootstrapper so it actually masks.
14360
+ privacy: {
14361
+ kind: "obj",
14362
+ opt: true,
14363
+ shape: {
14364
+ maskTextInputs: {
14365
+ kind: "bool",
14366
+ opt: true
14367
+ },
14368
+ maskImages: {
14369
+ kind: "bool",
14370
+ opt: true
14371
+ },
14372
+ redactAuth: {
14373
+ kind: "bool",
14374
+ opt: true
14375
+ },
14376
+ redactCookies: {
14377
+ kind: "bool",
14378
+ opt: true
14379
+ },
14380
+ redactBodies: {
14381
+ kind: "bool",
14382
+ opt: true
14383
+ }
14384
+ }
14385
+ },
14148
14386
  captureInteractionHeatmap: bool(true),
14149
14387
  // Opt-in: intercept console.* and ship the lines to the Diagnose → Logs lane in SaaS
14150
14388
  // mode. OFF by default — console output can carry PII/secrets and adds ingest volume,
@@ -15498,6 +15736,13 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
15498
15736
  // the flush timer retries, so nothing is lost to a start/child race. The durable native
15499
15737
  // outbox path has its own ordering; this guards only the JS in-memory fallback.
15500
15738
  _startedSessionIds = /* @__PURE__ */ new Set();
15739
+ // §11 offline-start recovery: INGESTION_START payloads whose POST failed (e.g. the app
15740
+ // launched with no connectivity). Without this, a failed START was logged and forgotten —
15741
+ // the row-ready gate never opened, every child lane re-buffered forever, and the session
15742
+ // stayed stuck until an app restart even after the network returned. Each flush tick
15743
+ // re-attempts these until acked (network errors keep retrying; permanent 4xx gives up).
15744
+ _pendingStartPayloads = /* @__PURE__ */ new Map();
15745
+ _startRetryInFlight = false;
15501
15746
  pendingFrames = [];
15502
15747
  pendingEvents = [];
15503
15748
  pendingNetworkRequests = [];
@@ -15621,10 +15866,16 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
15621
15866
  }
15622
15867
  };
15623
15868
  __DEV__ && logger.debug(`[BackendSessionAdapter] POST session start: ${session.sessionId}`);
15624
- return this._post(startEndpoint, payload);
15625
- }).then(() => {
15626
- this._startedSessionIds.add(session.sessionId);
15627
- __DEV__ && logger.info(`[ScaleBun Replay] backend session upload success`);
15869
+ return this._post(startEndpoint, payload).then(() => {
15870
+ this._startedSessionIds.add(session.sessionId);
15871
+ this._pendingStartPayloads.delete(session.sessionId);
15872
+ __DEV__ && logger.info(`[ScaleBun Replay] backend session upload success`);
15873
+ }, (err) => {
15874
+ if (!_BackendSessionAdapter._isPermanentHttpError(err)) {
15875
+ this._pendingStartPayloads.set(session.sessionId, payload);
15876
+ }
15877
+ logger.info(`[ScaleBun Replay] backend session upload failure`);
15878
+ });
15628
15879
  }).catch(() => logger.info(`[ScaleBun Replay] backend session upload failure`));
15629
15880
  }
15630
15881
  sendSessionEnd(session) {
@@ -15697,8 +15948,16 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
15697
15948
  environment: m?.buildType
15698
15949
  }
15699
15950
  };
15700
- await this._post(startEndpoint, payload);
15951
+ try {
15952
+ await this._post(startEndpoint, payload);
15953
+ } catch (err) {
15954
+ if (!_BackendSessionAdapter._isPermanentHttpError(err)) {
15955
+ this._pendingStartPayloads.set(session.sessionId, payload);
15956
+ }
15957
+ throw err;
15958
+ }
15701
15959
  this._startedSessionIds.add(session.sessionId);
15960
+ this._pendingStartPayloads.delete(session.sessionId);
15702
15961
  this._flushAnalyticsEvents().catch(() => {
15703
15962
  });
15704
15963
  __DEV__ && logger.info(`[ScaleBun Analytics] session start upload success: ${session.sessionId}`);
@@ -15706,6 +15965,40 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
15706
15965
  __DEV__ && logger.info(`[ScaleBun Analytics] session start upload failure`);
15707
15966
  }
15708
15967
  }
15968
+ /**
15969
+ * Re-attempt any INGESTION_START whose POST failed (offline app launch). Runs on every
15970
+ * flush tick of BOTH lanes — cheap no-op when the map is empty, single-flight guarded.
15971
+ * On ack: opens the row-ready gate and drains whichever lane the id belongs to, which is
15972
+ * exactly what un-sticks a replay that started offline once connectivity returns.
15973
+ */
15974
+ _retryPendingStarts() {
15975
+ if (this.destroyed || this._startRetryInFlight || this._pendingStartPayloads.size === 0) return;
15976
+ const entry = this._pendingStartPayloads.entries().next().value;
15977
+ if (!entry) return;
15978
+ const [sessionId, payload] = entry;
15979
+ const stillRelevant = sessionId === this.currentSessionId || sessionId === this._analyticsSessionId;
15980
+ if (!stillRelevant) {
15981
+ this._pendingStartPayloads.delete(sessionId);
15982
+ return;
15983
+ }
15984
+ this._startRetryInFlight = true;
15985
+ const startEndpoint = this.config.clientKey ? ENDPOINTS.INGESTION_START : "/replay/sessions";
15986
+ this._post(startEndpoint, payload).then(() => {
15987
+ this._startedSessionIds.add(sessionId);
15988
+ this._pendingStartPayloads.delete(sessionId);
15989
+ __DEV__ && logger.info(`[ScaleBun Replay] deferred session start delivered: ${sessionId}`);
15990
+ if (sessionId === this._analyticsSessionId) {
15991
+ this._flushAnalyticsEvents().catch(() => {
15992
+ });
15993
+ }
15994
+ }).catch((err) => {
15995
+ if (_BackendSessionAdapter._isPermanentHttpError(err)) {
15996
+ this._pendingStartPayloads.delete(sessionId);
15997
+ }
15998
+ }).finally(() => {
15999
+ this._startRetryInFlight = false;
16000
+ });
16001
+ }
15709
16002
  /**
15710
16003
  * Enqueue a user track() event. Buffers (bounded, drop-oldest) when the
15711
16004
  * analytics session is not yet open; flushes at >=20 once it is.
@@ -15820,6 +16113,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
15820
16113
  _startAnalyticsFlushTimer() {
15821
16114
  this._stopAnalyticsFlushTimer();
15822
16115
  this.analyticsFlushTimer = setInterval(() => {
16116
+ this._retryPendingStarts();
15823
16117
  this._flushAnalyticsEvents().catch(() => {
15824
16118
  });
15825
16119
  }, this.config.flushIntervalMs);
@@ -16046,6 +16340,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
16046
16340
  this._analyticsSessionId = null;
16047
16341
  this._pendingFinalizeId = null;
16048
16342
  this._startedSessionIds.clear();
16343
+ this._pendingStartPayloads.clear();
16049
16344
  }
16050
16345
  // ─── Internal: Flush ────────────────────────────────────────────────
16051
16346
  /** Wire metadata for a frame — real format/sizeBytes from native (no hardcoded literals). */
@@ -16564,6 +16859,7 @@ var BackendSessionAdapter = class _BackendSessionAdapter {
16564
16859
  _startFlushTimer() {
16565
16860
  this._stopFlushTimer();
16566
16861
  this.flushTimer = setInterval(() => {
16862
+ this._retryPendingStarts();
16567
16863
  this._flushFrames().catch(() => {
16568
16864
  });
16569
16865
  this._flushEvents().catch(() => {
@@ -16894,6 +17190,18 @@ var SDKBootstrapper = class {
16894
17190
  if (features.replay !== false) {
16895
17191
  try {
16896
17192
  __DEV__ && logger.debug("[Bootstrap] Initializing unified SessionManager");
17193
+ const pub = this.config.privacy ?? {};
17194
+ const sessionReplay = {
17195
+ ...this.config.replay ?? {}
17196
+ };
17197
+ if (typeof pub.maskTextInputs === "boolean" || typeof pub.maskImages === "boolean") {
17198
+ sessionReplay.privacyPolicy = {
17199
+ redactTextInputs: pub.maskTextInputs ?? true,
17200
+ redactImages: pub.maskImages ?? false,
17201
+ blockTestIds: [],
17202
+ captureExclusions: []
17203
+ };
17204
+ }
16897
17205
  const sessionManager = SessionManager.getInstance(
16898
17206
  null,
16899
17207
  // No desktop transport initially
@@ -16904,9 +17212,7 @@ var SDKBootstrapper = class {
16904
17212
  // Also flow the Feature #4 heatmap flag so tap/gesture coords
16905
17213
  // route to the analytics lane even when no recording is active.
16906
17214
  {
16907
- ...this.config.replay ? {
16908
- sessionReplay: this.config.replay
16909
- } : {},
17215
+ sessionReplay,
16910
17216
  captureInteractionHeatmap: this.config.captureInteractionHeatmap === true
16911
17217
  }
16912
17218
  );
@@ -17132,6 +17438,7 @@ var SDKBootstrapper = class {
17132
17438
 
17133
17439
  // lib/module/public/ScaleBunFacade.js
17134
17440
  init_EventTracker();
17441
+ init_bridgeAdapter();
17135
17442
  init_automaticEvents();
17136
17443
 
17137
17444
  // lib/module/analytics/eventLane.js
@@ -19649,6 +19956,8 @@ var ScaleBunFacade = class {
19649
19956
  * the whole time. The SDK knows the device; the integrator is guessing at it.
19650
19957
  * Everything outside the detected keys is still theirs.
19651
19958
  */
19959
+ // Everything Platform.constants knows. On iOS that is neither the model nor the
19960
+ // manufacturer, so the bridge completes it below once it answers.
19652
19961
  context: mergeDeviceContext(rawConfig?.context),
19653
19962
  // Use the same foreground id as replay/journey capture. The
19654
19963
  // callback is resolved per event because the session subsystem
@@ -19662,6 +19971,7 @@ var ScaleBunFacade = class {
19662
19971
  });
19663
19972
  this._eventTracker.start();
19664
19973
  __DEV__ && logger.info("[ScaleBun] Envelope event tracking started \u2192 /v1/batch.");
19974
+ this._applyNativeDeviceContext(this._eventTracker);
19665
19975
  this._captureInstallReferrer(this._eventTracker);
19666
19976
  const tracker = this._eventTracker;
19667
19977
  this._configManager = new ConfigManager({
@@ -19680,6 +19990,25 @@ var ScaleBunFacade = class {
19680
19990
  logger.warn("[ScaleBun] Failed to start envelope event tracking:", err?.message);
19681
19991
  }
19682
19992
  }
19993
+ /**
19994
+ * Fold the native bridge's device facts into the analytics context once it answers.
19995
+ *
19996
+ * Detected values never overwrite a populated one with an empty one — `nativeDeviceContext`
19997
+ * drops absent keys and `applyDetectedContext` ignores an empty patch — so a bridge that
19998
+ * cannot answer leaves whatever `Platform.constants` already found.
19999
+ */
20000
+ _applyNativeDeviceContext(tracker) {
20001
+ Promise.resolve().then(() => bridgeAdapter.getDeviceInfo()).then((info) => {
20002
+ if (!info) return;
20003
+ tracker.applyDetectedContext(nativeDeviceContext({
20004
+ osVersion: info.osVersion,
20005
+ deviceModel: info.deviceModel
20006
+ // iOS ships no manufacturer over the bridge; it is a constant there and the
20007
+ // static path already set it. Android's arrives via Platform.constants.
20008
+ }));
20009
+ }).catch(() => {
20010
+ });
20011
+ }
19683
20012
  /**
19684
20013
  * Android-only: read the Play Install Referrer once per install and route it into
19685
20014
  * attribution. `scalebun_click_id` → the deterministic click path; the full
@@ -19863,16 +20192,90 @@ var ScaleBunFacade = class {
19863
20192
  });
19864
20193
  });
19865
20194
  }
19866
- /** Clear user identity */
19867
- clearUser() {
20195
+ /**
20196
+ * Clear user identity.
20197
+ *
20198
+ * SB-11: pass `{ purgeLocal: true }` on logout / consent withdrawal to also
20199
+ * erase all locally-stored SDK data (see {@link eraseLocalData}). Without it,
20200
+ * behaviour is unchanged (identity-only clear).
20201
+ */
20202
+ clearUser(options) {
19868
20203
  return noThrow(() => {
19869
20204
  this._identifiedUserId = null;
19870
20205
  this._pendingIdentity = null;
19871
20206
  if (!this.initialized) return;
19872
20207
  this._eventTracker?.clearIdentity();
19873
20208
  this.track("$clear_user", {});
20209
+ if (options?.purgeLocal) void this.eraseLocalData();
20210
+ });
20211
+ }
20212
+ /**
20213
+ * SB-11: erase all locally-stored SDK data from the device — the durable event
20214
+ * queue, the pre-init buffer, and the first-party KV store (cached install /
20215
+ * anonymous / session IDs, plus any queued payloads including SB-26 disk data).
20216
+ *
20217
+ * Order matters: capture is stopped FIRST so nothing is written back in behind
20218
+ * the delete. Best-effort and never throws.
20219
+ *
20220
+ * Note: native replay frames written to disk on iOS are addressed separately
20221
+ * (SB-15); this covers every store reachable from JS today.
20222
+ */
20223
+ async eraseLocalData() {
20224
+ try {
20225
+ try {
20226
+ SessionManager.getExistingInstance()?.endSession("ended");
20227
+ } catch {
20228
+ }
20229
+ try {
20230
+ this._getQueue().clear();
20231
+ } catch {
20232
+ }
20233
+ try {
20234
+ this._preInitBuffer.clear();
20235
+ } catch {
20236
+ }
20237
+ try {
20238
+ const store = createStorageBackend();
20239
+ for (const key of store.getAllKeys()) {
20240
+ store.delete(key);
20241
+ }
20242
+ } catch {
20243
+ }
20244
+ } catch {
20245
+ }
20246
+ }
20247
+ /**
20248
+ * SB-11: record the user's data-collection consent. When `enabled` is false,
20249
+ * capture is stopped immediately; pass `{ purgeLocal: true }` to also erase
20250
+ * everything already stored locally. Never throws.
20251
+ */
20252
+ setConsent(enabled, options) {
20253
+ noThrow(() => {
20254
+ if (enabled) return;
20255
+ try {
20256
+ SessionManager.getExistingInstance()?.endSession("ended");
20257
+ } catch {
20258
+ }
20259
+ if (options?.purgeLocal) void this.eraseLocalData();
19874
20260
  });
19875
20261
  }
20262
+ /**
20263
+ * SB-10: return the effective privacy policy actually in force, resolving the
20264
+ * public config against the SDK's safe defaults. Lets callers and tests assert
20265
+ * what is active rather than guessing from the (previously dead) config object.
20266
+ */
20267
+ getEffectivePrivacyPolicy() {
20268
+ const p = this._privacyConfig ?? {};
20269
+ return {
20270
+ // Real default is true (matches the replay capture default) — the old
20271
+ // doc comment claiming "false" was both wrong and less safe.
20272
+ maskTextInputs: p.maskTextInputs ?? true,
20273
+ maskImages: p.maskImages ?? false,
20274
+ redactAuth: p.redactAuth ?? true,
20275
+ redactCookies: p.redactCookies ?? true,
20276
+ redactBodies: p.redactBodies ?? false
20277
+ };
20278
+ }
19876
20279
  /**
19877
20280
  * Submit in-app rating (1-5 stars).
19878
20281
  * Attaches to current session when available; otherwise sends standalone.
@@ -32953,7 +33356,7 @@ function ScaleBunDebugRoot({
32953
33356
  }
32954
33357
  } catch {
32955
33358
  }
32956
- }, 200);
33359
+ }, 600);
32957
33360
  }
32958
33361
  touchStartRef.current = null;
32959
33362
  } catch {