@scalebun/web 1.0.0

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 (1030) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +59 -0
  3. package/dist/bootstrap/FeatureRegistry.d.ts +44 -0
  4. package/dist/bootstrap/FeatureRegistry.d.ts.map +1 -0
  5. package/dist/bootstrap/FeatureRegistry.js +85 -0
  6. package/dist/bootstrap/FeatureRegistry.js.map +1 -0
  7. package/dist/bootstrap/SDKBootstrapper.d.ts +37 -0
  8. package/dist/bootstrap/SDKBootstrapper.d.ts.map +1 -0
  9. package/dist/bootstrap/SDKBootstrapper.js +248 -0
  10. package/dist/bootstrap/SDKBootstrapper.js.map +1 -0
  11. package/dist/browser.d.ts +51 -0
  12. package/dist/browser.d.ts.map +1 -0
  13. package/dist/browser.js +81 -0
  14. package/dist/browser.js.map +1 -0
  15. package/dist/config/schema.d.ts +108 -0
  16. package/dist/config/schema.d.ts.map +1 -0
  17. package/dist/config/schema.js +95 -0
  18. package/dist/config/schema.js.map +1 -0
  19. package/dist/core/breadcrumbs.d.ts +56 -0
  20. package/dist/core/breadcrumbs.d.ts.map +1 -0
  21. package/dist/core/breadcrumbs.js +141 -0
  22. package/dist/core/breadcrumbs.js.map +1 -0
  23. package/dist/core/capabilities.d.ts +38 -0
  24. package/dist/core/capabilities.d.ts.map +1 -0
  25. package/dist/core/capabilities.js +78 -0
  26. package/dist/core/capabilities.js.map +1 -0
  27. package/dist/core/consent.d.ts +17 -0
  28. package/dist/core/consent.d.ts.map +1 -0
  29. package/dist/core/consent.js +38 -0
  30. package/dist/core/consent.js.map +1 -0
  31. package/dist/core/csp.d.ts +31 -0
  32. package/dist/core/csp.d.ts.map +1 -0
  33. package/dist/core/csp.js +74 -0
  34. package/dist/core/csp.js.map +1 -0
  35. package/dist/core/evalContext.d.ts +7 -0
  36. package/dist/core/evalContext.d.ts.map +1 -0
  37. package/dist/core/evalContext.js +22 -0
  38. package/dist/core/evalContext.js.map +1 -0
  39. package/dist/core/ids.d.ts +6 -0
  40. package/dist/core/ids.d.ts.map +1 -0
  41. package/dist/core/ids.js +35 -0
  42. package/dist/core/ids.js.map +1 -0
  43. package/dist/core/index.d.ts +15 -0
  44. package/dist/core/index.d.ts.map +1 -0
  45. package/dist/core/index.js +15 -0
  46. package/dist/core/index.js.map +1 -0
  47. package/dist/core/lifecycle.d.ts +4 -0
  48. package/dist/core/lifecycle.d.ts.map +1 -0
  49. package/dist/core/lifecycle.js +24 -0
  50. package/dist/core/lifecycle.js.map +1 -0
  51. package/dist/core/logger.d.ts +12 -0
  52. package/dist/core/logger.d.ts.map +1 -0
  53. package/dist/core/logger.js +14 -0
  54. package/dist/core/logger.js.map +1 -0
  55. package/dist/core/observe.d.ts +3 -0
  56. package/dist/core/observe.d.ts.map +1 -0
  57. package/dist/core/observe.js +22 -0
  58. package/dist/core/observe.js.map +1 -0
  59. package/dist/core/pageContext.d.ts +13 -0
  60. package/dist/core/pageContext.d.ts.map +1 -0
  61. package/dist/core/pageContext.js +73 -0
  62. package/dist/core/pageContext.js.map +1 -0
  63. package/dist/core/prune.d.ts +7 -0
  64. package/dist/core/prune.d.ts.map +1 -0
  65. package/dist/core/prune.js +31 -0
  66. package/dist/core/prune.js.map +1 -0
  67. package/dist/core/redact.d.ts +15 -0
  68. package/dist/core/redact.d.ts.map +1 -0
  69. package/dist/core/redact.js +50 -0
  70. package/dist/core/redact.js.map +1 -0
  71. package/dist/core/replayCoord.d.ts +22 -0
  72. package/dist/core/replayCoord.d.ts.map +1 -0
  73. package/dist/core/replayCoord.js +20 -0
  74. package/dist/core/replayCoord.js.map +1 -0
  75. package/dist/core/retry.d.ts +25 -0
  76. package/dist/core/retry.d.ts.map +1 -0
  77. package/dist/core/retry.js +44 -0
  78. package/dist/core/retry.js.map +1 -0
  79. package/dist/core/runtime.d.ts +28 -0
  80. package/dist/core/runtime.d.ts.map +1 -0
  81. package/dist/core/runtime.js +67 -0
  82. package/dist/core/runtime.js.map +1 -0
  83. package/dist/core/scrollDepth.d.ts +48 -0
  84. package/dist/core/scrollDepth.d.ts.map +1 -0
  85. package/dist/core/scrollDepth.js +63 -0
  86. package/dist/core/scrollDepth.js.map +1 -0
  87. package/dist/debug/index.d.ts +6 -0
  88. package/dist/debug/index.d.ts.map +1 -0
  89. package/dist/debug/index.js +2 -0
  90. package/dist/debug/index.js.map +1 -0
  91. package/dist/features/analytics/AnalyticsFeature.d.ts +122 -0
  92. package/dist/features/analytics/AnalyticsFeature.d.ts.map +1 -0
  93. package/dist/features/analytics/AnalyticsFeature.js +757 -0
  94. package/dist/features/analytics/AnalyticsFeature.js.map +1 -0
  95. package/dist/features/analytics/autocapture.d.ts +13 -0
  96. package/dist/features/analytics/autocapture.d.ts.map +1 -0
  97. package/dist/features/analytics/autocapture.js +398 -0
  98. package/dist/features/analytics/autocapture.js.map +1 -0
  99. package/dist/features/analytics/governance.d.ts +15 -0
  100. package/dist/features/analytics/governance.d.ts.map +1 -0
  101. package/dist/features/analytics/governance.js +30 -0
  102. package/dist/features/analytics/governance.js.map +1 -0
  103. package/dist/features/analytics/revenue.d.ts +38 -0
  104. package/dist/features/analytics/revenue.d.ts.map +1 -0
  105. package/dist/features/analytics/revenue.js +26 -0
  106. package/dist/features/analytics/revenue.js.map +1 -0
  107. package/dist/features/analytics/sampler.d.ts +2 -0
  108. package/dist/features/analytics/sampler.d.ts.map +1 -0
  109. package/dist/features/analytics/sampler.js +24 -0
  110. package/dist/features/analytics/sampler.js.map +1 -0
  111. package/dist/features/analytics/subscription.d.ts +25 -0
  112. package/dist/features/analytics/subscription.d.ts.map +1 -0
  113. package/dist/features/analytics/subscription.js +51 -0
  114. package/dist/features/analytics/subscription.js.map +1 -0
  115. package/dist/features/attention/index.d.ts +29 -0
  116. package/dist/features/attention/index.d.ts.map +1 -0
  117. package/dist/features/attention/index.js +128 -0
  118. package/dist/features/attention/index.js.map +1 -0
  119. package/dist/features/bugreport/BugReportFeature.d.ts +36 -0
  120. package/dist/features/bugreport/BugReportFeature.d.ts.map +1 -0
  121. package/dist/features/bugreport/BugReportFeature.js +55 -0
  122. package/dist/features/bugreport/BugReportFeature.js.map +1 -0
  123. package/dist/features/bugreport/collect.d.ts +21 -0
  124. package/dist/features/bugreport/collect.d.ts.map +1 -0
  125. package/dist/features/bugreport/collect.js +27 -0
  126. package/dist/features/bugreport/collect.js.map +1 -0
  127. package/dist/features/bugreport/widget.d.ts +21 -0
  128. package/dist/features/bugreport/widget.d.ts.map +1 -0
  129. package/dist/features/bugreport/widget.js +111 -0
  130. package/dist/features/bugreport/widget.js.map +1 -0
  131. package/dist/features/coach/CoachmarkFeature.d.ts +78 -0
  132. package/dist/features/coach/CoachmarkFeature.d.ts.map +1 -0
  133. package/dist/features/coach/CoachmarkFeature.js +161 -0
  134. package/dist/features/coach/CoachmarkFeature.js.map +1 -0
  135. package/dist/features/coach/anchor.d.ts +32 -0
  136. package/dist/features/coach/anchor.d.ts.map +1 -0
  137. package/dist/features/coach/anchor.js +128 -0
  138. package/dist/features/coach/anchor.js.map +1 -0
  139. package/dist/features/coach/observers.d.ts +17 -0
  140. package/dist/features/coach/observers.d.ts.map +1 -0
  141. package/dist/features/coach/observers.js +49 -0
  142. package/dist/features/coach/observers.js.map +1 -0
  143. package/dist/features/coach/overlay.d.ts +15 -0
  144. package/dist/features/coach/overlay.d.ts.map +1 -0
  145. package/dist/features/coach/overlay.js +183 -0
  146. package/dist/features/coach/overlay.js.map +1 -0
  147. package/dist/features/coach/position.d.ts +9 -0
  148. package/dist/features/coach/position.d.ts.map +1 -0
  149. package/dist/features/coach/position.js +83 -0
  150. package/dist/features/coach/position.js.map +1 -0
  151. package/dist/features/coach/predicate.d.ts +10 -0
  152. package/dist/features/coach/predicate.d.ts.map +1 -0
  153. package/dist/features/coach/predicate.js +36 -0
  154. package/dist/features/coach/predicate.js.map +1 -0
  155. package/dist/features/coach/tour.d.ts +55 -0
  156. package/dist/features/coach/tour.d.ts.map +1 -0
  157. package/dist/features/coach/tour.js +181 -0
  158. package/dist/features/coach/tour.js.map +1 -0
  159. package/dist/features/coach/types.d.ts +161 -0
  160. package/dist/features/coach/types.d.ts.map +1 -0
  161. package/dist/features/coach/types.js +2 -0
  162. package/dist/features/coach/types.js.map +1 -0
  163. package/dist/features/coach/wait.d.ts +34 -0
  164. package/dist/features/coach/wait.d.ts.map +1 -0
  165. package/dist/features/coach/wait.js +107 -0
  166. package/dist/features/coach/wait.js.map +1 -0
  167. package/dist/features/config/ConfigFeature.d.ts +117 -0
  168. package/dist/features/config/ConfigFeature.d.ts.map +1 -0
  169. package/dist/features/config/ConfigFeature.js +437 -0
  170. package/dist/features/config/ConfigFeature.js.map +1 -0
  171. package/dist/features/config/bucketing.d.ts +20 -0
  172. package/dist/features/config/bucketing.d.ts.map +1 -0
  173. package/dist/features/config/bucketing.js +37 -0
  174. package/dist/features/config/bucketing.js.map +1 -0
  175. package/dist/features/config/configStore.d.ts +11 -0
  176. package/dist/features/config/configStore.d.ts.map +1 -0
  177. package/dist/features/config/configStore.js +66 -0
  178. package/dist/features/config/configStore.js.map +1 -0
  179. package/dist/features/config/targeting.d.ts +11 -0
  180. package/dist/features/config/targeting.d.ts.map +1 -0
  181. package/dist/features/config/targeting.js +57 -0
  182. package/dist/features/config/targeting.js.map +1 -0
  183. package/dist/features/config/types.d.ts +100 -0
  184. package/dist/features/config/types.d.ts.map +1 -0
  185. package/dist/features/config/types.js +9 -0
  186. package/dist/features/config/types.js.map +1 -0
  187. package/dist/features/console/ConsoleFeature.d.ts +31 -0
  188. package/dist/features/console/ConsoleFeature.d.ts.map +1 -0
  189. package/dist/features/console/ConsoleFeature.js +98 -0
  190. package/dist/features/console/ConsoleFeature.js.map +1 -0
  191. package/dist/features/console/normalize.d.ts +18 -0
  192. package/dist/features/console/normalize.d.ts.map +1 -0
  193. package/dist/features/console/normalize.js +64 -0
  194. package/dist/features/console/normalize.js.map +1 -0
  195. package/dist/features/console/serialize.d.ts +24 -0
  196. package/dist/features/console/serialize.d.ts.map +1 -0
  197. package/dist/features/console/serialize.js +99 -0
  198. package/dist/features/console/serialize.js.map +1 -0
  199. package/dist/features/console/throttle.d.ts +27 -0
  200. package/dist/features/console/throttle.d.ts.map +1 -0
  201. package/dist/features/console/throttle.js +37 -0
  202. package/dist/features/console/throttle.js.map +1 -0
  203. package/dist/features/crash/CrashFeature.d.ts +46 -0
  204. package/dist/features/crash/CrashFeature.d.ts.map +1 -0
  205. package/dist/features/crash/CrashFeature.js +173 -0
  206. package/dist/features/crash/CrashFeature.js.map +1 -0
  207. package/dist/features/crash/liveness.d.ts +30 -0
  208. package/dist/features/crash/liveness.d.ts.map +1 -0
  209. package/dist/features/crash/liveness.js +131 -0
  210. package/dist/features/crash/liveness.js.map +1 -0
  211. package/dist/features/engage/EngageFeature.d.ts +61 -0
  212. package/dist/features/engage/EngageFeature.d.ts.map +1 -0
  213. package/dist/features/engage/EngageFeature.js +221 -0
  214. package/dist/features/engage/EngageFeature.js.map +1 -0
  215. package/dist/features/engage/attachments.d.ts +24 -0
  216. package/dist/features/engage/attachments.d.ts.map +1 -0
  217. package/dist/features/engage/attachments.js +209 -0
  218. package/dist/features/engage/attachments.js.map +1 -0
  219. package/dist/features/engage/gameLogic.d.ts +60 -0
  220. package/dist/features/engage/gameLogic.d.ts.map +1 -0
  221. package/dist/features/engage/gameLogic.js +213 -0
  222. package/dist/features/engage/gameLogic.js.map +1 -0
  223. package/dist/features/engage/gameResolver.d.ts +35 -0
  224. package/dist/features/engage/gameResolver.d.ts.map +1 -0
  225. package/dist/features/engage/gameResolver.js +81 -0
  226. package/dist/features/engage/gameResolver.js.map +1 -0
  227. package/dist/features/engage/gameTypes.d.ts +76 -0
  228. package/dist/features/engage/gameTypes.d.ts.map +1 -0
  229. package/dist/features/engage/gameTypes.js +17 -0
  230. package/dist/features/engage/gameTypes.js.map +1 -0
  231. package/dist/features/engage/inappSlots.d.ts +39 -0
  232. package/dist/features/engage/inappSlots.d.ts.map +1 -0
  233. package/dist/features/engage/inappSlots.js +50 -0
  234. package/dist/features/engage/inappSlots.js.map +1 -0
  235. package/dist/features/engage/normalize.d.ts +11 -0
  236. package/dist/features/engage/normalize.d.ts.map +1 -0
  237. package/dist/features/engage/normalize.js +203 -0
  238. package/dist/features/engage/normalize.js.map +1 -0
  239. package/dist/features/engage/richInApp.d.ts +64 -0
  240. package/dist/features/engage/richInApp.d.ts.map +1 -0
  241. package/dist/features/engage/richInApp.js +1082 -0
  242. package/dist/features/engage/richInApp.js.map +1 -0
  243. package/dist/features/engage/runtime.d.ts +78 -0
  244. package/dist/features/engage/runtime.d.ts.map +1 -0
  245. package/dist/features/engage/runtime.js +349 -0
  246. package/dist/features/engage/runtime.js.map +1 -0
  247. package/dist/features/engage/shakeDetector.d.ts +6 -0
  248. package/dist/features/engage/shakeDetector.d.ts.map +1 -0
  249. package/dist/features/engage/shakeDetector.js +105 -0
  250. package/dist/features/engage/shakeDetector.js.map +1 -0
  251. package/dist/features/engage/theme.d.ts +129 -0
  252. package/dist/features/engage/theme.d.ts.map +1 -0
  253. package/dist/features/engage/theme.js +270 -0
  254. package/dist/features/engage/theme.js.map +1 -0
  255. package/dist/features/engage/throttle.d.ts +31 -0
  256. package/dist/features/engage/throttle.d.ts.map +1 -0
  257. package/dist/features/engage/throttle.js +130 -0
  258. package/dist/features/engage/throttle.js.map +1 -0
  259. package/dist/features/engage/transport.d.ts +62 -0
  260. package/dist/features/engage/transport.d.ts.map +1 -0
  261. package/dist/features/engage/transport.js +185 -0
  262. package/dist/features/engage/transport.js.map +1 -0
  263. package/dist/features/engage/triggerEngine.d.ts +39 -0
  264. package/dist/features/engage/triggerEngine.d.ts.map +1 -0
  265. package/dist/features/engage/triggerEngine.js +105 -0
  266. package/dist/features/engage/triggerEngine.js.map +1 -0
  267. package/dist/features/engage/types.d.ts +265 -0
  268. package/dist/features/engage/types.d.ts.map +1 -0
  269. package/dist/features/engage/types.js +3 -0
  270. package/dist/features/engage/types.js.map +1 -0
  271. package/dist/features/engage/widget/InAppWidget.d.ts +10 -0
  272. package/dist/features/engage/widget/InAppWidget.d.ts.map +1 -0
  273. package/dist/features/engage/widget/InAppWidget.js +136 -0
  274. package/dist/features/engage/widget/InAppWidget.js.map +1 -0
  275. package/dist/features/engage/widget/SurveyWidget.d.ts +11 -0
  276. package/dist/features/engage/widget/SurveyWidget.d.ts.map +1 -0
  277. package/dist/features/engage/widget/SurveyWidget.js +546 -0
  278. package/dist/features/engage/widget/SurveyWidget.js.map +1 -0
  279. package/dist/features/errors/ErrorsFeature.d.ts +62 -0
  280. package/dist/features/errors/ErrorsFeature.d.ts.map +1 -0
  281. package/dist/features/errors/ErrorsFeature.js +209 -0
  282. package/dist/features/errors/ErrorsFeature.js.map +1 -0
  283. package/dist/features/errors/causes.d.ts +15 -0
  284. package/dist/features/errors/causes.d.ts.map +1 -0
  285. package/dist/features/errors/causes.js +29 -0
  286. package/dist/features/errors/causes.js.map +1 -0
  287. package/dist/features/errors/dedup.d.ts +28 -0
  288. package/dist/features/errors/dedup.d.ts.map +1 -0
  289. package/dist/features/errors/dedup.js +42 -0
  290. package/dist/features/errors/dedup.js.map +1 -0
  291. package/dist/features/errors/group/fingerprint.d.ts +13 -0
  292. package/dist/features/errors/group/fingerprint.d.ts.map +1 -0
  293. package/dist/features/errors/group/fingerprint.js +45 -0
  294. package/dist/features/errors/group/fingerprint.js.map +1 -0
  295. package/dist/features/errors/lazy.d.ts +8 -0
  296. package/dist/features/errors/lazy.d.ts.map +1 -0
  297. package/dist/features/errors/lazy.js +8 -0
  298. package/dist/features/errors/lazy.js.map +1 -0
  299. package/dist/features/errors/normalize.d.ts +26 -0
  300. package/dist/features/errors/normalize.d.ts.map +1 -0
  301. package/dist/features/errors/normalize.js +58 -0
  302. package/dist/features/errors/normalize.js.map +1 -0
  303. package/dist/features/errors/parse/stacktrace.d.ts +13 -0
  304. package/dist/features/errors/parse/stacktrace.d.ts.map +1 -0
  305. package/dist/features/errors/parse/stacktrace.js +85 -0
  306. package/dist/features/errors/parse/stacktrace.js.map +1 -0
  307. package/dist/features/errors/redact.d.ts +7 -0
  308. package/dist/features/errors/redact.d.ts.map +1 -0
  309. package/dist/features/errors/redact.js +39 -0
  310. package/dist/features/errors/redact.js.map +1 -0
  311. package/dist/features/errors/sampling.d.ts +2 -0
  312. package/dist/features/errors/sampling.d.ts.map +1 -0
  313. package/dist/features/errors/sampling.js +24 -0
  314. package/dist/features/errors/sampling.js.map +1 -0
  315. package/dist/features/errors/scope.d.ts +26 -0
  316. package/dist/features/errors/scope.d.ts.map +1 -0
  317. package/dist/features/errors/scope.js +30 -0
  318. package/dist/features/errors/scope.js.map +1 -0
  319. package/dist/features/exit-intent/ExitIntentFeature.d.ts +16 -0
  320. package/dist/features/exit-intent/ExitIntentFeature.d.ts.map +1 -0
  321. package/dist/features/exit-intent/ExitIntentFeature.js +25 -0
  322. package/dist/features/exit-intent/ExitIntentFeature.js.map +1 -0
  323. package/dist/features/exit-intent/engine.d.ts +127 -0
  324. package/dist/features/exit-intent/engine.d.ts.map +1 -0
  325. package/dist/features/exit-intent/engine.js +227 -0
  326. package/dist/features/exit-intent/engine.js.map +1 -0
  327. package/dist/features/forms/index.d.ts +83 -0
  328. package/dist/features/forms/index.d.ts.map +1 -0
  329. package/dist/features/forms/index.js +405 -0
  330. package/dist/features/forms/index.js.map +1 -0
  331. package/dist/features/inapp/InApp2Feature.d.ts +24 -0
  332. package/dist/features/inapp/InApp2Feature.d.ts.map +1 -0
  333. package/dist/features/inapp/InApp2Feature.js +43 -0
  334. package/dist/features/inapp/InApp2Feature.js.map +1 -0
  335. package/dist/features/inapp/a11y/focus.d.ts +24 -0
  336. package/dist/features/inapp/a11y/focus.d.ts.map +1 -0
  337. package/dist/features/inapp/a11y/focus.js +112 -0
  338. package/dist/features/inapp/a11y/focus.js.map +1 -0
  339. package/dist/features/inapp/anchor/controller.d.ts +64 -0
  340. package/dist/features/inapp/anchor/controller.d.ts.map +1 -0
  341. package/dist/features/inapp/anchor/controller.js +155 -0
  342. package/dist/features/inapp/anchor/controller.js.map +1 -0
  343. package/dist/features/inapp/api.d.ts +28 -0
  344. package/dist/features/inapp/api.d.ts.map +1 -0
  345. package/dist/features/inapp/api.js +41 -0
  346. package/dist/features/inapp/api.js.map +1 -0
  347. package/dist/features/inapp/blocks/blocks.d.ts +65 -0
  348. package/dist/features/inapp/blocks/blocks.d.ts.map +1 -0
  349. package/dist/features/inapp/blocks/blocks.js +196 -0
  350. package/dist/features/inapp/blocks/blocks.js.map +1 -0
  351. package/dist/features/inapp/blocks/feedback.d.ts +13 -0
  352. package/dist/features/inapp/blocks/feedback.d.ts.map +1 -0
  353. package/dist/features/inapp/blocks/feedback.js +154 -0
  354. package/dist/features/inapp/blocks/feedback.js.map +1 -0
  355. package/dist/features/inapp/blocks/heavy/carousel.d.ts +8 -0
  356. package/dist/features/inapp/blocks/heavy/carousel.d.ts.map +1 -0
  357. package/dist/features/inapp/blocks/heavy/carousel.js +67 -0
  358. package/dist/features/inapp/blocks/heavy/carousel.js.map +1 -0
  359. package/dist/features/inapp/blocks/heavy/chart.d.ts +9 -0
  360. package/dist/features/inapp/blocks/heavy/chart.d.ts.map +1 -0
  361. package/dist/features/inapp/blocks/heavy/chart.js +83 -0
  362. package/dist/features/inapp/blocks/heavy/chart.js.map +1 -0
  363. package/dist/features/inapp/blocks/heavy/code.d.ts +8 -0
  364. package/dist/features/inapp/blocks/heavy/code.d.ts.map +1 -0
  365. package/dist/features/inapp/blocks/heavy/code.js +47 -0
  366. package/dist/features/inapp/blocks/heavy/code.js.map +1 -0
  367. package/dist/features/inapp/blocks/heavy/confetti.d.ts +9 -0
  368. package/dist/features/inapp/blocks/heavy/confetti.d.ts.map +1 -0
  369. package/dist/features/inapp/blocks/heavy/confetti.js +76 -0
  370. package/dist/features/inapp/blocks/heavy/confetti.js.map +1 -0
  371. package/dist/features/inapp/blocks/heavy/countdown.d.ts +9 -0
  372. package/dist/features/inapp/blocks/heavy/countdown.d.ts.map +1 -0
  373. package/dist/features/inapp/blocks/heavy/countdown.js +59 -0
  374. package/dist/features/inapp/blocks/heavy/countdown.js.map +1 -0
  375. package/dist/features/inapp/blocks/heavy/index.d.ts +11 -0
  376. package/dist/features/inapp/blocks/heavy/index.d.ts.map +1 -0
  377. package/dist/features/inapp/blocks/heavy/index.js +45 -0
  378. package/dist/features/inapp/blocks/heavy/index.js.map +1 -0
  379. package/dist/features/inapp/blocks/heavy/markdown.d.ts +9 -0
  380. package/dist/features/inapp/blocks/heavy/markdown.d.ts.map +1 -0
  381. package/dist/features/inapp/blocks/heavy/markdown.js +76 -0
  382. package/dist/features/inapp/blocks/heavy/markdown.js.map +1 -0
  383. package/dist/features/inapp/blocks/heavy/productgrid.d.ts +8 -0
  384. package/dist/features/inapp/blocks/heavy/productgrid.d.ts.map +1 -0
  385. package/dist/features/inapp/blocks/heavy/productgrid.js +46 -0
  386. package/dist/features/inapp/blocks/heavy/productgrid.js.map +1 -0
  387. package/dist/features/inapp/blocks/heavy/qr.d.ts +10 -0
  388. package/dist/features/inapp/blocks/heavy/qr.d.ts.map +1 -0
  389. package/dist/features/inapp/blocks/heavy/qr.js +69 -0
  390. package/dist/features/inapp/blocks/heavy/qr.js.map +1 -0
  391. package/dist/features/inapp/blocks/heavy/scratch.d.ts +8 -0
  392. package/dist/features/inapp/blocks/heavy/scratch.d.ts.map +1 -0
  393. package/dist/features/inapp/blocks/heavy/scratch.js +141 -0
  394. package/dist/features/inapp/blocks/heavy/scratch.js.map +1 -0
  395. package/dist/features/inapp/blocks/heavy/slot.d.ts +8 -0
  396. package/dist/features/inapp/blocks/heavy/slot.d.ts.map +1 -0
  397. package/dist/features/inapp/blocks/heavy/slot.js +96 -0
  398. package/dist/features/inapp/blocks/heavy/slot.js.map +1 -0
  399. package/dist/features/inapp/blocks/heavy/spinwheel.d.ts +9 -0
  400. package/dist/features/inapp/blocks/heavy/spinwheel.d.ts.map +1 -0
  401. package/dist/features/inapp/blocks/heavy/spinwheel.js +127 -0
  402. package/dist/features/inapp/blocks/heavy/spinwheel.js.map +1 -0
  403. package/dist/features/inapp/blocks/heavy/steps.d.ts +27 -0
  404. package/dist/features/inapp/blocks/heavy/steps.d.ts.map +1 -0
  405. package/dist/features/inapp/blocks/heavy/steps.js +127 -0
  406. package/dist/features/inapp/blocks/heavy/steps.js.map +1 -0
  407. package/dist/features/inapp/blocks/heavy/streak.d.ts +18 -0
  408. package/dist/features/inapp/blocks/heavy/streak.d.ts.map +1 -0
  409. package/dist/features/inapp/blocks/heavy/streak.js +52 -0
  410. package/dist/features/inapp/blocks/heavy/streak.js.map +1 -0
  411. package/dist/features/inapp/blocks/heavy/table.d.ts +7 -0
  412. package/dist/features/inapp/blocks/heavy/table.d.ts.map +1 -0
  413. package/dist/features/inapp/blocks/heavy/table.js +30 -0
  414. package/dist/features/inapp/blocks/heavy/table.js.map +1 -0
  415. package/dist/features/inapp/blocks/heavy/unavailable.d.ts +28 -0
  416. package/dist/features/inapp/blocks/heavy/unavailable.d.ts.map +1 -0
  417. package/dist/features/inapp/blocks/heavy/unavailable.js +33 -0
  418. package/dist/features/inapp/blocks/heavy/unavailable.js.map +1 -0
  419. package/dist/features/inapp/blocks/heavy/video.d.ts +7 -0
  420. package/dist/features/inapp/blocks/heavy/video.d.ts.map +1 -0
  421. package/dist/features/inapp/blocks/heavy/video.js +38 -0
  422. package/dist/features/inapp/blocks/heavy/video.js.map +1 -0
  423. package/dist/features/inapp/blocks/styles.d.ts +7 -0
  424. package/dist/features/inapp/blocks/styles.d.ts.map +1 -0
  425. package/dist/features/inapp/blocks/styles.js +198 -0
  426. package/dist/features/inapp/blocks/styles.js.map +1 -0
  427. package/dist/features/inapp/center/bridge.d.ts +12 -0
  428. package/dist/features/inapp/center/bridge.d.ts.map +1 -0
  429. package/dist/features/inapp/center/bridge.js +59 -0
  430. package/dist/features/inapp/center/bridge.js.map +1 -0
  431. package/dist/features/inapp/center/panel.d.ts +20 -0
  432. package/dist/features/inapp/center/panel.d.ts.map +1 -0
  433. package/dist/features/inapp/center/panel.js +194 -0
  434. package/dist/features/inapp/center/panel.js.map +1 -0
  435. package/dist/features/inapp/center/store.d.ts +50 -0
  436. package/dist/features/inapp/center/store.d.ts.map +1 -0
  437. package/dist/features/inapp/center/store.js +188 -0
  438. package/dist/features/inapp/center/store.js.map +1 -0
  439. package/dist/features/inapp/center/sync.d.ts +32 -0
  440. package/dist/features/inapp/center/sync.d.ts.map +1 -0
  441. package/dist/features/inapp/center/sync.js +60 -0
  442. package/dist/features/inapp/center/sync.js.map +1 -0
  443. package/dist/features/inapp/center/types.d.ts +46 -0
  444. package/dist/features/inapp/center/types.d.ts.map +1 -0
  445. package/dist/features/inapp/center/types.js +5 -0
  446. package/dist/features/inapp/center/types.js.map +1 -0
  447. package/dist/features/inapp/core/analytics.d.ts +35 -0
  448. package/dist/features/inapp/core/analytics.d.ts.map +1 -0
  449. package/dist/features/inapp/core/analytics.js +70 -0
  450. package/dist/features/inapp/core/analytics.js.map +1 -0
  451. package/dist/features/inapp/core/compat.d.ts +28 -0
  452. package/dist/features/inapp/core/compat.d.ts.map +1 -0
  453. package/dist/features/inapp/core/compat.js +104 -0
  454. package/dist/features/inapp/core/compat.js.map +1 -0
  455. package/dist/features/inapp/core/debugOverlay.d.ts +5 -0
  456. package/dist/features/inapp/core/debugOverlay.d.ts.map +1 -0
  457. package/dist/features/inapp/core/debugOverlay.js +79 -0
  458. package/dist/features/inapp/core/debugOverlay.js.map +1 -0
  459. package/dist/features/inapp/core/engine.d.ts +70 -0
  460. package/dist/features/inapp/core/engine.d.ts.map +1 -0
  461. package/dist/features/inapp/core/engine.js +248 -0
  462. package/dist/features/inapp/core/engine.js.map +1 -0
  463. package/dist/features/inapp/core/environment.d.ts +21 -0
  464. package/dist/features/inapp/core/environment.d.ts.map +1 -0
  465. package/dist/features/inapp/core/environment.js +57 -0
  466. package/dist/features/inapp/core/environment.js.map +1 -0
  467. package/dist/features/inapp/core/host.d.ts +53 -0
  468. package/dist/features/inapp/core/host.d.ts.map +1 -0
  469. package/dist/features/inapp/core/host.js +239 -0
  470. package/dist/features/inapp/core/host.js.map +1 -0
  471. package/dist/features/inapp/core/keyboard.d.ts +27 -0
  472. package/dist/features/inapp/core/keyboard.d.ts.map +1 -0
  473. package/dist/features/inapp/core/keyboard.js +69 -0
  474. package/dist/features/inapp/core/keyboard.js.map +1 -0
  475. package/dist/features/inapp/core/metrics.d.ts +73 -0
  476. package/dist/features/inapp/core/metrics.d.ts.map +1 -0
  477. package/dist/features/inapp/core/metrics.js +125 -0
  478. package/dist/features/inapp/core/metrics.js.map +1 -0
  479. package/dist/features/inapp/core/migration.d.ts +32 -0
  480. package/dist/features/inapp/core/migration.d.ts.map +1 -0
  481. package/dist/features/inapp/core/migration.js +28 -0
  482. package/dist/features/inapp/core/migration.js.map +1 -0
  483. package/dist/features/inapp/core/orchestrator.d.ts +77 -0
  484. package/dist/features/inapp/core/orchestrator.d.ts.map +1 -0
  485. package/dist/features/inapp/core/orchestrator.js +144 -0
  486. package/dist/features/inapp/core/orchestrator.js.map +1 -0
  487. package/dist/features/inapp/core/respect.d.ts +51 -0
  488. package/dist/features/inapp/core/respect.d.ts.map +1 -0
  489. package/dist/features/inapp/core/respect.js +78 -0
  490. package/dist/features/inapp/core/respect.js.map +1 -0
  491. package/dist/features/inapp/core/slots.d.ts +19 -0
  492. package/dist/features/inapp/core/slots.d.ts.map +1 -0
  493. package/dist/features/inapp/core/slots.js +53 -0
  494. package/dist/features/inapp/core/slots.js.map +1 -0
  495. package/dist/features/inapp/core/targeting.d.ts +58 -0
  496. package/dist/features/inapp/core/targeting.d.ts.map +1 -0
  497. package/dist/features/inapp/core/targeting.js +181 -0
  498. package/dist/features/inapp/core/targeting.js.map +1 -0
  499. package/dist/features/inapp/core/transport.d.ts +66 -0
  500. package/dist/features/inapp/core/transport.d.ts.map +1 -0
  501. package/dist/features/inapp/core/transport.js +154 -0
  502. package/dist/features/inapp/core/transport.js.map +1 -0
  503. package/dist/features/inapp/core/triggers.d.ts +94 -0
  504. package/dist/features/inapp/core/triggers.d.ts.map +1 -0
  505. package/dist/features/inapp/core/triggers.js +368 -0
  506. package/dist/features/inapp/core/triggers.js.map +1 -0
  507. package/dist/features/inapp/inappContract.web.d.ts +47 -0
  508. package/dist/features/inapp/inappContract.web.d.ts.map +1 -0
  509. package/dist/features/inapp/inappContract.web.js +219 -0
  510. package/dist/features/inapp/inappContract.web.js.map +1 -0
  511. package/dist/features/inapp/index.d.ts +23 -0
  512. package/dist/features/inapp/index.d.ts.map +1 -0
  513. package/dist/features/inapp/index.js +23 -0
  514. package/dist/features/inapp/index.js.map +1 -0
  515. package/dist/features/inapp/registry.canonical.hash.d.ts +7 -0
  516. package/dist/features/inapp/registry.canonical.hash.d.ts.map +1 -0
  517. package/dist/features/inapp/registry.canonical.hash.js +7 -0
  518. package/dist/features/inapp/registry.canonical.hash.js.map +1 -0
  519. package/dist/features/inapp/registry.web.canonical.d.ts +21 -0
  520. package/dist/features/inapp/registry.web.canonical.d.ts.map +1 -0
  521. package/dist/features/inapp/registry.web.canonical.js +136 -0
  522. package/dist/features/inapp/registry.web.canonical.js.map +1 -0
  523. package/dist/features/inapp/registry.web.catalog.d.ts +12 -0
  524. package/dist/features/inapp/registry.web.catalog.d.ts.map +1 -0
  525. package/dist/features/inapp/registry.web.catalog.js +208 -0
  526. package/dist/features/inapp/registry.web.catalog.js.map +1 -0
  527. package/dist/features/inapp/surfaces/banner.d.ts +7 -0
  528. package/dist/features/inapp/surfaces/banner.d.ts.map +1 -0
  529. package/dist/features/inapp/surfaces/banner.js +30 -0
  530. package/dist/features/inapp/surfaces/banner.js.map +1 -0
  531. package/dist/features/inapp/surfaces/checklist.d.ts +13 -0
  532. package/dist/features/inapp/surfaces/checklist.d.ts.map +1 -0
  533. package/dist/features/inapp/surfaces/checklist.js +127 -0
  534. package/dist/features/inapp/surfaces/checklist.js.map +1 -0
  535. package/dist/features/inapp/surfaces/coachmark.d.ts +10 -0
  536. package/dist/features/inapp/surfaces/coachmark.d.ts.map +1 -0
  537. package/dist/features/inapp/surfaces/coachmark.js +92 -0
  538. package/dist/features/inapp/surfaces/coachmark.js.map +1 -0
  539. package/dist/features/inapp/surfaces/hotspot.d.ts +8 -0
  540. package/dist/features/inapp/surfaces/hotspot.d.ts.map +1 -0
  541. package/dist/features/inapp/surfaces/hotspot.js +88 -0
  542. package/dist/features/inapp/surfaces/hotspot.js.map +1 -0
  543. package/dist/features/inapp/surfaces/inline.d.ts +13 -0
  544. package/dist/features/inapp/surfaces/inline.d.ts.map +1 -0
  545. package/dist/features/inapp/surfaces/inline.js +72 -0
  546. package/dist/features/inapp/surfaces/inline.js.map +1 -0
  547. package/dist/features/inapp/surfaces/launcher.d.ts +9 -0
  548. package/dist/features/inapp/surfaces/launcher.d.ts.map +1 -0
  549. package/dist/features/inapp/surfaces/launcher.js +54 -0
  550. package/dist/features/inapp/surfaces/launcher.js.map +1 -0
  551. package/dist/features/inapp/surfaces/modal.d.ts +8 -0
  552. package/dist/features/inapp/surfaces/modal.d.ts.map +1 -0
  553. package/dist/features/inapp/surfaces/modal.js +70 -0
  554. package/dist/features/inapp/surfaces/modal.js.map +1 -0
  555. package/dist/features/inapp/surfaces/mount.d.ts +19 -0
  556. package/dist/features/inapp/surfaces/mount.d.ts.map +1 -0
  557. package/dist/features/inapp/surfaces/mount.js +29 -0
  558. package/dist/features/inapp/surfaces/mount.js.map +1 -0
  559. package/dist/features/inapp/surfaces/palette.d.ts +9 -0
  560. package/dist/features/inapp/surfaces/palette.d.ts.map +1 -0
  561. package/dist/features/inapp/surfaces/palette.js +127 -0
  562. package/dist/features/inapp/surfaces/palette.js.map +1 -0
  563. package/dist/features/inapp/surfaces/panel.d.ts +14 -0
  564. package/dist/features/inapp/surfaces/panel.d.ts.map +1 -0
  565. package/dist/features/inapp/surfaces/panel.js +91 -0
  566. package/dist/features/inapp/surfaces/panel.js.map +1 -0
  567. package/dist/features/inapp/surfaces/popover.d.ts +10 -0
  568. package/dist/features/inapp/surfaces/popover.d.ts.map +1 -0
  569. package/dist/features/inapp/surfaces/popover.js +66 -0
  570. package/dist/features/inapp/surfaces/popover.js.map +1 -0
  571. package/dist/features/inapp/surfaces/render.d.ts +34 -0
  572. package/dist/features/inapp/surfaces/render.d.ts.map +1 -0
  573. package/dist/features/inapp/surfaces/render.js +52 -0
  574. package/dist/features/inapp/surfaces/render.js.map +1 -0
  575. package/dist/features/inapp/surfaces/slideover.d.ts +9 -0
  576. package/dist/features/inapp/surfaces/slideover.d.ts.map +1 -0
  577. package/dist/features/inapp/surfaces/slideover.js +144 -0
  578. package/dist/features/inapp/surfaces/slideover.js.map +1 -0
  579. package/dist/features/inapp/surfaces/styles.d.ts +7 -0
  580. package/dist/features/inapp/surfaces/styles.d.ts.map +1 -0
  581. package/dist/features/inapp/surfaces/styles.js +186 -0
  582. package/dist/features/inapp/surfaces/styles.js.map +1 -0
  583. package/dist/features/inapp/surfaces/surface.d.ts +69 -0
  584. package/dist/features/inapp/surfaces/surface.d.ts.map +1 -0
  585. package/dist/features/inapp/surfaces/surface.js +80 -0
  586. package/dist/features/inapp/surfaces/surface.js.map +1 -0
  587. package/dist/features/inapp/surfaces/takeover.d.ts +9 -0
  588. package/dist/features/inapp/surfaces/takeover.d.ts.map +1 -0
  589. package/dist/features/inapp/surfaces/takeover.js +60 -0
  590. package/dist/features/inapp/surfaces/takeover.js.map +1 -0
  591. package/dist/features/inapp/surfaces/toast.d.ts +7 -0
  592. package/dist/features/inapp/surfaces/toast.d.ts.map +1 -0
  593. package/dist/features/inapp/surfaces/toast.js +48 -0
  594. package/dist/features/inapp/surfaces/toast.js.map +1 -0
  595. package/dist/features/inapp/surfaces/toolbar.d.ts +8 -0
  596. package/dist/features/inapp/surfaces/toolbar.d.ts.map +1 -0
  597. package/dist/features/inapp/surfaces/toolbar.js +62 -0
  598. package/dist/features/inapp/surfaces/toolbar.js.map +1 -0
  599. package/dist/features/inapp/surfaces/tour.d.ts +14 -0
  600. package/dist/features/inapp/surfaces/tour.d.ts.map +1 -0
  601. package/dist/features/inapp/surfaces/tour.js +199 -0
  602. package/dist/features/inapp/surfaces/tour.js.map +1 -0
  603. package/dist/features/inapp/types.d.ts +163 -0
  604. package/dist/features/inapp/types.d.ts.map +1 -0
  605. package/dist/features/inapp/types.js +12 -0
  606. package/dist/features/inapp/types.js.map +1 -0
  607. package/dist/features/inbox/InboxFeature.d.ts +57 -0
  608. package/dist/features/inbox/InboxFeature.d.ts.map +1 -0
  609. package/dist/features/inbox/InboxFeature.js +225 -0
  610. package/dist/features/inbox/InboxFeature.js.map +1 -0
  611. package/dist/features/inbox/runtime.d.ts +67 -0
  612. package/dist/features/inbox/runtime.d.ts.map +1 -0
  613. package/dist/features/inbox/runtime.js +376 -0
  614. package/dist/features/inbox/runtime.js.map +1 -0
  615. package/dist/features/inbox/store.d.ts +37 -0
  616. package/dist/features/inbox/store.d.ts.map +1 -0
  617. package/dist/features/inbox/store.js +149 -0
  618. package/dist/features/inbox/store.js.map +1 -0
  619. package/dist/features/inbox/sync.d.ts +49 -0
  620. package/dist/features/inbox/sync.d.ts.map +1 -0
  621. package/dist/features/inbox/sync.js +131 -0
  622. package/dist/features/inbox/sync.js.map +1 -0
  623. package/dist/features/inbox/types.d.ts +275 -0
  624. package/dist/features/inbox/types.d.ts.map +1 -0
  625. package/dist/features/inbox/types.js +42 -0
  626. package/dist/features/inbox/types.js.map +1 -0
  627. package/dist/features/inbox/widget/InboxWidget.d.ts +16 -0
  628. package/dist/features/inbox/widget/InboxWidget.d.ts.map +1 -0
  629. package/dist/features/inbox/widget/InboxWidget.js +608 -0
  630. package/dist/features/inbox/widget/InboxWidget.js.map +1 -0
  631. package/dist/features/index.d.ts +21 -0
  632. package/dist/features/index.d.ts.map +1 -0
  633. package/dist/features/index.js +2 -0
  634. package/dist/features/index.js.map +1 -0
  635. package/dist/features/journey/InteractionTracker.d.ts +34 -0
  636. package/dist/features/journey/InteractionTracker.d.ts.map +1 -0
  637. package/dist/features/journey/InteractionTracker.js +125 -0
  638. package/dist/features/journey/InteractionTracker.js.map +1 -0
  639. package/dist/features/journey/JourneyFeature.d.ts +18 -0
  640. package/dist/features/journey/JourneyFeature.d.ts.map +1 -0
  641. package/dist/features/journey/JourneyFeature.js +57 -0
  642. package/dist/features/journey/JourneyFeature.js.map +1 -0
  643. package/dist/features/journey/NavigationTracker.d.ts +16 -0
  644. package/dist/features/journey/NavigationTracker.d.ts.map +1 -0
  645. package/dist/features/journey/NavigationTracker.js +92 -0
  646. package/dist/features/journey/NavigationTracker.js.map +1 -0
  647. package/dist/features/journey/friction.d.ts +29 -0
  648. package/dist/features/journey/friction.d.ts.map +1 -0
  649. package/dist/features/journey/friction.js +65 -0
  650. package/dist/features/journey/friction.js.map +1 -0
  651. package/dist/features/manifest.d.ts +20 -0
  652. package/dist/features/manifest.d.ts.map +1 -0
  653. package/dist/features/manifest.js +76 -0
  654. package/dist/features/manifest.js.map +1 -0
  655. package/dist/features/network/NetworkFeature.d.ts +56 -0
  656. package/dist/features/network/NetworkFeature.d.ts.map +1 -0
  657. package/dist/features/network/NetworkFeature.js +235 -0
  658. package/dist/features/network/NetworkFeature.js.map +1 -0
  659. package/dist/features/network/capture/body.d.ts +31 -0
  660. package/dist/features/network/capture/body.d.ts.map +1 -0
  661. package/dist/features/network/capture/body.js +81 -0
  662. package/dist/features/network/capture/body.js.map +1 -0
  663. package/dist/features/network/classify.d.ts +21 -0
  664. package/dist/features/network/classify.d.ts.map +1 -0
  665. package/dist/features/network/classify.js +50 -0
  666. package/dist/features/network/classify.js.map +1 -0
  667. package/dist/features/network/dedup.d.ts +36 -0
  668. package/dist/features/network/dedup.d.ts.map +1 -0
  669. package/dist/features/network/dedup.js +68 -0
  670. package/dist/features/network/dedup.js.map +1 -0
  671. package/dist/features/network/fetchInterceptor.d.ts +20 -0
  672. package/dist/features/network/fetchInterceptor.d.ts.map +1 -0
  673. package/dist/features/network/fetchInterceptor.js +158 -0
  674. package/dist/features/network/fetchInterceptor.js.map +1 -0
  675. package/dist/features/network/intercept/beacon.d.ts +14 -0
  676. package/dist/features/network/intercept/beacon.d.ts.map +1 -0
  677. package/dist/features/network/intercept/beacon.js +56 -0
  678. package/dist/features/network/intercept/beacon.js.map +1 -0
  679. package/dist/features/network/intercept/sse.d.ts +16 -0
  680. package/dist/features/network/intercept/sse.d.ts.map +1 -0
  681. package/dist/features/network/intercept/sse.js +74 -0
  682. package/dist/features/network/intercept/sse.js.map +1 -0
  683. package/dist/features/network/intercept/streams.d.ts +23 -0
  684. package/dist/features/network/intercept/streams.d.ts.map +1 -0
  685. package/dist/features/network/intercept/streams.js +25 -0
  686. package/dist/features/network/intercept/streams.js.map +1 -0
  687. package/dist/features/network/intercept/websocket.d.ts +14 -0
  688. package/dist/features/network/intercept/websocket.d.ts.map +1 -0
  689. package/dist/features/network/intercept/websocket.js +97 -0
  690. package/dist/features/network/intercept/websocket.js.map +1 -0
  691. package/dist/features/network/lazy.d.ts +23 -0
  692. package/dist/features/network/lazy.d.ts.map +1 -0
  693. package/dist/features/network/lazy.js +65 -0
  694. package/dist/features/network/lazy.js.map +1 -0
  695. package/dist/features/network/normalize.d.ts +9 -0
  696. package/dist/features/network/normalize.d.ts.map +1 -0
  697. package/dist/features/network/normalize.js +49 -0
  698. package/dist/features/network/normalize.js.map +1 -0
  699. package/dist/features/network/parse/graphql.d.ts +17 -0
  700. package/dist/features/network/parse/graphql.d.ts.map +1 -0
  701. package/dist/features/network/parse/graphql.js +106 -0
  702. package/dist/features/network/parse/graphql.js.map +1 -0
  703. package/dist/features/network/parse/url.d.ts +12 -0
  704. package/dist/features/network/parse/url.d.ts.map +1 -0
  705. package/dist/features/network/parse/url.js +52 -0
  706. package/dist/features/network/parse/url.js.map +1 -0
  707. package/dist/features/network/sampler.d.ts +21 -0
  708. package/dist/features/network/sampler.d.ts.map +1 -0
  709. package/dist/features/network/sampler.js +25 -0
  710. package/dist/features/network/sampler.js.map +1 -0
  711. package/dist/features/network/size.d.ts +21 -0
  712. package/dist/features/network/size.d.ts.map +1 -0
  713. package/dist/features/network/size.js +63 -0
  714. package/dist/features/network/size.js.map +1 -0
  715. package/dist/features/network/timing.d.ts +41 -0
  716. package/dist/features/network/timing.d.ts.map +1 -0
  717. package/dist/features/network/timing.js +134 -0
  718. package/dist/features/network/timing.js.map +1 -0
  719. package/dist/features/network/tracing.d.ts +18 -0
  720. package/dist/features/network/tracing.d.ts.map +1 -0
  721. package/dist/features/network/tracing.js +46 -0
  722. package/dist/features/network/tracing.js.map +1 -0
  723. package/dist/features/network/types.d.ts +75 -0
  724. package/dist/features/network/types.d.ts.map +1 -0
  725. package/dist/features/network/types.js +2 -0
  726. package/dist/features/network/types.js.map +1 -0
  727. package/dist/features/network/xhrInterceptor.d.ts +12 -0
  728. package/dist/features/network/xhrInterceptor.d.ts.map +1 -0
  729. package/dist/features/network/xhrInterceptor.js +108 -0
  730. package/dist/features/network/xhrInterceptor.js.map +1 -0
  731. package/dist/features/performance/PerformanceFeature.d.ts +76 -0
  732. package/dist/features/performance/PerformanceFeature.d.ts.map +1 -0
  733. package/dist/features/performance/PerformanceFeature.js +265 -0
  734. package/dist/features/performance/PerformanceFeature.js.map +1 -0
  735. package/dist/features/performance/jankTap.d.ts +23 -0
  736. package/dist/features/performance/jankTap.d.ts.map +1 -0
  737. package/dist/features/performance/jankTap.js +20 -0
  738. package/dist/features/performance/jankTap.js.map +1 -0
  739. package/dist/features/performance/longTasks.d.ts +14 -0
  740. package/dist/features/performance/longTasks.d.ts.map +1 -0
  741. package/dist/features/performance/longTasks.js +55 -0
  742. package/dist/features/performance/longTasks.js.map +1 -0
  743. package/dist/features/performance/normalize.d.ts +15 -0
  744. package/dist/features/performance/normalize.d.ts.map +1 -0
  745. package/dist/features/performance/normalize.js +30 -0
  746. package/dist/features/performance/normalize.js.map +1 -0
  747. package/dist/features/performance/resources.d.ts +19 -0
  748. package/dist/features/performance/resources.d.ts.map +1 -0
  749. package/dist/features/performance/resources.js +78 -0
  750. package/dist/features/performance/resources.js.map +1 -0
  751. package/dist/features/performance/sampler.d.ts +10 -0
  752. package/dist/features/performance/sampler.d.ts.map +1 -0
  753. package/dist/features/performance/sampler.js +23 -0
  754. package/dist/features/performance/sampler.js.map +1 -0
  755. package/dist/features/performance/spa.d.ts +2 -0
  756. package/dist/features/performance/spa.d.ts.map +1 -0
  757. package/dist/features/performance/spa.js +40 -0
  758. package/dist/features/performance/spa.js.map +1 -0
  759. package/dist/features/performance/throttle.d.ts +21 -0
  760. package/dist/features/performance/throttle.d.ts.map +1 -0
  761. package/dist/features/performance/throttle.js +26 -0
  762. package/dist/features/performance/throttle.js.map +1 -0
  763. package/dist/features/performance/trace/context.d.ts +17 -0
  764. package/dist/features/performance/trace/context.d.ts.map +1 -0
  765. package/dist/features/performance/trace/context.js +33 -0
  766. package/dist/features/performance/trace/context.js.map +1 -0
  767. package/dist/features/performance/trace/index.d.ts +7 -0
  768. package/dist/features/performance/trace/index.d.ts.map +1 -0
  769. package/dist/features/performance/trace/index.js +6 -0
  770. package/dist/features/performance/trace/index.js.map +1 -0
  771. package/dist/features/performance/trace/pageload.d.ts +3 -0
  772. package/dist/features/performance/trace/pageload.d.ts.map +1 -0
  773. package/dist/features/performance/trace/pageload.js +34 -0
  774. package/dist/features/performance/trace/pageload.js.map +1 -0
  775. package/dist/features/performance/trace/transaction.d.ts +61 -0
  776. package/dist/features/performance/trace/transaction.d.ts.map +1 -0
  777. package/dist/features/performance/trace/transaction.js +90 -0
  778. package/dist/features/performance/trace/transaction.js.map +1 -0
  779. package/dist/features/performance/trace/types.d.ts +23 -0
  780. package/dist/features/performance/trace/types.d.ts.map +1 -0
  781. package/dist/features/performance/trace/types.js +10 -0
  782. package/dist/features/performance/trace/types.js.map +1 -0
  783. package/dist/features/performance/traces.d.ts +36 -0
  784. package/dist/features/performance/traces.d.ts.map +1 -0
  785. package/dist/features/performance/traces.js +50 -0
  786. package/dist/features/performance/traces.js.map +1 -0
  787. package/dist/features/profiler/ProfilerFeature.d.ts +28 -0
  788. package/dist/features/profiler/ProfilerFeature.d.ts.map +1 -0
  789. package/dist/features/profiler/ProfilerFeature.js +82 -0
  790. package/dist/features/profiler/ProfilerFeature.js.map +1 -0
  791. package/dist/features/profiler/capture.d.ts +8 -0
  792. package/dist/features/profiler/capture.d.ts.map +1 -0
  793. package/dist/features/profiler/capture.js +21 -0
  794. package/dist/features/profiler/capture.js.map +1 -0
  795. package/dist/features/push/PushFeature.d.ts +120 -0
  796. package/dist/features/push/PushFeature.d.ts.map +1 -0
  797. package/dist/features/push/PushFeature.js +319 -0
  798. package/dist/features/push/PushFeature.js.map +1 -0
  799. package/dist/features/push/diagnostics.d.ts +55 -0
  800. package/dist/features/push/diagnostics.d.ts.map +1 -0
  801. package/dist/features/push/diagnostics.js +383 -0
  802. package/dist/features/push/diagnostics.js.map +1 -0
  803. package/dist/features/push/pushState.d.ts +58 -0
  804. package/dist/features/push/pushState.d.ts.map +1 -0
  805. package/dist/features/push/pushState.js +75 -0
  806. package/dist/features/push/pushState.js.map +1 -0
  807. package/dist/features/push/softAsk.d.ts +68 -0
  808. package/dist/features/push/softAsk.d.ts.map +1 -0
  809. package/dist/features/push/softAsk.js +141 -0
  810. package/dist/features/push/softAsk.js.map +1 -0
  811. package/dist/features/replay/ReplayFeature.d.ts +32 -0
  812. package/dist/features/replay/ReplayFeature.d.ts.map +1 -0
  813. package/dist/features/replay/ReplayFeature.js +132 -0
  814. package/dist/features/replay/ReplayFeature.js.map +1 -0
  815. package/dist/features/replay/engine/canvas.d.ts +45 -0
  816. package/dist/features/replay/engine/canvas.d.ts.map +1 -0
  817. package/dist/features/replay/engine/canvas.js +122 -0
  818. package/dist/features/replay/engine/canvas.js.map +1 -0
  819. package/dist/features/replay/engine/crossOrigin.d.ts +23 -0
  820. package/dist/features/replay/engine/crossOrigin.d.ts.map +1 -0
  821. package/dist/features/replay/engine/crossOrigin.js +108 -0
  822. package/dist/features/replay/engine/crossOrigin.js.map +1 -0
  823. package/dist/features/replay/engine/cssom.d.ts +31 -0
  824. package/dist/features/replay/engine/cssom.d.ts.map +1 -0
  825. package/dist/features/replay/engine/cssom.js +128 -0
  826. package/dist/features/replay/engine/cssom.js.map +1 -0
  827. package/dist/features/replay/engine/iframe.d.ts +65 -0
  828. package/dist/features/replay/engine/iframe.d.ts.map +1 -0
  829. package/dist/features/replay/engine/iframe.js +186 -0
  830. package/dist/features/replay/engine/iframe.js.map +1 -0
  831. package/dist/features/replay/engine/interactions.d.ts +142 -0
  832. package/dist/features/replay/engine/interactions.d.ts.map +1 -0
  833. package/dist/features/replay/engine/interactions.js +371 -0
  834. package/dist/features/replay/engine/interactions.js.map +1 -0
  835. package/dist/features/replay/engine/mutations.d.ts +49 -0
  836. package/dist/features/replay/engine/mutations.d.ts.map +1 -0
  837. package/dist/features/replay/engine/mutations.js +261 -0
  838. package/dist/features/replay/engine/mutations.js.map +1 -0
  839. package/dist/features/replay/engine/nodeRegistry.d.ts +23 -0
  840. package/dist/features/replay/engine/nodeRegistry.d.ts.map +1 -0
  841. package/dist/features/replay/engine/nodeRegistry.js +51 -0
  842. package/dist/features/replay/engine/nodeRegistry.js.map +1 -0
  843. package/dist/features/replay/engine/player.d.ts +11 -0
  844. package/dist/features/replay/engine/player.d.ts.map +1 -0
  845. package/dist/features/replay/engine/player.js +284 -0
  846. package/dist/features/replay/engine/player.js.map +1 -0
  847. package/dist/features/replay/engine/rebuild.d.ts +8 -0
  848. package/dist/features/replay/engine/rebuild.d.ts.map +1 -0
  849. package/dist/features/replay/engine/rebuild.js +46 -0
  850. package/dist/features/replay/engine/rebuild.js.map +1 -0
  851. package/dist/features/replay/engine/replayWorker.d.ts +33 -0
  852. package/dist/features/replay/engine/replayWorker.d.ts.map +1 -0
  853. package/dist/features/replay/engine/replayWorker.js +175 -0
  854. package/dist/features/replay/engine/replayWorker.js.map +1 -0
  855. package/dist/features/replay/engine/resources.d.ts +52 -0
  856. package/dist/features/replay/engine/resources.d.ts.map +1 -0
  857. package/dist/features/replay/engine/resources.js +132 -0
  858. package/dist/features/replay/engine/resources.js.map +1 -0
  859. package/dist/features/replay/engine/snapshot.d.ts +103 -0
  860. package/dist/features/replay/engine/snapshot.d.ts.map +1 -0
  861. package/dist/features/replay/engine/snapshot.js +409 -0
  862. package/dist/features/replay/engine/snapshot.js.map +1 -0
  863. package/dist/features/replay/engine/traverse.d.ts +19 -0
  864. package/dist/features/replay/engine/traverse.d.ts.map +1 -0
  865. package/dist/features/replay/engine/traverse.js +39 -0
  866. package/dist/features/replay/engine/traverse.js.map +1 -0
  867. package/dist/features/replay/engine/types.d.ts +137 -0
  868. package/dist/features/replay/engine/types.d.ts.map +1 -0
  869. package/dist/features/replay/engine/types.js +6 -0
  870. package/dist/features/replay/engine/types.js.map +1 -0
  871. package/dist/features/replay/engine/webglPatch.d.ts +26 -0
  872. package/dist/features/replay/engine/webglPatch.d.ts.map +1 -0
  873. package/dist/features/replay/engine/webglPatch.js +83 -0
  874. package/dist/features/replay/engine/webglPatch.js.map +1 -0
  875. package/dist/features/replay/lifecycle/adaptive.d.ts +38 -0
  876. package/dist/features/replay/lifecycle/adaptive.d.ts.map +1 -0
  877. package/dist/features/replay/lifecycle/adaptive.js +90 -0
  878. package/dist/features/replay/lifecycle/adaptive.js.map +1 -0
  879. package/dist/features/replay/lifecycle/cadence.d.ts +20 -0
  880. package/dist/features/replay/lifecycle/cadence.d.ts.map +1 -0
  881. package/dist/features/replay/lifecycle/cadence.js +62 -0
  882. package/dist/features/replay/lifecycle/cadence.js.map +1 -0
  883. package/dist/features/replay/lifecycle/deviceSignals.d.ts +35 -0
  884. package/dist/features/replay/lifecycle/deviceSignals.d.ts.map +1 -0
  885. package/dist/features/replay/lifecycle/deviceSignals.js +61 -0
  886. package/dist/features/replay/lifecycle/deviceSignals.js.map +1 -0
  887. package/dist/features/replay/lifecycle/pii.d.ts +14 -0
  888. package/dist/features/replay/lifecycle/pii.d.ts.map +1 -0
  889. package/dist/features/replay/lifecycle/pii.js +52 -0
  890. package/dist/features/replay/lifecycle/pii.js.map +1 -0
  891. package/dist/features/replay/lifecycle/recorder.d.ts +129 -0
  892. package/dist/features/replay/lifecycle/recorder.d.ts.map +1 -0
  893. package/dist/features/replay/lifecycle/recorder.js +509 -0
  894. package/dist/features/replay/lifecycle/recorder.js.map +1 -0
  895. package/dist/features/replay/lifecycle/sampling.d.ts +28 -0
  896. package/dist/features/replay/lifecycle/sampling.d.ts.map +1 -0
  897. package/dist/features/replay/lifecycle/sampling.js +31 -0
  898. package/dist/features/replay/lifecycle/sampling.js.map +1 -0
  899. package/dist/features/replay/lifecycle/segmentBuffer.d.ts +75 -0
  900. package/dist/features/replay/lifecycle/segmentBuffer.d.ts.map +1 -0
  901. package/dist/features/replay/lifecycle/segmentBuffer.js +130 -0
  902. package/dist/features/replay/lifecycle/segmentBuffer.js.map +1 -0
  903. package/dist/features/replay/lifecycle/viewContext.d.ts +7 -0
  904. package/dist/features/replay/lifecycle/viewContext.d.ts.map +1 -0
  905. package/dist/features/replay/lifecycle/viewContext.js +51 -0
  906. package/dist/features/replay/lifecycle/viewContext.js.map +1 -0
  907. package/dist/features/scroll/index.d.ts +31 -0
  908. package/dist/features/scroll/index.d.ts.map +1 -0
  909. package/dist/features/scroll/index.js +102 -0
  910. package/dist/features/scroll/index.js.map +1 -0
  911. package/dist/features/session/sessionManager.d.ts +25 -0
  912. package/dist/features/session/sessionManager.d.ts.map +1 -0
  913. package/dist/features/session/sessionManager.js +36 -0
  914. package/dist/features/session/sessionManager.js.map +1 -0
  915. package/dist/features/session/sessionStore.d.ts +106 -0
  916. package/dist/features/session/sessionStore.d.ts.map +1 -0
  917. package/dist/features/session/sessionStore.js +265 -0
  918. package/dist/features/session/sessionStore.js.map +1 -0
  919. package/dist/features/watchdog/WatchdogFeature.d.ts +23 -0
  920. package/dist/features/watchdog/WatchdogFeature.d.ts.map +1 -0
  921. package/dist/features/watchdog/WatchdogFeature.js +29 -0
  922. package/dist/features/watchdog/WatchdogFeature.js.map +1 -0
  923. package/dist/features/watchdog/collectors.d.ts +18 -0
  924. package/dist/features/watchdog/collectors.d.ts.map +1 -0
  925. package/dist/features/watchdog/collectors.js +107 -0
  926. package/dist/features/watchdog/collectors.js.map +1 -0
  927. package/dist/features/watchdog/config.d.ts +51 -0
  928. package/dist/features/watchdog/config.d.ts.map +1 -0
  929. package/dist/features/watchdog/config.js +28 -0
  930. package/dist/features/watchdog/config.js.map +1 -0
  931. package/dist/features/watchdog/engine.d.ts +22 -0
  932. package/dist/features/watchdog/engine.d.ts.map +1 -0
  933. package/dist/features/watchdog/engine.js +123 -0
  934. package/dist/features/watchdog/engine.js.map +1 -0
  935. package/dist/features/watchdog/incidents.d.ts +79 -0
  936. package/dist/features/watchdog/incidents.d.ts.map +1 -0
  937. package/dist/features/watchdog/incidents.js +204 -0
  938. package/dist/features/watchdog/incidents.js.map +1 -0
  939. package/dist/features/watchdog/rollup.d.ts +41 -0
  940. package/dist/features/watchdog/rollup.d.ts.map +1 -0
  941. package/dist/features/watchdog/rollup.js +76 -0
  942. package/dist/features/watchdog/rollup.js.map +1 -0
  943. package/dist/features/webVitals/WebVitalsFeature.d.ts +46 -0
  944. package/dist/features/webVitals/WebVitalsFeature.d.ts.map +1 -0
  945. package/dist/features/webVitals/WebVitalsFeature.js +252 -0
  946. package/dist/features/webVitals/WebVitalsFeature.js.map +1 -0
  947. package/dist/features/webVitals/attribution.d.ts +50 -0
  948. package/dist/features/webVitals/attribution.d.ts.map +1 -0
  949. package/dist/features/webVitals/attribution.js +186 -0
  950. package/dist/features/webVitals/attribution.js.map +1 -0
  951. package/dist/features/webVitals/observe.d.ts +6 -0
  952. package/dist/features/webVitals/observe.d.ts.map +1 -0
  953. package/dist/features/webVitals/observe.js +6 -0
  954. package/dist/features/webVitals/observe.js.map +1 -0
  955. package/dist/features/webVitals/vitals.d.ts +99 -0
  956. package/dist/features/webVitals/vitals.d.ts.map +1 -0
  957. package/dist/features/webVitals/vitals.js +166 -0
  958. package/dist/features/webVitals/vitals.js.map +1 -0
  959. package/dist/features/webperf/WebPerfFeature.d.ts +19 -0
  960. package/dist/features/webperf/WebPerfFeature.d.ts.map +1 -0
  961. package/dist/features/webperf/WebPerfFeature.js +48 -0
  962. package/dist/features/webperf/WebPerfFeature.js.map +1 -0
  963. package/dist/features/webperf/collectors.d.ts +3 -0
  964. package/dist/features/webperf/collectors.d.ts.map +1 -0
  965. package/dist/features/webperf/collectors.js +118 -0
  966. package/dist/features/webperf/collectors.js.map +1 -0
  967. package/dist/features/webperf/math.d.ts +12 -0
  968. package/dist/features/webperf/math.d.ts.map +1 -0
  969. package/dist/features/webperf/math.js +26 -0
  970. package/dist/features/webperf/math.js.map +1 -0
  971. package/dist/inapp.d.ts +6 -0
  972. package/dist/inapp.d.ts.map +1 -0
  973. package/dist/inapp.js +6 -0
  974. package/dist/inapp.js.map +1 -0
  975. package/dist/index.d.ts +31 -0
  976. package/dist/index.d.ts.map +1 -0
  977. package/dist/index.js +12 -0
  978. package/dist/index.js.map +1 -0
  979. package/dist/integrations/index.d.ts +7 -0
  980. package/dist/integrations/index.d.ts.map +1 -0
  981. package/dist/integrations/index.js +2 -0
  982. package/dist/integrations/index.js.map +1 -0
  983. package/dist/pipeline/index.d.ts +3 -0
  984. package/dist/pipeline/index.d.ts.map +1 -0
  985. package/dist/pipeline/index.js +3 -0
  986. package/dist/pipeline/index.js.map +1 -0
  987. package/dist/pipeline/pipeline.d.ts +84 -0
  988. package/dist/pipeline/pipeline.d.ts.map +1 -0
  989. package/dist/pipeline/pipeline.js +284 -0
  990. package/dist/pipeline/pipeline.js.map +1 -0
  991. package/dist/public/ScaleBunFacade.d.ts +382 -0
  992. package/dist/public/ScaleBunFacade.d.ts.map +1 -0
  993. package/dist/public/ScaleBunFacade.js +787 -0
  994. package/dist/public/ScaleBunFacade.js.map +1 -0
  995. package/dist/public/index.d.ts +5 -0
  996. package/dist/public/index.d.ts.map +1 -0
  997. package/dist/public/index.js +4 -0
  998. package/dist/public/index.js.map +1 -0
  999. package/dist/public/typedTracker.d.ts +91 -0
  1000. package/dist/public/typedTracker.d.ts.map +1 -0
  1001. package/dist/public/typedTracker.js +60 -0
  1002. package/dist/public/typedTracker.js.map +1 -0
  1003. package/dist/scalebun-push-sw.js +236 -0
  1004. package/dist/scalebun.min.js +635 -0
  1005. package/dist/scalebun.min.js.map +7 -0
  1006. package/dist/storage/idb.d.ts +16 -0
  1007. package/dist/storage/idb.d.ts.map +1 -0
  1008. package/dist/storage/idb.js +76 -0
  1009. package/dist/storage/idb.js.map +1 -0
  1010. package/dist/storage/index.d.ts +3 -0
  1011. package/dist/storage/index.d.ts.map +1 -0
  1012. package/dist/storage/index.js +3 -0
  1013. package/dist/storage/index.js.map +1 -0
  1014. package/dist/transport/gzip.d.ts +2 -0
  1015. package/dist/transport/gzip.d.ts.map +1 -0
  1016. package/dist/transport/gzip.js +20 -0
  1017. package/dist/transport/gzip.js.map +1 -0
  1018. package/dist/transport/httpClient.d.ts +60 -0
  1019. package/dist/transport/httpClient.d.ts.map +1 -0
  1020. package/dist/transport/httpClient.js +154 -0
  1021. package/dist/transport/httpClient.js.map +1 -0
  1022. package/dist/transport/index.d.ts +3 -0
  1023. package/dist/transport/index.d.ts.map +1 -0
  1024. package/dist/transport/index.js +3 -0
  1025. package/dist/transport/index.js.map +1 -0
  1026. package/dist/transport/sign.d.ts +25 -0
  1027. package/dist/transport/sign.d.ts.map +1 -0
  1028. package/dist/transport/sign.js +58 -0
  1029. package/dist/transport/sign.js.map +1 -0
  1030. package/package.json +60 -0
