@appsurify-testmap/rrweb-all 3.1.1-alpha.3 → 3.3.0-alpha.1

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.
@@ -15470,6 +15470,30 @@ class MutationBuffer {
15470
15470
  this.shadowDomManager.reset();
15471
15471
  this.canvasManager.reset();
15472
15472
  }
15473
+ /**
15474
+ * Clear all accumulated mutation data without emitting.
15475
+ * Used after freeze+debounce checkout — FullSnapshot already captured the state.
15476
+ */
15477
+ resetBuffers() {
15478
+ this.addedSet = /* @__PURE__ */ new Set();
15479
+ this.movedSet = /* @__PURE__ */ new Set();
15480
+ this.droppedSet = /* @__PURE__ */ new Set();
15481
+ this.removesSubTreeCache = /* @__PURE__ */ new Set();
15482
+ this.mapRemoves = [];
15483
+ this.movedMap = {};
15484
+ this.attributes = [];
15485
+ this.texts = [];
15486
+ this.attributeMap = /* @__PURE__ */ new WeakMap();
15487
+ this.removes = [];
15488
+ }
15489
+ /**
15490
+ * Clear frozen flag without triggering emit.
15491
+ * Used after freeze+debounce checkout — buffers already cleared by resetBuffers().
15492
+ */
15493
+ unsetFrozen() {
15494
+ this.frozen = false;
15495
+ this.canvasManager.unfreeze();
15496
+ }
15473
15497
  }
