@scalebun/react-native 1.0.2 → 1.0.4

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 (1694) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +65 -65
  3. package/android/build.gradle +86 -86
  4. package/android/consumer-rules.pro +28 -28
  5. package/android/src/main/AndroidManifest.xml +14 -14
  6. package/android/src/main/java/com/scalebun/core/crash/CrashStorage.kt +155 -41
  7. package/android/src/main/java/com/scalebun/core/crash/NativeCrashHandler.kt +93 -79
  8. package/android/src/main/java/com/scalebun/core/performance/ANRWatchdog.kt +100 -100
  9. package/android/src/main/java/com/scalebun/core/performance/AppStartCollector.kt +132 -132
  10. package/android/src/main/java/com/scalebun/core/performance/FrameMetricsCollector.kt +230 -230
  11. package/android/src/main/java/com/scalebun/core/performance/PerformanceCore.kt +165 -165
  12. package/android/src/main/java/com/scalebun/profiler/ProfilerModule.kt +398 -398
  13. package/android/src/main/java/com/scalebun/profiler/ProfilerPackage.kt +24 -24
  14. package/android/src/main/java/com/scalebun/profiler/collectors/CpuCollector.kt +161 -161
  15. package/android/src/main/java/com/scalebun/profiler/collectors/IncidentDetector.kt +223 -223
  16. package/android/src/main/java/com/scalebun/profiler/collectors/MemoryCollector.kt +157 -157
  17. package/android/src/main/java/com/scalebun/profiler/collectors/RenderCollector.kt +194 -194
  18. package/android/src/main/java/com/scalebun/profiler/collectors/SamplerScheduler.kt +218 -218
  19. package/android/src/main/java/com/scalebun/profiler/collectors/ThreadCollector.kt +142 -142
  20. package/android/src/main/java/com/scalebun/replaysdk/ReplaySdkModule.kt +982 -966
  21. package/android/src/main/java/com/scalebun/replaysdk/ReplaySdkPackage.kt +24 -24
  22. package/android/src/main/java/com/scalebun/replaysdk/capture/CaptureReason.kt +47 -47
  23. package/android/src/main/java/com/scalebun/replaysdk/capture/FrameCaptureManager.kt +508 -508
  24. package/android/src/main/java/com/scalebun/replaysdk/capture/FrameCaptureScheduler.kt +187 -187
  25. package/android/src/main/java/com/scalebun/replaysdk/capture/UiStabilityDetector.kt +214 -214
  26. package/android/src/main/java/com/scalebun/replaysdk/core/ReplayConfig.kt +144 -144
  27. package/android/src/main/java/com/scalebun/replaysdk/core/ReplayLogger.kt +31 -31
  28. package/android/src/main/java/com/scalebun/replaysdk/core/SessionIdGenerator.kt +15 -15
  29. package/android/src/main/java/com/scalebun/replaysdk/models/ReplayModels.kt +88 -88
  30. package/android/src/main/java/com/scalebun/replaysdk/outbox/NativeOutbox.kt +541 -541
  31. package/android/src/main/java/com/scalebun/replaysdk/outbox/OutboxUploader.kt +407 -407
  32. package/android/src/main/java/com/scalebun/replaysdk/privacy/PrivacyMaskProcessor.kt +126 -126
  33. package/android/src/main/java/com/scalebun/replaysdk/session/SessionManager.kt +281 -281
  34. package/android/src/main/java/com/scalebun/replaysdk/storage/ReplayStorage.kt +136 -136
  35. package/android/src/main/java/com/scalebun/replaysdk/timeline/TimelineCollector.kt +28 -28
  36. package/android/src/main/java/com/scalebun/replaysdk/tracking/InteractionTracker.kt +419 -419
  37. package/android/src/main/java/com/scalebun/replaysdk/tracking/ScreenTracker.kt +20 -20
  38. package/android/src/main/java/com/scalebun/replaysdk/transport/ReplayTransport.kt +99 -99
  39. package/android/src/main/java/com/scalebun/replaysdk/voice/VoiceRecorder.kt +121 -121
  40. package/android/src/main/java/com/scalebun/replaysdk/voice/VoiceTranscriber.kt +170 -104
  41. package/android/src/main/java/com/scalebun/rn/ScaleBunPackage.kt +113 -113
  42. package/android/src/main/java/com/scalebun/rn/crash/ScaleBunCrashModule.kt +164 -100
  43. package/android/src/main/java/com/scalebun/rn/crash/ScaleBunCrashPackage.kt +22 -22
  44. package/android/src/main/java/com/scalebun/rn/engage/ScaleBunEngageModule.kt +579 -579
  45. package/android/src/main/java/com/scalebun/rn/engage/ScaleBunEngagePackage.kt +22 -22
  46. package/android/src/main/java/com/scalebun/rn/engage/ScaleBunNotificationPresenter.kt +110 -110
  47. package/android/src/main/java/com/scalebun/rn/ota/BundleDownloader.kt +170 -0
  48. package/android/src/main/java/com/scalebun/rn/ota/ScaleBunOtaModule.kt +284 -136
  49. package/android/src/main/java/com/scalebun/rn/ota/SlotManager.kt +311 -285
  50. package/android/src/main/java/com/scalebun/rn/performance/PerformanceModule.kt +206 -206
  51. package/android/src/main/java/com/scalebun/rn/referrer/ScaleBunInstallReferrerModule.kt +77 -77
  52. package/android/src/main/java/com/scalebun/rn/storage/ScaleBunStorageModule.kt +68 -68
  53. package/android/src/main/java/com/scalebun/storage/KvFileStore.kt +174 -174
  54. package/android/src/newarch/java/com/scalebun/profiler/ProfilerSpec.kt +12 -12
  55. package/android/src/newarch/java/com/scalebun/replaysdk/ReplaySdkSpec.kt +12 -12
  56. package/android/src/newarch/java/com/scalebun/rn/crash/ScaleBunCrashSpec.kt +15 -15
  57. package/android/src/newarch/java/com/scalebun/rn/ota/ScaleBunOtaSpec.kt +16 -16
  58. package/android/src/newarch/java/com/scalebun/rn/performance/PerformanceSpec.kt +12 -12
  59. package/android/src/newarch/java/com/scalebun/rn/referrer/ScaleBunInstallReferrerSpec.kt +14 -14
  60. package/android/src/newarch/java/com/scalebun/rn/storage/ScaleBunStorageSpec.kt +16 -16
  61. package/android/src/oldarch/java/com/scalebun/profiler/ProfilerSpec.kt +34 -34
  62. package/android/src/oldarch/java/com/scalebun/replaysdk/ReplaySdkSpec.kt +76 -76
  63. package/android/src/oldarch/java/com/scalebun/rn/crash/ScaleBunCrashSpec.kt +21 -21
  64. package/android/src/oldarch/java/com/scalebun/rn/ota/ScaleBunOtaSpec.kt +31 -25
  65. package/android/src/oldarch/java/com/scalebun/rn/performance/PerformanceSpec.kt +27 -27
  66. package/android/src/oldarch/java/com/scalebun/rn/referrer/ScaleBunInstallReferrerSpec.kt +18 -18
  67. package/android/src/oldarch/java/com/scalebun/rn/storage/ScaleBunStorageSpec.kt +26 -26
  68. package/bin/lib/iosCodemod.js +266 -266
  69. package/bin/scalebun.js +640 -640
  70. package/ios/Capture/InteractionTracker.swift +191 -191
  71. package/ios/Capture/PrivacyMaskProcessor.swift +158 -158
  72. package/ios/Capture/ScreenshotCaptureManager.swift +315 -315
  73. package/ios/Capture/WindowResolver.swift +63 -63
  74. package/ios/Core/ReplayConfig.swift +100 -100
  75. package/ios/Core/ReplayLogger.swift +22 -22
  76. package/ios/Core/SessionIdGenerator.swift +18 -18
  77. package/ios/Crash/ScaleBunCrashBridge.mm +69 -63
  78. package/ios/Crash/ScaleBunCrashHandler.swift +80 -67
  79. package/ios/Crash/ScaleBunCrashModule.swift +83 -69
  80. package/ios/Crash/ScaleBunCrashSignalBridge.h +49 -18
  81. package/ios/Crash/ScaleBunCrashSignalBridge.m +296 -131
  82. package/ios/Crash/ScaleBunCrashSignalStress.c +137 -0
  83. package/ios/Crash/ScaleBunCrashStorage.swift +121 -46
  84. package/ios/Engage/ScaleBunEngageBridge.m +32 -32
  85. package/ios/Engage/ScaleBunEngageModule.swift +250 -250
  86. package/ios/Engage/ScaleBunPushNotificationCenter.swift +185 -185
  87. package/ios/Ota/BundleDownloader.swift +182 -0
  88. package/ios/Ota/OtaSlotManager.swift +290 -264
  89. package/ios/Ota/ScaleBunOtaBridge.mm +77 -68
  90. package/ios/Ota/ScaleBunOtaEventsModule.swift +61 -0
  91. package/ios/Ota/ScaleBunOtaModule.swift +176 -123
  92. package/ios/Outbox/NativeOutbox.swift +598 -598
  93. package/ios/Outbox/OutboxUploader.swift +431 -431
  94. package/ios/Performance/ScaleBunPerformanceBridge.m +32 -32
  95. package/ios/Performance/ScaleBunPerformanceModule.swift +290 -290
  96. package/ios/PrivacyInfo.xcprivacy +97 -97
  97. package/ios/Profiler/ScaleBunProfilerBridge.m +55 -55
  98. package/ios/Profiler/ScaleBunProfilerModule.swift +972 -972
  99. package/ios/ReplaySdk-Bridging-Header.h +2 -2
  100. package/ios/ReplaySdk.swift +608 -608
  101. package/ios/ReplaySdkBridge.m +94 -94
  102. package/ios/Session/SessionManager.swift +203 -203
  103. package/ios/Skan/ScaleBunSkanBridge.m +14 -14
  104. package/ios/Skan/ScaleBunSkanModule.swift +61 -61
  105. package/ios/Storage/ReplayStorage.swift +61 -61
  106. package/ios/Storage/ScaleBunKvFileStore.swift +125 -125
  107. package/ios/Storage/ScaleBunStorageBridge.mm +72 -72
  108. package/ios/Storage/ScaleBunStorageModule.swift +57 -57
  109. package/ios/Transport/ReplayTransport.swift +70 -70
  110. package/ios/VoiceRecorder.swift +145 -145
  111. package/lib/commonjs/analytics/EventTracker.js +64 -36
  112. package/lib/commonjs/analytics/EventTracker.js.map +1 -1
  113. package/lib/commonjs/analytics/automaticEvents.js +7 -7
  114. package/lib/commonjs/analytics/automaticEvents.js.map +1 -1
  115. package/lib/commonjs/analytics/batching.js +24 -24
  116. package/lib/commonjs/analytics/batching.js.map +1 -1
  117. package/lib/commonjs/analytics/eventLane.js +13 -13
  118. package/lib/commonjs/analytics/eventLane.js.map +1 -1
  119. package/lib/commonjs/bootstrap/FeatureRegistry.js +17 -17
  120. package/lib/commonjs/bootstrap/FeatureRegistry.js.map +1 -1
  121. package/lib/commonjs/bootstrap/SDKBootstrapper.js +83 -56
  122. package/lib/commonjs/bootstrap/SDKBootstrapper.js.map +1 -1
  123. package/lib/commonjs/bucketing/fnv1a32.js +10 -10
  124. package/lib/commonjs/bucketing/fnv1a32.js.map +1 -1
  125. package/lib/commonjs/compat/codepush.js +6 -6
  126. package/lib/commonjs/compat/codepush.js.map +1 -1
  127. package/lib/commonjs/config/ConfigManager.js +20 -20
  128. package/lib/commonjs/config/ConfigManager.js.map +1 -1
  129. package/lib/commonjs/config/configTypes.js.map +1 -1
  130. package/lib/commonjs/core/architecture.js +23 -23
  131. package/lib/commonjs/core/architecture.js.map +1 -1
  132. package/lib/commonjs/core/clock/now.js +2 -2
  133. package/lib/commonjs/core/clock/now.js.map +1 -1
  134. package/lib/commonjs/core/config/defaults.js.map +1 -1
  135. package/lib/commonjs/core/config/schema.js +112 -104
  136. package/lib/commonjs/core/config/schema.js.map +1 -1
  137. package/lib/commonjs/core/constants/endpoints.js +7 -7
  138. package/lib/commonjs/core/constants/endpoints.js.map +1 -1
  139. package/lib/commonjs/core/constants/timings.js +5 -5
  140. package/lib/commonjs/core/constants/timings.js.map +1 -1
  141. package/lib/commonjs/core/constants/version.js +4 -4
  142. package/lib/commonjs/core/constants/version.js.map +1 -1
  143. package/lib/commonjs/core/context/app.js.map +1 -1
  144. package/lib/commonjs/core/context/device.js +130 -0
  145. package/lib/commonjs/core/context/device.js.map +1 -1
  146. package/lib/commonjs/core/context/session.js.map +1 -1
  147. package/lib/commonjs/core/context/user.js.map +1 -1
  148. package/lib/commonjs/core/contracts/IFeature.js.map +1 -1
  149. package/lib/commonjs/core/di/container.js.map +1 -1
  150. package/lib/commonjs/core/encoding/base64.js +9 -9
  151. package/lib/commonjs/core/encoding/base64.js.map +1 -1
  152. package/lib/commonjs/core/id/deviceId.js +4 -4
  153. package/lib/commonjs/core/id/deviceId.js.map +1 -1
  154. package/lib/commonjs/core/id/sessionId.js.map +1 -1
  155. package/lib/commonjs/core/lifecycle/appLifecycle.js.map +1 -1
  156. package/lib/commonjs/core/lifecycle/crashSafe.js +3 -3
  157. package/lib/commonjs/core/lifecycle/crashSafe.js.map +1 -1
  158. package/lib/commonjs/core/logger/errorClassification.js +30 -30
  159. package/lib/commonjs/core/logger/errorClassification.js.map +1 -1
  160. package/lib/commonjs/core/logger/internalLogger.js.map +1 -1
  161. package/lib/commonjs/core/logger/levels.js.map +1 -1
  162. package/lib/commonjs/crypto/hmacSha256.js +6 -6
  163. package/lib/commonjs/crypto/hmacSha256.js.map +1 -1
  164. package/lib/commonjs/debug/bootstrap.js +26 -26
  165. package/lib/commonjs/debug/bootstrap.js.map +1 -1
  166. package/lib/commonjs/debug/commands.js +10 -10
  167. package/lib/commonjs/debug/commands.js.map +1 -1
  168. package/lib/commonjs/debug/configBuilder.js +6 -6
  169. package/lib/commonjs/debug/configBuilder.js.map +1 -1
  170. package/lib/commonjs/debug/exportBridge.js +17 -17
  171. package/lib/commonjs/debug/exportBridge.js.map +1 -1
  172. package/lib/commonjs/debug/hostResolver.js +10 -10
  173. package/lib/commonjs/debug/hostResolver.js.map +1 -1
  174. package/lib/commonjs/debug/index.js.map +1 -1
  175. package/lib/commonjs/debug/metrics.js.map +1 -1
  176. package/lib/commonjs/debug/perf.js +11 -11
  177. package/lib/commonjs/debug/perf.js.map +1 -1
  178. package/lib/commonjs/debug/perfWiring.js +10 -10
  179. package/lib/commonjs/debug/perfWiring.js.map +1 -1
  180. package/lib/commonjs/debug/protocol.js.map +1 -1
  181. package/lib/commonjs/debug/redaction.js +26 -26
  182. package/lib/commonjs/debug/redaction.js.map +1 -1
  183. package/lib/commonjs/debug/replayWiring.js +13 -12
  184. package/lib/commonjs/debug/replayWiring.js.map +1 -1
  185. package/lib/commonjs/debug/screenTracking.js +7 -7
  186. package/lib/commonjs/debug/screenTracking.js.map +1 -1
  187. package/lib/commonjs/debug/sessionWiring.js +8 -8
  188. package/lib/commonjs/debug/sessionWiring.js.map +1 -1
  189. package/lib/commonjs/debug/stream.js +26 -26
  190. package/lib/commonjs/debug/stream.js.map +1 -1
  191. package/lib/commonjs/debug/transport.js +24 -24
  192. package/lib/commonjs/debug/transport.js.map +1 -1
  193. package/lib/commonjs/features/bugreport/BugReportFeature.js +112 -0
  194. package/lib/commonjs/features/bugreport/BugReportFeature.js.map +1 -0
  195. package/lib/commonjs/features/bugreport/buildPayload.js +97 -0
  196. package/lib/commonjs/features/bugreport/buildPayload.js.map +1 -0
  197. package/lib/commonjs/features/bugreport/index.js.map +1 -1
  198. package/lib/commonjs/features/crash/CrashFeature.js +27 -9
  199. package/lib/commonjs/features/crash/CrashFeature.js.map +1 -1
  200. package/lib/commonjs/features/crash/CrashReporter.js +53 -29
  201. package/lib/commonjs/features/crash/CrashReporter.js.map +1 -1
  202. package/lib/commonjs/features/crash/NativeCrashFeature.js +7 -7
  203. package/lib/commonjs/features/crash/NativeCrashFeature.js.map +1 -1
  204. package/lib/commonjs/features/crash/capture.js +27 -9
  205. package/lib/commonjs/features/crash/capture.js.map +1 -1
  206. package/lib/commonjs/features/crash/globalHandler.js +11 -11
  207. package/lib/commonjs/features/crash/globalHandler.js.map +1 -1
  208. package/lib/commonjs/features/crash/index.js.map +1 -1
  209. package/lib/commonjs/features/crash/nativeCrashBridge.js +179 -44
  210. package/lib/commonjs/features/crash/nativeCrashBridge.js.map +1 -1
  211. package/lib/commonjs/features/crash/rejectionHandler.js +123 -0
  212. package/lib/commonjs/features/crash/rejectionHandler.js.map +1 -0
  213. package/lib/commonjs/features/engage/EngageAnchor.js +3 -3
  214. package/lib/commonjs/features/engage/EngageAnchor.js.map +1 -1
  215. package/lib/commonjs/features/engage/EngageArchetypeRenderers.js +19 -19
  216. package/lib/commonjs/features/engage/EngageArchetypeRenderers.js.map +1 -1
  217. package/lib/commonjs/features/engage/EngageInAppView.js +35 -35
  218. package/lib/commonjs/features/engage/EngageInAppView.js.map +1 -1
  219. package/lib/commonjs/features/engage/EngageInlinePlacement.js +7 -7
  220. package/lib/commonjs/features/engage/EngageInlinePlacement.js.map +1 -1
  221. package/lib/commonjs/features/engage/EngagePromptProvider.js +124 -88
  222. package/lib/commonjs/features/engage/EngagePromptProvider.js.map +1 -1
  223. package/lib/commonjs/features/engage/EngagePromptView.js +65 -32
  224. package/lib/commonjs/features/engage/EngagePromptView.js.map +1 -1
  225. package/lib/commonjs/features/engage/EngageTransport.js +79 -79
  226. package/lib/commonjs/features/engage/EngageTransport.js.map +1 -1
  227. package/lib/commonjs/features/engage/EngageVariantContent.js +10 -10
  228. package/lib/commonjs/features/engage/EngageVariantContent.js.map +1 -1
  229. package/lib/commonjs/features/engage/__test-support__/reactNativeStub.js +7 -7
  230. package/lib/commonjs/features/engage/__test-support__/reactNativeStub.js.map +1 -1
  231. package/lib/commonjs/features/engage/attachmentCapture.js +12 -12
  232. package/lib/commonjs/features/engage/attachmentCapture.js.map +1 -1
  233. package/lib/commonjs/features/engage/captureVoiceAttachment.js +20 -20
  234. package/lib/commonjs/features/engage/captureVoiceAttachment.js.map +1 -1
  235. package/lib/commonjs/features/engage/engageCoachmarkTour.js +4 -4
  236. package/lib/commonjs/features/engage/engageCoachmarkTour.js.map +1 -1
  237. package/lib/commonjs/features/engage/engageGameLogic.js.map +1 -1
  238. package/lib/commonjs/features/engage/engageMediaSizing.js +15 -15
  239. package/lib/commonjs/features/engage/engageMediaSizing.js.map +1 -1
  240. package/lib/commonjs/features/engage/engageMultiStepSheet.js +6 -6
  241. package/lib/commonjs/features/engage/engageMultiStepSheet.js.map +1 -1
  242. package/lib/commonjs/features/engage/engageOutcome.js +6 -6
  243. package/lib/commonjs/features/engage/engageOutcome.js.map +1 -1
  244. package/lib/commonjs/features/engage/engagePushTokenBridge.js +20 -20
  245. package/lib/commonjs/features/engage/engagePushTokenBridge.js.map +1 -1
  246. package/lib/commonjs/features/engage/engageShakeBridge.js +16 -16
  247. package/lib/commonjs/features/engage/engageShakeBridge.js.map +1 -1
  248. package/lib/commonjs/features/engage/engageSignals.js.map +1 -1
  249. package/lib/commonjs/features/engage/engageStoreReviewBridge.js +19 -19
  250. package/lib/commonjs/features/engage/engageStoreReviewBridge.js.map +1 -1
  251. package/lib/commonjs/features/engage/engageTestSeenStore.js +29 -29
  252. package/lib/commonjs/features/engage/engageTestSeenStore.js.map +1 -1
  253. package/lib/commonjs/features/engage/engageThrottle.js +117 -86
  254. package/lib/commonjs/features/engage/engageThrottle.js.map +1 -1
  255. package/lib/commonjs/features/engage/engageTriggerEngine.js +17 -7
  256. package/lib/commonjs/features/engage/engageTriggerEngine.js.map +1 -1
  257. package/lib/commonjs/features/engage/engageTypes.js +33 -33
  258. package/lib/commonjs/features/engage/engageTypes.js.map +1 -1
  259. package/lib/commonjs/features/engage/engageVariantResolver.js +13 -13
  260. package/lib/commonjs/features/engage/engageVariantResolver.js.map +1 -1
  261. package/lib/commonjs/features/engage/engageWindowInsets.js +10 -10
  262. package/lib/commonjs/features/engage/engageWindowInsets.js.map +1 -1
  263. package/lib/commonjs/features/engage/gestureTriggerDetector.js.map +1 -1
  264. package/lib/commonjs/features/engage/transcription/TranscriptionProvider.js +16 -16
  265. package/lib/commonjs/features/engage/transcription/TranscriptionProvider.js.map +1 -1
  266. package/lib/commonjs/features/install-referrer/installReferrer.js +26 -26
  267. package/lib/commonjs/features/install-referrer/installReferrer.js.map +1 -1
  268. package/lib/commonjs/features/journey/ScaleBunDebugRoot.js +30 -29
  269. package/lib/commonjs/features/journey/ScaleBunDebugRoot.js.map +1 -1
  270. package/lib/commonjs/features/journey/ScaleBunFlatList.js +15 -15
  271. package/lib/commonjs/features/journey/ScaleBunFlatList.js.map +1 -1
  272. package/lib/commonjs/features/journey/ScaleBunImpression.js +22 -22
  273. package/lib/commonjs/features/journey/ScaleBunImpression.js.map +1 -1
  274. package/lib/commonjs/features/journey/ScaleBunScrollView.js +20 -20
  275. package/lib/commonjs/features/journey/ScaleBunScrollView.js.map +1 -1
  276. package/lib/commonjs/features/journey/ScaleBunSectionList.js +15 -15
  277. package/lib/commonjs/features/journey/ScaleBunSectionList.js.map +1 -1
  278. package/lib/commonjs/features/journey/calibrationContext.js +12 -12
  279. package/lib/commonjs/features/journey/calibrationContext.js.map +1 -1
  280. package/lib/commonjs/features/journey/gestureBuffer.js +9 -9
  281. package/lib/commonjs/features/journey/gestureBuffer.js.map +1 -1
  282. package/lib/commonjs/features/journey/gestureDetector.js +10 -10
  283. package/lib/commonjs/features/journey/gestureDetector.js.map +1 -1
  284. package/lib/commonjs/features/journey/impression.js +18 -18
  285. package/lib/commonjs/features/journey/impression.js.map +1 -1
  286. package/lib/commonjs/features/journey/journeyManager.js +6 -6
  287. package/lib/commonjs/features/journey/journeyManager.js.map +1 -1
  288. package/lib/commonjs/features/journey/journeyTypes.js +5 -5
  289. package/lib/commonjs/features/journey/journeyTypes.js.map +1 -1
  290. package/lib/commonjs/features/journey/navDetector.js +7 -7
  291. package/lib/commonjs/features/journey/navDetector.js.map +1 -1
  292. package/lib/commonjs/features/journey/screenshotHelper.js +7 -7
  293. package/lib/commonjs/features/journey/screenshotHelper.js.map +1 -1
  294. package/lib/commonjs/features/journey/targetRegistry.js +17 -17
  295. package/lib/commonjs/features/journey/targetRegistry.js.map +1 -1
  296. package/lib/commonjs/features/journey/touchTarget.js +29 -29
  297. package/lib/commonjs/features/journey/touchTarget.js.map +1 -1
  298. package/lib/commonjs/features/navigation/AutoScreenDetector.js +114 -71
  299. package/lib/commonjs/features/navigation/AutoScreenDetector.js.map +1 -1
  300. package/lib/commonjs/features/network/NetworkFeature.js +23 -23
  301. package/lib/commonjs/features/network/NetworkFeature.js.map +1 -1
  302. package/lib/commonjs/features/network/index.js +5 -5
  303. package/lib/commonjs/features/network/index.js.map +1 -1
  304. package/lib/commonjs/features/ota/OtaEventEmitter.js +21 -21
  305. package/lib/commonjs/features/ota/OtaEventEmitter.js.map +1 -1
  306. package/lib/commonjs/features/ota/OtaOrchestrator.js +595 -42
  307. package/lib/commonjs/features/ota/OtaOrchestrator.js.map +1 -1
  308. package/lib/commonjs/features/ota/OtaTypes.js.map +1 -1
  309. package/lib/commonjs/features/ota/deviceAttributes.js +48 -0
  310. package/lib/commonjs/features/ota/deviceAttributes.js.map +1 -0
  311. package/lib/commonjs/features/ota/environment.js +172 -0
  312. package/lib/commonjs/features/ota/environment.js.map +1 -0
  313. package/lib/commonjs/features/ota/geoCountry.js +93 -0
  314. package/lib/commonjs/features/ota/geoCountry.js.map +1 -0
  315. package/lib/commonjs/features/ota/retry.js +96 -0
  316. package/lib/commonjs/features/ota/retry.js.map +1 -0
  317. package/lib/commonjs/features/ota/signature.js +115 -0
  318. package/lib/commonjs/features/ota/signature.js.map +1 -0
  319. package/lib/commonjs/features/ota/useOtaUpdate.js +18 -15
  320. package/lib/commonjs/features/ota/useOtaUpdate.js.map +1 -1
  321. package/lib/commonjs/features/performance/PerformanceFeature.js +49 -35
  322. package/lib/commonjs/features/performance/PerformanceFeature.js.map +1 -1
  323. package/lib/commonjs/features/performance/collectors/AppLaunchCollector.js +13 -13
  324. package/lib/commonjs/features/performance/collectors/AppLaunchCollector.js.map +1 -1
  325. package/lib/commonjs/features/performance/collectors/AutoScreenLoadCollector.js +32 -32
  326. package/lib/commonjs/features/performance/collectors/AutoScreenLoadCollector.js.map +1 -1
  327. package/lib/commonjs/features/performance/collectors/CustomTraceCollector.js +13 -13
  328. package/lib/commonjs/features/performance/collectors/CustomTraceCollector.js.map +1 -1
  329. package/lib/commonjs/features/performance/collectors/FrameMetricsCollector.js +80 -20
  330. package/lib/commonjs/features/performance/collectors/FrameMetricsCollector.js.map +1 -1
  331. package/lib/commonjs/features/performance/collectors/JsStallCollector.js +12 -12
  332. package/lib/commonjs/features/performance/collectors/JsStallCollector.js.map +1 -1
  333. package/lib/commonjs/features/performance/collectors/NetworkPerfCollector.js +10 -10
  334. package/lib/commonjs/features/performance/collectors/NetworkPerfCollector.js.map +1 -1
  335. package/lib/commonjs/features/performance/collectors/ScreenLoadCollector.js +11 -11
  336. package/lib/commonjs/features/performance/collectors/ScreenLoadCollector.js.map +1 -1
  337. package/lib/commonjs/features/performance/collectors/UiHangCollector.js +5 -5
  338. package/lib/commonjs/features/performance/collectors/UiHangCollector.js.map +1 -1
  339. package/lib/commonjs/features/performance/config.js +11 -11
  340. package/lib/commonjs/features/performance/config.js.map +1 -1
  341. package/lib/commonjs/features/performance/getNativePerformanceModule.js +11 -11
  342. package/lib/commonjs/features/performance/getNativePerformanceModule.js.map +1 -1
  343. package/lib/commonjs/features/performance/index.js.map +1 -1
  344. package/lib/commonjs/features/performance/metrics/MetricsEngine.js +13 -13
  345. package/lib/commonjs/features/performance/metrics/MetricsEngine.js.map +1 -1
  346. package/lib/commonjs/features/performance/models.js +8 -8
  347. package/lib/commonjs/features/performance/models.js.map +1 -1
  348. package/lib/commonjs/features/performance/transport/PerformanceTransport.js +31 -6
  349. package/lib/commonjs/features/performance/transport/PerformanceTransport.js.map +1 -1
  350. package/lib/commonjs/features/profiler/ProfilerFeature.js +53 -53
  351. package/lib/commonjs/features/profiler/ProfilerFeature.js.map +1 -1
  352. package/lib/commonjs/features/profiler/config.js +15 -15
  353. package/lib/commonjs/features/profiler/config.js.map +1 -1
  354. package/lib/commonjs/features/profiler/contracts.js +22 -22
  355. package/lib/commonjs/features/profiler/contracts.js.map +1 -1
  356. package/lib/commonjs/features/profiler/index.js.map +1 -1
  357. package/lib/commonjs/features/profiler/models.js +44 -44
  358. package/lib/commonjs/features/profiler/models.js.map +1 -1
  359. package/lib/commonjs/features/profiler/transport/ProfilerTransport.js +9 -9
  360. package/lib/commonjs/features/profiler/transport/ProfilerTransport.js.map +1 -1
  361. package/lib/commonjs/features/replay/bridge/adapters/bridgeAdapter.js +17 -17
  362. package/lib/commonjs/features/replay/bridge/adapters/bridgeAdapter.js.map +1 -1
  363. package/lib/commonjs/features/replay/bridge/eventEmitter.js +8 -8
  364. package/lib/commonjs/features/replay/bridge/eventEmitter.js.map +1 -1
  365. package/lib/commonjs/features/replay/bridge/nativeModule.js +20 -20
  366. package/lib/commonjs/features/replay/bridge/nativeModule.js.map +1 -1
  367. package/lib/commonjs/features/replay/core/clock/clock.js +6 -6
  368. package/lib/commonjs/features/replay/core/clock/clock.js.map +1 -1
  369. package/lib/commonjs/features/replay/core/config/defaults.js +2 -2
  370. package/lib/commonjs/features/replay/core/config/defaults.js.map +1 -1
  371. package/lib/commonjs/features/replay/core/config/validator.js +5 -5
  372. package/lib/commonjs/features/replay/core/config/validator.js.map +1 -1
  373. package/lib/commonjs/features/replay/core/env/environmentDetector.js +10 -10
  374. package/lib/commonjs/features/replay/core/env/environmentDetector.js.map +1 -1
  375. package/lib/commonjs/features/replay/core/errors/safeCall.js +4 -4
  376. package/lib/commonjs/features/replay/core/errors/safeCall.js.map +1 -1
  377. package/lib/commonjs/features/replay/core/ids/sessionId.js +5 -5
  378. package/lib/commonjs/features/replay/core/ids/sessionId.js.map +1 -1
  379. package/lib/commonjs/features/replay/core/logger/logger.js +5 -5
  380. package/lib/commonjs/features/replay/core/logger/logger.js.map +1 -1
  381. package/lib/commonjs/features/replay/core/privacy/privacyTypes.js +4 -4
  382. package/lib/commonjs/features/replay/core/privacy/privacyTypes.js.map +1 -1
  383. package/lib/commonjs/features/replay/core/queue/boundedQueue.js +5 -5
  384. package/lib/commonjs/features/replay/core/queue/boundedQueue.js.map +1 -1
  385. package/lib/commonjs/features/replay/integrations/alert/alertInstrumentation.js +59 -59
  386. package/lib/commonjs/features/replay/integrations/alert/alertInstrumentation.js.map +1 -1
  387. package/lib/commonjs/features/replay/integrations/logs/consoleIntegration.js +19 -19
  388. package/lib/commonjs/features/replay/integrations/logs/consoleIntegration.js.map +1 -1
  389. package/lib/commonjs/features/replay/integrations/network/networkAdapter.js +30 -30
  390. package/lib/commonjs/features/replay/integrations/network/networkAdapter.js.map +1 -1
  391. package/lib/commonjs/features/replay/integrations/react-navigation/navigationIntegration.js +19 -19
  392. package/lib/commonjs/features/replay/integrations/react-navigation/navigationIntegration.js.map +1 -1
  393. package/lib/commonjs/features/replay/integrations/touch/ReplayRoot.js +16 -16
  394. package/lib/commonjs/features/replay/integrations/touch/ReplayRoot.js.map +1 -1
  395. package/lib/commonjs/features/replay/pipeline/batching/batchManager.js +5 -5
  396. package/lib/commonjs/features/replay/pipeline/batching/batchManager.js.map +1 -1
  397. package/lib/commonjs/features/replay/pipeline/envelope/envelopeBuilder.js +5 -5
  398. package/lib/commonjs/features/replay/pipeline/envelope/envelopeBuilder.js.map +1 -1
  399. package/lib/commonjs/features/replay/pipeline/retry/retryPolicy.js +4 -4
  400. package/lib/commonjs/features/replay/pipeline/retry/retryPolicy.js.map +1 -1
  401. package/lib/commonjs/features/replay/pipeline/transport/transportTypes.js +7 -7
  402. package/lib/commonjs/features/replay/pipeline/transport/transportTypes.js.map +1 -1
  403. package/lib/commonjs/features/replay/public/api.js +21 -21
  404. package/lib/commonjs/features/replay/public/api.js.map +1 -1
  405. package/lib/commonjs/features/replay/public/enums.js +5 -5
  406. package/lib/commonjs/features/replay/public/enums.js.map +1 -1
  407. package/lib/commonjs/features/replay/public/types.js.map +1 -1
  408. package/lib/commonjs/features/replay/replay/breadcrumbs/breadcrumbCollector.js +5 -5
  409. package/lib/commonjs/features/replay/replay/breadcrumbs/breadcrumbCollector.js.map +1 -1
  410. package/lib/commonjs/features/replay/replay/frames/frameModels.js +4 -4
  411. package/lib/commonjs/features/replay/replay/frames/frameModels.js.map +1 -1
  412. package/lib/commonjs/features/replay/replay/session/sessionOrchestrator.js +10 -10
  413. package/lib/commonjs/features/replay/replay/session/sessionOrchestrator.js.map +1 -1
  414. package/lib/commonjs/features/replay/replay/timeline/timelineModels.js +4 -4
  415. package/lib/commonjs/features/replay/replay/timeline/timelineModels.js.map +1 -1
  416. package/lib/commonjs/features/replay/transport/BackendReplayTransport.js +13 -13
  417. package/lib/commonjs/features/replay/transport/BackendReplayTransport.js.map +1 -1
  418. package/lib/commonjs/features/replay/transport/CompositeReplayTransport.js +8 -8
  419. package/lib/commonjs/features/replay/transport/CompositeReplayTransport.js.map +1 -1
  420. package/lib/commonjs/features/replay/transport/DesktopReplayTransport.js +14 -14
  421. package/lib/commonjs/features/replay/transport/DesktopReplayTransport.js.map +1 -1
  422. package/lib/commonjs/features/replay/transport/ReplayTransport.js.map +1 -1
  423. package/lib/commonjs/features/session/BackendSessionAdapter.js +486 -164
  424. package/lib/commonjs/features/session/BackendSessionAdapter.js.map +1 -1
  425. package/lib/commonjs/features/session/DesktopSessionTransport.js +14 -14
  426. package/lib/commonjs/features/session/DesktopSessionTransport.js.map +1 -1
  427. package/lib/commonjs/features/session/JourneyEventPipeline.js +20 -19
  428. package/lib/commonjs/features/session/JourneyEventPipeline.js.map +1 -1
  429. package/lib/commonjs/features/session/ReplayCaptureManager.js +169 -123
  430. package/lib/commonjs/features/session/ReplayCaptureManager.js.map +1 -1
  431. package/lib/commonjs/features/session/ScrollTracker.js +17 -17
  432. package/lib/commonjs/features/session/ScrollTracker.js.map +1 -1
  433. package/lib/commonjs/features/session/SessionManager.js +185 -155
  434. package/lib/commonjs/features/session/SessionManager.js.map +1 -1
  435. package/lib/commonjs/features/session/SyncDecisionEngine.js +23 -23
  436. package/lib/commonjs/features/session/SyncDecisionEngine.js.map +1 -1
  437. package/lib/commonjs/features/session/index.js.map +1 -1
  438. package/lib/commonjs/features/session/nativeCapture.js +9 -9
  439. package/lib/commonjs/features/session/nativeCapture.js.map +1 -1
  440. package/lib/commonjs/features/session/outboxFrameCapture.js +18 -17
  441. package/lib/commonjs/features/session/outboxFrameCapture.js.map +1 -1
  442. package/lib/commonjs/features/session/sessionTypes.js +44 -44
  443. package/lib/commonjs/features/session/sessionTypes.js.map +1 -1
  444. package/lib/commonjs/features/skan/skanBridge.js +11 -11
  445. package/lib/commonjs/features/skan/skanBridge.js.map +1 -1
  446. package/lib/commonjs/features/skan/skanConversionManager.js +23 -23
  447. package/lib/commonjs/features/skan/skanConversionManager.js.map +1 -1
  448. package/lib/commonjs/index.js +20 -0
  449. package/lib/commonjs/index.js.map +1 -1
  450. package/lib/commonjs/integrations/fetch/fetchInterceptor.js +21 -21
  451. package/lib/commonjs/integrations/fetch/fetchInterceptor.js.map +1 -1
  452. package/lib/commonjs/integrations/navigation/screenTracker.js.map +1 -1
  453. package/lib/commonjs/integrations/network/bodyCapture.js +69 -69
  454. package/lib/commonjs/integrations/network/bodyCapture.js.map +1 -1
  455. package/lib/commonjs/integrations/xhr/xhrInterceptor.js +24 -24
  456. package/lib/commonjs/integrations/xhr/xhrInterceptor.js.map +1 -1
  457. package/lib/commonjs/metro/index.js +37 -37
  458. package/lib/commonjs/metro/index.js.map +1 -1
  459. package/lib/commonjs/metro/optionalDependencyStub.js.map +1 -1
  460. package/lib/commonjs/metro/optionalModules.js +16 -16
  461. package/lib/commonjs/metro/optionalModules.js.map +1 -1
  462. package/lib/commonjs/pipeline/dispatcher/dispatcher.js.map +1 -1
  463. package/lib/commonjs/pipeline/envelope/envelope.js.map +1 -1
  464. package/lib/commonjs/pipeline/envelope/serializer.js.map +1 -1
  465. package/lib/commonjs/pipeline/processors/dedupe.js.map +1 -1
  466. package/lib/commonjs/pipeline/processors/enrich.js.map +1 -1
  467. package/lib/commonjs/pipeline/processors/sampling.js.map +1 -1
  468. package/lib/commonjs/pipeline/processors/sanitize.js.map +1 -1
  469. package/lib/commonjs/pipeline/queue/flushQueue.js +4 -4
  470. package/lib/commonjs/pipeline/queue/flushQueue.js.map +1 -1
  471. package/lib/commonjs/pipeline/queue/memoryQueue.js.map +1 -1
  472. package/lib/commonjs/pipeline/queue/persistentQueue.js +80 -80
  473. package/lib/commonjs/pipeline/queue/persistentQueue.js.map +1 -1
  474. package/lib/commonjs/pipeline/queue/queuePolicy.js.map +1 -1
  475. package/lib/commonjs/pipeline/scheduler/flushScheduler.js.map +1 -1
  476. package/lib/commonjs/pipeline/scheduler/retryPolicy.js +2 -2
  477. package/lib/commonjs/pipeline/scheduler/retryPolicy.js.map +1 -1
  478. package/lib/commonjs/public/ScaleBunErrorBoundary.js +79 -0
  479. package/lib/commonjs/public/ScaleBunErrorBoundary.js.map +1 -0
  480. package/lib/commonjs/public/ScaleBunFacade.js +424 -276
  481. package/lib/commonjs/public/ScaleBunFacade.js.map +1 -1
  482. package/lib/commonjs/public/ScaleBunProvider.js +3 -3
  483. package/lib/commonjs/public/ScaleBunProvider.js.map +1 -1
  484. package/lib/commonjs/public/typedTracker.js +36 -36
  485. package/lib/commonjs/public/typedTracker.js.map +1 -1
  486. package/lib/commonjs/public/types.js.map +1 -1
  487. package/lib/commonjs/push/PushManager.js +21 -21
  488. package/lib/commonjs/push/PushManager.js.map +1 -1
  489. package/lib/commonjs/push/adapters/ManualAdapter.js +14 -14
  490. package/lib/commonjs/push/adapters/ManualAdapter.js.map +1 -1
  491. package/lib/commonjs/push/adapters/NativeBridgeAdapter.js +17 -17
  492. package/lib/commonjs/push/adapters/NativeBridgeAdapter.js.map +1 -1
  493. package/lib/commonjs/push/adapters/NoopAdapter.js +5 -5
  494. package/lib/commonjs/push/adapters/NoopAdapter.js.map +1 -1
  495. package/lib/commonjs/push/adapters/RNFirebaseMessagingAdapter.js +17 -17
  496. package/lib/commonjs/push/adapters/RNFirebaseMessagingAdapter.js.map +1 -1
  497. package/lib/commonjs/push/adapters/loadMessaging.js +12 -12
  498. package/lib/commonjs/push/adapters/loadMessaging.js.map +1 -1
  499. package/lib/commonjs/push/adapters/loadNotifee.js +12 -12
  500. package/lib/commonjs/push/adapters/loadNotifee.js.map +1 -1
  501. package/lib/commonjs/push/adapters/selectAdapter.js +14 -14
  502. package/lib/commonjs/push/adapters/selectAdapter.js.map +1 -1
  503. package/lib/commonjs/push/detect/capabilities.js +19 -19
  504. package/lib/commonjs/push/detect/capabilities.js.map +1 -1
  505. package/lib/commonjs/push/index.js.map +1 -1
  506. package/lib/commonjs/push/native/nativeNotifications.js +32 -32
  507. package/lib/commonjs/push/native/nativeNotifications.js.map +1 -1
  508. package/lib/commonjs/push/types.js.map +1 -1
  509. package/lib/commonjs/specs/NativeReplaySdk.js +18 -18
  510. package/lib/commonjs/specs/NativeReplaySdk.js.map +1 -1
  511. package/lib/commonjs/specs/NativeScaleBunCrash.js +19 -19
  512. package/lib/commonjs/specs/NativeScaleBunCrash.js.map +1 -1
  513. package/lib/commonjs/specs/NativeScaleBunInstallReferrer.js +14 -14
  514. package/lib/commonjs/specs/NativeScaleBunInstallReferrer.js.map +1 -1
  515. package/lib/commonjs/specs/NativeScaleBunOta.js +21 -21
  516. package/lib/commonjs/specs/NativeScaleBunOta.js.map +1 -1
  517. package/lib/commonjs/specs/NativeScaleBunPerformance.js +15 -15
  518. package/lib/commonjs/specs/NativeScaleBunPerformance.js.map +1 -1
  519. package/lib/commonjs/specs/NativeScaleBunProfiler.js +16 -16
  520. package/lib/commonjs/specs/NativeScaleBunProfiler.js.map +1 -1
  521. package/lib/commonjs/specs/NativeScaleBunStorage.js +29 -29
  522. package/lib/commonjs/specs/NativeScaleBunStorage.js.map +1 -1
  523. package/lib/commonjs/storage/StorageBackend.js +83 -83
  524. package/lib/commonjs/storage/StorageBackend.js.map +1 -1
  525. package/lib/commonjs/storage/db/sqlite.js.map +1 -1
  526. package/lib/commonjs/storage/files/fileStore.js.map +1 -1
  527. package/lib/commonjs/transport/auth/sdkSession.js.map +1 -1
  528. package/lib/commonjs/transport/backoff/exponentialJitter.js +2 -2
  529. package/lib/commonjs/transport/backoff/exponentialJitter.js.map +1 -1
  530. package/lib/commonjs/transport/http/endpoints.js.map +1 -1
  531. package/lib/commonjs/transport/http/httpClient.js +3 -3
  532. package/lib/commonjs/transport/http/httpClient.js.map +1 -1
  533. package/lib/commonjs/transport/rateLimit/retryAfter.js.map +1 -1
  534. package/lib/commonjs/transport/signing/requestSigner.js.map +1 -1
  535. package/lib/commonjs/vendor/protocol/index.js +74 -74
  536. package/lib/commonjs/vendor/protocol/index.js.map +1 -1
  537. package/lib/commonjs/vendor/protocol/internal/validation.js +23 -23
  538. package/lib/commonjs/vendor/protocol/internal/validation.js.map +1 -1
  539. package/lib/commonjs/vendor/sdk-contracts/bridge.js.map +1 -1
  540. package/lib/commonjs/vendor/sdk-contracts/config.js.map +1 -1
  541. package/lib/commonjs/vendor/sdk-contracts/events.js.map +1 -1
  542. package/lib/commonjs/vendor/sdk-contracts/features.js.map +1 -1
  543. package/lib/commonjs/vendor/sdk-contracts/index.js.map +1 -1
  544. package/lib/commonjs/vendor/sdk-contracts/platform.js.map +1 -1
  545. package/lib/commonjs/vendor/sdk-contracts/session-boundary.js.map +1 -1
  546. package/lib/commonjs/vendor/sdk-contracts/session.js.map +1 -1
  547. package/lib/commonjs/vendor/vendor.manifest +10 -10
  548. package/lib/module/analytics/EventTracker.js +63 -35
  549. package/lib/module/analytics/EventTracker.js.map +1 -1
  550. package/lib/module/analytics/automaticEvents.js +7 -7
  551. package/lib/module/analytics/automaticEvents.js.map +1 -1
  552. package/lib/module/analytics/batching.js +24 -24
  553. package/lib/module/analytics/batching.js.map +1 -1
  554. package/lib/module/analytics/eventLane.js +13 -13
  555. package/lib/module/analytics/eventLane.js.map +1 -1
  556. package/lib/module/bootstrap/FeatureRegistry.js +17 -17
  557. package/lib/module/bootstrap/FeatureRegistry.js.map +1 -1
  558. package/lib/module/bootstrap/SDKBootstrapper.js +81 -54
  559. package/lib/module/bootstrap/SDKBootstrapper.js.map +1 -1
  560. package/lib/module/bucketing/fnv1a32.js +10 -10
  561. package/lib/module/bucketing/fnv1a32.js.map +1 -1
  562. package/lib/module/compat/codepush.js +6 -6
  563. package/lib/module/compat/codepush.js.map +1 -1
  564. package/lib/module/config/ConfigManager.js +20 -20
  565. package/lib/module/config/ConfigManager.js.map +1 -1
  566. package/lib/module/config/configTypes.js.map +1 -1
  567. package/lib/module/core/architecture.js +23 -23
  568. package/lib/module/core/architecture.js.map +1 -1
  569. package/lib/module/core/clock/now.js +2 -2
  570. package/lib/module/core/clock/now.js.map +1 -1
  571. package/lib/module/core/config/defaults.js.map +1 -1
  572. package/lib/module/core/config/schema.js +112 -104
  573. package/lib/module/core/config/schema.js.map +1 -1
  574. package/lib/module/core/constants/endpoints.js +7 -7
  575. package/lib/module/core/constants/endpoints.js.map +1 -1
  576. package/lib/module/core/constants/timings.js +5 -5
  577. package/lib/module/core/constants/timings.js.map +1 -1
  578. package/lib/module/core/constants/version.js +4 -4
  579. package/lib/module/core/constants/version.js.map +1 -1
  580. package/lib/module/core/context/app.js.map +1 -1
  581. package/lib/module/core/context/device.js +119 -0
  582. package/lib/module/core/context/device.js.map +1 -1
  583. package/lib/module/core/context/session.js.map +1 -1
  584. package/lib/module/core/context/user.js.map +1 -1
  585. package/lib/module/core/contracts/IFeature.js.map +1 -1
  586. package/lib/module/core/di/container.js.map +1 -1
  587. package/lib/module/core/encoding/base64.js +9 -9
  588. package/lib/module/core/encoding/base64.js.map +1 -1
  589. package/lib/module/core/id/deviceId.js +4 -4
  590. package/lib/module/core/id/deviceId.js.map +1 -1
  591. package/lib/module/core/id/sessionId.js.map +1 -1
  592. package/lib/module/core/lifecycle/appLifecycle.js.map +1 -1
  593. package/lib/module/core/lifecycle/crashSafe.js +3 -3
  594. package/lib/module/core/lifecycle/crashSafe.js.map +1 -1
  595. package/lib/module/core/logger/errorClassification.js +30 -30
  596. package/lib/module/core/logger/errorClassification.js.map +1 -1
  597. package/lib/module/core/logger/internalLogger.js.map +1 -1
  598. package/lib/module/core/logger/levels.js.map +1 -1
  599. package/lib/module/crypto/hmacSha256.js +6 -6
  600. package/lib/module/crypto/hmacSha256.js.map +1 -1
  601. package/lib/module/debug/bootstrap.js +26 -26
  602. package/lib/module/debug/bootstrap.js.map +1 -1
  603. package/lib/module/debug/commands.js +10 -10
  604. package/lib/module/debug/commands.js.map +1 -1
  605. package/lib/module/debug/configBuilder.js +6 -6
  606. package/lib/module/debug/configBuilder.js.map +1 -1
  607. package/lib/module/debug/exportBridge.js +17 -17
  608. package/lib/module/debug/exportBridge.js.map +1 -1
  609. package/lib/module/debug/hostResolver.js +10 -10
  610. package/lib/module/debug/hostResolver.js.map +1 -1
  611. package/lib/module/debug/index.js +5 -5
  612. package/lib/module/debug/index.js.map +1 -1
  613. package/lib/module/debug/metrics.js.map +1 -1
  614. package/lib/module/debug/perf.js +11 -11
  615. package/lib/module/debug/perf.js.map +1 -1
  616. package/lib/module/debug/perfWiring.js +10 -10
  617. package/lib/module/debug/perfWiring.js.map +1 -1
  618. package/lib/module/debug/protocol.js +11 -11
  619. package/lib/module/debug/protocol.js.map +1 -1
  620. package/lib/module/debug/redaction.js +26 -26
  621. package/lib/module/debug/redaction.js.map +1 -1
  622. package/lib/module/debug/replayWiring.js +13 -12
  623. package/lib/module/debug/replayWiring.js.map +1 -1
  624. package/lib/module/debug/screenTracking.js +7 -7
  625. package/lib/module/debug/screenTracking.js.map +1 -1
  626. package/lib/module/debug/sessionWiring.js +8 -8
  627. package/lib/module/debug/sessionWiring.js.map +1 -1
  628. package/lib/module/debug/stream.js +26 -26
  629. package/lib/module/debug/stream.js.map +1 -1
  630. package/lib/module/debug/transport.js +24 -24
  631. package/lib/module/debug/transport.js.map +1 -1
  632. package/lib/module/features/bugreport/BugReportFeature.js +105 -0
  633. package/lib/module/features/bugreport/BugReportFeature.js.map +1 -0
  634. package/lib/module/features/bugreport/buildPayload.js +91 -0
  635. package/lib/module/features/bugreport/buildPayload.js.map +1 -0
  636. package/lib/module/features/bugreport/index.js.map +1 -1
  637. package/lib/module/features/crash/CrashFeature.js +27 -9
  638. package/lib/module/features/crash/CrashFeature.js.map +1 -1
  639. package/lib/module/features/crash/CrashReporter.js +53 -29
  640. package/lib/module/features/crash/CrashReporter.js.map +1 -1
  641. package/lib/module/features/crash/NativeCrashFeature.js +7 -7
  642. package/lib/module/features/crash/NativeCrashFeature.js.map +1 -1
  643. package/lib/module/features/crash/capture.js +28 -9
  644. package/lib/module/features/crash/capture.js.map +1 -1
  645. package/lib/module/features/crash/globalHandler.js +11 -11
  646. package/lib/module/features/crash/globalHandler.js.map +1 -1
  647. package/lib/module/features/crash/index.js.map +1 -1
  648. package/lib/module/features/crash/nativeCrashBridge.js +177 -44
  649. package/lib/module/features/crash/nativeCrashBridge.js.map +1 -1
  650. package/lib/module/features/crash/rejectionHandler.js +116 -0
  651. package/lib/module/features/crash/rejectionHandler.js.map +1 -0
  652. package/lib/module/features/engage/EngageAnchor.js +3 -3
  653. package/lib/module/features/engage/EngageAnchor.js.map +1 -1
  654. package/lib/module/features/engage/EngageArchetypeRenderers.js +19 -19
  655. package/lib/module/features/engage/EngageArchetypeRenderers.js.map +1 -1
  656. package/lib/module/features/engage/EngageInAppView.js +35 -35
  657. package/lib/module/features/engage/EngageInAppView.js.map +1 -1
  658. package/lib/module/features/engage/EngageInlinePlacement.js +7 -7
  659. package/lib/module/features/engage/EngageInlinePlacement.js.map +1 -1
  660. package/lib/module/features/engage/EngagePromptProvider.js +124 -88
  661. package/lib/module/features/engage/EngagePromptProvider.js.map +1 -1
  662. package/lib/module/features/engage/EngagePromptView.js +65 -32
  663. package/lib/module/features/engage/EngagePromptView.js.map +1 -1
  664. package/lib/module/features/engage/EngageTransport.js +79 -79
  665. package/lib/module/features/engage/EngageTransport.js.map +1 -1
  666. package/lib/module/features/engage/EngageVariantContent.js +10 -10
  667. package/lib/module/features/engage/EngageVariantContent.js.map +1 -1
  668. package/lib/module/features/engage/__test-support__/reactNativeStub.js +7 -7
  669. package/lib/module/features/engage/__test-support__/reactNativeStub.js.map +1 -1
  670. package/lib/module/features/engage/attachmentCapture.js +12 -12
  671. package/lib/module/features/engage/attachmentCapture.js.map +1 -1
  672. package/lib/module/features/engage/captureVoiceAttachment.js +20 -20
  673. package/lib/module/features/engage/captureVoiceAttachment.js.map +1 -1
  674. package/lib/module/features/engage/engageCoachmarkTour.js +4 -4
  675. package/lib/module/features/engage/engageCoachmarkTour.js.map +1 -1
  676. package/lib/module/features/engage/engageGameLogic.js.map +1 -1
  677. package/lib/module/features/engage/engageMediaSizing.js +15 -15
  678. package/lib/module/features/engage/engageMediaSizing.js.map +1 -1
  679. package/lib/module/features/engage/engageMultiStepSheet.js +6 -6
  680. package/lib/module/features/engage/engageMultiStepSheet.js.map +1 -1
  681. package/lib/module/features/engage/engageOutcome.js +6 -6
  682. package/lib/module/features/engage/engageOutcome.js.map +1 -1
  683. package/lib/module/features/engage/engagePushTokenBridge.js +20 -20
  684. package/lib/module/features/engage/engagePushTokenBridge.js.map +1 -1
  685. package/lib/module/features/engage/engageShakeBridge.js +16 -16
  686. package/lib/module/features/engage/engageShakeBridge.js.map +1 -1
  687. package/lib/module/features/engage/engageSignals.js.map +1 -1
  688. package/lib/module/features/engage/engageStoreReviewBridge.js +19 -19
  689. package/lib/module/features/engage/engageStoreReviewBridge.js.map +1 -1
  690. package/lib/module/features/engage/engageTestSeenStore.js +29 -29
  691. package/lib/module/features/engage/engageTestSeenStore.js.map +1 -1
  692. package/lib/module/features/engage/engageThrottle.js +117 -86
  693. package/lib/module/features/engage/engageThrottle.js.map +1 -1
  694. package/lib/module/features/engage/engageTriggerEngine.js +17 -7
  695. package/lib/module/features/engage/engageTriggerEngine.js.map +1 -1
  696. package/lib/module/features/engage/engageTypes.js +33 -33
  697. package/lib/module/features/engage/engageTypes.js.map +1 -1
  698. package/lib/module/features/engage/engageVariantResolver.js +13 -13
  699. package/lib/module/features/engage/engageVariantResolver.js.map +1 -1
  700. package/lib/module/features/engage/engageWindowInsets.js +10 -10
  701. package/lib/module/features/engage/engageWindowInsets.js.map +1 -1
  702. package/lib/module/features/engage/gestureTriggerDetector.js.map +1 -1
  703. package/lib/module/features/engage/transcription/TranscriptionProvider.js +16 -16
  704. package/lib/module/features/engage/transcription/TranscriptionProvider.js.map +1 -1
  705. package/lib/module/features/install-referrer/installReferrer.js +26 -26
  706. package/lib/module/features/install-referrer/installReferrer.js.map +1 -1
  707. package/lib/module/features/journey/ScaleBunDebugRoot.js +30 -29
  708. package/lib/module/features/journey/ScaleBunDebugRoot.js.map +1 -1
  709. package/lib/module/features/journey/ScaleBunFlatList.js +15 -15
  710. package/lib/module/features/journey/ScaleBunFlatList.js.map +1 -1
  711. package/lib/module/features/journey/ScaleBunImpression.js +22 -22
  712. package/lib/module/features/journey/ScaleBunImpression.js.map +1 -1
  713. package/lib/module/features/journey/ScaleBunScrollView.js +20 -20
  714. package/lib/module/features/journey/ScaleBunScrollView.js.map +1 -1
  715. package/lib/module/features/journey/ScaleBunSectionList.js +15 -15
  716. package/lib/module/features/journey/ScaleBunSectionList.js.map +1 -1
  717. package/lib/module/features/journey/calibrationContext.js +12 -12
  718. package/lib/module/features/journey/calibrationContext.js.map +1 -1
  719. package/lib/module/features/journey/gestureBuffer.js +9 -9
  720. package/lib/module/features/journey/gestureBuffer.js.map +1 -1
  721. package/lib/module/features/journey/gestureDetector.js +10 -10
  722. package/lib/module/features/journey/gestureDetector.js.map +1 -1
  723. package/lib/module/features/journey/impression.js +18 -18
  724. package/lib/module/features/journey/impression.js.map +1 -1
  725. package/lib/module/features/journey/journeyManager.js +6 -6
  726. package/lib/module/features/journey/journeyManager.js.map +1 -1
  727. package/lib/module/features/journey/journeyTypes.js +5 -5
  728. package/lib/module/features/journey/journeyTypes.js.map +1 -1
  729. package/lib/module/features/journey/navDetector.js +7 -7
  730. package/lib/module/features/journey/navDetector.js.map +1 -1
  731. package/lib/module/features/journey/screenshotHelper.js +7 -7
  732. package/lib/module/features/journey/screenshotHelper.js.map +1 -1
  733. package/lib/module/features/journey/targetRegistry.js +17 -17
  734. package/lib/module/features/journey/targetRegistry.js.map +1 -1
  735. package/lib/module/features/journey/touchTarget.js +29 -29
  736. package/lib/module/features/journey/touchTarget.js.map +1 -1
  737. package/lib/module/features/navigation/AutoScreenDetector.js +114 -71
  738. package/lib/module/features/navigation/AutoScreenDetector.js.map +1 -1
  739. package/lib/module/features/network/NetworkFeature.js +23 -23
  740. package/lib/module/features/network/NetworkFeature.js.map +1 -1
  741. package/lib/module/features/network/index.js +5 -5
  742. package/lib/module/features/network/index.js.map +1 -1
  743. package/lib/module/features/ota/OtaEventEmitter.js +21 -21
  744. package/lib/module/features/ota/OtaEventEmitter.js.map +1 -1
  745. package/lib/module/features/ota/OtaOrchestrator.js +596 -43
  746. package/lib/module/features/ota/OtaOrchestrator.js.map +1 -1
  747. package/lib/module/features/ota/OtaTypes.js.map +1 -1
  748. package/lib/module/features/ota/deviceAttributes.js +43 -0
  749. package/lib/module/features/ota/deviceAttributes.js.map +1 -0
  750. package/lib/module/features/ota/environment.js +165 -0
  751. package/lib/module/features/ota/environment.js.map +1 -0
  752. package/lib/module/features/ota/geoCountry.js +86 -0
  753. package/lib/module/features/ota/geoCountry.js.map +1 -0
  754. package/lib/module/features/ota/retry.js +87 -0
  755. package/lib/module/features/ota/retry.js.map +1 -0
  756. package/lib/module/features/ota/signature.js +109 -0
  757. package/lib/module/features/ota/signature.js.map +1 -0
  758. package/lib/module/features/ota/useOtaUpdate.js +18 -15
  759. package/lib/module/features/ota/useOtaUpdate.js.map +1 -1
  760. package/lib/module/features/performance/PerformanceFeature.js +49 -35
  761. package/lib/module/features/performance/PerformanceFeature.js.map +1 -1
  762. package/lib/module/features/performance/collectors/AppLaunchCollector.js +13 -13
  763. package/lib/module/features/performance/collectors/AppLaunchCollector.js.map +1 -1
  764. package/lib/module/features/performance/collectors/AutoScreenLoadCollector.js +32 -32
  765. package/lib/module/features/performance/collectors/AutoScreenLoadCollector.js.map +1 -1
  766. package/lib/module/features/performance/collectors/CustomTraceCollector.js +13 -13
  767. package/lib/module/features/performance/collectors/CustomTraceCollector.js.map +1 -1
  768. package/lib/module/features/performance/collectors/FrameMetricsCollector.js +81 -21
  769. package/lib/module/features/performance/collectors/FrameMetricsCollector.js.map +1 -1
  770. package/lib/module/features/performance/collectors/JsStallCollector.js +12 -12
  771. package/lib/module/features/performance/collectors/JsStallCollector.js.map +1 -1
  772. package/lib/module/features/performance/collectors/NetworkPerfCollector.js +10 -10
  773. package/lib/module/features/performance/collectors/NetworkPerfCollector.js.map +1 -1
  774. package/lib/module/features/performance/collectors/ScreenLoadCollector.js +11 -11
  775. package/lib/module/features/performance/collectors/ScreenLoadCollector.js.map +1 -1
  776. package/lib/module/features/performance/collectors/UiHangCollector.js +5 -5
  777. package/lib/module/features/performance/collectors/UiHangCollector.js.map +1 -1
  778. package/lib/module/features/performance/config.js +11 -11
  779. package/lib/module/features/performance/config.js.map +1 -1
  780. package/lib/module/features/performance/getNativePerformanceModule.js +11 -11
  781. package/lib/module/features/performance/getNativePerformanceModule.js.map +1 -1
  782. package/lib/module/features/performance/index.js +2 -2
  783. package/lib/module/features/performance/index.js.map +1 -1
  784. package/lib/module/features/performance/metrics/MetricsEngine.js +13 -13
  785. package/lib/module/features/performance/metrics/MetricsEngine.js.map +1 -1
  786. package/lib/module/features/performance/models.js +8 -8
  787. package/lib/module/features/performance/models.js.map +1 -1
  788. package/lib/module/features/performance/transport/PerformanceTransport.js +31 -6
  789. package/lib/module/features/performance/transport/PerformanceTransport.js.map +1 -1
  790. package/lib/module/features/profiler/ProfilerFeature.js +53 -53
  791. package/lib/module/features/profiler/ProfilerFeature.js.map +1 -1
  792. package/lib/module/features/profiler/config.js +15 -15
  793. package/lib/module/features/profiler/config.js.map +1 -1
  794. package/lib/module/features/profiler/contracts.js +22 -22
  795. package/lib/module/features/profiler/contracts.js.map +1 -1
  796. package/lib/module/features/profiler/index.js +4 -4
  797. package/lib/module/features/profiler/index.js.map +1 -1
  798. package/lib/module/features/profiler/models.js +44 -44
  799. package/lib/module/features/profiler/models.js.map +1 -1
  800. package/lib/module/features/profiler/transport/ProfilerTransport.js +9 -9
  801. package/lib/module/features/profiler/transport/ProfilerTransport.js.map +1 -1
  802. package/lib/module/features/replay/bridge/adapters/bridgeAdapter.js +17 -17
  803. package/lib/module/features/replay/bridge/adapters/bridgeAdapter.js.map +1 -1
  804. package/lib/module/features/replay/bridge/eventEmitter.js +8 -8
  805. package/lib/module/features/replay/bridge/eventEmitter.js.map +1 -1
  806. package/lib/module/features/replay/bridge/nativeModule.js +20 -20
  807. package/lib/module/features/replay/bridge/nativeModule.js.map +1 -1
  808. package/lib/module/features/replay/core/clock/clock.js +6 -6
  809. package/lib/module/features/replay/core/clock/clock.js.map +1 -1
  810. package/lib/module/features/replay/core/config/defaults.js +2 -2
  811. package/lib/module/features/replay/core/config/defaults.js.map +1 -1
  812. package/lib/module/features/replay/core/config/validator.js +5 -5
  813. package/lib/module/features/replay/core/config/validator.js.map +1 -1
  814. package/lib/module/features/replay/core/env/environmentDetector.js +10 -10
  815. package/lib/module/features/replay/core/env/environmentDetector.js.map +1 -1
  816. package/lib/module/features/replay/core/errors/safeCall.js +4 -4
  817. package/lib/module/features/replay/core/errors/safeCall.js.map +1 -1
  818. package/lib/module/features/replay/core/ids/sessionId.js +5 -5
  819. package/lib/module/features/replay/core/ids/sessionId.js.map +1 -1
  820. package/lib/module/features/replay/core/logger/logger.js +5 -5
  821. package/lib/module/features/replay/core/logger/logger.js.map +1 -1
  822. package/lib/module/features/replay/core/privacy/privacyTypes.js +4 -4
  823. package/lib/module/features/replay/core/privacy/privacyTypes.js.map +1 -1
  824. package/lib/module/features/replay/core/queue/boundedQueue.js +5 -5
  825. package/lib/module/features/replay/core/queue/boundedQueue.js.map +1 -1
  826. package/lib/module/features/replay/integrations/alert/alertInstrumentation.js +59 -59
  827. package/lib/module/features/replay/integrations/alert/alertInstrumentation.js.map +1 -1
  828. package/lib/module/features/replay/integrations/logs/consoleIntegration.js +19 -19
  829. package/lib/module/features/replay/integrations/logs/consoleIntegration.js.map +1 -1
  830. package/lib/module/features/replay/integrations/network/networkAdapter.js +30 -30
  831. package/lib/module/features/replay/integrations/network/networkAdapter.js.map +1 -1
  832. package/lib/module/features/replay/integrations/react-navigation/navigationIntegration.js +19 -19
  833. package/lib/module/features/replay/integrations/react-navigation/navigationIntegration.js.map +1 -1
  834. package/lib/module/features/replay/integrations/touch/ReplayRoot.js +16 -16
  835. package/lib/module/features/replay/integrations/touch/ReplayRoot.js.map +1 -1
  836. package/lib/module/features/replay/pipeline/batching/batchManager.js +5 -5
  837. package/lib/module/features/replay/pipeline/batching/batchManager.js.map +1 -1
  838. package/lib/module/features/replay/pipeline/envelope/envelopeBuilder.js +5 -5
  839. package/lib/module/features/replay/pipeline/envelope/envelopeBuilder.js.map +1 -1
  840. package/lib/module/features/replay/pipeline/retry/retryPolicy.js +4 -4
  841. package/lib/module/features/replay/pipeline/retry/retryPolicy.js.map +1 -1
  842. package/lib/module/features/replay/pipeline/transport/transportTypes.js +7 -7
  843. package/lib/module/features/replay/pipeline/transport/transportTypes.js.map +1 -1
  844. package/lib/module/features/replay/public/api.js +21 -21
  845. package/lib/module/features/replay/public/api.js.map +1 -1
  846. package/lib/module/features/replay/public/enums.js +5 -5
  847. package/lib/module/features/replay/public/enums.js.map +1 -1
  848. package/lib/module/features/replay/public/types.js.map +1 -1
  849. package/lib/module/features/replay/replay/breadcrumbs/breadcrumbCollector.js +5 -5
  850. package/lib/module/features/replay/replay/breadcrumbs/breadcrumbCollector.js.map +1 -1
  851. package/lib/module/features/replay/replay/frames/frameModels.js +4 -4
  852. package/lib/module/features/replay/replay/frames/frameModels.js.map +1 -1
  853. package/lib/module/features/replay/replay/session/sessionOrchestrator.js +10 -10
  854. package/lib/module/features/replay/replay/session/sessionOrchestrator.js.map +1 -1
  855. package/lib/module/features/replay/replay/timeline/timelineModels.js +4 -4
  856. package/lib/module/features/replay/replay/timeline/timelineModels.js.map +1 -1
  857. package/lib/module/features/replay/transport/BackendReplayTransport.js +13 -13
  858. package/lib/module/features/replay/transport/BackendReplayTransport.js.map +1 -1
  859. package/lib/module/features/replay/transport/CompositeReplayTransport.js +8 -8
  860. package/lib/module/features/replay/transport/CompositeReplayTransport.js.map +1 -1
  861. package/lib/module/features/replay/transport/DesktopReplayTransport.js +14 -14
  862. package/lib/module/features/replay/transport/DesktopReplayTransport.js.map +1 -1
  863. package/lib/module/features/replay/transport/ReplayTransport.js.map +1 -1
  864. package/lib/module/features/session/BackendSessionAdapter.js +485 -164
  865. package/lib/module/features/session/BackendSessionAdapter.js.map +1 -1
  866. package/lib/module/features/session/DesktopSessionTransport.js +14 -14
  867. package/lib/module/features/session/DesktopSessionTransport.js.map +1 -1
  868. package/lib/module/features/session/JourneyEventPipeline.js +20 -19
  869. package/lib/module/features/session/JourneyEventPipeline.js.map +1 -1
  870. package/lib/module/features/session/ReplayCaptureManager.js +169 -123
  871. package/lib/module/features/session/ReplayCaptureManager.js.map +1 -1
  872. package/lib/module/features/session/ScrollTracker.js +17 -17
  873. package/lib/module/features/session/ScrollTracker.js.map +1 -1
  874. package/lib/module/features/session/SessionManager.js +185 -155
  875. package/lib/module/features/session/SessionManager.js.map +1 -1
  876. package/lib/module/features/session/SyncDecisionEngine.js +23 -23
  877. package/lib/module/features/session/SyncDecisionEngine.js.map +1 -1
  878. package/lib/module/features/session/index.js +5 -5
  879. package/lib/module/features/session/index.js.map +1 -1
  880. package/lib/module/features/session/nativeCapture.js +9 -10
  881. package/lib/module/features/session/nativeCapture.js.map +1 -1
  882. package/lib/module/features/session/outboxFrameCapture.js +18 -17
  883. package/lib/module/features/session/outboxFrameCapture.js.map +1 -1
  884. package/lib/module/features/session/sessionTypes.js +44 -44
  885. package/lib/module/features/session/sessionTypes.js.map +1 -1
  886. package/lib/module/features/skan/skanBridge.js +11 -11
  887. package/lib/module/features/skan/skanBridge.js.map +1 -1
  888. package/lib/module/features/skan/skanConversionManager.js +23 -23
  889. package/lib/module/features/skan/skanConversionManager.js.map +1 -1
  890. package/lib/module/index.js +19 -10
  891. package/lib/module/index.js.map +1 -1
  892. package/lib/module/integrations/fetch/fetchInterceptor.js +21 -21
  893. package/lib/module/integrations/fetch/fetchInterceptor.js.map +1 -1
  894. package/lib/module/integrations/navigation/screenTracker.js.map +1 -1
  895. package/lib/module/integrations/network/bodyCapture.js +69 -69
  896. package/lib/module/integrations/network/bodyCapture.js.map +1 -1
  897. package/lib/module/integrations/xhr/xhrInterceptor.js +24 -24
  898. package/lib/module/integrations/xhr/xhrInterceptor.js.map +1 -1
  899. package/lib/module/metro/index.js +37 -37
  900. package/lib/module/metro/index.js.map +1 -1
  901. package/lib/module/metro/optionalDependencyStub.js +11 -11
  902. package/lib/module/metro/optionalDependencyStub.js.map +1 -1
  903. package/lib/module/metro/optionalModules.js +16 -16
  904. package/lib/module/metro/optionalModules.js.map +1 -1
  905. package/lib/module/pipeline/dispatcher/dispatcher.js.map +1 -1
  906. package/lib/module/pipeline/envelope/envelope.js.map +1 -1
  907. package/lib/module/pipeline/envelope/serializer.js.map +1 -1
  908. package/lib/module/pipeline/processors/dedupe.js.map +1 -1
  909. package/lib/module/pipeline/processors/enrich.js.map +1 -1
  910. package/lib/module/pipeline/processors/sampling.js.map +1 -1
  911. package/lib/module/pipeline/processors/sanitize.js.map +1 -1
  912. package/lib/module/pipeline/queue/flushQueue.js +4 -4
  913. package/lib/module/pipeline/queue/flushQueue.js.map +1 -1
  914. package/lib/module/pipeline/queue/memoryQueue.js.map +1 -1
  915. package/lib/module/pipeline/queue/persistentQueue.js +80 -80
  916. package/lib/module/pipeline/queue/persistentQueue.js.map +1 -1
  917. package/lib/module/pipeline/queue/queuePolicy.js.map +1 -1
  918. package/lib/module/pipeline/scheduler/flushScheduler.js.map +1 -1
  919. package/lib/module/pipeline/scheduler/retryPolicy.js +2 -2
  920. package/lib/module/pipeline/scheduler/retryPolicy.js.map +1 -1
  921. package/lib/module/public/ScaleBunErrorBoundary.js +70 -0
  922. package/lib/module/public/ScaleBunErrorBoundary.js.map +1 -0
  923. package/lib/module/public/ScaleBunFacade.js +424 -276
  924. package/lib/module/public/ScaleBunFacade.js.map +1 -1
  925. package/lib/module/public/ScaleBunProvider.js +3 -3
  926. package/lib/module/public/ScaleBunProvider.js.map +1 -1
  927. package/lib/module/public/typedTracker.js +36 -36
  928. package/lib/module/public/typedTracker.js.map +1 -1
  929. package/lib/module/public/types.js.map +1 -1
  930. package/lib/module/push/PushManager.js +21 -21
  931. package/lib/module/push/PushManager.js.map +1 -1
  932. package/lib/module/push/adapters/ManualAdapter.js +14 -14
  933. package/lib/module/push/adapters/ManualAdapter.js.map +1 -1
  934. package/lib/module/push/adapters/NativeBridgeAdapter.js +17 -17
  935. package/lib/module/push/adapters/NativeBridgeAdapter.js.map +1 -1
  936. package/lib/module/push/adapters/NoopAdapter.js +5 -5
  937. package/lib/module/push/adapters/NoopAdapter.js.map +1 -1
  938. package/lib/module/push/adapters/RNFirebaseMessagingAdapter.js +17 -17
  939. package/lib/module/push/adapters/RNFirebaseMessagingAdapter.js.map +1 -1
  940. package/lib/module/push/adapters/loadMessaging.js +12 -12
  941. package/lib/module/push/adapters/loadMessaging.js.map +1 -1
  942. package/lib/module/push/adapters/loadNotifee.js +12 -12
  943. package/lib/module/push/adapters/loadNotifee.js.map +1 -1
  944. package/lib/module/push/adapters/selectAdapter.js +14 -14
  945. package/lib/module/push/adapters/selectAdapter.js.map +1 -1
  946. package/lib/module/push/detect/capabilities.js +19 -19
  947. package/lib/module/push/detect/capabilities.js.map +1 -1
  948. package/lib/module/push/index.js +3 -3
  949. package/lib/module/push/index.js.map +1 -1
  950. package/lib/module/push/native/nativeNotifications.js +32 -32
  951. package/lib/module/push/native/nativeNotifications.js.map +1 -1
  952. package/lib/module/push/types.js.map +1 -1
  953. package/lib/module/specs/NativeReplaySdk.js +18 -18
  954. package/lib/module/specs/NativeReplaySdk.js.map +1 -1
  955. package/lib/module/specs/NativeScaleBunCrash.js +19 -19
  956. package/lib/module/specs/NativeScaleBunCrash.js.map +1 -1
  957. package/lib/module/specs/NativeScaleBunInstallReferrer.js +14 -14
  958. package/lib/module/specs/NativeScaleBunInstallReferrer.js.map +1 -1
  959. package/lib/module/specs/NativeScaleBunOta.js +21 -21
  960. package/lib/module/specs/NativeScaleBunOta.js.map +1 -1
  961. package/lib/module/specs/NativeScaleBunPerformance.js +15 -15
  962. package/lib/module/specs/NativeScaleBunPerformance.js.map +1 -1
  963. package/lib/module/specs/NativeScaleBunProfiler.js +16 -16
  964. package/lib/module/specs/NativeScaleBunProfiler.js.map +1 -1
  965. package/lib/module/specs/NativeScaleBunStorage.js +29 -29
  966. package/lib/module/specs/NativeScaleBunStorage.js.map +1 -1
  967. package/lib/module/storage/StorageBackend.js +83 -83
  968. package/lib/module/storage/StorageBackend.js.map +1 -1
  969. package/lib/module/storage/db/sqlite.js.map +1 -1
  970. package/lib/module/storage/files/fileStore.js.map +1 -1
  971. package/lib/module/transport/auth/sdkSession.js.map +1 -1
  972. package/lib/module/transport/backoff/exponentialJitter.js +2 -2
  973. package/lib/module/transport/backoff/exponentialJitter.js.map +1 -1
  974. package/lib/module/transport/http/endpoints.js.map +1 -1
  975. package/lib/module/transport/http/httpClient.js +3 -3
  976. package/lib/module/transport/http/httpClient.js.map +1 -1
  977. package/lib/module/transport/rateLimit/retryAfter.js.map +1 -1
  978. package/lib/module/transport/signing/requestSigner.js.map +1 -1
  979. package/lib/module/vendor/protocol/index.js +74 -74
  980. package/lib/module/vendor/protocol/index.js.map +1 -1
  981. package/lib/module/vendor/protocol/internal/validation.js +23 -23
  982. package/lib/module/vendor/protocol/internal/validation.js.map +1 -1
  983. package/lib/module/vendor/sdk-contracts/bridge.js.map +1 -1
  984. package/lib/module/vendor/sdk-contracts/config.js.map +1 -1
  985. package/lib/module/vendor/sdk-contracts/events.js.map +1 -1
  986. package/lib/module/vendor/sdk-contracts/features.js.map +1 -1
  987. package/lib/module/vendor/sdk-contracts/index.js.map +1 -1
  988. package/lib/module/vendor/sdk-contracts/platform.js.map +1 -1
  989. package/lib/module/vendor/sdk-contracts/session-boundary.js.map +1 -1
  990. package/lib/module/vendor/sdk-contracts/session.js.map +1 -1
  991. package/lib/module/vendor/vendor.manifest +10 -10
  992. package/lib/typescript/analytics/EventTracker.d.ts +20 -0
  993. package/lib/typescript/analytics/EventTracker.d.ts.map +1 -1
  994. package/lib/typescript/bootstrap/SDKBootstrapper.d.ts.map +1 -1
  995. package/lib/typescript/core/config/schema.d.ts +1 -1
  996. package/lib/typescript/core/config/schema.d.ts.map +1 -1
  997. package/lib/typescript/core/context/device.d.ts +46 -0
  998. package/lib/typescript/core/context/device.d.ts.map +1 -1
  999. package/lib/typescript/debug/replayWiring.d.ts.map +1 -1
  1000. package/lib/typescript/features/bugreport/BugReportFeature.d.ts +59 -0
  1001. package/lib/typescript/features/bugreport/BugReportFeature.d.ts.map +1 -0
  1002. package/lib/typescript/features/bugreport/buildPayload.d.ts +51 -0
  1003. package/lib/typescript/features/bugreport/buildPayload.d.ts.map +1 -0
  1004. package/lib/typescript/features/crash/CrashFeature.d.ts.map +1 -1
  1005. package/lib/typescript/features/crash/CrashReporter.d.ts +20 -1
  1006. package/lib/typescript/features/crash/CrashReporter.d.ts.map +1 -1
  1007. package/lib/typescript/features/crash/capture.d.ts +21 -2
  1008. package/lib/typescript/features/crash/capture.d.ts.map +1 -1
  1009. package/lib/typescript/features/crash/nativeCrashBridge.d.ts +16 -3
  1010. package/lib/typescript/features/crash/nativeCrashBridge.d.ts.map +1 -1
  1011. package/lib/typescript/features/crash/rejectionHandler.d.ts +46 -0
  1012. package/lib/typescript/features/crash/rejectionHandler.d.ts.map +1 -0
  1013. package/lib/typescript/features/engage/EngagePromptProvider.d.ts.map +1 -1
  1014. package/lib/typescript/features/engage/EngagePromptView.d.ts.map +1 -1
  1015. package/lib/typescript/features/engage/engageThrottle.d.ts +24 -4
  1016. package/lib/typescript/features/engage/engageThrottle.d.ts.map +1 -1
  1017. package/lib/typescript/features/engage/engageTriggerEngine.d.ts.map +1 -1
  1018. package/lib/typescript/features/engage/engageTypes.d.ts +21 -0
  1019. package/lib/typescript/features/engage/engageTypes.d.ts.map +1 -1
  1020. package/lib/typescript/features/journey/ScaleBunDebugRoot.d.ts.map +1 -1
  1021. package/lib/typescript/features/navigation/AutoScreenDetector.d.ts +9 -0
  1022. package/lib/typescript/features/navigation/AutoScreenDetector.d.ts.map +1 -1
  1023. package/lib/typescript/features/ota/OtaOrchestrator.d.ts +75 -3
  1024. package/lib/typescript/features/ota/OtaOrchestrator.d.ts.map +1 -1
  1025. package/lib/typescript/features/ota/OtaTypes.d.ts +42 -0
  1026. package/lib/typescript/features/ota/OtaTypes.d.ts.map +1 -1
  1027. package/lib/typescript/features/ota/deviceAttributes.d.ts +18 -0
  1028. package/lib/typescript/features/ota/deviceAttributes.d.ts.map +1 -0
  1029. package/lib/typescript/features/ota/environment.d.ts +99 -0
  1030. package/lib/typescript/features/ota/environment.d.ts.map +1 -0
  1031. package/lib/typescript/features/ota/geoCountry.d.ts +14 -0
  1032. package/lib/typescript/features/ota/geoCountry.d.ts.map +1 -0
  1033. package/lib/typescript/features/ota/retry.d.ts +53 -0
  1034. package/lib/typescript/features/ota/retry.d.ts.map +1 -0
  1035. package/lib/typescript/features/ota/signature.d.ts +66 -0
  1036. package/lib/typescript/features/ota/signature.d.ts.map +1 -0
  1037. package/lib/typescript/features/ota/useOtaUpdate.d.ts +20 -2
  1038. package/lib/typescript/features/ota/useOtaUpdate.d.ts.map +1 -1
  1039. package/lib/typescript/features/performance/PerformanceFeature.d.ts +0 -1
  1040. package/lib/typescript/features/performance/PerformanceFeature.d.ts.map +1 -1
  1041. package/lib/typescript/features/performance/collectors/FrameMetricsCollector.d.ts +33 -0
  1042. package/lib/typescript/features/performance/collectors/FrameMetricsCollector.d.ts.map +1 -1
  1043. package/lib/typescript/features/performance/transport/PerformanceTransport.d.ts.map +1 -1
  1044. package/lib/typescript/features/session/BackendSessionAdapter.d.ts +135 -4
  1045. package/lib/typescript/features/session/BackendSessionAdapter.d.ts.map +1 -1
  1046. package/lib/typescript/features/session/JourneyEventPipeline.d.ts +2 -0
  1047. package/lib/typescript/features/session/JourneyEventPipeline.d.ts.map +1 -1
  1048. package/lib/typescript/features/session/ReplayCaptureManager.d.ts +38 -1
  1049. package/lib/typescript/features/session/ReplayCaptureManager.d.ts.map +1 -1
  1050. package/lib/typescript/features/session/SessionManager.d.ts.map +1 -1
  1051. package/lib/typescript/features/session/nativeCapture.d.ts +2 -1
  1052. package/lib/typescript/features/session/nativeCapture.d.ts.map +1 -1
  1053. package/lib/typescript/features/session/outboxFrameCapture.d.ts.map +1 -1
  1054. package/lib/typescript/features/session/sessionTypes.d.ts +20 -3
  1055. package/lib/typescript/features/session/sessionTypes.d.ts.map +1 -1
  1056. package/lib/typescript/index.d.ts +7 -0
  1057. package/lib/typescript/index.d.ts.map +1 -1
  1058. package/lib/typescript/public/ScaleBunErrorBoundary.d.ts +44 -0
  1059. package/lib/typescript/public/ScaleBunErrorBoundary.d.ts.map +1 -0
  1060. package/lib/typescript/public/ScaleBunFacade.d.ts +58 -0
  1061. package/lib/typescript/public/ScaleBunFacade.d.ts.map +1 -1
  1062. package/lib/typescript/specs/NativeScaleBunCrash.d.ts +14 -0
  1063. package/lib/typescript/specs/NativeScaleBunCrash.d.ts.map +1 -1
  1064. package/lib/typescript/specs/NativeScaleBunOta.d.ts +11 -0
  1065. package/lib/typescript/specs/NativeScaleBunOta.d.ts.map +1 -1
  1066. package/lib/typescript/vendor/protocol/index.d.ts +17 -17
  1067. package/package.json +12 -14
  1068. package/react-native.config.js +24 -24
  1069. package/scalebun-react-native.podspec +37 -37
  1070. package/src/analytics/EventTracker.ts +489 -462
  1071. package/src/analytics/automaticEvents.ts +105 -105
  1072. package/src/analytics/batching.ts +54 -54
  1073. package/src/analytics/eventLane.ts +26 -26
  1074. package/src/bootstrap/FeatureRegistry.ts +81 -81
  1075. package/src/bootstrap/SDKBootstrapper.ts +610 -585
  1076. package/src/bucketing/fnv1a32.ts +40 -40
  1077. package/src/compat/codepush.ts +118 -118
  1078. package/src/config/ConfigManager.ts +167 -167
  1079. package/src/config/configTypes.ts +32 -32
  1080. package/src/core/architecture.ts +39 -39
  1081. package/src/core/clock/now.ts +6 -6
  1082. package/src/core/config/schema.ts +239 -231
  1083. package/src/core/constants/endpoints.ts +9 -9
  1084. package/src/core/constants/timings.ts +23 -23
  1085. package/src/core/constants/version.ts +6 -6
  1086. package/src/core/context/device.ts +146 -0
  1087. package/src/core/context/user.ts +26 -26
  1088. package/src/core/contracts/IFeature.ts +53 -53
  1089. package/src/core/di/container.ts +26 -26
  1090. package/src/core/encoding/base64.ts +46 -46
  1091. package/src/core/id/deviceId.ts +51 -51
  1092. package/src/core/lifecycle/appLifecycle.ts +33 -33
  1093. package/src/core/lifecycle/crashSafe.ts +29 -29
  1094. package/src/core/logger/errorClassification.ts +108 -108
  1095. package/src/core/logger/internalLogger.ts +65 -65
  1096. package/src/crypto/hmacSha256.ts +106 -106
  1097. package/src/debug/bootstrap.ts +366 -366
  1098. package/src/debug/commands.ts +597 -597
  1099. package/src/debug/configBuilder.ts +56 -56
  1100. package/src/debug/exportBridge.ts +153 -153
  1101. package/src/debug/hostResolver.ts +34 -34
  1102. package/src/debug/index.ts +25 -25
  1103. package/src/debug/metrics.ts +29 -29
  1104. package/src/debug/perf.ts +212 -212
  1105. package/src/debug/perfWiring.ts +119 -119
  1106. package/src/debug/protocol.ts +58 -58
  1107. package/src/debug/redaction.ts +290 -290
  1108. package/src/debug/replayWiring.ts +148 -147
  1109. package/src/debug/screenTracking.ts +55 -55
  1110. package/src/debug/sessionWiring.ts +59 -59
  1111. package/src/debug/stream.ts +561 -561
  1112. package/src/debug/transport.ts +439 -439
  1113. package/src/features/bugreport/BugReportFeature.ts +128 -0
  1114. package/src/features/bugreport/buildPayload.ts +116 -0
  1115. package/src/features/crash/CrashFeature.ts +71 -52
  1116. package/src/features/crash/CrashReporter.ts +179 -140
  1117. package/src/features/crash/NativeCrashFeature.ts +42 -42
  1118. package/src/features/crash/capture.ts +48 -21
  1119. package/src/features/crash/globalHandler.ts +39 -39
  1120. package/src/features/crash/index.ts +8 -8
  1121. package/src/features/crash/nativeCrashBridge.ts +266 -132
  1122. package/src/features/crash/rejectionHandler.ts +134 -0
  1123. package/src/features/engage/EngageAnchor.tsx +159 -159
  1124. package/src/features/engage/EngageArchetypeRenderers.tsx +3716 -3716
  1125. package/src/features/engage/EngageInAppView.tsx +2678 -2678
  1126. package/src/features/engage/EngageInlinePlacement.tsx +169 -169
  1127. package/src/features/engage/EngagePromptProvider.tsx +1318 -1270
  1128. package/src/features/engage/EngagePromptView.tsx +1400 -1364
  1129. package/src/features/engage/EngageTransport.ts +668 -668
  1130. package/src/features/engage/EngageVariantContent.tsx +1483 -1483
  1131. package/src/features/engage/__test-support__/reactNativeStub.js +40 -40
  1132. package/src/features/engage/attachmentCapture.ts +45 -45
  1133. package/src/features/engage/captureVoiceAttachment.ts +81 -81
  1134. package/src/features/engage/engageCoachmarkTour.ts +120 -120
  1135. package/src/features/engage/engageGameLogic.ts +347 -347
  1136. package/src/features/engage/engageMediaSizing.ts +76 -76
  1137. package/src/features/engage/engageMultiStepSheet.ts +53 -53
  1138. package/src/features/engage/engageOutcome.ts +157 -157
  1139. package/src/features/engage/engagePushTokenBridge.ts +84 -84
  1140. package/src/features/engage/engageShakeBridge.ts +67 -67
  1141. package/src/features/engage/engageSignals.ts +40 -40
  1142. package/src/features/engage/engageStoreReviewBridge.ts +48 -48
  1143. package/src/features/engage/engageTestSeenStore.ts +95 -95
  1144. package/src/features/engage/engageThrottle.ts +478 -440
  1145. package/src/features/engage/engageTriggerEngine.ts +350 -335
  1146. package/src/features/engage/engageTypes.ts +712 -691
  1147. package/src/features/engage/engageVariantResolver.ts +364 -364
  1148. package/src/features/engage/engageWindowInsets.ts +108 -108
  1149. package/src/features/engage/gestureTriggerDetector.ts +83 -83
  1150. package/src/features/engage/transcription/TranscriptionProvider.ts +68 -68
  1151. package/src/features/install-referrer/installReferrer.ts +112 -112
  1152. package/src/features/journey/ScaleBunDebugRoot.tsx +727 -726
  1153. package/src/features/journey/ScaleBunFlatList.tsx +39 -39
  1154. package/src/features/journey/ScaleBunImpression.tsx +109 -109
  1155. package/src/features/journey/ScaleBunScrollView.tsx +72 -72
  1156. package/src/features/journey/ScaleBunSectionList.tsx +39 -39
  1157. package/src/features/journey/calibrationContext.ts +53 -53
  1158. package/src/features/journey/gestureBuffer.ts +59 -59
  1159. package/src/features/journey/gestureDetector.ts +162 -162
  1160. package/src/features/journey/impression.ts +92 -92
  1161. package/src/features/journey/journeyManager.ts +466 -466
  1162. package/src/features/journey/journeyTypes.ts +215 -215
  1163. package/src/features/journey/navDetector.ts +149 -149
  1164. package/src/features/journey/screenshotHelper.ts +137 -137
  1165. package/src/features/journey/targetRegistry.ts +43 -43
  1166. package/src/features/journey/touchTarget.ts +128 -128
  1167. package/src/features/navigation/AutoScreenDetector.ts +503 -448
  1168. package/src/features/network/NetworkFeature.ts +144 -144
  1169. package/src/features/network/index.ts +31 -31
  1170. package/src/features/ota/OtaEventEmitter.ts +128 -128
  1171. package/src/features/ota/OtaOrchestrator.ts +963 -323
  1172. package/src/features/ota/OtaTypes.ts +118 -62
  1173. package/src/features/ota/deviceAttributes.ts +46 -0
  1174. package/src/features/ota/environment.ts +199 -0
  1175. package/src/features/ota/geoCountry.ts +85 -0
  1176. package/src/features/ota/retry.ts +123 -0
  1177. package/src/features/ota/signature.ts +123 -0
  1178. package/src/features/ota/useOtaUpdate.ts +152 -134
  1179. package/src/features/performance/PerformanceFeature.ts +597 -584
  1180. package/src/features/performance/collectors/AppLaunchCollector.ts +117 -117
  1181. package/src/features/performance/collectors/AutoScreenLoadCollector.ts +258 -258
  1182. package/src/features/performance/collectors/CustomTraceCollector.ts +116 -116
  1183. package/src/features/performance/collectors/FrameMetricsCollector.ts +181 -119
  1184. package/src/features/performance/collectors/JsStallCollector.ts +165 -165
  1185. package/src/features/performance/collectors/NetworkPerfCollector.ts +69 -69
  1186. package/src/features/performance/collectors/ScreenLoadCollector.ts +95 -95
  1187. package/src/features/performance/collectors/UiHangCollector.ts +98 -98
  1188. package/src/features/performance/config.ts +136 -136
  1189. package/src/features/performance/getNativePerformanceModule.ts +38 -38
  1190. package/src/features/performance/index.ts +28 -28
  1191. package/src/features/performance/metrics/MetricsEngine.ts +152 -152
  1192. package/src/features/performance/models.ts +235 -235
  1193. package/src/features/performance/transport/PerformanceTransport.ts +161 -143
  1194. package/src/features/profiler/ProfilerFeature.ts +661 -661
  1195. package/src/features/profiler/config.ts +230 -230
  1196. package/src/features/profiler/contracts.ts +176 -176
  1197. package/src/features/profiler/index.ts +45 -45
  1198. package/src/features/profiler/models.ts +430 -430
  1199. package/src/features/profiler/transport/ProfilerTransport.ts +93 -93
  1200. package/src/features/replay/bridge/adapters/bridgeAdapter.ts +230 -230
  1201. package/src/features/replay/bridge/eventEmitter.ts +176 -176
  1202. package/src/features/replay/bridge/nativeModule.ts +241 -241
  1203. package/src/features/replay/core/clock/clock.ts +38 -38
  1204. package/src/features/replay/core/config/defaults.ts +66 -66
  1205. package/src/features/replay/core/config/validator.ts +113 -113
  1206. package/src/features/replay/core/env/environmentDetector.ts +21 -21
  1207. package/src/features/replay/core/errors/safeCall.ts +34 -34
  1208. package/src/features/replay/core/ids/sessionId.ts +44 -44
  1209. package/src/features/replay/core/logger/logger.ts +40 -40
  1210. package/src/features/replay/core/privacy/privacyTypes.ts +41 -41
  1211. package/src/features/replay/core/queue/boundedQueue.ts +71 -71
  1212. package/src/features/replay/integrations/alert/alertInstrumentation.ts +277 -277
  1213. package/src/features/replay/integrations/logs/consoleIntegration.ts +116 -116
  1214. package/src/features/replay/integrations/network/networkAdapter.ts +128 -128
  1215. package/src/features/replay/integrations/react-navigation/navigationIntegration.ts +89 -89
  1216. package/src/features/replay/integrations/touch/ReplayRoot.tsx +114 -114
  1217. package/src/features/replay/pipeline/batching/batchManager.ts +133 -133
  1218. package/src/features/replay/pipeline/envelope/envelopeBuilder.ts +66 -66
  1219. package/src/features/replay/pipeline/retry/retryPolicy.ts +62 -62
  1220. package/src/features/replay/pipeline/transport/transportTypes.ts +85 -85
  1221. package/src/features/replay/public/api.ts +364 -364
  1222. package/src/features/replay/public/enums.ts +78 -78
  1223. package/src/features/replay/public/types.ts +297 -297
  1224. package/src/features/replay/replay/breadcrumbs/breadcrumbCollector.ts +115 -115
  1225. package/src/features/replay/replay/frames/frameModels.ts +45 -45
  1226. package/src/features/replay/replay/session/sessionOrchestrator.ts +286 -286
  1227. package/src/features/replay/replay/timeline/timelineModels.ts +129 -129
  1228. package/src/features/replay/transport/BackendReplayTransport.ts +215 -215
  1229. package/src/features/replay/transport/CompositeReplayTransport.ts +82 -82
  1230. package/src/features/replay/transport/DesktopReplayTransport.ts +140 -140
  1231. package/src/features/replay/transport/ReplayTransport.ts +84 -84
  1232. package/src/features/session/BackendSessionAdapter.ts +1568 -1233
  1233. package/src/features/session/DesktopSessionTransport.ts +128 -128
  1234. package/src/features/session/JourneyEventPipeline.ts +276 -273
  1235. package/src/features/session/ReplayCaptureManager.ts +998 -946
  1236. package/src/features/session/ScrollTracker.ts +166 -166
  1237. package/src/features/session/SessionManager.ts +1248 -1209
  1238. package/src/features/session/SyncDecisionEngine.ts +117 -117
  1239. package/src/features/session/index.ts +88 -88
  1240. package/src/features/session/nativeCapture.ts +39 -38
  1241. package/src/features/session/outboxFrameCapture.ts +75 -74
  1242. package/src/features/session/sessionTypes.ts +514 -491
  1243. package/src/features/skan/skanBridge.ts +61 -61
  1244. package/src/features/skan/skanConversionManager.ts +173 -173
  1245. package/src/index.ts +200 -191
  1246. package/src/integrations/fetch/fetchInterceptor.ts +182 -182
  1247. package/src/integrations/network/bodyCapture.ts +328 -328
  1248. package/src/integrations/xhr/xhrInterceptor.ts +231 -231
  1249. package/src/metro/index.ts +164 -164
  1250. package/src/metro/optionalDependencyStub.ts +13 -13
  1251. package/src/metro/optionalModules.ts +27 -27
  1252. package/src/pipeline/dispatcher/dispatcher.ts +22 -22
  1253. package/src/pipeline/envelope/envelope.ts +31 -31
  1254. package/src/pipeline/envelope/serializer.ts +14 -14
  1255. package/src/pipeline/processors/enrich.ts +11 -11
  1256. package/src/pipeline/processors/sanitize.ts +23 -23
  1257. package/src/pipeline/queue/flushQueue.ts +144 -144
  1258. package/src/pipeline/queue/memoryQueue.ts +31 -31
  1259. package/src/pipeline/queue/persistentQueue.ts +414 -414
  1260. package/src/pipeline/scheduler/flushScheduler.ts +47 -47
  1261. package/src/pipeline/scheduler/retryPolicy.ts +8 -8
  1262. package/src/public/ScaleBunErrorBoundary.tsx +79 -0
  1263. package/src/public/ScaleBunFacade.ts +1630 -1479
  1264. package/src/public/ScaleBunProvider.tsx +91 -91
  1265. package/src/public/typedTracker.ts +123 -123
  1266. package/src/public/types.ts +312 -312
  1267. package/src/push/PushManager.ts +318 -318
  1268. package/src/push/adapters/ManualAdapter.ts +100 -100
  1269. package/src/push/adapters/NativeBridgeAdapter.ts +142 -142
  1270. package/src/push/adapters/NoopAdapter.ts +46 -46
  1271. package/src/push/adapters/RNFirebaseMessagingAdapter.ts +271 -271
  1272. package/src/push/adapters/loadMessaging.ts +24 -24
  1273. package/src/push/adapters/loadNotifee.ts +29 -29
  1274. package/src/push/adapters/selectAdapter.ts +176 -176
  1275. package/src/push/detect/capabilities.ts +124 -124
  1276. package/src/push/index.ts +22 -22
  1277. package/src/push/native/nativeNotifications.ts +216 -216
  1278. package/src/push/types.ts +159 -159
  1279. package/src/specs/NativeReplaySdk.ts +99 -99
  1280. package/src/specs/NativeScaleBunCrash.ts +52 -36
  1281. package/src/specs/NativeScaleBunInstallReferrer.ts +29 -29
  1282. package/src/specs/NativeScaleBunOta.ts +97 -85
  1283. package/src/specs/NativeScaleBunPerformance.ts +34 -34
  1284. package/src/specs/NativeScaleBunProfiler.ts +41 -41
  1285. package/src/specs/NativeScaleBunStorage.ts +59 -59
  1286. package/src/storage/StorageBackend.ts +272 -272
  1287. package/src/transport/auth/sdkSession.ts +27 -27
  1288. package/src/transport/backoff/exponentialJitter.ts +9 -9
  1289. package/src/transport/http/endpoints.ts +33 -33
  1290. package/src/transport/http/httpClient.ts +73 -73
  1291. package/src/vendor/protocol/index.ts +391 -391
  1292. package/src/vendor/protocol/internal/validation.ts +497 -497
  1293. package/src/vendor/sdk-contracts/bridge.ts +162 -162
  1294. package/src/vendor/sdk-contracts/config.ts +192 -192
  1295. package/src/vendor/sdk-contracts/events.ts +50 -50
  1296. package/src/vendor/sdk-contracts/features.ts +42 -42
  1297. package/src/vendor/sdk-contracts/index.ts +98 -98
  1298. package/src/vendor/sdk-contracts/platform.ts +42 -42
  1299. package/src/vendor/sdk-contracts/session-boundary.ts +55 -55
  1300. package/src/vendor/sdk-contracts/session.ts +225 -225
  1301. package/src/vendor/vendor.manifest +10 -10
  1302. package/android/build/generated/source/buildConfig/debug/com/scalebun/sdk/BuildConfig.java +0 -12
  1303. package/android/build/generated/source/codegen/java/com/scalebun/spec/NativeReplaySdkSpec.java +0 -208
  1304. package/android/build/generated/source/codegen/java/com/scalebun/spec/NativeScaleBunCrashSpec.java +0 -46
  1305. package/android/build/generated/source/codegen/java/com/scalebun/spec/NativeScaleBunInstallReferrerSpec.java +0 -38
  1306. package/android/build/generated/source/codegen/java/com/scalebun/spec/NativeScaleBunOtaSpec.java +0 -63
  1307. package/android/build/generated/source/codegen/java/com/scalebun/spec/NativeScaleBunPerformanceSpec.java +0 -70
  1308. package/android/build/generated/source/codegen/java/com/scalebun/spec/NativeScaleBunProfilerSpec.java +0 -96
  1309. package/android/build/generated/source/codegen/java/com/scalebun/spec/NativeScaleBunStorageSpec.java +0 -50
  1310. package/android/build/generated/source/codegen/jni/CMakeLists.txt +0 -28
  1311. package/android/build/generated/source/codegen/jni/ScaleBunSpec-generated.cpp +0 -554
  1312. package/android/build/generated/source/codegen/jni/ScaleBunSpec.h +0 -79
  1313. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/ComponentDescriptors.cpp +0 -22
  1314. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/ComponentDescriptors.h +0 -24
  1315. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/EventEmitters.cpp +0 -16
  1316. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/EventEmitters.h +0 -17
  1317. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/Props.cpp +0 -19
  1318. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/Props.h +0 -18
  1319. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/ScaleBunSpecJSI-generated.cpp +0 -595
  1320. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/ScaleBunSpecJSI.h +0 -1070
  1321. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/ShadowNodes.cpp +0 -17
  1322. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/ShadowNodes.h +0 -23
  1323. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/States.cpp +0 -16
  1324. package/android/build/generated/source/codegen/jni/react/renderer/components/ScaleBunSpec/States.h +0 -20
  1325. package/android/build/generated/source/codegen/schema.json +0 -1
  1326. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -20
  1327. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
  1328. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
  1329. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +0 -1
  1330. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  1331. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  1332. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  1333. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
  1334. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  1335. package/android/build/intermediates/incremental/mergeDebugAssets/merger.xml +0 -2
  1336. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  1337. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  1338. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/scalebun_react-native_debug.kotlin_module +0 -0
  1339. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/scalebun/sdk/BuildConfig.class +0 -0
  1340. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/scalebun/spec/NativeReplaySdkSpec.class +0 -0
  1341. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/scalebun/spec/NativeScaleBunCrashSpec.class +0 -0
  1342. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/scalebun/spec/NativeScaleBunInstallReferrerSpec.class +0 -0
  1343. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/scalebun/spec/NativeScaleBunOtaSpec.class +0 -0
  1344. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/scalebun/spec/NativeScaleBunPerformanceSpec.class +0 -0
  1345. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/scalebun/spec/NativeScaleBunProfilerSpec.class +0 -0
  1346. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/scalebun/spec/NativeScaleBunStorageSpec.class +0 -0
  1347. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -2
  1348. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -24
  1349. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -20
  1350. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
  1351. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
  1352. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/scalebun_react-native_debug.kotlin_module +0 -0
  1353. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/crash/CrashStorage.class +0 -0
  1354. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/crash/NativeCrashHandler$Companion.class +0 -0
  1355. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/crash/NativeCrashHandler.class +0 -0
  1356. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/ANRWatchdog$HangInfo.class +0 -0
  1357. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/ANRWatchdog.class +0 -0
  1358. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/AppStartCollector$AppStartInfo.class +0 -0
  1359. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/AppStartCollector$Breakdown.class +0 -0
  1360. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/AppStartCollector$start$1.class +0 -0
  1361. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/AppStartCollector.class +0 -0
  1362. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/FrameMetricsCollector$Companion.class +0 -0
  1363. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/FrameMetricsCollector$FrameMetricsSnapshot.class +0 -0
  1364. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/FrameMetricsCollector$start$1.class +0 -0
  1365. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/FrameMetricsCollector$startChoreographerFallback$1.class +0 -0
  1366. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/FrameMetricsCollector.class +0 -0
  1367. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/PerformanceCore$Listener.class +0 -0
  1368. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/core/performance/PerformanceCore.class +0 -0
  1369. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/ProfilerModule$Companion.class +0 -0
  1370. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/ProfilerModule.class +0 -0
  1371. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/ProfilerPackage.class +0 -0
  1372. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/ProfilerSpec.class +0 -0
  1373. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/collectors/CpuCollector.class +0 -0
  1374. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/collectors/IncidentDetector.class +0 -0
  1375. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/collectors/MemoryCollector.class +0 -0
  1376. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/collectors/RenderCollector$frameCallback$1.class +0 -0
  1377. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/collectors/RenderCollector.class +0 -0
  1378. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/collectors/SamplerScheduler.class +0 -0
  1379. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/collectors/SamplerSchedulerKt.class +0 -0
  1380. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/collectors/ThreadCollector$WhenMappings.class +0 -0
  1381. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/profiler/collectors/ThreadCollector.class +0 -0
  1382. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/ReplaySdkModule$Companion.class +0 -0
  1383. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/ReplaySdkModule$registerConnectivity$cb$1.class +0 -0
  1384. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/ReplaySdkModule.class +0 -0
  1385. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/ReplaySdkPackage.class +0 -0
  1386. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/ReplaySdkSpec.class +0 -0
  1387. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/capture/CaptureReason$Companion.class +0 -0
  1388. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/capture/CaptureReason.class +0 -0
  1389. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/capture/FrameCaptureManager$startFrequencyTimer$1.class +0 -0
  1390. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/capture/FrameCaptureManager.class +0 -0
  1391. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/capture/FrameCaptureScheduler$Companion.class +0 -0
  1392. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/capture/FrameCaptureScheduler$FrameRequest.class +0 -0
  1393. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/capture/FrameCaptureScheduler.class +0 -0
  1394. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/capture/UiStabilityDetector$Companion.class +0 -0
  1395. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/capture/UiStabilityDetector$SettleWatch.class +0 -0
  1396. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/capture/UiStabilityDetector$StabilityWatch.class +0 -0
  1397. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/capture/UiStabilityDetector.class +0 -0
  1398. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/core/CaptureMode$Companion.class +0 -0
  1399. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/core/CaptureMode.class +0 -0
  1400. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/core/ReplayConfig$Companion.class +0 -0
  1401. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/core/ReplayConfig.class +0 -0
  1402. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/core/ReplayLogger.class +0 -0
  1403. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/core/ScreenshotQuality$Companion.class +0 -0
  1404. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/core/ScreenshotQuality.class +0 -0
  1405. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/core/SessionIdGenerator.class +0 -0
  1406. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/core/SessionState.class +0 -0
  1407. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/models/ReplayFrame.class +0 -0
  1408. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/models/ReplaySession.class +0 -0
  1409. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/models/TimelineEvent.class +0 -0
  1410. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/outbox/NativeOutbox$Companion.class +0 -0
  1411. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/outbox/NativeOutbox$enforceLimits$lambda$37$$inlined$sortedBy$1.class +0 -0
  1412. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/outbox/NativeOutbox.class +0 -0
  1413. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/outbox/OutboxUploader$NetResult$NetworkError.class +0 -0
  1414. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/outbox/OutboxUploader$NetResult$Response.class +0 -0
  1415. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/outbox/OutboxUploader$NetResult.class +0 -0
  1416. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/outbox/OutboxUploader$Outcome.class +0 -0
  1417. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/outbox/OutboxUploader$WhenMappings.class +0 -0
  1418. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/outbox/OutboxUploader.class +0 -0
  1419. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/privacy/PrivacyMaskProcessor.class +0 -0
  1420. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/session/SessionManager.class +0 -0
  1421. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/storage/ReplayStorage$enforceStorageLimit$$inlined$sortedBy$1.class +0 -0
  1422. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/storage/ReplayStorage.class +0 -0
  1423. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/timeline/TimelineCollector.class +0 -0
  1424. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/tracking/DialogTouchObserver$start$runnable$1.class +0 -0
  1425. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/tracking/DialogTouchObserver.class +0 -0
  1426. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/tracking/InteractionTracker.class +0 -0
  1427. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/tracking/NativeTouchInterceptor.class +0 -0
  1428. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/tracking/ScreenTracker.class +0 -0
  1429. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/transport/ReplayTransport$UploadResult.class +0 -0
  1430. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/transport/ReplayTransport$upload$2.class +0 -0
  1431. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/transport/ReplayTransport.class +0 -0
  1432. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/voice/VoiceRecorder$Companion.class +0 -0
  1433. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/voice/VoiceRecorder$Result.class +0 -0
  1434. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/voice/VoiceRecorder.class +0 -0
  1435. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/voice/VoiceTranscriber$TranscriptResult.class +0 -0
  1436. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/voice/VoiceTranscriber$listener$1.class +0 -0
  1437. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/replaysdk/voice/VoiceTranscriber.class +0 -0
  1438. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/ScaleBunPackage$Companion.class +0 -0
  1439. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/ScaleBunPackage.class +0 -0
  1440. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/crash/ScaleBunCrashModule$Companion.class +0 -0
  1441. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/crash/ScaleBunCrashModule.class +0 -0
  1442. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/crash/ScaleBunCrashPackage.class +0 -0
  1443. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/crash/ScaleBunCrashSpec.class +0 -0
  1444. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/engage/ScaleBunEngageModule$Companion.class +0 -0
  1445. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/engage/ScaleBunEngageModule$WindowInsetEdges.class +0 -0
  1446. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/engage/ScaleBunEngageModule$shakeListener$1.class +0 -0
  1447. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/engage/ScaleBunEngageModule.class +0 -0
  1448. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/engage/ScaleBunEngagePackage.class +0 -0
  1449. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/engage/ScaleBunNotificationPresenter.class +0 -0
  1450. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/ota/ScaleBunOtaModule$Companion.class +0 -0
  1451. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/ota/ScaleBunOtaModule.class +0 -0
  1452. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/ota/ScaleBunOtaSpec.class +0 -0
  1453. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/ota/SlotManager$Companion.class +0 -0
  1454. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/ota/SlotManager.class +0 -0
  1455. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/performance/PerformanceModule$Companion.class +0 -0
  1456. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/performance/PerformanceModule$coreListener$1.class +0 -0
  1457. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/performance/PerformanceModule.class +0 -0
  1458. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/performance/PerformanceSpec.class +0 -0
  1459. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/referrer/ScaleBunInstallReferrerModule$Companion.class +0 -0
  1460. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/referrer/ScaleBunInstallReferrerModule$getInstallReferrer$1.class +0 -0
  1461. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/referrer/ScaleBunInstallReferrerModule.class +0 -0
  1462. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/referrer/ScaleBunInstallReferrerSpec.class +0 -0
  1463. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/storage/ScaleBunStorageModule$Companion.class +0 -0
  1464. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/storage/ScaleBunStorageModule.class +0 -0
  1465. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/rn/storage/ScaleBunStorageSpec.class +0 -0
  1466. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/sdk/BuildConfig.class +0 -0
  1467. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/spec/NativeReplaySdkSpec.class +0 -0
  1468. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/spec/NativeScaleBunCrashSpec.class +0 -0
  1469. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/spec/NativeScaleBunInstallReferrerSpec.class +0 -0
  1470. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/spec/NativeScaleBunOtaSpec.class +0 -0
  1471. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/spec/NativeScaleBunPerformanceSpec.class +0 -0
  1472. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/spec/NativeScaleBunProfilerSpec.class +0 -0
  1473. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/spec/NativeScaleBunStorageSpec.class +0 -0
  1474. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/storage/KvFileStore$Companion.class +0 -0
  1475. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/scalebun/storage/KvFileStore.class +0 -0
  1476. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  1477. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -1
  1478. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  1479. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  1480. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  1481. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  1482. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  1483. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  1484. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  1485. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  1486. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  1487. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  1488. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  1489. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  1490. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  1491. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  1492. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  1493. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  1494. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  1495. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  1496. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  1497. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  1498. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  1499. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  1500. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  1501. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  1502. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  1503. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  1504. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  1505. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  1506. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  1507. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  1508. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  1509. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  1510. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  1511. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  1512. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  1513. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab +0 -0
  1514. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream +0 -0
  1515. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.keystream.len +0 -0
  1516. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.len +0 -0
  1517. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab.values.at +0 -0
  1518. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i +0 -0
  1519. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/package-parts.tab_i.len +0 -0
  1520. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  1521. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  1522. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  1523. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  1524. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values +0 -0
  1525. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  1526. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.s +0 -1
  1527. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  1528. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  1529. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  1530. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  1531. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  1532. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  1533. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  1534. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  1535. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  1536. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  1537. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  1538. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  1539. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  1540. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  1541. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  1542. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  1543. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  1544. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  1545. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  1546. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  1547. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  1548. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  1549. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  1550. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +0 -2
  1551. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  1552. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  1553. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  1554. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  1555. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  1556. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  1557. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  1558. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  1559. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  1560. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  1561. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  1562. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  1563. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  1564. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  1565. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  1566. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  1567. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  1568. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  1569. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values +0 -0
  1570. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  1571. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.s +0 -1
  1572. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  1573. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  1574. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  1575. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  1576. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  1577. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -25
  1578. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  1579. package/android/build/tmp/kotlin-classes/debug/META-INF/scalebun_react-native_debug.kotlin_module +0 -0
  1580. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/crash/CrashStorage.class +0 -0
  1581. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/crash/NativeCrashHandler$Companion.class +0 -0
  1582. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/crash/NativeCrashHandler.class +0 -0
  1583. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/ANRWatchdog$HangInfo.class +0 -0
  1584. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/ANRWatchdog.class +0 -0
  1585. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/AppStartCollector$AppStartInfo.class +0 -0
  1586. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/AppStartCollector$Breakdown.class +0 -0
  1587. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/AppStartCollector$start$1.class +0 -0
  1588. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/AppStartCollector.class +0 -0
  1589. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/FrameMetricsCollector$Companion.class +0 -0
  1590. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/FrameMetricsCollector$FrameMetricsSnapshot.class +0 -0
  1591. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/FrameMetricsCollector$start$1.class +0 -0
  1592. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/FrameMetricsCollector$startChoreographerFallback$1.class +0 -0
  1593. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/FrameMetricsCollector.class +0 -0
  1594. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/PerformanceCore$Listener.class +0 -0
  1595. package/android/build/tmp/kotlin-classes/debug/com/scalebun/core/performance/PerformanceCore.class +0 -0
  1596. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/ProfilerModule$Companion.class +0 -0
  1597. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/ProfilerModule.class +0 -0
  1598. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/ProfilerPackage.class +0 -0
  1599. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/ProfilerSpec.class +0 -0
  1600. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/collectors/CpuCollector.class +0 -0
  1601. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/collectors/IncidentDetector.class +0 -0
  1602. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/collectors/MemoryCollector.class +0 -0
  1603. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/collectors/RenderCollector$frameCallback$1.class +0 -0
  1604. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/collectors/RenderCollector.class +0 -0
  1605. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/collectors/SamplerScheduler.class +0 -0
  1606. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/collectors/SamplerSchedulerKt.class +0 -0
  1607. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/collectors/ThreadCollector$WhenMappings.class +0 -0
  1608. package/android/build/tmp/kotlin-classes/debug/com/scalebun/profiler/collectors/ThreadCollector.class +0 -0
  1609. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/ReplaySdkModule$Companion.class +0 -0
  1610. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/ReplaySdkModule$registerConnectivity$cb$1.class +0 -0
  1611. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/ReplaySdkModule.class +0 -0
  1612. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/ReplaySdkPackage.class +0 -0
  1613. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/ReplaySdkSpec.class +0 -0
  1614. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/capture/CaptureReason$Companion.class +0 -0
  1615. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/capture/CaptureReason.class +0 -0
  1616. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/capture/FrameCaptureManager$startFrequencyTimer$1.class +0 -0
  1617. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/capture/FrameCaptureManager.class +0 -0
  1618. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/capture/FrameCaptureScheduler$Companion.class +0 -0
  1619. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/capture/FrameCaptureScheduler$FrameRequest.class +0 -0
  1620. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/capture/FrameCaptureScheduler.class +0 -0
  1621. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/capture/UiStabilityDetector$Companion.class +0 -0
  1622. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/capture/UiStabilityDetector$SettleWatch.class +0 -0
  1623. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/capture/UiStabilityDetector$StabilityWatch.class +0 -0
  1624. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/capture/UiStabilityDetector.class +0 -0
  1625. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/core/CaptureMode$Companion.class +0 -0
  1626. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/core/CaptureMode.class +0 -0
  1627. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/core/ReplayConfig$Companion.class +0 -0
  1628. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/core/ReplayConfig.class +0 -0
  1629. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/core/ReplayLogger.class +0 -0
  1630. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/core/ScreenshotQuality$Companion.class +0 -0
  1631. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/core/ScreenshotQuality.class +0 -0
  1632. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/core/SessionIdGenerator.class +0 -0
  1633. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/core/SessionState.class +0 -0
  1634. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/models/ReplayFrame.class +0 -0
  1635. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/models/ReplaySession.class +0 -0
  1636. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/models/TimelineEvent.class +0 -0
  1637. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/outbox/NativeOutbox$Companion.class +0 -0
  1638. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/outbox/NativeOutbox$enforceLimits$lambda$37$$inlined$sortedBy$1.class +0 -0
  1639. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/outbox/NativeOutbox.class +0 -0
  1640. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/outbox/OutboxUploader$NetResult$NetworkError.class +0 -0
  1641. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/outbox/OutboxUploader$NetResult$Response.class +0 -0
  1642. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/outbox/OutboxUploader$NetResult.class +0 -0
  1643. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/outbox/OutboxUploader$Outcome.class +0 -0
  1644. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/outbox/OutboxUploader$WhenMappings.class +0 -0
  1645. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/outbox/OutboxUploader.class +0 -0
  1646. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/privacy/PrivacyMaskProcessor.class +0 -0
  1647. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/session/SessionManager.class +0 -0
  1648. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/storage/ReplayStorage$enforceStorageLimit$$inlined$sortedBy$1.class +0 -0
  1649. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/storage/ReplayStorage.class +0 -0
  1650. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/timeline/TimelineCollector.class +0 -0
  1651. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/tracking/DialogTouchObserver$start$runnable$1.class +0 -0
  1652. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/tracking/DialogTouchObserver.class +0 -0
  1653. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/tracking/InteractionTracker.class +0 -0
  1654. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/tracking/NativeTouchInterceptor.class +0 -0
  1655. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/tracking/ScreenTracker.class +0 -0
  1656. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/transport/ReplayTransport$UploadResult.class +0 -0
  1657. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/transport/ReplayTransport$upload$2.class +0 -0
  1658. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/transport/ReplayTransport.class +0 -0
  1659. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/voice/VoiceRecorder$Companion.class +0 -0
  1660. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/voice/VoiceRecorder$Result.class +0 -0
  1661. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/voice/VoiceRecorder.class +0 -0
  1662. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/voice/VoiceTranscriber$TranscriptResult.class +0 -0
  1663. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/voice/VoiceTranscriber$listener$1.class +0 -0
  1664. package/android/build/tmp/kotlin-classes/debug/com/scalebun/replaysdk/voice/VoiceTranscriber.class +0 -0
  1665. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/ScaleBunPackage$Companion.class +0 -0
  1666. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/ScaleBunPackage.class +0 -0
  1667. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/crash/ScaleBunCrashModule$Companion.class +0 -0
  1668. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/crash/ScaleBunCrashModule.class +0 -0
  1669. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/crash/ScaleBunCrashPackage.class +0 -0
  1670. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/crash/ScaleBunCrashSpec.class +0 -0
  1671. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/engage/ScaleBunEngageModule$Companion.class +0 -0
  1672. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/engage/ScaleBunEngageModule$WindowInsetEdges.class +0 -0
  1673. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/engage/ScaleBunEngageModule$shakeListener$1.class +0 -0
  1674. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/engage/ScaleBunEngageModule.class +0 -0
  1675. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/engage/ScaleBunEngagePackage.class +0 -0
  1676. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/engage/ScaleBunNotificationPresenter.class +0 -0
  1677. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/ota/ScaleBunOtaModule$Companion.class +0 -0
  1678. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/ota/ScaleBunOtaModule.class +0 -0
  1679. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/ota/ScaleBunOtaSpec.class +0 -0
  1680. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/ota/SlotManager$Companion.class +0 -0
  1681. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/ota/SlotManager.class +0 -0
  1682. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/performance/PerformanceModule$Companion.class +0 -0
  1683. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/performance/PerformanceModule$coreListener$1.class +0 -0
  1684. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/performance/PerformanceModule.class +0 -0
  1685. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/performance/PerformanceSpec.class +0 -0
  1686. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/referrer/ScaleBunInstallReferrerModule$Companion.class +0 -0
  1687. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/referrer/ScaleBunInstallReferrerModule$getInstallReferrer$1.class +0 -0
  1688. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/referrer/ScaleBunInstallReferrerModule.class +0 -0
  1689. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/referrer/ScaleBunInstallReferrerSpec.class +0 -0
  1690. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/storage/ScaleBunStorageModule$Companion.class +0 -0
  1691. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/storage/ScaleBunStorageModule.class +0 -0
  1692. package/android/build/tmp/kotlin-classes/debug/com/scalebun/rn/storage/ScaleBunStorageSpec.class +0 -0
  1693. package/android/build/tmp/kotlin-classes/debug/com/scalebun/storage/KvFileStore$Companion.class +0 -0
  1694. package/android/build/tmp/kotlin-classes/debug/com/scalebun/storage/KvFileStore.class +0 -0
