humanbehavior-js 0.4.12 → 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.
- package/canvas-recording-demo.html +143 -0
- package/dist/cjs/angular/index.cjs +22 -6
- package/dist/cjs/angular/index.cjs.map +1 -1
- package/dist/cjs/index.cjs +11 -1
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/react/index.cjs +19 -11
- package/dist/cjs/react/index.cjs.map +1 -1
- package/dist/cjs/remix/index.cjs +19 -11
- package/dist/cjs/remix/index.cjs.map +1 -1
- package/dist/cjs/svelte/index.cjs +13 -3
- package/dist/cjs/svelte/index.cjs.map +1 -1
- package/dist/cjs/vue/index.cjs +18 -2
- package/dist/cjs/vue/index.cjs.map +1 -1
- package/dist/esm/angular/index.js +22 -6
- package/dist/esm/angular/index.js.map +1 -1
- package/dist/esm/index.js +11 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/react/index.js +19 -11
- package/dist/esm/react/index.js.map +1 -1
- package/dist/esm/remix/index.js +19 -11
- package/dist/esm/remix/index.js.map +1 -1
- package/dist/esm/svelte/index.js +13 -3
- package/dist/esm/svelte/index.js.map +1 -1
- package/dist/esm/vue/index.js +18 -2
- package/dist/esm/vue/index.js.map +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/dist/types/angular/index.d.ts +21 -2
- package/dist/types/index.d.ts +2 -0
- package/dist/types/react/index.d.ts +4 -0
- package/dist/types/remix/index.d.ts +4 -0
- package/dist/types/svelte/index.d.ts +9 -1
- package/dist/types/vue/index.d.ts +5 -0
- package/package.json +1 -1
- package/readme.md +20 -1
- package/src/angular/index.ts +31 -6
- package/src/react/index.tsx +12 -13
- package/src/svelte/index.ts +8 -2
- package/src/tracker.ts +13 -1
- package/src/vue/index.ts +12 -1
package/dist/esm/react/index.js
CHANGED
|
@@ -13171,6 +13171,7 @@ class HumanBehaviorTracker {
|
|
|
13171
13171
|
* This is the main entry point - call this once per page
|
|
13172
13172
|
*/
|
|
13173
13173
|
static init(apiKey, options) {
|
|
13174
|
+
var _a;
|
|
13174
13175
|
// ✅ SUPPRESS COMMON RRWEB ERRORS FOR CLEAN CONSOLE
|
|
13175
13176
|
if (isBrowser$1 && (options === null || options === void 0 ? void 0 : options.suppressConsoleErrors) !== false) {
|
|
13176
13177
|
// Suppress canvas security errors
|
|
@@ -13229,6 +13230,8 @@ class HumanBehaviorTracker {
|
|
|
13229
13230
|
}
|
|
13230
13231
|
// Create new tracker instance
|
|
13231
13232
|
const tracker = new HumanBehaviorTracker(apiKey, options === null || options === void 0 ? void 0 : options.ingestionUrl);
|
|
13233
|
+
// Store canvas recording preference
|
|
13234
|
+
tracker.recordCanvas = (_a = options === null || options === void 0 ? void 0 : options.recordCanvas) !== null && _a !== void 0 ? _a : false;
|
|
13232
13235
|
// Set redacted fields if specified
|
|
13233
13236
|
if (options === null || options === void 0 ? void 0 : options.redactFields) {
|
|
13234
13237
|
tracker.setRedactedFields(options.redactFields);
|
|
@@ -13267,6 +13270,7 @@ class HumanBehaviorTracker {
|
|
|
13267
13270
|
this.sessionStartTime = Date.now();
|
|
13268
13271
|
this.rrwebRecord = null;
|
|
13269
13272
|
this.fullSnapshotTimeout = null;
|
|
13273
|
+
this.recordCanvas = false; // Store canvas recording preference
|
|
13270
13274
|
if (!apiKey) {
|
|
13271
13275
|
throw new Error('Human Behavior API Key is required');
|
|
13272
13276
|
}
|
|
@@ -13851,7 +13855,13 @@ class HumanBehaviorTracker {
|
|
|
13851
13855
|
collectFonts: false, // Disable font collection to reduce errors
|
|
13852
13856
|
inlineStylesheet: true, // Keep styles for proper session replay
|
|
13853
13857
|
recordCrossOriginIframes: false, // Prevent cross-origin iframe errors
|
|
13854
|
-
|
|
13858
|
+
// ✅ CANVAS RECORDING - PostHog-style protection against overwhelm
|
|
13859
|
+
recordCanvas: this.recordCanvas, // Opt-in only
|
|
13860
|
+
sampling: this.recordCanvas ? { canvas: 4 } : undefined, // 4 FPS throttle
|
|
13861
|
+
dataURLOptions: this.recordCanvas ? {
|
|
13862
|
+
type: 'image/webp',
|
|
13863
|
+
quality: 0.4
|
|
13864
|
+
} : undefined, // WebP with 40% quality
|
|
13855
13865
|
// ✅ FULLSNAPSHOT GENERATION - No periodic snapshots to avoid animation issues
|
|
13856
13866
|
// Rely on initial FullSnapshot + navigation-triggered ones only
|
|
13857
13867
|
});
|
|
@@ -14328,16 +14338,14 @@ const HumanBehaviorProvider = ({ apiKey, client, children, options }) => {
|
|
|
14328
14338
|
if (humanBehavior !== null) {
|
|
14329
14339
|
return;
|
|
14330
14340
|
}
|
|
14331
|
-
// Create new tracker instance with the validated apiKey
|
|
14332
|
-
const tracker =
|
|
14333
|
-
|
|
14334
|
-
|
|
14335
|
-
|
|
14336
|
-
|
|
14337
|
-
|
|
14338
|
-
|
|
14339
|
-
tracker.setRedactedFields(options.redactFields);
|
|
14340
|
-
}
|
|
14341
|
+
// Create new tracker instance with the validated apiKey and options
|
|
14342
|
+
const tracker = HumanBehaviorTracker.init(apiKeyRef.current.trim(), {
|
|
14343
|
+
ingestionUrl: options === null || options === void 0 ? void 0 : options.ingestionUrl,
|
|
14344
|
+
logLevel: options === null || options === void 0 ? void 0 : options.logLevel,
|
|
14345
|
+
redactFields: options === null || options === void 0 ? void 0 : options.redactFields,
|
|
14346
|
+
suppressConsoleErrors: options === null || options === void 0 ? void 0 : options.suppressConsoleErrors,
|
|
14347
|
+
recordCanvas: options === null || options === void 0 ? void 0 : options.recordCanvas, // Pass canvas recording option
|
|
14348
|
+
});
|
|
14341
14349
|
setHumanBehavior(tracker);
|
|
14342
14350
|
// Wait for initialization to complete
|
|
14343
14351
|
(_a = tracker.initializationPromise) === null || _a === void 0 ? void 0 : _a.then(() => __awaiter(void 0, void 0, void 0, function* () {
|