import type {Sentry} from '#/logger/sentry' export enum LogLevel { Debug = 'debug', Info = 'info', Log = 'log', Warn = 'warn', Error = 'error', } export type Transport = ( level: LogLevel, message: string | Error, metadata: Metadata, timestamp: number, ) => void /** * A union of some of Sentry's breadcrumb properties as well as Sentry's * `captureException` parameter, `CaptureContext`. */ export type Metadata = { /** * Applied as Sentry breadcrumb types. Defaults to `default`. * * @see https://develop.sentry.dev/sdk/event-payloads/breadcrumbs/#breadcrumb-types */ type?: | 'default' | 'debug' | 'error' | 'navigation' | 'http' | 'info' | 'query' | 'transaction' | 'ui' | 'user' /** * Passed through to `Sentry.captureException` * * @see https://github.com/getsentry/sentry-javascript/blob/903addf9a1a1534a6cb2ba3143654b918a86f6dd/packages/types/src/misc.ts#L65 */ tags?: { [key: string]: | number | string | boolean | bigint | symbol | null | undefined } /** * Any additional data, passed through to Sentry as `extra` param on * exceptions, or the `data` param on breadcrumbs. */ [key: string]: unknown } & Parameters[1] export type ConsoleTransportEntry = { id: string timestamp: number level: LogLevel message: string | Error metadata: Metadata }