mixpanel-browser 2.74.0 → 2.76.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 (61) hide show
  1. package/.claude/settings.local.json +3 -1
  2. package/.github/workflows/integration-tests.yml +2 -2
  3. package/.github/workflows/unit-tests.yml +3 -3
  4. package/CHANGELOG.md +15 -0
  5. package/README.md +2 -2
  6. package/build.sh +10 -8
  7. package/dist/async-modules/mixpanel-recorder-bIS4LMGd.js +23595 -0
  8. package/dist/async-modules/mixpanel-recorder-hFoTniVR.min.js +2 -0
  9. package/dist/async-modules/mixpanel-recorder-hFoTniVR.min.js.map +1 -0
  10. package/dist/async-modules/mixpanel-targeting-BcAPS-Mz.js +2520 -0
  11. package/dist/async-modules/mixpanel-targeting-VOeN7RWY.min.js +2 -0
  12. package/dist/async-modules/mixpanel-targeting-VOeN7RWY.min.js.map +1 -0
  13. package/dist/mixpanel-core.cjs.d.ts +68 -0
  14. package/dist/mixpanel-core.cjs.js +802 -337
  15. package/dist/mixpanel-recorder.js +828 -40
  16. package/dist/mixpanel-recorder.min.js +1 -1
  17. package/dist/mixpanel-recorder.min.js.map +1 -1
  18. package/dist/mixpanel-targeting.js +2520 -0
  19. package/dist/mixpanel-targeting.min.js +2 -0
  20. package/dist/mixpanel-targeting.min.js.map +1 -0
  21. package/dist/mixpanel-with-async-modules.cjs.d.ts +590 -0
  22. package/dist/mixpanel-with-async-modules.cjs.js +9867 -0
  23. package/dist/mixpanel-with-async-recorder.cjs.d.ts +68 -0
  24. package/dist/mixpanel-with-async-recorder.cjs.js +802 -337
  25. package/dist/mixpanel-with-recorder.d.ts +68 -0
  26. package/dist/mixpanel-with-recorder.js +1591 -343
  27. package/dist/mixpanel-with-recorder.min.d.ts +68 -0
  28. package/dist/mixpanel-with-recorder.min.js +1 -1
  29. package/dist/mixpanel.amd.d.ts +68 -0
  30. package/dist/mixpanel.amd.js +2124 -345
  31. package/dist/mixpanel.cjs.d.ts +68 -0
  32. package/dist/mixpanel.cjs.js +2124 -345
  33. package/dist/mixpanel.globals.js +802 -337
  34. package/dist/mixpanel.min.js +185 -175
  35. package/dist/mixpanel.module.d.ts +68 -0
  36. package/dist/mixpanel.module.js +2124 -345
  37. package/dist/mixpanel.umd.d.ts +68 -0
  38. package/dist/mixpanel.umd.js +2124 -345
  39. package/dist/rrweb-bundled.js +119 -5
  40. package/dist/rrweb-compiled.js +116 -5
  41. package/logo.svg +5 -0
  42. package/package.json +5 -3
  43. package/rollup.config.mjs +189 -40
  44. package/src/autocapture/index.js +10 -27
  45. package/src/config.js +9 -3
  46. package/src/flags/index.js +269 -9
  47. package/src/index.d.ts +68 -0
  48. package/src/loaders/loader-module.js +1 -0
  49. package/src/mixpanel-core.js +83 -109
  50. package/src/recorder/index.js +2 -1
  51. package/src/recorder/recorder.js +5 -1
  52. package/src/recorder/rrweb-network-plugin.js +649 -0
  53. package/src/recorder/session-recording.js +31 -11
  54. package/src/recorder-manager.js +216 -0
  55. package/src/request-batcher.js +1 -1
  56. package/src/targeting/event-matcher.js +42 -0
  57. package/src/targeting/index.js +11 -0
  58. package/src/targeting/loader.js +36 -0
  59. package/src/utils.js +14 -9
  60. package/testServer.js +55 -0
  61. /package/src/loaders/{loader-module-with-async-recorder.js → loader-module-with-async-modules.js} +0 -0