15474
15498
  function deepDelete(addsSet, n2) {
15475
15499
  addsSet.delete(n2);
@@ -15835,6 +15859,30 @@ function initNavigationObserver({
15835
15859
  handlers.push(restoreReplaceState);
15836
15860
  handlers.push(on("popstate", () => emitNavigation("popstate"), win));
15837
15861
  handlers.push(on("hashchange", () => emitNavigation("hashchange"), win));
15862
+ const useNavigationAPI = typeof sampling.navigation === "object" ? sampling.navigation.useNavigationAPI ?? true : true;
15863
+ if (useNavigationAPI && "navigation" in win) {
15864
+ try {
15865
+ const nav = win.navigation;
15866
+ const handler = (event) => {
15867
+ var _a2;
15868
+ const navEvent = event;
15869
+ if (navEvent.navigationType === "push" || navEvent.navigationType === "replace") {
15870
+ const destUrl = (_a2 = navEvent.destination) == null ? void 0 : _a2.url;
15871
+ if (destUrl && destUrl !== lastHref) {
15872
+ navigationCb({
15873
+ href: destUrl,
15874
+ oldHref: lastHref,
15875
+ navigationType: "navigate"
15876
+ });
15877
+ lastHref = destUrl;
15878
+ }
15879
+ }
15880
+ };
15881
+ nav.addEventListener("navigate", handler);
15882
+ handlers.push(() => nav.removeEventListener("navigate", handler));
15883
+ } catch {
15884
+ }
15885
+ }
15838
15886
  return callbackWrapper(() => {
15839
15887
  handlers.forEach((h) => h());
15840
15888
  });
@@ -17880,10 +17928,13 @@ class VisibilityManager {
17880
17928
  }
17881
17929
  flushBuffer() {
17882
17930
  var _a2;
17931
+ if (this.frozen || this.locked) return;
17883
17932
  if (this.buffer.size === 0) return;
17884
- (_a2 = this.notifyActivity) == null ? void 0 : _a2.call(this, this.buffer.size);
17885
- this.mutationCb({ mutations: Array.from(this.buffer.values()) });
17933
+ const mutations = Array.from(this.buffer.values());
17934
+ const count = mutations.length;
17886
17935
  this.buffer.clear();
17936
+ this.mutationCb({ mutations });
17937
+ (_a2 = this.notifyActivity) == null ? void 0 : _a2.call(this, count);
17887
17938
  }
17888
17939
  observe(el) {
17889
17940
  if (this.disabled) return;
@@ -17897,6 +17948,10 @@ class VisibilityManager {
17897
17948
  }
17898
17949
  freeze() {
17899
17950
  this.frozen = true;
17951
+ if (this.debounceTimer) {
17952
+ clearTimeout(this.debounceTimer);
17953
+ this.debounceTimer = null;
17954
+ }
17900
17955
  }
17901
17956
  unfreeze() {
17902
17957
  this.frozen = false;
@@ -17904,9 +17959,33 @@ class VisibilityManager {
17904
17959
  }
17905
17960
  lock() {
17906
17961
  this.locked = true;
17962
+ if (this.debounceTimer) {
17963
+ clearTimeout(this.debounceTimer);
17964
+ this.debounceTimer = null;
17965
+ }
17907
17966
  }
17908
17967
  unlock() {
17909
17968
  this.locked = false;
17969
+ this.buffer.clear();
17970
+ if (this.debounceTimer) {
17971
+ clearTimeout(this.debounceTimer);
17972
+ this.debounceTimer = null;
17973
+ }
17974
+ if (!this.disabled && this.elements.size > 0) {
17975
+ this.previousState = computeVisibility(this.elements, /* @__PURE__ */ new Map(), {
17976
+ root: this.root,
17977
+ threshold: this.threshold,
17978
+ sensitivity: this.sensitivity,
17979
+ rootMargin: this.rootMargin
17980
+ });
17981
+ }
17982
+ }
17983
+ /**
17984
+ * Clear frozen flag without triggering flush.
17985
+ * Used after freeze+debounce checkout — buffer already cleared by unlock().
17986
+ */
17987
+ unsetFrozen() {
17988
+ this.frozen = false;
17910
17989
  }
17911
17990
  reset() {
17912
17991
  this.elements.clear();
@@ -17922,6 +18001,164 @@ class VisibilityManager {
17922
18001
  }
17923
18002
  }
17924
18003
  }
18004
+ const DEFAULT_SETTLE_TIMEOUT = 150;
18005
+ const DEFAULT_MAX_WAIT = 5e3;
18006
+ const DEFAULT_DEBOUNCE = 100;
18007
+ class NavigationManager {
18008
+ constructor(options) {
18009
+ __publicField(this, "frozen", false);
18010
+ __publicField(this, "locked", false);
18011
+ __publicField(this, "disabled", false);
18012
+ __publicField(this, "settleTimeout");
18013
+ __publicField(this, "maxWait");
18014
+ __publicField(this, "debounceMs");
18015
+ __publicField(this, "settlingObserver", null);
18016
+ __publicField(this, "debounceTimer", null);
18017
+ __publicField(this, "settleCheckTimer", null);
18018
+ __publicField(this, "maxWaitTimer", null);
18019
+ __publicField(this, "lastMutationTime", 0);
18020
+ __publicField(this, "pendingNavigation", null);
18021
+ __publicField(this, "doc");
18022
+ __publicField(this, "onSnapshot");
18023
+ const { doc, config, onSnapshot } = options;
18024
+ this.doc = doc;
18025
+ this.onSnapshot = callbackWrapper(onSnapshot);
18026
+ this.settleTimeout = config.settleTimeout ?? DEFAULT_SETTLE_TIMEOUT;
18027
+ this.maxWait = config.maxWait ?? DEFAULT_MAX_WAIT;
18028
+ this.debounceMs = config.debounce ?? DEFAULT_DEBOUNCE;
18029
+ }
18030
+ handleNavigation(data) {
18031
+ if (this.disabled) return;
18032
+ if (this.locked) return;
18033
+ this.cancelTimers();
18034
+ this.disconnectSettlingObserver();
18035
+ this.pendingNavigation = data;
18036
+ if (this.frozen) {
18037
+ return;
18038
+ }
18039
+ this.startDebounce();
18040
+ }
18041
+ cancelPending() {
18042
+ this.cancelTimers();
18043
+ this.disconnectSettlingObserver();
18044
+ this.pendingNavigation = null;
18045
+ }
18046
+ freeze() {
18047
+ this.frozen = true;
18048
+ this.cancelTimers();
18049
+ this.disconnectSettlingObserver();
18050
+ }
18051
+ unfreeze() {
18052
+ this.frozen = false;
18053
+ if (this.pendingNavigation && !this.locked && !this.disabled) {
18054
+ this.startDebounce();
18055
+ }
18056
+ }
18057
+ lock() {
18058
+ this.locked = true;
18059
+ this.cancelTimers();
18060
+ this.disconnectSettlingObserver();
18061
+ }
18062
+ unlock() {
18063
+ this.locked = false;
18064
+ this.pendingNavigation = null;
18065
+ }
18066
+ unsetFrozen() {
18067
+ this.frozen = false;
18068
+ }
18069
+ reset() {
18070
+ this.cancelTimers();
18071
+ this.disconnectSettlingObserver();
18072
+ this.pendingNavigation = null;
18073
+ this.frozen = false;
18074
+ this.locked = false;
18075
+ }
18076
+ destroy() {
18077
+ this.reset();
18078
+ this.disabled = true;
18079
+ }
18080
+ startDebounce() {
18081
+ this.debounceTimer = setTimeout(() => {
18082
+ this.debounceTimer = null;
18083
+ this.startDOMSettling();
18084
+ }, this.debounceMs);
18085
+ }
18086
+ startDOMSettling() {
18087
+ if (this.frozen || this.locked || this.disabled) return;
18088
+ this.lastMutationTime = performance.now();
18089
+ const ObserverCtor = mutationObserverCtor();
18090
+ this.settlingObserver = new ObserverCtor(() => {
18091
+ this.lastMutationTime = performance.now();
18092
+ if (this.settleCheckTimer !== null) {
18093
+ clearTimeout(this.settleCheckTimer);
18094
+ }
18095
+ this.settleCheckTimer = setTimeout(
18096
+ () => this.checkSettled(),
18097
+ this.settleTimeout
18098
+ );
18099
+ });
18100
+ this.settlingObserver.observe(this.doc, {
18101
+ childList: true,
18102
+ subtree: true,
18103
+ attributes: true,
18104
+ characterData: true
18105
+ });
18106
+ this.settleCheckTimer = setTimeout(
18107
+ () => this.checkSettled(),
18108
+ this.settleTimeout
18109
+ );
18110
+ this.maxWaitTimer = setTimeout(() => {
18111
+ this.maxWaitTimer = null;
18112
+ this.completeSettling();
18113
+ }, this.maxWait);
18114
+ }
18115
+ checkSettled() {
18116
+ this.settleCheckTimer = null;
18117
+ const elapsed = performance.now() - this.lastMutationTime;
18118
+ if (elapsed >= this.settleTimeout) {
18119
+ this.completeSettling();
18120
+ } else {
18121
+ this.settleCheckTimer = setTimeout(
18122
+ () => this.checkSettled(),
18123
+ this.settleTimeout - elapsed
18124
+ );
18125
+ }
18126
+ }
18127
+ completeSettling() {
18128
+ if (this.frozen || this.locked || this.disabled) return;
18129
+ if (!this.pendingNavigation) return;
18130
+ this.cancelTimers();
18131
+ this.disconnectSettlingObserver();
18132
+ this.pendingNavigation = null;
18133
+ requestAnimationFrame(() => {
18134
+ requestAnimationFrame(() => {
18135
+ if (!this.frozen && !this.locked && !this.disabled) {
18136
+ this.onSnapshot(true);
18137
+ }
18138
+ });
18139
+ });
18140
+ }
18141
+ cancelTimers() {
18142
+ if (this.debounceTimer !== null) {
18143
+ clearTimeout(this.debounceTimer);
18144
+ this.debounceTimer = null;
18145
+ }
18146
+ if (this.settleCheckTimer !== null) {
18147
+ clearTimeout(this.settleCheckTimer);
18148
+ this.settleCheckTimer = null;
18149
+ }
18150
+ if (this.maxWaitTimer !== null) {
18151
+ clearTimeout(this.maxWaitTimer);
18152
+ this.maxWaitTimer = null;
18153
+ }
18154
+ }
18155
+ disconnectSettlingObserver() {
18156
+ if (this.settlingObserver) {
18157
+ this.settlingObserver.disconnect();
18158
+ this.settlingObserver = null;
18159
+ }
18160
+ }
18161
+ }
17925
18162
  class StylesheetManager {
17926
18163
  constructor(options) {
17927
18164
  __publicField(this, "trackedLinkElements", /* @__PURE__ */ new WeakSet());
@@ -18005,43 +18242,13 @@ class ProcessedNodeManager {
18005
18242
  destroy() {
18006
18243
  }
18007
18244
  }
18008
- const version$1 = "3.1.1-alpha.3";
18245
+ const version$1 = "3.3.0-alpha.1";
18009
18246
  let wrappedEmit;
18010
18247
  let takeFullSnapshot$1;
18011
18248
  let canvasManager;
18012
18249
  let recording = false;
18013
18250
  const customEventQueue = [];
18014
18251
  let flushCustomEventQueue$1;
18015
- function waitForDOMStabilization(win) {
18016
- const maxWaitMs = 5e3;
18017
- return new Promise((resolve2) => {
18018
- const captureAfterPaint = () => {
18019
- requestAnimationFrame(() => {
18020
- requestAnimationFrame(() => {
18021
- resolve2();
18022
- });
18023
- });
18024
- };
18025
- const safeResolve = /* @__PURE__ */ (() => {
18026
- let called = false;
18027
- return () => {
18028
- if (!called) {
18029
- called = true;
18030
- captureAfterPaint();
18031
- }
18032
- };
18033
- })();
18034
- if (["interactive", "complete"].includes(win.document.readyState)) {
18035
- safeResolve();
18036
- } else {
18037
- win.addEventListener("DOMContentLoaded", safeResolve, { once: true });
18038
- win.addEventListener("load", safeResolve, { once: true });
18039
- setTimeout(() => {
18040
- safeResolve();
18041
- }, maxWaitMs);
18042
- }
18043
- });
18044
- }
18045
18252
  try {
18046
18253
  if (Array.from([1], (x2) => x2 * 2)[0] !== 2) {
18047
18254
  const cleanFrame = document.createElement("iframe");
@@ -18059,6 +18266,7 @@ function record(options = {}) {
18059
18266
  checkoutEveryNms,
18060
18267
  checkoutEveryNth,
18061
18268
  checkoutEveryNvm,
18269
+ checkoutDebounce,
18062
18270
  blockClass = "rr-block",
18063
18271
  blockSelector = null,
18064
18272
  ignoreClass = "rr-ignore",
@@ -18153,6 +18361,10 @@ function record(options = {}) {
18153
18361
  let lastFullSnapshotEvent;
18154
18362
  let incrementalSnapshotCount = 0;
18155
18363
  let visibilityMutationCount = 0;
18364
+ let checkoutId = 0;
18365
+ let checkoutPending = false;
18366
+ let checkoutDebounceTimer = null;
18367
+ let checkoutFreezeTimestamp = null;
18156
18368
  const eventProcessor = (e2) => {
18157
18369
  for (const plugin3 of plugins || []) {
18158
18370
  if (plugin3.eventProcessor) {
@@ -18165,13 +18377,32 @@ function record(options = {}) {
18165
18377
  }
18166
18378
  return e2;
18167
18379
  };
18380
+ const executeCheckout = () => {
18381
+ checkoutDebounceTimer = null;
18382
+ checkoutPending = false;
18383
+ checkoutFreezeTimestamp = null;
18384
+ navigationManager == null ? void 0 : navigationManager.cancelPending();
18385
+ takeFullSnapshot$1(true);
18386
+ mutationBuffers.forEach((buf) => {
18387
+ buf.resetBuffers();
18388
+ buf.unsetFrozen();
18389
+ });
18390
+ if (visibilityManager) {
18391
+ visibilityManager.unsetFrozen();
18392
+ }
18393
+ if (navigationManager) {
18394
+ navigationManager.unsetFrozen();
18395
+ }
18396
+ };
18168
18397
  wrappedEmit = (r2, isCheckout) => {
18169
18398
  var _a2;
18170
18399
  const e2 = r2;
18171
18400
  e2.timestamp = nowTimestamp();
18172
- if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {
18401
+ e2.checkoutId = checkoutId;
18402
+ if (((_a2 = mutationBuffers[0]) == null ? void 0 : _a2.isFrozen()) && !checkoutPending && e2.type !== EventType.FullSnapshot && !(e2.type === EventType.IncrementalSnapshot && e2.data.source === IncrementalSource.Mutation)) {
18173
18403
  mutationBuffers.forEach((buf) => buf.unfreeze());
18174
18404
  visibilityManager == null ? void 0 : visibilityManager.unfreeze();
18405
+ navigationManager == null ? void 0 : navigationManager.unfreeze();
18175
18406
  }
18176
18407
  if (inEmittingFrame) {
18177
18408
  emit == null ? void 0 : emit(eventProcessor(e2), isCheckout);
@@ -18196,7 +18427,29 @@ function record(options = {}) {
18196
18427
  const exceedCount = checkoutEveryNth && incrementalSnapshotCount >= checkoutEveryNth;
18197
18428
  const exceedTime = checkoutEveryNms && e2.timestamp - lastFullSnapshotEvent.timestamp > checkoutEveryNms;
18198
18429
  if (exceedCount || exceedTime) {
18199
- takeFullSnapshot$1(true);
18430
+ if (checkoutDebounce) {
18431
+ if (!checkoutPending) {
18432
+ checkoutPending = true;
18433
+ checkoutFreezeTimestamp = nowTimestamp();
18434
+ mutationBuffers.forEach((buf) => buf.freeze());
18435
+ visibilityManager == null ? void 0 : visibilityManager.freeze();
18436
+ }
18437
+ if (checkoutDebounceTimer) {
18438
+ clearTimeout(checkoutDebounceTimer);
18439
+ }
18440
+ const frozenDuration = nowTimestamp() - checkoutFreezeTimestamp;
18441
+ const maxFreeze = checkoutDebounce * 3;
18442
+ if (frozenDuration >= maxFreeze) {
18443
+ executeCheckout();
18444
+ } else {
18445
+ checkoutDebounceTimer = setTimeout(
18446
+ () => executeCheckout(),
18447
+ checkoutDebounce
18448
+ );
18449
+ }
18450
+ } else {
18451
+ takeFullSnapshot$1(true);
18452
+ }
18200
18453
  }
18201
18454
  }
18202
18455
  }
@@ -18311,8 +18564,30 @@ function record(options = {}) {
18311
18564
  notifyActivity: checkoutEveryNvm != null ? (count) => {
18312
18565
  visibilityMutationCount += count;
18313
18566
  if (visibilityMutationCount >= checkoutEveryNvm) {
18314
- takeFullSnapshot$1(true);
18315
18567
  visibilityMutationCount = 0;
18568
+ if (checkoutDebounce) {
18569
+ if (!checkoutPending) {
18570
+ checkoutPending = true;
18571
+ checkoutFreezeTimestamp = nowTimestamp();
18572
+ mutationBuffers.forEach((buf) => buf.freeze());
18573
+ visibilityManager == null ? void 0 : visibilityManager.freeze();
18574
+ }
18575
+ if (checkoutDebounceTimer) {
18576
+ clearTimeout(checkoutDebounceTimer);
18577
+ }
18578
+ const frozenDuration = nowTimestamp() - checkoutFreezeTimestamp;
18579
+ const maxFreeze = checkoutDebounce * 3;
18580
+ if (frozenDuration >= maxFreeze) {
18581
+ executeCheckout();
18582
+ } else {
18583
+ checkoutDebounceTimer = setTimeout(
18584
+ () => executeCheckout(),
18585
+ checkoutDebounce
18586
+ );
18587
+ }
18588
+ } else {
18589
+ takeFullSnapshot$1(true);
18590
+ }
18316
18591
  }
18317
18592
  } : void 0
18318
18593
  });
@@ -18321,6 +18596,7 @@ function record(options = {}) {
18321
18596
  if (!recordDOM) {
18322
18597
  return;
18323
18598
  }
18599
+ checkoutId++;
18324
18600
  wrappedEmit(
18325
18601
  {
18326
18602
  type: EventType.Meta,
@@ -18336,6 +18612,7 @@ function record(options = {}) {
18336
18612
  shadowDomManager.init();
18337
18613
  mutationBuffers.forEach((buf) => buf.lock());
18338
18614
  visibilityManager == null ? void 0 : visibilityManager.lock();
18615
+ navigationManager == null ? void 0 : navigationManager.lock();
18339
18616
  const node2 = snapshot(document, {
18340
18617
  mirror,
18341
18618
  blockClass,
@@ -18387,6 +18664,7 @@ function record(options = {}) {
18387
18664
  );
18388
18665
  mutationBuffers.forEach((buf) => buf.unlock());
18389
18666
  visibilityManager == null ? void 0 : visibilityManager.unlock();
18667
+ navigationManager == null ? void 0 : navigationManager.unlock();
18390
18668
  if (document.adoptedStyleSheets && document.adoptedStyleSheets.length > 0)
18391
18669
  stylesheetManager.adoptStyleSheets(
18392
18670
  document.adoptedStyleSheets,
@@ -18399,6 +18677,31 @@ function record(options = {}) {
18399
18677
  }
18400
18678
  customEventQueue.length = 0;
18401
18679
  };
18680
+ let navigationManager;
18681
+ const navigationSampling = sampling.navigation;
18682
+ if (navigationSampling !== false) {
18683
+ const navConfig = typeof navigationSampling === "object" ? navigationSampling : {};
18684
+ navigationManager = new NavigationManager({
18685
+ doc: document,
18686
+ config: navConfig,
18687
+ onSnapshot: (isCheckout) => {
18688
+ if (checkoutPending) {
18689
+ if (checkoutDebounceTimer) {
18690
+ clearTimeout(checkoutDebounceTimer);
18691
+ checkoutDebounceTimer = null;
18692
+ }
18693
+ checkoutPending = false;
18694
+ checkoutFreezeTimestamp = null;
18695
+ mutationBuffers.forEach((buf) => {
18696
+ buf.resetBuffers();
18697
+ buf.unsetFrozen();
18698
+ });
18699
+ visibilityManager == null ? void 0 : visibilityManager.unsetFrozen();
18700
+ }
18701
+ takeFullSnapshot$1(isCheckout);
18702
+ }
18703
+ });
18704
+ }
18402
18705
  try {
18403
18706
  const handlers = [];
18404
18707
  const observe = (doc) => {
@@ -18429,14 +18732,11 @@ function record(options = {}) {
18429
18732
  }
18430
18733
  }),
18431
18734
  navigationCb: (navData) => {
18432
- console.debug(
18433
- `[${nowTimestamp()}] [rrweb:record/navigation] 🧭 Navigation detected:`,
18434
- navData.navigationType,
18435
- navData.oldHref,
18436
- "→",
18437
- navData.href
18438
- );
18439
- takeFullSnapshot$1(true);
18735
+ if (navigationManager) {
18736
+ navigationManager.handleNavigation(navData);
18737
+ } else {
18738
+ takeFullSnapshot$1(true);
18739
+ }
18440
18740
  },
18441
18741
  inputCb: (v2) => wrappedEmit({
18442
18742
  type: EventType.IncrementalSnapshot,
@@ -18555,23 +18855,6 @@ function record(options = {}) {
18555
18855
  flushCustomEventQueue$1();
18556
18856
  }
18557
18857
  };
18558
- const runInit = async () => {
18559
- if (flushCustomEvent === "before") {
18560
- flushCustomEventQueue$1();
18561
- }
18562
- if (recordAfter === "DOMContentStabilized") {
18563
- console.debug(`[${nowTimestamp()}] [rrweb:record] 🟢 Waiting for DOM stabilization...`);
18564
- await waitForDOMStabilization(window);
18565
- console.debug(`[${nowTimestamp()}] [rrweb:record] ✅ DOM stabilized, starting recording`);
18566
- }
18567
- console.debug(`[${nowTimestamp()}] [rrweb:record] ✅ Init dom and takeFullSnapshot `);
18568
- takeFullSnapshot$1();
18569
- handlers.push(observe(document));
18570
- recording = true;
18571
- if (flushCustomEvent === "after") {
18572
- flushCustomEventQueue$1();
18573
- }
18574
- };
18575
18858
  if (document.readyState === "interactive" || document.readyState === "complete") {
18576
18859
  init();
18577
18860
  } else {
@@ -18599,8 +18882,13 @@ function record(options = {}) {
18599
18882
  );
18600
18883
  }
18601
18884
  return () => {
18885
+ if (checkoutDebounceTimer) {
18886
+ clearTimeout(checkoutDebounceTimer);
18887
+ checkoutDebounceTimer = null;
18888
+ }
18602
18889
  flushCustomEventQueue$1();
18603
18890
  handlers.forEach((h) => h());
18891
+ navigationManager == null ? void 0 : navigationManager.destroy();
18604
18892
  processedNodeManager.destroy();
18605
18893
  recording = false;
18606
18894
  unregisterErrorHandler();
@@ -21525,7 +21813,7 @@ class Replayer {
21525
21813
  this.config.logger.log(REPLAY_CONSOLE_PREFIX, ...args);
21526
21814
  }
21527
21815
  }
21528
- const version = "3.1.1-alpha.3";
21816
+ const version = "3.3.0-alpha.1";
21529
21817
  const { getVersion } = record;
21530
21818
  const { isRecording } = record;
21531
21819
  const { flushCustomEventQueue } = record;