bippy 0.0.9 → 0.0.12

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.d.mts CHANGED
@@ -1,10 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { Fiber, FiberRoot } from 'react-reconciler';
3
3
 
4
- declare const PerformedWorkFlag = 1;
5
4
  declare const ClassComponentTag = 1;
6
5
  declare const FunctionComponentTag = 0;
7
6
  declare const ContextConsumerTag = 9;
7
+ declare const SuspenseComponentTag = 13;
8
+ declare const OffscreenComponentTag = 22;
8
9
  declare const ForwardRefTag = 11;
9
10
  declare const MemoComponentTag = 14;
10
11
  declare const SimpleMemoComponentTag = 15;
@@ -20,6 +21,19 @@ declare const HostRoot = 3;
20
21
  declare const CONCURRENT_MODE_NUMBER = 60111;
21
22
  declare const CONCURRENT_MODE_SYMBOL_STRING = "Symbol(react.concurrent_mode)";
22
23
  declare const DEPRECATED_ASYNC_MODE_SYMBOL_STRING = "Symbol(react.async_mode)";
24
+ declare const PerformedWork = 1;
25
+ declare const Placement = 2;
26
+ declare const DidCapture = 128;
27
+ declare const Hydrating = 4096;
28
+ declare const Update = 4;
29
+ declare const Cloned = 8;
30
+ declare const ChildDeletion = 16;
31
+ declare const ContentReset = 32;
32
+ declare const Ref = 512;
33
+ declare const Snapshot = 1024;
34
+ declare const Visibility = 8192;
35
+ declare const MutationMask: number;
36
+ declare const isValidElement: (element: unknown) => boolean;
23
37
  declare const isHostFiber: (fiber: Fiber) => boolean;
24
38
  declare const isCompositeFiber: (fiber: Fiber) => boolean;
