IDebug is experimental. Prefer enabling only in development.
API referenceEvent payloads

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.