UNPKG

@backtrace/sdk-core

Version:
112 lines (111 loc) 4.62 kB
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; }