bippy 0.0.24 → 0.1.0
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 +200 -129
- package/dist/index.cjs +205 -139
- package/dist/index.d.cts +154 -72
- package/dist/index.d.ts +154 -72
- package/dist/index.global.js +2 -2
- package/dist/index.js +199 -108
- package/package.json +83 -80
package/dist/index.js
CHANGED
|
@@ -7,12 +7,13 @@
|
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
9
|
|
|
10
|
-
// src/
|
|
10
|
+
// src/core.ts
|
|
11
|
+
var version = "0.1.0";
|
|
12
|
+
var BIPPY_INSTRUMENTATION_STRING = `bippy-${version}`;
|
|
11
13
|
var ClassComponentTag = 1;
|
|
12
14
|
var FunctionComponentTag = 0;
|
|
13
15
|
var ContextConsumerTag = 9;
|
|
14
16
|
var SuspenseComponentTag = 13;
|
|
15
|
-
var OffscreenComponentTag = 22;
|
|
16
17
|
var ForwardRefTag = 11;
|
|
17
18
|
var MemoComponentTag = 14;
|
|
18
19
|
var SimpleMemoComponentTag = 15;
|
|
@@ -26,30 +27,32 @@ var LegacyHiddenComponent = 23;
|
|
|
26
27
|
var OffscreenComponent = 22;
|
|
27
28
|
var HostRoot = 3;
|
|
28
29
|
var CONCURRENT_MODE_NUMBER = 60111;
|
|
30
|
+
var ELEMENT_TYPE_SYMBOL_STRING = "Symbol(react.element)";
|
|
31
|
+
var TRANSITIONAL_ELEMENT_TYPE_SYMBOL_STRING = "Symbol(react.transitional.element)";
|
|
29
32
|
var CONCURRENT_MODE_SYMBOL_STRING = "Symbol(react.concurrent_mode)";
|
|
30
33
|
var DEPRECATED_ASYNC_MODE_SYMBOL_STRING = "Symbol(react.async_mode)";
|
|
31
34
|
var PerformedWork = 1;
|
|
32
35
|
var Placement = 2;
|
|
33
|
-
var DidCapture = 128;
|
|
34
36
|
var Hydrating = 4096;
|
|
35
37
|
var Update = 4;
|
|
36
38
|
var Cloned = 8;
|
|
37
39
|
var ChildDeletion = 16;
|
|
38
40
|
var ContentReset = 32;
|
|
39
|
-
var Ref = 512;
|
|
40
41
|
var Snapshot = 1024;
|
|
41
42
|
var Visibility = 8192;
|
|
42
43
|
var MutationMask = Placement | Update | ChildDeletion | ContentReset | Hydrating | Visibility | Snapshot;
|
|
43
44
|
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
|
-
[
|
|
45
|
-
|
|
46
|
-
|
|
45
|
+
[
|
|
46
|
+
ELEMENT_TYPE_SYMBOL_STRING,
|
|
47
|
+
TRANSITIONAL_ELEMENT_TYPE_SYMBOL_STRING
|
|
48
|
+
].includes(String(element.$$typeof));
|
|
49
|
+
var isValidFiber = (fiber) => typeof fiber === "object" && fiber != null && "tag" in fiber && "stateNode" in fiber && "return" in fiber && "child" in fiber && "sibling" in fiber && "flags" in fiber;
|
|
47
50
|
var isHostFiber = (fiber) => fiber.tag === HostComponentTag || // @ts-expect-error: it exists
|
|
48
51
|
fiber.tag === HostHoistableTag || // @ts-expect-error: it exists
|
|
49
|
-
fiber.tag === HostSingletonTag;
|
|
52
|
+
fiber.tag === HostSingletonTag || typeof fiber.type === "string";
|
|
50
53
|
var isCompositeFiber = (fiber) => fiber.tag === FunctionComponentTag || fiber.tag === ClassComponentTag || fiber.tag === SimpleMemoComponentTag || fiber.tag === MemoComponentTag || fiber.tag === ForwardRefTag;
|
|
51
54
|
var traverseContexts = (fiber, selector) => {
|
|
52
|
-
|
|
55
|
+
return safeTry(() => {
|
|
53
56
|
const nextDependencies = fiber.dependencies;
|
|
54
57
|
const prevDependencies = fiber.alternate?.dependencies;
|
|
55
58
|
if (!nextDependencies || !prevDependencies) return false;
|
|
@@ -58,31 +61,49 @@ var traverseContexts = (fiber, selector) => {
|
|
|
58
61
|
}
|
|
59
62
|
let nextContext = nextDependencies.firstContext;
|
|
60
63
|
let prevContext = prevDependencies.firstContext;
|
|
61
|
-
while (nextContext && typeof nextContext === "object" && "memoizedValue" in nextContext
|
|
62
|
-
if (selector(nextContext, prevContext) === true)
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
prevContext = prevContext.next;
|
|
64
|
+
while (nextContext && typeof nextContext === "object" && "memoizedValue" in nextContext || prevContext && typeof prevContext === "object" && "memoizedValue" in prevContext) {
|
|
65
|
+
if (selector(nextContext, prevContext) === true) return true;
|
|
66
|
+
nextContext = nextContext?.next;
|
|
67
|
+
prevContext = prevContext?.next;
|
|
66
68
|
}
|
|
67
|
-
|
|
68
|
-
}
|
|
69
|
-
return false;
|
|
69
|
+
return false;
|
|
70
|
+
});
|
|
70
71
|
};
|
|
71
72
|
var traverseState = (fiber, selector) => {
|
|
72
|
-
|
|
73
|
-
let
|
|
74
|
-
let
|
|
75
|
-
while (
|
|
76
|
-
if (selector(
|
|
77
|
-
prevState = prevState.next;
|
|
73
|
+
return safeTry(() => {
|
|
74
|
+
let nextState = fiber.memoizedState;
|
|
75
|
+
let prevState = fiber.alternate?.memoizedState;
|
|
76
|
+
while (nextState || prevState) {
|
|
77
|
+
if (selector(nextState, prevState) === true) return true;
|
|
78
78
|
nextState = nextState.next;
|
|
79
|
+
prevState = prevState.next;
|
|
79
80
|
}
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
|
|
81
|
+
return false;
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
var traverseEffects = (fiber, selector) => {
|
|
85
|
+
return safeTry(() => {
|
|
86
|
+
let nextState = (
|
|
87
|
+
// biome-ignore lint/suspicious/noExplicitAny: underlying type is unknown
|
|
88
|
+
fiber.updateQueue?.lastEffect
|
|
89
|
+
);
|
|
90
|
+
let prevState = (
|
|
91
|
+
// biome-ignore lint/suspicious/noExplicitAny: underlying type is unknown
|
|
92
|
+
fiber.alternate?.updateQueue?.lastEffect
|
|
93
|
+
);
|
|
94
|
+
while (nextState || prevState) {
|
|
95
|
+
if (selector(nextState, prevState) === true) return true;
|
|
96
|
+
if (nextState?.next === nextState || prevState?.next === prevState) {
|
|
97
|
+
break;
|
|
98
|
+
}
|
|
99
|
+
nextState = nextState?.next;
|
|
100
|
+
prevState = prevState?.next;
|
|
101
|
+
}
|
|
102
|
+
return false;
|
|
103
|
+
});
|
|
83
104
|
};
|
|
84
105
|
var traverseProps = (fiber, selector) => {
|
|
85
|
-
|
|
106
|
+
return safeTry(() => {
|
|
86
107
|
const nextProps = fiber.memoizedProps;
|
|
87
108
|
const prevProps = fiber.alternate?.memoizedProps || {};
|
|
88
109
|
const allKeys = /* @__PURE__ */ new Set([
|
|
@@ -92,11 +113,10 @@ var traverseProps = (fiber, selector) => {
|
|
|
92
113
|
for (const propName of allKeys) {
|
|
93
114
|
const prevValue = prevProps?.[propName];
|
|
94
115
|
const nextValue = nextProps?.[propName];
|
|
95
|
-
if (selector(
|
|
116
|
+
if (selector(propName, nextValue, prevValue) === true) return true;
|
|
96
117
|
}
|
|
97
|
-
|
|
98
|
-
}
|
|
99
|
-
return false;
|
|
118
|
+
return false;
|
|
119
|
+
});
|
|
100
120
|
};
|
|
101
121
|
var didFiberRender = (fiber) => {
|
|
102
122
|
const nextProps = fiber.memoizedProps;
|
|
@@ -118,7 +138,7 @@ var didFiberRender = (fiber) => {
|
|
|
118
138
|
};
|
|
119
139
|
var didFiberCommit = (fiber) => {
|
|
120
140
|
return Boolean(
|
|
121
|
-
(fiber.flags & (
|
|
141
|
+
(fiber.flags & (MutationMask | Cloned)) !== 0 || (fiber.subtreeFlags & (MutationMask | Cloned)) !== 0
|
|
122
142
|
);
|
|
123
143
|
};
|
|
124
144
|
var getMutatedHostFibers = (fiber) => {
|
|
@@ -137,9 +157,10 @@ var getMutatedHostFibers = (fiber) => {
|
|
|
137
157
|
};
|
|
138
158
|
var getFiberStack = (fiber) => {
|
|
139
159
|
const stack = [];
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
160
|
+
let currentFiber = fiber;
|
|
161
|
+
while (currentFiber.return) {
|
|
162
|
+
stack.push(currentFiber);
|
|
163
|
+
currentFiber = currentFiber.return;
|
|
143
164
|
}
|
|
144
165
|
const newStack = new Array(stack.length);
|
|
145
166
|
for (let i = 0; i < stack.length; i++) {
|
|
@@ -172,13 +193,29 @@ var shouldFilterFiber = (fiber) => {
|
|
|
172
193
|
}
|
|
173
194
|
}
|
|
174
195
|
};
|
|
175
|
-
var getNearestHostFiber = (fiber) => {
|
|
176
|
-
let hostFiber = traverseFiber(fiber, isHostFiber);
|
|
196
|
+
var getNearestHostFiber = (fiber, ascending = false) => {
|
|
197
|
+
let hostFiber = traverseFiber(fiber, isHostFiber, ascending);
|
|
177
198
|
if (!hostFiber) {
|
|
178
|
-
hostFiber = traverseFiber(fiber, isHostFiber,
|
|
199
|
+
hostFiber = traverseFiber(fiber, isHostFiber, !ascending);
|
|
179
200
|
}
|
|
180
201
|
return hostFiber;
|
|
181
202
|
};
|
|
203
|
+
var getNearestHostFibers = (fiber) => {
|
|
204
|
+
const hostFibers = [];
|
|
205
|
+
const traverse = (node) => {
|
|
206
|
+
let currentNode = node;
|
|
207
|
+
while (currentNode) {
|
|
208
|
+
if (isHostFiber(currentNode)) {
|
|
209
|
+
hostFibers.push(currentNode);
|
|
210
|
+
} else if (currentNode.child) {
|
|
211
|
+
traverse(currentNode.child);
|
|
212
|
+
}
|
|
213
|
+
currentNode = currentNode.sibling;
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
traverse(fiber);
|
|
217
|
+
return hostFibers;
|
|
218
|
+
};
|
|
182
219
|
var traverseFiber = (fiber, selector, ascending = false) => {
|
|
183
220
|
if (!fiber) return null;
|
|
184
221
|
if (selector(fiber) === true) return fiber;
|
|
@@ -201,39 +238,44 @@ var getTimings = (fiber) => {
|
|
|
201
238
|
return { selfTime, totalTime };
|
|
202
239
|
};
|
|
203
240
|
var hasMemoCache = (fiber) => {
|
|
204
|
-
return Boolean(
|
|
241
|
+
return Boolean(
|
|
242
|
+
fiber.updateQueue?.memoCache
|
|
243
|
+
);
|
|
205
244
|
};
|
|
206
245
|
var getType = (type) => {
|
|
207
|
-
|
|
208
|
-
|
|
246
|
+
const currentType = type;
|
|
247
|
+
if (typeof currentType === "function") {
|
|
248
|
+
return currentType;
|
|
209
249
|
}
|
|
210
|
-
if (typeof
|
|
211
|
-
return getType(
|
|
250
|
+
if (typeof currentType === "object" && currentType) {
|
|
251
|
+
return getType(
|
|
252
|
+
currentType.type || currentType.render
|
|
253
|
+
);
|
|
212
254
|
}
|
|
213
255
|
return null;
|
|
214
256
|
};
|
|
215
257
|
var getDisplayName = (type) => {
|
|
216
|
-
|
|
258
|
+
const currentType = type;
|
|
259
|
+
if (typeof currentType !== "function" && !(typeof currentType === "object" && currentType)) {
|
|
217
260
|
return null;
|
|
218
261
|
}
|
|
219
|
-
const name =
|
|
262
|
+
const name = currentType.displayName || currentType.name || null;
|
|
220
263
|
if (name) return name;
|
|
221
|
-
|
|
222
|
-
if (!
|
|
223
|
-
return
|
|
264
|
+
const unwrappedType = getType(currentType);
|
|
265
|
+
if (!unwrappedType) return null;
|
|
266
|
+
return unwrappedType.displayName || unwrappedType.name || null;
|
|
224
267
|
};
|
|
225
|
-
var isUsingRDT = () =>
|
|
268
|
+
var isUsingRDT = () => "reactDevtoolsAgent" in getRDTHook();
|
|
226
269
|
var detectReactBuildType = (renderer) => {
|
|
227
|
-
|
|
270
|
+
return safeTry(() => {
|
|
228
271
|
if (typeof renderer.version === "string" && renderer.bundleType > 0) {
|
|
229
272
|
return "development";
|
|
230
273
|
}
|
|
231
|
-
|
|
232
|
-
}
|
|
233
|
-
return "production";
|
|
274
|
+
return "production";
|
|
275
|
+
});
|
|
234
276
|
};
|
|
235
277
|
var checkDCE = (fn) => {
|
|
236
|
-
|
|
278
|
+
safeTry(() => {
|
|
237
279
|
const code = Function.prototype.toString.call(fn);
|
|
238
280
|
if (code.indexOf("^_^") > -1) {
|
|
239
281
|
setTimeout(() => {
|
|
@@ -242,8 +284,7 @@ var checkDCE = (fn) => {
|
|
|
242
284
|
);
|
|
243
285
|
});
|
|
244
286
|
}
|
|
245
|
-
}
|
|
246
|
-
}
|
|
287
|
+
});
|
|
247
288
|
};
|
|
248
289
|
var NO_OP = () => {
|
|
249
290
|
};
|
|
@@ -254,6 +295,7 @@ var installRDTHook = (onActive) => {
|
|
|
254
295
|
checkDCE,
|
|
255
296
|
supportsFiber: true,
|
|
256
297
|
supportsFlight: true,
|
|
298
|
+
hasUnsupportedRendererAttached: false,
|
|
257
299
|
renderers,
|
|
258
300
|
onCommitFiberRoot: NO_OP,
|
|
259
301
|
onCommitFiberUnmount: NO_OP,
|
|
@@ -267,22 +309,23 @@ var installRDTHook = (onActive) => {
|
|
|
267
309
|
}
|
|
268
310
|
return nextID;
|
|
269
311
|
},
|
|
270
|
-
_instrumentationSource:
|
|
312
|
+
_instrumentationSource: BIPPY_INSTRUMENTATION_STRING,
|
|
271
313
|
_instrumentationIsActive: false
|
|
272
314
|
};
|
|
273
|
-
|
|
315
|
+
safeTry(() => {
|
|
274
316
|
Object.defineProperty(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
|
|
275
|
-
configurable: true,
|
|
276
317
|
value: rdtHook
|
|
277
318
|
});
|
|
278
|
-
}
|
|
279
|
-
}
|
|
319
|
+
});
|
|
280
320
|
return rdtHook;
|
|
281
321
|
};
|
|
282
322
|
var getRDTHook = (onActive) => {
|
|
283
323
|
let rdtHook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
284
324
|
if (rdtHook) onActive?.();
|
|
285
|
-
if (!
|
|
325
|
+
if (!Object.prototype.hasOwnProperty.call(
|
|
326
|
+
globalThis,
|
|
327
|
+
"__REACT_DEVTOOLS_GLOBAL_HOOK__"
|
|
328
|
+
)) {
|
|
286
329
|
rdtHook = installRDTHook(onActive);
|
|
287
330
|
}
|
|
288
331
|
return rdtHook;
|
|
@@ -398,7 +441,7 @@ var createFiberVisitor = ({
|
|
|
398
441
|
onError
|
|
399
442
|
}) => {
|
|
400
443
|
return (_rendererID, root, state) => {
|
|
401
|
-
const rootFiber = root.current;
|
|
444
|
+
const rootFiber = "current" in root ? root.current : root;
|
|
402
445
|
const onRender = (fiber, phase) => onRenderWithoutState(fiber, phase, state);
|
|
403
446
|
let rootInstance = rootInstanceMap.get(root);
|
|
404
447
|
if (!rootInstance) {
|
|
@@ -406,8 +449,10 @@ var createFiberVisitor = ({
|
|
|
406
449
|
rootInstanceMap.set(root, rootInstance);
|
|
407
450
|
}
|
|
408
451
|
const { prevFiber } = rootInstance;
|
|
409
|
-
|
|
410
|
-
if (
|
|
452
|
+
safeTry(() => {
|
|
453
|
+
if (!rootFiber) {
|
|
454
|
+
unmountFiber(onRender, root);
|
|
455
|
+
} else if (prevFiber !== null) {
|
|
411
456
|
const wasMounted = prevFiber && prevFiber.memoizedState != null && prevFiber.memoizedState.element != null && // A dehydrated root is not considered mounted
|
|
412
457
|
prevFiber.memoizedState.isDehydrated !== true;
|
|
413
458
|
const isMounted = rootFiber.memoizedState != null && rootFiber.memoizedState.element != null && // A dehydrated root is not considered mounted
|
|
@@ -425,56 +470,102 @@ var createFiberVisitor = ({
|
|
|
425
470
|
unmountFiber(onRender, rootFiber);
|
|
426
471
|
}
|
|
427
472
|
} else {
|
|
428
|
-
mountFiberRecursively(onRender, rootFiber,
|
|
473
|
+
mountFiberRecursively(onRender, rootFiber, true);
|
|
429
474
|
}
|
|
430
|
-
}
|
|
431
|
-
if (onError) {
|
|
432
|
-
onError(err);
|
|
433
|
-
} else {
|
|
434
|
-
throw err;
|
|
435
|
-
}
|
|
436
|
-
}
|
|
475
|
+
}, onError);
|
|
437
476
|
rootInstance.prevFiber = rootFiber;
|
|
438
477
|
};
|
|
439
478
|
};
|
|
440
|
-
var instrument = ({
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
479
|
+
var instrument = (options) => {
|
|
480
|
+
return getRDTHook(() => {
|
|
481
|
+
const rdtHook = getRDTHook();
|
|
482
|
+
options.onActive?.();
|
|
483
|
+
rdtHook._instrumentationSource = options.name ?? BIPPY_INSTRUMENTATION_STRING;
|
|
484
|
+
const prevOnCommitFiberRoot = rdtHook.onCommitFiberRoot;
|
|
485
|
+
if (options.onCommitFiberRoot) {
|
|
486
|
+
rdtHook.onCommitFiberRoot = (rendererID, root, priority) => {
|
|
487
|
+
if (prevOnCommitFiberRoot)
|
|
488
|
+
prevOnCommitFiberRoot(rendererID, root, priority);
|
|
489
|
+
options.onCommitFiberRoot?.(rendererID, root, priority);
|
|
490
|
+
};
|
|
491
|
+
}
|
|
492
|
+
const prevOnCommitFiberUnmount = rdtHook.onCommitFiberUnmount;
|
|
493
|
+
if (options.onCommitFiberUnmount) {
|
|
494
|
+
rdtHook.onCommitFiberUnmount = (rendererID, root) => {
|
|
495
|
+
if (prevOnCommitFiberUnmount)
|
|
496
|
+
prevOnCommitFiberUnmount(rendererID, root);
|
|
497
|
+
options.onCommitFiberUnmount?.(rendererID, root);
|
|
498
|
+
};
|
|
499
|
+
}
|
|
500
|
+
const prevOnPostCommitFiberRoot = rdtHook.onPostCommitFiberRoot;
|
|
501
|
+
if (options.onPostCommitFiberRoot) {
|
|
502
|
+
rdtHook.onPostCommitFiberRoot = (rendererID, root) => {
|
|
503
|
+
if (prevOnPostCommitFiberRoot)
|
|
504
|
+
prevOnPostCommitFiberRoot(rendererID, root);
|
|
505
|
+
options.onPostCommitFiberRoot?.(rendererID, root);
|
|
506
|
+
};
|
|
507
|
+
}
|
|
508
|
+
});
|
|
509
|
+
};
|
|
510
|
+
var secure = (options) => {
|
|
511
|
+
const onActive = options.onActive;
|
|
512
|
+
options.onActive = () => {
|
|
513
|
+
let isSecure = true;
|
|
514
|
+
safeTry(() => {
|
|
515
|
+
onActive?.();
|
|
516
|
+
const rdtHook = getRDTHook();
|
|
517
|
+
for (const renderer of rdtHook.renderers.values()) {
|
|
518
|
+
const [majorVersion] = renderer.version.split(".");
|
|
519
|
+
if (Number(majorVersion) < 17) {
|
|
520
|
+
isSecure = false;
|
|
521
|
+
}
|
|
522
|
+
const buildType = detectReactBuildType(renderer);
|
|
523
|
+
if (buildType !== "development") {
|
|
524
|
+
isSecure = false;
|
|
525
|
+
}
|
|
469
526
|
}
|
|
470
|
-
};
|
|
527
|
+
});
|
|
528
|
+
if (!isSecure) {
|
|
529
|
+
options.onCommitFiberRoot = void 0;
|
|
530
|
+
options.onCommitFiberUnmount = void 0;
|
|
531
|
+
options.onPostCommitFiberRoot = void 0;
|
|
532
|
+
options.onActive = void 0;
|
|
533
|
+
return;
|
|
534
|
+
}
|
|
535
|
+
const onCommitFiberRoot = options.onCommitFiberRoot;
|
|
536
|
+
if (onCommitFiberRoot) {
|
|
537
|
+
options.onCommitFiberRoot = (rendererID, root, priority) => {
|
|
538
|
+
safeTry(() => onCommitFiberRoot(rendererID, root, priority));
|
|
539
|
+
};
|
|
540
|
+
}
|
|
541
|
+
const onCommitFiberUnmount = options.onCommitFiberUnmount;
|
|
542
|
+
if (onCommitFiberUnmount) {
|
|
543
|
+
options.onCommitFiberUnmount = (rendererID, root) => {
|
|
544
|
+
safeTry(() => onCommitFiberUnmount(rendererID, root));
|
|
545
|
+
};
|
|
546
|
+
}
|
|
547
|
+
const onPostCommitFiberRoot = options.onPostCommitFiberRoot;
|
|
548
|
+
if (onPostCommitFiberRoot) {
|
|
549
|
+
options.onPostCommitFiberRoot = (rendererID, root) => {
|
|
550
|
+
safeTry(() => onPostCommitFiberRoot(rendererID, root));
|
|
551
|
+
};
|
|
552
|
+
}
|
|
553
|
+
};
|
|
554
|
+
return options;
|
|
555
|
+
};
|
|
556
|
+
var safeTry = (fn, onError) => {
|
|
557
|
+
try {
|
|
558
|
+
return fn();
|
|
559
|
+
} catch (error) {
|
|
560
|
+
onError?.(error);
|
|
471
561
|
}
|
|
472
|
-
return
|
|
562
|
+
return null;
|
|
473
563
|
};
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
if (
|
|
564
|
+
|
|
565
|
+
// src/index.ts
|
|
566
|
+
if (typeof window !== "undefined" && // @ts-expect-error `document` may not be defined in some enviroments
|
|
567
|
+
(window.document?.createElement || window.navigator?.product === "ReactNative") && typeof process !== "undefined" && process.versions != null && process.versions.node != null) {
|
|
477
568
|
installRDTHook();
|
|
478
569
|
}
|
|
479
570
|
|
|
480
|
-
export {
|
|
571
|
+
export { BIPPY_INSTRUMENTATION_STRING, createFiberVisitor, detectReactBuildType, didFiberCommit, didFiberRender, getDisplayName, getFiberStack, getMutatedHostFibers, getNearestHostFiber, getNearestHostFibers, getRDTHook, getTimings, getType, hasMemoCache, installRDTHook, instrument, isCompositeFiber, isHostFiber, isInstrumentationActive, isUsingRDT, isValidElement, isValidFiber, mountFiberRecursively, safeTry, secure, shouldFilterFiber, traverseContexts, traverseEffects, traverseFiber, traverseProps, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively, version };
|
package/package.json
CHANGED
|
@@ -1,82 +1,85 @@
|
|
|
1
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
2
|
+
"name": "bippy",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "a hacky way to get fibers from react",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"react",
|
|
7
|
+
"react-instrumentation",
|
|
8
|
+
"react instrumentation",
|
|
9
|
+
"fiber",
|
|
10
|
+
"internals"
|
|
11
|
+
],
|
|
12
|
+
"homepage": "https://github.com/aidenybai/bippy#readme",
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/aidenybai/bippy/issues"
|
|
15
|
+
},
|
|
16
|
+
"repository": {
|
|
17
|
+
"type": "git",
|
|
18
|
+
"url": "git+https://github.com/aidenybai/bippy.git"
|
|
19
|
+
},
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"author": {
|
|
22
|
+
"name": "Aiden Bai",
|
|
23
|
+
"email": "aiden@million.dev"
|
|
24
|
+
},
|
|
25
|
+
"type": "module",
|
|
26
|
+
"exports": {
|
|
27
|
+
"./package.json": "./package.json",
|
|
28
|
+
".": {
|
|
29
|
+
"import": {
|
|
30
|
+
"types": "./dist/index.d.ts",
|
|
31
|
+
"default": "./dist/index.js"
|
|
32
|
+
},
|
|
33
|
+
"require": {
|
|
34
|
+
"types": "./dist/index.d.cts",
|
|
35
|
+
"default": "./dist/index.cjs"
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"./dist/*": "./dist/*.js",
|
|
39
|
+
"./dist/*.js": "./dist/*.js",
|
|
40
|
+
"./dist/*.cjs": "./dist/*.cjs",
|
|
41
|
+
"./dist/*.mjs": "./dist/*.mjs"
|
|
42
|
+
},
|
|
43
|
+
"main": "dist/index.js",
|
|
44
|
+
"module": "dist/index.js",
|
|
45
|
+
"types": "dist/index.d.ts",
|
|
46
|
+
"files": [
|
|
47
|
+
"dist",
|
|
48
|
+
"bin",
|
|
49
|
+
"package.json",
|
|
50
|
+
"README.md",
|
|
51
|
+
"LICENSE"
|
|
52
|
+
],
|
|
53
|
+
"scripts": {
|
|
54
|
+
"build": "NODE_ENV=production tsup",
|
|
55
|
+
"dev": "NODE_ENV=development tsup --watch",
|
|
56
|
+
"lint": "pnpm biome lint --write src/*.ts",
|
|
57
|
+
"format": "pnpm biome format --write src/*.ts",
|
|
58
|
+
"check": "pnpm biome check --write src/*.ts",
|
|
59
|
+
"publint": "publint",
|
|
60
|
+
"test": "vitest --dom",
|
|
61
|
+
"coverage": "vitest run --coverage --dom"
|
|
62
|
+
},
|
|
63
|
+
"devDependencies": {
|
|
64
|
+
"@biomejs/biome": "1.9.4",
|
|
65
|
+
"@testing-library/react": "^16.1.0",
|
|
66
|
+
"@types/react": "^18.3.12",
|
|
67
|
+
"@types/react-dom": "^19.0.2",
|
|
68
|
+
"@types/react-reconciler": "^0.28.8",
|
|
69
|
+
"@vitest/coverage-istanbul": "2.1.8",
|
|
70
|
+
"@vitest/ui": "^2.1.8",
|
|
71
|
+
"happy-dom": "^15.11.7",
|
|
72
|
+
"prettier": "^3.3.3",
|
|
73
|
+
"publint": "^0.2.12",
|
|
74
|
+
"react": "19.0.0",
|
|
75
|
+
"react-dom": "19.0.0",
|
|
76
|
+
"react-reconciler": "^0.29.2",
|
|
77
|
+
"semver": "^7.6.3",
|
|
78
|
+
"terser": "^5.36.0",
|
|
79
|
+
"tsup": "^8.2.4",
|
|
80
|
+
"vitest": "^2.1.8"
|
|
81
|
+
},
|
|
82
|
+
"publishConfig": {
|
|
83
|
+
"access": "public"
|
|
84
|
+
}
|
|
82
85
|
}
|