humanbehavior-js 0.4.11 → 0.4.13

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 (40) hide show
  1. package/canvas-recording-demo.html +143 -0
  2. package/dist/cjs/angular/index.cjs +23 -7
  3. package/dist/cjs/angular/index.cjs.map +1 -1
  4. package/dist/cjs/index.cjs +12 -2
  5. package/dist/cjs/index.cjs.map +1 -1
  6. package/dist/cjs/react/index.cjs +20 -12
  7. package/dist/cjs/react/index.cjs.map +1 -1
  8. package/dist/cjs/remix/index.cjs +20 -12
  9. package/dist/cjs/remix/index.cjs.map +1 -1
  10. package/dist/cjs/svelte/index.cjs +14 -4
  11. package/dist/cjs/svelte/index.cjs.map +1 -1
  12. package/dist/cjs/vue/index.cjs +19 -3
  13. package/dist/cjs/vue/index.cjs.map +1 -1
  14. package/dist/esm/angular/index.js +23 -7
  15. package/dist/esm/angular/index.js.map +1 -1
  16. package/dist/esm/index.js +12 -2
  17. package/dist/esm/index.js.map +1 -1
  18. package/dist/esm/react/index.js +20 -12
  19. package/dist/esm/react/index.js.map +1 -1
  20. package/dist/esm/remix/index.js +20 -12
  21. package/dist/esm/remix/index.js.map +1 -1
  22. package/dist/esm/svelte/index.js +14 -4
  23. package/dist/esm/svelte/index.js.map +1 -1
  24. package/dist/esm/vue/index.js +19 -3
  25. package/dist/esm/vue/index.js.map +1 -1
  26. package/dist/index.min.js +1 -1
  27. package/dist/index.min.js.map +1 -1
  28. package/dist/types/angular/index.d.ts +21 -2
  29. package/dist/types/index.d.ts +2 -0
  30. package/dist/types/react/index.d.ts +4 -0
  31. package/dist/types/remix/index.d.ts +4 -0
  32. package/dist/types/svelte/index.d.ts +9 -1
  33. package/dist/types/vue/index.d.ts +5 -0
  34. package/package.json +1 -1
  35. package/readme.md +20 -1
  36. package/src/angular/index.ts +31 -6
  37. package/src/react/index.tsx +12 -13
  38. package/src/svelte/index.ts +8 -2
  39. package/src/tracker.ts +14 -2
  40. package/src/vue/index.ts +12 -1
@@ -13169,6 +13169,7 @@ class HumanBehaviorTracker {
13169
13169
  * This is the main entry point - call this once per page
13170
13170
  */
13171
13171
  static init(apiKey, options) {
13172
+ var _a;
13172
13173
  // ✅ SUPPRESS COMMON RRWEB ERRORS FOR CLEAN CONSOLE
13173
13174
  if (isBrowser && (options === null || options === void 0 ? void 0 : options.suppressConsoleErrors) !== false) {
13174
13175
  // Suppress canvas security errors
@@ -13227,6 +13228,8 @@ class HumanBehaviorTracker {
13227
13228
  }
13228
13229
  // Create new tracker instance
13229
13230
  const tracker = new HumanBehaviorTracker(apiKey, options === null || options === void 0 ? void 0 : options.ingestionUrl);
13231
+ // Store canvas recording preference
13232
+ tracker.recordCanvas = (_a = options === null || options === void 0 ? void 0 : options.recordCanvas) !== null && _a !== void 0 ? _a : false;
13230
13233
  // Set redacted fields if specified
13231
13234
  if (options === null || options === void 0 ? void 0 : options.redactFields) {
13232
13235
  tracker.setRedactedFields(options.redactFields);
@@ -13265,6 +13268,7 @@ class HumanBehaviorTracker {
13265
13268
  this.sessionStartTime = Date.now();
13266
13269
  this.rrwebRecord = null;
13267
13270
  this.fullSnapshotTimeout = null;
13271
+ this.recordCanvas = false; // Store canvas recording preference
13268
13272
  if (!apiKey) {
13269
13273
  throw new Error('Human Behavior API Key is required');
13270
13274
  }
@@ -13847,9 +13851,15 @@ class HumanBehaviorTracker {
13847
13851
  slimDOMOptions: {},
13848
13852
  // ✅ ERROR SUPPRESSION SETTINGS - Disabled to prevent console noise
13849
13853
  collectFonts: false, // Disable font collection to reduce errors
13850
- inlineStylesheet: false, // Disable inline stylesheet to reduce errors
13854
+ inlineStylesheet: true, // Keep styles for proper session replay
13851
13855
  recordCrossOriginIframes: false, // Prevent cross-origin iframe errors
13852
- recordCanvas: false, // Disabled to prevent large data URIs and canvas errors
13856
+ // CANVAS RECORDING - PostHog-style protection against overwhelm
13857
+ recordCanvas: this.recordCanvas, // Opt-in only
13858
+ sampling: this.recordCanvas ? { canvas: 4 } : undefined, // 4 FPS throttle
13859
+ dataURLOptions: this.recordCanvas ? {
13860
+ type: 'image/webp',
13861
+ quality: 0.4
13862
+ } : undefined, // WebP with 40% quality
13853
13863
  // ✅ FULLSNAPSHOT GENERATION - No periodic snapshots to avoid animation issues
13854
13864
  // Rely on initial FullSnapshot + navigation-triggered ones only
13855
13865
  });
@@ -14287,8 +14297,8 @@ if (typeof window !== 'undefined') {
14287
14297
 
14288
14298
  // Create a Svelte store-like interface for HumanBehavior
14289
14299
  const humanBehaviorStore = {
14290
- init: (apiKey) => {
14291
- return HumanBehaviorTracker.init(apiKey);
14300
+ init: (apiKey, options) => {
14301
+ return HumanBehaviorTracker.init(apiKey, options);
14292
14302
  }
14293
14303
  };
14294
14304