@scalebun/react-native 1.10.3 → 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 +417 -57
  3. package/dist/scalebun.slim.js +414 -62
  4. package/lib/commonjs/bootstrap/SDKBootstrapper.js +31 -5
  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 +30 -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 +32 -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
@@ -10,6 +10,22 @@
10
10
 
11
11
  const REDACTED = '[REDACTED]';
12
12
 
13
+ // ─── Safety limits (SB-25 / SB-27) ───────────────────────────────────────────
14
+ // The PII scanner runs synchronously on the JS thread inside the app's own
15
+ // fetch()/XHR call. Left unbounded it is both a ReDoS vector (a large body of
16
+ // alphanumeric text can make regex matching cost seconds — an Android ANR) and
17
+ // a payload-amplification / exfiltration channel (one warning object per match).
18
+ // These bounds keep every scan linear and its output small.
19
+
20
+ /** Never scan more than this many characters — truncate before matching. */
21
+ const MAX_SCAN_INPUT_CHARS = 16 * 1024;
22
+ /** Abandon a scan once it has spent this long on the JS thread. */
23
+ const SCAN_TIME_BUDGET_MS = 10;
24
+ /** Never emit more than this many PII warnings for a single event. */
25
+ const MAX_PII_WARNINGS = 20;
26
+ /** Never pattern-scrub a string value longer than this (bounded work). */
27
+ const MAX_STRING_SCRUB_CHARS = 64 * 1024;
28
+
13
29
  /** Headers that must always be redacted (case-insensitive) */