25
39
  declare const traverseContexts: (fiber: Fiber, selector: (prevValue: {
@@ -36,6 +50,9 @@ declare const traverseState: (fiber: Fiber, selector: (prevValue: {
36
50
  }) => boolean | void) => boolean;
37
51
  declare const traverseProps: (fiber: Fiber, selector: (prevValue: unknown, nextValue: unknown) => boolean | void) => boolean;
38
52
  declare const didFiberRender: (fiber: Fiber) => boolean;
53
+ declare const didFiberCommit: (fiber: Fiber) => boolean;
54
+ declare const getMutatedHostFibers: (fiber: Fiber) => Array<Fiber>;
55
+ declare const getFiberStack: (fiber: Fiber) => Fiber[];
39
56
  declare const shouldFilterFiber: (fiber: Fiber) => boolean;
40
57
  declare const getNearestHostFiber: (fiber: Fiber) => Fiber | null;
41
58
  declare const traverseFiber: (fiber: Fiber | null, selector: (node: Fiber) => boolean | void, ascending?: boolean) => Fiber | null;
@@ -50,16 +67,19 @@ declare const getRDTHook: () => {
50
67
  checkDCE: () => void;
51
68
  supportsFiber: boolean;
52
69
  supportsFlight: boolean;
53
- renderers: Map<number, {
54
- findFiberByHostInstance: (element: HTMLElement) => Fiber | null;
55
- }>;
70
+ renderers: Map<number, unknown>;
56
71
  onCommitFiberRoot: (rendererID: number, root: unknown) => void;
57
72
  onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
58
73
  onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
59
74
  inject: (renderer: unknown) => number;
60
75
  };
76
+ type RenderHandler = (fiber: Fiber, phase: 'mount' | 'update' | 'unmount') => void;
77
+ declare const mountFiberRecursively: (onRender: RenderHandler, firstChild: Fiber, traverseSiblings: boolean) => void;
78
+ declare const updateFiberRecursively: (onRender: RenderHandler, nextFiber: Fiber, prevFiber: Fiber, parentFiber: Fiber | null) => void;
79
+ declare const unmountFiber: (onRender: RenderHandler, fiber: Fiber) => void;
80
+ declare const unmountFiberChildrenRecursively: (onRender: RenderHandler, fiber: Fiber) => void;
61
81
  declare const createFiberVisitor: ({ onRender, onError, }: {
62
- onRender: (fiber: Fiber, phase: "mount" | "update" | "unmount") => void;
82
+ onRender: RenderHandler;
63
83
  onError?: (error: unknown) => void;
64
84
  }) => (_rendererID: number, root: FiberRoot) => void;
65
85
  declare const instrument: ({ onCommitFiberRoot, onCommitFiberUnmount, onPostCommitFiberRoot, }: {
@@ -70,13 +90,11 @@ declare const instrument: ({ onCommitFiberRoot, onCommitFiberUnmount, onPostComm
70
90
  checkDCE: () => void;
71
91
  supportsFiber: boolean;
72
92
  supportsFlight: boolean;
73
- renderers: Map<number, {
74
- findFiberByHostInstance: (element: HTMLElement) => Fiber | null;
75
- }>;
93
+ renderers: Map<number, unknown>;
76
94
  onCommitFiberRoot: (rendererID: number, root: unknown) => void;
77
95
  onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
78
96
  onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
79
97
  inject: (renderer: unknown) => number;
80
98
  };
81
99
 
82
- export { CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ClassComponentTag, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponent, ForwardRefTag, Fragment, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRoot, HostSingletonTag, HostText, LegacyHiddenComponent, MemoComponentTag, OffscreenComponent, PerformedWorkFlag, SimpleMemoComponentTag, createFiberVisitor, didFiberRender, getDisplayName, getNearestHostFiber, getRDTHook, getTimings, getType, hasMemoCache, instrument, isCompositeFiber, isHostFiber, shouldFilterFiber, traverseContexts, traverseFiber, traverseProps, traverseState };
100
+ 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 };
package/dist/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { Fiber, FiberRoot } from 'react-reconciler';
3
3
 
4
- declare const PerformedWorkFlag = 1;
5
4
  declare const ClassComponentTag = 1;
6
5
  declare const FunctionComponentTag = 0;
7
6
  declare const ContextConsumerTag = 9;
7
+ declare const SuspenseComponentTag = 13;
8
+ declare const OffscreenComponentTag = 22;
8
9
  declare const ForwardRefTag = 11;
9
10
  declare const MemoComponentTag = 14;
10
11
  declare const SimpleMemoComponentTag = 15;
@@ -20,6 +21,19 @@ declare const HostRoot = 3;
20
21
  declare const CONCURRENT_MODE_NUMBER = 60111;
21
22
  declare const CONCURRENT_MODE_SYMBOL_STRING = "Symbol(react.concurrent_mode)";
22
23
  declare const DEPRECATED_ASYNC_MODE_SYMBOL_STRING = "Symbol(react.async_mode)";
24
+ declare const PerformedWork = 1;
25
+ declare const Placement = 2;
26
+ declare const DidCapture = 128;
27
+ declare const Hydrating = 4096;
28
+ declare const Update = 4;
29
+ declare const Cloned = 8;
30
+ declare const ChildDeletion = 16;
31
+ declare const ContentReset = 32;
32
+ declare const Ref = 512;
33
+ declare const Snapshot = 1024;
34
+ declare const Visibility = 8192;
35
+ declare const MutationMask: number;
36
+ declare const isValidElement: (element: unknown) => boolean;
23
37
  declare const isHostFiber: (fiber: Fiber) => boolean;
24
38
  declare const isCompositeFiber: (fiber: Fiber) => boolean;
25
39
  declare const traverseContexts: (fiber: Fiber, selector: (prevValue: {
@@ -36,6 +50,9 @@ declare const traverseState: (fiber: Fiber, selector: (prevValue: {
36
50
  }) => boolean | void) => boolean;
37
51
  declare const traverseProps: (fiber: Fiber, selector: (prevValue: unknown, nextValue: unknown) => boolean | void) => boolean;
38
52
  declare const didFiberRender: (fiber: Fiber) => boolean;
53
+ declare const didFiberCommit: (fiber: Fiber) => boolean;
54
+ declare const getMutatedHostFibers: (fiber: Fiber) => Array<Fiber>;
55
+ declare const getFiberStack: (fiber: Fiber) => Fiber[];
39
56
  declare const shouldFilterFiber: (fiber: Fiber) => boolean;
40
57
  declare const getNearestHostFiber: (fiber: Fiber) => Fiber | null;
41
58
  declare const traverseFiber: (fiber: Fiber | null, selector: (node: Fiber) => boolean | void, ascending?: boolean) => Fiber | null;
@@ -50,16 +67,19 @@ declare const getRDTHook: () => {
50
67
  checkDCE: () => void;
51
68
  supportsFiber: boolean;
52
69
  supportsFlight: boolean;
53
- renderers: Map<number, {
54
- findFiberByHostInstance: (element: HTMLElement) => Fiber | null;
55
- }>;
70
+ renderers: Map<number, unknown>;
56
71
  onCommitFiberRoot: (rendererID: number, root: unknown) => void;
57
72
  onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
58
73
  onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
59
74
  inject: (renderer: unknown) => number;
60
75
  };
76
+ type RenderHandler = (fiber: Fiber, phase: 'mount' | 'update' | 'unmount') => void;
77
+ declare const mountFiberRecursively: (onRender: RenderHandler, firstChild: Fiber, traverseSiblings: boolean) => void;
78
+ declare const updateFiberRecursively: (onRender: RenderHandler, nextFiber: Fiber, prevFiber: Fiber, parentFiber: Fiber | null) => void;
79
+ declare const unmountFiber: (onRender: RenderHandler, fiber: Fiber) => void;
80
+ declare const unmountFiberChildrenRecursively: (onRender: RenderHandler, fiber: Fiber) => void;
61
81
  declare const createFiberVisitor: ({ onRender, onError, }: {
62
- onRender: (fiber: Fiber, phase: "mount" | "update" | "unmount") => void;
82
+ onRender: RenderHandler;
63
83
  onError?: (error: unknown) => void;
64
84
  }) => (_rendererID: number, root: FiberRoot) => void;
65
85
  declare const instrument: ({ onCommitFiberRoot, onCommitFiberUnmount, onPostCommitFiberRoot, }: {
@@ -70,13 +90,11 @@ declare const instrument: ({ onCommitFiberRoot, onCommitFiberUnmount, onPostComm
70
90
  checkDCE: () => void;
71
91
  supportsFiber: boolean;
72
92
  supportsFlight: boolean;
73
- renderers: Map<number, {
74
- findFiberByHostInstance: (element: HTMLElement) => Fiber | null;
75
- }>;
93
+ renderers: Map<number, unknown>;
76
94
  onCommitFiberRoot: (rendererID: number, root: unknown) => void;
77
95
  onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
78
96
  onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
79
97
  inject: (renderer: unknown) => number;
80
98
  };
81
99
 
82
- export { CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ClassComponentTag, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponent, ForwardRefTag, Fragment, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRoot, HostSingletonTag, HostText, LegacyHiddenComponent, MemoComponentTag, OffscreenComponent, PerformedWorkFlag, SimpleMemoComponentTag, createFiberVisitor, didFiberRender, getDisplayName, getNearestHostFiber, getRDTHook, getTimings, getType, hasMemoCache, instrument, isCompositeFiber, isHostFiber, shouldFilterFiber, traverseContexts, traverseFiber, traverseProps, traverseState };
100
+ 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 };
@@ -1 +1 @@
1
- var Bippy=function(e){"use strict";var t="Symbol(react.concurrent_mode)",o="Symbol(react.async_mode)",n=e=>5===e.tag||26===e.tag||27===e.tag,r=e=>{const 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!(1&~n);default:return!e.alternate||(o!==t||e.alternate.memoizedState!==e.memoizedState||e.alternate.ref!==e.ref)}},a=e=>{switch(e.tag){case 18:case 6:case 7:case 23:case 22:return!0;case 3:return!1;default:{const n="object"==typeof e.type&&null!==e.type?e.type.$$typeof:e.type;switch("symbol"==typeof n?n.toString():n){case 60111:case t:case o:return!0;default:return!1}}}},i=(e,t,o=!1)=>{if(!e)return null;if(!0===t(e))return e;let n=o?e.return:e.child;for(;n;){const e=i(n,t,o);if(e)return e;n=o?null:n.sibling}return null},s=e=>"function"==typeof e?e:"object"==typeof e&&e?s(e.type||e.render):null,l=()=>{},m=()=>{let e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;const t=new Map;let o=0;e??={checkDCE:l,supportsFiber:!0,supportsFlight:!0,renderers:t,onCommitFiberRoot:l,onCommitFiberUnmount:l,onPostCommitFiberRoot:l,inject(e){const n=++o;return t.set(n,e),n}};try{globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=e}catch{}return e};"undefined"!=typeof window&&m();return e.CONCURRENT_MODE_NUMBER=60111,e.CONCURRENT_MODE_SYMBOL_STRING=t,e.ClassComponentTag=1,e.ContextConsumerTag=9,e.DEPRECATED_ASYNC_MODE_SYMBOL_STRING=o,e.DehydratedSuspenseComponent=18,e.ForwardRefTag=11,e.Fragment=7,e.FunctionComponentTag=0,e.HostComponentTag=5,e.HostHoistableTag=26,e.HostRoot=3,e.HostSingletonTag=27,e.HostText=6,e.LegacyHiddenComponent=23,e.MemoComponentTag=14,e.OffscreenComponent=22,e.PerformedWorkFlag=1,e.SimpleMemoComponentTag=15,e.createFiberVisitor=({onRender:e,onError:t})=>(o,n)=>{try{const t=n.current,o=null!==t.alternate&&Boolean(t.alternate.memoizedState?.element)&&!0!==t.alternate.memoizedState.isDehydrated,i=Boolean(t.memoizedState?.element),s=(t,o)=>{let n=t;for(;null!=n;){!a(n)&&r(n)&&e(n,"mount"),null!=n.child&&s(n.child,!0),n=o?n.sibling:null}},l=(t,o)=>{if(!o)return;if(!a(t)&&r(t)&&e(t,"update"),t.child!==o.child){let e=t.child;for(;e;){const t=e.alternate;t?l(e,t):s(e,!1),e=e.sibling}}},m=t=>{!(3===t.tag)&&a(t)||e(t,"unmount")};!o&&i?s(t,!1):o&&i?l(t,t.alternate):o&&!i&&m(t)}catch(e){if(!t)throw e;t(e)}},e.didFiberRender=r,e.getDisplayName=e=>{if("function"!=typeof e&&("object"!=typeof e||!e))return null;const t=e.displayName||e.name||null;return t||((e=s(e))&&(e.displayName||e.name)||null)},e.getNearestHostFiber=e=>{let t=i(e,n);return t||(t=i(e,n,!0)),t},e.getRDTHook=m,e.getTimings=e=>{const t=e?.actualDuration??0;let o=t,n=e?.child??null;for(;t>0&&null!=n;)o-=n.actualDuration??0,n=n.sibling;return{selfTime:o,totalTime:t}},e.getType=s,e.hasMemoCache=e=>Boolean(e.updateQueue?.memoCache),e.instrument=({onCommitFiberRoot:e,onCommitFiberUnmount:t,onPostCommitFiberRoot:o})=>{const n=m(),r=n.onCommitFiberRoot;e&&(n.onCommitFiberRoot=(t,o)=>{r&&r(t,o),e(t,o)});const a=n.onCommitFiberUnmount;t&&(n.onCommitFiberUnmount=(e,o)=>{a&&a(e,o),t(e,o)});const i=n.onPostCommitFiberRoot;return o&&(n.onPostCommitFiberRoot=(e,t)=>{i&&i(e,t)}),n},e.isCompositeFiber=e=>0===e.tag||1===e.tag||15===e.tag||14===e.tag||11===e.tag,e.isHostFiber=n,e.shouldFilterFiber=a,e.traverseContexts=(e,t)=>{try{const o=e.dependencies,n=e.alternate?.dependencies;if(!o||!n)return!1;if("object"!=typeof o||!("firstContext"in o)||"object"!=typeof n||!("firstContext"in n))return!1;let r=o.firstContext,a=n.firstContext;for(;r&&"object"==typeof r&&"memoizedValue"in r&&a&&"object"==typeof a&&"memoizedValue"in a;){if(!0===t(r,a))return!0;r=r.next,a=a.next}}catch{}return!1},e.traverseFiber=i,e.traverseProps=(e,t)=>{try{const o=e.memoizedProps,n=e.alternate?.memoizedProps||{};for(const e in{...n,...o}){const r=n?.[e],a=o?.[e];if(!0===t(r,a))return!0}}catch{}return!1},e.traverseState=(e,t)=>{try{let o=e.memoizedState,n=e.alternate?.memoizedState;for(;o&&n;){if(!0===t(o,n))return!0;o=o.next,n=n.next}}catch{}return!1},e}({});
1
+ var Bippy=(function(exports){'use strict';var H=1,w=0,k=9,_=13,D=22,M=11,z=14,P=15,E=5,N=26,V=27,I=18,U=6,L=7,j=23,A=22,B=3,W=60111,R="Symbol(react.concurrent_mode)",O="Symbol(react.async_mode)",$=1,G=2,Y=128,K=4096,Q=4,q=8,J=16,X=32,Z=512,ee=1024,te=8192,oe=13366,ne=e=>typeof e=="object"&&e!==null&&"$$typeof"in e&&String(e.$$typeof)==="Symbol(react.element)",d=e=>e.tag===5||e.tag===26||e.tag===27,re=e=>e.tag===0||e.tag===1||e.tag===15||e.tag===14||e.tag===11,le=(e,t)=>{try{let n=e.dependencies,o=e.alternate?.dependencies;if(!n||!o||typeof n!="object"||!("firstContext"in n)||typeof o!="object"||!("firstContext"in o))return !1;let r=n.firstContext,i=o.firstContext;for(;r&&typeof r=="object"&&"memoizedValue"in r&&i&&typeof i=="object"&&"memoizedValue"in i;){if(t(r,i)===!0)return !0;r=r.next,i=i.next;}}catch{}return !1},ie=(e,t)=>{try{let n=e.memoizedState,o=e.alternate?.memoizedState;for(;n&&o;){if(t(n,o)===!0)return !0;n=n.next,o=o.next;}}catch{}return !1},se=(e,t)=>{try{let n=e.memoizedProps,o=e.alternate?.memoizedProps||{};for(let r in {...o,...n}){let i=o?.[r],s=n?.[r];if(t(i,s)===!0)return !0}}catch{}return !1},u=e=>{let t=e.memoizedProps,n=e.alternate?.memoizedProps||{},o=e.flags??e.effectTag??0;switch(e.tag){case 1:case 0:case 9:case 11:case 14:case 15:return (o&1)===1;default:return e.alternate?n!==t||e.alternate.memoizedState!==e.memoizedState||e.alternate.ref!==e.ref:!0}},C=e=>!!(u(e)&&(e.subtreeFlags&13374||e.deletions)),f=e=>{if(!C(e))return [];let t=[];for(let n=e.sibling;n;n=n.sibling)d(n)&&C(n.return??n)&&u(n)&&(t.push(n),t.push(...f(n)));return e.child&&d(e.child)&&C(e)&&u(e.child)&&(t.push(e.child),t.push(...f(e.child))),t},ae=e=>{let t=[];for(;e.return;)t.unshift(e),e=e.return;return t},b=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 O:return !0;default:return !1}}}},ce=e=>{let t=h(e,d);return t||(t=h(e,d,!0)),t},h=(e,t,n=!1)=>{if(!e)return null;if(t(e)===!0)return e;let o=n?e.return:e.child;for(;o;){let r=h(o,t,n);if(r)return r;o=n?null:o.sibling;}return null},ue=e=>{let t=e?.actualDuration??0,n=t,o=e?.child??null;for(;t>0&&o!=null;)n-=o.actualDuration??0,o=o.sibling;return {selfTime:n,totalTime:t}},me=e=>!!e.updateQueue?.memoCache,F=e=>typeof e=="function"?e:typeof e=="object"&&e?F(e.type||e.render):null,pe=e=>{if(typeof e!="function"&&!(typeof e=="object"&&e))return null;let t=e.displayName||e.name||null;return t||(e=F(e),e&&(e.displayName||e.name)||null)},p=()=>{},y=()=>{let e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__,t=new Map,n=0;e??={checkDCE:p,supportsFiber:!0,supportsFlight:!0,renderers:t,onCommitFiberRoot:p,onCommitFiberUnmount:p,onPostCommitFiberRoot:p,inject(o){let r=++n;return t.set(r,o),r}};try{globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=e;}catch{}return e};typeof window<"u"&&y();var c=(e,t,n)=>{let o=t;for(;o!=null;){if(!b(o)&&u(o)&&e(o,"mount"),o.tag===13)if(o.memoizedState!==null){let s=o.child,a=s?s.sibling:null;if(a){let l=a.child;l!==null&&c(e,l,!1);}}else {let s=null;o.child!==null&&(s=o.child.child),s!==null&&c(e,s,!1);}else o.child!=null&&c(e,o.child,!0);o=n?o.sibling:null;}},g=(e,t,n,o)=>{if(!n)return;let r=t.tag===13,i=!b(t);i&&u(t)&&e(t,"update");let s=r&&n.memoizedState!==null,a=r&&t.memoizedState!==null;if(s&&a){let l=t.child?.sibling??null,m=n.child?.sibling??null;l!==null&&m!==null&&g(e,l,m);}else if(s&&!a){let l=t.child;l!==null&&c(e,l,!0);}else if(!s&&a){S(e,n);let l=t.child?.sibling??null;l!==null&&c(e,l,!0);}else if(t.child!==n.child){let l=t.child;for(;l;){if(l.alternate){let m=l.alternate;g(e,l,m);}else c(e,l,!1);l=l.sibling;}}},T=(e,t)=>{(t.tag===3||!b(t))&&e(t,"unmount");},S=(e,t)=>{let n=t.tag===13&&t.memoizedState!==null,o=t.child;for(n&&(o=(t.child?.sibling??null)?.child??null);o!==null;)o.return!==null&&(T(e,o),S(e,o)),o=o.sibling;},v=0,x=new WeakMap,de=({onRender:e,onError:t})=>(n,o)=>{let r=o.current,i=x.get(o);i||(i={prevFiber:null,id:v++},x.set(o,i));let{prevFiber:s}=i;try{if(s!==null){let a=s&&s.memoizedState!=null&&s.memoizedState.element!=null&&s.memoizedState.isDehydrated!==!0,l=r.memoizedState!=null&&r.memoizedState.element!=null&&r.memoizedState.isDehydrated!==!0;!a&&l?c(e,r,!1):a&&l?g(e,r,r.alternate,null):a&&!l&&T(e,r);}else c(e,r,!1);}catch(a){if(t)t(a);else throw a}i.prevFiber=r;},Ce=({onCommitFiberRoot:e,onCommitFiberUnmount:t,onPostCommitFiberRoot:n})=>{let o=y(),r=o.onCommitFiberRoot;e&&(o.onCommitFiberRoot=(a,l)=>{r&&r(a,l),e(a,l);});let i=o.onCommitFiberUnmount;t&&(o.onCommitFiberUnmount=(a,l)=>{i&&i(a,l),t(a,l);});let s=o.onPostCommitFiberRoot;return n&&(o.onPostCommitFiberRoot=(a,l)=>{s&&s(a,l);}),o};exports.CONCURRENT_MODE_NUMBER=W;exports.CONCURRENT_MODE_SYMBOL_STRING=R;exports.ChildDeletion=J;exports.ClassComponentTag=H;exports.Cloned=q;exports.ContentReset=X;exports.ContextConsumerTag=k;exports.DEPRECATED_ASYNC_MODE_SYMBOL_STRING=O;exports.DehydratedSuspenseComponent=I;exports.DidCapture=Y;exports.ForwardRefTag=M;exports.Fragment=L;exports.FunctionComponentTag=w;exports.HostComponentTag=E;exports.HostHoistableTag=N;exports.HostRoot=B;exports.HostSingletonTag=V;exports.HostText=U;exports.Hydrating=K;exports.LegacyHiddenComponent=j;exports.MemoComponentTag=z;exports.MutationMask=oe;exports.OffscreenComponent=A;exports.OffscreenComponentTag=D;exports.PerformedWork=$;exports.Placement=G;exports.Ref=Z;exports.SimpleMemoComponentTag=P;exports.Snapshot=ee;exports.SuspenseComponentTag=_;exports.Update=Q;exports.Visibility=te;exports.createFiberVisitor=de;exports.didFiberCommit=C;exports.didFiberRender=u;exports.getDisplayName=pe;exports.getFiberStack=ae;exports.getMutatedHostFibers=f;exports.getNearestHostFiber=ce;exports.getRDTHook=y;exports.getTimings=ue;exports.getType=F;exports.hasMemoCache=me;exports.instrument=Ce;exports.isCompositeFiber=re;exports.isHostFiber=d;exports.isValidElement=ne;exports.mountFiberRecursively=c;exports.shouldFilterFiber=b;exports.traverseContexts=le;exports.traverseFiber=h;exports.traverseProps=se;exports.traverseState=ie;exports.unmountFiber=T;exports.unmountFiberChildrenRecursively=S;exports.updateFiberRecursively=g;return exports;})({});
package/dist/index.js CHANGED
@@ -1 +1,468 @@
1
- "use strict";var e="Symbol(react.concurrent_mode)",t="Symbol(react.async_mode)",o=e=>5===e.tag||26===e.tag||27===e.tag,r=e=>{const t=e.memoizedProps,o=e.alternate?.memoizedProps||{},r=e.flags??e.effectTag??0;switch(e.tag){case 1:case 0:case 9:case 11:case 14:case 15:return!(1&~r);default:return!e.alternate||(o!==t||e.alternate.memoizedState!==e.memoizedState||e.alternate.ref!==e.ref)}},n=o=>{switch(o.tag){case 18:case 6:case 7:case 23:case 22:return!0;case 3:return!1;default:{const r="object"==typeof o.type&&null!==o.type?o.type.$$typeof:o.type;switch("symbol"==typeof r?r.toString():r){case 60111:case e:case t:return!0;default:return!1}}}},s=(e,t,o=!1)=>{if(!e)return null;if(!0===t(e))return e;let r=o?e.return:e.child;for(;r;){const e=s(r,t,o);if(e)return e;r=o?null:r.sibling}return null},a=e=>"function"==typeof e?e:"object"==typeof e&&e?a(e.type||e.render):null,i=()=>{},l=()=>{let e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;const t=new Map;let o=0;e??={checkDCE:i,supportsFiber:!0,supportsFlight:!0,renderers:t,onCommitFiberRoot:i,onCommitFiberUnmount:i,onPostCommitFiberRoot:i,inject(e){const r=++o;return t.set(r,e),r}};try{globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=e}catch{}return e};"undefined"!=typeof window&&l();exports.CONCURRENT_MODE_NUMBER=60111,exports.CONCURRENT_MODE_SYMBOL_STRING=e,exports.ClassComponentTag=1,exports.ContextConsumerTag=9,exports.DEPRECATED_ASYNC_MODE_SYMBOL_STRING=t,exports.DehydratedSuspenseComponent=18,exports.ForwardRefTag=11,exports.Fragment=7,exports.FunctionComponentTag=0,exports.HostComponentTag=5,exports.HostHoistableTag=26,exports.HostRoot=3,exports.HostSingletonTag=27,exports.HostText=6,exports.LegacyHiddenComponent=23,exports.MemoComponentTag=14,exports.OffscreenComponent=22,exports.PerformedWorkFlag=1,exports.SimpleMemoComponentTag=15,exports.createFiberVisitor=({onRender:e,onError:t})=>(o,s)=>{try{const t=s.current,o=null!==t.alternate&&Boolean(t.alternate.memoizedState?.element)&&!0!==t.alternate.memoizedState.isDehydrated,a=Boolean(t.memoizedState?.element),i=(t,o)=>{let s=t;for(;null!=s;){!n(s)&&r(s)&&e(s,"mount"),null!=s.child&&i(s.child,!0),s=o?s.sibling:null}},l=(t,o)=>{if(!o)return;if(!n(t)&&r(t)&&e(t,"update"),t.child!==o.child){let e=t.child;for(;e;){const t=e.alternate;t?l(e,t):i(e,!1),e=e.sibling}}},m=t=>{!(3===t.tag)&&n(t)||e(t,"unmount")};!o&&a?i(t,!1):o&&a?l(t,t.alternate):o&&!a&&m(t)}catch(e){if(!t)throw e;t(e)}},exports.didFiberRender=r,exports.getDisplayName=e=>{if("function"!=typeof e&&("object"!=typeof e||!e))return null;const t=e.displayName||e.name||null;return t||((e=a(e))&&(e.displayName||e.name)||null)},exports.getNearestHostFiber=e=>{let t=s(e,o);return t||(t=s(e,o,!0)),t},exports.getRDTHook=l,exports.getTimings=e=>{const t=e?.actualDuration??0;let o=t,r=e?.child??null;for(;t>0&&null!=r;)o-=r.actualDuration??0,r=r.sibling;return{selfTime:o,totalTime:t}},exports.getType=a,exports.hasMemoCache=e=>Boolean(e.updateQueue?.memoCache),exports.instrument=({onCommitFiberRoot:e,onCommitFiberUnmount:t,onPostCommitFiberRoot:o})=>{const r=l(),n=r.onCommitFiberRoot;e&&(r.onCommitFiberRoot=(t,o)=>{n&&n(t,o),e(t,o)});const s=r.onCommitFiberUnmount;t&&(r.onCommitFiberUnmount=(e,o)=>{s&&s(e,o),t(e,o)});const a=r.onPostCommitFiberRoot;return o&&(r.onPostCommitFiberRoot=(e,t)=>{a&&a(e,t)}),r},exports.isCompositeFiber=e=>0===e.tag||1===e.tag||15===e.tag||14===e.tag||11===e.tag,exports.isHostFiber=o,exports.shouldFilterFiber=n,exports.traverseContexts=(e,t)=>{try{const o=e.dependencies,r=e.alternate?.dependencies;if(!o||!r)return!1;if("object"!=typeof o||!("firstContext"in o)||"object"!=typeof r||!("firstContext"in r))return!1;let n=o.firstContext,s=r.firstContext;for(;n&&"object"==typeof n&&"memoizedValue"in n&&s&&"object"==typeof s&&"memoizedValue"in s;){if(!0===t(n,s))return!0;n=n.next,s=s.next}}catch{}return!1},exports.traverseFiber=s,exports.traverseProps=(e,t)=>{try{const o=e.memoizedProps,r=e.alternate?.memoizedProps||{};for(const e in{...r,...o}){const n=r?.[e],s=o?.[e];if(!0===t(n,s))return!0}}catch{}return!1},exports.traverseState=(e,t)=>{try{let o=e.memoizedState,r=e.alternate?.memoizedState;for(;o&&r;){if(!0===t(o,r))return!0;o=o.next,r=r.next}}catch{}return!1};
1
+ 'use strict';
2
+
3
+ // src/index.ts
4
+ var ClassComponentTag = 1;
5
+ var FunctionComponentTag = 0;
6
+ var ContextConsumerTag = 9;
7
+ var SuspenseComponentTag = 13;
8
+ var OffscreenComponentTag = 22;
9
+ var ForwardRefTag = 11;
10
+ var MemoComponentTag = 14;
11
+ var SimpleMemoComponentTag = 15;
12
+ var HostComponentTag = 5;
13
+ var HostHoistableTag = 26;
14
+ var HostSingletonTag = 27;
15
+ var DehydratedSuspenseComponent = 18;
16
+ var HostText = 6;
17
+ var Fragment = 7;
18
+ var LegacyHiddenComponent = 23;
19
+ var OffscreenComponent = 22;
20
+ var HostRoot = 3;
21
+ var CONCURRENT_MODE_NUMBER = 60111;
22
+ var CONCURRENT_MODE_SYMBOL_STRING = "Symbol(react.concurrent_mode)";
23
+ var DEPRECATED_ASYNC_MODE_SYMBOL_STRING = "Symbol(react.async_mode)";
24
+ var PerformedWork = 1;
25
+ var Placement = 2;
26
+ var DidCapture = 128;
27
+ var Hydrating = 4096;
28
+ var Update = 4;
29
+ var Cloned = 8;
30
+ var ChildDeletion = 16;
31
+ var ContentReset = 32;
32
+ var Ref = 512;
33
+ var Snapshot = 1024;
34
+ var Visibility = 8192;
35
+ var MutationMask = Placement | Update | ChildDeletion | ContentReset | Hydrating | Visibility | Snapshot;
36
+ var isValidElement = (element) => typeof element === "object" && element !== null && "$$typeof" in element && String(element.$$typeof) === "Symbol(react.element)";
37
+ var isHostFiber = (fiber) => fiber.tag === HostComponentTag || // @ts-expect-error: it exists
38
+ fiber.tag === HostHoistableTag || // @ts-expect-error: it exists
39
+ fiber.tag === HostSingletonTag;
40
+ var isCompositeFiber = (fiber) => fiber.tag === FunctionComponentTag || fiber.tag === ClassComponentTag || fiber.tag === SimpleMemoComponentTag || fiber.tag === MemoComponentTag || fiber.tag === ForwardRefTag;
41
+ var traverseContexts = (fiber, selector) => {
42
+ try {
43
+ const nextDependencies = fiber.dependencies;
44
+ const prevDependencies = fiber.alternate?.dependencies;
45
+ if (!nextDependencies || !prevDependencies) return false;
46
+ if (typeof nextDependencies !== "object" || !("firstContext" in nextDependencies) || typeof prevDependencies !== "object" || !("firstContext" in prevDependencies)) {
47
+ return false;
48
+ }
49
+ let nextContext = nextDependencies.firstContext;
50
+ let prevContext = prevDependencies.firstContext;
51
+ while (nextContext && typeof nextContext === "object" && "memoizedValue" in nextContext && prevContext && typeof prevContext === "object" && "memoizedValue" in prevContext) {
52
+ if (selector(nextContext, prevContext) === true)
53
+ return true;
54
+ nextContext = nextContext.next;
55
+ prevContext = prevContext.next;
56
+ }
57
+ } catch {
58
+ }
59
+ return false;
60
+ };
61
+ var traverseState = (fiber, selector) => {
62
+ try {
63
+ let prevState = fiber.memoizedState;
64
+ let nextState = fiber.alternate?.memoizedState;
65
+ while (prevState && nextState) {
66
+ if (selector(prevState, nextState) === true) return true;
67
+ prevState = prevState.next;
68
+ nextState = nextState.next;
69
+ }
70
+ } catch {
71
+ }
72
+ return false;
73
+ };
74
+ var traverseProps = (fiber, selector) => {
75
+ try {
76
+ const nextProps = fiber.memoizedProps;
77
+ const prevProps = fiber.alternate?.memoizedProps || {};
78
+ for (const propName in { ...prevProps, ...nextProps }) {
79
+ const prevValue = prevProps?.[propName];
80
+ const nextValue = nextProps?.[propName];
81
+ if (selector(prevValue, nextValue) === true) return true;
82
+ }
83
+ } catch {
84
+ }
85
+ return false;
86
+ };
87
+ var didFiberRender = (fiber) => {
88
+ const nextProps = fiber.memoizedProps;
89
+ const prevProps = fiber.alternate?.memoizedProps || {};
90
+ const flags = fiber.flags ?? fiber.effectTag ?? 0;
91
+ switch (fiber.tag) {
92
+ case ClassComponentTag:
93
+ case FunctionComponentTag:
94
+ case ContextConsumerTag:
95
+ case ForwardRefTag:
96
+ case MemoComponentTag:
97
+ case SimpleMemoComponentTag: {
98
+ return (flags & PerformedWork) === PerformedWork;
99
+ }
100
+ default:
101
+ if (!fiber.alternate) return true;
102
+ return prevProps !== nextProps || fiber.alternate.memoizedState !== fiber.memoizedState || fiber.alternate.ref !== fiber.ref;
103
+ }
104
+ };
105
+ var didFiberCommit = (fiber) => {
106
+ return Boolean(
107
+ didFiberRender(fiber) && (fiber.subtreeFlags & (MutationMask | Cloned) || fiber.deletions)
108
+ );
109
+ };
110
+ var getMutatedHostFibers = (fiber) => {
111
+ if (!didFiberCommit(fiber)) return [];
112
+ const mutations = [];
113
+ for (let sibling = fiber.sibling; sibling; sibling = sibling.sibling) {
114
+ if (isHostFiber(sibling) && didFiberCommit(sibling.return ?? sibling) && didFiberRender(sibling)) {
115
+ mutations.push(sibling);
116
+ mutations.push(...getMutatedHostFibers(sibling));
117
+ }
118
+ }
119
+ if (fiber.child && isHostFiber(fiber.child) && didFiberCommit(fiber) && didFiberRender(fiber.child)) {
120
+ mutations.push(fiber.child);
121
+ mutations.push(...getMutatedHostFibers(fiber.child));
122
+ }
123
+ return mutations;
124
+ };
125
+ var getFiberStack = (fiber) => {
126
+ const stack = [];
127
+ while (fiber.return) {
128
+ stack.unshift(fiber);
129
+ fiber = fiber.return;
130
+ }
131
+ return stack;
132
+ };
133
+ var shouldFilterFiber = (fiber) => {
134
+ switch (fiber.tag) {
135
+ case DehydratedSuspenseComponent:
136
+ return true;
137
+ case HostText:
138
+ case Fragment:
139
+ case LegacyHiddenComponent:
140
+ case OffscreenComponent:
141
+ return true;
142
+ case HostRoot:
143
+ return false;
144
+ default: {
145
+ const symbolOrNumber = typeof fiber.type === "object" && fiber.type !== null ? fiber.type.$$typeof : fiber.type;
146
+ const typeSymbol = typeof symbolOrNumber === "symbol" ? symbolOrNumber.toString() : symbolOrNumber;
147
+ switch (typeSymbol) {
148
+ case CONCURRENT_MODE_NUMBER:
149
+ case CONCURRENT_MODE_SYMBOL_STRING:
150
+ case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:
151
+ return true;
152
+ default:
153
+ return false;
154
+ }
155
+ }
156
+ }
157
+ };
158
+ var getNearestHostFiber = (fiber) => {
159
+ let hostFiber = traverseFiber(fiber, isHostFiber);
160
+ if (!hostFiber) {
161
+ hostFiber = traverseFiber(fiber, isHostFiber, true);
162
+ }
163
+ return hostFiber;
164
+ };
165
+ var traverseFiber = (fiber, selector, ascending = false) => {
166
+ if (!fiber) return null;
167
+ if (selector(fiber) === true) return fiber;
168
+ let child = ascending ? fiber.return : fiber.child;
169
+ while (child) {
170
+ const match = traverseFiber(child, selector, ascending);
171
+ if (match) return match;
172
+ child = ascending ? null : child.sibling;
173
+ }
174
+ return null;
175
+ };
176
+ var getTimings = (fiber) => {
177
+ const totalTime = fiber?.actualDuration ?? 0;
178
+ let selfTime = totalTime;
179
+ let child = fiber?.child ?? null;
180
+ while (totalTime > 0 && child != null) {
181
+ selfTime -= child.actualDuration ?? 0;
182
+ child = child.sibling;
183
+ }
184
+ return { selfTime, totalTime };
185
+ };
186
+ var hasMemoCache = (fiber) => {
187
+ return Boolean(fiber.updateQueue?.memoCache);
188
+ };
189
+ var getType = (type) => {
190
+ if (typeof type === "function") {
191
+ return type;
192
+ }
193
+ if (typeof type === "object" && type) {
194
+ return getType(type.type || type.render);
195
+ }
196
+ return null;
197
+ };
198
+ var getDisplayName = (type) => {
199
+ if (typeof type !== "function" && !(typeof type === "object" && type)) {
200
+ return null;
201
+ }
202
+ const name = type.displayName || type.name || null;
203
+ if (name) return name;
204
+ type = getType(type);
205
+ if (!type) return null;
206
+ return type.displayName || type.name || null;
207
+ };
208
+ var NO_OP = () => {
209
+ };
210
+ var getRDTHook = () => {
211
+ let rdtHook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
212
+ const renderers = /* @__PURE__ */ new Map();
213
+ let i = 0;
214
+ rdtHook ??= {
215
+ checkDCE: NO_OP,
216
+ supportsFiber: true,
217
+ supportsFlight: true,
218
+ renderers,
219
+ onCommitFiberRoot: NO_OP,
220
+ onCommitFiberUnmount: NO_OP,
221
+ onPostCommitFiberRoot: NO_OP,
222
+ inject(renderer) {
223
+ const nextID = ++i;
224
+ renderers.set(nextID, renderer);
225
+ return nextID;
226
+ }
227
+ };
228
+ try {
229
+ globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ = rdtHook;
230
+ } catch {
231
+ }
232
+ return rdtHook;
233
+ };
234
+ if (typeof window !== "undefined") {
235
+ getRDTHook();
236
+ }
237
+ var mountFiberRecursively = (onRender, firstChild, traverseSiblings) => {
238
+ let fiber = firstChild;
239
+ while (fiber != null) {
240
+ const shouldIncludeInTree = !shouldFilterFiber(fiber);
241
+ if (shouldIncludeInTree && didFiberRender(fiber)) {
242
+ onRender(fiber, "mount");
243
+ }
244
+ if (fiber.tag === SuspenseComponentTag) {
245
+ const isTimedOut = fiber.memoizedState !== null;
246
+ if (isTimedOut) {
247
+ const primaryChildFragment = fiber.child;
248
+ const fallbackChildFragment = primaryChildFragment ? primaryChildFragment.sibling : null;
249
+ if (fallbackChildFragment) {
250
+ const fallbackChild = fallbackChildFragment.child;
251
+ if (fallbackChild !== null) {
252
+ mountFiberRecursively(onRender, fallbackChild, false);
253
+ }
254
+ }
255
+ } else {
256
+ let primaryChild = null;
257
+ if (fiber.child !== null) {
258
+ primaryChild = fiber.child.child;
259
+ }
260
+ if (primaryChild !== null) {
261
+ mountFiberRecursively(onRender, primaryChild, false);
262
+ }
263
+ }
264
+ } else if (fiber.child != null) {
265
+ mountFiberRecursively(onRender, fiber.child, true);
266
+ }
267
+ fiber = traverseSiblings ? fiber.sibling : null;
268
+ }
269
+ };
270
+ var updateFiberRecursively = (onRender, nextFiber, prevFiber, parentFiber) => {
271
+ if (!prevFiber) return;
272
+ const isSuspense = nextFiber.tag === SuspenseComponentTag;
273
+ const shouldIncludeInTree = !shouldFilterFiber(nextFiber);
274
+ if (shouldIncludeInTree && didFiberRender(nextFiber)) {
275
+ onRender(nextFiber, "update");
276
+ }
277
+ const prevDidTimeout = isSuspense && prevFiber.memoizedState !== null;
278
+ const nextDidTimeOut = isSuspense && nextFiber.memoizedState !== null;
279
+ if (prevDidTimeout && nextDidTimeOut) {
280
+ const nextFallbackChildSet = nextFiber.child?.sibling ?? null;
281
+ const prevFallbackChildSet = prevFiber.child?.sibling ?? null;
282
+ if (nextFallbackChildSet !== null && prevFallbackChildSet !== null) {
283
+ updateFiberRecursively(
284
+ onRender,
285
+ nextFallbackChildSet,
286
+ prevFallbackChildSet);
287
+ }
288
+ } else if (prevDidTimeout && !nextDidTimeOut) {
289
+ const nextPrimaryChildSet = nextFiber.child;
290
+ if (nextPrimaryChildSet !== null) {
291
+ mountFiberRecursively(onRender, nextPrimaryChildSet, true);
292
+ }
293
+ } else if (!prevDidTimeout && nextDidTimeOut) {
294
+ unmountFiberChildrenRecursively(onRender, prevFiber);
295
+ const nextFallbackChildSet = nextFiber.child?.sibling ?? null;
296
+ if (nextFallbackChildSet !== null) {
297
+ mountFiberRecursively(onRender, nextFallbackChildSet, true);
298
+ }
299
+ } else if (nextFiber.child !== prevFiber.child) {
300
+ let nextChild = nextFiber.child;
301
+ while (nextChild) {
302
+ if (nextChild.alternate) {
303
+ const prevChild = nextChild.alternate;
304
+ updateFiberRecursively(
305
+ onRender,
306
+ nextChild,
307
+ prevChild);
308
+ } else {
309
+ mountFiberRecursively(onRender, nextChild, false);
310
+ }
311
+ nextChild = nextChild.sibling;
312
+ }
313
+ }
314
+ };
315
+ var unmountFiber = (onRender, fiber) => {
316
+ const isRoot = fiber.tag === HostRoot;
317
+ if (isRoot || !shouldFilterFiber(fiber)) {
318
+ onRender(fiber, "unmount");
319
+ }
320
+ };
321
+ var unmountFiberChildrenRecursively = (onRender, fiber) => {
322
+ const isTimedOutSuspense = fiber.tag === SuspenseComponentTag && fiber.memoizedState !== null;
323
+ let child = fiber.child;
324
+ if (isTimedOutSuspense) {
325
+ const primaryChildFragment = fiber.child;
326
+ const fallbackChildFragment = primaryChildFragment?.sibling ?? null;
327
+ child = fallbackChildFragment?.child ?? null;
328
+ }
329
+ while (child !== null) {
330
+ if (child.return !== null) {
331
+ unmountFiber(onRender, child);
332
+ unmountFiberChildrenRecursively(onRender, child);
333
+ }
334
+ child = child.sibling;
335
+ }
336
+ };
337
+ var commitId = 0;
338
+ var rootInstanceMap = /* @__PURE__ */ new WeakMap();
339
+ var createFiberVisitor = ({
340
+ onRender,
341
+ onError
342
+ }) => {
343
+ return (_rendererID, root) => {
344
+ const rootFiber = root.current;
345
+ let rootInstance = rootInstanceMap.get(root);
346
+ if (!rootInstance) {
347
+ rootInstance = { prevFiber: null, id: commitId++ };
348
+ rootInstanceMap.set(root, rootInstance);
349
+ }
350
+ const { prevFiber } = rootInstance;
351
+ try {
352
+ if (prevFiber !== null) {
353
+ const wasMounted = prevFiber && prevFiber.memoizedState != null && prevFiber.memoizedState.element != null && // A dehydrated root is not considered mounted
354
+ prevFiber.memoizedState.isDehydrated !== true;
355
+ const isMounted = rootFiber.memoizedState != null && rootFiber.memoizedState.element != null && // A dehydrated root is not considered mounted
356
+ rootFiber.memoizedState.isDehydrated !== true;
357
+ if (!wasMounted && isMounted) {
358
+ mountFiberRecursively(onRender, rootFiber, false);
359
+ } else if (wasMounted && isMounted) {
360
+ updateFiberRecursively(
361
+ onRender,
362
+ rootFiber,
363
+ rootFiber.alternate,
364
+ null
365
+ );
366
+ } else if (wasMounted && !isMounted) {
367
+ unmountFiber(onRender, rootFiber);
368
+ }
369
+ } else {
370
+ mountFiberRecursively(onRender, rootFiber, false);
371
+ }
372
+ } catch (err) {
373
+ if (onError) {
374
+ onError(err);
375
+ } else {
376
+ throw err;
377
+ }
378
+ }
379
+ rootInstance.prevFiber = rootFiber;
380
+ };
381
+ };
382
+ var instrument = ({
383
+ onCommitFiberRoot,
384
+ onCommitFiberUnmount,
385
+ onPostCommitFiberRoot
386
+ }) => {
387
+ const devtoolsHook = getRDTHook();
388
+ const prevOnCommitFiberRoot = devtoolsHook.onCommitFiberRoot;
389
+ if (onCommitFiberRoot) {
390
+ devtoolsHook.onCommitFiberRoot = (rendererID, root) => {
391
+ if (prevOnCommitFiberRoot) prevOnCommitFiberRoot(rendererID, root);
392
+ onCommitFiberRoot(rendererID, root);
393
+ };
394
+ }
395
+ const prevOnCommitFiberUnmount = devtoolsHook.onCommitFiberUnmount;
396
+ if (onCommitFiberUnmount) {
397
+ devtoolsHook.onCommitFiberUnmount = (rendererID, root) => {
398
+ if (prevOnCommitFiberUnmount) prevOnCommitFiberUnmount(rendererID, root);
399
+ onCommitFiberUnmount(rendererID, root);
400
+ };
401
+ }
402
+ const prevOnPostCommitFiberRoot = devtoolsHook.onPostCommitFiberRoot;
403
+ if (onPostCommitFiberRoot) {
404
+ devtoolsHook.onPostCommitFiberRoot = (rendererID, root) => {
405
+ if (prevOnPostCommitFiberRoot) {
406
+ prevOnPostCommitFiberRoot(rendererID, root);
407
+ }
408
+ };
409
+ }
410
+ return devtoolsHook;
411
+ };
412
+
413
+ exports.CONCURRENT_MODE_NUMBER = CONCURRENT_MODE_NUMBER;
414
+ exports.CONCURRENT_MODE_SYMBOL_STRING = CONCURRENT_MODE_SYMBOL_STRING;
415
+ exports.ChildDeletion = ChildDeletion;
416
+ exports.ClassComponentTag = ClassComponentTag;
417
+ exports.Cloned = Cloned;
418
+ exports.ContentReset = ContentReset;
419
+ exports.ContextConsumerTag = ContextConsumerTag;
420
+ exports.DEPRECATED_ASYNC_MODE_SYMBOL_STRING = DEPRECATED_ASYNC_MODE_SYMBOL_STRING;
421
+ exports.DehydratedSuspenseComponent = DehydratedSuspenseComponent;
422
+ exports.DidCapture = DidCapture;
423
+ exports.ForwardRefTag = ForwardRefTag;
424
+ exports.Fragment = Fragment;
425
+ exports.FunctionComponentTag = FunctionComponentTag;
426
+ exports.HostComponentTag = HostComponentTag;
427
+ exports.HostHoistableTag = HostHoistableTag;
428
+ exports.HostRoot = HostRoot;
429
+ exports.HostSingletonTag = HostSingletonTag;
430
+ exports.HostText = HostText;
431
+ exports.Hydrating = Hydrating;
432
+ exports.LegacyHiddenComponent = LegacyHiddenComponent;
433
+ exports.MemoComponentTag = MemoComponentTag;
434
+ exports.MutationMask = MutationMask;
435
+ exports.OffscreenComponent = OffscreenComponent;
436
+ exports.OffscreenComponentTag = OffscreenComponentTag;
437
+ exports.PerformedWork = PerformedWork;
438
+ exports.Placement = Placement;
439
+ exports.Ref = Ref;
440
+ exports.SimpleMemoComponentTag = SimpleMemoComponentTag;
441
+ exports.Snapshot = Snapshot;
442
+ exports.SuspenseComponentTag = SuspenseComponentTag;
443
+ exports.Update = Update;
444
+ exports.Visibility = Visibility;
445
+ exports.createFiberVisitor = createFiberVisitor;
446
+ exports.didFiberCommit = didFiberCommit;
447
+ exports.didFiberRender = didFiberRender;
448
+ exports.getDisplayName = getDisplayName;
449
+ exports.getFiberStack = getFiberStack;
450
+ exports.getMutatedHostFibers = getMutatedHostFibers;
451
+ exports.getNearestHostFiber = getNearestHostFiber;
452
+ exports.getRDTHook = getRDTHook;
453
+ exports.getTimings = getTimings;
454
+ exports.getType = getType;
455
+ exports.hasMemoCache = hasMemoCache;
456
+ exports.instrument = instrument;
457
+ exports.isCompositeFiber = isCompositeFiber;
458
+ exports.isHostFiber = isHostFiber;
459
+ exports.isValidElement = isValidElement;
460
+ exports.mountFiberRecursively = mountFiberRecursively;
461
+ exports.shouldFilterFiber = shouldFilterFiber;
462
+ exports.traverseContexts = traverseContexts;
463
+ exports.traverseFiber = traverseFiber;
464
+ exports.traverseProps = traverseProps;
465
+ exports.traverseState = traverseState;
466
+ exports.unmountFiber = unmountFiber;
467
+ exports.unmountFiberChildrenRecursively = unmountFiberChildrenRecursively;
468
+ exports.updateFiberRecursively = updateFiberRecursively;
package/dist/index.mjs CHANGED
@@ -1 +1,411 @@
1
- var e=1,t=1,o=0,n=9,r=11,a=14,i=15,l=5,c=26,m=27,u=18,s=6,f=7,d=23,p=22,b=3,y=60111,h="Symbol(react.concurrent_mode)",g="Symbol(react.async_mode)",C=e=>5===e.tag||26===e.tag||27===e.tag,_=e=>0===e.tag||1===e.tag||15===e.tag||14===e.tag||11===e.tag,F=(e,t)=>{try{const o=e.dependencies,n=e.alternate?.dependencies;if(!o||!n)return!1;if("object"!=typeof o||!("firstContext"in o)||"object"!=typeof n||!("firstContext"in n))return!1;let r=o.firstContext,a=n.firstContext;for(;r&&"object"==typeof r&&"memoizedValue"in r&&a&&"object"==typeof a&&"memoizedValue"in a;){if(!0===t(r,a))return!0;r=r.next,a=a.next}}catch{}return!1},z=(e,t)=>{try{let o=e.memoizedState,n=e.alternate?.memoizedState;for(;o&&n;){if(!0===t(o,n))return!0;o=o.next,n=n.next}}catch{}return!1},S=(e,t)=>{try{const o=e.memoizedProps,n=e.alternate?.memoizedProps||{};for(const e in{...n,...o}){const r=n?.[e],a=o?.[e];if(!0===t(r,a))return!0}}catch{}return!1},R=e=>{const 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!(1&~n);default:return!e.alternate||(o!==t||e.alternate.memoizedState!==e.memoizedState||e.alternate.ref!==e.ref)}},O=e=>{switch(e.tag){case 18:case 6:case 7:case 23:case 22:return!0;case 3:return!1;default:{const t="object"==typeof e.type&&null!==e.type?e.type.$$typeof:e.type;switch("symbol"==typeof t?t.toString():t){case 60111:case h:case g:return!0;default:return!1}}}},x=e=>{let t=T(e,C);return t||(t=T(e,C,!0)),t},T=(e,t,o=!1)=>{if(!e)return null;if(!0===t(e))return e;let n=o?e.return:e.child;for(;n;){const e=T(n,t,o);if(e)return e;n=o?null:n.sibling}return null},j=e=>{const t=e?.actualDuration??0;let o=t,n=e?.child??null;for(;t>0&&null!=n;)o-=n.actualDuration??0,n=n.sibling;return{selfTime:o,totalTime:t}},P=e=>Boolean(e.updateQueue?.memoCache),w=e=>"function"==typeof e?e:"object"==typeof e&&e?w(e.type||e.render):null,D=e=>{if("function"!=typeof e&&("object"!=typeof e||!e))return null;const t=e.displayName||e.name||null;return t||((e=w(e))&&(e.displayName||e.name)||null)},E=()=>{},L=()=>{let e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;const t=new Map;let o=0;e??={checkDCE:E,supportsFiber:!0,supportsFlight:!0,renderers:t,onCommitFiberRoot:E,onCommitFiberUnmount:E,onPostCommitFiberRoot:E,inject(e){const n=++o;return t.set(n,e),n}};try{globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=e}catch{}return e};"undefined"!=typeof window&&L();var B=({onRender:e,onError:t})=>(o,n)=>{try{const t=n.current,o=null!==t.alternate&&Boolean(t.alternate.memoizedState?.element)&&!0!==t.alternate.memoizedState.isDehydrated,r=Boolean(t.memoizedState?.element),a=(t,o)=>{let n=t;for(;null!=n;){!O(n)&&R(n)&&e(n,"mount"),null!=n.child&&a(n.child,!0),n=o?n.sibling:null}},i=(t,o)=>{if(!o)return;if(!O(t)&&R(t)&&e(t,"update"),t.child!==o.child){let e=t.child;for(;e;){const t=e.alternate;t?i(e,t):a(e,!1),e=e.sibling}}},l=t=>{!(3===t.tag)&&O(t)||e(t,"unmount")};!o&&r?a(t,!1):o&&r?i(t,t.alternate):o&&!r&&l(t)}catch(e){if(!t)throw e;t(e)}},A=({onCommitFiberRoot:e,onCommitFiberUnmount:t,onPostCommitFiberRoot:o})=>{const n=L(),r=n.onCommitFiberRoot;e&&(n.onCommitFiberRoot=(t,o)=>{r&&r(t,o),e(t,o)});const a=n.onCommitFiberUnmount;t&&(n.onCommitFiberUnmount=(e,o)=>{a&&a(e,o),t(e,o)});const i=n.onPostCommitFiberRoot;return o&&(n.onPostCommitFiberRoot=(e,t)=>{i&&i(e,t)}),n};export{y as CONCURRENT_MODE_NUMBER,h as CONCURRENT_MODE_SYMBOL_STRING,t as ClassComponentTag,n as ContextConsumerTag,g as DEPRECATED_ASYNC_MODE_SYMBOL_STRING,u as DehydratedSuspenseComponent,r as ForwardRefTag,f as Fragment,o as FunctionComponentTag,l as HostComponentTag,c as HostHoistableTag,b as HostRoot,m as HostSingletonTag,s as HostText,d as LegacyHiddenComponent,a as MemoComponentTag,p as OffscreenComponent,e as PerformedWorkFlag,i as SimpleMemoComponentTag,B as createFiberVisitor,R as didFiberRender,D as getDisplayName,x as getNearestHostFiber,L as getRDTHook,j as getTimings,w as getType,P as hasMemoCache,A as instrument,_ as isCompositeFiber,C as isHostFiber,O as shouldFilterFiber,F as traverseContexts,T as traverseFiber,S as traverseProps,z as traverseState};
1
+ // src/index.ts
2
+ var ClassComponentTag = 1;
3
+ var FunctionComponentTag = 0;
4
+ var ContextConsumerTag = 9;
5
+ var SuspenseComponentTag = 13;
6
+ var OffscreenComponentTag = 22;
7
+ var ForwardRefTag = 11;
8
+ var MemoComponentTag = 14;
9
+ var SimpleMemoComponentTag = 15;
10
+ var HostComponentTag = 5;
11
+ var HostHoistableTag = 26;
12
+ var HostSingletonTag = 27;
13
+ var DehydratedSuspenseComponent = 18;
14
+ var HostText = 6;
15
+ var Fragment = 7;
16
+ var LegacyHiddenComponent = 23;
17
+ var OffscreenComponent = 22;
18
+ var HostRoot = 3;
19
+ var CONCURRENT_MODE_NUMBER = 60111;
20
+ var CONCURRENT_MODE_SYMBOL_STRING = "Symbol(react.concurrent_mode)";
21
+ var DEPRECATED_ASYNC_MODE_SYMBOL_STRING = "Symbol(react.async_mode)";
22
+ var PerformedWork = 1;
23
+ var Placement = 2;
24
+ var DidCapture = 128;
25
+ var Hydrating = 4096;
26
+ var Update = 4;
27
+ var Cloned = 8;
28
+ var ChildDeletion = 16;
29
+ var ContentReset = 32;
30
+ var Ref = 512;
31
+ var Snapshot = 1024;
32
+ var Visibility = 8192;
33
+ var MutationMask = Placement | Update | ChildDeletion | ContentReset | Hydrating | Visibility | Snapshot;
34
+ var isValidElement = (element) => typeof element === "object" && element !== null && "$$typeof" in element && String(element.$$typeof) === "Symbol(react.element)";
35
+ var isHostFiber = (fiber) => fiber.tag === HostComponentTag || // @ts-expect-error: it exists
36
+ fiber.tag === HostHoistableTag || // @ts-expect-error: it exists
37
+ fiber.tag === HostSingletonTag;
38
+ var isCompositeFiber = (fiber) => fiber.tag === FunctionComponentTag || fiber.tag === ClassComponentTag || fiber.tag === SimpleMemoComponentTag || fiber.tag === MemoComponentTag || fiber.tag === ForwardRefTag;
39
+ var traverseContexts = (fiber, selector) => {
40
+ try {
41
+ const nextDependencies = fiber.dependencies;
42
+ const prevDependencies = fiber.alternate?.dependencies;
43
+ if (!nextDependencies || !prevDependencies) return false;
44
+ if (typeof nextDependencies !== "object" || !("firstContext" in nextDependencies) || typeof prevDependencies !== "object" || !("firstContext" in prevDependencies)) {
45
+ return false;
46
+ }
47
+ let nextContext = nextDependencies.firstContext;
48
+ let prevContext = prevDependencies.firstContext;
49
+ while (nextContext && typeof nextContext === "object" && "memoizedValue" in nextContext && prevContext && typeof prevContext === "object" && "memoizedValue" in prevContext) {
50
+ if (selector(nextContext, prevContext) === true)
51
+ return true;
52
+ nextContext = nextContext.next;
53
+ prevContext = prevContext.next;
54
+ }
55
+ } catch {
56
+ }
57
+ return false;
58
+ };
59
+ var traverseState = (fiber, selector) => {
60
+ try {
61
+ let prevState = fiber.memoizedState;
62
+ let nextState = fiber.alternate?.memoizedState;
63
+ while (prevState && nextState) {
64
+ if (selector(prevState, nextState) === true) return true;
65
+ prevState = prevState.next;
66
+ nextState = nextState.next;
67
+ }
68
+ } catch {
69
+ }
70
+ return false;
71
+ };
72
+ var traverseProps = (fiber, selector) => {
73
+ try {
74
+ const nextProps = fiber.memoizedProps;
75
+ const prevProps = fiber.alternate?.memoizedProps || {};
76
+ for (const propName in { ...prevProps, ...nextProps }) {
77
+ const prevValue = prevProps?.[propName];
78
+ const nextValue = nextProps?.[propName];
79
+ if (selector(prevValue, nextValue) === true) return true;
80
+ }
81
+ } catch {
82
+ }
83
+ return false;
84
+ };
85
+ var didFiberRender = (fiber) => {
86
+ const nextProps = fiber.memoizedProps;
87
+ const prevProps = fiber.alternate?.memoizedProps || {};
88
+ const flags = fiber.flags ?? fiber.effectTag ?? 0;
89
+ switch (fiber.tag) {
90
+ case ClassComponentTag:
91
+ case FunctionComponentTag:
92
+ case ContextConsumerTag:
93
+ case ForwardRefTag:
94
+ case MemoComponentTag:
95
+ case SimpleMemoComponentTag: {
96
+ return (flags & PerformedWork) === PerformedWork;
97
+ }
98
+ default:
99
+ if (!fiber.alternate) return true;
100
+ return prevProps !== nextProps || fiber.alternate.memoizedState !== fiber.memoizedState || fiber.alternate.ref !== fiber.ref;
101
+ }
102
+ };
103
+ var didFiberCommit = (fiber) => {
104
+ return Boolean(
105
+ didFiberRender(fiber) && (fiber.subtreeFlags & (MutationMask | Cloned) || fiber.deletions)
106
+ );
107
+ };
108
+ var getMutatedHostFibers = (fiber) => {
109
+ if (!didFiberCommit(fiber)) return [];
110
+ const mutations = [];
111
+ for (let sibling = fiber.sibling; sibling; sibling = sibling.sibling) {
112
+ if (isHostFiber(sibling) && didFiberCommit(sibling.return ?? sibling) && didFiberRender(sibling)) {
113
+ mutations.push(sibling);
114
+ mutations.push(...getMutatedHostFibers(sibling));
115
+ }
116
+ }
117
+ if (fiber.child && isHostFiber(fiber.child) && didFiberCommit(fiber) && didFiberRender(fiber.child)) {
118
+ mutations.push(fiber.child);
119
+ mutations.push(...getMutatedHostFibers(fiber.child));
120
+ }
121
+ return mutations;
122
+ };
123
+ var getFiberStack = (fiber) => {
124
+ const stack = [];
125
+ while (fiber.return) {
126
+ stack.unshift(fiber);
127
+ fiber = fiber.return;
128
+ }
129
+ return stack;
130
+ };
131
+ var shouldFilterFiber = (fiber) => {
132
+ switch (fiber.tag) {
133
+ case DehydratedSuspenseComponent:
134
+ return true;
135
+ case HostText:
136
+ case Fragment:
137
+ case LegacyHiddenComponent:
138
+ case OffscreenComponent:
139
+ return true;
140
+ case HostRoot:
141
+ return false;
142
+ default: {
143
+ const symbolOrNumber = typeof fiber.type === "object" && fiber.type !== null ? fiber.type.$$typeof : fiber.type;
144
+ const typeSymbol = typeof symbolOrNumber === "symbol" ? symbolOrNumber.toString() : symbolOrNumber;
145
+ switch (typeSymbol) {
146
+ case CONCURRENT_MODE_NUMBER:
147
+ case CONCURRENT_MODE_SYMBOL_STRING:
148
+ case DEPRECATED_ASYNC_MODE_SYMBOL_STRING:
149
+ return true;
150
+ default:
151
+ return false;
152
+ }
153
+ }
154
+ }
155
+ };
156
+ var getNearestHostFiber = (fiber) => {
157
+ let hostFiber = traverseFiber(fiber, isHostFiber);
158
+ if (!hostFiber) {
159
+ hostFiber = traverseFiber(fiber, isHostFiber, true);
160
+ }
161
+ return hostFiber;
162
+ };
163
+ var traverseFiber = (fiber, selector, ascending = false) => {
164
+ if (!fiber) return null;
165
+ if (selector(fiber) === true) return fiber;
166
+ let child = ascending ? fiber.return : fiber.child;
167
+ while (child) {
168
+ const match = traverseFiber(child, selector, ascending);
169
+ if (match) return match;
170
+ child = ascending ? null : child.sibling;
171
+ }
172
+ return null;
173
+ };
174
+ var getTimings = (fiber) => {
175
+ const totalTime = fiber?.actualDuration ?? 0;
176
+ let selfTime = totalTime;
177
+ let child = fiber?.child ?? null;
178
+ while (totalTime > 0 && child != null) {
179
+ selfTime -= child.actualDuration ?? 0;
180
+ child = child.sibling;
181
+ }
182
+ return { selfTime, totalTime };
183
+ };
184
+ var hasMemoCache = (fiber) => {
185
+ return Boolean(fiber.updateQueue?.memoCache);
186
+ };
187
+ var getType = (type) => {
188
+ if (typeof type === "function") {
189
+ return type;
190
+ }
191
+ if (typeof type === "object" && type) {
192
+ return getType(type.type || type.render);
193
+ }
194
+ return null;
195
+ };
196
+ var getDisplayName = (type) => {
197
+ if (typeof type !== "function" && !(typeof type === "object" && type)) {
198
+ return null;
199
+ }
200
+ const name = type.displayName || type.name || null;
201
+ if (name) return name;
202
+ type = getType(type);
203
+ if (!type) return null;
204
+ return type.displayName || type.name || null;
205
+ };
206
+ var NO_OP = () => {
207
+ };
208
+ var getRDTHook = () => {
209
+ let rdtHook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
210
+ const renderers = /* @__PURE__ */ new Map();
211
+ let i = 0;
212
+ rdtHook ??= {
213
+ checkDCE: NO_OP,
214
+ supportsFiber: true,
215
+ supportsFlight: true,
216
+ renderers,
217
+ onCommitFiberRoot: NO_OP,
218
+ onCommitFiberUnmount: NO_OP,
219
+ onPostCommitFiberRoot: NO_OP,
220
+ inject(renderer) {
221
+ const nextID = ++i;
222
+ renderers.set(nextID, renderer);
223
+ return nextID;
224
+ }
225
+ };
226
+ try {
227
+ globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__ = rdtHook;
228
+ } catch {
229
+ }
230
+ return rdtHook;
231
+ };
232
+ if (typeof window !== "undefined") {
233
+ getRDTHook();
234
+ }
235
+ var mountFiberRecursively = (onRender, firstChild, traverseSiblings) => {
236
+ let fiber = firstChild;
237
+ while (fiber != null) {
238
+ const shouldIncludeInTree = !shouldFilterFiber(fiber);
239
+ if (shouldIncludeInTree && didFiberRender(fiber)) {
240
+ onRender(fiber, "mount");
241
+ }
242
+ if (fiber.tag === SuspenseComponentTag) {
243
+ const isTimedOut = fiber.memoizedState !== null;
244
+ if (isTimedOut) {
245
+ const primaryChildFragment = fiber.child;
246
+ const fallbackChildFragment = primaryChildFragment ? primaryChildFragment.sibling : null;
247
+ if (fallbackChildFragment) {
248
+ const fallbackChild = fallbackChildFragment.child;
249
+ if (fallbackChild !== null) {
250
+ mountFiberRecursively(onRender, fallbackChild, false);
251
+ }
252
+ }
253
+ } else {
254
+ let primaryChild = null;
255
+ if (fiber.child !== null) {
256
+ primaryChild = fiber.child.child;
257
+ }
258
+ if (primaryChild !== null) {
259
+ mountFiberRecursively(onRender, primaryChild, false);
260
+ }
261
+ }
262
+ } else if (fiber.child != null) {
263
+ mountFiberRecursively(onRender, fiber.child, true);
264
+ }
265
+ fiber = traverseSiblings ? fiber.sibling : null;
266
+ }
267
+ };
268
+ var updateFiberRecursively = (onRender, nextFiber, prevFiber, parentFiber) => {
269
+ if (!prevFiber) return;
270
+ const isSuspense = nextFiber.tag === SuspenseComponentTag;
271
+ const shouldIncludeInTree = !shouldFilterFiber(nextFiber);
272
+ if (shouldIncludeInTree && didFiberRender(nextFiber)) {
273
+ onRender(nextFiber, "update");
274
+ }
275
+ const prevDidTimeout = isSuspense && prevFiber.memoizedState !== null;
276
+ const nextDidTimeOut = isSuspense && nextFiber.memoizedState !== null;
277
+ if (prevDidTimeout && nextDidTimeOut) {
278
+ const nextFallbackChildSet = nextFiber.child?.sibling ?? null;
279
+ const prevFallbackChildSet = prevFiber.child?.sibling ?? null;
280
+ if (nextFallbackChildSet !== null && prevFallbackChildSet !== null) {
281
+ updateFiberRecursively(
282
+ onRender,
283
+ nextFallbackChildSet,
284
+ prevFallbackChildSet);
285
+ }
286
+ } else if (prevDidTimeout && !nextDidTimeOut) {
287
+ const nextPrimaryChildSet = nextFiber.child;
288
+ if (nextPrimaryChildSet !== null) {
289
+ mountFiberRecursively(onRender, nextPrimaryChildSet, true);
290
+ }
291
+ } else if (!prevDidTimeout && nextDidTimeOut) {
292
+ unmountFiberChildrenRecursively(onRender, prevFiber);
293
+ const nextFallbackChildSet = nextFiber.child?.sibling ?? null;
294
+ if (nextFallbackChildSet !== null) {
295
+ mountFiberRecursively(onRender, nextFallbackChildSet, true);
296
+ }
297
+ } else if (nextFiber.child !== prevFiber.child) {
298
+ let nextChild = nextFiber.child;
299
+ while (nextChild) {
300
+ if (nextChild.alternate) {
301
+ const prevChild = nextChild.alternate;
302
+ updateFiberRecursively(
303
+ onRender,
304
+ nextChild,
305
+ prevChild);
306
+ } else {
307
+ mountFiberRecursively(onRender, nextChild, false);
308
+ }
309
+ nextChild = nextChild.sibling;
310
+ }
311
+ }
312
+ };
313
+ var unmountFiber = (onRender, fiber) => {
314
+ const isRoot = fiber.tag === HostRoot;
315
+ if (isRoot || !shouldFilterFiber(fiber)) {
316
+ onRender(fiber, "unmount");
317
+ }
318
+ };
319
+ var unmountFiberChildrenRecursively = (onRender, fiber) => {
320
+ const isTimedOutSuspense = fiber.tag === SuspenseComponentTag && fiber.memoizedState !== null;
321
+ let child = fiber.child;
322
+ if (isTimedOutSuspense) {
323
+ const primaryChildFragment = fiber.child;
324
+ const fallbackChildFragment = primaryChildFragment?.sibling ?? null;
325
+ child = fallbackChildFragment?.child ?? null;
326
+ }
327
+ while (child !== null) {
328
+ if (child.return !== null) {
329
+ unmountFiber(onRender, child);
330
+ unmountFiberChildrenRecursively(onRender, child);
331
+ }
332
+ child = child.sibling;
333
+ }
334
+ };
335
+ var commitId = 0;
336
+ var rootInstanceMap = /* @__PURE__ */ new WeakMap();
337
+ var createFiberVisitor = ({
338
+ onRender,
339
+ onError
340
+ }) => {
341
+ return (_rendererID, root) => {
342
+ const rootFiber = root.current;
343
+ let rootInstance = rootInstanceMap.get(root);
344
+ if (!rootInstance) {
345
+ rootInstance = { prevFiber: null, id: commitId++ };
346
+ rootInstanceMap.set(root, rootInstance);
347
+ }
348
+ const { prevFiber } = rootInstance;
349
+ try {
350
+ if (prevFiber !== null) {
351
+ const wasMounted = prevFiber && prevFiber.memoizedState != null && prevFiber.memoizedState.element != null && // A dehydrated root is not considered mounted
352
+ prevFiber.memoizedState.isDehydrated !== true;
353
+ const isMounted = rootFiber.memoizedState != null && rootFiber.memoizedState.element != null && // A dehydrated root is not considered mounted
354
+ rootFiber.memoizedState.isDehydrated !== true;
355
+ if (!wasMounted && isMounted) {
356
+ mountFiberRecursively(onRender, rootFiber, false);
357
+ } else if (wasMounted && isMounted) {
358
+ updateFiberRecursively(
359
+ onRender,
360
+ rootFiber,
361
+ rootFiber.alternate,
362
+ null
363
+ );
364
+ } else if (wasMounted && !isMounted) {
365
+ unmountFiber(onRender, rootFiber);
366
+ }
367
+ } else {
368
+ mountFiberRecursively(onRender, rootFiber, false);
369
+ }
370
+ } catch (err) {
371
+ if (onError) {
372
+ onError(err);
373
+ } else {
374
+ throw err;
375
+ }
376
+ }
377
+ rootInstance.prevFiber = rootFiber;
378
+ };
379
+ };
380
+ var instrument = ({
381
+ onCommitFiberRoot,
382
+ onCommitFiberUnmount,
383
+ onPostCommitFiberRoot
384
+ }) => {
385
+ const devtoolsHook = getRDTHook();
386
+ const prevOnCommitFiberRoot = devtoolsHook.onCommitFiberRoot;
387
+ if (onCommitFiberRoot) {
388
+ devtoolsHook.onCommitFiberRoot = (rendererID, root) => {
389
+ if (prevOnCommitFiberRoot) prevOnCommitFiberRoot(rendererID, root);
390
+ onCommitFiberRoot(rendererID, root);
391
+ };
392
+ }
393
+ const prevOnCommitFiberUnmount = devtoolsHook.onCommitFiberUnmount;
394
+ if (onCommitFiberUnmount) {
395
+ devtoolsHook.onCommitFiberUnmount = (rendererID, root) => {
396
+ if (prevOnCommitFiberUnmount) prevOnCommitFiberUnmount(rendererID, root);
397
+ onCommitFiberUnmount(rendererID, root);
398
+ };
399
+ }
400
+ const prevOnPostCommitFiberRoot = devtoolsHook.onPostCommitFiberRoot;
401
+ if (onPostCommitFiberRoot) {
402
+ devtoolsHook.onPostCommitFiberRoot = (rendererID, root) => {
403
+ if (prevOnPostCommitFiberRoot) {
404
+ prevOnPostCommitFiberRoot(rendererID, root);
405
+ }
406
+ };
407
+ }
408
+ return devtoolsHook;
409
+ };
410
+
411
+ 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 };
@@ -1 +1,21 @@
1
- var Bippy=function(){"use strict";var r,e,o=Object.getOwnPropertyNames;return(r={"src/rsc-shim.ts"(){throw new Error("This module cannot be imported from a Server Component module. It should only be used from a Client Component.")}},function(){return e||(0,r[o(r)[0]])((e={exports:{}}).exports,e),e.exports})()}();
1
+ var Bippy = (function () {
2
+ 'use strict';
3
+
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __commonJS = (cb, mod) => function __require() {
6
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
7
+ };
8
+
9
+ // src/rsc-shim.ts
10
+ var require_rsc_shim = __commonJS({
11
+ "src/rsc-shim.ts"() {
12
+ throw new Error(
13
+ "This module cannot be imported from a Server Component module. It should only be used from a Client Component."
14
+ );
15
+ }
16
+ });
17
+ var rscShim_global = require_rsc_shim();
18
+
19
+ return rscShim_global;
20
+
21
+ })();
package/dist/rsc-shim.js CHANGED
@@ -1 +1,18 @@
1
- "use strict";var e,o,r=Object.getOwnPropertyNames,t=(e={"src/rsc-shim.ts"(){throw new Error("This module cannot be imported from a Server Component module. It should only be used from a Client Component.")}},function(){return o||(0,e[r(e)[0]])((o={exports:{}}).exports,o),o.exports})();module.exports=t;
1
+ 'use strict';
2
+
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __commonJS = (cb, mod) => function __require() {
5
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
6
+ };
7
+
8
+ // src/rsc-shim.ts
9
+ var require_rsc_shim = __commonJS({
10
+ "src/rsc-shim.ts"() {
11
+ throw new Error(
12
+ "This module cannot be imported from a Server Component module. It should only be used from a Client Component."
13
+ );
14
+ }
15
+ });
16
+ var rscShim = require_rsc_shim();
17
+
18
+ module.exports = rscShim;
package/dist/rsc-shim.mjs CHANGED
@@ -1 +1,16 @@
1
- var e,o,r=Object.getOwnPropertyNames,t=(e={"src/rsc-shim.ts"(){throw new Error("This module cannot be imported from a Server Component module. It should only be used from a Client Component.")}},function(){return o||(0,e[r(e)[0]])((o={exports:{}}).exports,o),o.exports})();export{t as default};
1
+ var __getOwnPropNames = Object.getOwnPropertyNames;
2
+ var __commonJS = (cb, mod) => function __require() {
3
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
4
+ };
5
+
6
+ // src/rsc-shim.ts
7
+ var require_rsc_shim = __commonJS({
8
+ "src/rsc-shim.ts"() {
9
+ throw new Error(
10
+ "This module cannot be imported from a Server Component module. It should only be used from a Client Component."
11
+ );
12
+ }
13
+ });
14
+ var rscShim = require_rsc_shim();
15
+
16
+ export { rscShim as default };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bippy",
3
- "version": "0.0.9",
4
- "description": "a kitchen sink of utilities for working with react fiber",
3
+ "version": "0.0.12",
4
+ "description": "a hacky way to get fibers from react",
5
5
  "keywords": [
6
6
  "react",
7
7
  "react-instrumentation",
@@ -28,12 +28,10 @@
28
28
  ".": {
29
29
  "import": {
30
30
  "types": "./dist/index.d.mts",
31
- "react-server": "./dist/rsc-shim.mjs",
32
31
  "default": "./dist/index.mjs"
33
32
  },
34
33
  "require": {
35
34
  "types": "./dist/index.d.ts",
36
- "react-server": "./dist/rsc-shim.js",
37
35
  "default": "./dist/index.js"
38
36
  }
39
37
  },