@scalebun/react-native 1.10.4 → 1.10.5

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 (791) hide show
  1. package/android/src/main/java/com/scalebun/replaysdk/tracking/InteractionTracker.kt +19 -0
  2. package/dist/scalebun.full.js +407 -57
  3. package/dist/scalebun.slim.js +404 -62
  4. package/lib/commonjs/bootstrap/SDKBootstrapper.js +17 -3
  5. package/lib/commonjs/core/config/schema.js +29 -0
  6. package/lib/commonjs/core/constants/version.js +1 -1
  7. package/lib/commonjs/debug/redaction.js +227 -41
  8. package/lib/commonjs/features/journey/ScaleBunDebugRoot.js +9 -1
  9. package/lib/commonjs/features/navigation/AutoScreenDetector.js +68 -16
  10. package/lib/commonjs/features/session/BackendSessionAdapter.js +73 -6
  11. package/lib/commonjs/features/session/SessionManager.js +28 -0
  12. package/lib/commonjs/public/ScaleBunFacade.js +79 -2
  13. package/lib/module/bootstrap/SDKBootstrapper.js +17 -3
  14. package/lib/module/core/config/schema.js +29 -0
  15. package/lib/module/core/constants/version.js +1 -1
  16. package/lib/module/debug/redaction.js +227 -41
  17. package/lib/module/features/journey/ScaleBunDebugRoot.js +9 -1
  18. package/lib/module/features/navigation/AutoScreenDetector.js +68 -16
  19. package/lib/module/features/session/BackendSessionAdapter.js +73 -6
  20. package/lib/module/features/session/SessionManager.js +28 -0
  21. package/lib/module/public/ScaleBunFacade.js +79 -2
  22. package/lib/typescript/core/config/schema.d.ts +8 -0
  23. package/lib/typescript/core/constants/version.d.ts +1 -1
  24. package/lib/typescript/debug/redaction.d.ts +8 -2
  25. package/lib/typescript/features/navigation/AutoScreenDetector.d.ts +25 -0
  26. package/lib/typescript/features/session/BackendSessionAdapter.d.ts +9 -0
  27. package/lib/typescript/features/session/SessionManager.d.ts +15 -0
  28. package/lib/typescript/public/ScaleBunFacade.d.ts +36 -2
  29. package/lib/typescript/public/types.d.ts +1 -1
  30. package/package.json +6 -2
  31. package/src/bootstrap/SDKBootstrapper.ts +17 -1
  32. package/src/core/config/schema.ts +22 -0
  33. package/src/core/constants/version.ts +1 -1
  34. package/src/debug/redaction.ts +235 -42
  35. package/src/features/journey/ScaleBunDebugRoot.tsx +9 -1
  36. package/src/features/navigation/AutoScreenDetector.ts +70 -16
  37. package/src/features/session/BackendSessionAdapter.ts +81 -7
  38. package/src/features/session/SessionManager.ts +31 -0
  39. package/src/public/ScaleBunFacade.ts +81 -2
  40. package/src/public/types.ts +1 -1
  41. package/dist/scalebun.full.js.map +0 -1
  42. package/dist/scalebun.slim.js.map +0 -1
  43. package/lib/commonjs/analytics/EventTracker.js.map +0 -1
  44. package/lib/commonjs/analytics/automaticEvents.js.map +0 -1
  45. package/lib/commonjs/analytics/batching.js.map +0 -1
  46. package/lib/commonjs/analytics/eventLane.js.map +0 -1
  47. package/lib/commonjs/bootstrap/FeatureRegistry.js.map +0 -1
  48. package/lib/commonjs/bootstrap/SDKBootstrapper.js.map +0 -1
  49. package/lib/commonjs/bucketing/fnv1a32.js.map +0 -1
  50. package/lib/commonjs/compat/codepush.js.map +0 -1
  51. package/lib/commonjs/config/ConfigManager.js.map +0 -1
  52. package/lib/commonjs/config/configTypes.js.map +0 -1
  53. package/lib/commonjs/core/architecture.js.map +0 -1
  54. package/lib/commonjs/core/clock/now.js.map +0 -1
  55. package/lib/commonjs/core/config/defaults.js.map +0 -1
  56. package/lib/commonjs/core/config/schema.js.map +0 -1
  57. package/lib/commonjs/core/constants/endpoints.js.map +0 -1
  58. package/lib/commonjs/core/constants/protocol.js.map +0 -1
  59. package/lib/commonjs/core/constants/timings.js.map +0 -1
  60. package/lib/commonjs/core/constants/version.js.map +0 -1
  61. package/lib/commonjs/core/context/app.js.map +0 -1
  62. package/lib/commonjs/core/context/device.js.map +0 -1
  63. package/lib/commonjs/core/context/session.js.map +0 -1
  64. package/lib/commonjs/core/context/user.js.map +0 -1
  65. package/lib/commonjs/core/contracts/IFeature.js.map +0 -1
  66. package/lib/commonjs/core/di/container.js.map +0 -1
  67. package/lib/commonjs/core/encoding/base64.js.map +0 -1
  68. package/lib/commonjs/core/id/deviceId.js.map +0 -1
  69. package/lib/commonjs/core/id/installationId.js.map +0 -1
  70. package/lib/commonjs/core/id/sessionId.js.map +0 -1
  71. package/lib/commonjs/core/lifecycle/appLifecycle.js.map +0 -1
  72. package/lib/commonjs/core/lifecycle/crashSafe.js.map +0 -1
  73. package/lib/commonjs/core/logger/errorClassification.js.map +0 -1
  74. package/lib/commonjs/core/logger/internalLogger.js.map +0 -1
  75. package/lib/commonjs/core/logger/levels.js.map +0 -1
  76. package/lib/commonjs/crypto/hmacSha256.js.map +0 -1
  77. package/lib/commonjs/debug/bootstrap.js.map +0 -1
  78. package/lib/commonjs/debug/commands.js.map +0 -1
  79. package/lib/commonjs/debug/configBuilder.js.map +0 -1
  80. package/lib/commonjs/debug/exportBridge.js.map +0 -1
  81. package/lib/commonjs/debug/hostResolver.js.map +0 -1
  82. package/lib/commonjs/debug/index.js.map +0 -1
  83. package/lib/commonjs/debug/metrics.js.map +0 -1
  84. package/lib/commonjs/debug/perf.js.map +0 -1
  85. package/lib/commonjs/debug/perfWiring.js.map +0 -1
  86. package/lib/commonjs/debug/protocol.js.map +0 -1
  87. package/lib/commonjs/debug/redaction.js.map +0 -1
  88. package/lib/commonjs/debug/replayWiring.js.map +0 -1
  89. package/lib/commonjs/debug/screenTracking.js.map +0 -1
  90. package/lib/commonjs/debug/sessionWiring.js.map +0 -1
  91. package/lib/commonjs/debug/stream.js.map +0 -1
  92. package/lib/commonjs/debug/transport.js.map +0 -1
  93. package/lib/commonjs/features/bugreport/BugReportFeature.js.map +0 -1
  94. package/lib/commonjs/features/bugreport/buildPayload.js.map +0 -1
  95. package/lib/commonjs/features/bugreport/index.js.map +0 -1
  96. package/lib/commonjs/features/crash/CrashFeature.js.map +0 -1
  97. package/lib/commonjs/features/crash/CrashReporter.js.map +0 -1
  98. package/lib/commonjs/features/crash/NativeCrashFeature.js.map +0 -1
  99. package/lib/commonjs/features/crash/capture.js.map +0 -1
  100. package/lib/commonjs/features/crash/globalHandler.js.map +0 -1
  101. package/lib/commonjs/features/crash/index.js.map +0 -1
  102. package/lib/commonjs/features/crash/nativeCrashBridge.js.map +0 -1
  103. package/lib/commonjs/features/crash/rejectionHandler.js.map +0 -1
  104. package/lib/commonjs/features/engage/EngageAnchor.js.map +0 -1
  105. package/lib/commonjs/features/engage/EngageArchetypeRenderers.js.map +0 -1
  106. package/lib/commonjs/features/engage/EngageInAppView.js.map +0 -1
  107. package/lib/commonjs/features/engage/EngageInlinePlacement.js.map +0 -1
  108. package/lib/commonjs/features/engage/EngagePromptProvider.js.map +0 -1
  109. package/lib/commonjs/features/engage/EngagePromptView.js.map +0 -1
  110. package/lib/commonjs/features/engage/EngageTransport.js.map +0 -1
  111. package/lib/commonjs/features/engage/EngageVariantContent.js.map +0 -1
  112. package/lib/commonjs/features/engage/__test-support__/reactNativeStub.js.map +0 -1
  113. package/lib/commonjs/features/engage/attachmentCapture.js.map +0 -1
  114. package/lib/commonjs/features/engage/captureVoiceAttachment.js.map +0 -1
  115. package/lib/commonjs/features/engage/engageCoachmarkTour.js.map +0 -1
  116. package/lib/commonjs/features/engage/engageGameLogic.js.map +0 -1
  117. package/lib/commonjs/features/engage/engageMediaSizing.js.map +0 -1
  118. package/lib/commonjs/features/engage/engageMultiStepSheet.js.map +0 -1
  119. package/lib/commonjs/features/engage/engageOutcome.js.map +0 -1
  120. package/lib/commonjs/features/engage/engagePushTokenBridge.js.map +0 -1
  121. package/lib/commonjs/features/engage/engageShakeBridge.js.map +0 -1
  122. package/lib/commonjs/features/engage/engageSignals.js.map +0 -1
  123. package/lib/commonjs/features/engage/engageStoreReviewBridge.js.map +0 -1
  124. package/lib/commonjs/features/engage/engageTestSeenStore.js.map +0 -1
  125. package/lib/commonjs/features/engage/engageThrottle.js.map +0 -1
  126. package/lib/commonjs/features/engage/engageTriggerEngine.js.map +0 -1
  127. package/lib/commonjs/features/engage/engageTypes.js.map +0 -1
  128. package/lib/commonjs/features/engage/engageVariantResolver.js.map +0 -1
  129. package/lib/commonjs/features/engage/engageWindowInsets.js.map +0 -1
  130. package/lib/commonjs/features/engage/gestureTriggerDetector.js.map +0 -1
  131. package/lib/commonjs/features/engage/transcription/TranscriptionProvider.js.map +0 -1
  132. package/lib/commonjs/features/install-referrer/installReferrer.js.map +0 -1
  133. package/lib/commonjs/features/journey/ScaleBunDebugRoot.js.map +0 -1
  134. package/lib/commonjs/features/journey/ScaleBunFlatList.js.map +0 -1
  135. package/lib/commonjs/features/journey/ScaleBunImpression.js.map +0 -1
  136. package/lib/commonjs/features/journey/ScaleBunScrollView.js.map +0 -1
  137. package/lib/commonjs/features/journey/ScaleBunSectionList.js.map +0 -1
  138. package/lib/commonjs/features/journey/calibrationContext.js.map +0 -1
  139. package/lib/commonjs/features/journey/gestureBuffer.js.map +0 -1
  140. package/lib/commonjs/features/journey/gestureDetector.js.map +0 -1
  141. package/lib/commonjs/features/journey/impression.js.map +0 -1
  142. package/lib/commonjs/features/journey/journeyManager.js.map +0 -1
  143. package/lib/commonjs/features/journey/journeyTypes.js.map +0 -1
  144. package/lib/commonjs/features/journey/navDetector.js.map +0 -1
  145. package/lib/commonjs/features/journey/screenshotHelper.js.map +0 -1
  146. package/lib/commonjs/features/journey/targetRegistry.js.map +0 -1
  147. package/lib/commonjs/features/journey/touchTarget.js.map +0 -1
  148. package/lib/commonjs/features/navigation/AutoScreenDetector.js.map +0 -1
  149. package/lib/commonjs/features/network/NetworkFeature.js.map +0 -1
  150. package/lib/commonjs/features/network/index.js.map +0 -1
  151. package/lib/commonjs/features/ota/OtaEventEmitter.js.map +0 -1
  152. package/lib/commonjs/features/ota/OtaOrchestrator.js.map +0 -1
  153. package/lib/commonjs/features/ota/OtaTypes.js.map +0 -1
  154. package/lib/commonjs/features/ota/deviceAttributes.js.map +0 -1
  155. package/lib/commonjs/features/ota/environment.js.map +0 -1
  156. package/lib/commonjs/features/ota/geoCountry.js.map +0 -1
  157. package/lib/commonjs/features/ota/retry.js.map +0 -1
  158. package/lib/commonjs/features/ota/signature.js.map +0 -1
  159. package/lib/commonjs/features/ota/useOtaUpdate.js.map +0 -1
  160. package/lib/commonjs/features/performance/PerformanceFeature.js.map +0 -1
  161. package/lib/commonjs/features/performance/collectors/AppLaunchCollector.js.map +0 -1
  162. package/lib/commonjs/features/performance/collectors/AutoScreenLoadCollector.js.map +0 -1
  163. package/lib/commonjs/features/performance/collectors/CustomTraceCollector.js.map +0 -1
  164. package/lib/commonjs/features/performance/collectors/FrameMetricsCollector.js.map +0 -1
  165. package/lib/commonjs/features/performance/collectors/JsStallCollector.js.map +0 -1
  166. package/lib/commonjs/features/performance/collectors/NetworkPerfCollector.js.map +0 -1
  167. package/lib/commonjs/features/performance/collectors/ScreenLoadCollector.js.map +0 -1
  168. package/lib/commonjs/features/performance/collectors/UiHangCollector.js.map +0 -1
  169. package/lib/commonjs/features/performance/config.js.map +0 -1
  170. package/lib/commonjs/features/performance/getNativePerformanceModule.js.map +0 -1
  171. package/lib/commonjs/features/performance/index.js.map +0 -1
  172. package/lib/commonjs/features/performance/metrics/MetricsEngine.js.map +0 -1
  173. package/lib/commonjs/features/performance/models.js.map +0 -1
  174. package/lib/commonjs/features/performance/transport/PerformanceTransport.js.map +0 -1
  175. package/lib/commonjs/features/profiler/ProfilerFeature.js.map +0 -1
  176. package/lib/commonjs/features/profiler/config.js.map +0 -1
  177. package/lib/commonjs/features/profiler/contracts.js.map +0 -1
  178. package/lib/commonjs/features/profiler/index.js.map +0 -1
  179. package/lib/commonjs/features/profiler/models.js.map +0 -1
  180. package/lib/commonjs/features/profiler/transport/ProfilerTransport.js.map +0 -1
  181. package/lib/commonjs/features/replay/bridge/adapters/bridgeAdapter.js.map +0 -1
  182. package/lib/commonjs/features/replay/bridge/eventEmitter.js.map +0 -1
  183. package/lib/commonjs/features/replay/bridge/nativeModule.js.map +0 -1
  184. package/lib/commonjs/features/replay/core/clock/clock.js.map +0 -1
  185. package/lib/commonjs/features/replay/core/config/defaults.js.map +0 -1
  186. package/lib/commonjs/features/replay/core/config/validator.js.map +0 -1
  187. package/lib/commonjs/features/replay/core/env/environmentDetector.js.map +0 -1
  188. package/lib/commonjs/features/replay/core/errors/safeCall.js.map +0 -1
  189. package/lib/commonjs/features/replay/core/ids/sessionId.js.map +0 -1
  190. package/lib/commonjs/features/replay/core/logger/logger.js.map +0 -1
  191. package/lib/commonjs/features/replay/core/privacy/privacyTypes.js.map +0 -1
  192. package/lib/commonjs/features/replay/core/queue/boundedQueue.js.map +0 -1
  193. package/lib/commonjs/features/replay/integrations/alert/alertInstrumentation.js.map +0 -1
  194. package/lib/commonjs/features/replay/integrations/logs/consoleIntegration.js.map +0 -1
  195. package/lib/commonjs/features/replay/integrations/network/networkAdapter.js.map +0 -1
  196. package/lib/commonjs/features/replay/integrations/react-navigation/navigationIntegration.js.map +0 -1
  197. package/lib/commonjs/features/replay/integrations/touch/ReplayRoot.js.map +0 -1
  198. package/lib/commonjs/features/replay/pipeline/batching/batchManager.js.map +0 -1
  199. package/lib/commonjs/features/replay/pipeline/envelope/envelopeBuilder.js.map +0 -1
  200. package/lib/commonjs/features/replay/pipeline/retry/retryPolicy.js.map +0 -1
  201. package/lib/commonjs/features/replay/pipeline/transport/transportTypes.js.map +0 -1
  202. package/lib/commonjs/features/replay/public/api.js.map +0 -1
  203. package/lib/commonjs/features/replay/public/enums.js.map +0 -1
  204. package/lib/commonjs/features/replay/public/types.js.map +0 -1
  205. package/lib/commonjs/features/replay/replay/breadcrumbs/breadcrumbCollector.js.map +0 -1
  206. package/lib/commonjs/features/replay/replay/frames/frameModels.js.map +0 -1
  207. package/lib/commonjs/features/replay/replay/session/sessionOrchestrator.js.map +0 -1
  208. package/lib/commonjs/features/replay/replay/timeline/timelineModels.js.map +0 -1
  209. package/lib/commonjs/features/replay/transport/BackendReplayTransport.js.map +0 -1
  210. package/lib/commonjs/features/replay/transport/CompositeReplayTransport.js.map +0 -1
  211. package/lib/commonjs/features/replay/transport/DesktopReplayTransport.js.map +0 -1
  212. package/lib/commonjs/features/replay/transport/ReplayTransport.js.map +0 -1
  213. package/lib/commonjs/features/session/BackendSessionAdapter.js.map +0 -1
  214. package/lib/commonjs/features/session/DesktopSessionTransport.js.map +0 -1
  215. package/lib/commonjs/features/session/JourneyEventPipeline.js.map +0 -1
  216. package/lib/commonjs/features/session/ReplayCaptureManager.js.map +0 -1
  217. package/lib/commonjs/features/session/ScrollTracker.js.map +0 -1
  218. package/lib/commonjs/features/session/SessionManager.js.map +0 -1
  219. package/lib/commonjs/features/session/SyncDecisionEngine.js.map +0 -1
  220. package/lib/commonjs/features/session/index.js.map +0 -1
  221. package/lib/commonjs/features/session/nativeCapture.js.map +0 -1
  222. package/lib/commonjs/features/session/outboxFrameCapture.js.map +0 -1
  223. package/lib/commonjs/features/session/sessionTypes.js.map +0 -1
  224. package/lib/commonjs/features/skan/skanBridge.js.map +0 -1
  225. package/lib/commonjs/features/skan/skanConversionManager.js.map +0 -1
  226. package/lib/commonjs/index.js.map +0 -1
  227. package/lib/commonjs/integrations/fetch/fetchInterceptor.js.map +0 -1
  228. package/lib/commonjs/integrations/navigation/screenTracker.js.map +0 -1
  229. package/lib/commonjs/integrations/network/bodyCapture.js.map +0 -1
  230. package/lib/commonjs/integrations/xhr/xhrInterceptor.js.map +0 -1
  231. package/lib/commonjs/metro/composeSourceMap.js.map +0 -1
  232. package/lib/commonjs/metro/featureModules.js.map +0 -1
  233. package/lib/commonjs/metro/index.js.map +0 -1
  234. package/lib/commonjs/metro/optionalDependencyStub.js.map +0 -1
  235. package/lib/commonjs/metro/optionalModules.js.map +0 -1
  236. package/lib/commonjs/metro/serializerCompose.js.map +0 -1
  237. package/lib/commonjs/pipeline/dispatcher/dispatcher.js.map +0 -1
  238. package/lib/commonjs/pipeline/envelope/envelope.js.map +0 -1
  239. package/lib/commonjs/pipeline/envelope/serializer.js.map +0 -1
  240. package/lib/commonjs/pipeline/processors/dedupe.js.map +0 -1
  241. package/lib/commonjs/pipeline/processors/enrich.js.map +0 -1
  242. package/lib/commonjs/pipeline/processors/sampling.js.map +0 -1
  243. package/lib/commonjs/pipeline/processors/sanitize.js.map +0 -1
  244. package/lib/commonjs/pipeline/queue/flushQueue.js.map +0 -1
  245. package/lib/commonjs/pipeline/queue/memoryQueue.js.map +0 -1
  246. package/lib/commonjs/pipeline/queue/persistentQueue.js.map +0 -1
  247. package/lib/commonjs/pipeline/queue/queuePolicy.js.map +0 -1
  248. package/lib/commonjs/pipeline/scheduler/flushScheduler.js.map +0 -1
  249. package/lib/commonjs/pipeline/scheduler/retryPolicy.js.map +0 -1
  250. package/lib/commonjs/public/ScaleBunErrorBoundary.js.map +0 -1
  251. package/lib/commonjs/public/ScaleBunFacade.js.map +0 -1
  252. package/lib/commonjs/public/ScaleBunProvider.js.map +0 -1
  253. package/lib/commonjs/public/typedTracker.js.map +0 -1
  254. package/lib/commonjs/public/types.js.map +0 -1
  255. package/lib/commonjs/push/PushManager.js.map +0 -1
  256. package/lib/commonjs/push/adapters/ManualAdapter.js.map +0 -1
  257. package/lib/commonjs/push/adapters/NativeBridgeAdapter.js.map +0 -1
  258. package/lib/commonjs/push/adapters/NoopAdapter.js.map +0 -1
  259. package/lib/commonjs/push/adapters/RNFirebaseMessagingAdapter.js.map +0 -1
  260. package/lib/commonjs/push/adapters/loadMessaging.js.map +0 -1
  261. package/lib/commonjs/push/adapters/loadNotifee.js.map +0 -1
  262. package/lib/commonjs/push/adapters/selectAdapter.js.map +0 -1
  263. package/lib/commonjs/push/detect/capabilities.js.map +0 -1
  264. package/lib/commonjs/push/index.js.map +0 -1
  265. package/lib/commonjs/push/native/nativeNotifications.js.map +0 -1
  266. package/lib/commonjs/push/types.js.map +0 -1
  267. package/lib/commonjs/specs/NativeReplaySdk.js.map +0 -1
  268. package/lib/commonjs/specs/NativeScaleBunCrash.js.map +0 -1
  269. package/lib/commonjs/specs/NativeScaleBunInstallReferrer.js.map +0 -1
  270. package/lib/commonjs/specs/NativeScaleBunOta.js.map +0 -1
  271. package/lib/commonjs/specs/NativeScaleBunPerformance.js.map +0 -1
  272. package/lib/commonjs/specs/NativeScaleBunProfiler.js.map +0 -1
  273. package/lib/commonjs/specs/NativeScaleBunStorage.js.map +0 -1
  274. package/lib/commonjs/storage/StorageBackend.js.map +0 -1
  275. package/lib/commonjs/storage/db/sqlite.js.map +0 -1
  276. package/lib/commonjs/storage/files/fileStore.js.map +0 -1
  277. package/lib/commonjs/transport/auth/sdkSession.js.map +0 -1
  278. package/lib/commonjs/transport/backoff/exponentialJitter.js.map +0 -1
  279. package/lib/commonjs/transport/http/endpoints.js.map +0 -1
  280. package/lib/commonjs/transport/http/httpClient.js.map +0 -1
  281. package/lib/commonjs/transport/rateLimit/retryAfter.js.map +0 -1
  282. package/lib/commonjs/transport/signing/requestSigner.js.map +0 -1
  283. package/lib/commonjs/vendor/protocol/index.js.map +0 -1
  284. package/lib/commonjs/vendor/protocol/internal/validation.js.map +0 -1
  285. package/lib/commonjs/vendor/sdk-contracts/bridge.js.map +0 -1
  286. package/lib/commonjs/vendor/sdk-contracts/config.js.map +0 -1
  287. package/lib/commonjs/vendor/sdk-contracts/events.js.map +0 -1
  288. package/lib/commonjs/vendor/sdk-contracts/features.js.map +0 -1
  289. package/lib/commonjs/vendor/sdk-contracts/index.js.map +0 -1
  290. package/lib/commonjs/vendor/sdk-contracts/platform.js.map +0 -1
  291. package/lib/commonjs/vendor/sdk-contracts/session-boundary.js.map +0 -1
  292. package/lib/commonjs/vendor/sdk-contracts/session.js.map +0 -1
  293. package/lib/module/analytics/EventTracker.js.map +0 -1
  294. package/lib/module/analytics/automaticEvents.js.map +0 -1
  295. package/lib/module/analytics/batching.js.map +0 -1
  296. package/lib/module/analytics/eventLane.js.map +0 -1
  297. package/lib/module/bootstrap/FeatureRegistry.js.map +0 -1
  298. package/lib/module/bootstrap/SDKBootstrapper.js.map +0 -1
  299. package/lib/module/bucketing/fnv1a32.js.map +0 -1
  300. package/lib/module/compat/codepush.js.map +0 -1
  301. package/lib/module/config/ConfigManager.js.map +0 -1
  302. package/lib/module/config/configTypes.js.map +0 -1
  303. package/lib/module/core/architecture.js.map +0 -1
  304. package/lib/module/core/clock/now.js.map +0 -1
  305. package/lib/module/core/config/defaults.js.map +0 -1
  306. package/lib/module/core/config/schema.js.map +0 -1
  307. package/lib/module/core/constants/endpoints.js.map +0 -1
  308. package/lib/module/core/constants/protocol.js.map +0 -1
  309. package/lib/module/core/constants/timings.js.map +0 -1
  310. package/lib/module/core/constants/version.js.map +0 -1
  311. package/lib/module/core/context/app.js.map +0 -1
  312. package/lib/module/core/context/device.js.map +0 -1
  313. package/lib/module/core/context/session.js.map +0 -1
  314. package/lib/module/core/context/user.js.map +0 -1
  315. package/lib/module/core/contracts/IFeature.js.map +0 -1
  316. package/lib/module/core/di/container.js.map +0 -1
  317. package/lib/module/core/encoding/base64.js.map +0 -1
  318. package/lib/module/core/id/deviceId.js.map +0 -1
  319. package/lib/module/core/id/installationId.js.map +0 -1
  320. package/lib/module/core/id/sessionId.js.map +0 -1
  321. package/lib/module/core/lifecycle/appLifecycle.js.map +0 -1
  322. package/lib/module/core/lifecycle/crashSafe.js.map +0 -1
  323. package/lib/module/core/logger/errorClassification.js.map +0 -1
  324. package/lib/module/core/logger/internalLogger.js.map +0 -1
  325. package/lib/module/core/logger/levels.js.map +0 -1
  326. package/lib/module/crypto/hmacSha256.js.map +0 -1
  327. package/lib/module/debug/bootstrap.js.map +0 -1
  328. package/lib/module/debug/commands.js.map +0 -1
  329. package/lib/module/debug/configBuilder.js.map +0 -1
  330. package/lib/module/debug/exportBridge.js.map +0 -1
  331. package/lib/module/debug/hostResolver.js.map +0 -1
  332. package/lib/module/debug/index.js.map +0 -1
  333. package/lib/module/debug/metrics.js.map +0 -1
  334. package/lib/module/debug/perf.js.map +0 -1
  335. package/lib/module/debug/perfWiring.js.map +0 -1
  336. package/lib/module/debug/protocol.js.map +0 -1
  337. package/lib/module/debug/redaction.js.map +0 -1
  338. package/lib/module/debug/replayWiring.js.map +0 -1
  339. package/lib/module/debug/screenTracking.js.map +0 -1
  340. package/lib/module/debug/sessionWiring.js.map +0 -1
  341. package/lib/module/debug/stream.js.map +0 -1
  342. package/lib/module/debug/transport.js.map +0 -1
  343. package/lib/module/features/bugreport/BugReportFeature.js.map +0 -1
  344. package/lib/module/features/bugreport/buildPayload.js.map +0 -1
  345. package/lib/module/features/bugreport/index.js.map +0 -1
  346. package/lib/module/features/crash/CrashFeature.js.map +0 -1
  347. package/lib/module/features/crash/CrashReporter.js.map +0 -1
  348. package/lib/module/features/crash/NativeCrashFeature.js.map +0 -1
  349. package/lib/module/features/crash/capture.js.map +0 -1
  350. package/lib/module/features/crash/globalHandler.js.map +0 -1
  351. package/lib/module/features/crash/index.js.map +0 -1
  352. package/lib/module/features/crash/nativeCrashBridge.js.map +0 -1
  353. package/lib/module/features/crash/rejectionHandler.js.map +0 -1
  354. package/lib/module/features/engage/EngageAnchor.js.map +0 -1
  355. package/lib/module/features/engage/EngageArchetypeRenderers.js.map +0 -1
  356. package/lib/module/features/engage/EngageInAppView.js.map +0 -1
  357. package/lib/module/features/engage/EngageInlinePlacement.js.map +0 -1
  358. package/lib/module/features/engage/EngagePromptProvider.js.map +0 -1
  359. package/lib/module/features/engage/EngagePromptView.js.map +0 -1
  360. package/lib/module/features/engage/EngageTransport.js.map +0 -1
  361. package/lib/module/features/engage/EngageVariantContent.js.map +0 -1
  362. package/lib/module/features/engage/__test-support__/reactNativeStub.js.map +0 -1
  363. package/lib/module/features/engage/attachmentCapture.js.map +0 -1
  364. package/lib/module/features/engage/captureVoiceAttachment.js.map +0 -1
  365. package/lib/module/features/engage/engageCoachmarkTour.js.map +0 -1
  366. package/lib/module/features/engage/engageGameLogic.js.map +0 -1
  367. package/lib/module/features/engage/engageMediaSizing.js.map +0 -1
  368. package/lib/module/features/engage/engageMultiStepSheet.js.map +0 -1
  369. package/lib/module/features/engage/engageOutcome.js.map +0 -1
  370. package/lib/module/features/engage/engagePushTokenBridge.js.map +0 -1
  371. package/lib/module/features/engage/engageShakeBridge.js.map +0 -1
  372. package/lib/module/features/engage/engageSignals.js.map +0 -1
  373. package/lib/module/features/engage/engageStoreReviewBridge.js.map +0 -1
  374. package/lib/module/features/engage/engageTestSeenStore.js.map +0 -1
  375. package/lib/module/features/engage/engageThrottle.js.map +0 -1
  376. package/lib/module/features/engage/engageTriggerEngine.js.map +0 -1
  377. package/lib/module/features/engage/engageTypes.js.map +0 -1
  378. package/lib/module/features/engage/engageVariantResolver.js.map +0 -1
  379. package/lib/module/features/engage/engageWindowInsets.js.map +0 -1
  380. package/lib/module/features/engage/gestureTriggerDetector.js.map +0 -1
  381. package/lib/module/features/engage/transcription/TranscriptionProvider.js.map +0 -1
  382. package/lib/module/features/install-referrer/installReferrer.js.map +0 -1
  383. package/lib/module/features/journey/ScaleBunDebugRoot.js.map +0 -1
  384. package/lib/module/features/journey/ScaleBunFlatList.js.map +0 -1
  385. package/lib/module/features/journey/ScaleBunImpression.js.map +0 -1
  386. package/lib/module/features/journey/ScaleBunScrollView.js.map +0 -1
  387. package/lib/module/features/journey/ScaleBunSectionList.js.map +0 -1
  388. package/lib/module/features/journey/calibrationContext.js.map +0 -1
  389. package/lib/module/features/journey/gestureBuffer.js.map +0 -1
  390. package/lib/module/features/journey/gestureDetector.js.map +0 -1
  391. package/lib/module/features/journey/impression.js.map +0 -1
  392. package/lib/module/features/journey/journeyManager.js.map +0 -1
  393. package/lib/module/features/journey/journeyTypes.js.map +0 -1
  394. package/lib/module/features/journey/navDetector.js.map +0 -1
  395. package/lib/module/features/journey/screenshotHelper.js.map +0 -1
  396. package/lib/module/features/journey/targetRegistry.js.map +0 -1
  397. package/lib/module/features/journey/touchTarget.js.map +0 -1
  398. package/lib/module/features/navigation/AutoScreenDetector.js.map +0 -1
  399. package/lib/module/features/network/NetworkFeature.js.map +0 -1
  400. package/lib/module/features/network/index.js.map +0 -1
  401. package/lib/module/features/ota/OtaEventEmitter.js.map +0 -1
  402. package/lib/module/features/ota/OtaOrchestrator.js.map +0 -1
  403. package/lib/module/features/ota/OtaTypes.js.map +0 -1
  404. package/lib/module/features/ota/deviceAttributes.js.map +0 -1
  405. package/lib/module/features/ota/environment.js.map +0 -1
  406. package/lib/module/features/ota/geoCountry.js.map +0 -1
  407. package/lib/module/features/ota/retry.js.map +0 -1
  408. package/lib/module/features/ota/signature.js.map +0 -1
  409. package/lib/module/features/ota/useOtaUpdate.js.map +0 -1
  410. package/lib/module/features/performance/PerformanceFeature.js.map +0 -1
  411. package/lib/module/features/performance/collectors/AppLaunchCollector.js.map +0 -1
  412. package/lib/module/features/performance/collectors/AutoScreenLoadCollector.js.map +0 -1
  413. package/lib/module/features/performance/collectors/CustomTraceCollector.js.map +0 -1
  414. package/lib/module/features/performance/collectors/FrameMetricsCollector.js.map +0 -1
  415. package/lib/module/features/performance/collectors/JsStallCollector.js.map +0 -1
  416. package/lib/module/features/performance/collectors/NetworkPerfCollector.js.map +0 -1
  417. package/lib/module/features/performance/collectors/ScreenLoadCollector.js.map +0 -1
  418. package/lib/module/features/performance/collectors/UiHangCollector.js.map +0 -1
  419. package/lib/module/features/performance/config.js.map +0 -1
  420. package/lib/module/features/performance/getNativePerformanceModule.js.map +0 -1
  421. package/lib/module/features/performance/index.js.map +0 -1
  422. package/lib/module/features/performance/metrics/MetricsEngine.js.map +0 -1
  423. package/lib/module/features/performance/models.js.map +0 -1
  424. package/lib/module/features/performance/transport/PerformanceTransport.js.map +0 -1
  425. package/lib/module/features/profiler/ProfilerFeature.js.map +0 -1
  426. package/lib/module/features/profiler/config.js.map +0 -1
  427. package/lib/module/features/profiler/contracts.js.map +0 -1
  428. package/lib/module/features/profiler/index.js.map +0 -1
  429. package/lib/module/features/profiler/models.js.map +0 -1
  430. package/lib/module/features/profiler/transport/ProfilerTransport.js.map +0 -1
  431. package/lib/module/features/replay/bridge/adapters/bridgeAdapter.js.map +0 -1
  432. package/lib/module/features/replay/bridge/eventEmitter.js.map +0 -1
  433. package/lib/module/features/replay/bridge/nativeModule.js.map +0 -1
  434. package/lib/module/features/replay/core/clock/clock.js.map +0 -1
  435. package/lib/module/features/replay/core/config/defaults.js.map +0 -1
  436. package/lib/module/features/replay/core/config/validator.js.map +0 -1
  437. package/lib/module/features/replay/core/env/environmentDetector.js.map +0 -1
  438. package/lib/module/features/replay/core/errors/safeCall.js.map +0 -1
  439. package/lib/module/features/replay/core/ids/sessionId.js.map +0 -1
  440. package/lib/module/features/replay/core/logger/logger.js.map +0 -1
  441. package/lib/module/features/replay/core/privacy/privacyTypes.js.map +0 -1
  442. package/lib/module/features/replay/core/queue/boundedQueue.js.map +0 -1
  443. package/lib/module/features/replay/integrations/alert/alertInstrumentation.js.map +0 -1
  444. package/lib/module/features/replay/integrations/logs/consoleIntegration.js.map +0 -1
  445. package/lib/module/features/replay/integrations/network/networkAdapter.js.map +0 -1
  446. package/lib/module/features/replay/integrations/react-navigation/navigationIntegration.js.map +0 -1
  447. package/lib/module/features/replay/integrations/touch/ReplayRoot.js.map +0 -1
  448. package/lib/module/features/replay/pipeline/batching/batchManager.js.map +0 -1
  449. package/lib/module/features/replay/pipeline/envelope/envelopeBuilder.js.map +0 -1
  450. package/lib/module/features/replay/pipeline/retry/retryPolicy.js.map +0 -1
  451. package/lib/module/features/replay/pipeline/transport/transportTypes.js.map +0 -1
  452. package/lib/module/features/replay/public/api.js.map +0 -1
  453. package/lib/module/features/replay/public/enums.js.map +0 -1
  454. package/lib/module/features/replay/public/types.js.map +0 -1
  455. package/lib/module/features/replay/replay/breadcrumbs/breadcrumbCollector.js.map +0 -1
  456. package/lib/module/features/replay/replay/frames/frameModels.js.map +0 -1
  457. package/lib/module/features/replay/replay/session/sessionOrchestrator.js.map +0 -1
  458. package/lib/module/features/replay/replay/timeline/timelineModels.js.map +0 -1
  459. package/lib/module/features/replay/transport/BackendReplayTransport.js.map +0 -1
  460. package/lib/module/features/replay/transport/CompositeReplayTransport.js.map +0 -1
  461. package/lib/module/features/replay/transport/DesktopReplayTransport.js.map +0 -1
  462. package/lib/module/features/replay/transport/ReplayTransport.js.map +0 -1
  463. package/lib/module/features/session/BackendSessionAdapter.js.map +0 -1
  464. package/lib/module/features/session/DesktopSessionTransport.js.map +0 -1
  465. package/lib/module/features/session/JourneyEventPipeline.js.map +0 -1
  466. package/lib/module/features/session/ReplayCaptureManager.js.map +0 -1
  467. package/lib/module/features/session/ScrollTracker.js.map +0 -1
  468. package/lib/module/features/session/SessionManager.js.map +0 -1
  469. package/lib/module/features/session/SyncDecisionEngine.js.map +0 -1
  470. package/lib/module/features/session/index.js.map +0 -1
  471. package/lib/module/features/session/nativeCapture.js.map +0 -1
  472. package/lib/module/features/session/outboxFrameCapture.js.map +0 -1
  473. package/lib/module/features/session/sessionTypes.js.map +0 -1
  474. package/lib/module/features/skan/skanBridge.js.map +0 -1
  475. package/lib/module/features/skan/skanConversionManager.js.map +0 -1
  476. package/lib/module/index.js.map +0 -1
  477. package/lib/module/integrations/fetch/fetchInterceptor.js.map +0 -1
  478. package/lib/module/integrations/navigation/screenTracker.js.map +0 -1
  479. package/lib/module/integrations/network/bodyCapture.js.map +0 -1
  480. package/lib/module/integrations/xhr/xhrInterceptor.js.map +0 -1
  481. package/lib/module/metro/composeSourceMap.js.map +0 -1
  482. package/lib/module/metro/featureModules.js.map +0 -1
  483. package/lib/module/metro/index.js.map +0 -1
  484. package/lib/module/metro/optionalDependencyStub.js.map +0 -1
  485. package/lib/module/metro/optionalModules.js.map +0 -1
  486. package/lib/module/metro/serializerCompose.js.map +0 -1
  487. package/lib/module/pipeline/dispatcher/dispatcher.js.map +0 -1
  488. package/lib/module/pipeline/envelope/envelope.js.map +0 -1
  489. package/lib/module/pipeline/envelope/serializer.js.map +0 -1
  490. package/lib/module/pipeline/processors/dedupe.js.map +0 -1
  491. package/lib/module/pipeline/processors/enrich.js.map +0 -1
  492. package/lib/module/pipeline/processors/sampling.js.map +0 -1
  493. package/lib/module/pipeline/processors/sanitize.js.map +0 -1
  494. package/lib/module/pipeline/queue/flushQueue.js.map +0 -1
  495. package/lib/module/pipeline/queue/memoryQueue.js.map +0 -1
  496. package/lib/module/pipeline/queue/persistentQueue.js.map +0 -1
  497. package/lib/module/pipeline/queue/queuePolicy.js.map +0 -1
  498. package/lib/module/pipeline/scheduler/flushScheduler.js.map +0 -1
  499. package/lib/module/pipeline/scheduler/retryPolicy.js.map +0 -1
  500. package/lib/module/public/ScaleBunErrorBoundary.js.map +0 -1
  501. package/lib/module/public/ScaleBunFacade.js.map +0 -1
  502. package/lib/module/public/ScaleBunProvider.js.map +0 -1
  503. package/lib/module/public/typedTracker.js.map +0 -1
  504. package/lib/module/public/types.js.map +0 -1
  505. package/lib/module/push/PushManager.js.map +0 -1
  506. package/lib/module/push/adapters/ManualAdapter.js.map +0 -1
  507. package/lib/module/push/adapters/NativeBridgeAdapter.js.map +0 -1
  508. package/lib/module/push/adapters/NoopAdapter.js.map +0 -1
  509. package/lib/module/push/adapters/RNFirebaseMessagingAdapter.js.map +0 -1
  510. package/lib/module/push/adapters/loadMessaging.js.map +0 -1
  511. package/lib/module/push/adapters/loadNotifee.js.map +0 -1
  512. package/lib/module/push/adapters/selectAdapter.js.map +0 -1
  513. package/lib/module/push/detect/capabilities.js.map +0 -1
  514. package/lib/module/push/index.js.map +0 -1
  515. package/lib/module/push/native/nativeNotifications.js.map +0 -1
  516. package/lib/module/push/types.js.map +0 -1
  517. package/lib/module/specs/NativeReplaySdk.js.map +0 -1
  518. package/lib/module/specs/NativeScaleBunCrash.js.map +0 -1
  519. package/lib/module/specs/NativeScaleBunInstallReferrer.js.map +0 -1
  520. package/lib/module/specs/NativeScaleBunOta.js.map +0 -1
  521. package/lib/module/specs/NativeScaleBunPerformance.js.map +0 -1
  522. package/lib/module/specs/NativeScaleBunProfiler.js.map +0 -1
  523. package/lib/module/specs/NativeScaleBunStorage.js.map +0 -1
  524. package/lib/module/storage/StorageBackend.js.map +0 -1
  525. package/lib/module/storage/db/sqlite.js.map +0 -1
  526. package/lib/module/storage/files/fileStore.js.map +0 -1
  527. package/lib/module/transport/auth/sdkSession.js.map +0 -1
  528. package/lib/module/transport/backoff/exponentialJitter.js.map +0 -1
  529. package/lib/module/transport/http/endpoints.js.map +0 -1
  530. package/lib/module/transport/http/httpClient.js.map +0 -1
  531. package/lib/module/transport/rateLimit/retryAfter.js.map +0 -1
  532. package/lib/module/transport/signing/requestSigner.js.map +0 -1
  533. package/lib/module/vendor/protocol/index.js.map +0 -1
  534. package/lib/module/vendor/protocol/internal/validation.js.map +0 -1
  535. package/lib/module/vendor/sdk-contracts/bridge.js.map +0 -1
  536. package/lib/module/vendor/sdk-contracts/config.js.map +0 -1
  537. package/lib/module/vendor/sdk-contracts/events.js.map +0 -1
  538. package/lib/module/vendor/sdk-contracts/features.js.map +0 -1
  539. package/lib/module/vendor/sdk-contracts/index.js.map +0 -1
  540. package/lib/module/vendor/sdk-contracts/platform.js.map +0 -1
  541. package/lib/module/vendor/sdk-contracts/session-boundary.js.map +0 -1
  542. package/lib/module/vendor/sdk-contracts/session.js.map +0 -1
  543. package/lib/typescript/analytics/EventTracker.d.ts.map +0 -1
  544. package/lib/typescript/analytics/automaticEvents.d.ts.map +0 -1
  545. package/lib/typescript/analytics/batching.d.ts.map +0 -1
  546. package/lib/typescript/analytics/eventLane.d.ts.map +0 -1
  547. package/lib/typescript/bootstrap/FeatureRegistry.d.ts.map +0 -1
  548. package/lib/typescript/bootstrap/SDKBootstrapper.d.ts.map +0 -1
  549. package/lib/typescript/bucketing/fnv1a32.d.ts.map +0 -1
  550. package/lib/typescript/compat/codepush.d.ts.map +0 -1
  551. package/lib/typescript/config/ConfigManager.d.ts.map +0 -1
  552. package/lib/typescript/config/configTypes.d.ts.map +0 -1
  553. package/lib/typescript/core/architecture.d.ts.map +0 -1
  554. package/lib/typescript/core/clock/now.d.ts.map +0 -1
  555. package/lib/typescript/core/config/defaults.d.ts.map +0 -1
  556. package/lib/typescript/core/config/schema.d.ts.map +0 -1
  557. package/lib/typescript/core/constants/endpoints.d.ts.map +0 -1
  558. package/lib/typescript/core/constants/protocol.d.ts.map +0 -1
  559. package/lib/typescript/core/constants/timings.d.ts.map +0 -1
  560. package/lib/typescript/core/constants/version.d.ts.map +0 -1
  561. package/lib/typescript/core/context/app.d.ts.map +0 -1
  562. package/lib/typescript/core/context/device.d.ts.map +0 -1
  563. package/lib/typescript/core/context/session.d.ts.map +0 -1
  564. package/lib/typescript/core/context/user.d.ts.map +0 -1
  565. package/lib/typescript/core/contracts/IFeature.d.ts.map +0 -1
  566. package/lib/typescript/core/di/container.d.ts.map +0 -1
  567. package/lib/typescript/core/encoding/base64.d.ts.map +0 -1
  568. package/lib/typescript/core/id/deviceId.d.ts.map +0 -1
  569. package/lib/typescript/core/id/installationId.d.ts.map +0 -1
  570. package/lib/typescript/core/id/sessionId.d.ts.map +0 -1
  571. package/lib/typescript/core/lifecycle/appLifecycle.d.ts.map +0 -1
  572. package/lib/typescript/core/lifecycle/crashSafe.d.ts.map +0 -1
  573. package/lib/typescript/core/logger/errorClassification.d.ts.map +0 -1
  574. package/lib/typescript/core/logger/internalLogger.d.ts.map +0 -1
  575. package/lib/typescript/core/logger/levels.d.ts.map +0 -1
  576. package/lib/typescript/crypto/hmacSha256.d.ts.map +0 -1
  577. package/lib/typescript/debug/bootstrap.d.ts.map +0 -1
  578. package/lib/typescript/debug/commands.d.ts.map +0 -1
  579. package/lib/typescript/debug/configBuilder.d.ts.map +0 -1
  580. package/lib/typescript/debug/exportBridge.d.ts.map +0 -1
  581. package/lib/typescript/debug/hostResolver.d.ts.map +0 -1
  582. package/lib/typescript/debug/index.d.ts.map +0 -1
  583. package/lib/typescript/debug/metrics.d.ts.map +0 -1
  584. package/lib/typescript/debug/perf.d.ts.map +0 -1
  585. package/lib/typescript/debug/perfWiring.d.ts.map +0 -1
  586. package/lib/typescript/debug/protocol.d.ts.map +0 -1
  587. package/lib/typescript/debug/redaction.d.ts.map +0 -1
  588. package/lib/typescript/debug/replayWiring.d.ts.map +0 -1
  589. package/lib/typescript/debug/screenTracking.d.ts.map +0 -1
  590. package/lib/typescript/debug/sessionWiring.d.ts.map +0 -1
  591. package/lib/typescript/debug/stream.d.ts.map +0 -1
  592. package/lib/typescript/debug/transport.d.ts.map +0 -1
  593. package/lib/typescript/features/bugreport/BugReportFeature.d.ts.map +0 -1
  594. package/lib/typescript/features/bugreport/buildPayload.d.ts.map +0 -1
  595. package/lib/typescript/features/bugreport/index.d.ts.map +0 -1
  596. package/lib/typescript/features/crash/CrashFeature.d.ts.map +0 -1
  597. package/lib/typescript/features/crash/CrashReporter.d.ts.map +0 -1
  598. package/lib/typescript/features/crash/NativeCrashFeature.d.ts.map +0 -1
  599. package/lib/typescript/features/crash/capture.d.ts.map +0 -1
  600. package/lib/typescript/features/crash/globalHandler.d.ts.map +0 -1
  601. package/lib/typescript/features/crash/index.d.ts.map +0 -1
  602. package/lib/typescript/features/crash/nativeCrashBridge.d.ts.map +0 -1
  603. package/lib/typescript/features/crash/rejectionHandler.d.ts.map +0 -1
  604. package/lib/typescript/features/engage/EngageAnchor.d.ts.map +0 -1
  605. package/lib/typescript/features/engage/EngageArchetypeRenderers.d.ts.map +0 -1
  606. package/lib/typescript/features/engage/EngageInAppView.d.ts.map +0 -1
  607. package/lib/typescript/features/engage/EngageInlinePlacement.d.ts.map +0 -1
  608. package/lib/typescript/features/engage/EngagePromptProvider.d.ts.map +0 -1
  609. package/lib/typescript/features/engage/EngagePromptView.d.ts.map +0 -1
  610. package/lib/typescript/features/engage/EngageTransport.d.ts.map +0 -1
  611. package/lib/typescript/features/engage/EngageVariantContent.d.ts.map +0 -1
  612. package/lib/typescript/features/engage/attachmentCapture.d.ts.map +0 -1
  613. package/lib/typescript/features/engage/captureVoiceAttachment.d.ts.map +0 -1
  614. package/lib/typescript/features/engage/engageCoachmarkTour.d.ts.map +0 -1
  615. package/lib/typescript/features/engage/engageGameLogic.d.ts.map +0 -1
  616. package/lib/typescript/features/engage/engageMediaSizing.d.ts.map +0 -1
  617. package/lib/typescript/features/engage/engageMultiStepSheet.d.ts.map +0 -1
  618. package/lib/typescript/features/engage/engageOutcome.d.ts.map +0 -1
  619. package/lib/typescript/features/engage/engagePushTokenBridge.d.ts.map +0 -1
  620. package/lib/typescript/features/engage/engageShakeBridge.d.ts.map +0 -1
  621. package/lib/typescript/features/engage/engageSignals.d.ts.map +0 -1
  622. package/lib/typescript/features/engage/engageStoreReviewBridge.d.ts.map +0 -1
  623. package/lib/typescript/features/engage/engageTestSeenStore.d.ts.map +0 -1
  624. package/lib/typescript/features/engage/engageThrottle.d.ts.map +0 -1
  625. package/lib/typescript/features/engage/engageTriggerEngine.d.ts.map +0 -1
  626. package/lib/typescript/features/engage/engageTypes.d.ts.map +0 -1
  627. package/lib/typescript/features/engage/engageVariantResolver.d.ts.map +0 -1
  628. package/lib/typescript/features/engage/engageWindowInsets.d.ts.map +0 -1
  629. package/lib/typescript/features/engage/gestureTriggerDetector.d.ts.map +0 -1
  630. package/lib/typescript/features/engage/transcription/TranscriptionProvider.d.ts.map +0 -1
  631. package/lib/typescript/features/install-referrer/installReferrer.d.ts.map +0 -1
  632. package/lib/typescript/features/journey/ScaleBunDebugRoot.d.ts.map +0 -1
  633. package/lib/typescript/features/journey/ScaleBunFlatList.d.ts.map +0 -1
  634. package/lib/typescript/features/journey/ScaleBunImpression.d.ts.map +0 -1
  635. package/lib/typescript/features/journey/ScaleBunScrollView.d.ts.map +0 -1
  636. package/lib/typescript/features/journey/ScaleBunSectionList.d.ts.map +0 -1
  637. package/lib/typescript/features/journey/calibrationContext.d.ts.map +0 -1
  638. package/lib/typescript/features/journey/gestureBuffer.d.ts.map +0 -1
  639. package/lib/typescript/features/journey/gestureDetector.d.ts.map +0 -1
  640. package/lib/typescript/features/journey/impression.d.ts.map +0 -1
  641. package/lib/typescript/features/journey/journeyManager.d.ts.map +0 -1
  642. package/lib/typescript/features/journey/journeyTypes.d.ts.map +0 -1
  643. package/lib/typescript/features/journey/navDetector.d.ts.map +0 -1
  644. package/lib/typescript/features/journey/screenshotHelper.d.ts.map +0 -1
  645. package/lib/typescript/features/journey/targetRegistry.d.ts.map +0 -1
  646. package/lib/typescript/features/journey/touchTarget.d.ts.map +0 -1
  647. package/lib/typescript/features/navigation/AutoScreenDetector.d.ts.map +0 -1
  648. package/lib/typescript/features/network/NetworkFeature.d.ts.map +0 -1
  649. package/lib/typescript/features/network/index.d.ts.map +0 -1
  650. package/lib/typescript/features/ota/OtaEventEmitter.d.ts.map +0 -1
  651. package/lib/typescript/features/ota/OtaOrchestrator.d.ts.map +0 -1
  652. package/lib/typescript/features/ota/OtaTypes.d.ts.map +0 -1
  653. package/lib/typescript/features/ota/deviceAttributes.d.ts.map +0 -1
  654. package/lib/typescript/features/ota/environment.d.ts.map +0 -1
  655. package/lib/typescript/features/ota/geoCountry.d.ts.map +0 -1
  656. package/lib/typescript/features/ota/retry.d.ts.map +0 -1
  657. package/lib/typescript/features/ota/signature.d.ts.map +0 -1
  658. package/lib/typescript/features/ota/useOtaUpdate.d.ts.map +0 -1
  659. package/lib/typescript/features/performance/PerformanceFeature.d.ts.map +0 -1
  660. package/lib/typescript/features/performance/collectors/AppLaunchCollector.d.ts.map +0 -1
  661. package/lib/typescript/features/performance/collectors/AutoScreenLoadCollector.d.ts.map +0 -1
  662. package/lib/typescript/features/performance/collectors/CustomTraceCollector.d.ts.map +0 -1
  663. package/lib/typescript/features/performance/collectors/FrameMetricsCollector.d.ts.map +0 -1
  664. package/lib/typescript/features/performance/collectors/JsStallCollector.d.ts.map +0 -1
  665. package/lib/typescript/features/performance/collectors/NetworkPerfCollector.d.ts.map +0 -1
  666. package/lib/typescript/features/performance/collectors/ScreenLoadCollector.d.ts.map +0 -1
  667. package/lib/typescript/features/performance/collectors/UiHangCollector.d.ts.map +0 -1
  668. package/lib/typescript/features/performance/config.d.ts.map +0 -1
  669. package/lib/typescript/features/performance/getNativePerformanceModule.d.ts.map +0 -1
  670. package/lib/typescript/features/performance/index.d.ts.map +0 -1
  671. package/lib/typescript/features/performance/metrics/MetricsEngine.d.ts.map +0 -1
  672. package/lib/typescript/features/performance/models.d.ts.map +0 -1
  673. package/lib/typescript/features/performance/transport/PerformanceTransport.d.ts.map +0 -1
  674. package/lib/typescript/features/profiler/ProfilerFeature.d.ts.map +0 -1
  675. package/lib/typescript/features/profiler/config.d.ts.map +0 -1
  676. package/lib/typescript/features/profiler/contracts.d.ts.map +0 -1
  677. package/lib/typescript/features/profiler/index.d.ts.map +0 -1
  678. package/lib/typescript/features/profiler/models.d.ts.map +0 -1
  679. package/lib/typescript/features/profiler/transport/ProfilerTransport.d.ts.map +0 -1
  680. package/lib/typescript/features/replay/bridge/adapters/bridgeAdapter.d.ts.map +0 -1
  681. package/lib/typescript/features/replay/bridge/eventEmitter.d.ts.map +0 -1
  682. package/lib/typescript/features/replay/bridge/nativeModule.d.ts.map +0 -1
  683. package/lib/typescript/features/replay/core/clock/clock.d.ts.map +0 -1
  684. package/lib/typescript/features/replay/core/config/defaults.d.ts.map +0 -1
  685. package/lib/typescript/features/replay/core/config/validator.d.ts.map +0 -1
  686. package/lib/typescript/features/replay/core/env/environmentDetector.d.ts.map +0 -1
  687. package/lib/typescript/features/replay/core/errors/safeCall.d.ts.map +0 -1
  688. package/lib/typescript/features/replay/core/ids/sessionId.d.ts.map +0 -1
  689. package/lib/typescript/features/replay/core/logger/logger.d.ts.map +0 -1
  690. package/lib/typescript/features/replay/core/privacy/privacyTypes.d.ts.map +0 -1
  691. package/lib/typescript/features/replay/core/queue/boundedQueue.d.ts.map +0 -1
  692. package/lib/typescript/features/replay/integrations/alert/alertInstrumentation.d.ts.map +0 -1
  693. package/lib/typescript/features/replay/integrations/logs/consoleIntegration.d.ts.map +0 -1
  694. package/lib/typescript/features/replay/integrations/network/networkAdapter.d.ts.map +0 -1
  695. package/lib/typescript/features/replay/integrations/react-navigation/navigationIntegration.d.ts.map +0 -1
  696. package/lib/typescript/features/replay/integrations/touch/ReplayRoot.d.ts.map +0 -1
  697. package/lib/typescript/features/replay/pipeline/batching/batchManager.d.ts.map +0 -1
  698. package/lib/typescript/features/replay/pipeline/envelope/envelopeBuilder.d.ts.map +0 -1
  699. package/lib/typescript/features/replay/pipeline/retry/retryPolicy.d.ts.map +0 -1
  700. package/lib/typescript/features/replay/pipeline/transport/transportTypes.d.ts.map +0 -1
  701. package/lib/typescript/features/replay/public/api.d.ts.map +0 -1
  702. package/lib/typescript/features/replay/public/enums.d.ts.map +0 -1
  703. package/lib/typescript/features/replay/public/types.d.ts.map +0 -1
  704. package/lib/typescript/features/replay/replay/breadcrumbs/breadcrumbCollector.d.ts.map +0 -1
  705. package/lib/typescript/features/replay/replay/frames/frameModels.d.ts.map +0 -1
  706. package/lib/typescript/features/replay/replay/session/sessionOrchestrator.d.ts.map +0 -1
  707. package/lib/typescript/features/replay/replay/timeline/timelineModels.d.ts.map +0 -1
  708. package/lib/typescript/features/replay/transport/BackendReplayTransport.d.ts.map +0 -1
  709. package/lib/typescript/features/replay/transport/CompositeReplayTransport.d.ts.map +0 -1
  710. package/lib/typescript/features/replay/transport/DesktopReplayTransport.d.ts.map +0 -1
  711. package/lib/typescript/features/replay/transport/ReplayTransport.d.ts.map +0 -1
  712. package/lib/typescript/features/session/BackendSessionAdapter.d.ts.map +0 -1
  713. package/lib/typescript/features/session/DesktopSessionTransport.d.ts.map +0 -1
  714. package/lib/typescript/features/session/JourneyEventPipeline.d.ts.map +0 -1
  715. package/lib/typescript/features/session/ReplayCaptureManager.d.ts.map +0 -1
  716. package/lib/typescript/features/session/ScrollTracker.d.ts.map +0 -1
  717. package/lib/typescript/features/session/SessionManager.d.ts.map +0 -1
  718. package/lib/typescript/features/session/SyncDecisionEngine.d.ts.map +0 -1
  719. package/lib/typescript/features/session/index.d.ts.map +0 -1
  720. package/lib/typescript/features/session/nativeCapture.d.ts.map +0 -1
  721. package/lib/typescript/features/session/outboxFrameCapture.d.ts.map +0 -1
  722. package/lib/typescript/features/session/sessionTypes.d.ts.map +0 -1
  723. package/lib/typescript/features/skan/skanBridge.d.ts.map +0 -1
  724. package/lib/typescript/features/skan/skanConversionManager.d.ts.map +0 -1
  725. package/lib/typescript/index.d.ts.map +0 -1
  726. package/lib/typescript/integrations/fetch/fetchInterceptor.d.ts.map +0 -1
  727. package/lib/typescript/integrations/navigation/screenTracker.d.ts.map +0 -1
  728. package/lib/typescript/integrations/network/bodyCapture.d.ts.map +0 -1
  729. package/lib/typescript/integrations/xhr/xhrInterceptor.d.ts.map +0 -1
  730. package/lib/typescript/metro/composeSourceMap.d.ts.map +0 -1
  731. package/lib/typescript/metro/featureModules.d.ts.map +0 -1
  732. package/lib/typescript/metro/index.d.ts.map +0 -1
  733. package/lib/typescript/metro/optionalDependencyStub.d.ts.map +0 -1
  734. package/lib/typescript/metro/optionalModules.d.ts.map +0 -1
  735. package/lib/typescript/metro/serializerCompose.d.ts.map +0 -1
  736. package/lib/typescript/pipeline/dispatcher/dispatcher.d.ts.map +0 -1
  737. package/lib/typescript/pipeline/envelope/envelope.d.ts.map +0 -1
  738. package/lib/typescript/pipeline/envelope/serializer.d.ts.map +0 -1
  739. package/lib/typescript/pipeline/processors/dedupe.d.ts.map +0 -1
  740. package/lib/typescript/pipeline/processors/enrich.d.ts.map +0 -1
  741. package/lib/typescript/pipeline/processors/sampling.d.ts.map +0 -1
  742. package/lib/typescript/pipeline/processors/sanitize.d.ts.map +0 -1
  743. package/lib/typescript/pipeline/queue/flushQueue.d.ts.map +0 -1
  744. package/lib/typescript/pipeline/queue/memoryQueue.d.ts.map +0 -1
  745. package/lib/typescript/pipeline/queue/persistentQueue.d.ts.map +0 -1
  746. package/lib/typescript/pipeline/queue/queuePolicy.d.ts.map +0 -1
  747. package/lib/typescript/pipeline/scheduler/flushScheduler.d.ts.map +0 -1
  748. package/lib/typescript/pipeline/scheduler/retryPolicy.d.ts.map +0 -1
  749. package/lib/typescript/public/ScaleBunErrorBoundary.d.ts.map +0 -1
  750. package/lib/typescript/public/ScaleBunFacade.d.ts.map +0 -1
  751. package/lib/typescript/public/ScaleBunProvider.d.ts.map +0 -1
  752. package/lib/typescript/public/typedTracker.d.ts.map +0 -1
  753. package/lib/typescript/public/types.d.ts.map +0 -1
  754. package/lib/typescript/push/PushManager.d.ts.map +0 -1
  755. package/lib/typescript/push/adapters/ManualAdapter.d.ts.map +0 -1
  756. package/lib/typescript/push/adapters/NativeBridgeAdapter.d.ts.map +0 -1
  757. package/lib/typescript/push/adapters/NoopAdapter.d.ts.map +0 -1
  758. package/lib/typescript/push/adapters/RNFirebaseMessagingAdapter.d.ts.map +0 -1
  759. package/lib/typescript/push/adapters/loadMessaging.d.ts.map +0 -1
  760. package/lib/typescript/push/adapters/loadNotifee.d.ts.map +0 -1
  761. package/lib/typescript/push/adapters/selectAdapter.d.ts.map +0 -1
  762. package/lib/typescript/push/detect/capabilities.d.ts.map +0 -1
  763. package/lib/typescript/push/index.d.ts.map +0 -1
  764. package/lib/typescript/push/native/nativeNotifications.d.ts.map +0 -1
  765. package/lib/typescript/push/types.d.ts.map +0 -1
  766. package/lib/typescript/specs/NativeReplaySdk.d.ts.map +0 -1
  767. package/lib/typescript/specs/NativeScaleBunCrash.d.ts.map +0 -1
  768. package/lib/typescript/specs/NativeScaleBunInstallReferrer.d.ts.map +0 -1
  769. package/lib/typescript/specs/NativeScaleBunOta.d.ts.map +0 -1
  770. package/lib/typescript/specs/NativeScaleBunPerformance.d.ts.map +0 -1
  771. package/lib/typescript/specs/NativeScaleBunProfiler.d.ts.map +0 -1
  772. package/lib/typescript/specs/NativeScaleBunStorage.d.ts.map +0 -1
  773. package/lib/typescript/storage/StorageBackend.d.ts.map +0 -1
  774. package/lib/typescript/storage/db/sqlite.d.ts.map +0 -1
  775. package/lib/typescript/storage/files/fileStore.d.ts.map +0 -1
  776. package/lib/typescript/transport/auth/sdkSession.d.ts.map +0 -1
  777. package/lib/typescript/transport/backoff/exponentialJitter.d.ts.map +0 -1
  778. package/lib/typescript/transport/http/endpoints.d.ts.map +0 -1
  779. package/lib/typescript/transport/http/httpClient.d.ts.map +0 -1
  780. package/lib/typescript/transport/rateLimit/retryAfter.d.ts.map +0 -1
  781. package/lib/typescript/transport/signing/requestSigner.d.ts.map +0 -1
  782. package/lib/typescript/vendor/protocol/index.d.ts.map +0 -1
  783. package/lib/typescript/vendor/protocol/internal/validation.d.ts.map +0 -1
  784. package/lib/typescript/vendor/sdk-contracts/bridge.d.ts.map +0 -1
  785. package/lib/typescript/vendor/sdk-contracts/config.d.ts.map +0 -1
  786. package/lib/typescript/vendor/sdk-contracts/events.d.ts.map +0 -1
  787. package/lib/typescript/vendor/sdk-contracts/features.d.ts.map +0 -1
  788. package/lib/typescript/vendor/sdk-contracts/index.d.ts.map +0 -1
  789. package/lib/typescript/vendor/sdk-contracts/platform.d.ts.map +0 -1
  790. package/lib/typescript/vendor/sdk-contracts/session-boundary.d.ts.map +0 -1
  791. package/lib/typescript/vendor/sdk-contracts/session.d.ts.map +0 -1