@@ -9,7 +9,149 @@ var _internalLogger = require("../../core/logger/internalLogger");
9
9
  var _crashSafe = require("../../core/lifecycle/crashSafe");
10
10
  var _NativeScaleBunOta = _interopRequireDefault(require("../../specs/NativeScaleBunOta"));
11
11
  var _OtaEventEmitter = require("./OtaEventEmitter");
12
+ var _geoCountry = require("./geoCountry");
13
+ var _deviceAttributes = require("./deviceAttributes");
14
+ var _EventTracker = require("../../analytics/EventTracker");
15
+ var _signature = require("./signature");
16
+ var _environment = require("./environment");
17
+ var _retry = require("./retry");
18
+ var _StorageBackend = require("../../storage/StorageBackend");
19
+ var _device = require("../../core/context/device");
12
20
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
21
+ /**
22
+ * Identity marker injected into the bundle by `scalebun ota publish` before
23
+ * Hermes compilation. Lets the SDK prove that the bundle it *installed* is the
24
+ * bundle actually *running* — see `verifyRunningBundleIdentity`.
25
+ */
26
+ function readRunningBundleMarker() {
27
+ try {
28
+ const id = globalThis.__SCALEBUN_OTA_ID__;
29
+ return typeof id === 'string' && id.length > 0 ? id : null;
30
+ } catch {
31
+ return null;
32
+ }
33
+ }
34
+
35
+ /**
36
+ * Download progress: native → JS → (hook + backend live tracker).
37
+ *
38
+ * Both native downloaders emit throttled `ScaleBunOtaProgress` ticks — Android
39
+ * over `RCTDeviceEventEmitter`, iOS via the `ScaleBunOtaEvents` RCTEventEmitter.
40
+ * This subscribes for the duration of one download. Until this existed, the
41
+ * hook's `downloadProgress` and the backend's `/sdk/ota/progress` +
42
+ * live-downloads dashboard were declared on both ends and connected by
43
+ * NOTHING — the tracker had never received a single real row.
44
+ */
45
+
46
+ function subscribeNativeProgress(onTick) {
47
+ try {
48
+ if (_reactNative.Platform.OS === 'ios') {
49
+ const eventsModule = _reactNative.NativeModules.ScaleBunOtaEvents;
50
+ if (!eventsModule) return () => {};
51
+ const emitter = new _reactNative.NativeEventEmitter(eventsModule);
52
+ const sub = emitter.addListener('ScaleBunOtaProgress', onTick);
53
+ return () => sub.remove();
54
+ }
55
+ const sub = _reactNative.DeviceEventEmitter.addListener('ScaleBunOtaProgress', onTick);
56
+ return () => sub.remove();
57
+ } catch {
58
+ return () => {};
59
+ }
60
+ }
61
+
62
+ /** POST at most once per this interval; first and terminal ticks always go. */
63
+ const PROGRESS_POST_INTERVAL_MS = 1_000;
64
+
65
+ /**
66
+ * P8 — the SDK's canonical per-install id, shared with the analytics lane.
67
+ *
68
+ * OTA used to REQUIRE a caller-supplied `installationId`, and the documented
69
+ * example passed `deviceId` — so OTA telemetry lived in its own identity
70
+ * namespace, disconnected from the id every other lane reports. Every join
71
+ * from OTA data to CDP data (blast radius, MRR-at-risk, churn bands) was a
72
+ * cross-namespace join that matched by luck.
73
+ *
74
+ * Reads (or mints, for OTA-only apps that never initialize analytics) the same
75
+ * persisted value `EventTracker` uses, via the same storage backend and the
76
+ * same exported key — one install, one id, every lane.
77
+ */
78
+ function resolveInstallationId() {
79
+ try {
80
+ const storage = (0, _StorageBackend.createStorageBackend)();
81
+ const existing = storage.get(_EventTracker.K_INSTALLATION_ID);
82
+ if (existing) return existing;
83
+ const id = `inst-${Math.random().toString(36).slice(2, 10)}${Math.random().toString(36).slice(2, 10)}`;
84
+ storage.set(_EventTracker.K_INSTALLATION_ID, id);
85
+ return id;
86
+ } catch {
87
+ // Storage unavailable (tests, exotic hosts): a per-process id keeps sync
88
+ // functional; it will stabilize on the first run where storage works.
89
+ return `inst-ephemeral-${Math.random().toString(36).slice(2, 10)}`;
90
+ }
91
+ }
92
+
93
+ /**
94
+ * Deliver queued OTA lifecycle events to the backend's batch endpoint.
95
+ *
96
+ * ── Why the orchestrator owns this ──────────────────────────────────────────
97
+ *
98
+ * `otaEventEmitter.setFlushCallback` documents itself as "called by the SDK
99
+ * core to wire into the existing batch transport" — and nothing, anywhere,
100
+ * ever called it. `flush()` drained the queue into a null callback, so every
101
+ * OTA event the real SDK ever emitted was silently discarded in-process.
102
+ * All 129 ota_events rows in the dev database came from the test app's
103
+ * SIMULATOR; the funnel, adoption charts, and guard thresholds had never seen
104
+ * one byte of real-device telemetry.
105
+ *
106
+ * Owning delivery here (with the params sync() already has) instead of relying
107
+ * on bootstrap wiring means OTA telemetry works in every integration shape —
108
+ * full SDK, standalone orchestrator, CodePush shim — because the component
109
+ * that EMITS the events is the component that delivers them.
110
+ */
111
+ async function deliverOtaEvents(params) {
112
+ const events = _OtaEventEmitter.otaEventEmitter.flush();
113
+ if (!events.length) return;
114
+ // A platform OTA cannot serve is not reported as Android — it is not reported at all.
115
+ const mobileOS = (0, _device.resolveMobileOS)();
116
+ if (!mobileOS) return;
117
+ const items = events.map(e => ({
118
+ kind: 'ota_event',
119
+ type: e.type,
120
+ bundleId: e.bundleId,
121
+ installationId: params.installationId,
122
+ // OTA bundles are compiled per platform, so this genuinely is ios|android. Narrowed via
123
+ // resolveMobileOS so a non-mobile RN target is skipped rather than served an Android bundle.
124
+ platform: mobileOS,
125
+ appVersion: params.appVersion,
126
+ durationMs: e.durationMs,
127
+ errorCode: e.error ?? e.reason,
128
+ patchUsed: e.patchUsed,
129
+ timestamp: e.timestamp
130
+ }));
131
+ try {
132
+ const base = params.apiUrl.replace(/\/+$/, '');
133
+ // The batch lane is session-scoped for replay items; OTA rows carry their
134
+ // own installationId and ignore the session, so a synthetic id is correct.
135
+ const res = await fetch(`${base}/ingestion/sessions/ota-${params.installationId}/batch`, {
136
+ method: 'POST',
137
+ headers: {
138
+ 'Content-Type': 'application/json',
139
+ 'x-scalebun-client-key': params.clientKey
140
+ },
141
+ body: JSON.stringify({
142
+ items
143
+ })
144
+ });
145
+ if (!res.ok) throw new Error(`HTTP ${res.status}`);
146
+ _internalLogger.logger.debug(`[OTA] Delivered ${items.length} telemetry event(s)`);
147
+ } catch (err) {
148
+ // Failed delivery must not fail the update — but the events must not be
149
+ // lost either: requeue so the next sync retries them.
150
+ for (const e of events) _OtaEventEmitter.otaEventEmitter.emit(e);
151
+ _internalLogger.logger.debug(`[OTA] Telemetry delivery failed (will retry next sync): ${err?.message}`);
152
+ }
153
+ }
154
+
13
155
  /** Boot-guard configuration */
