bippy 0.3.13 → 0.3.14

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 (50) hide show
  1. package/LICENSE +1 -1
  2. package/dist/chunk-DWy1uDak.cjs +47 -0
  3. package/dist/core-BOYfIZ0s.d.cts +293 -0
  4. package/dist/core-C6nHUfhm.cjs +1164 -0
  5. package/dist/core-CmL25iLV.d.ts +293 -0
  6. package/dist/core-DTE079zz.js +744 -0
  7. package/dist/core.cjs +79 -286
  8. package/dist/core.d.cts +2 -221
  9. package/dist/core.d.ts +2 -221
  10. package/dist/core.js +11 -2
  11. package/dist/experiments/inspect.cjs +1109 -1400
  12. package/dist/experiments/inspect.d.cts +12 -10
  13. package/dist/experiments/inspect.d.ts +12 -10
  14. package/dist/experiments/inspect.js +1101 -1385
  15. package/dist/index-BtBZHVmz.d.cts +1 -0
  16. package/dist/index-D0E78WnU.d.ts +1 -0
  17. package/dist/index.cjs +80 -287
  18. package/dist/index.d.cts +3 -5
  19. package/dist/index.d.ts +3 -5
  20. package/dist/index.iife.js +9 -0
  21. package/dist/index.js +12 -3
  22. package/dist/jsx-dev-runtime.cjs +25 -33
  23. package/dist/jsx-dev-runtime.d.cts +7 -6
  24. package/dist/jsx-dev-runtime.d.ts +7 -6
  25. package/dist/jsx-dev-runtime.js +24 -28
  26. package/dist/jsx-runtime.cjs +16 -12
  27. package/dist/jsx-runtime.d.cts +3 -3
  28. package/dist/jsx-runtime.d.ts +3 -3
  29. package/dist/jsx-runtime.js +12 -4
  30. package/dist/source-BEL1nkP1.cjs +2429 -0
  31. package/dist/source-XJPX_wAG.js +2437 -0
  32. package/dist/source.cjs +84 -300
  33. package/dist/source.d.cts +8 -10
  34. package/dist/source.d.ts +8 -10
  35. package/dist/source.iife.js +14 -0
  36. package/dist/source.js +13 -4
  37. package/dist/src-Cm5n_5v3.cjs +14 -0
  38. package/dist/{chunk-H6ZLR634.js → src-Urb5JDZq.js} +5 -4
  39. package/package.json +6 -7
  40. package/dist/chunk-3DXHQSXK.js +0 -788
  41. package/dist/chunk-4N6XEHJD.cjs +0 -859
  42. package/dist/chunk-AQ674A4M.cjs +0 -38
  43. package/dist/chunk-EPG3GO3H.js +0 -35
  44. package/dist/chunk-FUZZZTS6.js +0 -2255
  45. package/dist/chunk-NKMRHYKS.cjs +0 -2259
  46. package/dist/chunk-TGUPYBYL.cjs +0 -15
  47. package/dist/index.global.js +0 -9
  48. package/dist/jsx-runtime-KafG0Y8O.d.cts +0 -72
  49. package/dist/jsx-runtime-KafG0Y8O.d.ts +0 -72
  50. package/dist/source.global.js +0 -9
