blocfeed 0.23.0 → 0.25.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.
- package/CHANGELOG.md +29 -0
- package/dist/chunk-6HNU7ECD.js +885 -0
- package/dist/chunk-WKHX5Z3E.cjs +885 -0
- package/dist/{controller-BPGXlZKD.d.cts → controller-v9Hd8d5-.d.cts} +45 -1
- package/dist/{controller-BPGXlZKD.d.ts → controller-v9Hd8d5-.d.ts} +45 -1
- package/dist/engine.cjs +1 -1
- package/dist/engine.d.cts +2 -2
- package/dist/engine.d.ts +2 -2
- package/dist/engine.js +1 -1
- package/dist/main.cjs +1 -1
- package/dist/main.d.cts +3 -3
- package/dist/main.d.ts +3 -3
- package/dist/main.js +1 -1
- package/dist/passive.cjs +1 -1
- package/dist/passive.d.cts +2 -2
- package/dist/passive.d.ts +2 -2
- package/dist/passive.js +1 -1
- package/dist/script.js +25 -24
- package/package.json +1 -1
- package/dist/chunk-NMH3WM6Y.js +0 -884
- package/dist/chunk-SJE73TVR.cjs +0 -884
|
@@ -14,6 +14,21 @@ interface SessionReplayConfig {
|
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* PII scrubbing helper. Regex-based, conservative. Used to clean
|
|
19
|
+
* behavioral event payloads (and custom-event properties) before they
|
|
20
|
+
* leave the browser.
|
|
21
|
+
*
|
|
22
|
+
* Three modes:
|
|
23
|
+
* - "off" — no-op fast path
|
|
24
|
+
* - "default" — emails, phones, US SSNs, credit-card-shaped digits
|
|
25
|
+
* - "strict" — adds IPv4 + IBAN
|
|
26
|
+
*
|
|
27
|
+
* Recursion is bounded at MAX_DEPTH so a pathological deeply-nested
|
|
28
|
+
* input cannot blow the call stack.
|
|
29
|
+
*/
|
|
30
|
+
type PiiScrubMode = "off" | "default" | "strict";
|
|
31
|
+
|
|
17
32
|
/**
|
|
18
33
|
* Behavioral tracking types. Keep this file free of runtime imports —
|
|
19
34
|
* pure type declarations only.
|
|
@@ -65,6 +80,27 @@ interface DeadClickConfig {
|
|
|
65
80
|
observationWindowMs?: number;
|
|
66
81
|
rateLimitPerSelector?: number;
|
|
67
82
|
}
|
|
83
|
+
interface JsErrorConfig {
|
|
84
|
+
enabled?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Per-detector sampling override. Independent of the parent
|
|
87
|
+
* `BehavioralConfig.sampling` — JS errors are usually high-signal,
|
|
88
|
+
* so default is 1.0.
|
|
89
|
+
*/
|
|
90
|
+
sampling?: number;
|
|
91
|
+
/**
|
|
92
|
+
* Additional ignore patterns merged with the built-in defaults
|
|
93
|
+
* (cross-origin "Script error.", ResizeObserver loop warnings,
|
|
94
|
+
* Sentry-style "Non-Error promise rejection captured"). Strings
|
|
95
|
+
* are compiled with `new RegExp(...)`; invalid regex is dropped
|
|
96
|
+
* silently.
|
|
97
|
+
*/
|
|
98
|
+
ignorePatterns?: string[];
|
|
99
|
+
/** Max events per fingerprint per `rateLimitWindowMs`. Default 5. */
|
|
100
|
+
rateLimitPerFingerprint?: number;
|
|
101
|
+
/** Rate-limit window in milliseconds. Default 60_000. */
|
|
102
|
+
rateLimitWindowMs?: number;
|
|
103
|
+
}
|
|
68
104
|
interface BehavioralConfig {
|
|
69
105
|
enabled?: boolean;
|
|
70
106
|
sampling?: number;
|
|
@@ -74,7 +110,15 @@ interface BehavioralConfig {
|
|
|
74
110
|
redirectLoop?: RedirectLoopConfig;
|
|
75
111
|
formDataLoss?: FormDataLossConfig;
|
|
76
112
|
deadClick?: DeadClickConfig;
|
|
113
|
+
jsError?: JsErrorConfig;
|
|
77
114
|
sessionReplay?: SessionReplayConfig;
|
|
115
|
+
/**
|
|
116
|
+
* PII scrubbing applied to `element_text` and `event_data` (and
|
|
117
|
+
* `track()` properties) before events leave the browser. Default
|
|
118
|
+
* `"default"` — emails, phones, US SSNs, credit cards. `"strict"`
|
|
119
|
+
* adds IPv4 and IBAN. `"off"` disables scrubbing entirely.
|
|
120
|
+
*/
|
|
121
|
+
piiScrub?: PiiScrubMode;
|
|
78
122
|
}
|
|
79
123
|
|
|
80
124
|
type MaybePromise<T> = T | Promise<T>;
|
|
@@ -517,4 +561,4 @@ interface BlocFeedController {
|
|
|
517
561
|
}
|
|
518
562
|
declare function createBlocFeedController(config: BlocFeedConfig): BlocFeedController;
|
|
519
563
|
|
|
520
|
-
export { type VideoMime as A, type BlocFeedUser as B, type CaptureConfig as C, type DiagnosticsConfig as D, type ElementDescriptor as E, type FeedbackPayload as F, createBlocFeedController as G, type HoverListener as H, type ImageAsset as I, type BehavioralConfig as J, type BehavioralEvent as K, type BehavioralEventType as L, type MetadataConfig as M, type NetworkEntry as N, type CaptureDiagnostics as O, type MaybePromise as P, type PickerConfig as Q, type RecordingConfig as R, type ScreenshotAdapter as S, type ThemeConfig as T, type
|
|
564
|
+
export { type VideoMime as A, type BlocFeedUser as B, type CaptureConfig as C, type DiagnosticsConfig as D, type ElementDescriptor as E, type FeedbackPayload as F, createBlocFeedController as G, type HoverListener as H, type ImageAsset as I, type BehavioralConfig as J, type BehavioralEvent as K, type BehavioralEventType as L, type MetadataConfig as M, type NetworkEntry as N, type CaptureDiagnostics as O, type MaybePromise as P, type PickerConfig as Q, type RecordingConfig as R, type ScreenshotAdapter as S, type ThemeConfig as T, type PiiScrubMode as U, type VideoAsset as V, type WidgetPosition as W, type TransportResult as X, type CaptureResult as a, type ClickEvent as b, type VoiceConfig as c, type MetadataContext as d, type SecuritySnapshot as e, type SecurityConfig as f, type BlocFeedConfig as g, type BlocFeedController as h, type BlocFeedError as i, type BlocFeedHandle as j, type BlocFeedState as k, type BlocFeedStrings as l, type ConsoleEntry as m, type FeedbackApiResponse as n, type FeedbackCategory as o, type Rect as p, type ScreenshotAdapterOptions as q, type ScreenshotIntent as r, type ScreenshotMime as s, type SecurityFinding as t, type SessionPhase as u, type StateListener as v, type SubmitResult as w, type TransportConfig as x, type TriggerStyle as y, type VideoIntent as z };
|
|
@@ -14,6 +14,21 @@ interface SessionReplayConfig {
|
|
|
14
14
|
};
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
+
/**
|
|
18
|
+
* PII scrubbing helper. Regex-based, conservative. Used to clean
|
|
19
|
+
* behavioral event payloads (and custom-event properties) before they
|
|
20
|
+
* leave the browser.
|
|
21
|
+
*
|
|
22
|
+
* Three modes:
|
|
23
|
+
* - "off" — no-op fast path
|
|
24
|
+
* - "default" — emails, phones, US SSNs, credit-card-shaped digits
|
|
25
|
+
* - "strict" — adds IPv4 + IBAN
|
|
26
|
+
*
|
|
27
|
+
* Recursion is bounded at MAX_DEPTH so a pathological deeply-nested
|
|
28
|
+
* input cannot blow the call stack.
|
|
29
|
+
*/
|
|
30
|
+
type PiiScrubMode = "off" | "default" | "strict";
|
|
31
|
+
|
|
17
32
|
/**
|
|
18
33
|
* Behavioral tracking types. Keep this file free of runtime imports —
|
|
19
34
|
* pure type declarations only.
|
|
@@ -65,6 +80,27 @@ interface DeadClickConfig {
|
|
|
65
80
|
observationWindowMs?: number;
|
|
66
81
|
rateLimitPerSelector?: number;
|
|
67
82
|
}
|
|
83
|
+
interface JsErrorConfig {
|
|
84
|
+
enabled?: boolean;
|
|
85
|
+
/**
|
|
86
|
+
* Per-detector sampling override. Independent of the parent
|
|
87
|
+
* `BehavioralConfig.sampling` — JS errors are usually high-signal,
|
|
88
|
+
* so default is 1.0.
|
|
89
|
+
*/
|
|
90
|
+
sampling?: number;
|
|
91
|
+
/**
|
|
92
|
+
* Additional ignore patterns merged with the built-in defaults
|
|
93
|
+
* (cross-origin "Script error.", ResizeObserver loop warnings,
|
|
94
|
+
* Sentry-style "Non-Error promise rejection captured"). Strings
|
|
95
|
+
* are compiled with `new RegExp(...)`; invalid regex is dropped
|
|
96
|
+
* silently.
|
|
97
|
+
*/
|
|
98
|
+
ignorePatterns?: string[];
|
|
99
|
+
/** Max events per fingerprint per `rateLimitWindowMs`. Default 5. */
|
|
100
|
+
rateLimitPerFingerprint?: number;
|
|
101
|
+
/** Rate-limit window in milliseconds. Default 60_000. */
|
|
102
|
+
rateLimitWindowMs?: number;
|
|
103
|
+
}
|
|
68
104
|
interface BehavioralConfig {
|
|
69
105
|
enabled?: boolean;
|
|
70
106
|
sampling?: number;
|
|
@@ -74,7 +110,15 @@ interface BehavioralConfig {
|
|
|
74
110
|
redirectLoop?: RedirectLoopConfig;
|
|
75
111
|
formDataLoss?: FormDataLossConfig;
|
|
76
112
|
deadClick?: DeadClickConfig;
|
|
113
|
+
jsError?: JsErrorConfig;
|
|
77
114
|
sessionReplay?: SessionReplayConfig;
|
|
115
|
+
/**
|
|
116
|
+
* PII scrubbing applied to `element_text` and `event_data` (and
|
|
117
|
+
* `track()` properties) before events leave the browser. Default
|
|
118
|
+
* `"default"` — emails, phones, US SSNs, credit cards. `"strict"`
|
|
119
|
+
* adds IPv4 and IBAN. `"off"` disables scrubbing entirely.
|
|
120
|
+
*/
|
|
121
|
+
piiScrub?: PiiScrubMode;
|
|
78
122
|
}
|
|
79
123
|
|
|
80
124
|
type MaybePromise<T> = T | Promise<T>;
|
|
@@ -517,4 +561,4 @@ interface BlocFeedController {
|
|
|
517
561
|
}
|
|
518
562
|
declare function createBlocFeedController(config: BlocFeedConfig): BlocFeedController;
|
|
519
563
|
|
|
520
|
-
export { type VideoMime as A, type BlocFeedUser as B, type CaptureConfig as C, type DiagnosticsConfig as D, type ElementDescriptor as E, type FeedbackPayload as F, createBlocFeedController as G, type HoverListener as H, type ImageAsset as I, type BehavioralConfig as J, type BehavioralEvent as K, type BehavioralEventType as L, type MetadataConfig as M, type NetworkEntry as N, type CaptureDiagnostics as O, type MaybePromise as P, type PickerConfig as Q, type RecordingConfig as R, type ScreenshotAdapter as S, type ThemeConfig as T, type
|
|
564
|
+
export { type VideoMime as A, type BlocFeedUser as B, type CaptureConfig as C, type DiagnosticsConfig as D, type ElementDescriptor as E, type FeedbackPayload as F, createBlocFeedController as G, type HoverListener as H, type ImageAsset as I, type BehavioralConfig as J, type BehavioralEvent as K, type BehavioralEventType as L, type MetadataConfig as M, type NetworkEntry as N, type CaptureDiagnostics as O, type MaybePromise as P, type PickerConfig as Q, type RecordingConfig as R, type ScreenshotAdapter as S, type ThemeConfig as T, type PiiScrubMode as U, type VideoAsset as V, type WidgetPosition as W, type TransportResult as X, type CaptureResult as a, type ClickEvent as b, type VoiceConfig as c, type MetadataContext as d, type SecuritySnapshot as e, type SecurityConfig as f, type BlocFeedConfig as g, type BlocFeedController as h, type BlocFeedError as i, type BlocFeedHandle as j, type BlocFeedState as k, type BlocFeedStrings as l, type ConsoleEntry as m, type FeedbackApiResponse as n, type FeedbackCategory as o, type Rect as p, type ScreenshotAdapterOptions as q, type ScreenshotIntent as r, type ScreenshotMime as s, type SecurityFinding as t, type SessionPhase as u, type StateListener as v, type SubmitResult as w, type TransportConfig as x, type TriggerStyle as y, type VideoIntent as z };
|
package/dist/engine.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkWKHX5Z3E_cjs=require('./chunk-WKHX5Z3E.cjs');function s(o){if(o?.aborted)throw new Error("Aborted")}async function v(o){return await new Promise((t,e)=>{let r=new Image;r.onload=()=>t({width:r.naturalWidth,height:r.naturalHeight}),r.onerror=()=>e(new Error("Failed to load generated screenshot")),r.src=o;})}async function l(o,t){let{width:e,height:r}=await v(o);return {dataUrl:o,mime:t,width:e,height:r}}function U(o){return {async captureElement(t,e){if(!chunkWKHX5Z3E_cjs.a())throw new Error("captureElement can only run in the browser");s(e.signal);let r={scale:e.pixelRatio},n=e.mime==="image/jpeg"?await o.domToJpeg(t,{...r,quality:e.quality??.92}):await o.domToPng(t,r);return s(e.signal),await l(n,e.mime)},async captureFullPage(t){if(!chunkWKHX5Z3E_cjs.a())throw new Error("captureFullPage can only run in the browser");s(t.signal);let e=document.documentElement,r=Math.max(e.scrollWidth,e.clientWidth),n=Math.max(e.scrollHeight,e.clientHeight),i=Math.min(1,t.maxDimension/Math.max(r,n)),c={width:Math.max(1,Math.round(r*i)),height:Math.max(1,Math.round(n*i)),scale:t.pixelRatio},a=t.mime==="image/jpeg"?await o.domToJpeg(e,{...c,quality:t.quality??.92}):await o.domToPng(e,c);return s(t.signal),await l(a,t.mime)}}}function O(o){let[t,e]=o.split(",",2);if(!t||!e)throw new Error("Invalid data URL");let n=/data:(.*?);base64/.exec(t)?.[1]||"application/octet-stream",i=atob(e),c=new Uint8Array(i.length);for(let a=0;a<i.length;a+=1)c[a]=i.charCodeAt(a);return new Blob([c],{type:n})}Object.defineProperty(exports,"clearClickEvents",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.j}});Object.defineProperty(exports,"clearDiagnostics",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.z}});Object.defineProperty(exports,"clearQueue",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.g}});Object.defineProperty(exports,"clearSecurityFindings",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.C}});Object.defineProperty(exports,"collectMetadata",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.d}});Object.defineProperty(exports,"createBlocFeedController",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.u}});Object.defineProperty(exports,"createHtmlToImageAdapter",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.b}});Object.defineProperty(exports,"dequeueAll",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.f}});Object.defineProperty(exports,"drainClickEvents",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.i}});Object.defineProperty(exports,"drainDiagnostics",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.y}});Object.defineProperty(exports,"enqueue",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.e}});Object.defineProperty(exports,"getMyFeedbackUrl",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.p}});Object.defineProperty(exports,"getQueueSize",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.h}});Object.defineProperty(exports,"getSecurityFindings",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.B}});Object.defineProperty(exports,"getViewerToken",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.o}});Object.defineProperty(exports,"installDiagnostics",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.w}});Object.defineProperty(exports,"isRecordingSupported",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.k}});Object.defineProperty(exports,"isVoiceSupported",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.m}});Object.defineProperty(exports,"runCapture",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.c}});Object.defineProperty(exports,"runSecretScan",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.A}});Object.defineProperty(exports,"startRecording",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.l}});Object.defineProperty(exports,"startVoiceRecording",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.n}});Object.defineProperty(exports,"transcribeAudio",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.q}});Object.defineProperty(exports,"uninstallDiagnostics",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.x}});exports.createModernScreenshotAdapter=U;exports.dataUrlToBlob=O;
|
package/dist/engine.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as ScreenshotAdapter, C as CaptureConfig, a as CaptureResult, V as VideoAsset, R as RecordingConfig, b as ClickEvent, c as VoiceConfig, M as MetadataConfig, d as MetadataContext, B as BlocFeedUser, F as FeedbackPayload, e as SecuritySnapshot, f as SecurityConfig } from './controller-
|
|
2
|
-
export { g as BlocFeedConfig, h as BlocFeedController, i as BlocFeedError, j as BlocFeedHandle, k as BlocFeedState, l as BlocFeedStrings, m as ConsoleEntry, D as DiagnosticsConfig, E as ElementDescriptor, n as FeedbackApiResponse, o as FeedbackCategory, H as HoverListener, I as ImageAsset, N as NetworkEntry, p as Rect, q as ScreenshotAdapterOptions, r as ScreenshotIntent, s as ScreenshotMime, t as SecurityFinding, u as SessionPhase, v as StateListener, w as SubmitResult, T as ThemeConfig, x as TransportConfig, y as TriggerStyle, z as VideoIntent, A as VideoMime, W as WidgetPosition, G as createBlocFeedController } from './controller-
|
|
1
|
+
import { S as ScreenshotAdapter, C as CaptureConfig, a as CaptureResult, V as VideoAsset, R as RecordingConfig, b as ClickEvent, c as VoiceConfig, M as MetadataConfig, d as MetadataContext, B as BlocFeedUser, F as FeedbackPayload, e as SecuritySnapshot, f as SecurityConfig } from './controller-v9Hd8d5-.cjs';
|
|
2
|
+
export { g as BlocFeedConfig, h as BlocFeedController, i as BlocFeedError, j as BlocFeedHandle, k as BlocFeedState, l as BlocFeedStrings, m as ConsoleEntry, D as DiagnosticsConfig, E as ElementDescriptor, n as FeedbackApiResponse, o as FeedbackCategory, H as HoverListener, I as ImageAsset, N as NetworkEntry, p as Rect, q as ScreenshotAdapterOptions, r as ScreenshotIntent, s as ScreenshotMime, t as SecurityFinding, u as SessionPhase, v as StateListener, w as SubmitResult, T as ThemeConfig, x as TransportConfig, y as TriggerStyle, z as VideoIntent, A as VideoMime, W as WidgetPosition, G as createBlocFeedController } from './controller-v9Hd8d5-.cjs';
|
|
3
3
|
|
|
4
4
|
declare function createHtmlToImageAdapter(): ScreenshotAdapter;
|
|
5
5
|
|
package/dist/engine.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { S as ScreenshotAdapter, C as CaptureConfig, a as CaptureResult, V as VideoAsset, R as RecordingConfig, b as ClickEvent, c as VoiceConfig, M as MetadataConfig, d as MetadataContext, B as BlocFeedUser, F as FeedbackPayload, e as SecuritySnapshot, f as SecurityConfig } from './controller-
|
|
2
|
-
export { g as BlocFeedConfig, h as BlocFeedController, i as BlocFeedError, j as BlocFeedHandle, k as BlocFeedState, l as BlocFeedStrings, m as ConsoleEntry, D as DiagnosticsConfig, E as ElementDescriptor, n as FeedbackApiResponse, o as FeedbackCategory, H as HoverListener, I as ImageAsset, N as NetworkEntry, p as Rect, q as ScreenshotAdapterOptions, r as ScreenshotIntent, s as ScreenshotMime, t as SecurityFinding, u as SessionPhase, v as StateListener, w as SubmitResult, T as ThemeConfig, x as TransportConfig, y as TriggerStyle, z as VideoIntent, A as VideoMime, W as WidgetPosition, G as createBlocFeedController } from './controller-
|
|
1
|
+
import { S as ScreenshotAdapter, C as CaptureConfig, a as CaptureResult, V as VideoAsset, R as RecordingConfig, b as ClickEvent, c as VoiceConfig, M as MetadataConfig, d as MetadataContext, B as BlocFeedUser, F as FeedbackPayload, e as SecuritySnapshot, f as SecurityConfig } from './controller-v9Hd8d5-.js';
|
|
2
|
+
export { g as BlocFeedConfig, h as BlocFeedController, i as BlocFeedError, j as BlocFeedHandle, k as BlocFeedState, l as BlocFeedStrings, m as ConsoleEntry, D as DiagnosticsConfig, E as ElementDescriptor, n as FeedbackApiResponse, o as FeedbackCategory, H as HoverListener, I as ImageAsset, N as NetworkEntry, p as Rect, q as ScreenshotAdapterOptions, r as ScreenshotIntent, s as ScreenshotMime, t as SecurityFinding, u as SessionPhase, v as StateListener, w as SubmitResult, T as ThemeConfig, x as TransportConfig, y as TriggerStyle, z as VideoIntent, A as VideoMime, W as WidgetPosition, G as createBlocFeedController } from './controller-v9Hd8d5-.js';
|
|
3
3
|
|
|
4
4
|
declare function createHtmlToImageAdapter(): ScreenshotAdapter;
|
|
5
5
|
|
package/dist/engine.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {a}from'./chunk-
|
|
1
|
+
import {a}from'./chunk-6HNU7ECD.js';export{j as clearClickEvents,z as clearDiagnostics,g as clearQueue,C as clearSecurityFindings,d as collectMetadata,u as createBlocFeedController,b as createHtmlToImageAdapter,f as dequeueAll,i as drainClickEvents,y as drainDiagnostics,e as enqueue,p as getMyFeedbackUrl,h as getQueueSize,B as getSecurityFindings,o as getViewerToken,w as installDiagnostics,k as isRecordingSupported,m as isVoiceSupported,c as runCapture,A as runSecretScan,l as startRecording,n as startVoiceRecording,q as transcribeAudio,x as uninstallDiagnostics}from'./chunk-6HNU7ECD.js';function s(o){if(o?.aborted)throw new Error("Aborted")}async function v(o){return await new Promise((t,e)=>{let r=new Image;r.onload=()=>t({width:r.naturalWidth,height:r.naturalHeight}),r.onerror=()=>e(new Error("Failed to load generated screenshot")),r.src=o;})}async function l(o,t){let{width:e,height:r}=await v(o);return {dataUrl:o,mime:t,width:e,height:r}}function U(o){return {async captureElement(t,e){if(!a())throw new Error("captureElement can only run in the browser");s(e.signal);let r={scale:e.pixelRatio},n=e.mime==="image/jpeg"?await o.domToJpeg(t,{...r,quality:e.quality??.92}):await o.domToPng(t,r);return s(e.signal),await l(n,e.mime)},async captureFullPage(t){if(!a())throw new Error("captureFullPage can only run in the browser");s(t.signal);let e=document.documentElement,r=Math.max(e.scrollWidth,e.clientWidth),n=Math.max(e.scrollHeight,e.clientHeight),i=Math.min(1,t.maxDimension/Math.max(r,n)),c={width:Math.max(1,Math.round(r*i)),height:Math.max(1,Math.round(n*i)),scale:t.pixelRatio},a$1=t.mime==="image/jpeg"?await o.domToJpeg(e,{...c,quality:t.quality??.92}):await o.domToPng(e,c);return s(t.signal),await l(a$1,t.mime)}}}function O(o){let[t,e]=o.split(",",2);if(!t||!e)throw new Error("Invalid data URL");let n=/data:(.*?);base64/.exec(t)?.[1]||"application/octet-stream",i=atob(e),c=new Uint8Array(i.length);for(let a=0;a<i.length;a+=1)c[a]=i.charCodeAt(a);return new Blob([c],{type:n})}export{U as createModernScreenshotAdapter,O as dataUrlToBlob};
|
package/dist/main.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
'use strict';var
|
|
2
|
+
'use strict';var chunkWKHX5Z3E_cjs=require('./chunk-WKHX5Z3E.cjs');Object.defineProperty(exports,"BehavioralTracker",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.t}});Object.defineProperty(exports,"BlocFeed",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.G}});Object.defineProperty(exports,"BlocFeedProvider",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.v}});Object.defineProperty(exports,"BlocFeedWidget",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.E}});Object.defineProperty(exports,"SDK_VERSION",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.F}});Object.defineProperty(exports,"track",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.s}});Object.defineProperty(exports,"useBlocFeed",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.D}});
|
package/dist/main.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as BlocFeedConfig, j as BlocFeedHandle, k as BlocFeedState, h as BlocFeedController, C as CaptureConfig, o as FeedbackCategory, w as SubmitResult, K as BehavioralEvent, J as BehavioralConfig } from './controller-
|
|
2
|
-
export { L as BehavioralEventType, i as BlocFeedError, l as BlocFeedStrings, B as BlocFeedUser, O as CaptureDiagnostics, a as CaptureResult, m as ConsoleEntry, D as DiagnosticsConfig, E as ElementDescriptor, n as FeedbackApiResponse, F as FeedbackPayload, I as ImageAsset, P as MaybePromise, M as MetadataConfig, d as MetadataContext, N as NetworkEntry, Q as PickerConfig, R as RecordingConfig, p as Rect, S as ScreenshotAdapter, q as ScreenshotAdapterOptions, r as ScreenshotIntent, s as ScreenshotMime, f as SecurityConfig, t as SecurityFinding, e as SecuritySnapshot, u as SessionPhase, T as ThemeConfig, x as TransportConfig,
|
|
1
|
+
import { g as BlocFeedConfig, j as BlocFeedHandle, k as BlocFeedState, h as BlocFeedController, C as CaptureConfig, o as FeedbackCategory, w as SubmitResult, K as BehavioralEvent, J as BehavioralConfig } from './controller-v9Hd8d5-.cjs';
|
|
2
|
+
export { L as BehavioralEventType, i as BlocFeedError, l as BlocFeedStrings, B as BlocFeedUser, O as CaptureDiagnostics, a as CaptureResult, m as ConsoleEntry, D as DiagnosticsConfig, E as ElementDescriptor, n as FeedbackApiResponse, F as FeedbackPayload, I as ImageAsset, P as MaybePromise, M as MetadataConfig, d as MetadataContext, N as NetworkEntry, Q as PickerConfig, U as PiiScrubMode, R as RecordingConfig, p as Rect, S as ScreenshotAdapter, q as ScreenshotAdapterOptions, r as ScreenshotIntent, s as ScreenshotMime, f as SecurityConfig, t as SecurityFinding, e as SecuritySnapshot, u as SessionPhase, T as ThemeConfig, x as TransportConfig, X as TransportResult, y as TriggerStyle, V as VideoAsset, z as VideoIntent, A as VideoMime, c as VoiceConfig, W as WidgetPosition } from './controller-v9Hd8d5-.cjs';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import * as react from 'react';
|
|
5
5
|
import { ReactNode } from 'react';
|
|
@@ -110,7 +110,7 @@ declare function track(name: string, properties?: TrackProperties, options?: Tra
|
|
|
110
110
|
* Pinned at publish time. Sent with the heartbeat so the dashboard can
|
|
111
111
|
* surface SDK version drift to customers.
|
|
112
112
|
*/
|
|
113
|
-
declare const SDK_VERSION = "0.
|
|
113
|
+
declare const SDK_VERSION = "0.24.0";
|
|
114
114
|
|
|
115
115
|
/**
|
|
116
116
|
* Non-React entry point. Mirrors the shape of the rest of the SDK exports;
|
package/dist/main.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { g as BlocFeedConfig, j as BlocFeedHandle, k as BlocFeedState, h as BlocFeedController, C as CaptureConfig, o as FeedbackCategory, w as SubmitResult, K as BehavioralEvent, J as BehavioralConfig } from './controller-
|
|
2
|
-
export { L as BehavioralEventType, i as BlocFeedError, l as BlocFeedStrings, B as BlocFeedUser, O as CaptureDiagnostics, a as CaptureResult, m as ConsoleEntry, D as DiagnosticsConfig, E as ElementDescriptor, n as FeedbackApiResponse, F as FeedbackPayload, I as ImageAsset, P as MaybePromise, M as MetadataConfig, d as MetadataContext, N as NetworkEntry, Q as PickerConfig, R as RecordingConfig, p as Rect, S as ScreenshotAdapter, q as ScreenshotAdapterOptions, r as ScreenshotIntent, s as ScreenshotMime, f as SecurityConfig, t as SecurityFinding, e as SecuritySnapshot, u as SessionPhase, T as ThemeConfig, x as TransportConfig,
|
|
1
|
+
import { g as BlocFeedConfig, j as BlocFeedHandle, k as BlocFeedState, h as BlocFeedController, C as CaptureConfig, o as FeedbackCategory, w as SubmitResult, K as BehavioralEvent, J as BehavioralConfig } from './controller-v9Hd8d5-.js';
|
|
2
|
+
export { L as BehavioralEventType, i as BlocFeedError, l as BlocFeedStrings, B as BlocFeedUser, O as CaptureDiagnostics, a as CaptureResult, m as ConsoleEntry, D as DiagnosticsConfig, E as ElementDescriptor, n as FeedbackApiResponse, F as FeedbackPayload, I as ImageAsset, P as MaybePromise, M as MetadataConfig, d as MetadataContext, N as NetworkEntry, Q as PickerConfig, U as PiiScrubMode, R as RecordingConfig, p as Rect, S as ScreenshotAdapter, q as ScreenshotAdapterOptions, r as ScreenshotIntent, s as ScreenshotMime, f as SecurityConfig, t as SecurityFinding, e as SecuritySnapshot, u as SessionPhase, T as ThemeConfig, x as TransportConfig, X as TransportResult, y as TriggerStyle, V as VideoAsset, z as VideoIntent, A as VideoMime, c as VoiceConfig, W as WidgetPosition } from './controller-v9Hd8d5-.js';
|
|
3
3
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
4
4
|
import * as react from 'react';
|
|
5
5
|
import { ReactNode } from 'react';
|
|
@@ -110,7 +110,7 @@ declare function track(name: string, properties?: TrackProperties, options?: Tra
|
|
|
110
110
|
* Pinned at publish time. Sent with the heartbeat so the dashboard can
|
|
111
111
|
* surface SDK version drift to customers.
|
|
112
112
|
*/
|
|
113
|
-
declare const SDK_VERSION = "0.
|
|
113
|
+
declare const SDK_VERSION = "0.24.0";
|
|
114
114
|
|
|
115
115
|
/**
|
|
116
116
|
* Non-React entry point. Mirrors the shape of the rest of the SDK exports;
|
package/dist/main.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export{t as BehavioralTracker,G as BlocFeed,v as BlocFeedProvider,E as BlocFeedWidget,F as SDK_VERSION,s as track,D as useBlocFeed}from'./chunk-
|
|
2
|
+
export{t as BehavioralTracker,G as BlocFeed,v as BlocFeedProvider,E as BlocFeedWidget,F as SDK_VERSION,s as track,D as useBlocFeed}from'./chunk-6HNU7ECD.js';
|
package/dist/passive.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
'use strict';var
|
|
1
|
+
'use strict';var chunkWKHX5Z3E_cjs=require('./chunk-WKHX5Z3E.cjs'),react=require('react');function a(e){e.user?.id&&chunkWKHX5Z3E_cjs.r(e.user.id);let i=new chunkWKHX5Z3E_cjs.t({blocfeedId:e.blocfeed_id,...e.config!==void 0?{config:e.config}:{},...e.extraSdkFeatures!==void 0?{extraSdkFeatures:e.extraSdkFeatures}:{}});return i.install(),i}function u(e){return react.useEffect(()=>{let i=a({blocfeed_id:e.blocfeed_id,...e.user!==void 0?{user:e.user}:{},...e.config!==void 0?{config:e.config}:{}});return ()=>{i.uninstall();}},[e.blocfeed_id]),null}var r=null,g={init(e){r||(r=a(e));},identify(e,i){chunkWKHX5Z3E_cjs.r(e);},track(e,i){chunkWKHX5Z3E_cjs.s(e,i);},uninstall(){r&&(r.uninstall(),r=null);}};function v(){return r}function k(){r&&(r.uninstall(),r=null);}Object.defineProperty(exports,"SDK_VERSION",{enumerable:true,get:function(){return chunkWKHX5Z3E_cjs.F}});exports.BlocFeed=g;exports.BlocFeedPassive=u;exports.__getStandaloneTrackerForTesting=v;exports.__resetStandaloneTrackerForTesting=k;
|
package/dist/passive.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TrackProperties, BehavioralTracker } from './main.cjs';
|
|
2
2
|
export { SDK_VERSION } from './main.cjs';
|
|
3
|
-
import { B as BlocFeedUser, J as BehavioralConfig } from './controller-
|
|
4
|
-
export { K as BehavioralEvent } from './controller-
|
|
3
|
+
import { B as BlocFeedUser, J as BehavioralConfig } from './controller-v9Hd8d5-.cjs';
|
|
4
|
+
export { K as BehavioralEvent } from './controller-v9Hd8d5-.cjs';
|
|
5
5
|
import 'react/jsx-runtime';
|
|
6
6
|
import 'react';
|
|
7
7
|
|
package/dist/passive.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { TrackProperties, BehavioralTracker } from './main.js';
|
|
2
2
|
export { SDK_VERSION } from './main.js';
|
|
3
|
-
import { B as BlocFeedUser, J as BehavioralConfig } from './controller-
|
|
4
|
-
export { K as BehavioralEvent } from './controller-
|
|
3
|
+
import { B as BlocFeedUser, J as BehavioralConfig } from './controller-v9Hd8d5-.js';
|
|
4
|
+
export { K as BehavioralEvent } from './controller-v9Hd8d5-.js';
|
|
5
5
|
import 'react/jsx-runtime';
|
|
6
6
|
import 'react';
|
|
7
7
|
|
package/dist/passive.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import {s,r as r$1,t}from'./chunk-
|
|
1
|
+
import {s,r as r$1,t}from'./chunk-6HNU7ECD.js';export{F as SDK_VERSION}from'./chunk-6HNU7ECD.js';import {useEffect}from'react';function a(e){e.user?.id&&r$1(e.user.id);let i=new t({blocfeedId:e.blocfeed_id,...e.config!==void 0?{config:e.config}:{},...e.extraSdkFeatures!==void 0?{extraSdkFeatures:e.extraSdkFeatures}:{}});return i.install(),i}function u(e){return useEffect(()=>{let i=a({blocfeed_id:e.blocfeed_id,...e.user!==void 0?{user:e.user}:{},...e.config!==void 0?{config:e.config}:{}});return ()=>{i.uninstall();}},[e.blocfeed_id]),null}var r=null,g={init(e){r||(r=a(e));},identify(e,i){r$1(e);},track(e,i){s(e,i);},uninstall(){r&&(r.uninstall(),r=null);}};function v(){return r}function k(){r&&(r.uninstall(),r=null);}export{g as BlocFeed,u as BlocFeedPassive,v as __getStandaloneTrackerForTesting,k as __resetStandaloneTrackerForTesting};
|