14
30
  const SENSITIVE_HEADERS = new Set([
15
31
  'authorization',
@@ -20,15 +36,38 @@ const SENSITIVE_HEADERS = new Set([
20
36
  'proxy-authorization',
21
37
  ]);
22
38
 
23
- /** PII detection patterns */
39
+ /**
40
+ * PII detection patterns.
41
+ *
42
+ * SB-25: patterns must be free of catastrophic backtracking. The email pattern
43
+ * uses non-overlapping character classes with bounded quantifiers so it cannot
44
+ * backtrack quadratically on adversarial input like `'a'.repeat(N) + '@' + …`.
45
+ * All quantifiers here are bounded; combined with the input cap above this keeps
46
+ * matching linear in input size.
47
+ */
24
48
  const PII_PATTERNS: Array<{ name: string; pattern: RegExp }> = [
25
- { name: 'email', pattern: /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/g },
26
- { name: 'phone', pattern: /(?:\+?\d{1,3}[-.\s]?)?\(?\d{2,4}\)?[-.\s]?\d{3,4}[-.\s]?\d{3,4}/g },
49
+ { name: 'email', 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 },
50
+ { name: 'phone', pattern: /\+?\d{1,3}[-.\s]?\(?\d{2,4}\)?[-.\s]?\d{3,4}[-.\s]?\d{3,4}/g },
27
51
  { name: 'ssn', pattern: /\b\d{3}-\d{2}-\d{4}\b/g },
28
52
  { name: 'credit_card', pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{4}\b/g },
53
+ { name: 'iban', pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g },
54
+ { name: 'jwt', pattern: /\beyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\b/g },
29
55
  { name: 'ip_address', pattern: /\b(?:\d{1,3}\.){3}\d{1,3}\b/g },
30
56
  ];
31
57
 
58
+ /**
59
+ * Value patterns used to scrub secrets out of raw string bodies (SB-02).
60
+ * These are applied to string values (including parsed-out JSON string leaves
61
+ * and non-JSON bodies) where a denylisted key name is not available. All are
62
+ * bounded / anchored to avoid backtracking.
63
+ */
64
+ const VALUE_SCRUB_PATTERNS: Array<{ name: string; pattern: RegExp; luhn?: boolean }> = [
65
+ { name: 'jwt', pattern: /eyJ[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}\.[A-Za-z0-9_-]{5,}/g },
66
+ { name: 'email', 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 },
67
+ { name: 'iban', pattern: /\b[A-Z]{2}\d{2}[A-Z0-9]{10,30}\b/g },
68
+ { name: 'credit_card', pattern: /\b\d{4}[-\s]?\d{4}[-\s]?\d{4}[-\s]?\d{2,7}\b/g, luhn: true },
69
+ ];
70
+
32
71
  /** Keys in request/response bodies that likely contain sensitive data */
33
72
  const SENSITIVE_BODY_KEYS = new Set([
34
73
  'password',
@@ -37,16 +76,30 @@ const SENSITIVE_BODY_KEYS = new Set([
37
76
  'token',
38
77
  'access_token',
39
78
  'refresh_token',
79
+ 'id_token',
40
80
  'api_key',
41
81
  'apiKey',
42
82
  'private_key',
43
83
  'privateKey',
44
84
  'credit_card',
45
85
  'creditCard',
46
- 'ccNumber',
86
+ 'ccnumber',
87
+ 'cardnumber',
88
+ 'card_number',
89
+ 'pan',
47
90
  'cvv',
91
+ 'cvc',
48
92
  'ssn',
49
93
  'social_security',
94
+ 'nationalid',
95
+ 'national_id',
96
+ 'iban',
97
+ 'otp',
98
+ 'pin',
99
+ 'totp',
100
+ 'mfa',
101
+ 'mnemonic',
102
+ 'seed',
50
103
  ]);
51
104
 
52
105
  // ─── Header Redaction ───────────────────────────────────────────────────────
@@ -76,9 +129,68 @@ export function redactHeaders(
76
129
 
77
130
  // ─── Body Redaction ─────────────────────────────────────────────────────────
78
131
 
132
+ /** Normalize a key for denylist comparison: lowercase, strip separators. */
133
+ function _normalizeKey(key: string): string {
134
+ return key.toLowerCase().replace(/[_\-\s]/g, '');
135
+ }
136
+
137
+ /** Normalized denylist so `access_token`, `accessToken` and `Access-Token` all match. */
138
+ const NORMALIZED_SENSITIVE_KEYS = new Set(
139
+ Array.from(SENSITIVE_BODY_KEYS, _normalizeKey),
140
+ );
141
+
142
+ function _isSensitiveKey(key: string): boolean {
143
+ return NORMALIZED_SENSITIVE_KEYS.has(_normalizeKey(key));
144
+ }
145
+
146
+ /** Passes the Luhn checksum — used to avoid over-redacting random 16-digit ids. */
147
+ function _luhnValid(digits: string): boolean {
148
+ const s = digits.replace(/[^\d]/g, '');
149
+ if (s.length < 12 || s.length > 19) return false;
150
+ let sum = 0;
151
+ let alt = false;
152
+ for (let i = s.length - 1; i >= 0; i--) {
153
+ let d = s.charCodeAt(i) - 48;
154
+ if (alt) {
155
+ d *= 2;
156
+ if (d > 9) d -= 9;
157
+ }
158
+ sum += d;
159
+ alt = !alt;
160
+ }
161
+ return sum % 10 === 0;
162
+ }
163
+
164
+ /**
165
+ * Scrub structured secrets (JWT, email, IBAN, Luhn-valid card) out of a raw
166
+ * string value where no denylisted key name is available (SB-02). Bounded work:
167
+ * the string is capped and every pattern is anchored/bounded.
168
+ */
169
+ function _scrubSecretsInString(value: string): string {
170
+ if (value.length > MAX_STRING_SCRUB_CHARS) {
171
+ value = value.slice(0, MAX_STRING_SCRUB_CHARS);
172
+ }
173
+ let out = value;
174
+ try {
175
+ for (const { pattern, luhn } of VALUE_SCRUB_PATTERNS) {
176
+ pattern.lastIndex = 0;
177
+ out = out.replace(pattern, m => (luhn && !_luhnValid(m) ? m : REDACTED));
178
+ }
179
+ } catch {
180
+ // Never throw — return whatever scrubbing produced so far.
181
+ }
182
+ return out;
183
+ }
184
+
79
185
  /**
80
186
  * Deep-redact sensitive keys in a body object. Returns a new object.
81
187
  * Handles nested objects and arrays. Never throws.
188
+ *
189
+ * SB-02: string bodies (what JSON.stringify produces — i.e. essentially every
190
+ * React Native network body) are no longer passed through untouched. If a string
191
+ * parses as JSON it is deep-redacted and re-serialized; otherwise structured
192
+ * secrets in the string are scrubbed. This closes the "6 of 9 seeded secrets
193
+ * survived" leak while leaving non-sensitive metadata intact.
82
194
  */
83
195
  export function redactBody(body: unknown, maxDepth = 10): unknown {
84
196
  try {
@@ -93,9 +205,7 @@ function _redactValue(value: unknown, depth: number, maxDepth: number): unknown
93
205
  if (value === null || value === undefined) return value;
94
206
 
95
207
  if (typeof value === 'string') {
96
- // Don't deeply redact strings at the value level here,
97
- // PII scanning is a separate concern
98
- return value;
208
+ return _redactString(value, depth, maxDepth);
99
209
  }
100
210
 
101
211
  if (Array.isArray(value)) {
@@ -105,7 +215,7 @@ function _redactValue(value: unknown, depth: number, maxDepth: number): unknown
105
215
  if (typeof value === 'object') {
106
216
  const result: Record<string, unknown> = {};
107
217
  for (const [key, val] of Object.entries(value as Record<string, unknown>)) {
108
- if (SENSITIVE_BODY_KEYS.has(key) || SENSITIVE_BODY_KEYS.has(key.toLowerCase())) {
218
+ if (_isSensitiveKey(key)) {
109
219
  result[key] = REDACTED;
110
220
  } else {
111
221
  result[key] = _redactValue(val, depth + 1, maxDepth);
@@ -117,6 +227,28 @@ function _redactValue(value: unknown, depth: number, maxDepth: number): unknown
117
227
  return value;
118
228
  }
119
229
 
230
+ /**
231
+ * Redact a string value. If it looks like a JSON object/array, parse it, redact
232
+ * by key, and re-serialize so a serialized body such as
233
+ * `{"password":"...","otp":"..."}` is scrubbed. Otherwise scrub structured
234
+ * secrets out of the raw text.
235
+ */
236
+ function _redactString(value: string, depth: number, maxDepth: number): string {
237
+ const trimmed = value.trimStart();
238
+ if (trimmed.startsWith('{') || trimmed.startsWith('[')) {
239
+ try {
240
+ const parsed = JSON.parse(value);
241
+ if (parsed !== null && typeof parsed === 'object') {
242
+ const redacted = _redactValue(parsed, depth + 1, maxDepth);
243
+ return JSON.stringify(redacted);
244
+ }
245
+ } catch {
246
+ // Not valid JSON — fall through to pattern scrubbing.
247
+ }
248
+ }
249
+ return _scrubSecretsInString(value);
250
+ }
251
+
120
252
  // ─── PII Scanning ───────────────────────────────────────────────────────────
121
253
 
122
254
  export interface PIIWarning {
@@ -127,33 +259,90 @@ export interface PIIWarning {
127
259
  }
128
260
 
129
261
  /**
130
- * Scan a string for PII patterns. Returns list of warnings.
131
- * Never throws.
262
+ * Bounded scan context shared across one logical scan (SB-25 / SB-27). Enforces
263
+ * a wall-clock budget and a warning cap while accumulating per-type counts so the
264
+ * final output can report `{ email: 5000 }` instead of 5000 fragment objects.
132
265
  */
133
- export function scanForPII(text: string, location = 'unknown'): PIIWarning[] {
134
- const warnings: PIIWarning[] = [];
266
+ interface ScanContext {
267
+ warnings: PIIWarning[];
268
+ byType: Record<string, number>;
269
+ deadline: number;
270
+ truncated: boolean;
271
+ total: number;
272
+ }
273
+
274
+ function _newScanContext(): ScanContext {
275
+ return {
276
+ warnings: [],
277
+ byType: {},
278
+ deadline: Date.now() + SCAN_TIME_BUDGET_MS,
279
+ truncated: false,
280
+ total: 0,
281
+ };
282
+ }
283
+
284
+ function _pushWarning(ctx: ScanContext, type: string, rawMatch: string, location: string): void {
285
+ ctx.total += 1;
286
+ ctx.byType[type] = (ctx.byType[type] ?? 0) + 1;
287
+ if (ctx.warnings.length < MAX_PII_WARNINGS) {
288
+ ctx.warnings.push({ type, match: _maskPII(rawMatch), location });
289
+ } else {
290
+ ctx.truncated = true;
291
+ }
292
+ }
293
+
294
+ /**
295
+ * Finalize a scan: append a single summary entry carrying per-type counts when
296
+ * anything was dropped, so consumers see the full magnitude without the SDK
297
+ * shipping every matched fragment (SB-27).
298
+ */
299
+ function _finalizeScan(ctx: ScanContext): PIIWarning[] {
300
+ if (ctx.truncated) {
301
+ ctx.warnings.push({
302
+ type: '_summary',
303
+ match: `truncated: ${ctx.total} matches`,
304
+ location: `counts:${JSON.stringify(ctx.byType)}`,
305
+ });
306
+ }
307
+ return ctx.warnings;
308
+ }
309
+
310
+ function _scanTextInto(text: string, location: string, ctx: ScanContext): void {
311
+ // SB-25: cap the input before any regex runs, so matching cost is bounded
312
+ // regardless of the (attacker-controlled) body size.
313
+ const input = text.length > MAX_SCAN_INPUT_CHARS ? text.slice(0, MAX_SCAN_INPUT_CHARS) : text;
135
314
  try {
136
315
  for (const { name, pattern } of PII_PATTERNS) {
137
- // Reset regex state
138
316
  pattern.lastIndex = 0;
139
- let match = pattern.exec(text);
317
+ let match = pattern.exec(input);
140
318
  while (match) {
141
- warnings.push({
142
- type: name,
143
- match: _maskPII(match[0]),
144
- location,
145
- });
146
- match = pattern.exec(text);
319
+ _pushWarning(ctx, name, match[0], location);
320
+ // SB-25: abandon the scan if it has exceeded its time budget.
321
+ if (Date.now() > ctx.deadline) {
322
+ ctx.truncated = true;
323
+ return;
324
+ }
325
+ if (pattern.lastIndex === match.index) pattern.lastIndex++; // guard zero-width
326
+ match = pattern.exec(input);
147
327
  }
148
328
  }
149
329
  } catch {
150
- // Never throw — return whatever we found so far
330
+ // Never throw — keep whatever was found so far.
151
331
  }
152
- return warnings;
153
332
  }
154
333
 
155
334
  /**
156
- * Scan an object deeply for PII. Returns list of warnings.
335
+ * Scan a string for PII patterns. Returns a bounded list of warnings.
336
+ * Never throws.
337
+ */
338
+ export function scanForPII(text: string, location = 'unknown'): PIIWarning[] {
339
+ const ctx = _newScanContext();
340
+ _scanTextInto(text, location, ctx);
341
+ return _finalizeScan(ctx);
342
+ }
343
+
344
+ /**
345
+ * Scan an object deeply for PII. Returns a bounded list of warnings.
157
346
  * Never throws.
158
347
  */
159
348
  export function scanObjectForPII(
@@ -161,40 +350,45 @@ export function scanObjectForPII(
161
350
  basePath = '',
162
351
  maxDepth = 10,
163
352
  ): PIIWarning[] {
164
- const warnings: PIIWarning[] = [];
353
+ const ctx = _newScanContext();
165
354
  try {
166
- _scanObject(obj, basePath, 0, maxDepth, warnings);
355
+ _scanObjectInto(obj, basePath, 0, maxDepth, ctx);
167
356
  } catch {
168
357
  // Never throw
169
358
  }
170
- return warnings;
359
+ return _finalizeScan(ctx);
171
360
  }
172
361
 
173
- function _scanObject(
362
+ function _scanObjectInto(
174
363
  value: unknown,
175
364
  path: string,
176
365
  depth: number,
177
366
  maxDepth: number,
178
- warnings: PIIWarning[],
367
+ ctx: ScanContext,
179
368
  ): void {
180
369
  if (depth > maxDepth || value === null || value === undefined) return;
370
+ if (ctx.truncated || Date.now() > ctx.deadline) {
371
+ ctx.truncated = true;
372
+ return;
373
+ }
181
374
 
182
375
  if (typeof value === 'string') {
183
- const found = scanForPII(value, path);
184
- warnings.push(...found);
376
+ _scanTextInto(value, path, ctx);
185
377
  return;
186
378
  }
187
379
 
188
380
  if (Array.isArray(value)) {
189
- value.forEach((item, i) => {
190
- _scanObject(item, `${path}[${i}]`, depth + 1, maxDepth, warnings);
191
- });
381
+ for (let i = 0; i < value.length; i++) {
382
+ if (ctx.truncated) return;
383
+ _scanObjectInto(value[i], `${path}[${i}]`, depth + 1, maxDepth, ctx);
384
+ }
192
385
  return;
193
386
  }
194
387
 
195
388
  if (typeof value === 'object') {
196
389
  for (const [key, val] of Object.entries(value as Record<string, unknown>)) {
197
- _scanObject(val, path ? `${path}.${key}` : key, depth + 1, maxDepth, warnings);
390
+ if (ctx.truncated) return;
391
+ _scanObjectInto(val, path ? `${path}.${key}` : key, depth + 1, maxDepth, ctx);
198
392
  }
199
393
  }
200
394
  }
@@ -261,20 +455,19 @@ export function redactNetworkEvent(event: {
261
455
  requestBody?: unknown;
262
456
  responseBody?: unknown;
263
457
  }): RedactedNetworkEvent {
264
- const piiWarnings: PIIWarning[] = [];
265
-
266
- // Scan URL for PII
458
+ // One bounded context for the whole event so the aggregate warning count and
459
+ // scan time stay capped across url + request + response (SB-25 / SB-27).
460
+ const ctx = _newScanContext();
267
461
  if (event.url) {
268
- piiWarnings.push(...scanForPII(event.url, 'url'));
462
+ _scanTextInto(event.url, 'url', ctx);
269
463
  }
270
-
271
- // Scan bodies for PII
272
464
  if (event.requestBody) {
273
- piiWarnings.push(...scanObjectForPII(event.requestBody, 'requestBody'));
465
+ _scanObjectInto(event.requestBody, 'requestBody', 0, 10, ctx);
274
466
  }
275
467
  if (event.responseBody) {
276
- piiWarnings.push(...scanObjectForPII(event.responseBody, 'responseBody'));
468
+ _scanObjectInto(event.responseBody, 'responseBody', 0, 10, ctx);
277
469
  }
470
+ const piiWarnings = _finalizeScan(ctx);
278
471
 
279
472
  return {
280
473
  url: event.url ? redactUrl(event.url) : '',
@@ -574,7 +574,15 @@ export function ScaleBunDebugRoot({
574
574
  });
575
575
  }
576
576
  } catch { /* no-throw */ }
577
- }, 200);
577
+ // 600ms, was 200ms. The race this defer exists for happens on the FIRST tap of a
578
+ // mount: native isn't confirmed yet, JS emitted at 200ms, then the first native
579
+ // event crossed the bridge at ~300-400ms — recording the same tap TWICE, with the
580
+ // JS copy missing normalizedX/Y whenever the async root-view measure hadn't
581
+ // resolved (an interaction the heatmap cannot place). QA hit exactly this pair.
582
+ // The wider defer lets the first native event cancel the JS emission instead; on
583
+ // devices with no native tracker at all it merely delays a background emission,
584
+ // which nothing user-visible waits on.
585
+ }, 600);
578
586
  }
579
587
 
580
588
  touchStartRef.current = null;
@@ -49,12 +49,22 @@ export class AutoScreenDetector {
49
49
  private _manualScreen: string | null = null;
50
50
  private _manualScreenTs = 0;
51
51
  private _autoScreen: string | null = null;
52
+ /** `name#key` of the last auto-detected screen VISIT — see _extractActiveVisit. */
53
+ private _autoVisitSig: string | null = null;
52
54
  private _navigationRef: any = null;
53
55
  private _navListenerRemover: (() => void) | null = null;
54
56
  private _navListenerWired = false;
55
57
  private _heuristicTimer: ReturnType<typeof setInterval> | null = null;
56
58
  private _started = false;
57
59
  private _lastEmittedScreen: string | null = null;
60
+ private _lastEmittedTs = 0;
61
+ /**
62
+ * Cross-source emit dedup window — see _emitScreenChange. Long enough to absorb the manual
63
+ * beacon and the navRef listener both reporting the SAME transition (they land within the
64
+ * 30ms nav debounce plus a render), short enough that a genuine re-visit of the same route
65
+ * a moment later is a new screen view rather than silence.
66
+ */
67
+ private static readonly EMIT_DEDUP_WINDOW_MS = 800;
58
68
  private _navDebounceTimer: ReturnType<typeof setTimeout> | null = null;
59
69
  /** Whether the React Navigation exports were actually replaced — see _autoHookReactNavigation. */
60
70
  private _autoHookInstalled = false;
@@ -114,6 +124,7 @@ export class AutoScreenDetector {
114
124
  if (this.isManualScreenActive()) return;
115
125
  if (name !== this._autoScreen) {
116
126
  this._autoScreen = name;
127
+ this._autoVisitSig = name; // native lifecycle carries no route key — name-only visit
117
128
  this._emitScreenChange(name, 'heuristic');
118
129
  }
119
130
  } catch { /* no-throw */ }
@@ -180,10 +191,13 @@ export class AutoScreenDetector {
180
191
  ? container.getRootState()
181
192
  : null;
182
193
  if (state) {
183
- const screen = this._extractActiveRoute(state);
184
- if (screen && screen !== this._autoScreen) {
185
- this._autoScreen = screen;
186
- this._emitScreenChange(screen, 'navRef');
194
+ // Compared by name#key so a re-VISIT of the same route
195
+ // (new key) is recorded — name-only comparison swallowed it.
196
+ const visit = this._extractActiveVisit(state);
197
+ if (visit && this._visitSig(visit) !== this._autoVisitSig) {
198
+ this._autoScreen = visit.name;
199
+ this._autoVisitSig = this._visitSig(visit);
200
+ this._emitScreenChange(visit.name, 'navRef');
187
201
  }
188
202
  }
189
203
  } catch { /* no-throw */ }
@@ -199,10 +213,11 @@ export class AutoScreenDetector {
199
213
  if (typeof container.getRootState === 'function') {
200
214
  const state = container.getRootState();
201
215
  if (state) {
202
- const screen = this._extractActiveRoute(state);
203
- if (screen) {
204
- this._autoScreen = screen;
205
- this._emitScreenChange(screen, 'navRef');
216
+ const visit = this._extractActiveVisit(state);
217
+ if (visit) {
218
+ this._autoScreen = visit.name;
219
+ this._autoVisitSig = this._visitSig(visit);
220
+ this._emitScreenChange(visit.name, 'navRef');
206
221
  }
207
222
  }
208
223
  }
@@ -240,10 +255,14 @@ export class AutoScreenDetector {
240
255
  ? navContainer.getRootState()
241
256
  : null;
242
257
  if (state) {
243
- const screen = this._extractActiveRoute(state);
244
- if (screen && screen !== this._autoScreen) {
245
- this._autoScreen = screen;
246
- this._emitScreenChange(screen, 'heuristic');
258
+ // name#key comparison: a re-opened route (same name, fresh key) seen
259
+ // across poll ticks is a new visit even when every intermediate screen
260
+ // fell between polls — the case a name-only diff could never see.
261
+ const visit = this._extractActiveVisit(state);
262
+ if (visit && this._visitSig(visit) !== this._autoVisitSig) {
263
+ this._autoScreen = visit.name;
264
+ this._autoVisitSig = this._visitSig(visit);
265
+ this._emitScreenChange(visit.name, 'heuristic');
247
266
  }
248
267
  }
249
268
  }
@@ -284,6 +303,24 @@ export class AutoScreenDetector {
284
303
  * Handles nested navigators by walking to the deepest active route.
285
304
  */
286
305
  private _extractActiveRoute(state: NavigationState | null | undefined): string | null {
306
+ return this._extractActiveVisit(state)?.name ?? null;
307
+ }
308
+
309
+ /**
310
+ * Extract the active route's name AND its React Navigation route `key`.
311
+ *
312
+ * The key is what makes re-VISITS detectable. Comparing names alone collapses two
313
+ * different visits to the same route into one screen view: leave Details, open Details
314
+ * again, and `name === _autoScreen` swallowed the second visit entirely (QA: "opened the
315
+ * same route again and no screen event was recorded"). React Navigation mints a fresh
316
+ * `key` for every pushed route instance, so a re-push of the same name is a NEW key —
317
+ * name+key comparison records each visit while a mere re-render of the same instance
318
+ * (same key) still emits nothing. States without keys degrade to name-only, i.e. the
319
+ * old behaviour, never worse.
320
+ */
321
+ private _extractActiveVisit(
322
+ state: NavigationState | null | undefined,
323
+ ): { name: string; key: string | null } | null {
287
324
  try {
288
325
  if (!state?.routes || typeof state.index !== 'number') return null;
289
326
 
@@ -292,16 +329,23 @@ export class AutoScreenDetector {
292
329
 
293
330
  // If this route has nested state, recurse to find the deepest active route
294
331
  if (activeRoute.state?.routes && typeof activeRoute.state.index === 'number') {
295
- const nested = this._extractActiveRoute(activeRoute.state);
332
+ const nested = this._extractActiveVisit(activeRoute.state);
296
333
  if (nested) return nested;
297
334
  }
298
335
 
299
- return activeRoute.name || null;
336
+ if (!activeRoute.name) return null;
337
+ const rawKey = (activeRoute as unknown as { key?: unknown }).key;
338
+ return { name: activeRoute.name, key: typeof rawKey === 'string' ? rawKey : null };
300
339
  } catch {
301
340
  return null;
302
341
  }
303
342
  }
304
343
 
344
+ /** `name#key` signature of one screen VISIT — what the auto paths dedup on. */
345
+ private _visitSig(visit: { name: string; key: string | null }): string {
346
+ return visit.key ? `${visit.name}#${visit.key}` : visit.name;
347
+ }
348
+
305
349
  // ─── Lifecycle ──────────────────────────────────────────────────────
306
350
 
307
351
  /** Start auto-detection (idempotent) */
@@ -489,9 +533,19 @@ export class AutoScreenDetector {
489
533
 
490
534
  private _emitScreenChange(name: string, source: 'manual' | 'navRef' | 'heuristic'): void {
491
535
  try {
492
- // Deduplicate: don't emit if the screen is the same as last emitted
493
- if (name === this._lastEmittedScreen) return;
536
+ // Cross-source dedup, TIME-BOUNDED. This used to drop any name equal to the last
537
+ // emitted, forever so re-entering a route whose departure was never observed
538
+ // (heuristic poll missed the intermediate screen, or the user re-pushed the same
539
+ // route) was swallowed on EVERY path, manual beacons included (QA: "opened the
540
+ // same route again, no screen event"). Same name within the window is still one
541
+ // transition double-reported by two sources; same name after it is a new visit.
542
+ const emitNow = Date.now();
543
+ if (
544
+ name === this._lastEmittedScreen &&
545
+ emitNow - this._lastEmittedTs < AutoScreenDetector.EMIT_DEDUP_WINDOW_MS
546
+ ) return;
494
547
  this._lastEmittedScreen = name;
548
+ this._lastEmittedTs = emitNow;
495
549
 
496
550
  for (const cb of this._listeners) {
497
551
  try {