export interface ReactRendererInfo { id: number; name: string; version: string; bundleType: RendererBundleType; } export type ReactUnsupportedRendererInfo = Omit & { reason: string; }; export type ReactActivedRendererInfo = Omit & { rootId: string; rootTagName: string; }; export type RendererBundleType = 'development' | 'profiling' | 'production' | 'unknown'; export type FiberType = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14; export type FiberRootMode = 0 | 1; export type TrackingObjectTypeHook = 3; export type TrackingObjectType = 0 | 1 | 2 | TrackingObjectTypeHook; export interface TransferFiber { id: number; type: FiberType; typeId: number; rootMode?: FiberRootMode; key: number | string | null; ownerId: number; parentId: number; displayName: string | null; hocDisplayNames: string[] | null; loc: string | null; } export interface TransferHookInfo { name: string; context: number | null; deps: number | null; trace: TransferCallTrace; } export interface TransferFiberTypeDef { contexts: TransferFiberContext[] | null; hooks: TransferHookInfo[]; } export interface TransferFiberContext { name: string; providerId?: number; } export interface TransferCallTracePoint { name: string; loc: string | null; } export interface TransferCallTrace { path: TransferCallTracePoint[] | undefined; loc: string | null; } export interface TransferValueDiff { name: string; prev?: string; next?: string; } export interface TransferRawDiff { prev: string; next: string; } export interface TransferObjectDiff { keys: number; diffKeys: number; sample: TransferValueDiff[]; } export interface TransferArrayDiff { prevLength: number; nextLength: number; eqLeft: number; eqRight: number; } export type TransferChangeDiff = TransferObjectDiff | TransferArrayDiff | false; export interface TransferPropChange { name: string; prev?: string; next?: string; diff?: TransferChangeDiff; raw?: TransferRawDiff; } export interface TransferContextChange { context: number; valueChangedEventId: number; } export interface TransferStateChange { hook: number | null; prev?: string; next?: string; diff?: TransferChangeDiff; raw?: TransferRawDiff; calls?: null | Array<{ name: string; loc: null | string; }>; } export interface TransferDepChange { index: number; prev?: string; next?: string; diff?: TransferChangeDiff; raw?: TransferRawDiff; } export interface TransferMemoChange { hook: number; prev?: string; next?: string; diff?: TransferChangeDiff; raw?: TransferRawDiff; deps: TransferDepChange[]; } export interface TransferFiberChanges { props?: TransferPropChange[]; context?: TransferContextChange[]; state?: TransferStateChange[]; memos?: TransferMemoChange[]; } export interface CommitTrigger { type: 'initial-mount' | 'event' | 'effect' | 'layout-effect' | 'insertion-effect' | 'unknown'; kind: 'mount' | 'setState' | 'forceUpdate' | 'useReducer' | 'useState'; fiberId: number; relatedFiberId?: number; event?: string; loc: string | null; } export interface BaseMessage { op: string; id: number; commitId: number; } export interface CommitStartMessage extends BaseMessage { op: 'commit-start'; triggers: CommitTrigger[]; } export interface FiberTypeDefMessage extends BaseMessage { op: 'fiber-type-def'; typeId: number; displayName: string | null; definition: TransferFiberTypeDef; } export interface MountFiberMessage extends BaseMessage { op: 'mount'; fiberId: number; fiber: TransferFiber; props: string[]; totalTime: number; selfTime: number; trigger?: number; } export interface UpdateFiberMessage extends BaseMessage { op: 'update'; fiberId: number; totalTime: number; selfTime: number; changes: TransferFiberChanges | null; specialReasons: Array<{ name: string; loc: string | null; }> | null; trigger?: number; } export interface UpdateBailoutStateFiberMessage extends BaseMessage { op: 'update-bailout-state'; fiberId: number; trigger?: number; } export interface UpdateBailoutMemoFiberMessage extends BaseMessage { op: 'update-bailout-memo'; fiberId: number; trigger?: number; } export interface UpdateBailoutSCUFiberMessage extends BaseMessage { op: 'update-bailout-scu'; fiberId: number; changes: TransferFiberChanges | null; trigger?: number; } export interface UnmountFiberMessage extends BaseMessage { op: 'unmount'; fiberId: number; trigger?: number; } export interface CreateEffectFiberMessage extends BaseMessage { op: 'effect-create'; fiberId: number; path?: string[]; } export interface DestroyEffectFiberMessage extends BaseMessage { op: 'effect-destroy'; fiberId: number; path?: string[]; } export interface MaybeLeakDescriptor { fiberId: number; type: TrackingObjectType; hookIdx: number | null; } export interface MaybeLeaksMessage extends BaseMessage { op: 'maybe-leaks'; added: MaybeLeakDescriptor[]; removed: MaybeLeakDescriptor[]; } export type Message = FiberTypeDefMessage | CommitStartMessage | MountFiberMessage | UpdateFiberMessage | UpdateBailoutStateFiberMessage | UpdateBailoutMemoFiberMessage | UpdateBailoutSCUFiberMessage | UnmountFiberMessage | CreateEffectFiberMessage | DestroyEffectFiberMessage | MaybeLeaksMessage; export interface FileSource { fileName: string; lineNumber: number; columnNumber?: number; }