bippy 0.5.43 → 0.6.0-dev.8363ee2

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.
Files changed (51) hide show
  1. package/README.md +119 -113
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.d.cts +28 -313
  4. package/dist/core.d.ts +28 -313
  5. package/dist/core.js +1 -1
  6. package/dist/core2.d.cts +3 -2
  7. package/dist/core2.d.ts +3 -2
  8. package/dist/get-source.cjs +19 -0
  9. package/dist/get-source.js +19 -0
  10. package/dist/index.cjs +1 -1
  11. package/dist/index.d.cts +3 -2
  12. package/dist/index.d.ts +3 -2
  13. package/dist/index.iife.js +1 -1
  14. package/dist/index.js +1 -1
  15. package/dist/install-hook-only.cjs +1 -1
  16. package/dist/install-hook-only.iife.js +1 -1
  17. package/dist/install-hook-only.js +1 -1
  18. package/dist/rdt-hook.cjs +1 -1
  19. package/dist/rdt-hook.js +1 -1
  20. package/dist/react-refresh.cjs +9 -0
  21. package/dist/react-refresh.d.cts +66 -0
  22. package/dist/react-refresh.d.ts +66 -0
  23. package/dist/react-refresh.js +9 -0
  24. package/dist/source.cjs +4 -19
  25. package/dist/source.d.cts +35 -27
  26. package/dist/source.d.ts +35 -27
  27. package/dist/source.js +4 -19
  28. package/dist/unsubscribe.d.cts +298 -0
  29. package/dist/unsubscribe.d.ts +298 -0
  30. package/package.json +22 -7
  31. package/src/core.ts +322 -335
  32. package/src/rdt-hook.ts +57 -16
  33. package/src/react-refresh/constants.ts +9 -0
  34. package/src/react-refresh/detect-hmr-transport.ts +33 -0
  35. package/src/react-refresh/index.ts +173 -0
  36. package/src/react-refresh/metro-hmr-transport.ts +188 -0
  37. package/src/react-refresh/next-webpack-hmr-transport.ts +72 -0
  38. package/src/react-refresh/normalize-hmr-file-path.ts +24 -0
  39. package/src/react-refresh/types.ts +7 -0
  40. package/src/react-refresh/vite-hmr-transport.ts +116 -0
  41. package/src/source/constants.ts +11 -0
  42. package/src/source/get-display-name-from-source.ts +3 -3
  43. package/src/source/get-source.ts +53 -9
  44. package/src/source/index.ts +17 -8
  45. package/src/source/inspect-hooks.ts +7 -4
  46. package/src/source/owner-stack.ts +193 -29
  47. package/src/source/parse-debug-stack.ts +133 -0
  48. package/src/source/parse-stack.ts +6 -105
  49. package/src/source/symbolication.ts +48 -13
  50. package/src/types.ts +20 -7
  51. package/src/unsubscribe.ts +17 -0
