Event payloads
Server events use the TraceEvent envelope. Payloads by type:
req
{
method, url, headers, body, params, query, cookies,
startTime?: number // performance.now() when performance enabled
}res
{
statusCode, headers, body?, elapsedTimeMs: number | null
}functionCall
{
name: string
args: unknown[]
result: unknown
error: { name?, message, stack? } | null
executionTimeMs: number | null
executionOrder: string[]
parentName: string | null
loopDetected: boolean
phase?: 'enter' | 'exit' // missing ⇒ treat as exit (legacy)
}reqModified / resModified
{
field: string // e.g. "headers.Content-Type", "statusCode"
newValue: unknown
source?: 'app' | 'framework'
}middlewareCall
{
name: string;
}error
{ name?, message: string, stack? }dbQuery
Emitted by @idebug/db for each ORM/driver round-trip. Belongs in the same call tree as functionCall via parentName / executionOrder.
{
name: string // e.g. prisma.User.findMany
orm: 'prisma' | 'typeorm' | 'drizzle' | 'knex' | 'mongoose' | 'sequelize' | 'unknown'
query: string // SQL or command dump
params: unknown[] | Record<string, unknown> | null
target: string | null // table / model / collection
operation: string | null
executionTimeMs: number | null
rowCount: number | null
error: { name?, message, stack? } | null
parentName: string | null
executionOrder: string[]
database: string | null
}Browser events (@idebug/react)
Separate model: fetch, xhr, render, effect, error, navigation, log — see React package.