posthog-js
Version:
Posthog-js allows you to automatically capture usage and send events to PostHog.
99 lines (98 loc) • 3.08 kB
TypeScript
import type { blockClass, eventWithTime, hooksParam, KeepIframeSrcFn, maskTextClass, PackFn, RecordPlugin, SamplingStrategy } from './rrweb-types';
type MaskInputOptions = Partial<{
color: boolean;
date: boolean;
'datetime-local': boolean;
email: boolean;
month: boolean;
number: boolean;
range: boolean;
search: boolean;
tel: boolean;
text: boolean;
time: boolean;
url: boolean;
week: boolean;
textarea: boolean;
select: boolean;
password: boolean;
}>;
type MaskInputFn = (text: string, element: HTMLElement) => string;
type MaskTextFn = (text: string, element: HTMLElement | null) => string;
type MaskAttributeFn = (name: string, value: string, element: Element) => string;
type CanvasMasking = {
regionsFn?: (canvas: HTMLCanvasElement) => Array<{
x: number;
y: number;
width: number;
height: number;
}> | null | undefined;
configured?: () => boolean;
};
type SlimDOMOptions = Partial<{
script: boolean;
comment: boolean;
headFavicon: boolean;
headWhitespace: boolean;
headMetaDescKeywords: boolean;
headMetaSocial: boolean;
headMetaRobots: boolean;
headMetaHttpEquiv: boolean;
headMetaAuthorship: boolean;
headMetaVerification: boolean;
headTitleMutations: boolean;
}>;
type DataURLOptions = Partial<{
type: string;
quality: number;
}>;
type ErrorHandler = (error: unknown, context?: 'rrweb' | 'host') => void | boolean;
export type recordOptions = {
emit?: (e: eventWithTime, isCheckout?: boolean) => void;
checkoutEveryNth?: number;
checkoutEveryNms?: number;
blockClass?: blockClass;
blockSelector?: string;
ignoreClass?: string;
ignoreSelector?: string;
maskTextClass?: maskTextClass;
maskTextSelector?: string;
maskAllInputs?: boolean;
maskInputOptions?: MaskInputOptions;
maskInputFn?: MaskInputFn;
maskTextFn?: MaskTextFn;
maskAllElementAttributes?: boolean;
maskAttributeFn?: MaskAttributeFn;
slimDOMOptions?: SlimDOMOptions | 'all' | true;
ignoreCSSAttributes?: Set<string>;
attributeFilter?: string[];
inlineStylesheet?: boolean;
inlineStylesheetBudgetRules?: number;
hooks?: hooksParam;
packFn?: PackFn;
sampling?: SamplingStrategy;
dataURLOptions?: DataURLOptions;
canvasResolutionScale?: number;
canvasMasking?: CanvasMasking;
recordDOM?: boolean;
recordCanvas?: boolean;
recordCrossOriginIframes?: boolean;
recordAfter?: 'DOMContentLoaded' | 'load';
userTriggeredOnInput?: boolean;
collectFonts?: boolean;
inlineImages?: boolean;
plugins?: RecordPlugin[];
mousemoveWait?: number;
keepIframeSrcFn?: KeepIframeSrcFn;
errorHandler?: ErrorHandler;
};
export type rrwebRecord = {
(options: recordOptions): (() => void) | undefined;
addCustomEvent: (tag: string, payload: any) => void;
takeFullSnapshot: () => void;
mirror: {
getId(n: Node | undefined | null): number;
getNode(id: number): Node | null;
};
};
export {};