@@ -1,788 +0,0 @@
1
- /**
2
- * @license bippy
3
- *
4
- * Copyright (c) Aiden Bai, Million Software, Inc.
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
-
10
- // src/rdt-hook.ts
11
- var version = "0.3.13";
12
- var BIPPY_INSTRUMENTATION_STRING = `bippy-${version}`;
13
- var objectDefineProperty = Object.defineProperty;
14
- var objectHasOwnProperty = Object.prototype.hasOwnProperty;
15
- var NO_OP = () => {
16
- };
17
- var checkDCE = (fn) => {
18
- try {
19
- const code = Function.prototype.toString.call(fn);
20
- if (code.indexOf("^_^") > -1) {
21
- setTimeout(() => {
22
- throw new Error(
23
- "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"
24
- );
25
- });
26
- }
27
- } catch {
28
- }
29
- };
30
- var isRealReactDevtools = (rdtHook = getRDTHook()) => {
31
- return "getFiberRoots" in rdtHook;
32
- };
33
- var isReactRefreshOverride = false;
34
- var injectFnStr = void 0;
35
- var isReactRefresh = (rdtHook = getRDTHook()) => {
36
- if (isReactRefreshOverride) return true;
37
- if (typeof rdtHook.inject === "function") {
38
- injectFnStr = rdtHook.inject.toString();
39
- }
40
- return Boolean(injectFnStr?.includes("(injected)"));
41
- };
42
- var onActiveListeners = /* @__PURE__ */ new Set();
43
- var _renderers = /* @__PURE__ */ new Set();
44
- var installRDTHook = (onActive) => {
45
- const renderers = /* @__PURE__ */ new Map();
46
- let i = 0;
47
- let rdtHook = {
48
- checkDCE,
49
- supportsFiber: true,
50
- supportsFlight: true,
51
- hasUnsupportedRendererAttached: false,
52
- renderers,
53
- onCommitFiberRoot: NO_OP,
54
- onCommitFiberUnmount: NO_OP,
55
- onPostCommitFiberRoot: NO_OP,
56
- inject(renderer) {
57
- const nextID = ++i;
58
- renderers.set(nextID, renderer);
59
- _renderers.add(renderer);
60
- if (!rdtHook._instrumentationIsActive) {
61
- rdtHook._instrumentationIsActive = true;
62
- onActiveListeners.forEach((listener) => listener());
63
- }
64
- return nextID;
65
- },
66
- _instrumentationSource: BIPPY_INSTRUMENTATION_STRING,
67
- _instrumentationIsActive: false
68
- };
69
- try {
70
- objectDefineProperty(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
71
- get() {
72
- return rdtHook;
73
- },
74
- set(newHook) {
75
- if (newHook && typeof newHook === "object") {
76
- const ourRenderers = rdtHook.renderers;
77
- rdtHook = newHook;
78
- if (ourRenderers.size > 0) {
79
- ourRenderers.forEach((renderer, id) => {
80
- _renderers.add(renderer);
81
- newHook.renderers.set(id, renderer);
82
- });
83
- patchRDTHook(onActive);
84
- }
85
- }
86
- },
87
- configurable: true,
88
- enumerable: true
89
- });
90
- const originalWindowHasOwnProperty = window.hasOwnProperty;
91
- let hasRanHack = false;
92
- objectDefineProperty(window, "hasOwnProperty", {
93
- value: function() {
94
- try {
95
- if (!hasRanHack && // biome-ignore lint/style/noArguments: perf
96
- arguments[0] === "__REACT_DEVTOOLS_GLOBAL_HOOK__") {
97
- globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ = void 0;
98
- hasRanHack = true;
99
- return -0;
100
- }
101
- } catch {
102
- }
103
- return originalWindowHasOwnProperty.apply(this, arguments);
104
- },
105
- configurable: true,
106
- writable: true
107
- });
108
- } catch {
109
- patchRDTHook(onActive);
110
- }
111
- return rdtHook;
112
- };
113
- var patchRDTHook = (onActive) => {
114
- if (onActive) {
115
- onActiveListeners.add(onActive);
116
- }
117
- try {
118
- const rdtHook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
119
- if (!rdtHook) return;
120
- if (!rdtHook._instrumentationSource) {
121
- rdtHook.checkDCE = checkDCE;
122
- rdtHook.supportsFiber = true;
123
- rdtHook.supportsFlight = true;
124
- rdtHook.hasUnsupportedRendererAttached = false;
125
- rdtHook._instrumentationSource = BIPPY_INSTRUMENTATION_STRING;
126
- rdtHook._instrumentationIsActive = false;
127
- if (rdtHook.renderers.size) {
128
- rdtHook._instrumentationIsActive = true;
129
- onActiveListeners.forEach((listener) => listener());
130
- return;
131
- }
132
- const prevInject = rdtHook.inject;
133
- if (isReactRefresh(rdtHook) && !isRealReactDevtools()) {
134
- isReactRefreshOverride = true;
135
- const nextID = rdtHook.inject({
136
- // @ts-expect-error this is not actually a ReactRenderer,
137
- scheduleRefresh() {
138
- }
139
- });
140
- if (nextID) {
141
- rdtHook._instrumentationIsActive = true;
142
- }
143
- }
144
- rdtHook.inject = (renderer) => {
145
- const id = prevInject(renderer);
146
- _renderers.add(renderer);
147
- rdtHook._instrumentationIsActive = true;
148
- onActiveListeners.forEach((listener) => listener());
149
- return id;
150
- };
151
- }
152
- if (rdtHook.renderers.size || rdtHook._instrumentationIsActive || // depending on this to inject is unsafe, since inject could occur before and we wouldn't know
153
- isReactRefresh()) {
154
- onActive?.();
155
- }
156
- } catch {
157
- }
158
- };
159
- var hasRDTHook = () => {
160
- return objectHasOwnProperty.call(
161
- globalThis,
162
- "__REACT_DEVTOOLS_GLOBAL_HOOK__"
163
- );
164
- };
165
- var getRDTHook = (onActive) => {
166
- if (!hasRDTHook()) {
167
- return installRDTHook(onActive);
168
- }
169
- patchRDTHook(onActive);
170
- return globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
171
- };
172
- var isClientEnvironment = () => {
173
- return Boolean(
174
- typeof window !== "undefined" && (window.document?.createElement || window.navigator?.product === "ReactNative")
175
- );
176
- };
177
- var safelyInstallRDTHook = () => {
178
- try {
179
- if (isClientEnvironment()) {
180
- getRDTHook();
181
- }
182
- } catch {
183
- }
184
- };
185
-
186
- // src/install-hook-script-string.ts
187
- var INSTALL_HOOK_SCRIPT_STRING = "(()=>{try{var t=()=>{};const n=new Map;let o=0;globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__={checkDCE:t,supportsFiber:!0,supportsFlight:!0,hasUnsupportedRendererAttached:!1,renderers:n,onCommitFiberRoot:t,onCommitFiberUnmount:t,onPostCommitFiberRoot:t,inject(t){var e=++o;return n.set(e,t),globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__._instrumentationIsActive=!0,e},_instrumentationIsActive:!1,_script:!0}}catch{}})()";
188
-
189
- // src/core.ts
190
- var FunctionComponentTag = 0;
191
- var ClassComponentTag = 1;
192
- var HostRootTag = 3;
193
- var HostComponentTag = 5;
194
- var HostTextTag = 6;
195
- var FragmentTag = 7;
196
- var ContextConsumerTag = 9;
197
- var ForwardRefTag = 11;
198
- var SuspenseComponentTag = 13;
199
- var MemoComponentTag = 14;
200
- var SimpleMemoComponentTag = 15;
201
- var DehydratedSuspenseComponentTag = 18;
202
- var OffscreenComponentTag = 22;
203
- var LegacyHiddenComponentTag = 23;
204
- var HostHoistableTag = 26;
205
- var HostSingletonTag = 27;
206
- var CONCURRENT_MODE_NUMBER = 60111;
207
- var ELEMENT_TYPE_SYMBOL_STRING = "Symbol(react.element)";
208
- var TRANSITIONAL_ELEMENT_TYPE_SYMBOL_STRING = "Symbol(react.transitional.element)";
209
- var CONCURRENT_MODE_SYMBOL_STRING = "Symbol(react.concurrent_mode)";
210
- var DEPRECATED_ASYNC_MODE_SYMBOL_STRING = "Symbol(react.async_mode)";
211
- var PerformedWork = 1;
212
- var Placement = 2;
213
- var Hydrating = 4096;
214
- var Update = 4;
215
- var Cloned = 8;
216
- var ChildDeletion = 16;
217
- var ContentReset = 32;
218
- var Snapshot = 1024;
219
- var Visibility = 8192;
220
- var MutationMask = Placement | Update | ChildDeletion | ContentReset | Hydrating | Visibility | Snapshot;
221
- 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')
222
- [
223
- ELEMENT_TYPE_SYMBOL_STRING,
224
- TRANSITIONAL_ELEMENT_TYPE_SYMBOL_STRING
225
- ].includes(String(element.$$typeof));
226
- 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;
227
- var isHostFiber = (fiber) => {
228
- switch (fiber.tag) {
229
- case HostComponentTag:
230
- // @ts-expect-error: it exists
231
- case HostHoistableTag:
232
- // @ts-expect-error: it exists
233
- case HostSingletonTag:
234
- return true;
235
- default:
236
- return typeof fiber.type === "string";
237
- }
238
- };
239
- var isCompositeFiber = (fiber) => {
240
- switch (fiber.tag) {
241
- case FunctionComponentTag:
242
- case ClassComponentTag:
243
- case SimpleMemoComponentTag:
244
- case MemoComponentTag:
245
- case ForwardRefTag:
246
- return true;
247
- default:
248
- return false;
249
- }
250
- };
251
- var traverseContexts = (fiber, selector) => {
252
- try {
253
- const nextDependencies = fiber.dependencies;
254
- const prevDependencies = fiber.alternate?.dependencies;
255
- if (!nextDependencies || !prevDependencies) return false;
256
- if (typeof nextDependencies !== "object" || !("firstContext" in nextDependencies) || typeof prevDependencies !== "object" || !("firstContext" in prevDependencies)) {
257
- return false;
258
- }
259
- let nextContext = nextDependencies.firstContext;
260
- let prevContext = prevDependencies.firstContext;
261
- while (nextContext && typeof nextContext === "object" && "memoizedValue" in nextContext || prevContext && typeof prevContext === "object" && "memoizedValue" in prevContext) {
262
- if (selector(nextContext, prevContext) === true) return true;
263
- nextContext = nextContext?.next;
264
- prevContext = prevContext?.next;
265
- }
266
- } catch {
267
- }
268
- return false;
269
- };
270
- var traverseState = (fiber, selector) => {
271
- try {
272
- let nextState = fiber.memoizedState;
273
- let prevState = fiber.alternate?.memoizedState;
274
- while (nextState || prevState) {
275
- if (selector(nextState, prevState) === true) return true;
276
- nextState = nextState?.next;
277
- prevState = prevState?.next;
278
- }
279
- } catch {
280
- }
281
- return false;
282
- };
283
- var traverseProps = (fiber, selector) => {
284
- try {
285
- const nextProps = fiber.memoizedProps;
286
- const prevProps = fiber.alternate?.memoizedProps || {};
287
- const allKeys = /* @__PURE__ */ new Set([
288
- ...Object.keys(prevProps),
289
- ...Object.keys(nextProps)
290
- ]);
291
- for (const propName of allKeys) {
292
- const prevValue = prevProps?.[propName];
293
- const nextValue = nextProps?.[propName];
294
- if (selector(propName, nextValue, prevValue) === true) return true;
295
- }
296
- } catch {
297
- }
298
- return false;
299
- };
300
- var didFiberRender = (fiber) => {
301
- const nextProps = fiber.memoizedProps;
302
- const prevProps = fiber.alternate?.memoizedProps || {};
303
- const flags = fiber.flags ?? fiber.effectTag ?? 0;
304
- switch (fiber.tag) {
305
- case ClassComponentTag:
306
- case FunctionComponentTag:
307
- case ContextConsumerTag:
308
- case ForwardRefTag:
309
- case MemoComponentTag:
310
- case SimpleMemoComponentTag: {
311
- return (flags & PerformedWork) === PerformedWork;
312
- }
313
- default:
314
- if (!fiber.alternate) return true;
315
- return prevProps !== nextProps || fiber.alternate.memoizedState !== fiber.memoizedState || fiber.alternate.ref !== fiber.ref;
316
- }
317
- };
318
- var didFiberCommit = (fiber) => {
319
- return Boolean(
320
- (fiber.flags & (MutationMask | Cloned)) !== 0 || (fiber.subtreeFlags & (MutationMask | Cloned)) !== 0
321
- );
322
- };
323
- var getMutatedHostFibers = (fiber) => {
324
- const mutations = [];
325
- const stack = [fiber];
326
- while (stack.length) {
327
- const node = stack.pop();
328
- if (!node) continue;
329
- if (isHostFiber(node) && didFiberCommit(node) && didFiberRender(node)) {
330
- mutations.push(node);
331
- }
332
- if (node.child) stack.push(node.child);
333
- if (node.sibling) stack.push(node.sibling);
334
- }
335
- return mutations;
336
- };
337
- var getFiberStack = (fiber) => {
338
- const stack = [];
339
- let currentFiber = fiber;
340
- while (currentFiber.return) {
341
- stack.push(currentFiber);
342
- currentFiber = currentFiber.return;
343
- }
344
- return stack;
345
- };
346
- var shouldFilterFiber = (fiber) => {
347
- switch (fiber.tag) {
348
- case DehydratedSuspenseComponentTag:
349
- return true;
350
- case HostTextTag:
351
- case FragmentTag:
352
- case LegacyHiddenComponentTag:
353
- case OffscreenComponentTag:
354
- return true;
355
- case HostRootTag:
356
- return false;
357
- default: {
358
- const symbolOrNumber = typeof fiber.type === "object" && fiber.type !== null ? fiber.type.$$typeof : fiber.type;
359
- const typeSymbol = typeof symbolOrNumber === "symbol" ? symbolOrNumber.toString() : symbolOrNumber;
360
- switch (typeSymbol) {
361
- case CONCURRENT_MODE_NUMBER:
362
- case CONCURRENT_MODE_SYMBOL_STRING:
363
- case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:
364
- return true;
365
- default:
366
- return false;
367
- }
368
- }
369
- }
370
- };
371
- var getNearestHostFiber = (fiber, ascending = false) => {
372
- let hostFiber = traverseFiber(fiber, isHostFiber, ascending);
373
- if (!hostFiber) {
374
- hostFiber = traverseFiber(fiber, isHostFiber, !ascending);
375
- }
376
- return hostFiber;
377
- };
378
- var getNearestHostFibers = (fiber) => {
379
- const hostFibers = [];
380
- const stack = [];
381
- if (isHostFiber(fiber)) {
382
- hostFibers.push(fiber);
383
- } else if (fiber.child) {
384
- stack.push(fiber.child);
385
- }
386
- while (stack.length) {
387
- const currentNode = stack.pop();
388
- if (!currentNode) break;
389
- if (isHostFiber(currentNode)) {
390
- hostFibers.push(currentNode);
391
- } else if (currentNode.child) {
392
- stack.push(currentNode.child);
393
- }
394
- if (currentNode.sibling) {
395
- stack.push(currentNode.sibling);
396
- }
397
- }
398
- return hostFibers;
399
- };
400
- var traverseFiber = (fiber, selector, ascending = false) => {
401
- if (!fiber) return null;
402
- if (selector(fiber) === true) return fiber;
403
- let child = ascending ? fiber.return : fiber.child;
404
- while (child) {
405
- const match = traverseFiber(child, selector, ascending);
406
- if (match) return match;
407
- child = ascending ? null : child.sibling;
408
- }
409
- return null;
410
- };
411
- var getTimings = (fiber) => {
412
- const totalTime = fiber?.actualDuration ?? 0;
413
- let selfTime = totalTime;
414
- let child = fiber?.child ?? null;
415
- while (totalTime > 0 && child != null) {
416
- selfTime -= child.actualDuration ?? 0;
417
- child = child.sibling;
418
- }
419
- return { selfTime, totalTime };
420
- };
421
- var hasMemoCache = (fiber) => {
422
- return Boolean(
423
- fiber.updateQueue?.memoCache
424
- );
425
- };
426
- var getType = (type) => {
427
- const currentType = type;
428
- if (typeof currentType === "function") {
429
- return currentType;
430
- }
431
- if (typeof currentType === "object" && currentType) {
432
- return getType(
433
- currentType.type || currentType.render
434
- );
435
- }
436
- return null;
437
- };
438
- var getDisplayName = (type) => {
439
- const currentType = type;
440
- if (typeof currentType === "string") {
441
- return currentType;
442
- }
443
- if (typeof currentType !== "function" && !(typeof currentType === "object" && currentType)) {
444
- return null;
445
- }
446
- const name = currentType.displayName || currentType.name || null;
447
- if (name) return name;
448
- const unwrappedType = getType(currentType);
449
- if (!unwrappedType) return null;
450
- return unwrappedType.displayName || unwrappedType.name || null;
451
- };
452
- var detectReactBuildType = (renderer) => {
453
- try {
454
- if (typeof renderer.version === "string" && renderer.bundleType > 0) {
455
- return "development";
456
- }
457
- } catch {
458
- }
459
- return "production";
460
- };
461
- var isInstrumentationActive = () => {
462
- const rdtHook = getRDTHook();
463
- return Boolean(rdtHook._instrumentationIsActive) || isRealReactDevtools() || isReactRefresh();
464
- };
465
- var getLatestFiber = (fiber) => {
466
- const alternate = fiber.alternate;
467
- if (!alternate) return fiber;
468
- if (alternate.actualStartTime && fiber.actualStartTime) {
469
- return alternate.actualStartTime > fiber.actualStartTime ? alternate : fiber;
470
- }
471
- for (const root of _fiberRoots) {
472
- const latestFiber = traverseFiber(root.current, (innerFiber) => {
473
- if (innerFiber === fiber) return true;
474
- });
475
- if (latestFiber) return latestFiber;
476
- }
477
- return fiber;
478
- };
479
- var fiberId = 0;
480
- var fiberIdMap = /* @__PURE__ */ new WeakMap();
481
- var setFiberId = (fiber, id = fiberId++) => {
482
- fiberIdMap.set(fiber, id);
483
- };
484
- var getFiberId = (fiber) => {
485
- let id = fiberIdMap.get(fiber);
486
- if (!id && fiber.alternate) {
487
- id = fiberIdMap.get(fiber.alternate);
488
- }
489
- if (!id) {
490
- id = fiberId++;
491
- setFiberId(fiber, id);
492
- }
493
- return id;
494
- };
495
- var mountFiberRecursively = (onRender, firstChild, traverseSiblings) => {
496
- let fiber = firstChild;
497
- while (fiber != null) {
498
- if (!fiberIdMap.has(fiber)) {
499
- getFiberId(fiber);
500
- }
501
- const shouldIncludeInTree = !shouldFilterFiber(fiber);
502
- if (shouldIncludeInTree && didFiberRender(fiber)) {
503
- onRender(fiber, "mount");
504
- }
505
- if (fiber.tag === SuspenseComponentTag) {
506
- const isTimedOut = fiber.memoizedState !== null;
507
- if (isTimedOut) {
508
- const primaryChildFragment = fiber.child;
509
- const fallbackChildFragment = primaryChildFragment ? primaryChildFragment.sibling : null;
510
- if (fallbackChildFragment) {
511
- const fallbackChild = fallbackChildFragment.child;
512
- if (fallbackChild !== null) {
513
- mountFiberRecursively(onRender, fallbackChild, false);
514
- }
515
- }
516
- } else {
517
- let primaryChild = null;
518
- if (fiber.child !== null) {
519
- primaryChild = fiber.child.child;
520
- }
521
- if (primaryChild !== null) {
522
- mountFiberRecursively(onRender, primaryChild, false);
523
- }
524
- }
525
- } else if (fiber.child != null) {
526
- mountFiberRecursively(onRender, fiber.child, true);
527
- }
528
- fiber = traverseSiblings ? fiber.sibling : null;
529
- }
530
- };
531
- var updateFiberRecursively = (onRender, nextFiber, prevFiber, parentFiber) => {
532
- if (!fiberIdMap.has(nextFiber)) {
533
- getFiberId(nextFiber);
534
- }
535
- if (!prevFiber) return;
536
- if (!fiberIdMap.has(prevFiber)) {
537
- getFiberId(prevFiber);
538
- }
539
- const isSuspense = nextFiber.tag === SuspenseComponentTag;
540
- const shouldIncludeInTree = !shouldFilterFiber(nextFiber);
541
- if (shouldIncludeInTree && didFiberRender(nextFiber)) {
542
- onRender(nextFiber, "update");
543
- }
544
- const prevDidTimeout = isSuspense && prevFiber.memoizedState !== null;
545
- const nextDidTimeOut = isSuspense && nextFiber.memoizedState !== null;
546
- if (prevDidTimeout && nextDidTimeOut) {
547
- const nextFallbackChildSet = nextFiber.child?.sibling ?? null;
548
- const prevFallbackChildSet = prevFiber.child?.sibling ?? null;
549
- if (nextFallbackChildSet !== null && prevFallbackChildSet !== null) {
550
- updateFiberRecursively(
551
- onRender,
552
- nextFallbackChildSet,
553
- prevFallbackChildSet);
554
- }
555
- } else if (prevDidTimeout && !nextDidTimeOut) {
556
- const nextPrimaryChildSet = nextFiber.child;
557
- if (nextPrimaryChildSet !== null) {
558
- mountFiberRecursively(onRender, nextPrimaryChildSet, true);
559
- }
560
- } else if (!prevDidTimeout && nextDidTimeOut) {
561
- unmountFiberChildrenRecursively(onRender, prevFiber);
562
- const nextFallbackChildSet = nextFiber.child?.sibling ?? null;
563
- if (nextFallbackChildSet !== null) {
564
- mountFiberRecursively(onRender, nextFallbackChildSet, true);
565
- }
566
- } else if (nextFiber.child !== prevFiber.child) {
567
- let nextChild = nextFiber.child;
568
- while (nextChild) {
569
- if (nextChild.alternate) {
570
- const prevChild = nextChild.alternate;
571
- updateFiberRecursively(
572
- onRender,
573
- nextChild,
574
- prevChild);
575
- } else {
576
- mountFiberRecursively(onRender, nextChild, false);
577
- }
578
- nextChild = nextChild.sibling;
579
- }
580
- }
581
- };
582
- var unmountFiber = (onRender, fiber) => {
583
- const isRoot = fiber.tag === HostRootTag;
584
- if (isRoot || !shouldFilterFiber(fiber)) {
585
- onRender(fiber, "unmount");
586
- }
587
- };
588
- var unmountFiberChildrenRecursively = (onRender, fiber) => {
589
- const isTimedOutSuspense = fiber.tag === SuspenseComponentTag && fiber.memoizedState !== null;
590
- let child = fiber.child;
591
- if (isTimedOutSuspense) {
592
- const primaryChildFragment = fiber.child;
593
- const fallbackChildFragment = primaryChildFragment?.sibling ?? null;
594
- child = fallbackChildFragment?.child ?? null;
595
- }
596
- while (child !== null) {
597
- if (child.return !== null) {
598
- unmountFiber(onRender, child);
599
- unmountFiberChildrenRecursively(onRender, child);
600
- }
601
- child = child.sibling;
602
- }
603
- };
604
- var commitId = 0;
605
- var rootInstanceMap = /* @__PURE__ */ new WeakMap();
606
- var traverseRenderedFibers = (root, onRender) => {
607
- const fiber = "current" in root ? root.current : root;
608
- let rootInstance = rootInstanceMap.get(root);
609
- if (!rootInstance) {
610
- rootInstance = { prevFiber: null, id: commitId++ };
611
- rootInstanceMap.set(root, rootInstance);
612
- }
613
- const { prevFiber } = rootInstance;
614
- if (!fiber) {
615
- unmountFiber(onRender, fiber);
616
- } else if (prevFiber !== null) {
617
- const wasMounted = prevFiber && prevFiber.memoizedState != null && prevFiber.memoizedState.element != null && // A dehydrated root is not considered mounted
618
- prevFiber.memoizedState.isDehydrated !== true;
619
- const isMounted = fiber.memoizedState != null && fiber.memoizedState.element != null && // A dehydrated root is not considered mounted
620
- fiber.memoizedState.isDehydrated !== true;
621
- if (!wasMounted && isMounted) {
622
- mountFiberRecursively(onRender, fiber, false);
623
- } else if (wasMounted && isMounted) {
624
- updateFiberRecursively(onRender, fiber, fiber.alternate);
625
- } else if (wasMounted && !isMounted) {
626
- unmountFiber(onRender, fiber);
627
- }
628
- } else {
629
- mountFiberRecursively(onRender, fiber, true);
630
- }
631
- rootInstance.prevFiber = fiber;
632
- };
633
- var createFiberVisitor = ({
634
- onRender
635
- }) => {
636
- return (_rendererID, root, _state) => {
637
- traverseRenderedFibers(root, onRender);
638
- };
639
- };
640
- var instrument = (options) => {
641
- return getRDTHook(() => {
642
- const rdtHook = getRDTHook();
643
- options.onActive?.();
644
- rdtHook._instrumentationSource = options.name ?? BIPPY_INSTRUMENTATION_STRING;
645
- const prevOnCommitFiberRoot = rdtHook.onCommitFiberRoot;
646
- if (options.onCommitFiberRoot) {
647
- rdtHook.onCommitFiberRoot = (rendererID, root, priority) => {
648
- if (prevOnCommitFiberRoot)
649
- prevOnCommitFiberRoot(rendererID, root, priority);
650
- options.onCommitFiberRoot?.(rendererID, root, priority);
651
- };
652
- }
653
- const prevOnCommitFiberUnmount = rdtHook.onCommitFiberUnmount;
654
- if (options.onCommitFiberUnmount) {
655
- rdtHook.onCommitFiberUnmount = (rendererID, root) => {
656
- if (prevOnCommitFiberUnmount)
657
- prevOnCommitFiberUnmount(rendererID, root);
658
- options.onCommitFiberUnmount?.(rendererID, root);
659
- };
660
- }
661
- const prevOnPostCommitFiberRoot = rdtHook.onPostCommitFiberRoot;
662
- if (options.onPostCommitFiberRoot) {
663
- rdtHook.onPostCommitFiberRoot = (rendererID, root) => {
664
- if (prevOnPostCommitFiberRoot)
665
- prevOnPostCommitFiberRoot(rendererID, root);
666
- options.onPostCommitFiberRoot?.(rendererID, root);
667
- };
668
- }
669
- });
670
- };
671
- var getFiberFromHostInstance = (hostInstance) => {
672
- const rdtHook = getRDTHook();
673
- for (const renderer of rdtHook.renderers.values()) {
674
- try {
675
- const fiber = renderer.findFiberByHostInstance?.(hostInstance);
676
- if (fiber) return fiber;
677
- } catch {
678
- }
679
- }
680
- if (typeof hostInstance === "object" && hostInstance != null) {
681
- if ("_reactRootContainer" in hostInstance) {
682
- return hostInstance._reactRootContainer?._internalRoot?.current?.child;
683
- }
684
- for (const key in hostInstance) {
685
- if (key.startsWith("__reactInternalInstance$") || key.startsWith("__reactFiber")) {
686
- return hostInstance[key] || null;
687
- }
688
- }
689
- }
690
- return null;
691
- };
692
- var INSTALL_ERROR = new Error();
693
- var _fiberRoots = /* @__PURE__ */ new Set();
694
- var secure = (options, secureOptions = {}) => {
695
- const onActive = options.onActive;
696
- const isRDTHookInstalled = hasRDTHook();
697
- const isUsingRealReactDevtools = isRealReactDevtools();
698
- const isUsingReactRefresh = isReactRefresh();
699
- let timeout;
700
- let isProduction = secureOptions.isProduction ?? false;
701
- options.onActive = () => {
702
- clearTimeout(timeout);
703
- let isSecure = true;
704
- try {
705
- const rdtHook = getRDTHook();
706
- for (const renderer of rdtHook.renderers.values()) {
707
- const [majorVersion] = renderer.version.split(".");
708
- if (Number(majorVersion) < (secureOptions.minReactMajorVersion ?? 17)) {
709
- isSecure = false;
710
- }
711
- const buildType = detectReactBuildType(renderer);
712
- if (buildType !== "development") {
713
- isProduction = true;
714
- if (!secureOptions.dangerouslyRunInProduction) {
715
- isSecure = false;
716
- }
717
- }
718
- }
719
- } catch (err) {
720
- secureOptions.onError?.(err);
721
- }
722
- if (!isSecure) {
723
- options.onCommitFiberRoot = void 0;
724
- options.onCommitFiberUnmount = void 0;
725
- options.onPostCommitFiberRoot = void 0;
726
- options.onActive = void 0;
727
- return;
728
- }
729
- onActive?.();
730
- try {
731
- const onCommitFiberRoot2 = options.onCommitFiberRoot;
732
- if (onCommitFiberRoot2) {
733
- options.onCommitFiberRoot = (rendererID, root, priority) => {
734
- if (!_fiberRoots.has(root)) {
735
- _fiberRoots.add(root);
736
- }
737
- try {
738
- onCommitFiberRoot2(rendererID, root, priority);
739
- } catch (err) {
740
- secureOptions.onError?.(err);
741
- }
742
- };
743
- }
744
- const onCommitFiberUnmount = options.onCommitFiberUnmount;
745
- if (onCommitFiberUnmount) {
746
- options.onCommitFiberUnmount = (rendererID, root) => {
747
- try {
748
- onCommitFiberUnmount(rendererID, root);
749
- } catch (err) {
750
- secureOptions.onError?.(err);
751
- }
752
- };
753
- }
754
- const onPostCommitFiberRoot = options.onPostCommitFiberRoot;
755
- if (onPostCommitFiberRoot) {
756
- options.onPostCommitFiberRoot = (rendererID, root) => {
757
- try {
758
- onPostCommitFiberRoot(rendererID, root);
759
- } catch (err) {
760
- secureOptions.onError?.(err);
761
- }
762
- };
763
- }
764
- } catch (err) {
765
- secureOptions.onError?.(err);
766
- }
767
- };
768
- if (!isRDTHookInstalled && !isUsingRealReactDevtools && !isUsingReactRefresh) {
769
- timeout = setTimeout(() => {
770
- if (!isProduction) {
771
- secureOptions.onError?.(INSTALL_ERROR);
772
- }
773
- stop();
774
- }, secureOptions.installCheckTimeout ?? 100);
775
- }
776
- return options;
777
- };
778
- var onCommitFiberRoot = (handler) => {
779
- return instrument(
780
- secure({
781
- onCommitFiberRoot: (_, root) => {
782
- handler(root);
783
- }
784
- })
785
- );
786
- };
787
-
788
- export { BIPPY_INSTRUMENTATION_STRING, CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ClassComponentTag, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponentTag, ELEMENT_TYPE_SYMBOL_STRING, ForwardRefTag, FragmentTag, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRootTag, HostSingletonTag, HostTextTag, INSTALL_ERROR, INSTALL_HOOK_SCRIPT_STRING, LegacyHiddenComponentTag, MemoComponentTag, OffscreenComponentTag, SimpleMemoComponentTag, SuspenseComponentTag, TRANSITIONAL_ELEMENT_TYPE_SYMBOL_STRING, _fiberRoots, _renderers, createFiberVisitor, detectReactBuildType, didFiberCommit, didFiberRender, fiberIdMap, getDisplayName, getFiberFromHostInstance, getFiberId, getFiberStack, getLatestFiber, getMutatedHostFibers, getNearestHostFiber, getNearestHostFibers, getRDTHook, getTimings, getType, hasMemoCache, hasRDTHook, installRDTHook, instrument, isClientEnvironment, isCompositeFiber, isHostFiber, isInstrumentationActive, isReactRefresh, isRealReactDevtools, isValidElement, isValidFiber, mountFiberRecursively, onCommitFiberRoot, patchRDTHook, safelyInstallRDTHook, secure, setFiberId, shouldFilterFiber, traverseContexts, traverseFiber, traverseProps, traverseRenderedFibers, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively, version };