@backtrace/sdk-core
Version:
Backtrace-JavaScript SDK core library
112 lines (111 loc) • 4.62 kB
TypeScript
import { CoreClientSetup } from './builder/CoreClientSetup.js';
import { Events } from './common/Events.js';
import { ClientEvents } from './events/ClientEvents.js';
import { BacktraceAttachment, BacktraceBreadcrumbs, BacktraceConfiguration, BacktraceReportSubmissionResult, BacktraceSubmissionResponse, FileSystem, SessionFiles } from './index.js';
import { AttributeType, BacktraceData } from './model/data/BacktraceData.js';
import { BacktraceReport } from './model/report/BacktraceReport.js';
import { AttachmentManager } from './modules/attachments/AttachmentManager.js';
import { AttributeManager } from './modules/attribute/AttributeManager.js';
import { BacktraceModule } from './modules/BacktraceModule.js';
import { BacktraceModuleCtor, ReadonlyBacktraceModules } from './modules/BacktraceModules.js';
import { BacktraceDatabase } from './modules/database/BacktraceDatabase.js';
import { BacktraceMetrics } from './modules/metrics/BacktraceMetrics.js';
export declare abstract class BacktraceCoreClient<O extends BacktraceConfiguration = BacktraceConfiguration> extends Events<ClientEvents> {
/**
* Backtrace client instance
*/
protected static _instance?: BacktraceCoreClient;
/**
* Determines if the client is enabled.
*/
get enabled(): boolean;
/**
* Current session id
*/
get sessionId(): string;
/**
* Backtrace SDK name
*/
get agent(): string;
/**
* Backtrace SDK version
*/
get agentVersion(): string;
/**
* Available cached client attributes
*/
get attributes(): Record<string, AttributeType>;
/**
* Available cached client annotatations
*/
get annotations(): Record<string, unknown>;
get metrics(): BacktraceMetrics | undefined;
get breadcrumbs(): BacktraceBreadcrumbs | undefined;
get database(): BacktraceDatabase | undefined;
/**
* Client cached attachments
*/
get attachments(): readonly BacktraceAttachment[];
/**
* Modules used by the client
*/
protected get modules(): ReadonlyBacktraceModules;
protected get sessionFiles(): SessionFiles | undefined;
protected readonly options: O;
protected readonly attributeManager: AttributeManager;
protected readonly attachmentManager: AttachmentManager;
protected readonly fileSystem?: FileSystem;
private readonly _modules;
private readonly _dataBuilder;
private readonly _reportSubmission;
private readonly _rateLimitWatcher;
private readonly _sessionProvider;
private readonly _sdkOptions;
private readonly _requestHandler;
private _enabled;
protected constructor(setup: CoreClientSetup<O>);
initialize(): void;
/**
* Add attribute to Backtrace Client reports.
* @param attributes key-value object with attributes.
*/
addAttribute(attributes: Record<string, unknown>): void;
/**
* Add dynamic attributes to Backtrace Client reports.
* @param attributes function returning key-value object with attributes.
*/
addAttribute(attributes: () => Record<string, unknown>): void;
/**
* Add attachment to the client
* @param attachment attachment
*/
addAttachment(...attachments: BacktraceAttachment[]): void;
addAttachment(...attachments: Array<() => BacktraceAttachment>): void;
/**
* Asynchronously sends error data to Backtrace.
* @param error Error or message
* @param attributes Report attributes
* @param attachments Report attachments
* @param abortSignal Signal to abort sending
*/
send(error: Error | string, attributes?: Record<string, unknown>, attachments?: BacktraceAttachment[], abortSignal?: AbortSignal): Promise<BacktraceReportSubmissionResult<BacktraceSubmissionResponse>>;
/**
* Asynchronously sends error data to Backtrace
* @param report Backtrace Report
* @param abortSignal Signal to abort sending
*/
send(report: BacktraceReport, abortSignal?: AbortSignal): Promise<BacktraceReportSubmissionResult<BacktraceSubmissionResponse>>;
/**
* Disposes the client and all client callbacks
*/
dispose(): void;
protected addModule<T extends BacktraceModule>(module: T): void;
protected addModule<T extends BacktraceModule>(type: BacktraceModuleCtor<T>, module: T): void;
protected generateSubmissionData(report: BacktraceReport): BacktraceData | undefined;
private generateSubmissionAttachments;
private skipFrameOnMessage;
private isReport;
private getModuleBindData;
private static destroy;
private validateAttributes;
}