@@ -322,6 +322,22 @@ class SDKBootstrapper {
322
322
  if (features.replay !== false) {
323
323
  try {
324
324
  __DEV__ && _internalLogger.logger.debug('[Bootstrap] Initializing unified SessionManager');
325
+ // SB-10: map the public top-level privacy config onto the replay
326
+ // privacy policy — the field the native capture path actually reads.
327
+ // Unspecified fields fall back to the SDK's safe defaults
328
+ // (redactTextInputs: true), so this only ever tightens masking.
329
+ const pub = this.config.privacy ?? {};
330
+ const sessionReplay = {
331
+ ...(this.config.replay ?? {})
332
+ };
333
+ if (typeof pub.maskTextInputs === 'boolean' || typeof pub.maskImages === 'boolean') {
334
+ sessionReplay.privacyPolicy = {
335
+ redactTextInputs: pub.maskTextInputs ?? true,
336
+ redactImages: pub.maskImages ?? false,
337
+ blockTestIds: [],
338
+ captureExclusions: []
339
+ };
340
+ }
325
341
  const sessionManager = _SessionManager.SessionManager.getInstance(null,
326
342
  // No desktop transport initially
327
343
  _nativeCapture.nativeCapture,
@@ -331,9 +347,7 @@ class SDKBootstrapper {
331
347
  // Also flow the Feature #4 heatmap flag so tap/gesture coords
332
348
  // route to the analytics lane even when no recording is active.
333
349
  {
334
- ...(this.config.replay ? {
335
- sessionReplay: this.config.replay
336
- } : {}),
350
+ sessionReplay: sessionReplay,
337
351
  captureInteractionHeatmap: this.config.captureInteractionHeatmap === true
338
352
  });
339
353
 
@@ -245,6 +245,35 @@ const SHAPE = {
245
245
  })
246
246
  }
247
247
  },
248
+ // SB-10: the public, documented top-level privacy config. Previously only the
249
+ // nested replay privacy took effect; this is validated here and mapped onto the
250
+ // effective replay privacy policy in the bootstrapper so it actually masks.
251
+ privacy: {
252
+ kind: 'obj',
253
+ opt: true,
254
+ shape: {
255
+ maskTextInputs: {
256
+ kind: 'bool',
257
+ opt: true
258
+ },
259
+ maskImages: {
260
+ kind: 'bool',
261
+ opt: true
262
+ },
263
+ redactAuth: {
264
+ kind: 'bool',
265
+ opt: true
266
+ },
267
+ redactCookies: {
268
+ kind: 'bool',
269
+ opt: true
270
+ },
271
+ redactBodies: {
272
+ kind: 'bool',
273
+ opt: true
274
+ }
275
+ }
276
+ },
248
277
  captureInteractionHeatmap: bool(true),
249
278
  // Opt-in: intercept console.* and ship the lines to the Diagnose → Logs lane in SaaS
250
279
  // mode. OFF by default — console output can carry PII/secrets and adds ingest volume,
@@ -9,5 +9,5 @@ exports.SDK_VERSION = void 0;
9
9
  * can attribute telemetry to the SDK build that produced it.
10
10
  * Keep in sync with package.json "version".
11
11
  */
12
- const SDK_VERSION = exports.SDK_VERSION = '1.10.4';
12
+ const SDK_VERSION = exports.SDK_VERSION = '1.10.5';
13
13
  //# sourceMappingURL=version.js.map
@@ -21,29 +21,80 @@ exports.scanObjectForPII = scanObjectForPII;
21
21
 
22
22
  const REDACTED = '[REDACTED]';
23
23
 
24
+ // ─── Safety limits (SB-25 / SB-27) ───────────────────────────────────────────
25
+ // The PII scanner runs synchronously on the JS thread inside the app's own
26
+ // fetch()/XHR call. Left unbounded it is both a ReDoS vector (a large body of
27
+ // alphanumeric text can make regex matching cost seconds — an Android ANR) and
28
+ // a payload-amplification / exfiltration channel (one warning object per match).
29
+ // These bounds keep every scan linear and its output small.
30
+
31
+ /** Never scan more than this many characters — truncate before matching. */
32
+ const MAX_SCAN_INPUT_CHARS = 16 * 1024;
33
+ /** Abandon a scan once it has spent this long on the JS thread. */
34
+ const SCAN_TIME_BUDGET_MS = 10;
35
+ /** Never emit more than this many PII warnings for a single event. */
36
+ const MAX_PII_WARNINGS = 20;
37
+ /** Never pattern-scrub a string value longer than this (bounded work). */
38
+ const MAX_STRING_SCRUB_CHARS = 64 * 1024;
39
+
24
40
  /** Headers that must always be redacted (case-insensitive) */
25
41
  const SENSITIVE_HEADERS = new Set(['authorization', 'cookie', 'set-cookie', 'x-api-key', 'x-auth-token', 'proxy-authorization']);
26
42
 
27
- /** PII detection patterns */
43
+ /**
44
+ * PII detection patterns.
45
+ *
46
+ * SB-25: patterns must be free of catastrophic backtracking. The email pattern
47
+ * uses non-overlapping character classes with bounded quantifiers so it cannot
48
+ * backtrack quadratically on adversarial input like `'a'.repeat(N) + '@' + …`.
49
+ * All quantifiers here are bounded; combined with the input cap above this keeps
50
+ * matching linear in input size.
51
+ */
28
52
  const PII_PATTERNS = [{
29
53
  name: 'email',
30
- pattern: /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g
54
+ 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
31
55
  }, {
32
56
  name: 'phone',
33
- pattern: /(?:\+?\d{1,3}[-.\s]?)?\(?\d{2,4}\)?[-.\s]?\d{3,4}[-.\s]?\d{3,4}/g
57
+ pattern: /\+?\d{1,3}[-.\s]?\(?\d{2,4}\)?[-.\s]?\d{3,4}[-.\s]?\d{3,4}/g
34
58
  }, {
35
59
  name: 'ssn',
36
60
  pattern: /\b\d{3}-\d{2}-\d{4}\b/g
37
61
  }, {
38
62
  name: 'credit_card',
39
63
  pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b/g
64
+ }, {
65
+ name: 'iban',
66
+ pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g
67
+ }, {
68
+ name: 'jwt',
69
+ pattern: /\beyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\b/g
40
70
  }, {
41
71
  name: 'ip_address',
42
72
  pattern: /\b(?:\d{1,3}\.){3}\d{1,3}\b/g
43
73
  }];
44
74
 
75
+ /**
76
+ * Value patterns used to scrub secrets out of raw string bodies (SB-02).
77
+ * These are applied to string values (including parsed-out JSON string leaves
78
+ * and non-JSON bodies) where a denylisted key name is not available. All are
79
+ * bounded / anchored to avoid backtracking.
80
+ */
81
+ const VALUE_SCRUB_PATTERNS = [{
82
+ name: 'jwt',
83
+ pattern: /eyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}/g
84
+ }, {
85
+ name: 'email',
86
+ 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
87
+ }, {
88
+ name: 'iban',
89
+ pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g
90
+ }, {
91
+ name: 'credit_card',
92
+ pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{2,7}\b/g,
93
+ luhn: true
94
+ }];
95
+
45
96
  /** Keys in request/response bodies that likely contain sensitive data */
