bippy 0.0.19 → 0.0.21
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/dist/index.cjs +75 -24
- package/dist/index.d.cts +19 -10
- package/dist/index.d.ts +19 -10
- package/dist/index.global.js +2 -1
- package/dist/index.js +73 -25
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -42,7 +42,10 @@ var Ref = 512;
|
|
|
42
42
|
var Snapshot = 1024;
|
|
43
43
|
var Visibility = 8192;
|
|
44
44
|
var MutationMask = Placement | Update | ChildDeletion | ContentReset | Hydrating | Visibility | Snapshot;
|
|
45
|
-
var isValidElement = (element) => typeof element === "object" && element != null && "$$typeof" in element &&
|
|
45
|
+
var isValidElement = (element) => typeof element === "object" && element != null && "$$typeof" in element && // react 18 uses Symbol.for('react.element'), react 19 uses Symbol.for('react.transitional.element')
|
|
46
|
+
["Symbol(react.element)", "Symbol(react.transitional.element)"].includes(
|
|
47
|
+
String(element.$$typeof)
|
|
48
|
+
);
|
|
46
49
|
var isHostFiber = (fiber) => fiber.tag === HostComponentTag || // @ts-expect-error: it exists
|
|
47
50
|
fiber.tag === HostHoistableTag || // @ts-expect-error: it exists
|
|
48
51
|
fiber.tag === HostSingletonTag;
|
|
@@ -84,7 +87,11 @@ var traverseProps = (fiber, selector) => {
|
|
|
84
87
|
try {
|
|
85
88
|
const nextProps = fiber.memoizedProps;
|
|
86
89
|
const prevProps = fiber.alternate?.memoizedProps || {};
|
|
87
|
-
|
|
90
|
+
const allKeys = /* @__PURE__ */ new Set([
|
|
91
|
+
...Object.keys(prevProps),
|
|
92
|
+
...Object.keys(nextProps)
|
|
93
|
+
]);
|
|
94
|
+
for (const propName of allKeys) {
|
|
88
95
|
const prevValue = prevProps?.[propName];
|
|
89
96
|
const nextValue = nextProps?.[propName];
|
|
90
97
|
if (selector(prevValue, nextValue) === true) return true;
|
|
@@ -217,34 +224,74 @@ var getDisplayName = (type) => {
|
|
|
217
224
|
if (!type) return null;
|
|
218
225
|
return type.displayName || type.name || null;
|
|
219
226
|
};
|
|
220
|
-
var
|
|
227
|
+
var isUsingRDT = () => globalThis.__REACT_DEVTOOLS_BACKEND_MANAGER_INJECTED__ != null;
|
|
228
|
+
var detectReactBuildType = (renderer) => {
|
|
229
|
+
try {
|
|
230
|
+
if (typeof renderer.version === "string" && renderer.bundleType > 0) {
|
|
231
|
+
return "development";
|
|
232
|
+
}
|
|
233
|
+
} catch {
|
|
234
|
+
}
|
|
235
|
+
return "production";
|
|
221
236
|
};
|
|
222
|
-
var
|
|
223
|
-
let rdtHook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
224
|
-
const renderers = /* @__PURE__ */ new Map();
|
|
225
|
-
let i = 0;
|
|
226
|
-
rdtHook ??= {
|
|
227
|
-
checkDCE: NO_OP,
|
|
228
|
-
supportsFiber: true,
|
|
229
|
-
supportsFlight: true,
|
|
230
|
-
renderers,
|
|
231
|
-
onCommitFiberRoot: NO_OP,
|
|
232
|
-
onCommitFiberUnmount: NO_OP,
|
|
233
|
-
onPostCommitFiberRoot: NO_OP,
|
|
234
|
-
inject(renderer) {
|
|
235
|
-
const nextID = ++i;
|
|
236
|
-
renderers.set(nextID, renderer);
|
|
237
|
-
return nextID;
|
|
238
|
-
},
|
|
239
|
-
_instrumentationSource: "bippy"
|
|
240
|
-
};
|
|
237
|
+
var checkDCE = (fn) => {
|
|
241
238
|
try {
|
|
242
|
-
|
|
239
|
+
const code = Function.prototype.toString.call(fn);
|
|
240
|
+
if (code.indexOf("^_^") > -1) {
|
|
241
|
+
setTimeout(() => {
|
|
242
|
+
throw new Error(
|
|
243
|
+
"React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build"
|
|
244
|
+
);
|
|
245
|
+
});
|
|
246
|
+
}
|
|
243
247
|
} catch {
|
|
244
248
|
}
|
|
249
|
+
};
|
|
250
|
+
var NO_OP = () => {
|
|
251
|
+
};
|
|
252
|
+
var getRDTHook = (onActive) => {
|
|
253
|
+
let rdtHook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
254
|
+
const isActive = rdtHook && !("_instrumentationSource" in rdtHook);
|
|
255
|
+
if (isActive) onActive?.();
|
|
256
|
+
if (!window.hasOwnProperty("__REACT_DEVTOOLS_GLOBAL_HOOK__")) {
|
|
257
|
+
const renderers = /* @__PURE__ */ new Map();
|
|
258
|
+
let i = 0;
|
|
259
|
+
rdtHook ??= {
|
|
260
|
+
checkDCE,
|
|
261
|
+
supportsFiber: true,
|
|
262
|
+
supportsFlight: true,
|
|
263
|
+
renderers,
|
|
264
|
+
onCommitFiberRoot: NO_OP,
|
|
265
|
+
onCommitFiberUnmount: NO_OP,
|
|
266
|
+
onPostCommitFiberRoot: NO_OP,
|
|
267
|
+
inject(renderer) {
|
|
268
|
+
const nextID = ++i;
|
|
269
|
+
renderers.set(nextID, renderer);
|
|
270
|
+
if (!rdtHook._instrumentationIsActive) {
|
|
271
|
+
rdtHook._instrumentationIsActive = true;
|
|
272
|
+
onActive?.();
|
|
273
|
+
}
|
|
274
|
+
return nextID;
|
|
275
|
+
},
|
|
276
|
+
_instrumentationSource: "bippy",
|
|
277
|
+
_instrumentationIsActive: isActive
|
|
278
|
+
};
|
|
279
|
+
try {
|
|
280
|
+
Object.defineProperty(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
|
|
281
|
+
configurable: true,
|
|
282
|
+
value: rdtHook
|
|
283
|
+
});
|
|
284
|
+
} catch {
|
|
285
|
+
}
|
|
286
|
+
}
|
|
245
287
|
return rdtHook;
|
|
246
288
|
};
|
|
289
|
+
var isInstrumentationActive = () => {
|
|
290
|
+
const rdtHook = getRDTHook();
|
|
291
|
+
return Boolean(rdtHook._instrumentationIsActive);
|
|
292
|
+
};
|
|
247
293
|
if (typeof window !== "undefined") {
|
|
294
|
+
performance.now();
|
|
248
295
|
getRDTHook();
|
|
249
296
|
}
|
|
250
297
|
var mountFiberRecursively = (onRender, firstChild, traverseSiblings) => {
|
|
@@ -397,9 +444,10 @@ var instrument = ({
|
|
|
397
444
|
onCommitFiberRoot,
|
|
398
445
|
onCommitFiberUnmount,
|
|
399
446
|
onPostCommitFiberRoot,
|
|
447
|
+
onActive,
|
|
400
448
|
name
|
|
401
449
|
}) => {
|
|
402
|
-
const devtoolsHook = getRDTHook();
|
|
450
|
+
const devtoolsHook = getRDTHook(onActive);
|
|
403
451
|
devtoolsHook._instrumentationSource = name ?? "bippy";
|
|
404
452
|
const prevOnCommitFiberRoot = devtoolsHook.onCommitFiberRoot;
|
|
405
453
|
if (onCommitFiberRoot) {
|
|
@@ -460,6 +508,7 @@ exports.SuspenseComponentTag = SuspenseComponentTag;
|
|
|
460
508
|
exports.Update = Update;
|
|
461
509
|
exports.Visibility = Visibility;
|
|
462
510
|
exports.createFiberVisitor = createFiberVisitor;
|
|
511
|
+
exports.detectReactBuildType = detectReactBuildType;
|
|
463
512
|
exports.didFiberCommit = didFiberCommit;
|
|
464
513
|
exports.didFiberRender = didFiberRender;
|
|
465
514
|
exports.getDisplayName = getDisplayName;
|
|
@@ -473,6 +522,8 @@ exports.hasMemoCache = hasMemoCache;
|
|
|
473
522
|
exports.instrument = instrument;
|
|
474
523
|
exports.isCompositeFiber = isCompositeFiber;
|
|
475
524
|
exports.isHostFiber = isHostFiber;
|
|
525
|
+
exports.isInstrumentationActive = isInstrumentationActive;
|
|
526
|
+
exports.isUsingRDT = isUsingRDT;
|
|
476
527
|
exports.isValidElement = isValidElement;
|
|
477
528
|
exports.mountFiberRecursively = mountFiberRecursively;
|
|
478
529
|
exports.shouldFilterFiber = shouldFilterFiber;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Fiber, FiberRoot } from 'react-reconciler';
|
|
3
3
|
|
|
4
|
+
interface ReactRenderer {
|
|
5
|
+
version: string;
|
|
6
|
+
bundleType: 0 | 1;
|
|
7
|
+
}
|
|
4
8
|
interface ReactDevToolsGlobalHook {
|
|
5
|
-
checkDCE: () => void;
|
|
9
|
+
checkDCE: (fn: any) => void;
|
|
6
10
|
supportsFiber: boolean;
|
|
7
11
|
supportsFlight: boolean;
|
|
8
|
-
renderers: Map<number,
|
|
12
|
+
renderers: Map<number, ReactRenderer>;
|
|
9
13
|
onCommitFiberRoot: (rendererID: number, root: unknown, priority: void | number) => void;
|
|
10
14
|
onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
|
|
11
15
|
onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
|
|
12
16
|
inject: (renderer: unknown) => number;
|
|
13
17
|
_instrumentationSource?: string;
|
|
18
|
+
_instrumentationIsActive?: boolean;
|
|
14
19
|
}
|
|
15
20
|
declare const ClassComponentTag = 1;
|
|
16
21
|
declare const FunctionComponentTag = 0;
|
|
@@ -74,21 +79,25 @@ declare const getTimings: (fiber?: Fiber | null | undefined) => {
|
|
|
74
79
|
declare const hasMemoCache: (fiber: Fiber) => boolean;
|
|
75
80
|
declare const getType: (type: any) => any;
|
|
76
81
|
declare const getDisplayName: (type: any) => string | null;
|
|
77
|
-
declare const
|
|
78
|
-
|
|
82
|
+
declare const isUsingRDT: () => boolean;
|
|
83
|
+
declare const detectReactBuildType: (renderer: ReactRenderer) => "development" | "production";
|
|
84
|
+
declare const getRDTHook: (onActive?: () => unknown) => ReactDevToolsGlobalHook;
|
|
85
|
+
declare const isInstrumentationActive: () => boolean;
|
|
86
|
+
type RenderHandler = <S>(fiber: Fiber, phase: 'mount' | 'update' | 'unmount', state?: S) => unknown;
|
|
79
87
|
declare const mountFiberRecursively: (onRender: RenderHandler, firstChild: Fiber, traverseSiblings: boolean) => void;
|
|
80
88
|
declare const updateFiberRecursively: (onRender: RenderHandler, nextFiber: Fiber, prevFiber: Fiber, parentFiber: Fiber | null) => void;
|
|
81
89
|
declare const unmountFiber: (onRender: RenderHandler, fiber: Fiber) => void;
|
|
82
90
|
declare const unmountFiberChildrenRecursively: (onRender: RenderHandler, fiber: Fiber) => void;
|
|
83
91
|
declare const createFiberVisitor: ({ onRender: onRenderWithoutState, onError, }: {
|
|
84
92
|
onRender: RenderHandler;
|
|
85
|
-
onError?: (error: unknown) =>
|
|
93
|
+
onError?: (error: unknown) => unknown;
|
|
86
94
|
}) => <S>(_rendererID: number, root: FiberRoot, state?: S) => void;
|
|
87
|
-
declare const instrument: ({ onCommitFiberRoot, onCommitFiberUnmount, onPostCommitFiberRoot, name, }: {
|
|
88
|
-
onCommitFiberRoot?: (rendererID: number, root: FiberRoot, priority: void | number) =>
|
|
89
|
-
onCommitFiberUnmount?: (rendererID: number, root: FiberRoot) =>
|
|
90
|
-
onPostCommitFiberRoot?: (rendererID: number, root: FiberRoot) =>
|
|
95
|
+
declare const instrument: ({ onCommitFiberRoot, onCommitFiberUnmount, onPostCommitFiberRoot, onActive, name, }: {
|
|
96
|
+
onCommitFiberRoot?: (rendererID: number, root: FiberRoot, priority: void | number) => unknown;
|
|
97
|
+
onCommitFiberUnmount?: (rendererID: number, root: FiberRoot) => unknown;
|
|
98
|
+
onPostCommitFiberRoot?: (rendererID: number, root: FiberRoot) => unknown;
|
|
99
|
+
onActive?: () => unknown;
|
|
91
100
|
name?: string;
|
|
92
101
|
}) => ReactDevToolsGlobalHook;
|
|
93
102
|
|
|
94
|
-
export { CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ChildDeletion, ClassComponentTag, Cloned, ContentReset, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponent, DidCapture, ForwardRefTag, Fragment, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRoot, HostSingletonTag, HostText, Hydrating, LegacyHiddenComponent, MemoComponentTag, MutationMask, OffscreenComponent, OffscreenComponentTag, PerformedWork, Placement, type ReactDevToolsGlobalHook, Ref, SimpleMemoComponentTag, Snapshot, SuspenseComponentTag, Update, Visibility, createFiberVisitor, didFiberCommit, didFiberRender, getDisplayName, getFiberStack, getMutatedHostFibers, getNearestHostFiber, getRDTHook, getTimings, getType, hasMemoCache, instrument, isCompositeFiber, isHostFiber, isValidElement, mountFiberRecursively, shouldFilterFiber, traverseContexts, traverseFiber, traverseProps, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively };
|
|
103
|
+
export { CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ChildDeletion, ClassComponentTag, Cloned, ContentReset, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponent, DidCapture, ForwardRefTag, Fragment, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRoot, HostSingletonTag, HostText, Hydrating, LegacyHiddenComponent, MemoComponentTag, MutationMask, OffscreenComponent, OffscreenComponentTag, PerformedWork, Placement, type ReactDevToolsGlobalHook, type ReactRenderer, Ref, SimpleMemoComponentTag, Snapshot, SuspenseComponentTag, Update, Visibility, createFiberVisitor, detectReactBuildType, didFiberCommit, didFiberRender, getDisplayName, getFiberStack, getMutatedHostFibers, getNearestHostFiber, getRDTHook, getTimings, getType, hasMemoCache, instrument, isCompositeFiber, isHostFiber, isInstrumentationActive, isUsingRDT, isValidElement, mountFiberRecursively, shouldFilterFiber, traverseContexts, traverseFiber, traverseProps, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,16 +1,21 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Fiber, FiberRoot } from 'react-reconciler';
|
|
3
3
|
|
|
4
|
+
interface ReactRenderer {
|
|
5
|
+
version: string;
|
|
6
|
+
bundleType: 0 | 1;
|
|
7
|
+
}
|
|
4
8
|
interface ReactDevToolsGlobalHook {
|
|
5
|
-
checkDCE: () => void;
|
|
9
|
+
checkDCE: (fn: any) => void;
|
|
6
10
|
supportsFiber: boolean;
|
|
7
11
|
supportsFlight: boolean;
|
|
8
|
-
renderers: Map<number,
|
|
12
|
+
renderers: Map<number, ReactRenderer>;
|
|
9
13
|
onCommitFiberRoot: (rendererID: number, root: unknown, priority: void | number) => void;
|
|
10
14
|
onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
|
|
11
15
|
onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
|
|
12
16
|
inject: (renderer: unknown) => number;
|
|
13
17
|
_instrumentationSource?: string;
|
|
18
|
+
_instrumentationIsActive?: boolean;
|
|
14
19
|
}
|
|
15
20
|
declare const ClassComponentTag = 1;
|
|
16
21
|
declare const FunctionComponentTag = 0;
|
|
@@ -74,21 +79,25 @@ declare const getTimings: (fiber?: Fiber | null | undefined) => {
|
|
|
74
79
|
declare const hasMemoCache: (fiber: Fiber) => boolean;
|
|
75
80
|
declare const getType: (type: any) => any;
|
|
76
81
|
declare const getDisplayName: (type: any) => string | null;
|
|
77
|
-
declare const
|
|
78
|
-
|
|
82
|
+
declare const isUsingRDT: () => boolean;
|
|
83
|
+
declare const detectReactBuildType: (renderer: ReactRenderer) => "development" | "production";
|
|
84
|
+
declare const getRDTHook: (onActive?: () => unknown) => ReactDevToolsGlobalHook;
|
|
85
|
+
declare const isInstrumentationActive: () => boolean;
|
|
86
|
+
type RenderHandler = <S>(fiber: Fiber, phase: 'mount' | 'update' | 'unmount', state?: S) => unknown;
|
|
79
87
|
declare const mountFiberRecursively: (onRender: RenderHandler, firstChild: Fiber, traverseSiblings: boolean) => void;
|
|
80
88
|
declare const updateFiberRecursively: (onRender: RenderHandler, nextFiber: Fiber, prevFiber: Fiber, parentFiber: Fiber | null) => void;
|
|
81
89
|
declare const unmountFiber: (onRender: RenderHandler, fiber: Fiber) => void;
|
|
82
90
|
declare const unmountFiberChildrenRecursively: (onRender: RenderHandler, fiber: Fiber) => void;
|
|
83
91
|
declare const createFiberVisitor: ({ onRender: onRenderWithoutState, onError, }: {
|
|
84
92
|
onRender: RenderHandler;
|
|
85
|
-
onError?: (error: unknown) =>
|
|
93
|
+
onError?: (error: unknown) => unknown;
|
|
86
94
|
}) => <S>(_rendererID: number, root: FiberRoot, state?: S) => void;
|
|
87
|
-
declare const instrument: ({ onCommitFiberRoot, onCommitFiberUnmount, onPostCommitFiberRoot, name, }: {
|
|
88
|
-
onCommitFiberRoot?: (rendererID: number, root: FiberRoot, priority: void | number) =>
|
|
89
|
-
onCommitFiberUnmount?: (rendererID: number, root: FiberRoot) =>
|
|
90
|
-
onPostCommitFiberRoot?: (rendererID: number, root: FiberRoot) =>
|
|
95
|
+
declare const instrument: ({ onCommitFiberRoot, onCommitFiberUnmount, onPostCommitFiberRoot, onActive, name, }: {
|
|
96
|
+
onCommitFiberRoot?: (rendererID: number, root: FiberRoot, priority: void | number) => unknown;
|
|
97
|
+
onCommitFiberUnmount?: (rendererID: number, root: FiberRoot) => unknown;
|
|
98
|
+
onPostCommitFiberRoot?: (rendererID: number, root: FiberRoot) => unknown;
|
|
99
|
+
onActive?: () => unknown;
|
|
91
100
|
name?: string;
|
|
92
101
|
}) => ReactDevToolsGlobalHook;
|
|
93
102
|
|
|
94
|
-
export { CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ChildDeletion, ClassComponentTag, Cloned, ContentReset, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponent, DidCapture, ForwardRefTag, Fragment, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRoot, HostSingletonTag, HostText, Hydrating, LegacyHiddenComponent, MemoComponentTag, MutationMask, OffscreenComponent, OffscreenComponentTag, PerformedWork, Placement, type ReactDevToolsGlobalHook, Ref, SimpleMemoComponentTag, Snapshot, SuspenseComponentTag, Update, Visibility, createFiberVisitor, didFiberCommit, didFiberRender, getDisplayName, getFiberStack, getMutatedHostFibers, getNearestHostFiber, getRDTHook, getTimings, getType, hasMemoCache, instrument, isCompositeFiber, isHostFiber, isValidElement, mountFiberRecursively, shouldFilterFiber, traverseContexts, traverseFiber, traverseProps, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively };
|
|
103
|
+
export { CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ChildDeletion, ClassComponentTag, Cloned, ContentReset, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponent, DidCapture, ForwardRefTag, Fragment, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRoot, HostSingletonTag, HostText, Hydrating, LegacyHiddenComponent, MemoComponentTag, MutationMask, OffscreenComponent, OffscreenComponentTag, PerformedWork, Placement, type ReactDevToolsGlobalHook, type ReactRenderer, Ref, SimpleMemoComponentTag, Snapshot, SuspenseComponentTag, Update, Visibility, createFiberVisitor, detectReactBuildType, didFiberCommit, didFiberRender, getDisplayName, getFiberStack, getMutatedHostFibers, getNearestHostFiber, getRDTHook, getTimings, getType, hasMemoCache, instrument, isCompositeFiber, isHostFiber, isInstrumentationActive, isUsingRDT, isValidElement, mountFiberRecursively, shouldFilterFiber, traverseContexts, traverseFiber, traverseProps, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively };
|
package/dist/index.global.js
CHANGED
|
@@ -6,4 +6,5 @@ var Bippy=(function(exports){'use strict';/**
|
|
|
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
|
-
var
|
|
9
|
+
var O=1,D=0,H=9,E=13,P=22,M=11,z=14,I=15,A=5,N=26,V=27,U=18,j=6,L=7,B=23,G=22,W=3,$=60111,R="Symbol(react.concurrent_mode)",_="Symbol(react.async_mode)",K=1,Y=2,J=128,Q=4096,q=4,X=8,Z=16,ee=32,te=512,ne=1024,oe=8192,re=13366,ie=e=>typeof e=="object"&&e!=null&&"$$typeof"in e&&["Symbol(react.element)","Symbol(react.transitional.element)"].includes(String(e.$$typeof)),d=e=>e.tag===5||e.tag===26||e.tag===27,se=e=>e.tag===0||e.tag===1||e.tag===15||e.tag===14||e.tag===11,le=(e,t)=>{try{let o=e.dependencies,n=e.alternate?.dependencies;if(!o||!n||typeof o!="object"||!("firstContext"in o)||typeof n!="object"||!("firstContext"in n))return !1;let l=o.firstContext,r=n.firstContext;for(;l&&typeof l=="object"&&"memoizedValue"in l&&r&&typeof r=="object"&&"memoizedValue"in r;){if(t(l,r)===!0)return !0;l=l.next,r=r.next;}}catch{}return !1},ae=(e,t)=>{try{let o=e.memoizedState,n=e.alternate?.memoizedState;for(;o&&n;){if(t(o,n)===!0)return !0;o=o.next,n=n.next;}}catch{}return !1},ce=(e,t)=>{try{let o=e.memoizedProps,n=e.alternate?.memoizedProps||{},l=new Set([...Object.keys(n),...Object.keys(o)]);for(let r of l){let s=n?.[r],c=o?.[r];if(t(s,c)===!0)return !0}}catch{}return !1},C=e=>{let t=e.memoizedProps,o=e.alternate?.memoizedProps||{},n=e.flags??e.effectTag??0;switch(e.tag){case 1:case 0:case 9:case 11:case 14:case 15:return (n&1)===1;default:return e.alternate?o!==t||e.alternate.memoizedState!==e.memoizedState||e.alternate.ref!==e.ref:!0}},w=e=>!!(e.flags&22||e.subtreeFlags&22),ue=e=>{let t=[],o=[e];for(;o.length;){let n=o.pop();n&&(d(n)&&w(n)&&C(n)&&t.push(n),n.child&&o.push(n.child),n.sibling&&o.push(n.sibling));}return t},me=e=>{let t=[];for(;e.return;)t.push(e),e=e.return;let o=new Array(t.length);for(let n=0;n<t.length;n++)o[n]=t[t.length-n-1];return o},g=e=>{switch(e.tag){case 18:return !0;case 6:case 7:case 23:case 22:return !0;case 3:return !1;default:{let t=typeof e.type=="object"&&e.type!==null?e.type.$$typeof:e.type;switch(typeof t=="symbol"?t.toString():t){case 60111:case R:case _:return !0;default:return !1}}}},pe=e=>{let t=b(e,d);return t||(t=b(e,d,!0)),t},b=(e,t,o=!1)=>{if(!e)return null;if(t(e)===!0)return e;let n=o?e.return:e.child;for(;n;){let l=b(n,t,o);if(l)return l;n=o?null:n.sibling;}return null},de=e=>{let t=e?.actualDuration??0,o=t,n=e?.child??null;for(;t>0&&n!=null;)o-=n.actualDuration??0,n=n.sibling;return {selfTime:o,totalTime:t}},be=e=>!!e.updateQueue?.memoCache,y=e=>typeof e=="function"?e:typeof e=="object"&&e?y(e.type||e.render):null,fe=e=>{if(typeof e!="function"&&!(typeof e=="object"&&e))return null;let t=e.displayName||e.name||null;return t||(e=y(e),e&&(e.displayName||e.name)||null)},Ce=()=>globalThis.__REACT_DEVTOOLS_BACKEND_MANAGER_INJECTED__!=null,ge=e=>{try{if(typeof e.version=="string"&&e.bundleType>0)return "development"}catch{}return "production"},k=e=>{try{Function.prototype.toString.call(e).indexOf("^_^")>-1&&setTimeout(()=>{throw new Error("React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build")});}catch{}},p=()=>{},h=e=>{let t=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__,o=t&&!("_instrumentationSource"in t);if(o&&e?.(),!window.hasOwnProperty("__REACT_DEVTOOLS_GLOBAL_HOOK__")){let n=new Map,l=0;t??={checkDCE:k,supportsFiber:!0,supportsFlight:!0,renderers:n,onCommitFiberRoot:p,onCommitFiberUnmount:p,onPostCommitFiberRoot:p,inject(r){let s=++l;return n.set(s,r),t._instrumentationIsActive||(t._instrumentationIsActive=!0,e?.()),s},_instrumentationSource:"bippy",_instrumentationIsActive:o};try{Object.defineProperty(globalThis,"__REACT_DEVTOOLS_GLOBAL_HOOK__",{configurable:!0,value:t});}catch{}}return t},he=()=>!!h()._instrumentationIsActive;typeof window<"u"&&(performance.now(),h());var m=(e,t,o)=>{let n=t;for(;n!=null;){if(!g(n)&&C(n)&&e(n,"mount"),n.tag===13)if(n.memoizedState!==null){let s=n.child,c=s?s.sibling:null;if(c){let i=c.child;i!==null&&m(e,i,!1);}}else {let s=null;n.child!==null&&(s=n.child.child),s!==null&&m(e,s,!1);}else n.child!=null&&m(e,n.child,!0);n=o?n.sibling:null;}},f=(e,t,o,n)=>{if(!o)return;let l=t.tag===13,r=!g(t);r&&C(t)&&e(t,"update");let s=l&&o.memoizedState!==null,c=l&&t.memoizedState!==null;if(s&&c){let i=t.child?.sibling??null,a=o.child?.sibling??null;i!==null&&a!==null&&f(e,i,a);}else if(s&&!c){let i=t.child;i!==null&&m(e,i,!0);}else if(!s&&c){T(e,o);let i=t.child?.sibling??null;i!==null&&m(e,i,!0);}else if(t.child!==o.child){let i=t.child;for(;i;){if(i.alternate){let a=i.alternate;f(e,i,a);}else m(e,i,!1);i=i.sibling;}}},S=(e,t)=>{(t.tag===3||!g(t))&&e(t,"unmount");},T=(e,t)=>{let o=t.tag===13&&t.memoizedState!==null,n=t.child;for(o&&(n=(t.child?.sibling??null)?.child??null);n!==null;)n.return!==null&&(S(e,n),T(e,n)),n=n.sibling;},v=0,F=new WeakMap,xe=({onRender:e,onError:t})=>(o,n,l)=>{let r=n.current,s=(a,u)=>e(a,u,l),c=F.get(n);c||(c={prevFiber:null,id:v++},F.set(n,c));let{prevFiber:i}=c;try{if(i!==null){let a=i&&i.memoizedState!=null&&i.memoizedState.element!=null&&i.memoizedState.isDehydrated!==!0,u=r.memoizedState!=null&&r.memoizedState.element!=null&&r.memoizedState.isDehydrated!==!0;!a&&u?m(s,r,!1):a&&u?f(s,r,r.alternate,null):a&&!u&&S(s,r);}else m(s,r,!1);}catch(a){if(t)t(a);else throw a}c.prevFiber=r;},Fe=({onCommitFiberRoot:e,onCommitFiberUnmount:t,onPostCommitFiberRoot:o,onActive:n,name:l})=>{let r=h(n);r._instrumentationSource=l??"bippy";let s=r.onCommitFiberRoot;e&&(r.onCommitFiberRoot=(a,u,x)=>{s&&s(a,u,x),e(a,u,x);});let c=r.onCommitFiberUnmount;t&&(r.onCommitFiberUnmount=(a,u)=>{c&&c(a,u),t(a,u);});let i=r.onPostCommitFiberRoot;return o&&(r.onPostCommitFiberRoot=(a,u)=>{i&&i(a,u);}),r};
|
|
10
|
+
exports.CONCURRENT_MODE_NUMBER=$;exports.CONCURRENT_MODE_SYMBOL_STRING=R;exports.ChildDeletion=Z;exports.ClassComponentTag=O;exports.Cloned=X;exports.ContentReset=ee;exports.ContextConsumerTag=H;exports.DEPRECATED_ASYNC_MODE_SYMBOL_STRING=_;exports.DehydratedSuspenseComponent=U;exports.DidCapture=J;exports.ForwardRefTag=M;exports.Fragment=L;exports.FunctionComponentTag=D;exports.HostComponentTag=A;exports.HostHoistableTag=N;exports.HostRoot=W;exports.HostSingletonTag=V;exports.HostText=j;exports.Hydrating=Q;exports.LegacyHiddenComponent=B;exports.MemoComponentTag=z;exports.MutationMask=re;exports.OffscreenComponent=G;exports.OffscreenComponentTag=P;exports.PerformedWork=K;exports.Placement=Y;exports.Ref=te;exports.SimpleMemoComponentTag=I;exports.Snapshot=ne;exports.SuspenseComponentTag=E;exports.Update=q;exports.Visibility=oe;exports.createFiberVisitor=xe;exports.detectReactBuildType=ge;exports.didFiberCommit=w;exports.didFiberRender=C;exports.getDisplayName=fe;exports.getFiberStack=me;exports.getMutatedHostFibers=ue;exports.getNearestHostFiber=pe;exports.getRDTHook=h;exports.getTimings=de;exports.getType=y;exports.hasMemoCache=be;exports.instrument=Fe;exports.isCompositeFiber=se;exports.isHostFiber=d;exports.isInstrumentationActive=he;exports.isUsingRDT=Ce;exports.isValidElement=ie;exports.mountFiberRecursively=m;exports.shouldFilterFiber=g;exports.traverseContexts=le;exports.traverseFiber=b;exports.traverseProps=ce;exports.traverseState=ae;exports.unmountFiber=S;exports.unmountFiberChildrenRecursively=T;exports.updateFiberRecursively=f;return exports;})({});
|
package/dist/index.js
CHANGED
|
@@ -40,7 +40,10 @@ var Ref = 512;
|
|
|
40
40
|
var Snapshot = 1024;
|
|
41
41
|
var Visibility = 8192;
|
|
42
42
|
var MutationMask = Placement | Update | ChildDeletion | ContentReset | Hydrating | Visibility | Snapshot;
|
|
43
|
-
var isValidElement = (element) => typeof element === "object" && element != null && "$$typeof" in element &&
|
|
43
|
+
var isValidElement = (element) => typeof element === "object" && element != null && "$$typeof" in element && // react 18 uses Symbol.for('react.element'), react 19 uses Symbol.for('react.transitional.element')
|
|
44
|
+
["Symbol(react.element)", "Symbol(react.transitional.element)"].includes(
|
|
45
|
+
String(element.$$typeof)
|
|
46
|
+
);
|
|
44
47
|
var isHostFiber = (fiber) => fiber.tag === HostComponentTag || // @ts-expect-error: it exists
|
|
45
48
|
fiber.tag === HostHoistableTag || // @ts-expect-error: it exists
|
|
46
49
|
fiber.tag === HostSingletonTag;
|
|
@@ -82,7 +85,11 @@ var traverseProps = (fiber, selector) => {
|
|
|
82
85
|
try {
|
|
83
86
|
const nextProps = fiber.memoizedProps;
|
|
84
87
|
const prevProps = fiber.alternate?.memoizedProps || {};
|
|
85
|
-
|
|
88
|
+
const allKeys = /* @__PURE__ */ new Set([
|
|
89
|
+
...Object.keys(prevProps),
|
|
90
|
+
...Object.keys(nextProps)
|
|
91
|
+
]);
|
|
92
|
+
for (const propName of allKeys) {
|
|
86
93
|
const prevValue = prevProps?.[propName];
|
|
87
94
|
const nextValue = nextProps?.[propName];
|
|
88
95
|
if (selector(prevValue, nextValue) === true) return true;
|
|
@@ -215,34 +222,74 @@ var getDisplayName = (type) => {
|
|
|
215
222
|
if (!type) return null;
|
|
216
223
|
return type.displayName || type.name || null;
|
|
217
224
|
};
|
|
218
|
-
var
|
|
225
|
+
var isUsingRDT = () => globalThis.__REACT_DEVTOOLS_BACKEND_MANAGER_INJECTED__ != null;
|
|
226
|
+
var detectReactBuildType = (renderer) => {
|
|
227
|
+
try {
|
|
228
|
+
if (typeof renderer.version === "string" && renderer.bundleType > 0) {
|
|
229
|
+
return "development";
|
|
230
|
+
}
|
|
231
|
+
} catch {
|
|
232
|
+
}
|
|
233
|
+
return "production";
|
|
219
234
|
};
|
|
220
|
-
var
|
|
221
|
-
let rdtHook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
222
|
-
const renderers = /* @__PURE__ */ new Map();
|
|
223
|
-
let i = 0;
|
|
224
|
-
rdtHook ??= {
|
|
225
|
-
checkDCE: NO_OP,
|
|
226
|
-
supportsFiber: true,
|
|
227
|
-
supportsFlight: true,
|
|
228
|
-
renderers,
|
|
229
|
-
onCommitFiberRoot: NO_OP,
|
|
230
|
-
onCommitFiberUnmount: NO_OP,
|
|
231
|
-
onPostCommitFiberRoot: NO_OP,
|
|
232
|
-
inject(renderer) {
|
|
233
|
-
const nextID = ++i;
|
|
234
|
-
renderers.set(nextID, renderer);
|
|
235
|
-
return nextID;
|
|
236
|
-
},
|
|
237
|
-
_instrumentationSource: "bippy"
|
|
238
|
-
};
|
|
235
|
+
var checkDCE = (fn) => {
|
|
239
236
|
try {
|
|
240
|
-
|
|
237
|
+
const code = Function.prototype.toString.call(fn);
|
|
238
|
+
if (code.indexOf("^_^") > -1) {
|
|
239
|
+
setTimeout(() => {
|
|
240
|
+
throw new Error(
|
|
241
|
+
"React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build"
|
|
242
|
+
);
|
|
243
|
+
});
|
|
244
|
+
}
|
|
241
245
|
} catch {
|
|
242
246
|
}
|
|
247
|
+
};
|
|
248
|
+
var NO_OP = () => {
|
|
249
|
+
};
|
|
250
|
+
var getRDTHook = (onActive) => {
|
|
251
|
+
let rdtHook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
252
|
+
const isActive = rdtHook && !("_instrumentationSource" in rdtHook);
|
|
253
|
+
if (isActive) onActive?.();
|
|
254
|
+
if (!window.hasOwnProperty("__REACT_DEVTOOLS_GLOBAL_HOOK__")) {
|
|
255
|
+
const renderers = /* @__PURE__ */ new Map();
|
|
256
|
+
let i = 0;
|
|
257
|
+
rdtHook ??= {
|
|
258
|
+
checkDCE,
|
|
259
|
+
supportsFiber: true,
|
|
260
|
+
supportsFlight: true,
|
|
261
|
+
renderers,
|
|
262
|
+
onCommitFiberRoot: NO_OP,
|
|
263
|
+
onCommitFiberUnmount: NO_OP,
|
|
264
|
+
onPostCommitFiberRoot: NO_OP,
|
|
265
|
+
inject(renderer) {
|
|
266
|
+
const nextID = ++i;
|
|
267
|
+
renderers.set(nextID, renderer);
|
|
268
|
+
if (!rdtHook._instrumentationIsActive) {
|
|
269
|
+
rdtHook._instrumentationIsActive = true;
|
|
270
|
+
onActive?.();
|
|
271
|
+
}
|
|
272
|
+
return nextID;
|
|
273
|
+
},
|
|
274
|
+
_instrumentationSource: "bippy",
|
|
275
|
+
_instrumentationIsActive: isActive
|
|
276
|
+
};
|
|
277
|
+
try {
|
|
278
|
+
Object.defineProperty(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
|
|
279
|
+
configurable: true,
|
|
280
|
+
value: rdtHook
|
|
281
|
+
});
|
|
282
|
+
} catch {
|
|
283
|
+
}
|
|
284
|
+
}
|
|
243
285
|
return rdtHook;
|
|
244
286
|
};
|
|
287
|
+
var isInstrumentationActive = () => {
|
|
288
|
+
const rdtHook = getRDTHook();
|
|
289
|
+
return Boolean(rdtHook._instrumentationIsActive);
|
|
290
|
+
};
|
|
245
291
|
if (typeof window !== "undefined") {
|
|
292
|
+
performance.now();
|
|
246
293
|
getRDTHook();
|
|
247
294
|
}
|
|
248
295
|
var mountFiberRecursively = (onRender, firstChild, traverseSiblings) => {
|
|
@@ -395,9 +442,10 @@ var instrument = ({
|
|
|
395
442
|
onCommitFiberRoot,
|
|
396
443
|
onCommitFiberUnmount,
|
|
397
444
|
onPostCommitFiberRoot,
|
|
445
|
+
onActive,
|
|
398
446
|
name
|
|
399
447
|
}) => {
|
|
400
|
-
const devtoolsHook = getRDTHook();
|
|
448
|
+
const devtoolsHook = getRDTHook(onActive);
|
|
401
449
|
devtoolsHook._instrumentationSource = name ?? "bippy";
|
|
402
450
|
const prevOnCommitFiberRoot = devtoolsHook.onCommitFiberRoot;
|
|
403
451
|
if (onCommitFiberRoot) {
|
|
@@ -425,4 +473,4 @@ var instrument = ({
|
|
|
425
473
|
return devtoolsHook;
|
|
426
474
|
};
|
|
427
475
|
|
|
428
|
-
export { CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ChildDeletion, ClassComponentTag, Cloned, ContentReset, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponent, DidCapture, ForwardRefTag, Fragment, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRoot, HostSingletonTag, HostText, Hydrating, LegacyHiddenComponent, MemoComponentTag, MutationMask, OffscreenComponent, OffscreenComponentTag, PerformedWork, Placement, Ref, SimpleMemoComponentTag, Snapshot, SuspenseComponentTag, Update, Visibility, createFiberVisitor, didFiberCommit, didFiberRender, getDisplayName, getFiberStack, getMutatedHostFibers, getNearestHostFiber, getRDTHook, getTimings, getType, hasMemoCache, instrument, isCompositeFiber, isHostFiber, isValidElement, mountFiberRecursively, shouldFilterFiber, traverseContexts, traverseFiber, traverseProps, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively };
|
|
476
|
+
export { CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ChildDeletion, ClassComponentTag, Cloned, ContentReset, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponent, DidCapture, ForwardRefTag, Fragment, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRoot, HostSingletonTag, HostText, Hydrating, LegacyHiddenComponent, MemoComponentTag, MutationMask, OffscreenComponent, OffscreenComponentTag, PerformedWork, Placement, Ref, SimpleMemoComponentTag, Snapshot, SuspenseComponentTag, Update, Visibility, createFiberVisitor, detectReactBuildType, didFiberCommit, didFiberRender, getDisplayName, getFiberStack, getMutatedHostFibers, getNearestHostFiber, getRDTHook, getTimings, getType, hasMemoCache, instrument, isCompositeFiber, isHostFiber, isInstrumentationActive, isUsingRDT, isValidElement, mountFiberRecursively, shouldFilterFiber, traverseContexts, traverseFiber, traverseProps, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively };
|