@@ -0,0 +1,409 @@
1
+ /**
2
+ * takeSnapshot — serialize a DOM subtree (or whole document) into our compact SNode tree.
3
+ * Privacy-by-default: all text + input values masked at serialize time, so raw PII never leaves
4
+ * this function. CSSOM-first: <style> captures live cssRules (CSS-in-JS) and the document captures
5
+ * adoptedStyleSheets — the things rrweb drops from the initial snapshot.
6
+ */
7
+ import { adoptedSheetId } from './cssom';
8
+ export const NO_MASK_TEXT_PARENTS = new Set(['STYLE', 'SCRIPT']);
9
+ // Attributes whose values can carry PII → masked when maskAllInputs is on. `srcdoc` is inline iframe
10
+ // HTML (same-origin srcdoc is also captured via contentDocument, so masking it loses nothing).
11
+ export const SENSITIVE_ATTRS = new Set(['value', 'placeholder', 'alt', 'title', 'aria-label', 'srcdoc']);
12
+ const SVG_NS = 'http://www.w3.org/2000/svg';
13
+ const MATHML_NS = 'http://www.w3.org/1998/Math/MathML';
14
+ // Always masked, regardless of maskAllText: developer-tagged regions and user-editable rich text
15
+ // (contenteditable is the DOM analog of an input — treat its text like a typed value).
16
+ const ALWAYS_MASK_SEL = '[data-scalebun-mask],[contenteditable=""],[contenteditable="true"]';
17
+ /** Build + validate the combined mask selector. An invalid host selector must never throw during
18
+ * capture — fall back to the always-mask defaults. */
19
+ function buildMaskSel(userSelectors) {
20
+ const extra = (userSelectors ?? []).filter((s) => typeof s === 'string' && s.trim());
21
+ const sel = extra.length ? `${ALWAYS_MASK_SEL},${extra.join(',')}` : ALWAYS_MASK_SEL;
22
+ try {
23
+ if (typeof document !== 'undefined')
24
+ document.documentElement.matches(sel); // throws on invalid syntax
25
+ return sel;
26
+ }
27
+ catch {
28
+ return ALWAYS_MASK_SEL;
29
+ }
30
+ }
31
+ /** True when `el` (or an ancestor) matches the mask selector — used to mask a subtree even when
32
+ * maskAllText is off. Guarded: a malformed selector or detached node never throws. */
33
+ export function isMaskedSubtree(el, sel) {
34
+ if (!el || !sel)
35
+ return false;
36
+ try {
37
+ return !!el.closest(sel);
38
+ }
39
+ catch {
40
+ return false;
41
+ }
42
+ }
43
+ export function resolveSnapshotOpts(opts = {}) {
44
+ return {
45
+ maskAllText: opts.maskAllText ?? true,
46
+ maskAllInputs: opts.maskAllInputs ?? true,
47
+ maskSel: buildMaskSel(opts.maskSelectors),
48
+ cssBudget: { used: 0 },
49
+ };
50
+ }
51
+ export function takeSnapshot(root, reg, opts = {}) {
52
+ return serializeNode(root, reg, resolveSnapshotOpts(opts)) ?? { t: 'doc', id: reg.add(root), children: [] };
53
+ }
54
+ export function serializeNode(node, reg, o) {
55
+ switch (node.nodeType) {
56
+ case 9: {
57
+ // document
58
+ const id = reg.add(node);
59
+ const out = { t: 'doc', id, children: serializeChildren(node, reg, o) };
60
+ const adopted = serializeAdopted(node, node.baseURI);
61
+ if (adopted.length)
62
+ out.adoptedStyles = adopted;
63
+ return out;
64
+ }
65
+ case 10: {
66
+ const dt = node;
67
+ return { t: 'dt', id: reg.add(node), name: dt.name, publicId: dt.publicId, systemId: dt.systemId };
68
+ }
69
+ case 1: {
70
+ const el = node;
71
+ // A stylesheet <link> becomes an inline <style> holding its rules, in the
72
+ // same position so the cascade order is preserved. Without this the
73
+ // reconstruction has to re-fetch a URL that is often already gone.
74
+ if (isStylesheetLink(el))
75
+ return serializeStylesheetLink(el, reg, o, o.cssBudget);
76
+ const id = reg.add(node);
77
+ const tag = el.tagName.toLowerCase();
78
+ const ns = el.namespaceURI === SVG_NS ? 'svg' : el.namespaceURI === MATHML_NS ? 'math' : undefined;
79
+ const children = tag === 'style'
80
+ ? serializeStyleChildren(el, reg)
81
+ : // <template> content lives in `.content` (a DocumentFragment), not childNodes — capture it
82
+ // so templated/declarative-shadow markup isn't lost.
83
+ tag === 'template'
84
+ ? serializeChildren(el.content, reg, o)
85
+ : serializeChildren(el, reg, o);
86
+ const out = { t: 'el', id, tag, attrs: serializeAttrs(el, o), children };
87
+ if (ns)
88
+ out.ns = ns;
89
+ // Web components: descend into the OPEN shadow root (closed → shadowRoot is null → skipped).
90
+ const sr = el.shadowRoot;
91
+ if (sr)
92
+ out.shadow = serializeShadow(sr, reg, o);
93
+ return out;
94
+ }
95
+ case 3: {
96
+ const parentTag = node.parentNode?.nodeName ?? '';
97
+ const raw = node.data;
98
+ // Mask when maskAllText is on, OR (text shown) the parent is inside a masked subtree
99
+ // (contenteditable / [data-scalebun-mask] / host maskSelectors).
100
+ const mask = o.maskAllText || isMaskedSubtree(node.parentElement, o.maskSel);
101
+ const value = mask && !NO_MASK_TEXT_PARENTS.has(parentTag) ? maskText(raw) : raw;
102
+ return { t: 'tx', id: reg.add(node), value };
103
+ }
104
+ case 8:
105
+ return { t: 'cm', id: reg.add(node), value: node.data };
106
+ case 4: // CDATA → text
107
+ return { t: 'tx', id: reg.add(node), value: node.data };
108
+ default:
109
+ return null; // processing instructions etc.
110
+ }
111
+ }
112
+ function serializeChildren(node, reg, o) {
113
+ const out = [];
114
+ node.childNodes.forEach((child) => {
115
+ const s = serializeNode(child, reg, o);
116
+ if (s)
117
+ out.push(s);
118
+ });
119
+ return out;
120
+ }
121
+ /**
122
+ * Total inlined <link> CSS allowed per snapshot.
123
+ *
124
+ * Replay payloads are gzipped, but stylesheet text is the single biggest lever
125
+ * on snapshot size — a Tailwind/Bootstrap build can be hundreds of KB before
126
+ * compression. Past the cap we stop inlining and mark the remaining sheets
127
+ * unresolved rather than silently bloating every session.
128
+ */
129
+ export const MAX_INLINED_CSS_BYTES = 2 * 1024 * 1024;
130
+ /**
131
+ * Marks a <link rel=stylesheet> whose rules we could not read (cross-origin
132
+ * without CORS, or over the size cap). The dashboard reads this to tell the
133
+ * operator WHY a reconstruction looks unstyled instead of presenting a broken
134
+ * page as if it were the real one.
135
+ */
136
+ export const UNRESOLVED_SHEET_ATTR = 'data-scalebun-sheet-unresolved';
137
+ /** True for the <link> elements that actually contribute CSS to the page. */
138
+ function isStylesheetLink(el) {
139
+ if (el.tagName.toLowerCase() !== 'link')
140
+ return false;
141
+ const rel = (el.getAttribute('rel') ?? '').toLowerCase();
142
+ // `alternate stylesheet` is opt-in and not applied by default — leave it alone.
143
+ return rel.split(/\s+/).includes('stylesheet') && !rel.includes('alternate');
144
+ }
145
+ /**
146
+ * Read the CSS text of a same-origin (or CORS-enabled) linked stylesheet.
147
+ *
148
+ * Deliberately SYNCHRONOUS via the CSSOM rather than `fetch()`: takeSnapshot is
149
+ * sync, the rules are already parsed and in memory, and going over the network
150
+ * would add CSP surprises, latency, and a second copy of every asset. This is
151
+ * the same mechanism rrweb's `inlineStylesheet` uses.
152
+ *
153
+ * Returns null when the sheet is unreadable — cross-origin sheets throw on
154
+ * `.cssRules` access by design, and that is not an error worth reporting.
155
+ */
156
+ function readLinkedCss(link) {
157
+ try {
158
+ const rules = link.sheet?.cssRules;
159
+ if (!rules || rules.length === 0)
160
+ return null;
161
+ return Array.from(rules)
162
+ .map((r) => r.cssText)
163
+ .join('');
164
+ }
165
+ catch {
166
+ return null; // cross-origin without CORS — expected, not exceptional
167
+ }
168
+ }
169
+ /**
170
+ * Serialize a stylesheet <link> as an inline <style> holding its rules.
171
+ *
172
+ * WHY THIS EXISTS
173
+ * The serializer used to only ABSOLUTIZE a link's href and move on, so a
174
+ * reconstruction had to re-fetch that URL later, from a different page, to look
175
+ * like anything. Measured against a real capture, that meant: perfect DOM (309
176
+ * class attributes) and zero styling, because the hrefs pointed at Next.js
177
+ * content-hashed dev chunks (`_next/static/chunks/[root-of-the-server]__a968157c.css`)
178
+ * that stop existing on the next rebuild. Heatmap backdrops and replays both
179
+ * rendered as raw unstyled HTML.
180
+ *
181
+ * Emitting a <style> IN THE LINK'S POSITION preserves cascade order and needs no
182
+ * replayer change — <style> with a text child is already handled. `media` is
183
+ * carried across so a print-only sheet does not start applying to screen.
184
+ */
185
+ function serializeStylesheetLink(link, reg, o, budget) {
186
+ const id = reg.add(link);
187
+ const css = readLinkedCss(link);
188
+ if (css && budget.used + css.length <= MAX_INLINED_CSS_BYTES) {
189
+ budget.used += css.length;
190
+ const absolute = absolutizeCssUrls(css, link.ownerDocument.baseURI);
191
+ const textNode = link.ownerDocument.createTextNode('');
192
+ const attrs = {};
193
+ const media = link.getAttribute('media');
194
+ if (media)
195
+ attrs.media = media;
196
+ // Keep the origin href for debugging; it is inert on a <style>.
197
+ const href = link.getAttribute('href');
198
+ if (href)
199
+ attrs['data-scalebun-href'] = absUrl(href, link.ownerDocument.baseURI);
200
+ return { t: 'el', id, tag: 'style', attrs, children: [{ t: 'tx', id: reg.add(textNode), value: absolute }] };
201
+ }
202
+ // Unreadable or over budget: keep the <link> so a same-origin replay can still
203
+ // resolve it, and flag it so the dashboard can say so out loud.
204
+ const attrs = serializeAttrs(link, o);
205
+ attrs[UNRESOLVED_SHEET_ATTR] = css ? 'budget' : 'cors';
206
+ return { t: 'el', id, tag: 'link', attrs, children: [] };
207
+ }
208
+ /** <style>: prefer live cssRules (captures insertRule/CSS-in-JS); fall back to textContent. */
209
+ function serializeStyleChildren(style, reg) {
210
+ let css = '';
211
+ try {
212
+ const rules = style.sheet?.cssRules;
213
+ if (rules && rules.length)
214
+ css = Array.from(rules).map((r) => r.cssText).join('');
215
+ }
216
+ catch {
217
+ /* cross-origin sheet — not readable */
218
+ }
219
+ if (!css)
220
+ css = style.textContent ?? '';
221
+ if (!css)
222
+ return [];
223
+ css = absolutizeCssUrls(css, style.ownerDocument.baseURI); // relative url()/@import → absolute
224
+ const textNode = style.firstChild ?? style.ownerDocument.createTextNode('');
225
+ return [{ t: 'tx', id: reg.add(textNode), value: css }];
226
+ }
227
+ /**
228
+ * A password field. Its CHARACTERS are never captured on any lane (keyframe, mutation, input event),
229
+ * whatever `maskAllInputs` says — the value is replaced with same-length asterisks via `maskSecret`.
230
+ *
231
+ * It used to be blanked to '' outright. That read as an untouched field on replay: an empty value lets
232
+ * the page's own placeholder show through, so a login where the user typed (or the browser autofilled)
233
+ * a password was indistinguishable from one where they never reached the field. Length-only masking
234
+ * keeps that distinction while still shipping nothing about the content.
235
+ *
236
+ * Shared rather than re-tested inline per lane, because the lanes had drifted. The keyframe and
237
+ * input-event lanes handled passwords unconditionally, but the mutation lane only masked `value` when
238
+ * `maskAllInputs` was on — so with masking off, `el.setAttribute('value', …)` on a password input
239
+ * shipped the credential in plaintext. That is reachable from ordinary code: a React `defaultValue`
240
+ * re-render, a server-rendered form re-hydrating, or an extension/password-manager shim that writes
241
+ * the attribute rather than the property.
242
+ *
243
+ * Note the property/attribute split is why that was invisible: typing and browser autofill mutate the
244
+ * `value` PROPERTY, which MutationObserver cannot see, so the common paths never reached the buggy
245
+ * branch and the leak only opened for code that writes the attribute explicitly.
246
+ */
247
+ export function isPasswordField(el) {
248
+ const tag = el.tagName?.toLowerCase();
249
+ if (tag !== 'input' && tag !== 'textarea')
250
+ return false;
251
+ return (el.getAttribute?.('type') || '').toLowerCase() === 'password';
252
+ }
253
+ function serializeAttrs(el, o) {
254
+ const attrs = {};
255
+ for (const a of Array.from(el.attributes)) {
256
+ attrs[a.name] = o.maskAllInputs && SENSITIVE_ATTRS.has(a.name) ? maskText(a.value) : a.value;
257
+ }
258
+ const tag = el.tagName.toLowerCase();
259
+ // Input values. A password's CHARACTERS are never captured regardless of maskAllInputs — only its
260
+ // length, as asterisks. Other inputs are masked when maskAllInputs is on, else the real typed value
261
+ // (el.value) is captured. `el.value` is the live PROPERTY, which is what typing and browser autofill
262
+ // actually mutate; the `value` attribute usually still holds whatever the markup shipped with.
263
+ if (tag === 'input' || tag === 'textarea') {
264
+ const live = el.value ?? attrs.value ?? '';
265
+ if (isPasswordField(el))
266
+ attrs.value = maskSecret(live);
267
+ else
268
+ attrs.value = o.maskAllInputs ? maskText(live) : live;
269
+ }
270
+ // De-lazy: a `loading="lazy"` img/iframe may never enter the player's viewport, so it would never
271
+ // paint on replay. Capturing it eager (the URL is already in `src`/`srcset`) makes any player load it.
272
+ if (attrs.loading === 'lazy' && (tag === 'img' || tag === 'iframe'))
273
+ attrs.loading = 'eager';
274
+ // Absolutize resource URLs against the captured doc's base so a replay rendered from a DIFFERENT
275
+ // origin (e.g. the dashboard) still loads images, backgrounds, media, web fonts and SVG refs.
276
+ // Covers src / srcset / poster / inline style url(...) / <link> & SVG <use>/<image> href.
277
+ // Navigation hrefs (<a>, <base>) are deliberately left relative — they aren't fetched on replay.
278
+ const base = el.ownerDocument?.baseURI ?? '';
279
+ for (const name of RESOURCE_URL_ATTRS) {
280
+ const v = attrs[name];
281
+ if (v != null)
282
+ attrs[name] = absolutizeAttrValue(name, v, tag, base);
283
+ }
284
+ return attrs;
285
+ }
286
+ /** Serialize an OPEN shadow root — its subtree (masked via the same opts) + its own adopted sheets. */
287
+ export function serializeShadow(root, reg, o) {
288
+ const id = reg.add(root); // register the root so in-shadow deltas can target it as a parent
289
+ const shadow = { mode: 'open', id, children: serializeChildren(root, reg, o) };
290
+ const base = root.host?.ownerDocument?.baseURI ?? '';
291
+ const adopted = serializeAdopted(root, base);
292
+ if (adopted.length)
293
+ shadow.adoptedStyles = adopted;
294
+ return shadow;
295
+ }
296
+ function serializeAdopted(doc, base) {
297
+ try {
298
+ const sheets = doc.adoptedStyleSheets;
299
+ if (!sheets || !sheets.length)
300
+ return [];
301
+ const out = [];
302
+ for (const s of sheets) {
303
+ try {
304
+ const css = Array.from(s.cssRules)
305
+ .map((r) => r.cssText)
306
+ .join('');
307
+ if (css)
308
+ out.push({ id: adoptedSheetId(s), css: absolutizeCssUrls(css, base) });
309
+ }
310
+ catch {
311
+ /* cross-origin — skip */
312
+ }
313
+ }
314
+ return out;
315
+ }
316
+ catch {
317
+ return [];
318
+ }
319
+ }
320
+ /** Mask visible chars, preserve length + whitespace. Non-reversible. */
321
+ export function maskText(s) {
322
+ return s.replace(/\S/g, '*');
323
+ }
324
+ /**
325
+ * Mask a credential: EVERY character becomes '*', length preserved, nothing else.
326
+ *
327
+ * Deliberately stricter than `maskText`, which preserves whitespace so masked prose still reads as
328
+ * prose. On a password that would leak real structure — a passphrase would show its word boundaries
329
+ * and word lengths. Here only the total length survives.
330
+ *
331
+ * Length is survivable-by-design: it is what makes the replayed field render as dots instead of
332
+ * falling back to the page's placeholder, which is the difference between "the user typed a password"
333
+ * and "the field looks untouched". The characters never leave the page.
334
+ */
335
+ export function maskSecret(s) {
336
+ return '*'.repeat(s.length);
337
+ }
338
+ // Already-absolute / non-resolvable refs to leave alone: absolute or protocol-relative URLs, data:,
339
+ // blob:, about:, and intra-document fragments (e.g. SVG `url(#clip)`).
340
+ const SKIP_URL_RE = /^(?:[a-z][a-z0-9+.-]*:|\/\/|#)/i;
341
+ /** Resolve a possibly-relative resource ref against `base`; leave absolute/data/blob/fragment refs. */
342
+ export function absUrl(ref, base) {
343
+ const r = ref.trim();
344
+ if (!r || !base || SKIP_URL_RE.test(r))
345
+ return ref;
346
+ try {
347
+ return new URL(r, base).href;
348
+ }
349
+ catch {
350
+ return ref;
351
+ }
352
+ }
353
+ /** Rewrite relative `url(...)` + `@import "…"` refs in CSS to absolute, so a replay rendered from a
354
+ * DIFFERENT origin still resolves background images, web fonts, and imported sheets. */
355
+ export function absolutizeCssUrls(css, base) {
356
+ if (!css || !base)
357
+ return css;
358
+ let out = css.replace(/url\(\s*(['"]?)([^'")]*)\1\s*\)/gi, (_m, q, ref) => `url(${q}${absUrl(ref, base)}${q})`);
359
+ out = out.replace(/@import\s+(['"])([^'"]+)\1/gi, (_m, q, ref) => `@import ${q}${absUrl(ref, base)}${q}`);
360
+ return out;
361
+ }
362
+ /** URL-bearing attributes we absolutize so a cross-origin replay can still fetch the referenced asset. */
363
+ const RESOURCE_URL_ATTRS = ['src', 'srcset', 'poster', 'style', 'href', 'xlink:href', 'data'];
364
+ /**
365
+ * Absolutize one URL-bearing attribute value against `base`. Resource refs (images, media, posters,
366
+ * inline background-image url(...), web fonts, SVG <use>/<image>) → absolute; navigation refs
367
+ * (<a>/<base> href) are left untouched. Shared by the initial snapshot and the mutation delta path so
368
+ * assets added AFTER load resolve identically. `absUrl`/`absolutizeCssUrls` already skip
369
+ * absolute/data/blob/fragment refs, so this is safe to call unconditionally.
370
+ */
371
+ export function absolutizeAttrValue(name, value, tag, base) {
372
+ if (!value || !base)
373
+ return value;
374
+ switch (name) {
375
+ case 'src':
376
+ case 'poster':
377
+ return absUrl(value, base);
378
+ case 'srcset':
379
+ return absolutizeSrcset(value, base);
380
+ case 'style':
381
+ return absolutizeCssUrls(value, base); // inline style="background-image:url(...)" etc.
382
+ case 'href':
383
+ return tag === 'link' || tag === 'use' || tag === 'image' ? absUrl(value, base) : value;
384
+ case 'xlink:href':
385
+ return tag === 'use' || tag === 'image' ? absUrl(value, base) : value;
386
+ case 'data':
387
+ return tag === 'object' ? absUrl(value, base) : value; // <object data="…"> resource ref
388
+ default:
389
+ return value;
390
+ }
391
+ }
392
+ /** Absolutize every candidate URL in a srcset ("url 1x, url 2x" / "url 100w, …"). Left untouched when
393
+ * it contains a data: URI — embedded commas would break naive splitting, and data URIs are already
394
+ * self-contained. */
395
+ export function absolutizeSrcset(srcset, base) {
396
+ if (!srcset || !base || /data:/i.test(srcset))
397
+ return srcset;
398
+ return srcset
399
+ .split(',')
400
+ .map((part) => {
401
+ const seg = part.trim();
402
+ if (!seg)
403
+ return seg;
404
+ const sp = seg.search(/\s/); // URL is up to the first whitespace; the rest is the descriptor
405
+ return sp === -1 ? absUrl(seg, base) : absUrl(seg.slice(0, sp), base) + seg.slice(sp);
406
+ })
407
+ .join(', ');
408
+ }
409
+ //# sourceMappingURL=snapshot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snapshot.js","sourceRoot":"","sources":["../../../../src/features/replay/engine/snapshot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { NodeRegistry } from './nodeRegistry';
2
+ /**
3
+ * Unregister a node and its whole subtree (on removal — descendants' ids go stale).
4
+ *
5
+ * Recurses OPEN shadow roots: a host's shadow tree holds registered ids too, and `childNodes` does not
6
+ * cross the shadow boundary. Without this, removing a shadow host left every id inside its shadow tree
7
+ * in the registry — pinning the detached nodes for the life of the session (a real leak in long SPA
8
+ * sessions that mount/unmount web components).
9
+ */
10
+ export declare function unregisterSubtree(node: Node, reg: NodeRegistry): void;
11
+ /**
12
+ * Every OPEN shadow root inside `node`'s subtree (its own + nested). Used to release the per-root
13
+ * MutationObservers when a host is removed — otherwise the observer keeps running against a detached
14
+ * tree and the strong ShadowRoot key retains it.
15
+ */
16
+ export declare function collectShadowRoots(node: Node, out?: ShadowRoot[]): ShadowRoot[];
17
+ /** Mark a node + its subtree as already-handled (so nested adds aren't double-serialized). */
18
+ export declare function markSubtree(node: Node, set: Set<Node>): void;
19
+ //# sourceMappingURL=traverse.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverse.d.ts","sourceRoot":"","sources":["../../../../src/features/replay/engine/traverse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,GAAG,IAAI,CAKrE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,GAAE,UAAU,EAAO,GAAG,UAAU,EAAE,CAQnF;AAED,8FAA8F;AAC9F,wBAAgB,WAAW,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,IAAI,CAG5D"}
@@ -0,0 +1,39 @@
1
+ /** The open shadow root of a node, if any. Closed roots are invisible to us by design. */
2
+ function shadowOf(node) {
3
+ return node.shadowRoot ?? null;
4
+ }
5
+ /**
6
+ * Unregister a node and its whole subtree (on removal — descendants' ids go stale).
7
+ *
8
+ * Recurses OPEN shadow roots: a host's shadow tree holds registered ids too, and `childNodes` does not
9
+ * cross the shadow boundary. Without this, removing a shadow host left every id inside its shadow tree
10
+ * in the registry — pinning the detached nodes for the life of the session (a real leak in long SPA
11
+ * sessions that mount/unmount web components).
12
+ */
13
+ export function unregisterSubtree(node, reg) {
14
+ reg.remove(node);
15
+ const sr = shadowOf(node);
16
+ if (sr)
17
+ sr.childNodes.forEach((c) => unregisterSubtree(c, reg));
18
+ node.childNodes.forEach((c) => unregisterSubtree(c, reg));
19
+ }
20
+ /**
21
+ * Every OPEN shadow root inside `node`'s subtree (its own + nested). Used to release the per-root
22
+ * MutationObservers when a host is removed — otherwise the observer keeps running against a detached
23
+ * tree and the strong ShadowRoot key retains it.
24
+ */
25
+ export function collectShadowRoots(node, out = []) {
26
+ const sr = shadowOf(node);
27
+ if (sr) {
28
+ out.push(sr);
29
+ sr.childNodes.forEach((c) => collectShadowRoots(c, out));
30
+ }
31
+ node.childNodes.forEach((c) => collectShadowRoots(c, out));
32
+ return out;
33
+ }
34
+ /** Mark a node + its subtree as already-handled (so nested adds aren't double-serialized). */
35
+ export function markSubtree(node, set) {
36
+ set.add(node);
37
+ node.childNodes.forEach((c) => markSubtree(c, set));
38
+ }
39
+ //# sourceMappingURL=traverse.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../../../src/features/replay/engine/traverse.ts"],"names":[],"mappings":"AAEA,0FAA0F;AAC1F,SAAS,QAAQ,CAAC,IAAU;IAC1B,OAAQ,IAAgB,CAAC,UAAU,IAAI,IAAI,CAAC;AAC9C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAU,EAAE,GAAiB;IAC7D,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IACjB,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,EAAE;QAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAChE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAU,EAAE,MAAoB,EAAE;IACnE,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC1B,IAAI,EAAE,EAAE,CAAC;QACP,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACb,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IAC3D,OAAO,GAAG,CAAC;AACb,CAAC;AAED,8FAA8F;AAC9F,MAAM,UAAU,WAAW,CAAC,IAAU,EAAE,GAAc;IACpD,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACd,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,137 @@
1
+ /**
2
+ * Our own serialized-DOM node model. Compact discriminated union (short `t` tags + short keys) —
3
+ * size matters and we own both the recorder and the player, so the format is co-designed.
4
+ */
5
+ export type NodeId = number;
6
+ export type SNode = SDocument | SDocType | SElement | SText | SComment;
7
+ /** One captured constructable stylesheet: a stable `id` (so deltas can target it) + its rule text. */
8
+ export interface AdoptedSheet {
9
+ id: number;
10
+ css: string;
11
+ }
12
+ export interface SDocument {
13
+ t: 'doc';
14
+ id: NodeId;
15
+ children: SNode[];
16
+ /** Serialized `document.adoptedStyleSheets` (the rrweb #1567 gap — captured natively, with ids). */
17
+ adoptedStyles?: AdoptedSheet[];
18
+ }
19
+ export interface SDocType {
20
+ t: 'dt';
21
+ id: NodeId;
22
+ name: string;
23
+ publicId: string;
24
+ systemId: string;
25
+ }
26
+ export interface SElement {
27
+ t: 'el';
28
+ id: NodeId;
29
+ tag: string;
30
+ ns?: 'svg' | 'math';
31
+ attrs: Record<string, string>;
32
+ children: SNode[];
33
+ /**
34
+ * Open shadow root attached to this element (web components). Closed roots are inaccessible
35
+ * (`element.shadowRoot` is null) and are never captured. Light-DOM children stay in `children`, so
36
+ * the player rebuilds host + shadow + light DOM and the browser distributes `<slot>`s natively.
37
+ */
38
+ shadow?: SShadow;
39
+ }
40
+ /** An inlined external resource (currently web fonts). `css` is a rewritten `@font-face` block with
41
+ * its `src url()` swapped to a `data:` URL; the player appends it as a stylesheet so the font renders
42
+ * even when the original is cross-origin/non-CORS/offline. Hash-addressed → emitted once, deduped. */
43
+ export interface SResource {
44
+ hash: string;
45
+ kind: 'font';
46
+ css: string;
47
+ }
48
+ /** A captured open shadow root: its own registry id (so deltas can target it as a parent), its
49
+ * subtree, and its own adoptedStyleSheets. */
50
+ export interface SShadow {
51
+ mode: 'open';
52
+ id: NodeId;
53
+ children: SNode[];
54
+ adoptedStyles?: AdoptedSheet[];
55
+ }
56
+ export interface SText {
57
+ t: 'tx';
58
+ id: NodeId;
59
+ value: string;
60
+ }
61
+ export interface SComment {
62
+ t: 'cm';
63
+ id: NodeId;
64
+ value: string;
65
+ }
66
+ export interface SnapshotOptions {
67
+ /** Mask all text nodes (except <style>/<script>). Default true. */
68
+ maskAllText?: boolean;
69
+ /** Mask input/textarea values + sensitive attributes; block password fields. Default true. */
70
+ maskAllInputs?: boolean;
71
+ /** Extra CSS selectors whose subtree text is masked even when maskAllText is off. `contenteditable`
72
+ * + `[data-scalebun-mask]` are always masked in addition to these. Invalid selectors are ignored. */
73
+ maskSelectors?: string[];
74
+ }
75
+ /**
76
+ * A stylesheet a CSSOM delta targets: an owned sheet via its `<style>`/`<link>` node id, or a
77
+ * constructable (adopted) sheet via its synthetic `adopted` id (see `cssom.ts`).
78
+ */
79
+ export type SheetRef = {
80
+ node: NodeId;
81
+ } | {
82
+ adopted: number;
83
+ };
84
+ /** Incremental delta ops (a `frame` delta is a `Mutation[]`). Each references registry ids. */
85
+ export type Mutation = {
86
+ op: 'add';
87
+ parent: NodeId;
88
+ next: NodeId | null;
89
+ node: SNode;
90
+ } | {
91
+ op: 'remove';
92
+ parent: NodeId;
93
+ id: NodeId;
94
+ } | {
95
+ op: 'attr';
96
+ id: NodeId;
97
+ key: string;
98
+ value: string | null;
99
+ } | {
100
+ op: 'text';
101
+ id: NodeId;
102
+ value: string;
103
+ } | {
104
+ op: 'sheet';
105
+ sheet: SheetRef;
106
+ action: 'insert';
107
+ rule: string;
108
+ index: number;
109
+ } | {
110
+ op: 'sheet';
111
+ sheet: SheetRef;
112
+ action: 'delete';
113
+ index: number;
114
+ } | {
115
+ op: 'sheet';
116
+ sheet: SheetRef;
117
+ action: 'replace';
118
+ rules: string[];
119
+ } | {
120
+ op: 'canvas';
121
+ id: NodeId;
122
+ data: string;
123
+ w: number;
124
+ h: number;
125
+ } | {
126
+ op: 'iframe';
127
+ id: NodeId;
128
+ doc: SNode;
129
+ } | {
130
+ op: 'shadow';
131
+ host: NodeId;
132
+ shadow: SShadow;
133
+ } | {
134
+ op: 'resource';
135
+ resources: SResource[];
136
+ };
137
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/features/replay/engine/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Our own serialized-DOM node model. Compact discriminated union (short `t` tags + short keys) —
3
+ * size matters and we own both the recorder and the player, so the format is co-designed.
4
+ */
5
+ export {};
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/features/replay/engine/types.ts"],"names":[],"mappings":"AAAA;;;GAGG"}