46
- const SENSITIVE_BODY_KEYS = new Set(['password', 'passwd', 'secret', 'token', 'access_token', 'refresh_token', 'api_key', 'apiKey', 'private_key', 'privateKey', 'credit_card', 'creditCard', 'ccNumber', 'cvv', 'ssn', 'social_security']);
97
+ const SENSITIVE_BODY_KEYS = 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']);
47
98
 
48
99
  // ─── Header Redaction ───────────────────────────────────────────────────────
49
100
 
@@ -70,9 +121,68 @@ function redactHeaders(headers) {
70
121
 
71
122
  // ─── Body Redaction ─────────────────────────────────────────────────────────
72
123
 
124
+ /** Normalize a key for denylist comparison: lowercase, strip separators. */
125
+ function _normalizeKey(key) {
126
+ return key.toLowerCase().replace(/[_\-\s]/g, '');
127
+ }
128
+
129
+ /** Normalized denylist so `access_token`, `accessToken` and `Access-Token` all match. */
130
+ const NORMALIZED_SENSITIVE_KEYS = new Set(Array.from(SENSITIVE_BODY_KEYS, _normalizeKey));
131
+ function _isSensitiveKey(key) {
132
+ return NORMALIZED_SENSITIVE_KEYS.has(_normalizeKey(key));
133
+ }
134
+
135
+ /** Passes the Luhn checksum — used to avoid over-redacting random 16-digit ids. */
136
+ function _luhnValid(digits) {
137
+ const s = digits.replace(/[^\d]/g, '');
138
+ if (s.length < 12 || s.length > 19) return false;
139
+ let sum = 0;
140
+ let alt = false;
141
+ for (let i = s.length - 1; i >= 0; i--) {
142
+ let d = s.charCodeAt(i) - 48;
143
+ if (alt) {
144
+ d *= 2;
145
+ if (d > 9) d -= 9;
146
+ }
147
+ sum += d;
148
+ alt = !alt;
149
+ }
150
+ return sum % 10 === 0;
151
+ }
152
+
153
+ /**
154
+ * Scrub structured secrets (JWT, email, IBAN, Luhn-valid card) out of a raw
155
+ * string value where no denylisted key name is available (SB-02). Bounded work:
156
+ * the string is capped and every pattern is anchored/bounded.
157
+ */
158
+ function _scrubSecretsInString(value) {
159
+ if (value.length > MAX_STRING_SCRUB_CHARS) {
160
+ value = value.slice(0, MAX_STRING_SCRUB_CHARS);
161
+ }
162
+ let out = value;
163
+ try {
164
+ for (const {
165
+ pattern,
166
+ luhn
167
+ } of VALUE_SCRUB_PATTERNS) {
168
+ pattern.lastIndex = 0;
169
+ out = out.replace(pattern, m => luhn && !_luhnValid(m) ? m : REDACTED);
170
+ }
171
+ } catch {
172
+ // Never throw — return whatever scrubbing produced so far.
173
+ }
174
+ return out;
175
+ }
176
+
73
177
  /**
74
178
  * Deep-redact sensitive keys in a body object. Returns a new object.
75
179
  * Handles nested objects and arrays. Never throws.
180
+ *
181
+ * SB-02: string bodies (what JSON.stringify produces — i.e. essentially every
182
+ * React Native network body) are no longer passed through untouched. If a string
183
+ * parses as JSON it is deep-redacted and re-serialized; otherwise structured
184
+ * secrets in the string are scrubbed. This closes the "6 of 9 seeded secrets
185
+ * survived" leak while leaving non-sensitive metadata intact.
76
186
  */
77
187
  function redactBody(body, maxDepth = 10) {
78
188
  try {
@@ -85,9 +195,7 @@ function _redactValue(value, depth, maxDepth) {
85
195
  if (depth > maxDepth) return '[MAX_DEPTH]';
86
196
  if (value === null || value === undefined) return value;
87
197
  if (typeof value === 'string') {
88
- // Don't deeply redact strings at the value level here,
89
- // PII scanning is a separate concern
90
- return value;
198
+ return _redactString(value, depth, maxDepth);
91
199
  }
92
200
  if (Array.isArray(value)) {
93
201
  return value.map(item => _redactValue(item, depth + 1, maxDepth));
@@ -95,7 +203,7 @@ function _redactValue(value, depth, maxDepth) {
95
203
  if (typeof value === 'object') {
96
204
  const result = {};
97
205
  for (const [key, val] of Object.entries(value)) {
98
- if (SENSITIVE_BODY_KEYS.has(key) || SENSITIVE_BODY_KEYS.has(key.toLowerCase())) {
206
+ if (_isSensitiveKey(key)) {
99
207
  result[key] = REDACTED;
100
208
  } else {
101
209
  result[key] = _redactValue(val, depth + 1, maxDepth);
@@ -106,66 +214,145 @@ function _redactValue(value, depth, maxDepth) {
106
214
  return value;
107
215
  }
108
216
 
217
+ /**
218
+ * Redact a string value. If it looks like a JSON object/array, parse it, redact
219
+ * by key, and re-serialize so a serialized body such as
220
+ * `{"password":"...","otp":"..."}` is scrubbed. Otherwise scrub structured
221
+ * secrets out of the raw text.
222
+ */
223
+ function _redactString(value, depth, maxDepth) {
224
+ const trimmed = value.trimStart();
225
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
226
+ try {
227
+ const parsed = JSON.parse(value);
228
+ if (parsed !== null && typeof parsed === 'object') {
229
+ const redacted = _redactValue(parsed, depth + 1, maxDepth);
230
+ return JSON.stringify(redacted);
231
+ }
232
+ } catch {
233
+ // Not valid JSON — fall through to pattern scrubbing.
234
+ }
235
+ }
236
+ return _scrubSecretsInString(value);
237
+ }
238
+
109
239
  // ─── PII Scanning ───────────────────────────────────────────────────────────
110
240
 
111
241
  /**
112
- * Scan a string for PII patterns. Returns list of warnings.
113
- * Never throws.
242
+ * Bounded scan context shared across one logical scan (SB-25 / SB-27). Enforces
243
+ * a wall-clock budget and a warning cap while accumulating per-type counts so the
244
+ * final output can report `{ email: 5000 }` instead of 5000 fragment objects.
114
245
  */
115
- function scanForPII(text, location = 'unknown') {
116
- const warnings = [];
246
+
247
+ function _newScanContext() {
248
+ return {
249
+ warnings: [],
250
+ byType: {},
251
+ deadline: Date.now() + SCAN_TIME_BUDGET_MS,
252
+ truncated: false,
253
+ total: 0
254
+ };
255
+ }
256
+ function _pushWarning(ctx, type, rawMatch, location) {
257
+ ctx.total += 1;
258
+ ctx.byType[type] = (ctx.byType[type] ?? 0) + 1;
259
+ if (ctx.warnings.length < MAX_PII_WARNINGS) {
260
+ ctx.warnings.push({
261
+ type,
262
+ match: _maskPII(rawMatch),
263
+ location
264
+ });
265
+ } else {
266
+ ctx.truncated = true;
267
+ }
268
+ }
269
+
270
+ /**
271
+ * Finalize a scan: append a single summary entry carrying per-type counts when
272
+ * anything was dropped, so consumers see the full magnitude without the SDK
273
+ * shipping every matched fragment (SB-27).
274
+ */
275
+ function _finalizeScan(ctx) {
276
+ if (ctx.truncated) {
277
+ ctx.warnings.push({
278
+ type: '_summary',
279
+ match: `truncated: ${ctx.total} matches`,
280
+ location: `counts:${JSON.stringify(ctx.byType)}`
281
+ });
282
+ }
283
+ return ctx.warnings;
284
+ }
285
+ function _scanTextInto(text, location, ctx) {
286
+ // SB-25: cap the input before any regex runs, so matching cost is bounded
287
+ // regardless of the (attacker-controlled) body size.
288
+ const input = text.length > MAX_SCAN_INPUT_CHARS ? text.slice(0, MAX_SCAN_INPUT_CHARS) : text;
117
289
  try {
118
290
  for (const {
119
291
  name,
120
292
  pattern
121
293
  } of PII_PATTERNS) {
122
- // Reset regex state
123
294
  pattern.lastIndex = 0;
124
- let match = pattern.exec(text);
295
+ let match = pattern.exec(input);
125
296
  while (match) {
126
- warnings.push({
127
- type: name,
128
- match: _maskPII(match[0]),
129
- location
130
- });
131
- match = pattern.exec(text);
297
+ _pushWarning(ctx, name, match[0], location);
298
+ // SB-25: abandon the scan if it has exceeded its time budget.
299
+ if (Date.now() > ctx.deadline) {
300
+ ctx.truncated = true;
301
+ return;
302
+ }
303
+ if (pattern.lastIndex === match.index) pattern.lastIndex++; // guard zero-width
304
+ match = pattern.exec(input);
132
305
  }
133
306
  }
134
307
  } catch {
135
- // Never throw — return whatever we found so far
308
+ // Never throw — keep whatever was found so far.
136
309
  }
137
- return warnings;
138
310
  }
139
311
 
140
312
  /**
141
- * Scan an object deeply for PII. Returns list of warnings.
313
+ * Scan a string for PII patterns. Returns a bounded list of warnings.
314
+ * Never throws.
315
+ */
316
+ function scanForPII(text, location = 'unknown') {
317
+ const ctx = _newScanContext();
318
+ _scanTextInto(text, location, ctx);
319
+ return _finalizeScan(ctx);
320
+ }
321
+
322
+ /**
323
+ * Scan an object deeply for PII. Returns a bounded list of warnings.
142
324
  * Never throws.
143
325
  */
144
326
  function scanObjectForPII(obj, basePath = '', maxDepth = 10) {
145
- const warnings = [];
327
+ const ctx = _newScanContext();
146
328
  try {
147
- _scanObject(obj, basePath, 0, maxDepth, warnings);
329
+ _scanObjectInto(obj, basePath, 0, maxDepth, ctx);
148
330
  } catch {
149
331
  // Never throw
150
332
  }
151
- return warnings;
333
+ return _finalizeScan(ctx);
152
334
  }
153
- function _scanObject(value, path, depth, maxDepth, warnings) {
335
+ function _scanObjectInto(value, path, depth, maxDepth, ctx) {
154
336
  if (depth > maxDepth || value === null || value === undefined) return;
337
+ if (ctx.truncated || Date.now() > ctx.deadline) {
338
+ ctx.truncated = true;
339
+ return;
340
+ }
155
341
  if (typeof value === 'string') {
156
- const found = scanForPII(value, path);
157
- warnings.push(...found);
342
+ _scanTextInto(value, path, ctx);
158
343
  return;
159
344
  }
160
345
  if (Array.isArray(value)) {
161
- value.forEach((item, i) => {
162
- _scanObject(item, `${path}[${i}]`, depth + 1, maxDepth, warnings);
163
- });
346
+ for (let i = 0; i < value.length; i++) {
347
+ if (ctx.truncated) return;
348
+ _scanObjectInto(value[i], `${path}[${i}]`, depth + 1, maxDepth, ctx);
349
+ }
164
350
  return;
165
351
  }
166
352
  if (typeof value === 'object') {
167
353
  for (const [key, val] of Object.entries(value)) {
168
- _scanObject(val, path ? `${path}.${key}` : key, depth + 1, maxDepth, warnings);
354
+ if (ctx.truncated) return;
355
+ _scanObjectInto(val, path ? `${path}.${key}` : key, depth + 1, maxDepth, ctx);
169
356
  }
170
357
  }
171
358
  }
@@ -207,20 +394,19 @@ function redactUrl(url) {
207
394
  * Apply full redaction pipeline to a network event.
208
395
  */
209
396
  function redactNetworkEvent(event) {
210
- const piiWarnings = [];
211
-
212
- // Scan URL for PII
397
+ // One bounded context for the whole event so the aggregate warning count and
398
+ // scan time stay capped across url + request + response (SB-25 / SB-27).
399
+ const ctx = _newScanContext();
213
400
  if (event.url) {
214
- piiWarnings.push(...scanForPII(event.url, 'url'));
401
+ _scanTextInto(event.url, 'url', ctx);
215
402
  }
216
-
217
- // Scan bodies for PII
218
403
  if (event.requestBody) {
219
- piiWarnings.push(...scanObjectForPII(event.requestBody, 'requestBody'));
404
+ _scanObjectInto(event.requestBody, 'requestBody', 0, 10, ctx);
220
405
  }
221
406
  if (event.responseBody) {
222
- piiWarnings.push(...scanObjectForPII(event.responseBody, 'responseBody'));
407
+ _scanObjectInto(event.responseBody, 'responseBody', 0, 10, ctx);
223
408
  }
409
+ const piiWarnings = _finalizeScan(ctx);
224
410
  return {
225
411
  url: event.url ? redactUrl(event.url) : '',
226
412
  method: event.method ?? 'GET',
@@ -583,7 +583,15 @@ function ScaleBunDebugRoot({
583
583
  });
584
584
  }
585
585
  } catch {/* no-throw */}
586
- }, 200);
586
+ // 600ms, was 200ms. The race this defer exists for happens on the FIRST tap of a
587
+ // mount: native isn't confirmed yet, JS emitted at 200ms, then the first native
588
+ // event crossed the bridge at ~300-400ms — recording the same tap TWICE, with the
589
+ // JS copy missing normalizedX/Y whenever the async root-view measure hadn't
590
+ // resolved (an interaction the heatmap cannot place). QA hit exactly this pair.
591
+ // The wider defer lets the first native event cancel the JS emission instead; on
592
+ // devices with no native tracker at all it merely delays a background emission,
593
+ // which nothing user-visible waits on.
594
+ }, 600);
587
595
  }
588
596
  touchStartRef.current = null;
589
597
  } catch {/* no-throw */}
@@ -41,12 +41,22 @@ class AutoScreenDetector {
41
41
  _manualScreen = null;
42
42
  _manualScreenTs = 0;
43
43
  _autoScreen = null;
44
+ /** `name#key` of the last auto-detected screen VISIT — see _extractActiveVisit. */
45
+ _autoVisitSig = null;
44
46
  _navigationRef = null;
45
47
  _navListenerRemover = null;
46
48
  _navListenerWired = false;
47
49
  _heuristicTimer = null;
48
50
  _started = false;
49
51
  _lastEmittedScreen = null;
52
+ _lastEmittedTs = 0;
53
+ /**
54
+ * Cross-source emit dedup window — see _emitScreenChange. Long enough to absorb the manual
55
+ * beacon and the navRef listener both reporting the SAME transition (they land within the
56
+ * 30ms nav debounce plus a render), short enough that a genuine re-visit of the same route
57
+ * a moment later is a new screen view rather than silence.
58
+ */
59
+ static EMIT_DEDUP_WINDOW_MS = 800;
50
60
  _navDebounceTimer = null;
51
61
  /** Whether the React Navigation exports were actually replaced — see _autoHookReactNavigation. */
52
62
  _autoHookInstalled = false;
@@ -105,6 +115,7 @@ class AutoScreenDetector {
105
115
  if (this.isManualScreenActive()) return;
106
116
  if (name !== this._autoScreen) {
107
117
  this._autoScreen = name;
118
+ this._autoVisitSig = name; // native lifecycle carries no route key — name-only visit
108
119
  this._emitScreenChange(name, 'heuristic');
109
120
  }
110
121
  } catch {/* no-throw */}
@@ -167,10 +178,13 @@ class AutoScreenDetector {
167
178
  try {
168
179
  const state = typeof container.getRootState === 'function' ? container.getRootState() : null;
169
180
  if (state) {
170
- const screen = this._extractActiveRoute(state);
171
- if (screen && screen !== this._autoScreen) {
172
- this._autoScreen = screen;
173
- this._emitScreenChange(screen, 'navRef');
181
+ // Compared by name#key so a re-VISIT of the same route
182
+ // (new key) is recorded — name-only comparison swallowed it.
183
+ const visit = this._extractActiveVisit(state);
184
+ if (visit && this._visitSig(visit) !== this._autoVisitSig) {
185
+ this._autoScreen = visit.name;
186
+ this._autoVisitSig = this._visitSig(visit);
187
+ this._emitScreenChange(visit.name, 'navRef');
174
188
  }
175
189
  }
176
190
  } catch {/* no-throw */}
@@ -184,10 +198,11 @@ class AutoScreenDetector {
184
198
  if (typeof container.getRootState === 'function') {
185
199
  const state = container.getRootState();
186
200
  if (state) {
187
- const screen = this._extractActiveRoute(state);
188
- if (screen) {
189
- this._autoScreen = screen;
190
- this._emitScreenChange(screen, 'navRef');
201
+ const visit = this._extractActiveVisit(state);
202
+ if (visit) {
203
+ this._autoScreen = visit.name;
204
+ this._autoVisitSig = this._visitSig(visit);
205
+ this._emitScreenChange(visit.name, 'navRef');
191
206
  }
192
207
  }
193
208
  }
@@ -223,10 +238,14 @@ class AutoScreenDetector {
223
238
  if (navContainer) {
224
239
  const state = typeof navContainer.getRootState === 'function' ? navContainer.getRootState() : null;
225
240
  if (state) {
226
- const screen = this._extractActiveRoute(state);
227
- if (screen && screen !== this._autoScreen) {
228
- this._autoScreen = screen;
229
- this._emitScreenChange(screen, 'heuristic');
241
+ // name#key comparison: a re-opened route (same name, fresh key) seen
242
+ // across poll ticks is a new visit even when every intermediate screen
243
+ // fell between polls — the case a name-only diff could never see.
244
+ const visit = this._extractActiveVisit(state);
245
+ if (visit && this._visitSig(visit) !== this._autoVisitSig) {
246
+ this._autoScreen = visit.name;
247
+ this._autoVisitSig = this._visitSig(visit);
248
+ this._emitScreenChange(visit.name, 'heuristic');
230
249
  }
231
250
  }
232
251
  }
@@ -266,6 +285,22 @@ class AutoScreenDetector {
266
285
  * Handles nested navigators by walking to the deepest active route.
267
286
  */
268
287
  _extractActiveRoute(state) {
288
+ return this._extractActiveVisit(state)?.name ?? null;
289
+ }
290
+
291
+ /**
292
+ * Extract the active route's name AND its React Navigation route `key`.
293
+ *
294
+ * The key is what makes re-VISITS detectable. Comparing names alone collapses two
295
+ * different visits to the same route into one screen view: leave Details, open Details
296
+ * again, and `name === _autoScreen` swallowed the second visit entirely (QA: "opened the
297
+ * same route again and no screen event was recorded"). React Navigation mints a fresh
298
+ * `key` for every pushed route instance, so a re-push of the same name is a NEW key —
299
+ * name+key comparison records each visit while a mere re-render of the same instance
300
+ * (same key) still emits nothing. States without keys degrade to name-only, i.e. the
301
+ * old behaviour, never worse.
302
+ */
303
+ _extractActiveVisit(state) {
269
304
  try {
270
305
  if (!state?.routes || typeof state.index !== 'number') return null;
271
306
  const activeRoute = state.routes[state.index];
@@ -273,15 +308,25 @@ class AutoScreenDetector {
273
308
 
274
309
  // If this route has nested state, recurse to find the deepest active route
275
310
  if (activeRoute.state?.routes && typeof activeRoute.state.index === 'number') {
276
- const nested = this._extractActiveRoute(activeRoute.state);
311
+ const nested = this._extractActiveVisit(activeRoute.state);
277
312
  if (nested) return nested;
278
313
  }
279
- return activeRoute.name || null;
314
+ if (!activeRoute.name) return null;
315
+ const rawKey = activeRoute.key;
316
+ return {
317
+ name: activeRoute.name,
318
+ key: typeof rawKey === 'string' ? rawKey : null
319
+ };
280
320
  } catch {
281
321
  return null;
282
322
  }
283
323
  }
284
324
 
325
+ /** `name#key` signature of one screen VISIT — what the auto paths dedup on. */
326
+ _visitSig(visit) {
327
+ return visit.key ? `${visit.name}#${visit.key}` : visit.name;
328
+ }
329
+
285
330
  // ─── Lifecycle ──────────────────────────────────────────────────────
286
331
 
287
332
  /** Start auto-detection (idempotent) */
@@ -471,9 +516,16 @@ class AutoScreenDetector {
471
516
 
472
517
  _emitScreenChange(name, source) {
473
518
  try {
474
- // Deduplicate: don't emit if the screen is the same as last emitted
475
- if (name === this._lastEmittedScreen) return;
519
+ // Cross-source dedup, TIME-BOUNDED. This used to drop any name equal to the last
520
+ // emitted, forever so re-entering a route whose departure was never observed
521
+ // (heuristic poll missed the intermediate screen, or the user re-pushed the same
522
+ // route) was swallowed on EVERY path, manual beacons included (QA: "opened the
523
+ // same route again, no screen event"). Same name within the window is still one
524
+ // transition double-reported by two sources; same name after it is a new visit.
525
+ const emitNow = Date.now();
526
+ if (name === this._lastEmittedScreen && emitNow - this._lastEmittedTs < AutoScreenDetector.EMIT_DEDUP_WINDOW_MS) return;
476
527
  this._lastEmittedScreen = name;
528
+ this._lastEmittedTs = emitNow;
477
529
  for (const cb of this._listeners) {
478
530
  try {
479
531
  cb(name, source);