@@ -301,13 +301,14 @@ class Mirror {
301
301
  return this.nodeMetaMap.get(n2) || null;
302
302
  }
303
303
  // removes the node from idNodeMap
304
- // doesn't remove the node from nodeMetaMap
305
- removeNodeFromMap(n2) {
304
+ // if permanent is true, also removes from nodeMetaMap
305
+ removeNodeFromMap(n2, permanent = false) {
306
306
  const id = this.getId(n2);
307
307
  this.idNodeMap.delete(id);
308
+ if (permanent) this.nodeMetaMap.delete(n2);
308
309
  if (n2.childNodes) {
309
310
  n2.childNodes.forEach(
310
- (childNode) => this.removeNodeFromMap(childNode)
311
+ (childNode) => this.removeNodeFromMap(childNode, permanent)
311
312
  );
312
313
  }
313
314
  }
@@ -8972,6 +8973,15 @@ class StyleSheetMirror {
8972
8973
  generateId() {
8973
8974
  return this.id++;
8974
8975
  }
8976
+ remove(stylesheet) {
8977
+ const id = this.styleIDMap.get(stylesheet);
8978
+ if (id !== void 0) {
8979
+ this.styleIDMap.delete(stylesheet);
8980
+ this.idStyleMap.delete(id);
8981
+ return true;
8982
+ }
8983
+ return false;
8984
+ }
8975
8985
  }
8976
8986
  function getShadowHost(n2) {
8977
8987
  var _a2;
@@ -9293,7 +9303,16 @@ class MutationBuffer {
9293
9303
  }
9294
9304
  };
9295
9305
  while (this.mapRemoves.length) {
9296
- this.mirror.removeNodeFromMap(this.mapRemoves.shift());
9306
+ const removedNode = this.mapRemoves.shift();
9307
+ if (removedNode.nodeName === "IFRAME") {
9308
+ try {
9309
+ this.iframeManager.removeIframe(removedNode);
9310
+ } catch (e2) {
9311
+ }
9312
+ } else {
9313
+ this.stylesheetManager.cleanupStylesheetsForRemovedNode(removedNode);
9314
+ }
9315
+ this.mirror.removeNodeFromMap(removedNode);
9297
9316
  }
9298
9317
  for (const n2 of this.movedSet) {
9299
9318
  if (isParentRemoved(this.removesSubTreeCache, n2, this.mirror) && !this.movedSet.has(index$2.parentNode(n2))) {
@@ -9654,6 +9673,9 @@ class MutationBuffer {
9654
9673
  this.shadowDomManager.reset();
9655
9674
  this.canvasManager.reset();
9656
9675
  }
9676
+ getDoc() {
9677
+ return this.doc;
9678
+ }
9657
9679
  }
9658
9680
  function deepDelete(addsSet, n2) {
9659
9681
  addsSet.delete(n2);
@@ -9747,6 +9769,14 @@ function initMutationObserver(options, rootEl) {
9747
9769
  });
9748
9770
  return observer;
9749
9771
  }
9772
+ function removeMutationBufferForDoc(doc) {
9773
+ for (let i2 = mutationBuffers.length - 1; i2 >= 0; i2--) {
9774
+ const buffer = mutationBuffers[i2];
9775
+ if (buffer.getDoc() === doc) {
9776
+ mutationBuffers.splice(i2, 1);
9777
+ }
9778
+ }
9779
+ }
9750
9780
  function initMoveObserver({
9751
9781
  mousemoveCb,
9752
9782
  sampling,
@@ -10795,6 +10825,8 @@ class IframeManager {
10795
10825
  __publicField$1(this, "crossOriginIframeMirror", new CrossOriginIframeMirror(genId));
10796
10826
  __publicField$1(this, "crossOriginIframeStyleMirror");
10797
10827
  __publicField$1(this, "crossOriginIframeRootIdMap", /* @__PURE__ */ new WeakMap());
10828
+ __publicField$1(this, "iframeContentDocumentMap", /* @__PURE__ */ new WeakMap());
10829
+ __publicField$1(this, "iframeObserverCleanupMap", /* @__PURE__ */ new WeakMap());
10798
10830
  __publicField$1(this, "mirror");
10799
10831
  __publicField$1(this, "mutationCb");
10800
10832
  __publicField$1(this, "wrappedEmit");
@@ -10820,6 +10852,32 @@ class IframeManager {
10820
10852
  if (iframeEl.contentWindow)
10821
10853
  this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);
10822
10854
  }
10855
+ getIframeContentDocument(iframeEl) {
10856
+ return this.iframeContentDocumentMap.get(iframeEl);
10857
+ }
10858
+ setObserverCleanup(iframeEl, cleanup) {
10859
+ this.iframeObserverCleanupMap.set(iframeEl, cleanup);
10860
+ }
10861
+ getObserverCleanup(iframeEl) {
10862
+ return this.iframeObserverCleanupMap.get(iframeEl);
10863
+ }
10864
+ removeIframe(iframeEl) {
10865
+ const storedDoc = this.iframeContentDocumentMap.get(iframeEl);
10866
+ if (storedDoc) {
10867
+ this.stylesheetManager.cleanupStylesheetsForRemovedNode(storedDoc);
10868
+ this.mirror.removeNodeFromMap(storedDoc, true);
10869
+ }
10870
+ this.iframes.delete(iframeEl);
10871
+ this.iframeContentDocumentMap.delete(iframeEl);
10872
+ const observerCleanup = this.iframeObserverCleanupMap.get(iframeEl);
10873
+ if (observerCleanup) {
10874
+ try {
10875
+ observerCleanup();
10876
+ } catch (e2) {
10877
+ }
10878
+ this.iframeObserverCleanupMap.delete(iframeEl);
10879
+ }
10880
+ }
10823
10881
  addLoadListener(cb) {
10824
10882
  this.loadListener = cb;
10825
10883
  }
@@ -10838,6 +10896,9 @@ class IframeManager {
10838
10896
  attributes: [],
10839
10897
  isAttachIframe: true
10840
10898
  });
10899
+ if (iframeEl.contentDocument) {
10900
+ this.iframeContentDocumentMap.set(iframeEl, iframeEl.contentDocument);
10901
+ }
10841
10902
  if (this.recordCrossOriginIframes)
10842
10903
  (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener(
10843
10904
  "message",
@@ -11722,6 +11783,41 @@ class StylesheetManager {
11722
11783
  this.styleMirror.reset();
11723
11784
  this.trackedLinkElements = /* @__PURE__ */ new WeakSet();
11724
11785
  }
11786
+ /**
11787
+ * Cleans up stylesheets associated with a removed node.
11788
+ *
11789
+ * @param removedNode - The node that was removed from the DOM.
11790
+ */
11791
+ cleanupStylesheetsForRemovedNode(removedNode) {
11792
+ try {
11793
+ if (removedNode.nodeType === Node.DOCUMENT_NODE) {
11794
+ const doc = removedNode;
11795
+ if (doc.adoptedStyleSheets) {
11796
+ for (const sheet of doc.adoptedStyleSheets) {
11797
+ this.styleMirror.remove(sheet);
11798
+ }
11799
+ }
11800
+ }
11801
+ if (removedNode.nodeName === "STYLE") {
11802
+ const styleEl = removedNode;
11803
+ if (styleEl.sheet) {
11804
+ this.styleMirror.remove(styleEl.sheet);
11805
+ }
11806
+ }
11807
+ if (removedNode.nodeName === "LINK" && removedNode.rel === "stylesheet") {
11808
+ const linkEl = removedNode;
11809
+ if (linkEl.sheet) {
11810
+ this.styleMirror.remove(linkEl.sheet);
11811
+ }
11812
+ }
11813
+ if (removedNode.childNodes) {
11814
+ removedNode.childNodes.forEach((child) => {
11815
+ this.cleanupStylesheetsForRemovedNode(child);
11816
+ });
11817
+ }
11818
+ } catch (e2) {
11819
+ }
11820
+ }
11725
11821
  // TODO: take snapshot on stylesheet reload by applying event listener
11726
11822
  trackStylesheetInLinkElement(_linkEl) {
11727
11823
  }
@@ -12186,7 +12282,25 @@ function record(options = {}) {
12186
12282
  };
12187
12283
  iframeManager.addLoadListener((iframeEl) => {
12188
12284
  try {
12189
- handlers.push(observe(iframeEl.contentDocument));
12285
+ const iframeDoc = iframeEl.contentDocument;
12286
+ const iframeHandler = observe(iframeDoc);
12287
+ handlers.push(iframeHandler);
12288
+ const existingCleanup = iframeManager.getObserverCleanup(iframeEl);
12289
+ iframeManager.setObserverCleanup(iframeEl, () => {
12290
+ if (existingCleanup) {
12291
+ try {
12292
+ existingCleanup();
12293
+ } catch (e2) {
12294
+ }
12295
+ }
12296
+ try {
12297
+ iframeHandler();
12298
+ const idx = handlers.indexOf(iframeHandler);
12299
+ if (idx !== -1) handlers.splice(idx, 1);
12300
+ removeMutationBufferForDoc(iframeDoc);
12301
+ } catch (e2) {
12302
+ }
12303
+ });
12190
12304
  } catch (error) {
12191
12305
  console.warn(error);
12192
12306
  }
@@ -612,14 +612,16 @@ var Mirror = /*#__PURE__*/ function() {
612
612
  return this.nodeMetaMap.get(n2) || null;
613
613
  };
614
614
  // removes the node from idNodeMap
615
- // doesn't remove the node from nodeMetaMap
616
- _proto.removeNodeFromMap = function removeNodeFromMap(n2) {
615
+ // if permanent is true, also removes from nodeMetaMap
616
+ _proto.removeNodeFromMap = function removeNodeFromMap(n2, permanent) {
617
617
  var _this = this;
618
+ if (permanent === void 0) permanent = false;
618
619
  var id = this.getId(n2);
619
620
  this.idNodeMap.delete(id);
621
+ if (permanent) this.nodeMetaMap.delete(n2);
620
622
  if (n2.childNodes) {
621
623
  n2.childNodes.forEach(function(childNode) {
622
- return _this.removeNodeFromMap(childNode);
624
+ return _this.removeNodeFromMap(childNode, permanent);
623
625
  });
624
626
  }
625
627
  };
@@ -10361,6 +10363,15 @@ var StyleSheetMirror = /*#__PURE__*/ function() {
10361
10363
  _proto.generateId = function generateId() {
10362
10364
  return this.id++;
10363
10365
  };
10366
+ _proto.remove = function remove(stylesheet) {
10367
+ var id = this.styleIDMap.get(stylesheet);
10368
+ if (id !== void 0) {
10369
+ this.styleIDMap.delete(stylesheet);
10370
+ this.idStyleMap.delete(id);
10371
+ return true;
10372
+ }
10373
+ return false;
10374
+ };
10364
10375
  return StyleSheetMirror;
10365
10376
  }();
10366
10377
  function getShadowHost(n2) {
@@ -10683,7 +10694,15 @@ var MutationBuffer = /*#__PURE__*/ function() {
10683
10694
  }
10684
10695
  };
10685
10696
  while(_this.mapRemoves.length){
10686
- _this.mirror.removeNodeFromMap(_this.mapRemoves.shift());
10697
+ var removedNode = _this.mapRemoves.shift();
10698
+ if (removedNode.nodeName === "IFRAME") {
10699
+ try {
10700
+ _this.iframeManager.removeIframe(removedNode);
10701
+ } catch (e2) {}
10702
+ } else {
10703
+ _this.stylesheetManager.cleanupStylesheetsForRemovedNode(removedNode);
10704
+ }
10705
+ _this.mirror.removeNodeFromMap(removedNode);
10687
10706
  }
10688
10707
  for(var _iterator = _create_for_of_iterator_helper_loose(_this.movedSet), _step; !(_step = _iterator()).done;){
10689
10708
  var n2 = _step.value;
@@ -11057,6 +11076,9 @@ var MutationBuffer = /*#__PURE__*/ function() {
11057
11076
  this.shadowDomManager.reset();
11058
11077
  this.canvasManager.reset();
11059
11078
  };
11079
+ _proto.getDoc = function getDoc() {
11080
+ return this.doc;
11081
+ };
11060
11082
  return MutationBuffer;
11061
11083
  }();
11062
11084
  function deepDelete(addsSet, n2) {
@@ -11157,6 +11179,14 @@ function initMutationObserver(options, rootEl) {
11157
11179
  });
11158
11180
  return observer;
11159
11181
  }
11182
+ function removeMutationBufferForDoc(doc) {
11183
+ for(var i2 = mutationBuffers.length - 1; i2 >= 0; i2--){
11184
+ var buffer = mutationBuffers[i2];
11185
+ if (buffer.getDoc() === doc) {
11186
+ mutationBuffers.splice(i2, 1);
11187
+ }
11188
+ }
11189
+ }
11160
11190
  function initMoveObserver(param) {
11161
11191
  var mousemoveCb = param.mousemoveCb, sampling = param.sampling, doc = param.doc, mirror2 = param.mirror;
11162
11192
  if (sampling.mousemove === false) {
@@ -12172,6 +12202,8 @@ var IframeManager = /*#__PURE__*/ function() {
12172
12202
  __publicField$1(this, "crossOriginIframeMirror", new CrossOriginIframeMirror(genId));
12173
12203
  __publicField$1(this, "crossOriginIframeStyleMirror");
12174
12204
  __publicField$1(this, "crossOriginIframeRootIdMap", /* @__PURE__ */ new WeakMap());
12205
+ __publicField$1(this, "iframeContentDocumentMap", /* @__PURE__ */ new WeakMap());
12206
+ __publicField$1(this, "iframeObserverCleanupMap", /* @__PURE__ */ new WeakMap());
12175
12207
  __publicField$1(this, "mirror");
12176
12208
  __publicField$1(this, "mutationCb");
12177
12209
  __publicField$1(this, "wrappedEmit");
@@ -12193,6 +12225,31 @@ var IframeManager = /*#__PURE__*/ function() {
12193
12225
  this.iframes.set(iframeEl, true);
12194
12226
  if (iframeEl.contentWindow) this.crossOriginIframeMap.set(iframeEl.contentWindow, iframeEl);
12195
12227
  };
12228
+ _proto.getIframeContentDocument = function getIframeContentDocument(iframeEl) {
12229
+ return this.iframeContentDocumentMap.get(iframeEl);
12230
+ };
12231
+ _proto.setObserverCleanup = function setObserverCleanup(iframeEl, cleanup) {
12232
+ this.iframeObserverCleanupMap.set(iframeEl, cleanup);
12233
+ };
12234
+ _proto.getObserverCleanup = function getObserverCleanup(iframeEl) {
12235
+ return this.iframeObserverCleanupMap.get(iframeEl);
12236
+ };
12237
+ _proto.removeIframe = function removeIframe(iframeEl) {
12238
+ var storedDoc = this.iframeContentDocumentMap.get(iframeEl);
12239
+ if (storedDoc) {
12240
+ this.stylesheetManager.cleanupStylesheetsForRemovedNode(storedDoc);
12241
+ this.mirror.removeNodeFromMap(storedDoc, true);
12242
+ }
12243
+ this.iframes.delete(iframeEl);
12244
+ this.iframeContentDocumentMap.delete(iframeEl);
12245
+ var observerCleanup = this.iframeObserverCleanupMap.get(iframeEl);
12246
+ if (observerCleanup) {
12247
+ try {
12248
+ observerCleanup();
12249
+ } catch (e2) {}
12250
+ this.iframeObserverCleanupMap.delete(iframeEl);
12251
+ }
12252
+ };
12196
12253
  _proto.addLoadListener = function addLoadListener(cb) {
12197
12254
  this.loadListener = cb;
12198
12255
  };
@@ -12211,6 +12268,9 @@ var IframeManager = /*#__PURE__*/ function() {
12211
12268
  attributes: [],
12212
12269
  isAttachIframe: true
12213
12270
  });
12271
+ if (iframeEl.contentDocument) {
12272
+ this.iframeContentDocumentMap.set(iframeEl, iframeEl.contentDocument);
12273
+ }
12214
12274
  if (this.recordCrossOriginIframes) (_a2 = iframeEl.contentWindow) == null ? void 0 : _a2.addEventListener("message", this.handleMessage.bind(this));
12215
12275
  (_b = this.loadListener) == null ? void 0 : _b.call(this, iframeEl);
12216
12276
  if (iframeEl.contentDocument && iframeEl.contentDocument.adoptedStyleSheets && iframeEl.contentDocument.adoptedStyleSheets.length > 0) this.stylesheetManager.adoptStyleSheets(iframeEl.contentDocument.adoptedStyleSheets, this.mirror.getId(iframeEl.contentDocument));
@@ -13123,6 +13183,41 @@ var StylesheetManager = /*#__PURE__*/ function() {
13123
13183
  this.styleMirror.reset();
13124
13184
  this.trackedLinkElements = /* @__PURE__ */ new WeakSet();
13125
13185
  };
13186
+ /**
13187
+ * Cleans up stylesheets associated with a removed node.
13188
+ *
13189
+ * @param removedNode - The node that was removed from the DOM.
13190
+ */ _proto.cleanupStylesheetsForRemovedNode = function cleanupStylesheetsForRemovedNode(removedNode) {
13191
+ var _this = this;
13192
+ try {
13193
+ if (removedNode.nodeType === Node.DOCUMENT_NODE) {
13194
+ var doc = removedNode;
13195
+ if (doc.adoptedStyleSheets) {
13196
+ for(var _iterator = _create_for_of_iterator_helper_loose(doc.adoptedStyleSheets), _step; !(_step = _iterator()).done;){
13197
+ var sheet = _step.value;
13198
+ this.styleMirror.remove(sheet);
13199
+ }
13200
+ }
13201
+ }
13202
+ if (removedNode.nodeName === "STYLE") {
13203
+ var styleEl = removedNode;
13204
+ if (styleEl.sheet) {
13205
+ this.styleMirror.remove(styleEl.sheet);
13206
+ }
13207
+ }
13208
+ if (removedNode.nodeName === "LINK" && removedNode.rel === "stylesheet") {
13209
+ var linkEl = removedNode;
13210
+ if (linkEl.sheet) {
13211
+ this.styleMirror.remove(linkEl.sheet);
13212
+ }
13213
+ }
13214
+ if (removedNode.childNodes) {
13215
+ removedNode.childNodes.forEach(function(child) {
13216
+ _this.cleanupStylesheetsForRemovedNode(child);
13217
+ });
13218
+ }
13219
+ } catch (e2) {}
13220
+ };
13126
13221
  // TODO: take snapshot on stylesheet reload by applying event listener
13127
13222
  _proto.trackStylesheetInLinkElement = function trackStylesheetInLinkElement(_linkEl) {};
13128
13223
  return StylesheetManager;
@@ -13577,7 +13672,23 @@ function record(options) {
13577
13672
  };
13578
13673
  iframeManager.addLoadListener(function(iframeEl) {
13579
13674
  try {
13580
- handlers.push(observe(iframeEl.contentDocument));
13675
+ var iframeDoc = iframeEl.contentDocument;
13676
+ var iframeHandler = observe(iframeDoc);
13677
+ handlers.push(iframeHandler);
13678
+ var existingCleanup = iframeManager.getObserverCleanup(iframeEl);
13679
+ iframeManager.setObserverCleanup(iframeEl, function() {
13680
+ if (existingCleanup) {
13681
+ try {
13682
+ existingCleanup();
13683
+ } catch (e2) {}
13684
+ }
13685
+ try {
13686
+ iframeHandler();
13687
+ var idx = handlers.indexOf(iframeHandler);
13688
+ if (idx !== -1) handlers.splice(idx, 1);
13689
+ removeMutationBufferForDoc(iframeDoc);
13690
+ } catch (e2) {}
13691
+ });
13581
13692
  } catch (error) {
13582
13693
  console.warn(error);
13583
13694
  }
package/logo.svg ADDED
@@ -0,0 +1,5 @@
1
+ <svg viewBox="0 0 798 189" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path
3
+ d="M0 146.539H47.835V141.455H44.243C37.2513 141.455 35.5676 139.547 35.5676 132.572V69.5024C40.4425 61.244 47.0011 55.9521 55.2596 55.9521C65.6348 55.9521 71.985 63.5692 71.985 77.9694V132.588C71.985 139.579 70.2852 141.471 63.5181 141.471H59.7016V146.555H106.478V141.471H103.095C96.103 141.471 94.4192 139.563 94.4192 132.588V75.6282C94.4192 73.7199 94.4192 71.8116 94.2108 69.9194C98.8612 61.4524 105.853 55.9521 114.111 55.9521C124.487 55.9521 130.837 63.5692 130.837 77.9694V132.588C130.837 139.579 129.137 141.471 122.37 141.471H118.553V146.555H165.33V141.471H162.155C154.955 141.471 153.271 139.563 153.271 132.588V75.6282C153.271 54.2523 141.212 42.4018 123.637 42.4018C110.519 42.4018 99.0857 49.6019 92.9439 63.9861C89.3519 50.0189 78.7682 42.4018 64.7849 42.4018C52.293 42.4018 41.5008 49.169 35.5676 62.7193V44.9355H0V50.0189H4.23347C11.4336 50.0189 13.1173 51.9271 13.1173 58.9027V132.572C13.1173 139.563 11.4175 141.455 4.23347 141.455H0V146.539ZM193.473 28.0016C201.09 28.0016 207.44 21.6514 207.44 14.0344C207.44 6.41731 201.09 0.0671082 193.473 0.0671082C185.856 0.0671082 179.506 6.41731 179.506 14.0344C179.506 21.6514 185.856 28.0016 193.473 28.0016ZM169.772 146.539H216.757V141.455H213.582C206.59 141.455 204.906 139.547 204.906 132.572V44.9355H169.339V50.0189H173.572C180.772 50.0189 182.456 51.9271 182.456 58.9027V132.572C182.456 139.563 180.756 141.455 173.572 141.455H169.756V146.539H169.772ZM251.058 86.8533H264.608C261.224 84.7365 259.958 81.7699 258.258 76.2696L253.174 57.4274C250.849 48.9605 248.941 44.9355 239.624 44.9355H220.157V50.0189H222.915C228.623 50.0189 229.265 52.1356 230.965 58.4858L235.407 75.0028C237.732 83.0528 241.34 86.8533 251.074 86.8533H251.058ZM282.392 86.8533H295.942C305.676 86.8533 309.059 83.0367 311.401 75.0028L315.843 58.4858C317.542 52.1356 318.376 50.0189 323.893 50.0189H326.651V44.9355H307.392C297.866 44.9355 295.958 48.752 293.841 57.4274L288.758 76.2696C287.058 81.9784 285.775 84.7365 282.392 86.8533ZM264.608 104.637H282.392V86.8533H264.608V104.637ZM220.157 146.555H239.624C248.941 146.555 250.849 142.53 253.174 134.063L258.258 115.221C259.958 109.72 261.224 106.754 264.608 104.637H251.058C241.324 104.637 237.716 108.454 235.391 116.488L230.949 133.005C229.249 139.355 228.623 141.471 222.899 141.471H220.141V146.555H220.157ZM307.36 146.555H326.619V141.471H323.861C318.36 141.471 317.51 139.355 315.811 133.005L311.369 116.488C309.043 108.438 305.66 104.637 295.91 104.637H282.392C285.775 106.754 287.01 109.512 288.71 115.221L293.793 134.063C295.91 142.738 297.818 146.555 307.344 146.555H307.36ZM329.377 188.89H378.479V183.806H373.395C366.628 183.806 364.928 181.898 364.928 174.922V134.496C371.07 143.604 381.445 149.105 393.713 149.105C416.788 149.105 435.198 128.787 435.198 93.6525C435.198 61.9014 417.847 42.4339 395.397 42.4339C382.279 42.4339 371.263 50.0509 364.912 63.6012V44.9676H329.345V50.0509H333.578C340.57 50.0509 342.462 51.9592 342.462 58.9348V174.906C342.462 181.898 340.554 183.79 333.578 183.79H329.345V188.874L329.377 188.89ZM387.379 55.5352C401.137 55.5352 412.363 68.4441 412.363 94.0534C412.363 121.988 401.987 137.238 387.812 137.238C378.703 137.238 370.669 132.363 364.944 123.896V71.3947C370.445 61.0195 378.286 55.5192 387.379 55.5192V55.5352ZM468.665 148.672C482.423 148.672 493.424 142.113 501.682 127.296V129.621C501.682 142.321 509.732 147.822 523.058 147.822C527.083 147.822 532.167 147.405 535.55 146.346V141.055C533.85 141.471 532.583 141.696 531.317 141.696C526.025 141.696 524.325 138.521 524.325 133.437V79.2362C524.325 54.2523 510.358 42.4018 486.865 42.4018C471.198 42.4018 455.964 49.6019 446.23 57.219L449.614 63.1522C459.781 56.1606 469.723 52.1516 480.515 52.1516C494.482 52.1516 501.682 59.7687 501.682 77.5525V82.2029L475.64 92.3696C451.939 102.103 443.248 111.212 443.248 124.971C443.248 138.729 452.981 148.672 468.648 148.672H468.665ZM465.489 119.454C465.489 108.871 471.631 101.253 484.123 95.7532L501.698 88.1361V121.154C495.14 130.262 487.523 135.554 479.264 135.554C471.006 135.554 465.505 129.845 465.505 119.47L465.489 119.454ZM539.784 146.555H588.052V141.471H584.027C577.035 141.471 575.351 139.563 575.351 132.588V69.7109C580.226 61.244 587.41 55.9521 595.877 55.9521C606.878 55.9521 613.869 63.5692 613.869 77.9694V132.588C613.869 139.579 612.17 141.471 605.402 141.471H601.377V146.555H649.421V141.471H645.187C637.987 141.471 636.304 139.563 636.304 132.588V75.6282C636.304 54.2523 623.603 42.4018 605.611 42.4018C592.494 42.4018 581.477 49.169 575.335 62.7193V44.9355H539.768V50.0189H544.001C551.201 50.0189 552.885 51.9271 552.885 58.9027V132.572C552.885 139.563 551.185 141.455 544.001 141.455H539.768V146.539L539.784 146.555ZM704.456 149.089C718.423 149.089 731.557 142.738 741.082 135.121L737.907 130.471C729.44 136.613 719.915 139.355 711.031 139.355C689.446 139.355 676.746 124.121 676.746 94.4863V90.6698H743.632C743.215 62.0939 725.639 42.6263 700.03 42.6263C674.421 42.6263 653.879 65.7019 653.879 96.1861C653.879 129.637 672.93 149.105 704.472 149.105L704.456 149.089ZM700.223 47.9021C712.923 47.9021 720.748 61.6609 722.031 84.945H677.163C679.071 61.4524 687.955 47.9021 700.239 47.9021H700.223ZM748.266 146.539H797.368V141.455H792.493C785.501 141.455 783.818 139.547 783.818 132.572V2.60078H748.25V7.68415H752.483C759.475 7.68415 761.367 9.59242 761.367 16.568V132.572C761.367 139.563 759.459 141.455 752.483 141.455H748.25V146.539H748.266Z"
4
+ fill="black" />
5
+ </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mixpanel-browser",
3
- "version": "2.74.0",
3
+ "version": "2.76.0",
4
4
  "description": "The official Mixpanel JavaScript browser client library",
5
5
  "main": "dist/mixpanel.cjs.js",
6
6
  "module": "dist/mixpanel.module.js",
@@ -91,7 +91,9 @@
91
91
  "webpack": "1.12.2"
92
92
  },
93
93
  "dependencies": {
94
- "@mixpanel/rrweb": "2.0.0-alpha.18.2",
95
- "@mixpanel/rrweb-plugin-console-record": "2.0.0-alpha.18.2"
94
+ "@mixpanel/rrweb": "2.0.0-alpha.18.3",
95
+ "@mixpanel/rrweb-plugin-console-record": "2.0.0-alpha.18.3",
96
+ "@mixpanel/rrweb-utils": "2.0.0-alpha.18.3",
97
+ "json-logic-js": "2.0.5"
96
98
  }
97
99
  }