@@ -0,0 +1,298 @@
1
+ import { ReactNode } from "react";
2
+
3
+ //#region src/types.d.ts
4
+ type BundleType = 0 | 1;
5
+ type Flags = number;
6
+ type Lanes = number;
7
+ type TypeOfMode = number;
8
+ type RootTag = 0 | 1 | 2;
9
+ type LanePriority = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17;
10
+ type WorkTag = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31;
11
+ type HookType = "useState" | "useReducer" | "useContext" | "useRef" | "useEffect" | "useLayoutEffect" | "useCallback" | "useMemo" | "useImperativeHandle" | "useDebugValue" | "useDeferredValue" | "useTransition" | "useMutableSource" | "useOpaqueIdentifier" | "useCacheRefresh";
12
+ type FiberRoot = any;
13
+ type MutableSource = any;
14
+ type OpaqueHandle = any;
15
+ type OpaqueRoot = any;
16
+ type React$AbstractComponent<_Config, _Instance = unknown> = any;
17
+ type HostConfig = Record<string, any>;
18
+ interface Source {
19
+ fileName: string;
20
+ lineNumber: number;
21
+ }
22
+ interface RefObject {
23
+ current: any;
24
+ }
25
+ interface Thenable<T> {
26
+ then(resolve: () => T, reject?: () => T): T;
27
+ }
28
+ interface ReactContext<T> {
29
+ $$typeof: symbol | number;
30
+ Consumer: ReactContext<T>;
31
+ Provider: ReactProviderType<T>;
32
+ _calculateChangedBits: ((a: T, b: T) => number) | null;
33
+ _currentValue: T;
34
+ _currentValue2: T;
35
+ _threadCount: number;
36
+ _currentRenderer?: Record<string, any> | null;
37
+ _currentRenderer2?: Record<string, any> | null;
38
+ displayName?: string;
39
+ }
40
+ interface ReactProviderType<T> {
41
+ $$typeof: symbol | number;
42
+ _context: ReactContext<T>;
43
+ }
44
+ interface ReactProvider<T> {
45
+ $$typeof: symbol | number;
46
+ type: ReactProviderType<T>;
47
+ key: null | string;
48
+ ref: null;
49
+ props: {
50
+ value: T;
51
+ children?: ReactNode;
52
+ };
53
+ }
54
+ interface ReactConsumer<T> {
55
+ $$typeof: symbol | number;
56
+ type: ReactContext<T>;
57
+ key: null | string;
58
+ ref: null;
59
+ props: {
60
+ children: (value: T) => ReactNode;
61
+ unstable_observedBits?: number;
62
+ };
63
+ }
64
+ interface ReactPortal {
65
+ $$typeof: symbol | number;
66
+ key: null | string;
67
+ containerInfo: any;
68
+ children: ReactNode;
69
+ implementation: any;
70
+ }
71
+ interface ComponentSelector {
72
+ $$typeof: symbol | number;
73
+ value: React$AbstractComponent<never, unknown>;
74
+ }
75
+ interface HasPseudoClassSelector {
76
+ $$typeof: symbol | number;
77
+ value: Selector[];
78
+ }
79
+ interface RoleSelector {
80
+ $$typeof: symbol | number;
81
+ value: string;
82
+ }
83
+ interface TextSelector {
84
+ $$typeof: symbol | number;
85
+ value: string;
86
+ }
87
+ interface TestNameSelector {
88
+ $$typeof: symbol | number;
89
+ value: string;
90
+ }
91
+ type Selector = ComponentSelector | HasPseudoClassSelector | RoleSelector | TextSelector | TestNameSelector;
92
+ interface DevToolsConfig<Instance = any, TextInstance = any, RendererInspectionConfig = any> {
93
+ bundleType: BundleType;
94
+ version: string;
95
+ rendererPackageName: string;
96
+ findFiberByHostInstance?: (instance: Instance | TextInstance) => ReactFiber | null;
97
+ rendererConfig?: RendererInspectionConfig;
98
+ }
99
+ interface SuspenseHydrationCallbacks<SuspenseInstance = unknown> {
100
+ onHydrated?: (suspenseInstance: SuspenseInstance) => void;
101
+ onDeleted?: (suspenseInstance: SuspenseInstance) => void;
102
+ }
103
+ interface TransitionTracingCallbacks {
104
+ onTransitionStart?: (transitionName: string, startTime: number) => void;
105
+ onTransitionProgress?: (transitionName: string, startTime: number, currentTime: number, pending: Array<{
106
+ name: null | string;
107
+ }>) => void;
108
+ onTransitionIncomplete?: (transitionName: string, startTime: number, deletions: Array<{
109
+ type: string;
110
+ name?: string;
111
+ newName?: string;
112
+ endTime: number;
113
+ }>) => void;
114
+ onTransitionComplete?: (transitionName: string, startTime: number, endTime: number) => void;
115
+ onMarkerProgress?: (transitionName: string, marker: string, startTime: number, currentTime: number, pending: Array<{
116
+ name: null | string;
117
+ }>) => void;
118
+ onMarkerIncomplete?: (transitionName: string, marker: string, startTime: number, deletions: Array<{
119
+ type: string;
120
+ name?: string;
121
+ newName?: string;
122
+ endTime: number;
123
+ }>) => void;
124
+ onMarkerComplete?: (transitionName: string, marker: string, startTime: number, endTime: number) => void;
125
+ }
126
+ interface ReactFiber {
127
+ tag: WorkTag;
128
+ key: null | string;
129
+ elementType: any;
130
+ type: any;
131
+ stateNode: any;
132
+ return: ReactFiber | null;
133
+ child: ReactFiber | null;
134
+ sibling: ReactFiber | null;
135
+ index: number;
136
+ ref: null | (((handle: unknown) => void) & {
137
+ _stringRef?: string | null;
138
+ }) | RefObject;
139
+ pendingProps: any;
140
+ memoizedProps: any;
141
+ updateQueue: unknown;
142
+ memoizedState: any;
143
+ dependencies: Dependencies | null;
144
+ mode: TypeOfMode;
145
+ flags: Flags;
146
+ subtreeFlags: Flags;
147
+ deletions: ReactFiber[] | null;
148
+ nextEffect: ReactFiber | null;
149
+ firstEffect: ReactFiber | null;
150
+ lastEffect: ReactFiber | null;
151
+ lanes: Lanes;
152
+ childLanes: Lanes;
153
+ alternate: ReactFiber | null;
154
+ actualDuration?: number;
155
+ actualStartTime?: number;
156
+ selfBaseDuration?: number;
157
+ treeBaseDuration?: number;
158
+ _debugID?: number;
159
+ _debugSource?: Source | null;
160
+ _debugOwner?: ReactFiber | null;
161
+ _debugIsCurrentlyTiming?: boolean;
162
+ _debugNeedsRemount?: boolean;
163
+ _debugHookTypes?: HookType[] | null;
164
+ }
165
+ interface ContextDependency<T> {
166
+ context: ReactContext<T>;
167
+ memoizedValue: T;
168
+ next: ContextDependency<unknown> | null;
169
+ observedBits: number;
170
+ }
171
+ interface Dependencies {
172
+ firstContext: ContextDependency<unknown> | null;
173
+ lanes: Lanes;
174
+ }
175
+ interface Effect {
176
+ [key: string]: unknown;
177
+ create: (...args: unknown[]) => unknown;
178
+ deps: null | unknown[];
179
+ destroy: ((...args: unknown[]) => unknown) | null;
180
+ next: Effect | null;
181
+ tag: number;
182
+ }
183
+ interface Family {
184
+ current: unknown;
185
+ }
186
+ /**
187
+ * React 19 flight metadata for a server component owner (ReactComponentInfo).
188
+ * Unlike client owners it has no `tag`; the owner chain continues via `owner`.
189
+ */
190
+ interface ServerComponentInfo {
191
+ name?: string;
192
+ env?: string;
193
+ owner?: Fiber | ServerComponentInfo | null;
194
+ debugStack?: Error | null;
195
+ }
196
+ interface RendererRefreshUpdate {
197
+ staleFamilies: Set<Family>;
198
+ updatedFamilies: Set<Family>;
199
+ }
200
+ /**
201
+ * Represents a react-internal Fiber node.
202
+ */
203
+ type Fiber<T = any> = Omit<ReactFiber, "alternate" | "child" | "dependencies" | "memoizedProps" | "memoizedState" | "pendingProps" | "return" | "sibling" | "stateNode" | "updateQueue"> & {
204
+ _debugInfo?: Array<{
205
+ debugLocation?: unknown;
206
+ env?: string;
207
+ name?: string;
208
+ }>;
209
+ _debugOwner?: Fiber;
210
+ _debugSource?: {
211
+ columnNumber?: number;
212
+ fileName: string;
213
+ lineNumber: number;
214
+ };
215
+ _debugStack?: Error & {
216
+ stack: string;
217
+ };
218
+ alternate: Fiber | null;
219
+ child: Fiber | null;
220
+ dependencies: Dependencies | null;
221
+ memoizedProps: Props;
222
+ memoizedState: MemoizedState;
223
+ pendingProps: Props;
224
+ return: Fiber | null;
225
+ sibling: Fiber | null;
226
+ stateNode: T;
227
+ updateQueue: {
228
+ [key: string]: unknown;
229
+ lastEffect: Effect | null;
230
+ };
231
+ };
232
+ interface MemoizedState {
233
+ [key: string]: unknown;
234
+ memoizedState: unknown;
235
+ next: MemoizedState | null;
236
+ }
237
+ interface Props {
238
+ [key: string]: unknown;
239
+ }
240
+ interface ReactDevToolsGlobalHook {
241
+ _instrumentationIsActive?: boolean;
242
+ _instrumentationSource?: string;
243
+ checkDCE: (fn: unknown) => void;
244
+ hasUnsupportedRendererAttached: boolean;
245
+ inject: (renderer: ReactRenderer) => number;
246
+ on: () => void;
247
+ onCommitFiberRoot: (rendererID: number, root: FiberRoot, priority: number | void) => void;
248
+ onCommitFiberUnmount: (rendererID: number, fiber: Fiber) => void;
249
+ onPostCommitFiberRoot: (rendererID: number, root: FiberRoot) => void;
250
+ onScheduleFiberRoot?: (rendererID: number, root: FiberRoot, children: ReactNode) => void;
251
+ renderers: Map<number, ReactRenderer>;
252
+ supportsFiber: boolean;
253
+ supportsFlight: boolean;
254
+ }
255
+ interface ReactRenderer {
256
+ bundleType: 0 | 1;
257
+ currentDispatcherRef: any;
258
+ findFiberByHostInstance?: (hostInstance: unknown) => Fiber | null;
259
+ getCurrentFiber?: (fiber: Fiber) => Fiber | null;
260
+ overrideContext?: (fiber: Fiber, contextType: unknown, path: string[], value: unknown) => void;
261
+ overrideHookState?: (fiber: Fiber, id: string, path: string[], value: unknown) => void;
262
+ overrideHookStateDeletePath?: (fiber: Fiber, id: number, path: Array<number | string>) => void;
263
+ overrideHookStateRenamePath?: (fiber: Fiber, id: number, oldPath: Array<number | string>, newPath: Array<number | string>) => void;
264
+ overrideProps?: (fiber: Fiber, path: string[], value: unknown) => void;
265
+ overridePropsDeletePath?: (fiber: Fiber, path: Array<number | string>) => void;
266
+ overridePropsRenamePath?: (fiber: Fiber, oldPath: Array<number | string>, newPath: Array<number | string>) => void;
267
+ reconcilerVersion: string;
268
+ rendererPackageName: string;
269
+ scheduleRefresh?: (root: FiberRoot, update: RendererRefreshUpdate) => void;
270
+ scheduleRoot?: (root: FiberRoot, element: React.ReactNode) => void;
271
+ scheduleUpdate?: (fiber: Fiber) => void;
272
+ setErrorHandler?: (newShouldErrorImpl: (fiber: Fiber) => boolean) => void;
273
+ setRefreshHandler?: (handler: ((fiber: Fiber) => Family | null) | null) => void;
274
+ setSuspenseHandler?: (newShouldSuspendImpl: (suspenseInstance: unknown) => void) => void;
275
+ version: string;
276
+ }
277
+ declare global {
278
+ var __REACT_DEVTOOLS_GLOBAL_HOOK__: ReactDevToolsGlobalHook | undefined;
279
+ }
280
+ //#endregion
281
+ //#region src/unsubscribe.d.ts
282
+ interface Unsubscribe extends Disposable {
283
+ (): void;
284
+ }
285
+ /**
286
+ * Wraps a teardown callback so it is both callable and a `Disposable`,
287
+ * letting subscriptions compose through explicit resource management:
288
+ *
289
+ * @example
290
+ * ```ts
291
+ * using instrumentation = instrument({ onCommitFiberRoot });
292
+ * using refresh = instrumentReactRefresh({ onRefresh: handleRefresh });
293
+ * // both torn down automatically at scope exit
294
+ * ```
295
+ */
296
+ declare const toUnsubscribe: (dispose: () => void) => Unsubscribe;
297
+ //#endregion
298
+ export { ReactRenderer as A, TextSelector as B, React$AbstractComponent as C, ReactPortal as D, ReactDevToolsGlobalHook as E, Selector as F, TransitionTracingCallbacks as H, ServerComponentInfo as I, Source as L, RendererRefreshUpdate as M, RoleSelector as N, ReactProvider as O, RootTag as P, SuspenseHydrationCallbacks as R, Props as S, ReactContext as T, TypeOfMode as U, Thenable as V, WorkTag as W, Lanes as _, ContextDependency as a, OpaqueHandle as b, Effect as c, FiberRoot as d, Flags as f, LanePriority as g, HostConfig as h, ComponentSelector as i, RefObject as j, ReactProviderType as k, Family as l, HookType as m, toUnsubscribe as n, Dependencies as o, HasPseudoClassSelector as p, BundleType as r, DevToolsConfig as s, Unsubscribe as t, Fiber as u, MemoizedState as v, ReactConsumer as w, OpaqueRoot as x, MutableSource as y, TestNameSelector as z };
@@ -0,0 +1,298 @@
1
+ import { ReactNode } from "react";
2
+
3
+ //#region src/types.d.ts
4
+ type BundleType = 0 | 1;
5
+ type Flags = number;
6
+ type Lanes = number;
7
+ type TypeOfMode = number;
8
+ type RootTag = 0 | 1 | 2;
9
+ type LanePriority = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17;
10
+ type WorkTag = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31;
11
+ type HookType = "useState" | "useReducer" | "useContext" | "useRef" | "useEffect" | "useLayoutEffect" | "useCallback" | "useMemo" | "useImperativeHandle" | "useDebugValue" | "useDeferredValue" | "useTransition" | "useMutableSource" | "useOpaqueIdentifier" | "useCacheRefresh";
12
+ type FiberRoot = any;
13
+ type MutableSource = any;
14
+ type OpaqueHandle = any;
15
+ type OpaqueRoot = any;
16
+ type React$AbstractComponent<_Config, _Instance = unknown> = any;
17
+ type HostConfig = Record<string, any>;
18
+ interface Source {
19
+ fileName: string;
20
+ lineNumber: number;
21
+ }
22
+ interface RefObject {
23
+ current: any;
24
+ }
25
+ interface Thenable<T> {
26
+ then(resolve: () => T, reject?: () => T): T;
27
+ }
28
+ interface ReactContext<T> {
29
+ $$typeof: symbol | number;
30
+ Consumer: ReactContext<T>;
31
+ Provider: ReactProviderType<T>;
32
+ _calculateChangedBits: ((a: T, b: T) => number) | null;
33
+ _currentValue: T;
34
+ _currentValue2: T;
35
+ _threadCount: number;
36
+ _currentRenderer?: Record<string, any> | null;
37
+ _currentRenderer2?: Record<string, any> | null;
38
+ displayName?: string;
39
+ }
40
+ interface ReactProviderType<T> {
41
+ $$typeof: symbol | number;
42
+ _context: ReactContext<T>;
43
+ }
44
+ interface ReactProvider<T> {
45
+ $$typeof: symbol | number;
46
+ type: ReactProviderType<T>;
47
+ key: null | string;
48
+ ref: null;
49
+ props: {
50
+ value: T;
51
+ children?: ReactNode;
52
+ };
53
+ }
54
+ interface ReactConsumer<T> {
55
+ $$typeof: symbol | number;
56
+ type: ReactContext<T>;
57
+ key: null | string;
58
+ ref: null;
59
+ props: {
60
+ children: (value: T) => ReactNode;
61
+ unstable_observedBits?: number;
62
+ };
63
+ }
64
+ interface ReactPortal {
65
+ $$typeof: symbol | number;
66
+ key: null | string;
67
+ containerInfo: any;
68
+ children: ReactNode;
69
+ implementation: any;
70
+ }
71
+ interface ComponentSelector {
72
+ $$typeof: symbol | number;
73
+ value: React$AbstractComponent<never, unknown>;
74
+ }
75
+ interface HasPseudoClassSelector {
76
+ $$typeof: symbol | number;
77
+ value: Selector[];
78
+ }
79
+ interface RoleSelector {
80
+ $$typeof: symbol | number;
81
+ value: string;
82
+ }
83
+ interface TextSelector {
84
+ $$typeof: symbol | number;
85
+ value: string;
86
+ }
87
+ interface TestNameSelector {
88
+ $$typeof: symbol | number;
89
+ value: string;
90
+ }
91
+ type Selector = ComponentSelector | HasPseudoClassSelector | RoleSelector | TextSelector | TestNameSelector;
92
+ interface DevToolsConfig<Instance = any, TextInstance = any, RendererInspectionConfig = any> {
93
+ bundleType: BundleType;
94
+ version: string;
95
+ rendererPackageName: string;
96
+ findFiberByHostInstance?: (instance: Instance | TextInstance) => ReactFiber | null;
97
+ rendererConfig?: RendererInspectionConfig;
98
+ }
99
+ interface SuspenseHydrationCallbacks<SuspenseInstance = unknown> {
100
+ onHydrated?: (suspenseInstance: SuspenseInstance) => void;
101
+ onDeleted?: (suspenseInstance: SuspenseInstance) => void;
102
+ }
103
+ interface TransitionTracingCallbacks {
104
+ onTransitionStart?: (transitionName: string, startTime: number) => void;
105
+ onTransitionProgress?: (transitionName: string, startTime: number, currentTime: number, pending: Array<{
106
+ name: null | string;
107
+ }>) => void;
108
+ onTransitionIncomplete?: (transitionName: string, startTime: number, deletions: Array<{
109
+ type: string;
110
+ name?: string;
111
+ newName?: string;
112
+ endTime: number;
113
+ }>) => void;
114
+ onTransitionComplete?: (transitionName: string, startTime: number, endTime: number) => void;
115
+ onMarkerProgress?: (transitionName: string, marker: string, startTime: number, currentTime: number, pending: Array<{
116
+ name: null | string;
117
+ }>) => void;
118
+ onMarkerIncomplete?: (transitionName: string, marker: string, startTime: number, deletions: Array<{
119
+ type: string;
120
+ name?: string;
121
+ newName?: string;
122
+ endTime: number;
123
+ }>) => void;
124
+ onMarkerComplete?: (transitionName: string, marker: string, startTime: number, endTime: number) => void;
125
+ }
126
+ interface ReactFiber {
127
+ tag: WorkTag;
128
+ key: null | string;
129
+ elementType: any;
130
+ type: any;
131
+ stateNode: any;
132
+ return: ReactFiber | null;
133
+ child: ReactFiber | null;
134
+ sibling: ReactFiber | null;
135
+ index: number;
136
+ ref: null | (((handle: unknown) => void) & {
137
+ _stringRef?: string | null;
138
+ }) | RefObject;
139
+ pendingProps: any;
140
+ memoizedProps: any;
141
+ updateQueue: unknown;
142
+ memoizedState: any;
143
+ dependencies: Dependencies | null;
144
+ mode: TypeOfMode;
145
+ flags: Flags;
146
+ subtreeFlags: Flags;
147
+ deletions: ReactFiber[] | null;
148
+ nextEffect: ReactFiber | null;
149
+ firstEffect: ReactFiber | null;
150
+ lastEffect: ReactFiber | null;
151
+ lanes: Lanes;
152
+ childLanes: Lanes;
153
+ alternate: ReactFiber | null;
154
+ actualDuration?: number;
155
+ actualStartTime?: number;
156
+ selfBaseDuration?: number;
157
+ treeBaseDuration?: number;
158
+ _debugID?: number;
159
+ _debugSource?: Source | null;
160
+ _debugOwner?: ReactFiber | null;
161
+ _debugIsCurrentlyTiming?: boolean;
162
+ _debugNeedsRemount?: boolean;
163
+ _debugHookTypes?: HookType[] | null;
164
+ }
165
+ interface ContextDependency<T> {
166
+ context: ReactContext<T>;
167
+ memoizedValue: T;
168
+ next: ContextDependency<unknown> | null;
169
+ observedBits: number;
170
+ }
171
+ interface Dependencies {
172
+ firstContext: ContextDependency<unknown> | null;
173
+ lanes: Lanes;
174
+ }
175
+ interface Effect {
176
+ [key: string]: unknown;
177
+ create: (...args: unknown[]) => unknown;
178
+ deps: null | unknown[];
179
+ destroy: ((...args: unknown[]) => unknown) | null;
180
+ next: Effect | null;
181
+ tag: number;
182
+ }
183
+ interface Family {
184
+ current: unknown;
185
+ }
186
+ /**
187
+ * React 19 flight metadata for a server component owner (ReactComponentInfo).
188
+ * Unlike client owners it has no `tag`; the owner chain continues via `owner`.
189
+ */
190
+ interface ServerComponentInfo {
191
+ name?: string;
192
+ env?: string;
193
+ owner?: Fiber | ServerComponentInfo | null;
194
+ debugStack?: Error | null;
195
+ }
196
+ interface RendererRefreshUpdate {
197
+ staleFamilies: Set<Family>;
198
+ updatedFamilies: Set<Family>;
199
+ }
200
+ /**
201
+ * Represents a react-internal Fiber node.
202
+ */
203
+ type Fiber<T = any> = Omit<ReactFiber, "alternate" | "child" | "dependencies" | "memoizedProps" | "memoizedState" | "pendingProps" | "return" | "sibling" | "stateNode" | "updateQueue"> & {
204
+ _debugInfo?: Array<{
205
+ debugLocation?: unknown;
206
+ env?: string;
207
+ name?: string;
208
+ }>;
209
+ _debugOwner?: Fiber;
210
+ _debugSource?: {
211
+ columnNumber?: number;
212
+ fileName: string;
213
+ lineNumber: number;
214
+ };
215
+ _debugStack?: Error & {
216
+ stack: string;
217
+ };
218
+ alternate: Fiber | null;
219
+ child: Fiber | null;
220
+ dependencies: Dependencies | null;
221
+ memoizedProps: Props;
222
+ memoizedState: MemoizedState;
223
+ pendingProps: Props;
224
+ return: Fiber | null;
225
+ sibling: Fiber | null;
226
+ stateNode: T;
227
+ updateQueue: {
228
+ [key: string]: unknown;
229
+ lastEffect: Effect | null;
230
+ };
231
+ };
232
+ interface MemoizedState {
233
+ [key: string]: unknown;
234
+ memoizedState: unknown;
235
+ next: MemoizedState | null;
236
+ }
237
+ interface Props {
238
+ [key: string]: unknown;
239
+ }
240
+ interface ReactDevToolsGlobalHook {
241
+ _instrumentationIsActive?: boolean;
242
+ _instrumentationSource?: string;
243
+ checkDCE: (fn: unknown) => void;
244
+ hasUnsupportedRendererAttached: boolean;
245
+ inject: (renderer: ReactRenderer) => number;
246
+ on: () => void;
247
+ onCommitFiberRoot: (rendererID: number, root: FiberRoot, priority: number | void) => void;
248
+ onCommitFiberUnmount: (rendererID: number, fiber: Fiber) => void;
249
+ onPostCommitFiberRoot: (rendererID: number, root: FiberRoot) => void;
250
+ onScheduleFiberRoot?: (rendererID: number, root: FiberRoot, children: ReactNode) => void;
251
+ renderers: Map<number, ReactRenderer>;
252
+ supportsFiber: boolean;
253
+ supportsFlight: boolean;
254
+ }
255
+ interface ReactRenderer {
256
+ bundleType: 0 | 1;
257
+ currentDispatcherRef: any;
258
+ findFiberByHostInstance?: (hostInstance: unknown) => Fiber | null;
259
+ getCurrentFiber?: (fiber: Fiber) => Fiber | null;
260
+ overrideContext?: (fiber: Fiber, contextType: unknown, path: string[], value: unknown) => void;
261
+ overrideHookState?: (fiber: Fiber, id: string, path: string[], value: unknown) => void;
262
+ overrideHookStateDeletePath?: (fiber: Fiber, id: number, path: Array<number | string>) => void;
263
+ overrideHookStateRenamePath?: (fiber: Fiber, id: number, oldPath: Array<number | string>, newPath: Array<number | string>) => void;
264
+ overrideProps?: (fiber: Fiber, path: string[], value: unknown) => void;
265
+ overridePropsDeletePath?: (fiber: Fiber, path: Array<number | string>) => void;
266
+ overridePropsRenamePath?: (fiber: Fiber, oldPath: Array<number | string>, newPath: Array<number | string>) => void;
267
+ reconcilerVersion: string;
268
+ rendererPackageName: string;
269
+ scheduleRefresh?: (root: FiberRoot, update: RendererRefreshUpdate) => void;
270
+ scheduleRoot?: (root: FiberRoot, element: React.ReactNode) => void;
271
+ scheduleUpdate?: (fiber: Fiber) => void;
272
+ setErrorHandler?: (newShouldErrorImpl: (fiber: Fiber) => boolean) => void;
273
+ setRefreshHandler?: (handler: ((fiber: Fiber) => Family | null) | null) => void;
274
+ setSuspenseHandler?: (newShouldSuspendImpl: (suspenseInstance: unknown) => void) => void;
275
+ version: string;
276
+ }
277
+ declare global {
278
+ var __REACT_DEVTOOLS_GLOBAL_HOOK__: ReactDevToolsGlobalHook | undefined;
279
+ }
280
+ //#endregion
281
+ //#region src/unsubscribe.d.ts
282
+ interface Unsubscribe extends Disposable {
283
+ (): void;
284
+ }
285
+ /**
286
+ * Wraps a teardown callback so it is both callable and a `Disposable`,
287
+ * letting subscriptions compose through explicit resource management:
288
+ *
289
+ * @example
290
+ * ```ts
291
+ * using instrumentation = instrument({ onCommitFiberRoot });
292
+ * using refresh = instrumentReactRefresh({ onRefresh: handleRefresh });
293
+ * // both torn down automatically at scope exit
294
+ * ```
295
+ */
296
+ declare const toUnsubscribe: (dispose: () => void) => Unsubscribe;
297
+ //#endregion
298
+ export { ReactRenderer as A, TextSelector as B, React$AbstractComponent as C, ReactPortal as D, ReactDevToolsGlobalHook as E, Selector as F, TransitionTracingCallbacks as H, ServerComponentInfo as I, Source as L, RendererRefreshUpdate as M, RoleSelector as N, ReactProvider as O, RootTag as P, SuspenseHydrationCallbacks as R, Props as S, ReactContext as T, TypeOfMode as U, Thenable as V, WorkTag as W, Lanes as _, ContextDependency as a, OpaqueHandle as b, Effect as c, FiberRoot as d, Flags as f, LanePriority as g, HostConfig as h, ComponentSelector as i, RefObject as j, ReactProviderType as k, Family as l, HookType as m, toUnsubscribe as n, Dependencies as o, HasPseudoClassSelector as p, BundleType as r, DevToolsConfig as s, Unsubscribe as t, Fiber as u, MemoizedState as v, ReactConsumer as w, OpaqueRoot as x, MutableSource as y, TestNameSelector as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bippy",
3
- "version": "0.5.43",
3
+ "version": "0.6.0-dev.8363ee2",
4
4
  "description": "hack into react internals",
5
5
  "keywords": [
6
6
  "bippy",
@@ -27,8 +27,6 @@
27
27
  "files": [
28
28
  "dist",
29
29
  "src",
30
- "!src/test/**",
31
- "bin",
32
30
  "package.json",
33
31
  "README.md",
34
32
  "LICENSE"
@@ -80,6 +78,16 @@
80
78
  "default": "./dist/source.cjs"
81
79
  }
82
80
  },
81
+ "./react-refresh": {
82
+ "import": {
83
+ "types": "./dist/react-refresh.d.ts",
84
+ "default": "./dist/react-refresh.js"
85
+ },
86
+ "require": {
87
+ "types": "./dist/react-refresh.d.cts",
88
+ "default": "./dist/react-refresh.cjs"
89
+ }
90
+ },
83
91
  "./dist/*": "./dist/*.js",
84
92
  "./dist/*.js": "./dist/*.js",
85
93
  "./dist/*.cjs": "./dist/*.cjs"
@@ -89,19 +97,26 @@
89
97
  },
