bippy 0.7.2 → 0.7.3-dev.09bae5a
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -79
- package/dist/core.cjs +1 -1
- package/dist/core.js +1 -1
- package/dist/errors.d.cts +59 -9
- package/dist/errors.d.ts +59 -9
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +34 -58
- package/dist/index.d.ts +36 -60
- package/dist/index.js +1 -1
- package/dist/install-hook-only.cjs +1 -1
- package/dist/install-hook-only.js +1 -1
- package/dist/rdt-hook.cjs +1 -1
- package/dist/rdt-hook.js +1 -1
- package/dist/source.cjs +11 -11
- package/dist/source.d.cts +47 -18
- package/dist/source.d.ts +47 -18
- package/dist/source.js +12 -12
- package/package.json +7 -35
- package/src/call-listener.ts +13 -0
- package/src/core.ts +367 -282
- package/src/rdt-hook.ts +159 -87
- package/src/react-internals/current-fiber.ts +84 -0
- package/src/react-internals/generated/react-work-tags.ts +3 -0
- package/src/react-internals/index.ts +38 -11
- package/src/react-internals/types.ts +33 -6
- package/src/react.ts +141 -55
- package/src/source/constants.ts +11 -9
- package/src/source/get-display-name-from-source.ts +10 -3
- package/src/source/get-source.ts +42 -157
- package/src/source/index.ts +17 -3
- package/src/source/inspect-hooks.ts +198 -49
- package/src/source/normalize-file-name.ts +416 -0
- package/src/source/owner-stack.ts +43 -35
- package/src/source/parse-debug-stack.ts +1 -1
- package/src/source/parse-hook-names.ts +15 -8
- package/src/source/parse-stack.ts +114 -64
- package/src/source/renderer-dispatchers.ts +9 -4
- package/src/source/symbolication.ts +131 -70
package/dist/index.d.cts
CHANGED
|
@@ -6,41 +6,16 @@
|
|
|
6
6
|
* This source code is licensed under the MIT license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
import { A as
|
|
9
|
+
import { $ as getReactWorkTags, A as FiberUpdateQueue, B as ReactMemoCache, C as ContextDependency, D as Fiber, E as Dependencies, F as ReactContext, G as WorkTag, H as RendererDispatcherRef, I as ReactDebugInfo, J as ReactFiberFlags, K as HostWorkTag, L as ReactDevToolsEventHandler, M as LegacyDispatcherRef, N as MemoizedState, O as FiberDebugSource, P as Props, Q as ReactWorkTagVersion, R as ReactDevToolsGlobalHook, S as setReactWorkTagsForFiber, T as DebugThenableState, U as ServerComponentInfo, V as ReactRenderer, W as Source, X as ReactWorkTag, Y as ReactSymbols, Z as ReactWorkTagMap, _ as patchRDTHook, a as BippyUnsupportedHookError, b as getReactWorkTagsForFiber, c as Unsubscribe, d as hasRDTHook, f as installRDTHook, g as onRendererInject, h as isRealReactDevtools, i as BippySourceMapError, j as HostFiber, k as FiberRoot, l as _renderers, m as isReactRefresh, n as BippyHookInspectionError, o as BIPPY_INSTRUMENTATION_STRING, p as isFiberRootUnmounted, q as ReactBuildType, r as BippyHookRenderError, s as ReactDevToolsTarget, t as BippyError, u as getRDTHook, v as version, w as CurrentDispatcherRef, x as getReactWorkTagsForRenderer, y as MutationMask, z as ReactIOInfo } from "./errors.cjs";
|
|
10
10
|
import * as React from "react";
|
|
11
11
|
//#region src/react-internals/semver.d.ts
|
|
12
|
-
declare const compareSemver: (leftVersion: string, rightVersion: string) => -1 | 0 | 1 | null;
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region src/rdt-hook.d.ts
|
|
15
|
-
interface Unsubscribe extends Disposable {
|
|
16
|
-
(): void;
|
|
17
|
-
}
|
|
18
|
-
interface ActiveListener {
|
|
19
|
-
(): unknown;
|
|
20
|
-
}
|
|
21
|
-
interface RendererInjectListener {
|
|
22
|
-
(renderer: ReactRenderer): void;
|
|
23
|
-
}
|
|
24
|
-
declare const version: string | undefined;
|
|
25
|
-
declare const BIPPY_INSTRUMENTATION_STRING: string;
|
|
26
|
-
declare const isRealReactDevtools: (rdtHook?: ReactDevToolsGlobalHook | undefined | null) => boolean;
|
|
27
|
-
declare const isReactRefresh: (rdtHook?: ReactDevToolsGlobalHook | undefined | null) => boolean;
|
|
28
|
-
declare const _onActiveListeners: Set<ActiveListener>;
|
|
29
|
-
declare const _renderers: Set<ReactRenderer>;
|
|
30
|
-
declare const onRendererInject: (listener: RendererInjectListener) => Unsubscribe;
|
|
31
|
-
declare const installRDTHook: (onActive?: ActiveListener) => ReactDevToolsGlobalHook;
|
|
32
|
-
declare const patchRDTHook: (onActive?: ActiveListener) => void;
|
|
33
|
-
declare const hasRDTHook: () => boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Returns the current React DevTools global hook.
|
|
36
|
-
*/
|
|
37
|
-
declare const getRDTHook: (onActive?: ActiveListener) => ReactDevToolsGlobalHook;
|
|
12
|
+
export declare const compareSemver: (leftVersion: string, rightVersion: string) => -1 | 0 | 1 | null;
|
|
38
13
|
//#endregion
|
|
39
14
|
//#region src/core.d.ts
|
|
40
15
|
interface FiberSelector {
|
|
41
16
|
(node: Fiber): boolean | Promise<boolean | void> | void;
|
|
42
17
|
}
|
|
43
|
-
interface RenderHandler {
|
|
18
|
+
export interface RenderHandler {
|
|
44
19
|
(fiber: Fiber, phase: RenderPhase): unknown;
|
|
45
20
|
}
|
|
46
21
|
/**
|
|
@@ -48,69 +23,69 @@ interface RenderHandler {
|
|
|
48
23
|
*
|
|
49
24
|
* @see https://react.dev/reference/react/isValidElement
|
|
50
25
|
*/
|
|
51
|
-
declare const isValidElement: (element: unknown) => element is React.ReactElement;
|
|
26
|
+
export declare const isValidElement: (element: unknown) => element is React.ReactElement;
|
|
52
27
|
/**
|
|
53
28
|
* Returns `true` if object is a React Fiber.
|
|
54
29
|
*/
|
|
55
|
-
declare const isFiber: (fiber: unknown) => fiber is Fiber;
|
|
30
|
+
export declare const isFiber: (fiber: unknown) => fiber is Fiber;
|
|
56
31
|
/**
|
|
57
32
|
* Returns `true` if fiber is a host fiber. Host fibers are DOM nodes in react-dom, `View` in react-native, etc.
|
|
58
33
|
*
|
|
59
34
|
* @see https://reactnative.dev/architecture/glossary#host-view-tree-and-host-view
|
|
60
35
|
*/
|
|
61
|
-
declare const isHostFiber: (fiber: Fiber) => fiber is HostFiber;
|
|
36
|
+
export declare const isHostFiber: (fiber: Fiber) => fiber is HostFiber;
|
|
62
37
|
/**
|
|
63
38
|
* Returns `true` if fiber is a composite fiber. Composite fibers are fibers that can render (like functional components, class components, etc.)
|
|
64
39
|
*
|
|
65
40
|
* @see https://reactnative.dev/architecture/glossary#react-composite-components
|
|
66
41
|
*/
|
|
67
|
-
declare const isCompositeFiber: (fiber: Fiber) => boolean;
|
|
42
|
+
export declare const isCompositeFiber: (fiber: Fiber) => boolean;
|
|
68
43
|
/**
|
|
69
44
|
* Returns `true` if the {@link Fiber} has rendered. Note that this does not mean the fiber has rendered in the current commit, just that it has rendered in the past.
|
|
70
45
|
*/
|
|
71
|
-
declare const didFiberRender: (fiber: Fiber) => boolean;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
46
|
+
export declare const didFiberRender: (fiber: Fiber) => boolean;
|
|
47
|
+
interface TraverseFiber {
|
|
48
|
+
(fiber: Fiber | null, selector: (node: Fiber) => boolean | void, ascending?: boolean): Fiber | null;
|
|
49
|
+
(fiber: Fiber | null, selector: (node: Fiber) => Promise<boolean | void>, ascending?: boolean): Promise<Fiber | null>;
|
|
50
|
+
(fiber: Fiber | null, selector: FiberSelector, ascending?: boolean): Fiber | null | Promise<Fiber | null>;
|
|
51
|
+
}
|
|
76
52
|
/**
|
|
77
53
|
* Traverses up or down a {@link Fiber}, return `true` to stop and select a node.
|
|
78
54
|
*/
|
|
79
|
-
declare
|
|
80
|
-
declare function traverseFiber(fiber: Fiber | null, selector: (node: Fiber) => Promise<boolean | void>, ascending?: boolean): Promise<Fiber | null>;
|
|
81
|
-
declare function traverseFiber(fiber: Fiber | null, selector: FiberSelector, ascending?: boolean): Fiber | null | Promise<Fiber | null>;
|
|
55
|
+
export declare const traverseFiber: TraverseFiber;
|
|
82
56
|
/**
|
|
83
57
|
* Returns `true` if the {@link Fiber} uses React Compiler's memo cache.
|
|
84
58
|
*/
|
|
85
|
-
declare const hasMemoCache: (fiber: Fiber) => boolean;
|
|
59
|
+
export declare const hasMemoCache: (fiber: Fiber) => boolean;
|
|
86
60
|
/**
|
|
87
61
|
* Returns the type (e.g. component definition) of the {@link Fiber}
|
|
88
62
|
*/
|
|
89
|
-
declare const getType: (type: unknown) => null | React.ComponentType<unknown>;
|
|
63
|
+
export declare const getType: (type: unknown) => null | React.ComponentType<unknown>;
|
|
90
64
|
/**
|
|
91
65
|
* Returns the display name of the {@link Fiber} type.
|
|
92
66
|
*/
|
|
93
|
-
declare const getDisplayName: (type: unknown) => null | string;
|
|
67
|
+
export declare const getDisplayName: (type: unknown) => null | string;
|
|
94
68
|
/**
|
|
95
69
|
* Returns the build type of the React renderer.
|
|
96
70
|
*/
|
|
97
|
-
declare const detectReactBuildType: (renderer: ReactRenderer) => "development" | "production";
|
|
71
|
+
export declare const detectReactBuildType: (renderer: ReactRenderer) => "development" | "production";
|
|
98
72
|
/**
|
|
99
73
|
* Returns `true` if bippy's instrumentation is active.
|
|
100
74
|
*/
|
|
101
|
-
declare const isInstrumentationActive: () => boolean;
|
|
102
|
-
declare const _fiberRoots: Set<FiberRoot>;
|
|
75
|
+
export declare const isInstrumentationActive: (target?: ReactDevToolsTarget) => boolean;
|
|
76
|
+
export declare const _fiberRoots: Set<FiberRoot>;
|
|
103
77
|
/**
|
|
104
78
|
* Returns the latest fiber (since it may be double-buffered).
|
|
105
79
|
*/
|
|
106
|
-
declare const getLatestFiber: (fiber: Fiber) => Fiber;
|
|
80
|
+
export declare const getLatestFiber: (fiber: Fiber) => Fiber;
|
|
107
81
|
/**
|
|
108
82
|
* Returns the renderer that owns the {@link Fiber}.
|
|
109
83
|
*/
|
|
110
|
-
declare const getRenderer: (fiber: Fiber) => ReactRenderer | null;
|
|
111
|
-
type RenderPhase = "mount" | "unmount" | "update";
|
|
112
|
-
declare const setFiberId: (fiber: Fiber, fiberId?: number) => void;
|
|
113
|
-
declare const getFiberId: (fiber: Fiber) => number;
|
|
84
|
+
export declare const getRenderer: (fiber: Fiber, target?: ReactDevToolsTarget) => ReactRenderer | null;
|
|
85
|
+
export type RenderPhase = "mount" | "unmount" | "update";
|
|
86
|
+
export declare const setFiberId: (fiber: Fiber, fiberId?: number) => void;
|
|
87
|
+
export declare const getFiberId: (fiber: Fiber) => number;
|
|
88
|
+
export declare const getFiberById: (fiberId: number) => Fiber | null;
|
|
114
89
|
/**
|
|
115
90
|
* Creates a fiber visitor function. Must pass a fiber root and a render handler.
|
|
116
91
|
* @example
|
|
@@ -118,9 +93,10 @@ declare const getFiberId: (fiber: Fiber) => number;
|
|
|
118
93
|
* console.log(phase)
|
|
119
94
|
* })
|
|
120
95
|
*/
|
|
121
|
-
declare const traverseRenderedFibers: (root: Fiber | FiberRoot, onRender: RenderHandler) => void;
|
|
122
|
-
interface InstrumentationOptions {
|
|
96
|
+
export declare const traverseRenderedFibers: (root: Fiber | FiberRoot, onRender: RenderHandler) => void;
|
|
97
|
+
export interface InstrumentationOptions {
|
|
123
98
|
name?: string;
|
|
99
|
+
target?: ReactDevToolsTarget;
|
|
124
100
|
onActive?: () => unknown;
|
|
125
101
|
onCommitFiberRoot?: (rendererID: number, root: FiberRoot, priority: number | void, didError?: boolean) => unknown;
|
|
126
102
|
onCommitFiberUnmount?: (rendererID: number, fiber: Fiber) => unknown;
|
|
@@ -144,11 +120,11 @@ interface InstrumentationOptions {
|
|
|
144
120
|
* });
|
|
145
121
|
* unsubscribe();
|
|
146
122
|
*/
|
|
147
|
-
declare const instrument: (options: InstrumentationOptions) => Unsubscribe;
|
|
148
|
-
declare const getFiber: <
|
|
149
|
-
declare const getFiberFromHostInstance: <
|
|
123
|
+
export declare const instrument: (options: InstrumentationOptions) => Unsubscribe;
|
|
124
|
+
export declare const getFiber: <HostInstance>(hostInstance: HostInstance, target?: ReactDevToolsTarget) => Fiber | null;
|
|
125
|
+
export declare const getFiberFromHostInstance: <HostInstance>(hostInstance: HostInstance, target?: ReactDevToolsTarget) => Fiber | null;
|
|
150
126
|
//#endregion
|
|
151
127
|
//#region src/react.d.ts
|
|
152
|
-
declare const useFiber: () => Fiber | undefined;
|
|
128
|
+
export declare const useFiber: () => Fiber | undefined;
|
|
153
129
|
//#endregion
|
|
154
|
-
export { BIPPY_INSTRUMENTATION_STRING, BippyError, BippyHookInspectionError, BippyHookRenderError, BippySourceMapError, BippyUnsupportedHookError, ContextDependency, CurrentDispatcherRef, DebugThenableState, Dependencies, Fiber, FiberDebugSource, FiberRoot, FiberUpdateQueue, HostFiber, type HostWorkTag,
|
|
130
|
+
export { BIPPY_INSTRUMENTATION_STRING, BippyError, BippyHookInspectionError, BippyHookRenderError, BippySourceMapError, BippyUnsupportedHookError, ContextDependency, CurrentDispatcherRef, DebugThenableState, Dependencies, Fiber, FiberDebugSource, FiberRoot, FiberUpdateQueue, HostFiber, type HostWorkTag, LegacyDispatcherRef, MemoizedState, MutationMask, Props, ReactBuildType, ReactContext, ReactDebugInfo, ReactDevToolsEventHandler, ReactDevToolsGlobalHook, type ReactDevToolsTarget, ReactFiberFlags, ReactIOInfo, ReactMemoCache, ReactRenderer, ReactSymbols, type ReactWorkTag, type ReactWorkTagMap, type ReactWorkTagVersion, RendererDispatcherRef, ServerComponentInfo, Source, type Unsubscribe, WorkTag, _renderers, getRDTHook, getReactWorkTags, getReactWorkTagsForFiber, getReactWorkTagsForRenderer, hasRDTHook, installRDTHook, isFiberRootUnmounted, isReactRefresh, isRealReactDevtools, onRendererInject, patchRDTHook, setReactWorkTagsForFiber, version };
|
package/dist/index.d.ts
CHANGED
|
@@ -6,41 +6,16 @@
|
|
|
6
6
|
* This source code is licensed under the MIT license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
import { A as
|
|
10
|
-
import * as React from "react";
|
|
9
|
+
import { $ as getReactWorkTags, A as FiberUpdateQueue, B as ReactMemoCache, C as ContextDependency, D as Fiber, E as Dependencies, F as ReactContext, G as WorkTag, H as RendererDispatcherRef, I as ReactDebugInfo, J as ReactFiberFlags, K as HostWorkTag, L as ReactDevToolsEventHandler, M as LegacyDispatcherRef, N as MemoizedState, O as FiberDebugSource, P as Props, Q as ReactWorkTagVersion, R as ReactDevToolsGlobalHook, S as setReactWorkTagsForFiber, T as DebugThenableState, U as ServerComponentInfo, V as ReactRenderer, W as Source, X as ReactWorkTag, Y as ReactSymbols, Z as ReactWorkTagMap, _ as patchRDTHook, a as BippyUnsupportedHookError, b as getReactWorkTagsForFiber, c as Unsubscribe, d as hasRDTHook, f as installRDTHook, g as onRendererInject, h as isRealReactDevtools, i as BippySourceMapError, j as HostFiber, k as FiberRoot, l as _renderers, m as isReactRefresh, n as BippyHookInspectionError, o as BIPPY_INSTRUMENTATION_STRING, p as isFiberRootUnmounted, q as ReactBuildType, r as BippyHookRenderError, s as ReactDevToolsTarget, t as BippyError, u as getRDTHook, v as version, w as CurrentDispatcherRef, x as getReactWorkTagsForRenderer, y as MutationMask, z as ReactIOInfo } from "./errors.js";
|
|
10
|
+
import * as React$1 from "react";
|
|
11
11
|
//#region src/react-internals/semver.d.ts
|
|
12
|
-
declare const compareSemver: (leftVersion: string, rightVersion: string) => -1 | 0 | 1 | null;
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region src/rdt-hook.d.ts
|
|
15
|
-
interface Unsubscribe extends Disposable {
|
|
16
|
-
(): void;
|
|
17
|
-
}
|
|
18
|
-
interface ActiveListener {
|
|
19
|
-
(): unknown;
|
|
20
|
-
}
|
|
21
|
-
interface RendererInjectListener {
|
|
22
|
-
(renderer: ReactRenderer): void;
|
|
23
|
-
}
|
|
24
|
-
declare const version: string | undefined;
|
|
25
|
-
declare const BIPPY_INSTRUMENTATION_STRING: string;
|
|
26
|
-
declare const isRealReactDevtools: (rdtHook?: ReactDevToolsGlobalHook | undefined | null) => boolean;
|
|
27
|
-
declare const isReactRefresh: (rdtHook?: ReactDevToolsGlobalHook | undefined | null) => boolean;
|
|
28
|
-
declare const _onActiveListeners: Set<ActiveListener>;
|
|
29
|
-
declare const _renderers: Set<ReactRenderer>;
|
|
30
|
-
declare const onRendererInject: (listener: RendererInjectListener) => Unsubscribe;
|
|
31
|
-
declare const installRDTHook: (onActive?: ActiveListener) => ReactDevToolsGlobalHook;
|
|
32
|
-
declare const patchRDTHook: (onActive?: ActiveListener) => void;
|
|
33
|
-
declare const hasRDTHook: () => boolean;
|
|
34
|
-
/**
|
|
35
|
-
* Returns the current React DevTools global hook.
|
|
36
|
-
*/
|
|
37
|
-
declare const getRDTHook: (onActive?: ActiveListener) => ReactDevToolsGlobalHook;
|
|
12
|
+
export declare const compareSemver: (leftVersion: string, rightVersion: string) => -1 | 0 | 1 | null;
|
|
38
13
|
//#endregion
|
|
39
14
|
//#region src/core.d.ts
|
|
40
15
|
interface FiberSelector {
|
|
41
16
|
(node: Fiber): boolean | Promise<boolean | void> | void;
|
|
42
17
|
}
|
|
43
|
-
interface RenderHandler {
|
|
18
|
+
export interface RenderHandler {
|
|
44
19
|
(fiber: Fiber, phase: RenderPhase): unknown;
|
|
45
20
|
}
|
|
46
21
|
/**
|
|
@@ -48,69 +23,69 @@ interface RenderHandler {
|
|
|
48
23
|
*
|
|
49
24
|
* @see https://react.dev/reference/react/isValidElement
|
|
50
25
|
*/
|
|
51
|
-
declare const isValidElement: (element: unknown) => element is React.ReactElement;
|
|
26
|
+
export declare const isValidElement: (element: unknown) => element is React$1.ReactElement;
|
|
52
27
|
/**
|
|
53
28
|
* Returns `true` if object is a React Fiber.
|
|
54
29
|
*/
|
|
55
|
-
declare const isFiber: (fiber: unknown) => fiber is Fiber;
|
|
30
|
+
export declare const isFiber: (fiber: unknown) => fiber is Fiber;
|
|
56
31
|
/**
|
|
57
32
|
* Returns `true` if fiber is a host fiber. Host fibers are DOM nodes in react-dom, `View` in react-native, etc.
|
|
58
33
|
*
|
|
59
34
|
* @see https://reactnative.dev/architecture/glossary#host-view-tree-and-host-view
|
|
60
35
|
*/
|
|
61
|
-
declare const isHostFiber: (fiber: Fiber) => fiber is HostFiber;
|
|
36
|
+
export declare const isHostFiber: (fiber: Fiber) => fiber is HostFiber;
|
|
62
37
|
/**
|
|
63
38
|
* Returns `true` if fiber is a composite fiber. Composite fibers are fibers that can render (like functional components, class components, etc.)
|
|
64
39
|
*
|
|
65
40
|
* @see https://reactnative.dev/architecture/glossary#react-composite-components
|
|
66
41
|
*/
|
|
67
|
-
declare const isCompositeFiber: (fiber: Fiber) => boolean;
|
|
42
|
+
export declare const isCompositeFiber: (fiber: Fiber) => boolean;
|
|
68
43
|
/**
|
|
69
44
|
* Returns `true` if the {@link Fiber} has rendered. Note that this does not mean the fiber has rendered in the current commit, just that it has rendered in the past.
|
|
70
45
|
*/
|
|
71
|
-
declare const didFiberRender: (fiber: Fiber) => boolean;
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
46
|
+
export declare const didFiberRender: (fiber: Fiber) => boolean;
|
|
47
|
+
interface TraverseFiber {
|
|
48
|
+
(fiber: Fiber | null, selector: (node: Fiber) => boolean | void, ascending?: boolean): Fiber | null;
|
|
49
|
+
(fiber: Fiber | null, selector: (node: Fiber) => Promise<boolean | void>, ascending?: boolean): Promise<Fiber | null>;
|
|
50
|
+
(fiber: Fiber | null, selector: FiberSelector, ascending?: boolean): Fiber | null | Promise<Fiber | null>;
|
|
51
|
+
}
|
|
76
52
|
/**
|
|
77
53
|
* Traverses up or down a {@link Fiber}, return `true` to stop and select a node.
|
|
78
54
|
*/
|
|
79
|
-
declare
|
|
80
|
-
declare function traverseFiber(fiber: Fiber | null, selector: (node: Fiber) => Promise<boolean | void>, ascending?: boolean): Promise<Fiber | null>;
|
|
81
|
-
declare function traverseFiber(fiber: Fiber | null, selector: FiberSelector, ascending?: boolean): Fiber | null | Promise<Fiber | null>;
|
|
55
|
+
export declare const traverseFiber: TraverseFiber;
|
|
82
56
|
/**
|
|
83
57
|
* Returns `true` if the {@link Fiber} uses React Compiler's memo cache.
|
|
84
58
|
*/
|
|
85
|
-
declare const hasMemoCache: (fiber: Fiber) => boolean;
|
|
59
|
+
export declare const hasMemoCache: (fiber: Fiber) => boolean;
|
|
86
60
|
/**
|
|
87
61
|
* Returns the type (e.g. component definition) of the {@link Fiber}
|
|
88
62
|
*/
|
|
89
|
-
declare const getType: (type: unknown) => null | React.ComponentType<unknown>;
|
|
63
|
+
export declare const getType: (type: unknown) => null | React$1.ComponentType<unknown>;
|
|
90
64
|
/**
|
|
91
65
|
* Returns the display name of the {@link Fiber} type.
|
|
92
66
|
*/
|
|
93
|
-
declare const getDisplayName: (type: unknown) => null | string;
|
|
67
|
+
export declare const getDisplayName: (type: unknown) => null | string;
|
|
94
68
|
/**
|
|
95
69
|
* Returns the build type of the React renderer.
|
|
96
70
|
*/
|
|
97
|
-
declare const detectReactBuildType: (renderer: ReactRenderer) => "development" | "production";
|
|
71
|
+
export declare const detectReactBuildType: (renderer: ReactRenderer) => "development" | "production";
|
|
98
72
|
/**
|
|
99
73
|
* Returns `true` if bippy's instrumentation is active.
|
|
100
74
|
*/
|
|
101
|
-
declare const isInstrumentationActive: () => boolean;
|
|
102
|
-
declare const _fiberRoots: Set<FiberRoot>;
|
|
75
|
+
export declare const isInstrumentationActive: (target?: ReactDevToolsTarget) => boolean;
|
|
76
|
+
export declare const _fiberRoots: Set<FiberRoot>;
|
|
103
77
|
/**
|
|
104
78
|
* Returns the latest fiber (since it may be double-buffered).
|
|
105
79
|
*/
|
|
106
|
-
declare const getLatestFiber: (fiber: Fiber) => Fiber;
|
|
80
|
+
export declare const getLatestFiber: (fiber: Fiber) => Fiber;
|
|
107
81
|
/**
|
|
108
82
|
* Returns the renderer that owns the {@link Fiber}.
|
|
109
83
|
*/
|
|
110
|
-
declare const getRenderer: (fiber: Fiber) => ReactRenderer | null;
|
|
111
|
-
type RenderPhase = "mount" | "unmount" | "update";
|
|
112
|
-
declare const setFiberId: (fiber: Fiber, fiberId?: number) => void;
|
|
113
|
-
declare const getFiberId: (fiber: Fiber) => number;
|
|
84
|
+
export declare const getRenderer: (fiber: Fiber, target?: ReactDevToolsTarget) => ReactRenderer | null;
|
|
85
|
+
export type RenderPhase = "mount" | "unmount" | "update";
|
|
86
|
+
export declare const setFiberId: (fiber: Fiber, fiberId?: number) => void;
|
|
87
|
+
export declare const getFiberId: (fiber: Fiber) => number;
|
|
88
|
+
export declare const getFiberById: (fiberId: number) => Fiber | null;
|
|
114
89
|
/**
|
|
115
90
|
* Creates a fiber visitor function. Must pass a fiber root and a render handler.
|
|
116
91
|
* @example
|
|
@@ -118,14 +93,15 @@ declare const getFiberId: (fiber: Fiber) => number;
|
|
|
118
93
|
* console.log(phase)
|
|
119
94
|
* })
|
|
120
95
|
*/
|
|
121
|
-
declare const traverseRenderedFibers: (root: Fiber | FiberRoot, onRender: RenderHandler) => void;
|
|
122
|
-
interface InstrumentationOptions {
|
|
96
|
+
export declare const traverseRenderedFibers: (root: Fiber | FiberRoot, onRender: RenderHandler) => void;
|
|
97
|
+
export interface InstrumentationOptions {
|
|
123
98
|
name?: string;
|
|
99
|
+
target?: ReactDevToolsTarget;
|
|
124
100
|
onActive?: () => unknown;
|
|
125
101
|
onCommitFiberRoot?: (rendererID: number, root: FiberRoot, priority: number | void, didError?: boolean) => unknown;
|
|
126
102
|
onCommitFiberUnmount?: (rendererID: number, fiber: Fiber) => unknown;
|
|
127
103
|
onPostCommitFiberRoot?: (rendererID: number, root: FiberRoot) => unknown;
|
|
128
|
-
onScheduleFiberRoot?: (rendererID: number, root: FiberRoot, children: React.ReactNode) => unknown;
|
|
104
|
+
onScheduleFiberRoot?: (rendererID: number, root: FiberRoot, children: React$1.ReactNode) => unknown;
|
|
129
105
|
}
|
|
130
106
|
/**
|
|
131
107
|
* Instruments the DevTools hook. Each hook event is patched once and
|
|
@@ -144,11 +120,11 @@ interface InstrumentationOptions {
|
|
|
144
120
|
* });
|
|
145
121
|
* unsubscribe();
|
|
146
122
|
*/
|
|
147
|
-
declare const instrument: (options: InstrumentationOptions) => Unsubscribe;
|
|
148
|
-
declare const getFiber: <
|
|
149
|
-
declare const getFiberFromHostInstance: <
|
|
123
|
+
export declare const instrument: (options: InstrumentationOptions) => Unsubscribe;
|
|
124
|
+
export declare const getFiber: <HostInstance>(hostInstance: HostInstance, target?: ReactDevToolsTarget) => Fiber | null;
|
|
125
|
+
export declare const getFiberFromHostInstance: <HostInstance>(hostInstance: HostInstance, target?: ReactDevToolsTarget) => Fiber | null;
|
|
150
126
|
//#endregion
|
|
151
127
|
//#region src/react.d.ts
|
|
152
|
-
declare const useFiber: () => Fiber | undefined;
|
|
128
|
+
export declare const useFiber: () => Fiber | undefined;
|
|
153
129
|
//#endregion
|
|
154
|
-
export { BIPPY_INSTRUMENTATION_STRING, BippyError, BippyHookInspectionError, BippyHookRenderError, BippySourceMapError, BippyUnsupportedHookError, ContextDependency, CurrentDispatcherRef, DebugThenableState, Dependencies, Fiber, FiberDebugSource, FiberRoot, FiberUpdateQueue, HostFiber, type HostWorkTag,
|
|
130
|
+
export { BIPPY_INSTRUMENTATION_STRING, BippyError, BippyHookInspectionError, BippyHookRenderError, BippySourceMapError, BippyUnsupportedHookError, ContextDependency, CurrentDispatcherRef, DebugThenableState, Dependencies, Fiber, FiberDebugSource, FiberRoot, FiberUpdateQueue, HostFiber, type HostWorkTag, LegacyDispatcherRef, MemoizedState, MutationMask, Props, ReactBuildType, ReactContext, ReactDebugInfo, ReactDevToolsEventHandler, ReactDevToolsGlobalHook, type ReactDevToolsTarget, ReactFiberFlags, ReactIOInfo, ReactMemoCache, ReactRenderer, ReactSymbols, type ReactWorkTag, type ReactWorkTagMap, type ReactWorkTagVersion, RendererDispatcherRef, ServerComponentInfo, Source, type Unsubscribe, WorkTag, _renderers, getRDTHook, getReactWorkTags, getReactWorkTagsForFiber, getReactWorkTagsForRenderer, hasRDTHook, installRDTHook, isFiberRootUnmounted, isReactRefresh, isRealReactDevtools, onRendererInject, patchRDTHook, setReactWorkTagsForFiber, version };
|
package/dist/index.js
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* This source code is licensed under the MIT license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
import{a as e,c as t,
|
|
9
|
+
import{a as e,c as t,f as n,h as r,i,l as a,n as o,o as s,p as c,s as l,t as u}from"./rdt-hook.js";import"./install-hook-only.js";import{A as d,C as f,D as p,E as m,F as h,I as g,M as _,N as v,O as y,P as b,S as x,T as S,_ as C,a as w,b as T,c as E,d as D,f as O,g as k,h as A,i as j,j as M,k as ee,l as N,m as P,n as F,o as I,p as L,r as R,s as z,t as B,u as V,v as H,w as U,x as W,y as G}from"./core.js";import K from"react";const q=e=>typeof e==`object`&&!!e&&`lastRenderedReducer`in e,J=(e,t)=>{for(let n=e.memoizedState;n;n=n.next)if(Array.isArray(n.memoizedState)&&n.memoizedState[0]===t)return!0;return!1},Y=(e,t)=>{for(let n=e.memoizedState;n;n=n.next)if(q(n.queue)&&n.queue.lastRenderedReducer===t)return n.queue;return null},X=e=>{for(let t of o)try{let n=t.getCurrentFiber?.();if(n&&A(n)&&J(n,e))return n}catch{}return null},Z=(e,t)=>{let n;if(t)try{n=Function.prototype.bind}catch{}if(!n)return K.useReducer(e,void 0),null;let r=null,i=!0,a=new Proxy(n,{apply:(t,n,a)=>{if(i&&!r)try{let t=a.find(t=>q(t)&&t.lastRenderedReducer===e);if(t){let e=a.find(e=>A(e)&&A(e.return));e&&(r={fiber:e,queue:t})}}catch{}return Reflect.apply(t,n,a)}});try{try{Reflect.set(Function.prototype,`bind`,a)}catch{}return K.useReducer(e,void 0),r}finally{i=!1,r=null;try{Function.prototype.bind===a&&Reflect.set(Function.prototype,`bind`,n)}catch{}}},Q=({fiber:e,queue:t},n)=>{if(t?.lastRenderedReducer!==n)return null;let r=e;for(;r.return;)r=r.return;let i=r.stateNode;if(typeof i!=`object`||!i||!(`current`in i)||!A(i.current))return null;let a=i.current.alternate,o=p(e)?.alternate;if(o){let e=o;for(;e.return;)e=e.return;if(e===a)return o}return T(a,t=>{if(t!==e&&t!==e.alternate)return!1;let n=t;for(;n.return;)n=n.return;return n===a})},$=()=>{"use no memo";let e=K.useRef(null),t=e=>e;K.useMemo(()=>t,[t]);let n=e.current?null:X(t),r=Z(t,!e.current&&!n);if(n)return e.current={fiber:n,queue:Y(n,t)},n;let i=r??e.current;if(!i)return;let a=i.fiber,o=r?.fiber??(J(a,t)?a:a.alternate&&J(a.alternate,t)?a.alternate:Q(i,t));return o&&(i.fiber=o,e.current=i),o??void 0};export{u as BIPPY_INSTRUMENTATION_STRING,x as BippyError,f as BippyHookInspectionError,U as BippyHookRenderError,S as BippySourceMapError,m as BippyUnsupportedHookError,y as MutationMask,_ as ReactBuildType,v as ReactFiberFlags,b as ReactSymbols,B as _fiberRoots,o as _renderers,g as compareSemver,F as detectReactBuildType,R as didFiberRender,j as getDisplayName,w as getFiber,I as getFiberById,z as getFiberFromHostInstance,E as getFiberId,N as getLatestFiber,i as getRDTHook,h as getReactWorkTags,ee as getReactWorkTagsForFiber,d as getReactWorkTagsForRenderer,V as getRenderer,D as getType,O as hasMemoCache,e as hasRDTHook,s as installRDTHook,L as instrument,P as isCompositeFiber,A as isFiber,l as isFiberRootUnmounted,k as isHostFiber,C as isInstrumentationActive,t as isReactRefresh,a as isRealReactDevtools,H as isValidElement,n as onRendererInject,c as patchRDTHook,G as setFiberId,M as setReactWorkTagsForFiber,T as traverseFiber,W as traverseRenderedFibers,$ as useFiber,r as version};
|
package/dist/rdt-hook.cjs
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* This source code is licensed under the MIT license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
const e=`0.7.
|
|
9
|
+
const e=(e,t,...n)=>{try{e.apply(t,n)}catch(e){try{console.error(`Bippy instrumentation encountered an error:`,e)}catch{}}},t=`0.7.3-dev.09bae5a`,n=`bippy-${t}`,r=Object.defineProperty,i=()=>{},a=e=>e.__REACT_DEVTOOLS_GLOBAL_HOOK__,o=e=>Object.assign(e,{[Symbol.dispose]:e}),s=e=>{let t=e.current.memoizedState;return t===null||t!==void 0&&(t.element===null||t.element===void 0)},c=e=>{if(!(typeof process<`u`&&process.versions?.node))try{Function.prototype.toString.call(e).indexOf(`^_^`)>-1&&setTimeout(()=>{throw Error(`React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://react.dev/link/perf-use-production-build`)})}catch{}},l=(e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__)=>!!(e&&`getFiberRoots`in e&&e._isBippyHook!==!0),u=(e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__)=>{if(!e||typeof e.inject!=`function`||l(e))return!1;try{return Function.prototype.toString.call(e.inject).includes(`(injected)`)}catch{return!1}},d=new Set,f=new Set,p=new WeakMap,m=new Set,h=new Set,g=new WeakMap,_=(e,t)=>{d.add(e);let n=p.get(e)??new Set;n.add(t),p.set(e,n)},v=(e,t)=>{let n=p.get(e);n?.delete(t),(!n||n.size===0)&&(p.delete(e),d.delete(e))},y=(t,n=[...d])=>{for(let r of n)p.get(r)?.has(t)&&e(r,void 0)},b=(t,n)=>{let r=[...m];for(let i of r)m.has(i)&&i.target===t&&e(i.listener,i,n)},x=(t,n)=>{let r=[...h];for(let i of r)h.has(i)&&e(i.listener,void 0,t,n)},S=(e,t=globalThis)=>{A(void 0,t);let n={listener:e,target:t};return m.add(n),o(()=>{m.delete(n)})},C=e=>{let t={listener:e};return h.add(t),o(()=>{h.delete(t)})},w=e=>Object.prototype.toString.call(e)===`[object Map]`,T=e=>(w(e.renderers)||(e.renderers=new Map),e.renderers),E=(e,t,n,r,i)=>{n.set(r,i),f.add(i),e._instrumentationIsActive||(e._instrumentationIsActive=!0,y(t));let a=g.get(t)??new WeakSet;g.set(t,a),!a.has(i)&&(a.add(i),b(t,i))},D=(e,t=globalThis)=>{e&&_(e,t);let a=new Map,o=new Map,l=e=>{let t=o.get(e)??new Set;return o.set(e,t),t},u=0,d={_instrumentationIsActive:!1,_instrumentationSource:n,_isBippyHook:!0,checkDCE:c,getFiberRoots:l,hasUnsupportedRendererAttached:!1,inject:e=>{let n=++u;return E(d,t,a,n,e),n},on:i,onCommitFiberRoot:(e,t)=>{let n=l(e);s(t)?n.delete(t):n.add(t)},onCommitFiberUnmount:i,onPostCommitFiberRoot:i,renderers:a,supportsFiber:!0,supportsFlight:!0};try{if(r(t,`__REACT_DEVTOOLS_GLOBAL_HOOK__`,{configurable:!0,enumerable:!0,get:()=>d,set:e=>{if(e&&typeof e==`object`){let n=d.renderers;d=e;let r=T(d);n.forEach((e,t)=>{f.add(e),r.set(t,e)}),n.size>0||h.size>0?O(void 0,t,()=>x(e,t)):x(e,t)}}}),t===globalThis&&typeof window<`u`){let e=window.hasOwnProperty.bind(window),t=Object.getOwnPropertyDescriptor(window,`hasOwnProperty`),n=!1,i=()=>{t?r(window,`hasOwnProperty`,t):Reflect.deleteProperty(window,`hasOwnProperty`)};r(window,`hasOwnProperty`,{configurable:!0,value:t=>!n&&t===`__REACT_DEVTOOLS_GLOBAL_HOOK__`?(n=!0,i(),globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=void 0,!1):e(t),writable:!0})}}catch{O(e,t)}return d},O=(t,r=globalThis,o)=>{t&&_(t,r);let s=!1,p=a(r);if(!p)return;let m=T(p);if(!p._instrumentationSource){p.checkDCE=c,p.supportsFiber=!0,p.supportsFlight=!0,p.hasUnsupportedRendererAttached=!1,p._instrumentationSource=n,p._instrumentationIsActive=!1;let e=l(p);e||(p.on=i);let t=m.size>0||!e&&u(p),a=p.inject;p.inject=e=>{let t=a.call(p,e);return E(p,r,m,t,e),t},t&&(m.forEach(e=>f.add(e)),p._instrumentationIsActive=!0,s=!0)}let h=s?[...d]:[];o?.(),s?y(r,h):t&&(m.size||p._instrumentationIsActive)&&e(t,void 0)},k=(e=globalThis)=>Object.hasOwn(e,`__REACT_DEVTOOLS_GLOBAL_HOOK__`),A=(e,t=globalThis)=>k(t)?(O(e,t),a(t)??D(e,t)):D(e,t);Object.defineProperty(exports,"a",{enumerable:!0,get:function(){return k}}),Object.defineProperty(exports,"c",{enumerable:!0,get:function(){return u}}),Object.defineProperty(exports,"d",{enumerable:!0,get:function(){return C}}),Object.defineProperty(exports,"f",{enumerable:!0,get:function(){return S}}),Object.defineProperty(exports,"g",{enumerable:!0,get:function(){return e}}),Object.defineProperty(exports,"h",{enumerable:!0,get:function(){return t}}),Object.defineProperty(exports,"i",{enumerable:!0,get:function(){return A}}),Object.defineProperty(exports,"l",{enumerable:!0,get:function(){return l}}),Object.defineProperty(exports,"m",{enumerable:!0,get:function(){return v}}),Object.defineProperty(exports,"n",{enumerable:!0,get:function(){return f}}),Object.defineProperty(exports,"o",{enumerable:!0,get:function(){return D}}),Object.defineProperty(exports,"p",{enumerable:!0,get:function(){return O}}),Object.defineProperty(exports,"r",{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,"s",{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,"t",{enumerable:!0,get:function(){return n}}),Object.defineProperty(exports,"u",{enumerable:!0,get:function(){return w}});
|
package/dist/rdt-hook.js
CHANGED
|
@@ -6,4 +6,4 @@
|
|
|
6
6
|
* This source code is licensed under the MIT license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
const e=`0.7.
|
|
9
|
+
const e=(e,t,...n)=>{try{e.apply(t,n)}catch(e){try{console.error(`Bippy instrumentation encountered an error:`,e)}catch{}}},t=`0.7.3-dev.09bae5a`,n=`bippy-${t}`,r=Object.defineProperty,i=()=>{},a=e=>e.__REACT_DEVTOOLS_GLOBAL_HOOK__,o=e=>Object.assign(e,{[Symbol.dispose]:e}),s=e=>{let t=e.current.memoizedState;return t===null||t!==void 0&&(t.element===null||t.element===void 0)},c=e=>{if(!(typeof process<`u`&&process.versions?.node))try{Function.prototype.toString.call(e).indexOf(`^_^`)>-1&&setTimeout(()=>{throw Error(`React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://react.dev/link/perf-use-production-build`)})}catch{}},l=(e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__)=>!!(e&&`getFiberRoots`in e&&e._isBippyHook!==!0),u=(e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__)=>{if(!e||typeof e.inject!=`function`||l(e))return!1;try{return Function.prototype.toString.call(e.inject).includes(`(injected)`)}catch{return!1}},d=new Set,f=new Set,p=new WeakMap,m=new Set,h=new Set,g=new WeakMap,_=(e,t)=>{d.add(e);let n=p.get(e)??new Set;n.add(t),p.set(e,n)},v=(e,t)=>{let n=p.get(e);n?.delete(t),(!n||n.size===0)&&(p.delete(e),d.delete(e))},y=(t,n=[...d])=>{for(let r of n)p.get(r)?.has(t)&&e(r,void 0)},b=(t,n)=>{let r=[...m];for(let i of r)m.has(i)&&i.target===t&&e(i.listener,i,n)},x=(t,n)=>{let r=[...h];for(let i of r)h.has(i)&&e(i.listener,void 0,t,n)},S=(e,t=globalThis)=>{A(void 0,t);let n={listener:e,target:t};return m.add(n),o(()=>{m.delete(n)})},C=e=>{let t={listener:e};return h.add(t),o(()=>{h.delete(t)})},w=e=>Object.prototype.toString.call(e)===`[object Map]`,T=e=>(w(e.renderers)||(e.renderers=new Map),e.renderers),E=(e,t,n,r,i)=>{n.set(r,i),f.add(i),e._instrumentationIsActive||(e._instrumentationIsActive=!0,y(t));let a=g.get(t)??new WeakSet;g.set(t,a),!a.has(i)&&(a.add(i),b(t,i))},D=(e,t=globalThis)=>{e&&_(e,t);let a=new Map,o=new Map,l=e=>{let t=o.get(e)??new Set;return o.set(e,t),t},u=0,d={_instrumentationIsActive:!1,_instrumentationSource:n,_isBippyHook:!0,checkDCE:c,getFiberRoots:l,hasUnsupportedRendererAttached:!1,inject:e=>{let n=++u;return E(d,t,a,n,e),n},on:i,onCommitFiberRoot:(e,t)=>{let n=l(e);s(t)?n.delete(t):n.add(t)},onCommitFiberUnmount:i,onPostCommitFiberRoot:i,renderers:a,supportsFiber:!0,supportsFlight:!0};try{if(r(t,`__REACT_DEVTOOLS_GLOBAL_HOOK__`,{configurable:!0,enumerable:!0,get:()=>d,set:e=>{if(e&&typeof e==`object`){let n=d.renderers;d=e;let r=T(d);n.forEach((e,t)=>{f.add(e),r.set(t,e)}),n.size>0||h.size>0?O(void 0,t,()=>x(e,t)):x(e,t)}}}),t===globalThis&&typeof window<`u`){let e=window.hasOwnProperty.bind(window),t=Object.getOwnPropertyDescriptor(window,`hasOwnProperty`),n=!1,i=()=>{t?r(window,`hasOwnProperty`,t):Reflect.deleteProperty(window,`hasOwnProperty`)};r(window,`hasOwnProperty`,{configurable:!0,value:t=>!n&&t===`__REACT_DEVTOOLS_GLOBAL_HOOK__`?(n=!0,i(),globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=void 0,!1):e(t),writable:!0})}}catch{O(e,t)}return d},O=(t,r=globalThis,o)=>{t&&_(t,r);let s=!1,p=a(r);if(!p)return;let m=T(p);if(!p._instrumentationSource){p.checkDCE=c,p.supportsFiber=!0,p.supportsFlight=!0,p.hasUnsupportedRendererAttached=!1,p._instrumentationSource=n,p._instrumentationIsActive=!1;let e=l(p);e||(p.on=i);let t=m.size>0||!e&&u(p),a=p.inject;p.inject=e=>{let t=a.call(p,e);return E(p,r,m,t,e),t},t&&(m.forEach(e=>f.add(e)),p._instrumentationIsActive=!0,s=!0)}let h=s?[...d]:[];o?.(),s?y(r,h):t&&(m.size||p._instrumentationIsActive)&&e(t,void 0)},k=(e=globalThis)=>Object.hasOwn(e,`__REACT_DEVTOOLS_GLOBAL_HOOK__`),A=(e,t=globalThis)=>k(t)?(O(e,t),a(t)??D(e,t)):D(e,t);export{k as a,u as c,C as d,S as f,e as g,t as h,A as i,l,v as m,f as n,D as o,O as p,o as r,s,n as t,w as u};
|