UNPKG

atatus-js

Version:

Atatus Real User Monitoring and Advanced error tracking plugin for web

333 lines (274 loc) 9.54 kB
// Type definitions for atatus.js // Project: https://github.com/atatus/atatus-js interface AtatusOptions { /** Print debug message */ debugMode?: boolean; /** When present, the IP address of the sender will be anonymized. */ anonymizeIp?: boolean; /** When present, change hash routes into clean path. */ hashRoutes?: boolean; /** Control what should be monitored with Atatus */ disableBreadcrumbs?: boolean; disableErrorTracking?: boolean; disableAjaxMonitoring?: boolean; disableRUM?: boolean; disableSession?: boolean; disableSPA?: boolean; /** Report AJAX 4xx and 5xx status codes as error to Atatus */ reportAjaxErrors?: boolean; /** Report unhandled promise rejections as error to Atatus */ reportUnhandledRejections?: boolean; /** Additional data to be sent onto the error. */ customData?: Object; /** Additional Filterable data to be tagged onto the performance and error data. */ tags?: string[]; /** Save data during offline and Send it to Atatus when it is online. */ offline?: boolean; /** The release version of the application you are monitoring with Atatus */ version?: string; /** List of error messages to be filtered out before being sent to Atatus. */ ignoreErrors?: (RegExp | string)[]; /** DEPRECATED: Only report performances metrics from whole domains matching a regex pattern. */ allowedDomains?: (RegExp | string)[]; /** It will ignore performance metrics from whole urls matching a regex pattern or string. */ ignoreUrls?: (RegExp | string)[]; /** The inverse of ignoreUrls. Only report performance metrics from whole urls matching a regex pattern or string. */ whitelistUrls?: (RegExp | string)[]; // Enable or Disable all console activity console? : boolean; consoleTimeline? : boolean; consoleDisplay? : boolean; consoleErrorNotify? : boolean; consoleTimelineLevels? : string[]; /** A function which allows mutation of the data payload right before being sent to Atatus */ beforeSend?: (data: any) => any; /** A function which allows mutation of the error data payload right before being sent to Atatus */ beforeErrorSend?: (data: any) => any; /** A callback function that allows to specify the custom grouping key of the error. */ groupingKeyCallback?: (data: any) => string; /** By default, Atatus does not truncate messages. If you need to truncate characters for whatever reason, you may set this to limit the length. */ // maxMessageLength?: number; urlMaxLength?: number; maxDuplicateErrors?: number; } interface Atatus { /** Atatus.js version. */ VERSION: string; /** * If you need to conditionally check if atatus needs to be initialized or not, * you can use the isConfigured function. It will return true if Atatus is already initialized. * * @return {boolean} */ isConfigured(): boolean; /** * Allow multiple versions of Atatus to be installed. * Strip Atatus from the global context and returns the instance. * * @return {!Atatus} A self reference. */ noConflict(): Atatus; /** * Configure Atatus with a API Key and extra options * * @param {string} apiKey The public Atatus project API Key * @param {object} options Optional set of of global options [optional] * @return {!Atatus} A self reference. */ config(apiKey: string, options?: AtatusOptions): Atatus; /** * Installs all necessary configurations to capture errors and * performance metrics. * * @return {!Atatus} A self reference. */ install(): Atatus; /** * Un-install Atatus Agent * * @return {!Atatus} A self reference. */ uninstall(): Atatus; /** * Manually capture an exception and send it over to Atatus * * @param {error} ex An exception to be logged * @param {object} customData Custom meta data for this error [optional] * @param {array} tags List of tags for this error [optional] * @return {!Atatus} A self reference. */ notify(ex: Error, customData?: Object, tags?: string[]): Atatus; /** * Set a user to be sent along with the payload. * * @param {object} user An object representing user data [optional] * @return {!Atatus} A self reference. */ setUser(id: string, email?: string, name?: string): Atatus; /** * Clear the user context, removing the user data that would be sent to Atatus. * * @return {!Atatus} A self reference. */ resetUser(): Atatus; /** * Enable hash routes or path * * @param {boolean} hashRoutes Value indicates whether to convert hash routes into clean URL. * @return {!Atatus} A self reference. */ setHashRoutes(hashRoutes: boolean): Atatus; /** * Enable offline * * @param {boolean} offline Value indicates whether to enable offline data collection or not. * @return {!Atatus} A self reference. */ enableOffline(offline: boolean): Atatus; /** * Set release version of application * * @param {string} version Application version number * @return {!Atatus} A self reference. */ setVersion(version: string): Atatus; /** * Set meta data which helps you to debug the error * * @param {Object} customData Object contains custom details to be send with error. * @return {!Atatus} A self reference. */ setCustomData(customData: Object): Atatus; /** * Set tags by which you can filter the error and performance data * * @param {string[]} tags List of tags * @return {!Atatus} A self reference. */ setTags(tags: string[]): Atatus; /** * Set ignored urls * * @param {(RegExp | string)[]} ignoreUrls List of ignored urls. * @return {!Atatus} A self reference. */ setIgnoreUrls(ignoreUrls: (RegExp | string)[]): Atatus; /** * Get list of ignored urls * * @return {(RegExp | string)[]} */ getIgnoreUrls(): (RegExp | string)[]; /** * Set white-list urls * * @param {(RegExp | string)[]} whitelistUrls List of whitelist urls. * @return {!Atatus} A self reference. */ setWhitelistUrls(whitelistUrls: (RegExp | string)[]): Atatus; /** * Get list of white-list urls * * @return {(RegExp | string)[]} */ getWhitelistUrls(): (RegExp | string)[]; /** * Set allowed domains * * @param {(RegExp | string)[]} allowedDomains List of allowed domains. * @return {!Atatus} A self reference. */ setAllowedDomains(allowedDomains: (RegExp | string)[]): Atatus; /** * Get list of allowed domains * * @return {(RegExp | string)[]} */ getAllowedDomains(): (RegExp | string)[]; /** * Set the endpoint where data should be sent * * @param {string} apiEndpoint The endpoint where all data has to be sent. * @return {!Atatus} A self reference. */ setAPIEndpoint(apiEndpoint: string): Atatus; /** * Get the API Endpoint * * @return {string} */ getAPIEndpoint(): string; /** * Log a breadcrumb * * @param {any} value Value of the breadcrumb. * @param {string} type Type of the breadcrumb can be info, error, warn. * @return {!Atatus} A self reference. */ leaveBreadcrumb(value: any, type?: string): Atatus; /** * Specify a function that allows mutation of the data payload right before being sent to Atatus. * * @param {any} data Payload of the error or performance. * @return {!Atatus} A self reference. */ onBeforeSend(data: any): Atatus; /** * Specify a callback function that allows you to apply your own filters to determine if the message should be sent to Atatus. * * @param {any} data Payload of the error. * @return {!Atatus} A self reference. */ onBeforeErrorSend(data: any): Atatus; /** * Specify a callback function that allows to specify the custom grouping key of the error * * @param {any} data Payload of the error. * @return {!Atatus} A self reference. */ setGroupingKeyCallback(data: any): Atatus; /** * End the session * * @return {!Atatus} A self reference. */ endSession(): Atatus; /** * Begin the transaction * * @param {String} txnName - Transaction name */ beginTransaction(txnName: string): void; /** * End the transaction successfully * * @param {String} txnName - Transaction name */ endTransaction(txnName: string): void; /** * Fail the transaction * * @param {String} txnName - Transaction name */ failTransaction(txnName: string): void; /** * Cancel the transaction * * @param {String} txnName - Transaction name */ cancelTransaction(txnName: string): void; /** * Record the transaction with the given duration * * @param {String} txnName - Transaction name * @param {Number} duration - Time duration in milliseconds */ recordTransaction(txnName: string, duration: number, success?: boolean): void; } interface Window { _atatusConfig: AtatusOptions } declare var atatus: Atatus; declare module "atatus-js" { export = atatus; }