14
156
 
15
157
  const DEFAULT_HEALTHY_AFTER_MS = 10_000;
@@ -20,29 +162,230 @@ class OtaOrchestrator {
20
162
  isRestartRequiredState = false;
21
163
  healthyTimer = null;
22
164
  bootGuardConfig = {};
165
+ environment = null;
166
+ /** One-time boot checks have run in this process (init is idempotent). */
167
+ initialized = false;
168
+ storageBackend = null;
23
169
 
24
- /**
25
- * Initialize the orchestrator. Checks for boot-guard recovery state.
170
+ /**
171
+ * Initialize the orchestrator. Checks for boot-guard recovery state.
172
+ *
173
+ * `signature` is optional: an app that has not adopted signing keeps working
174
+ * on SHA-256 integrity alone. Once a public key IS configured, a bundle that
175
+ * cannot be verified is refused rather than installed (OTA-03).
26
176
  */
27
177
  init(config) {
28
178
  (0, _crashSafe.noThrow)(() => {
179
+ // Idempotent: init() runs its one-time checks ONCE per process. Found
180
+ // live — a host that calls init() again after installing an update (any
181
+ // retry/re-entry path does this) re-runs the identity verification in a
182
+ // process whose running JS legitimately predates the install, producing
183
+ // a false "INSTALL DID NOT TAKE EFFECT" alarm. The boot-time checks are
184
+ // only meaningful in a fresh process; a second init() must not repeat
185
+ // them. Config is still refreshed so late signature setup works.
186
+ if (this.initialized) {
187
+ this.bootGuardConfig = config ?? this.bootGuardConfig;
188
+ this.signatureConfig = config?.signature ?? this.signatureConfig;
189
+ return;
190
+ }
29
191
  if (!_NativeScaleBunOta.default) {
30
192
  _internalLogger.logger.warn('[OTA] NativeScaleBunOta module unavailable — OTA disabled');
31
193
  return;
32
194
  }
195
+
196
+ // ── RUNTIME GATE ─────────────────────────────────────────────────────
197
+ // Refuse to run on a runtime where the install would silently no-op.
198
+ // See environment.ts: bridgeless below RN 0.76.1 ignores
199
+ // getJSBundleFile() entirely, so a bundle installs, reports INSTALLED,
200
+ // and the app keeps running the APK asset. Staying loudly disabled is
201
+ // strictly better than reporting success that never happened — those
202
+ // false INSTALLED rows feed adoption metrics and guard thresholds.
203
+ this.environment = (0, _environment.detectOtaEnvironment)();
204
+ if (!this.environment.supported) {
205
+ _internalLogger.logger.error(`[OTA] DISABLED — ${this.environment.blockReason}`);
206
+ this.enabled = false;
207
+ return;
208
+ }
209
+ if (this.environment.bridgeless && !this.environment.rnVersion) {
210
+ _internalLogger.logger.warn('[OTA] Running bridgeless but the React Native version could not be determined. ' + 'If this app is below RN 0.76.1, OTA updates will install and never load.');
211
+ }
212
+ if (this.environment.requiresReactHostIntegration) {
213
+ // RN 0.82 removed ReactNativeHost, so the legacy
214
+ // `override fun getJSBundleFile()` integration does not exist there.
215
+ // We cannot see which form the host used — the identity check after
216
+ // restart is what proves it — but naming the right fix up front turns
217
+ // a confusing silent failure into a one-line correction.
218
+ _internalLogger.logger.debug('[OTA] React Native >= 0.82 detected. The only valid Android integration is ' + 'getDefaultReactHost(..., jsBundleFilePath = ScaleBunOtaModule.getJSBundleFile(ctx)) — ' + 'ReactNativeHost and its getJSBundleFile() override no longer exist.');
219
+ }
220
+ this.initialized = true;
33
221
  this.enabled = true;
34
222
  this.bootGuardConfig = config ?? {};
35
- _internalLogger.logger.debug('[OTA] Orchestrator initialized successfully');
223
+ this.signatureConfig = config?.signature;
224
+ _internalLogger.logger.debug(`[OTA] Orchestrator initialized (RN ${this.environment.rnVersionString ?? 'unknown'}` + `${this.environment.bridgeless ? ', bridgeless' : ''}` + `${this.environment.hermes ? `, Hermes HBC v${this.environment.hermesBytecodeVersion ?? '?'}` : ''})`);
225
+
226
+ // Rehydrate which bundle we are running from the native slot state.
227
+ // Without this `currentBundle` stays null for the whole process after a
228
+ // restart, so every check reported no current bundle and the backend had
229
+ // no way to know what the device was actually on.
230
+ this.hydrateCurrentBundleFromSlots();
231
+
232
+ // Warm the device-country cache (edge Worker lookup) so checks can carry
233
+ // a country when the API itself sits behind no geo-stamping CDN.
234
+ // Fire-and-forget and failure-soft — a check without a country is valid.
235
+ void (0, _geoCountry.prefetchDeviceCountry)();
236
+
237
+ // Prove the bundle we installed is the bundle that loaded.
238
+ this.verifyRunningBundleIdentity();
36
239
 
37
240
  // Check if the boot guard fired on this launch (native reverted before JS loaded)
38
241
  this.checkBootGuardRecovery();
39
242
  });
40
243
  }
41
244
 
42
- /**
43
- * Sprint 5 (S5-NAT-1): Check if the native boot guard reverted us on this cold start.
44
- * If getSlotState() shows bootMarkerPresent=false but we have a 'previous' slot
45
- * and no 'current' OTA bundle, the native layer already reverted.
245
+ /**
246
+ * Read the active slot back into `currentBundle` so the next check reports
247
+ * what this device is genuinely running.
248
+ */
249
+ hydrateCurrentBundleFromSlots() {
250
+ if (!_NativeScaleBunOta.default) return;
251
+ try {
252
+ const state = JSON.parse(_NativeScaleBunOta.default.getSlotState());
253
+ const current = state?.current;
254
+ if (!current?.sha256) return;
255
+
256
+ // Keyed on sha256, NOT bundleId. The native `stageBundle` is never told
257
+ // the bundleId — it writes a meta.json containing only `sha256` and
258
+ // `installedAt` — so `current.bundleId` is always absent. Hydrating from
259
+ // it left `currentBundle` null on every launch, which meant the device
260
+ // never told the server what it was running and the server re-offered
261
+ // the same bundle forever. sha256 is the field that is actually there.
262
+ const record = this.readInstallRecord();
263
+ if (record && record.sha256 === current.sha256) {
264
+ this.currentBundle = {
265
+ id: record.bundleId,
266
+ version: record.version,
267
+ sha256: record.sha256
268
+ };
269
+ _internalLogger.logger.debug(`[OTA] Running bundle v${record.version} (${record.bundleId})`);
270
+ return;
271
+ }
272
+
273
+ // An OTA bundle is installed but we have no record of installing it —
274
+ // a reinstall of the app, cleared storage, or a bundle staged by an
275
+ // older SDK. Report the hash so the server can still recognise it.
276
+ this.currentBundle = {
277
+ sha256: current.sha256
278
+ };
279
+ _internalLogger.logger.debug(`[OTA] Running an OTA bundle (sha ${String(current.sha256).slice(0, 12)}…) with no local install record.`);
280
+ } catch {
281
+ // Slot state unreadable — treat as factory bundle.
282
+ }
283
+ }
284
+
285
+ /**
286
+ * Compare the bundle the slot manager believes is active against the identity
287
+ * marker compiled into the bundle that actually loaded.
288
+ *
289
+ * A mismatch means the install path reported success while the runtime kept
290
+ * executing different code — the silent no-op this whole guard exists for.
291
+ * It is reported as APPLY_FAILED, because that is what happened, regardless
292
+ * of what the previous session's telemetry claimed.
293
+ *
294
+ * The expectation recorded at install time is what makes this conclusive.
295
+ * Without it, a missing marker is ambiguous — it could be a bundle published
296
+ * before markers existed, or an install that never took effect. Having
297
+ * written down "this bundle definitely carries marker X" before restarting,
298
+ * a missing marker afterwards can only mean the second.
299
+ */
300
+ verifyRunningBundleIdentity() {
301
+ if (!this.currentBundle) return;
302
+ const running = readRunningBundleMarker();
303
+ const expected = this.readInstallExpectation();
304
+
305
+ // Stale record from an earlier install — the slot has moved on since.
306
+ if (expected && expected.bundleId !== this.currentBundle.id) {
307
+ this.clearInstallExpectation();
308
+ return;
309
+ }
310
+ if (expected) {
311
+ if (running === expected.identityToken) {
312
+ // Proven: the bundle we installed is the bundle executing.
313
+ _internalLogger.logger.debug('[OTA] Install verified — running bundle matches what was installed.');
314
+ this.clearInstallExpectation();
315
+ return;
316
+ }
317
+ _internalLogger.logger.error(`[OTA] INSTALL DID NOT TAKE EFFECT — bundle ${this.currentBundle.id} was installed and ` + `carries a known identity marker, but the running bundle reports ` + `${running ?? 'no marker at all'}. The app is executing different code than the slot ` + 'manager believes. Check that the host app resolves the OTA bundle path at launch ' + '(see the ScaleBunOta integration for your React Native version).');
318
+ _OtaEventEmitter.otaEventEmitter.emitSimple('APPLY_FAILED', this.currentBundle.id, {
319
+ error: `install_not_effective — expected ${expected.identityToken}, running ${running ?? 'none'}`
320
+ });
321
+ // Deliberately NOT cleared: the condition is still true on the next boot
322
+ // and should keep reporting until the integration is fixed. Clearing here
323
+ // would make a permanently broken install look like a one-off.
324
+ return;
325
+ }
326
+ if (running && running !== this.currentBundle.id) {
327
+ // No recorded expectation (installed by an older SDK), but the running
328
+ // marker disagrees with the active slot outright. Still conclusive.
329
+ _internalLogger.logger.error(`[OTA] BUNDLE MISMATCH — slot says ${this.currentBundle.id} is active but the ` + `running bundle identifies as ${running}.`);
330
+ _OtaEventEmitter.otaEventEmitter.emitSimple('APPLY_FAILED', this.currentBundle.id, {
331
+ error: `bundle_identity_mismatch — running ${running}`
332
+ });
333
+ }
334
+ }
335
+
336
+ // ── Install expectation ────────────────────────────────────────────────────
337
+ // Written just before the restart that activates a bundle, read on the next
338
+ // boot. Synchronous, disk-backed, and the same store used for the device id —
339
+ // it has to survive a process death that happens moments after the write.
340
+
341
+ static INSTALL_EXPECTATION_KEY = 'scalebun.ota.pendingInstall';
342
+ recordInstallExpectation(bundle) {
343
+ try {
344
+ this.storage().set(OtaOrchestrator.INSTALL_EXPECTATION_KEY, JSON.stringify({
345
+ bundleId: bundle.id,
346
+ version: bundle.version,
347
+ // The join key back to the native slot, which records sha256 and
348
+ // nothing else identifying.
349
+ sha256: bundle.sha256,
350
+ identityToken: bundle.identityToken ?? null
351
+ }));
352
+ } catch {
353
+ // Verification is a safety net, never a precondition for installing.
354
+ }
355
+ }
356
+ readInstallRecord() {
357
+ try {
358
+ const raw = this.storage().get(OtaOrchestrator.INSTALL_EXPECTATION_KEY);
359
+ if (!raw) return null;
360
+ const parsed = JSON.parse(raw);
361
+ return typeof parsed?.bundleId === 'string' && typeof parsed?.sha256 === 'string' ? parsed : null;
362
+ } catch {
363
+ return null;
364
+ }
365
+ }
366
+ readInstallExpectation() {
367
+ const record = this.readInstallRecord();
368
+ return record && record.identityToken ? {
369
+ bundleId: record.bundleId,
370
+ identityToken: record.identityToken
371
+ } : null;
372
+ }
373
+ clearInstallExpectation() {
374
+ try {
375
+ this.storage().set(OtaOrchestrator.INSTALL_EXPECTATION_KEY, '');
376
+ } catch {
377
+ /* non-fatal */
378
+ }
379
+ }
380
+ storage() {
381
+ if (!this.storageBackend) this.storageBackend = (0, _StorageBackend.createStorageBackend)();
382
+ return this.storageBackend;
383
+ }
384
+
385
+ /**
386
+ * Sprint 5 (S5-NAT-1): Check if the native boot guard reverted us on this cold start.
387
+ * If getSlotState() shows bootMarkerPresent=false but we have a 'previous' slot
388
+ * and no 'current' OTA bundle, the native layer already reverted.
46
389
  */
47
390
  checkBootGuardRecovery() {
48
391
  if (!_NativeScaleBunOta.default) return;
@@ -66,31 +409,69 @@ class OtaOrchestrator {
66
409
  return this.isRestartRequiredState;
67
410
  }
68
411
 
69
- /**
70
- * Perform an OTA check against the backend endpoint.
412
+ /**
413
+ * Perform an OTA check against the backend endpoint.
71
414
  */
72
415
  async checkForUpdate(requestParams) {
73
416
  try {
417
+ const env = this.environment ?? (0, _environment.detectOtaEnvironment)();
418
+
419
+ // C1: send the channel and targeting context. `channelName` was already an
420
+ // accepted parameter here and was then dropped on the floor — the payload
421
+ // never carried it — so every device resolved to `default` no matter what
422
+ // the host app asked for. Undefined fields are omitted by JSON.stringify,
423
+ // so an app that supplies nothing behaves exactly as before.
424
+ // OTA has no bundle for a non-mobile target; claiming Android there would install the wrong one.
425
+ const mobileOS = (0, _device.resolveMobileOS)();
426
+ if (!mobileOS) throw new Error('OTA is not supported on this platform');
74
427
  const payload = {
75
428
  appVersion: requestParams.appVersion,
76
- platform: _reactNative.Platform.OS === 'ios' ? 'ios' : 'android',
429
+ platform: mobileOS,
77
430
  installationId: requestParams.installationId,
78
431
  currentBundleId: this.currentBundle?.id,
79
- currentBundleHash: this.currentBundle?.sha256
432
+ currentBundleHash: this.currentBundle?.sha256,
433
+ channelName: requestParams.channelName,
434
+ // Host-supplied country wins; otherwise the cached edge-Worker lookup
435
+ // fills in (see geoCountry.ts). Undefined when neither knows — the
436
+ // server renders unknown as unknown rather than guessing.
437
+ country: requestParams.country ?? (0, _geoCountry.getDeviceCountry)() ?? undefined,
438
+ // Hardware/OS context under the host's own attributes (host wins on
439
+ // collision) — this is what lets ATTRIBUTE rules target device classes
440
+ // (deviceModel / manufacturer / brand / osVersion / formFactor).
441
+ attributes: {
442
+ ...(0, _deviceAttributes.deviceTargetingAttributes)(),
443
+ ...requestParams.attributes
444
+ },
445
+ segmentIds: requestParams.segmentIds,
446
+ lifecycleStage: requestParams.lifecycleStage,
447
+ // Runtime compatibility context. Without these the backend cannot tell
448
+ // whether a bundle is safe for this binary: appVersion is a marketing
449
+ // string, while the RN version and the Hermes bytecode format are the
450
+ // actual runtime contract. A bundle compiled against a different HBC
451
+ // version either fails to load or crashes later on a missing path.
452
+ rnVersion: env.rnVersionString ?? undefined,
453
+ hermes: env.hermes,
454
+ hermesBytecodeVersion: env.hermesBytecodeVersion ?? undefined,
455
+ bridgeless: env.bridgeless
80
456
  };
81
457
  const url = `${requestParams.apiUrl.replace(/\/+$/, '')}/sdk/ota/check`;
82
- const res = await fetch(url, {
83
- method: 'POST',
84
- headers: {
85
- 'Content-Type': 'application/json',
86
- 'x-scalebun-client-key': requestParams.clientKey
87
- },
88
- body: JSON.stringify(payload)
458
+ const data = await (0, _retry.retryWithBackoff)(async () => {
459
+ const res = await fetch(url, {
460
+ method: 'POST',
461
+ headers: {
462
+ 'Content-Type': 'application/json',
463
+ 'x-scalebun-client-key': requestParams.clientKey
464
+ },
465
+ body: JSON.stringify(payload)
466
+ });
467
+ if (!res.ok) {
468
+ throw new _retry.HttpStatusError(`OTA check failed with status ${res.status}`, res.status);
469
+ }
470
+ return await res.json();
471
+ }, {
472
+ label: 'check',
473
+ isRetryable: _retry.isRetryableNetworkError
89
474
  });
90
- if (!res.ok) {
91
- throw new Error(`OTA check failed with status ${res.status}`);
92
- }
93
- const data = await res.json();
94
475
  return data;
95
476
  } catch (err) {
96
477
  _internalLogger.logger.error(`[OTA] checkForUpdate failed: ${err.message}`);
@@ -100,11 +481,15 @@ class OtaOrchestrator {
100
481
  }
101
482
  }
102
483
 
103
- /**
104
- * Downloads, stage, and apply an update in one step.
105
- * Sprint 5: emits lifecycle events + starts boot-guard heartbeat.
484
+ /**
485
+ * Downloads, stage, and apply an update in one step.
486
+ * Sprint 5: emits lifecycle events + starts boot-guard heartbeat.
106
487
  */
107
- async sync(params) {
488
+ async sync(rawParams) {
489
+ const params = {
490
+ ...rawParams,
491
+ installationId: rawParams.installationId ?? resolveInstallationId()
492
+ };
108
493
  try {
109
494
  if (!this.enabled || !_NativeScaleBunOta.default) {
110
495
  return {
@@ -151,12 +536,75 @@ class OtaOrchestrator {
151
536
  const bundle = checkRes.bundle;
152
537
  let patchUsed = false;
153
538
 
539
+ // ── VERIFY AUTHENTICITY (OTA-03) ─────────────────────────────────────
540
+ // Before anything touches the disk. SHA-256 proves the bytes arrived
541
+ // intact; only the signature proves they came from you. Checking after
542
+ // staging would mean writing unverified code to the slot directory first.
543
+ const signatureOutcome = await (0, _signature.verifyBundleSignature)(bundle.sha256, bundle.signature, this.signatureConfig);
544
+ if (!signatureOutcome.ok) {
545
+ _OtaEventEmitter.otaEventEmitter.emitSimple('APPLY_FAILED', bundle.id, {
546
+ error: `Signature check failed: ${signatureOutcome.reason}`,
547
+ version: bundle.version
548
+ });
549
+ return {
550
+ status: 'ERROR',
551
+ error: `Bundle signature check failed (${signatureOutcome.reason})`,
552
+ bundle
553
+ };
554
+ }
555
+
154
556
  // ── DOWNLOAD ─────────────────────────────────────────────────────────
155
557
  _OtaEventEmitter.otaEventEmitter.emitSimple('DOWNLOAD_STARTED', bundle.id, {
156
558
  version: bundle.version
157
559
  });
158
560
  const downloadStart = Date.now();
159
561
  _internalLogger.logger.debug(`[OTA] Downloading update v${bundle.version}…`);
562
+
563
+ // Live progress: native tick → DOWNLOAD_PROGRESS (feeds useOtaUpdate) →
564
+ // throttled POST to the live tracker. `bundle.size` is the authoritative
565
+ // total — the server just told us — so an unknown native total (-1 on
566
+ // chunked/gzip bodies) still yields a truthful percentage.
567
+ let lastPostAt = 0;
568
+ const postProgress = (bytesRead, status) => {
569
+ const total = bundle.size > 0 ? bundle.size : Math.max(bytesRead, 1);
570
+ const percent = Math.min(100, Math.round(bytesRead / total * 100));
571
+ const elapsedS = (Date.now() - downloadStart) / 1000;
572
+ const payload = {
573
+ installationId: params.installationId,
574
+ bundleId: bundle.id,
575
+ bytesRead,
576
+ totalBytes: total,
577
+ progressPercent: percent,
578
+ speedKbps: elapsedS > 0 ? Math.round(bytesRead / 1024 / elapsedS) : 0,
579
+ status
580
+ };
581
+ // Fire-and-forget: progress display must never delay or fail the
582
+ // download it describes.
583
+ fetch(`${params.apiUrl.replace(/\/+$/, '')}/sdk/ota/progress`, {
584
+ method: 'POST',
585
+ headers: {
586
+ 'Content-Type': 'application/json',
587
+ 'x-scalebun-client-key': params.clientKey
588
+ },
589
+ body: JSON.stringify(payload)
590
+ }).catch(() => {});
591
+ };
592
+ const unsubscribeProgress = subscribeNativeProgress(({
593
+ bytesRead
594
+ }) => {
595
+ const total = bundle.size > 0 ? bundle.size : bytesRead;
596
+ _OtaEventEmitter.otaEventEmitter.emit({
597
+ type: 'DOWNLOAD_PROGRESS',
598
+ bundleId: bundle.id,
599
+ timestamp: Date.now(),
600
+ progress: Math.min(100, Math.round(bytesRead / Math.max(total, 1) * 100))
601
+ });
602
+ const now = Date.now();
603
+ if (now - lastPostAt >= PROGRESS_POST_INTERVAL_MS) {
604
+ lastPostAt = now;
605
+ postProgress(bytesRead, 'DOWNLOADING');
606
+ }
607
+ });
160
608
  let staged = false;
161
609
 
162
610
  // Sprint 7: Try patch first if offered, fall back to full bundle
@@ -176,12 +624,34 @@ class OtaOrchestrator {
176
624
  }
177
625
  }
178
626
 
179
- // Full-bundle fallback (or primary path when no patch is available)
627
+ // Full-bundle fallback (or primary path when no patch is available).
628
+ // Retried with backoff: on a mobile network a transient drop mid-download
629
+ // is the common case, and previously one failure meant waiting for the
630
+ // next cold start — often hours away, sometimes never.
180
631
  if (!staged) {
181
- staged = await _NativeScaleBunOta.default.stageBundle(bundle.url, bundle.sha256);
632
+ try {
633
+ staged = await (0, _retry.retryWithBackoff)(async () => {
634
+ const ok = await _NativeScaleBunOta.default.stageBundle(bundle.url, bundle.sha256);
635
+ if (!ok) {
636
+ // Native returns a bare boolean, so a hash mismatch and a
637
+ // dropped connection are indistinguishable here. Retrying a
638
+ // genuine mismatch a couple of times is cheap; not retrying a
639
+ // dropped connection costs the whole update.
640
+ throw new Error('stageBundle returned false');
641
+ }
642
+ return ok;
643
+ }, {
644
+ label: `download v${bundle.version}`,
645
+ attempts: 3
646
+ });
647
+ } catch {
648
+ staged = false;
649
+ }
182
650
  }
651
+ unsubscribeProgress();
183
652
  if (!staged) {
184
- _internalLogger.logger.error('[OTA] Staging bundle failed');
653
+ postProgress(0, 'FAILED');
654
+ _internalLogger.logger.error('[OTA] Staging bundle failed after retries');
185
655
  _OtaEventEmitter.otaEventEmitter.emitSimple('APPLY_FAILED', bundle.id, {
186
656
  error: 'Staging failed — SHA-256 mismatch or download error',
187
657
  version: bundle.version
@@ -192,6 +662,7 @@ class OtaOrchestrator {
192
662
  bundle
193
663
  };
194
664
  }
665
+ postProgress(bundle.size, 'COMPLETED');
195
666
  const downloadDuration = Date.now() - downloadStart;
196
667
  _OtaEventEmitter.otaEventEmitter.emitSimple('DOWNLOAD_COMPLETE', bundle.id, {
197
668
  version: bundle.version,
@@ -216,15 +687,36 @@ class OtaOrchestrator {
216
687
  }
217
688
  this.currentBundle = bundle;
218
689
  this.isRestartRequiredState = true;
690
+
691
+ // Written BEFORE the restart, so the next boot can prove whether this
692
+ // install actually took effect. Only recorded when the server told us the
693
+ // bundle carries a marker — otherwise there is nothing to compare against
694
+ // and a recorded expectation would produce a false alarm.
695
+ // Recorded unconditionally, not only when a marker is present: this is
696
+ // also the record that tells the next launch WHICH bundle the slot's
697
+ // sha256 belongs to, without which the device cannot report what it is
698
+ // running. Identity verification is the second job of this record, and
699
+ // it is skipped when there is no marker to compare.
700
+ this.recordInstallExpectation(bundle);
219
701
  _OtaEventEmitter.otaEventEmitter.emitSimple('INSTALLED', bundle.id, {
220
702
  version: bundle.version
221
703
  });
222
704
  _internalLogger.logger.debug(`[OTA] Update v${bundle.version} installed successfully!`);
223
705
 
224
- // Flush telemetry events before restart
225
- _OtaEventEmitter.otaEventEmitter.flush();
226
- if (params.autoRestart) {
706
+ // Deliver telemetry BEFORE a restart tears the JS runtime down —
707
+ // an INSTALLED event queued but not sent would vanish with the process.
708
+ await deliverOtaEvents(params);
709
+
710
+ // Activation, per the release's installMode. `params.autoRestart` is the
711
+ // host app's own override and continues to force a restart regardless.
712
+ // These behaviours were documented (docs, CLI help, the CodePush shim's
713
+ // enum) for a year while nothing implemented them — every release
714
+ // behaved as ON_NEXT_RESTART no matter what was published.
715
+ const installMode = bundle.installMode ?? 'ON_NEXT_RESTART';
716
+ if (params.autoRestart || installMode === 'IMMEDIATE') {
227
717
  this.restart();
718
+ } else if (installMode === 'ON_NEXT_RESUME') {
719
+ this.armResumeRestart();
228
720
  }
229
721
  return {
230
722
  status: 'UPDATE_INSTALLED',
@@ -237,16 +729,23 @@ class OtaOrchestrator {
237
729
  status: 'ERROR',
238
730
  error: err.message ?? 'Unexpected sync failure'
239
731
  };
732
+ } finally {
733
+ // Every other exit (UP_TO_DATE, ROLLBACK, staging failure, throw)
734
+ // delivers here. This also carries events queued at INIT — boot-guard
735
+ // AUTO_ROLLBACKs and identity-check APPLY_FAILEDs fire before any
736
+ // apiUrl/clientKey exist, so they wait in the queue for the first sync.
737
+ // Fire-and-forget: delivery is never allowed to delay a result.
738
+ void deliverOtaEvents(params);
240
739
  }
241
740
  }
242
741
 
243
- /**
244
- * Sprint 5 (S5-NAT-1): Boot-guard heartbeat.
245
- *
246
- * After booting from an OTA bundle, start a timer. If the app survives
247
- * `healthyAfterMs` without crashing, call `markHealthy()` to clear the
248
- * native boot-guard marker. If JS crashes before the timer fires, the
249
- * marker stays set and native code reverts on next cold start.
742
+ /**
743
+ * Sprint 5 (S5-NAT-1): Boot-guard heartbeat.
744
+ *
745
+ * After booting from an OTA bundle, start a timer. If the app survives
746
+ * `healthyAfterMs` without crashing, call `markHealthy()` to clear the
747
+ * native boot-guard marker. If JS crashes before the timer fires, the
748
+ * marker stays set and native code reverts on next cold start.
250
749
  */
251
750
  startBootGuardHeartbeat() {
252
751
  if (!_NativeScaleBunOta.default) return;
@@ -279,13 +778,67 @@ class OtaOrchestrator {
279
778
  }
280
779
  }
281
780
 
282
- /**
283
- * Reload the JS app bundle to apply the new update immediately.
781
+ /** One-shot guard so repeated syncs cannot stack resume listeners. */
782
+ resumeRestartArmed = false;
783
+
784
+ /**
785
+ * ON_NEXT_RESUME: restart the JS runtime the next time the app returns to
786
+ * the foreground after genuinely being in the background.
787
+ *
788
+ * The staged bundle is already applied at this point — the restart is purely
789
+ * about WHEN the user experiences the reload. Two deliberate choices:
790
+ *
791
+ * - Armed only after a real background→active transition, never on the
792
+ * initial 'active' state, so installing while the user is mid-session
793
+ * does not instantly yank the screen out from under them.
794
+ * - One-shot. The listener removes itself after firing (or after the
795
+ * restart makes the whole question moot).
796
+ */
797
+ armResumeRestart() {
798
+ if (this.resumeRestartArmed) return;
799
+ this.resumeRestartArmed = true;
800
+ let wasBackground = false;
801
+ try {
802
+ const sub = _reactNative.AppState.addEventListener('change', state => {
803
+ if (state === 'background') {
804
+ wasBackground = true;
805
+ return;
806
+ }
807
+ if (state === 'active' && wasBackground) {
808
+ try {
809
+ sub.remove();
810
+ } catch {
811
+ /* the restart below makes cleanup moot */
812
+ }
813
+ this.resumeRestartArmed = false;
814
+ _internalLogger.logger.info('[OTA] App resumed — activating the staged update now');
815
+ this.restart();
816
+ }
817
+ });
818
+ _internalLogger.logger.debug('[OTA] Update staged — will activate on next resume (ON_NEXT_RESUME)');
819
+ } catch {
820
+ // AppState unavailable (tests, exotic hosts): the update still activates
821
+ // on the next cold start, which is the documented fallback behaviour.
822
+ this.resumeRestartArmed = false;
823
+ }
824
+ }
825
+
826
+ /**
827
+ * Reload the JS app bundle to apply the new update immediately.
828
+ *
829
+ * Order matters: the native `restartApp()` is the only path that works in
830
+ * RELEASE builds. `DevSettings.reload()` looks callable there too — it
831
+ * logged, returned, and reloaded nothing when tested live on a release APK,
832
+ * which made every "restart" this SDK ever promised a silent no-op in
833
+ * production. DevSettings remains as the dev-build fallback for hosts that
834
+ * have not rebuilt native yet.
284
835
  */
285
836
  restart() {
286
837
  (0, _crashSafe.noThrow)(() => {
287
838
  _internalLogger.logger.info('[OTA] Triggering app restart…');
288
- if (_reactNative.DevSettings && typeof _reactNative.DevSettings.reload === 'function') {
839
+ if (_NativeScaleBunOta.default && typeof _NativeScaleBunOta.default.restartApp === 'function') {
840
+ _NativeScaleBunOta.default.restartApp();
841
+ } else if (_reactNative.DevSettings && typeof _reactNative.DevSettings.reload === 'function') {
289
842
  _reactNative.DevSettings.reload();
290
843
  } else if (_reactNative.NativeModules.RNReload) {
291
844
  _reactNative.NativeModules.RNReload.reload();