cryptique-sdk 1.2.14 → 1.2.15

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.
package/lib/cjs/index.js CHANGED
@@ -6781,8 +6781,8 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
6781
6781
  if (clickCount >= 3) {
6782
6782
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6783
6783
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6784
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6785
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6784
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6785
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6786
6786
  EventsManager.trackAutoEvent('rage_click', {
6787
6787
  click_coordinates: { x: event.clientX, y: event.clientY },
6788
6788
  page_x: event.pageX,
@@ -6812,8 +6812,8 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
6812
6812
  const clickElement = element;
6813
6813
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6814
6814
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6815
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6816
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6815
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6816
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6817
6817
 
6818
6818
  // Mark this click as potentially dead
6819
6819
  const clickId = `${now}_${Math.random().toString(36).substr(2, 9)}`;
@@ -6868,8 +6868,8 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
6868
6868
  // Track regular click with enhanced data (viewport + page-relative for heatmaps)
6869
6869
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6870
6870
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6871
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6872
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6871
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6872
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6873
6873
  EventsManager.trackAutoEvent('element_click', {
6874
6874
  click_coordinates: { x: event.clientX, y: event.clientY },
6875
6875
  page_x: event.pageX,
@@ -6907,8 +6907,8 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
6907
6907
  if (scrollDepth > maxScrollDepth) {
6908
6908
  maxScrollDepth = scrollDepth;
6909
6909
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6910
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6911
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6910
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6911
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6912
6912
  EventsManager.trackAutoEvent('page_scroll', {
6913
6913
  scroll_depth: scrollDepth,
6914
6914
  max_scroll_reached: maxScrollDepth,
@@ -6935,8 +6935,8 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
6935
6935
  if (form.tagName === 'FORM') {
6936
6936
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6937
6937
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6938
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6939
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6938
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6939
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6940
6940
  const rect = form.getBoundingClientRect();
6941
6941
  const pageX = rect.left + scrollX;
6942
6942
  const pageY = rect.top + scrollY;
@@ -7935,9 +7935,13 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
7935
7935
  if (window.self !== window.top) {
7936
7936
  const _sendHeatmapDimensions = () => {
7937
7937
  try {
7938
- const h = Math.max(
7939
- document.body ? document.body.scrollHeight : 0,
7940
- document.documentElement ? document.documentElement.scrollHeight : 0
7938
+ // Cap at 25 000 px — browser scroll-animation libraries can report 16 777 216 (2^24).
7939
+ const h = Math.min(
7940
+ Math.max(
7941
+ document.body ? document.body.scrollHeight : 0,
7942
+ document.documentElement ? document.documentElement.scrollHeight : 0
7943
+ ),
7944
+ 25000
7941
7945
  );
7942
7946
  if (h > 0) {
7943
7947
  window.parent.postMessage({ type: 'cryptique_heatmap_dimensions', document_height: h }, '*');
@@ -7945,16 +7949,23 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
7945
7949
  } catch (_) {}
7946
7950
  };
7947
7951
 
7948
- // Send once the DOM is fully painted
7952
+ // Send once the DOM is fully painted (immediate — most accurate final height).
7949
7953
  if (document.readyState === 'complete') {
7950
7954
  _sendHeatmapDimensions();
7951
7955
  } else {
7952
7956
  window.addEventListener('load', _sendHeatmapDimensions);
7953
7957
  }
7954
7958
 
7955
- // Re-send whenever the page grows (lazy-loaded content, SPAs, accordions, etc.)
7959
+ // Re-send whenever the page grows (lazy-loaded content, SPAs, accordions, etc.).
7960
+ // Debounced to 1 s so rapid DOM mutations during React hydration don't trigger
7961
+ // dozens of postMessages and repeated canvas re-renders.
7956
7962
  try {
7957
- const _heatmapRO = new ResizeObserver(_sendHeatmapDimensions);
7963
+ let _heatmapROTimer;
7964
+ const _debouncedSend = () => {
7965
+ clearTimeout(_heatmapROTimer);
7966
+ _heatmapROTimer = setTimeout(_sendHeatmapDimensions, 1000);
7967
+ };
7968
+ const _heatmapRO = new ResizeObserver(_debouncedSend);
7958
7969
  _heatmapRO.observe(document.documentElement);
7959
7970
  } catch (_) {}
7960
7971
  }
package/lib/esm/index.js CHANGED
@@ -6779,8 +6779,8 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
6779
6779
  if (clickCount >= 3) {
6780
6780
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6781
6781
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6782
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6783
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6782
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6783
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6784
6784
  EventsManager.trackAutoEvent('rage_click', {
6785
6785
  click_coordinates: { x: event.clientX, y: event.clientY },
6786
6786
  page_x: event.pageX,
@@ -6810,8 +6810,8 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
6810
6810
  const clickElement = element;
6811
6811
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6812
6812
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6813
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6814
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6813
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6814
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6815
6815
 
6816
6816
  // Mark this click as potentially dead
6817
6817
  const clickId = `${now}_${Math.random().toString(36).substr(2, 9)}`;
@@ -6866,8 +6866,8 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
6866
6866
  // Track regular click with enhanced data (viewport + page-relative for heatmaps)
6867
6867
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6868
6868
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6869
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6870
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6869
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6870
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6871
6871
  EventsManager.trackAutoEvent('element_click', {
6872
6872
  click_coordinates: { x: event.clientX, y: event.clientY },
6873
6873
  page_x: event.pageX,
@@ -6905,8 +6905,8 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
6905
6905
  if (scrollDepth > maxScrollDepth) {
6906
6906
  maxScrollDepth = scrollDepth;
6907
6907
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6908
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6909
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6908
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6909
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6910
6910
  EventsManager.trackAutoEvent('page_scroll', {
6911
6911
  scroll_depth: scrollDepth,
6912
6912
  max_scroll_reached: maxScrollDepth,
@@ -6933,8 +6933,8 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
6933
6933
  if (form.tagName === 'FORM') {
6934
6934
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6935
6935
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6936
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6937
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6936
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6937
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6938
6938
  const rect = form.getBoundingClientRect();
6939
6939
  const pageX = rect.left + scrollX;
6940
6940
  const pageY = rect.top + scrollY;
@@ -7933,9 +7933,13 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
7933
7933
  if (window.self !== window.top) {
7934
7934
  const _sendHeatmapDimensions = () => {
7935
7935
  try {
7936
- const h = Math.max(
7937
- document.body ? document.body.scrollHeight : 0,
7938
- document.documentElement ? document.documentElement.scrollHeight : 0
7936
+ // Cap at 25 000 px — browser scroll-animation libraries can report 16 777 216 (2^24).
7937
+ const h = Math.min(
7938
+ Math.max(
7939
+ document.body ? document.body.scrollHeight : 0,
7940
+ document.documentElement ? document.documentElement.scrollHeight : 0
7941
+ ),
7942
+ 25000
7939
7943
  );
7940
7944
  if (h > 0) {
7941
7945
  window.parent.postMessage({ type: 'cryptique_heatmap_dimensions', document_height: h }, '*');
@@ -7943,16 +7947,23 @@ if (window.Cryptique && window.Cryptique.initialized) ; else {
7943
7947
  } catch (_) {}
7944
7948
  };
7945
7949
 
7946
- // Send once the DOM is fully painted
7950
+ // Send once the DOM is fully painted (immediate — most accurate final height).
7947
7951
  if (document.readyState === 'complete') {
7948
7952
  _sendHeatmapDimensions();
7949
7953
  } else {
7950
7954
  window.addEventListener('load', _sendHeatmapDimensions);
7951
7955
  }
7952
7956
 
7953
- // Re-send whenever the page grows (lazy-loaded content, SPAs, accordions, etc.)
7957
+ // Re-send whenever the page grows (lazy-loaded content, SPAs, accordions, etc.).
7958
+ // Debounced to 1 s so rapid DOM mutations during React hydration don't trigger
7959
+ // dozens of postMessages and repeated canvas re-renders.
7954
7960
  try {
7955
- const _heatmapRO = new ResizeObserver(_sendHeatmapDimensions);
7961
+ let _heatmapROTimer;
7962
+ const _debouncedSend = () => {
7963
+ clearTimeout(_heatmapROTimer);
7964
+ _heatmapROTimer = setTimeout(_sendHeatmapDimensions, 1000);
7965
+ };
7966
+ const _heatmapRO = new ResizeObserver(_debouncedSend);
7956
7967
  _heatmapRO.observe(document.documentElement);
7957
7968
  } catch (_) {}
7958
7969
  }
package/lib/umd/index.js CHANGED
@@ -6785,8 +6785,8 @@
6785
6785
  if (clickCount >= 3) {
6786
6786
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6787
6787
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6788
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6789
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6788
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6789
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6790
6790
  EventsManager.trackAutoEvent('rage_click', {
6791
6791
  click_coordinates: { x: event.clientX, y: event.clientY },
6792
6792
  page_x: event.pageX,
@@ -6816,8 +6816,8 @@
6816
6816
  const clickElement = element;
6817
6817
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6818
6818
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6819
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6820
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6819
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6820
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6821
6821
 
6822
6822
  // Mark this click as potentially dead
6823
6823
  const clickId = `${now}_${Math.random().toString(36).substr(2, 9)}`;
@@ -6872,8 +6872,8 @@
6872
6872
  // Track regular click with enhanced data (viewport + page-relative for heatmaps)
6873
6873
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6874
6874
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6875
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6876
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6875
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6876
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6877
6877
  EventsManager.trackAutoEvent('element_click', {
6878
6878
  click_coordinates: { x: event.clientX, y: event.clientY },
6879
6879
  page_x: event.pageX,
@@ -6911,8 +6911,8 @@
6911
6911
  if (scrollDepth > maxScrollDepth) {
6912
6912
  maxScrollDepth = scrollDepth;
6913
6913
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6914
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6915
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6914
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6915
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6916
6916
  EventsManager.trackAutoEvent('page_scroll', {
6917
6917
  scroll_depth: scrollDepth,
6918
6918
  max_scroll_reached: maxScrollDepth,
@@ -6939,8 +6939,8 @@
6939
6939
  if (form.tagName === 'FORM') {
6940
6940
  const scrollX = window.scrollX != null ? window.scrollX : window.pageXOffset;
6941
6941
  const scrollY = window.scrollY != null ? window.scrollY : window.pageYOffset;
6942
- const docHeight = Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);
6943
- const docWidth = Math.max(document.body.scrollWidth, document.documentElement.scrollWidth);
6942
+ const docHeight = Math.min(Math.max(document.body.scrollHeight, document.documentElement.scrollHeight), 25000);
6943
+ const docWidth = Math.min(Math.max(document.body.scrollWidth, document.documentElement.scrollWidth), 25000);
6944
6944
  const rect = form.getBoundingClientRect();
6945
6945
  const pageX = rect.left + scrollX;
6946
6946
  const pageY = rect.top + scrollY;
@@ -7939,9 +7939,13 @@
7939
7939
  if (window.self !== window.top) {
7940
7940
  const _sendHeatmapDimensions = () => {
7941
7941
  try {
7942
- const h = Math.max(
7943
- document.body ? document.body.scrollHeight : 0,
7944
- document.documentElement ? document.documentElement.scrollHeight : 0
7942
+ // Cap at 25 000 px — browser scroll-animation libraries can report 16 777 216 (2^24).
7943
+ const h = Math.min(
7944
+ Math.max(
7945
+ document.body ? document.body.scrollHeight : 0,
7946
+ document.documentElement ? document.documentElement.scrollHeight : 0
7947
+ ),
7948
+ 25000
7945
7949
  );
7946
7950
  if (h > 0) {
7947
7951
  window.parent.postMessage({ type: 'cryptique_heatmap_dimensions', document_height: h }, '*');
@@ -7949,16 +7953,23 @@
7949
7953
  } catch (_) {}
7950
7954
  };
7951
7955
 
7952
- // Send once the DOM is fully painted
7956
+ // Send once the DOM is fully painted (immediate — most accurate final height).
7953
7957
  if (document.readyState === 'complete') {
7954
7958
  _sendHeatmapDimensions();
7955
7959
  } else {
7956
7960
  window.addEventListener('load', _sendHeatmapDimensions);
7957
7961
  }
7958
7962
 
7959
- // Re-send whenever the page grows (lazy-loaded content, SPAs, accordions, etc.)
7963
+ // Re-send whenever the page grows (lazy-loaded content, SPAs, accordions, etc.).
7964
+ // Debounced to 1 s so rapid DOM mutations during React hydration don't trigger
7965
+ // dozens of postMessages and repeated canvas re-renders.
7960
7966
  try {
7961
- const _heatmapRO = new ResizeObserver(_sendHeatmapDimensions);
7967
+ let _heatmapROTimer;
7968
+ const _debouncedSend = () => {
7969
+ clearTimeout(_heatmapROTimer);
7970
+ _heatmapROTimer = setTimeout(_sendHeatmapDimensions, 1000);
7971
+ };
7972
+ const _heatmapRO = new ResizeObserver(_debouncedSend);
7962
7973
  _heatmapRO.observe(document.documentElement);
7963
7974
  } catch (_) {}
7964
7975
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cryptique-sdk",
3
- "version": "1.2.14",
3
+ "version": "1.2.15",
4
4
  "type": "module",
5
5
  "description": "Cryptique Analytics SDK - Comprehensive web analytics and user tracking for modern web applications",
6
6
  "main": "lib/cjs/index.js",