90
98
  "devDependencies": {
91
99
  "@jridgewell/sourcemap-codec": "^1.5.0",
100
+ "@react-pdf/renderer": "^4.5.1",
101
+ "@react-three/fiber": "^9.6.1",
102
+ "@react-three/test-renderer": "^9.1.0",
92
103
  "@testing-library/dom": "^10.4.0",
93
104
  "@testing-library/react": "^16.1.0",
94
105
  "@types/node": "^20",
95
- "@types/react": "^19.0.4",
96
- "@types/react-dom": "^19.0.2",
97
- "esbuild": "^0.27.0",
106
+ "@types/react": "^19.2.17",
107
+ "@types/react-dom": "^19.2.3",
108
+ "@vitest/coverage-istanbul": "^4.1.10",
98
109
  "happy-dom": "^15.11.7",
110
+ "ink": "^7.1.1",
111
+ "ink-testing-library": "^4.0.0",
99
112
  "publint": "^0.3.0",
100
113
  "react": "19.0.0",
101
114
  "react-devtools-inline": "^6.0.1",
102
115
  "react-dom": "19.0.0",
116
+ "react-nil": "^2.0.0",
103
117
  "react-refresh": "^0.16.0",
104
- "terser": "^5.36.0",
118
+ "remotion": "^4.0.496",
119
+ "three": "^0.185.1",
105
120
  "tsx": "^4.21.0",
106
121
  "vite-plus": "latest"
107
122
  },