bippy 0.0.14 → 0.0.16

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/LICENSE ADDED
@@ -0,0 +1,7 @@
1
+ Copyright 2024 Aiden Bai
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
4
+
5
+ The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
6
+
7
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -1,3 +1,14 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * @license bippy
5
+ *
6
+ * Copyright (c) Aiden Bai.
7
+ *
8
+ * This source code is licensed under the MIT license found in the
9
+ * LICENSE file in the root directory of this source tree.
10
+ */
11
+
1
12
  // src/index.ts
2
13
  var ClassComponentTag = 1;
3
14
  var FunctionComponentTag = 0;
@@ -102,7 +113,7 @@ var didFiberRender = (fiber) => {
102
113
  };
103
114
  var didFiberCommit = (fiber) => {
104
115
  return Boolean(
105
- fiber.subtreeFlags & (MutationMask | Cloned) || fiber.deletions != null || fiber.alternate == null
116
+ (fiber.flags & (Update | Placement | ChildDeletion)) !== 0 || (fiber.subtreeFlags & (Update | Placement | ChildDeletion)) !== 0
106
117
  );
107
118
  };
108
119
  var getMutatedHostFibers = (fiber) => {
@@ -111,7 +122,7 @@ var getMutatedHostFibers = (fiber) => {
111
122
  const traverse = (node) => {
112
123
  if (!node || visited.has(node)) return;
113
124
  visited.add(node);
114
- if (isHostFiber(node) && didFiberCommit(node.return ?? node) && didFiberRender(node)) {
125
+ if (isHostFiber(node) && didFiberCommit(node) && didFiberRender(node)) {
115
126
  mutations.push(node);
116
127
  }
117
128
  if (node.child) {
@@ -127,10 +138,14 @@ var getMutatedHostFibers = (fiber) => {
127
138
  var getFiberStack = (fiber) => {
128
139
  const stack = [];
129
140
  while (fiber.return) {
130
- stack.unshift(fiber);
141
+ stack.push(fiber);
131
142
  fiber = fiber.return;
132
143
  }
133
- return stack;
144
+ const newStack = new Array(stack.length);
145
+ for (let i = 0; i < stack.length; i++) {
146
+ newStack[i] = stack[stack.length - i - 1];
147
+ }
148
+ return newStack;
134
149
  };
135
150
  var shouldFilterFiber = (fiber) => {
136
151
  switch (fiber.tag) {
@@ -413,4 +428,59 @@ var instrument = ({
413
428
  return devtoolsHook;
414
429
  };
415
430
 
416
- 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 };
431
+ exports.CONCURRENT_MODE_NUMBER = CONCURRENT_MODE_NUMBER;
432
+ exports.CONCURRENT_MODE_SYMBOL_STRING = CONCURRENT_MODE_SYMBOL_STRING;
433
+ exports.ChildDeletion = ChildDeletion;
434
+ exports.ClassComponentTag = ClassComponentTag;
435
+ exports.Cloned = Cloned;
436
+ exports.ContentReset = ContentReset;
437
+ exports.ContextConsumerTag = ContextConsumerTag;
438
+ exports.DEPRECATED_ASYNC_MODE_SYMBOL_STRING = DEPRECATED_ASYNC_MODE_SYMBOL_STRING;
439
+ exports.DehydratedSuspenseComponent = DehydratedSuspenseComponent;
440
+ exports.DidCapture = DidCapture;
441
+ exports.ForwardRefTag = ForwardRefTag;
442
+ exports.Fragment = Fragment;
443
+ exports.FunctionComponentTag = FunctionComponentTag;
444
+ exports.HostComponentTag = HostComponentTag;
445
+ exports.HostHoistableTag = HostHoistableTag;
446
+ exports.HostRoot = HostRoot;
447
+ exports.HostSingletonTag = HostSingletonTag;
448
+ exports.HostText = HostText;
449
+ exports.Hydrating = Hydrating;
450
+ exports.LegacyHiddenComponent = LegacyHiddenComponent;
451
+ exports.MemoComponentTag = MemoComponentTag;
452
+ exports.MutationMask = MutationMask;
453
+ exports.OffscreenComponent = OffscreenComponent;
454
+ exports.OffscreenComponentTag = OffscreenComponentTag;
455
+ exports.PerformedWork = PerformedWork;
456
+ exports.Placement = Placement;
457
+ exports.Ref = Ref;
458
+ exports.SimpleMemoComponentTag = SimpleMemoComponentTag;
459
+ exports.Snapshot = Snapshot;
460
+ exports.SuspenseComponentTag = SuspenseComponentTag;
461
+ exports.Update = Update;
462
+ exports.Visibility = Visibility;
463
+ exports.createFiberVisitor = createFiberVisitor;
464
+ exports.didFiberCommit = didFiberCommit;
465
+ exports.didFiberRender = didFiberRender;
466
+ exports.getDisplayName = getDisplayName;
467
+ exports.getFiberStack = getFiberStack;
468
+ exports.getMutatedHostFibers = getMutatedHostFibers;
469
+ exports.getNearestHostFiber = getNearestHostFiber;
470
+ exports.getRDTHook = getRDTHook;
471
+ exports.getTimings = getTimings;
472
+ exports.getType = getType;
473
+ exports.hasMemoCache = hasMemoCache;
474
+ exports.instrument = instrument;
475
+ exports.isCompositeFiber = isCompositeFiber;
476
+ exports.isHostFiber = isHostFiber;
477
+ exports.isValidElement = isValidElement;
478
+ exports.mountFiberRecursively = mountFiberRecursively;
479
+ exports.shouldFilterFiber = shouldFilterFiber;
480
+ exports.traverseContexts = traverseContexts;
481
+ exports.traverseFiber = traverseFiber;
482
+ exports.traverseProps = traverseProps;
483
+ exports.traverseState = traverseState;
484
+ exports.unmountFiber = unmountFiber;
485
+ exports.unmountFiberChildrenRecursively = unmountFiberChildrenRecursively;
486
+ exports.updateFiberRecursively = updateFiberRecursively;
@@ -1,6 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { Fiber, FiberRoot } from 'react-reconciler';
3
3
 
4
+ interface ReactDevToolsGlobalHook {
5
+ checkDCE: () => void;
6
+ supportsFiber: boolean;
7
+ supportsFlight: boolean;
8
+ renderers: Map<number, unknown>;
9
+ onCommitFiberRoot: (rendererID: number, root: unknown) => void;
10
+ onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
11
+ onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
12
+ inject: (renderer: unknown) => number;
13
+ }
4
14
  declare const ClassComponentTag = 1;
5
15
  declare const FunctionComponentTag = 0;
6
16
  declare const ContextConsumerTag = 9;
@@ -52,7 +62,7 @@ declare const traverseProps: (fiber: Fiber, selector: (prevValue: unknown, nextV
52
62
  declare const didFiberRender: (fiber: Fiber) => boolean;
53
63
  declare const didFiberCommit: (fiber: Fiber) => boolean;
54
64
  declare const getMutatedHostFibers: (fiber: Fiber) => Array<Fiber>;
55
- declare const getFiberStack: (fiber: Fiber) => Fiber[];
65
+ declare const getFiberStack: (fiber: Fiber) => any[];
56
66
  declare const shouldFilterFiber: (fiber: Fiber) => boolean;
57
67
  declare const getNearestHostFiber: (fiber: Fiber) => Fiber | null;
58
68
  declare const traverseFiber: (fiber: Fiber | null, selector: (node: Fiber) => boolean | void, ascending?: boolean) => Fiber | null;
@@ -63,16 +73,7 @@ declare const getTimings: (fiber?: Fiber | null | undefined) => {
63
73
  declare const hasMemoCache: (fiber: Fiber) => boolean;
64
74
  declare const getType: (type: any) => any;
65
75
  declare const getDisplayName: (type: any) => string | null;
66
- declare const getRDTHook: () => {
67
- checkDCE: () => void;
68
- supportsFiber: boolean;
69
- supportsFlight: boolean;
70
- renderers: Map<number, unknown>;
71
- onCommitFiberRoot: (rendererID: number, root: unknown) => void;
72
- onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
73
- onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
74
- inject: (renderer: unknown) => number;
75
- };
76
+ declare const getRDTHook: () => ReactDevToolsGlobalHook;
76
77
  type RenderHandler = <S>(fiber: Fiber, phase: 'mount' | 'update' | 'unmount', state?: S) => void;
77
78
  declare const mountFiberRecursively: (onRender: RenderHandler, firstChild: Fiber, traverseSiblings: boolean) => void;
78
79
  declare const updateFiberRecursively: (onRender: RenderHandler, nextFiber: Fiber, prevFiber: Fiber, parentFiber: Fiber | null) => void;
@@ -86,15 +87,6 @@ declare const instrument: ({ onCommitFiberRoot, onCommitFiberUnmount, onPostComm
86
87
  onCommitFiberRoot?: (rendererID: number, root: FiberRoot) => void;
87
88
  onCommitFiberUnmount?: (rendererID: number, root: FiberRoot) => void;
88
89
  onPostCommitFiberRoot?: (rendererID: number, root: FiberRoot) => void;
89
- }) => {
90
- checkDCE: () => void;
91
- supportsFiber: boolean;
92
- supportsFlight: boolean;
93
- renderers: Map<number, unknown>;
94
- onCommitFiberRoot: (rendererID: number, root: unknown) => void;
95
- onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
96
- onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
97
- inject: (renderer: unknown) => number;
98
- };
90
+ }) => ReactDevToolsGlobalHook;
99
91
 
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 };
92
+ export { CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ChildDeletion, ClassComponentTag, Cloned, ContentReset, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponent, DidCapture, ForwardRefTag, Fragment, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRoot, HostSingletonTag, HostText, Hydrating, LegacyHiddenComponent, MemoComponentTag, MutationMask, OffscreenComponent, OffscreenComponentTag, PerformedWork, Placement, type ReactDevToolsGlobalHook, Ref, SimpleMemoComponentTag, Snapshot, SuspenseComponentTag, Update, Visibility, createFiberVisitor, didFiberCommit, didFiberRender, getDisplayName, getFiberStack, getMutatedHostFibers, getNearestHostFiber, getRDTHook, getTimings, getType, hasMemoCache, instrument, isCompositeFiber, isHostFiber, isValidElement, mountFiberRecursively, shouldFilterFiber, traverseContexts, traverseFiber, traverseProps, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively };
package/dist/index.d.ts CHANGED
@@ -1,6 +1,16 @@
1
1
  import * as React from 'react';
2
2
  import { Fiber, FiberRoot } from 'react-reconciler';
3
3
 
4
+ interface ReactDevToolsGlobalHook {
5
+ checkDCE: () => void;
6
+ supportsFiber: boolean;
7
+ supportsFlight: boolean;
8
+ renderers: Map<number, unknown>;
9
+ onCommitFiberRoot: (rendererID: number, root: unknown) => void;
10
+ onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
11
+ onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
12
+ inject: (renderer: unknown) => number;
13
+ }
4
14
  declare const ClassComponentTag = 1;
5
15
  declare const FunctionComponentTag = 0;
6
16
  declare const ContextConsumerTag = 9;
@@ -52,7 +62,7 @@ declare const traverseProps: (fiber: Fiber, selector: (prevValue: unknown, nextV
52
62
  declare const didFiberRender: (fiber: Fiber) => boolean;
53
63
  declare const didFiberCommit: (fiber: Fiber) => boolean;
54
64
  declare const getMutatedHostFibers: (fiber: Fiber) => Array<Fiber>;
55
- declare const getFiberStack: (fiber: Fiber) => Fiber[];
65
+ declare const getFiberStack: (fiber: Fiber) => any[];
56
66
  declare const shouldFilterFiber: (fiber: Fiber) => boolean;
57
67
  declare const getNearestHostFiber: (fiber: Fiber) => Fiber | null;
58
68
  declare const traverseFiber: (fiber: Fiber | null, selector: (node: Fiber) => boolean | void, ascending?: boolean) => Fiber | null;
@@ -63,16 +73,7 @@ declare const getTimings: (fiber?: Fiber | null | undefined) => {
63
73
  declare const hasMemoCache: (fiber: Fiber) => boolean;
64
74
  declare const getType: (type: any) => any;
65
75
  declare const getDisplayName: (type: any) => string | null;
66
- declare const getRDTHook: () => {
67
- checkDCE: () => void;
68
- supportsFiber: boolean;
69
- supportsFlight: boolean;
70
- renderers: Map<number, unknown>;
71
- onCommitFiberRoot: (rendererID: number, root: unknown) => void;
72
- onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
73
- onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
74
- inject: (renderer: unknown) => number;
75
- };
76
+ declare const getRDTHook: () => ReactDevToolsGlobalHook;
76
77
  type RenderHandler = <S>(fiber: Fiber, phase: 'mount' | 'update' | 'unmount', state?: S) => void;
77
78
  declare const mountFiberRecursively: (onRender: RenderHandler, firstChild: Fiber, traverseSiblings: boolean) => void;
78
79
  declare const updateFiberRecursively: (onRender: RenderHandler, nextFiber: Fiber, prevFiber: Fiber, parentFiber: Fiber | null) => void;
@@ -86,15 +87,6 @@ declare const instrument: ({ onCommitFiberRoot, onCommitFiberUnmount, onPostComm
86
87
  onCommitFiberRoot?: (rendererID: number, root: FiberRoot) => void;
87
88
  onCommitFiberUnmount?: (rendererID: number, root: FiberRoot) => void;
88
89
  onPostCommitFiberRoot?: (rendererID: number, root: FiberRoot) => void;
89
- }) => {
90
- checkDCE: () => void;
91
- supportsFiber: boolean;
92
- supportsFlight: boolean;
93
- renderers: Map<number, unknown>;
94
- onCommitFiberRoot: (rendererID: number, root: unknown) => void;
95
- onCommitFiberUnmount: (rendererID: number, root: unknown) => void;
96
- onPostCommitFiberRoot: (rendererID: number, root: unknown) => void;
97
- inject: (renderer: unknown) => number;
98
- };
90
+ }) => ReactDevToolsGlobalHook;
99
91
 
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 };
92
+ export { CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ChildDeletion, ClassComponentTag, Cloned, ContentReset, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponent, DidCapture, ForwardRefTag, Fragment, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRoot, HostSingletonTag, HostText, Hydrating, LegacyHiddenComponent, MemoComponentTag, MutationMask, OffscreenComponent, OffscreenComponentTag, PerformedWork, Placement, type ReactDevToolsGlobalHook, Ref, SimpleMemoComponentTag, Snapshot, SuspenseComponentTag, Update, Visibility, createFiberVisitor, didFiberCommit, didFiberRender, getDisplayName, getFiberStack, getMutatedHostFibers, getNearestHostFiber, getRDTHook, getTimings, getType, hasMemoCache, instrument, isCompositeFiber, isHostFiber, isValidElement, mountFiberRecursively, shouldFilterFiber, traverseContexts, traverseFiber, traverseProps, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively };
@@ -1 +1,9 @@
1
- var Bippy=(function(exports){'use strict';var w=1,H=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,T="Symbol(react.concurrent_mode)",R="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,o)=>{try{let n=e.dependencies,t=e.alternate?.dependencies;if(!n||!t||typeof n!="object"||!("firstContext"in n)||typeof t!="object"||!("firstContext"in t))return !1;let r=n.firstContext,i=t.firstContext;for(;r&&typeof r=="object"&&"memoizedValue"in r&&i&&typeof i=="object"&&"memoizedValue"in i;){if(o(r,i)===!0)return !0;r=r.next,i=i.next;}}catch{}return !1},ie=(e,o)=>{try{let n=e.memoizedState,t=e.alternate?.memoizedState;for(;n&&t;){if(o(n,t)===!0)return !0;n=n.next,t=t.next;}}catch{}return !1},se=(e,o)=>{try{let n=e.memoizedProps,t=e.alternate?.memoizedProps||{};for(let r in {...t,...n}){let i=t?.[r],s=n?.[r];if(o(i,s)===!0)return !0}}catch{}return !1},f=e=>{let o=e.memoizedProps,n=e.alternate?.memoizedProps||{},t=e.flags??e.effectTag??0;switch(e.tag){case 1:case 0:case 9:case 11:case 14:case 15:return (t&1)===1;default:return e.alternate?n!==o||e.alternate.memoizedState!==e.memoizedState||e.alternate.ref!==e.ref:!0}},v=e=>!!(e.subtreeFlags&13374||e.deletions!=null||e.alternate==null),ae=e=>{let o=[],n=new WeakSet,t=r=>{!r||n.has(r)||(n.add(r),d(r)&&v(r.return??r)&&f(r)&&o.push(r),r.child&&t(r.child),r.sibling&&t(r.sibling));};return t(e),o},ue=e=>{let o=[];for(;e.return;)o.unshift(e),e=e.return;return o},g=e=>{switch(e.tag){case 18:return !0;case 6:case 7:case 23:case 22:return !0;case 3:return !1;default:{let o=typeof e.type=="object"&&e.type!==null?e.type.$$typeof:e.type;switch(typeof o=="symbol"?o.toString():o){case 60111:case T:case R:return !0;default:return !1}}}},ce=e=>{let o=C(e,d);return o||(o=C(e,d,!0)),o},C=(e,o,n=!1)=>{if(!e)return null;if(o(e)===!0)return e;let t=n?e.return:e.child;for(;t;){let r=C(t,o,n);if(r)return r;t=n?null:t.sibling;}return null},me=e=>{let o=e?.actualDuration??0,n=o,t=e?.child??null;for(;o>0&&t!=null;)n-=t.actualDuration??0,t=t.sibling;return {selfTime:n,totalTime:o}},pe=e=>!!e.updateQueue?.memoCache,F=e=>typeof e=="function"?e:typeof e=="object"&&e?F(e.type||e.render):null,de=e=>{if(typeof e!="function"&&!(typeof e=="object"&&e))return null;let o=e.displayName||e.name||null;return o||(e=F(e),e&&(e.displayName||e.name)||null)},p=()=>{},x=()=>{let e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__,o=new Map,n=0;e??={checkDCE:p,supportsFiber:!0,supportsFlight:!0,renderers:o,onCommitFiberRoot:p,onCommitFiberUnmount:p,onPostCommitFiberRoot:p,inject(t){let r=++n;return o.set(r,t),r}};try{globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=e;}catch{}return e};typeof window<"u"&&x();var c=(e,o,n)=>{let t=o;for(;t!=null;){if(!g(t)&&f(t)&&e(t,"mount"),t.tag===13)if(t.memoizedState!==null){let s=t.child,a=s?s.sibling:null;if(a){let l=a.child;l!==null&&c(e,l,!1);}}else {let s=null;t.child!==null&&(s=t.child.child),s!==null&&c(e,s,!1);}else t.child!=null&&c(e,t.child,!0);t=n?t.sibling:null;}},b=(e,o,n,t)=>{if(!n)return;let r=o.tag===13,i=!g(o);i&&f(o)&&e(o,"update");let s=r&&n.memoizedState!==null,a=r&&o.memoizedState!==null;if(s&&a){let l=o.child?.sibling??null,u=n.child?.sibling??null;l!==null&&u!==null&&b(e,l,u);}else if(s&&!a){let l=o.child;l!==null&&c(e,l,!0);}else if(!s&&a){y(e,n);let l=o.child?.sibling??null;l!==null&&c(e,l,!0);}else if(o.child!==n.child){let l=o.child;for(;l;){if(l.alternate){let u=l.alternate;b(e,l,u);}else c(e,l,!1);l=l.sibling;}}},S=(e,o)=>{(o.tag===3||!g(o))&&e(o,"unmount");},y=(e,o)=>{let n=o.tag===13&&o.memoizedState!==null,t=o.child;for(n&&(t=(o.child?.sibling??null)?.child??null);t!==null;)t.return!==null&&(S(e,t),y(e,t)),t=t.sibling;},O=0,h=new WeakMap,Ce=({onRender:e,onError:o})=>(n,t,r)=>{let i=t.current,s=(u,m)=>e(u,m,r),a=h.get(t);a||(a={prevFiber:null,id:O++},h.set(t,a));let{prevFiber:l}=a;try{if(l!==null){let u=l&&l.memoizedState!=null&&l.memoizedState.element!=null&&l.memoizedState.isDehydrated!==!0,m=i.memoizedState!=null&&i.memoizedState.element!=null&&i.memoizedState.isDehydrated!==!0;!u&&m?c(s,i,!1):u&&m?b(s,i,i.alternate,null):u&&!m&&S(s,i);}else c(s,i,!1);}catch(u){if(o)o(u);else throw u}a.prevFiber=i;},be=({onCommitFiberRoot:e,onCommitFiberUnmount:o,onPostCommitFiberRoot:n})=>{let t=x(),r=t.onCommitFiberRoot;e&&(t.onCommitFiberRoot=(a,l)=>{r&&r(a,l),e(a,l);});let i=t.onCommitFiberUnmount;o&&(t.onCommitFiberUnmount=(a,l)=>{i&&i(a,l),o(a,l);});let s=t.onPostCommitFiberRoot;return n&&(t.onPostCommitFiberRoot=(a,l)=>{s&&s(a,l);}),t};exports.CONCURRENT_MODE_NUMBER=W;exports.CONCURRENT_MODE_SYMBOL_STRING=T;exports.ChildDeletion=J;exports.ClassComponentTag=w;exports.Cloned=q;exports.ContentReset=X;exports.ContextConsumerTag=k;exports.DEPRECATED_ASYNC_MODE_SYMBOL_STRING=R;exports.DehydratedSuspenseComponent=I;exports.DidCapture=Y;exports.ForwardRefTag=M;exports.Fragment=L;exports.FunctionComponentTag=H;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=Ce;exports.didFiberCommit=v;exports.didFiberRender=f;exports.getDisplayName=de;exports.getFiberStack=ue;exports.getMutatedHostFibers=ae;exports.getNearestHostFiber=ce;exports.getRDTHook=x;exports.getTimings=me;exports.getType=F;exports.hasMemoCache=pe;exports.instrument=be;exports.isCompositeFiber=re;exports.isHostFiber=d;exports.isValidElement=ne;exports.mountFiberRecursively=c;exports.shouldFilterFiber=g;exports.traverseContexts=le;exports.traverseFiber=C;exports.traverseProps=se;exports.traverseState=ie;exports.unmountFiber=S;exports.unmountFiberChildrenRecursively=y;exports.updateFiberRecursively=b;return exports;})({});
1
+ var Bippy=(function(exports){'use strict';/**
2
+ * @license bippy
3
+ *
4
+ * Copyright (c) Aiden Bai.
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
+ var k=1,D=0,O=9,H=13,_=22,P=11,z=14,M=15,E=5,N=26,V=27,I=18,U=6,j=7,A=23,L=22,B=3,W=60111,T="Symbol(react.concurrent_mode)",R="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,ie=(e,o)=>{try{let n=e.dependencies,t=e.alternate?.dependencies;if(!n||!t||typeof n!="object"||!("firstContext"in n)||typeof t!="object"||!("firstContext"in t))return !1;let r=n.firstContext,l=t.firstContext;for(;r&&typeof r=="object"&&"memoizedValue"in r&&l&&typeof l=="object"&&"memoizedValue"in l;){if(o(r,l)===!0)return !0;r=r.next,l=l.next;}}catch{}return !1},le=(e,o)=>{try{let n=e.memoizedState,t=e.alternate?.memoizedState;for(;n&&t;){if(o(n,t)===!0)return !0;n=n.next,t=t.next;}}catch{}return !1},se=(e,o)=>{try{let n=e.memoizedProps,t=e.alternate?.memoizedProps||{};for(let r in {...t,...n}){let l=t?.[r],s=n?.[r];if(o(l,s)===!0)return !0}}catch{}return !1},f=e=>{let o=e.memoizedProps,n=e.alternate?.memoizedProps||{},t=e.flags??e.effectTag??0;switch(e.tag){case 1:case 0:case 9:case 11:case 14:case 15:return (t&1)===1;default:return e.alternate?n!==o||e.alternate.memoizedState!==e.memoizedState||e.alternate.ref!==e.ref:!0}},v=e=>!!(e.flags&22||e.subtreeFlags&22),ae=e=>{let o=[],n=new WeakSet,t=r=>{!r||n.has(r)||(n.add(r),d(r)&&v(r)&&f(r)&&o.push(r),r.child&&t(r.child),r.sibling&&t(r.sibling));};return t(e),o},ue=e=>{let o=[];for(;e.return;)o.push(e),e=e.return;let n=new Array(o.length);for(let t=0;t<o.length;t++)n[t]=o[o.length-t-1];return n},g=e=>{switch(e.tag){case 18:return !0;case 6:case 7:case 23:case 22:return !0;case 3:return !1;default:{let o=typeof e.type=="object"&&e.type!==null?e.type.$$typeof:e.type;switch(typeof o=="symbol"?o.toString():o){case 60111:case T:case R:return !0;default:return !1}}}},ce=e=>{let o=b(e,d);return o||(o=b(e,d,!0)),o},b=(e,o,n=!1)=>{if(!e)return null;if(o(e)===!0)return e;let t=n?e.return:e.child;for(;t;){let r=b(t,o,n);if(r)return r;t=n?null:t.sibling;}return null},me=e=>{let o=e?.actualDuration??0,n=o,t=e?.child??null;for(;o>0&&t!=null;)n-=t.actualDuration??0,t=t.sibling;return {selfTime:n,totalTime:o}},pe=e=>!!e.updateQueue?.memoCache,F=e=>typeof e=="function"?e:typeof e=="object"&&e?F(e.type||e.render):null,de=e=>{if(typeof e!="function"&&!(typeof e=="object"&&e))return null;let o=e.displayName||e.name||null;return o||(e=F(e),e&&(e.displayName||e.name)||null)},p=()=>{},x=()=>{let e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__,o=new Map,n=0;e??={checkDCE:p,supportsFiber:!0,supportsFlight:!0,renderers:o,onCommitFiberRoot:p,onCommitFiberUnmount:p,onPostCommitFiberRoot:p,inject(t){let r=++n;return o.set(r,t),r}};try{globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=e;}catch{}return e};typeof window<"u"&&x();var c=(e,o,n)=>{let t=o;for(;t!=null;){if(!g(t)&&f(t)&&e(t,"mount"),t.tag===13)if(t.memoizedState!==null){let s=t.child,a=s?s.sibling:null;if(a){let i=a.child;i!==null&&c(e,i,!1);}}else {let s=null;t.child!==null&&(s=t.child.child),s!==null&&c(e,s,!1);}else t.child!=null&&c(e,t.child,!0);t=n?t.sibling:null;}},C=(e,o,n,t)=>{if(!n)return;let r=o.tag===13,l=!g(o);l&&f(o)&&e(o,"update");let s=r&&n.memoizedState!==null,a=r&&o.memoizedState!==null;if(s&&a){let i=o.child?.sibling??null,u=n.child?.sibling??null;i!==null&&u!==null&&C(e,i,u);}else if(s&&!a){let i=o.child;i!==null&&c(e,i,!0);}else if(!s&&a){y(e,n);let i=o.child?.sibling??null;i!==null&&c(e,i,!0);}else if(o.child!==n.child){let i=o.child;for(;i;){if(i.alternate){let u=i.alternate;C(e,i,u);}else c(e,i,!1);i=i.sibling;}}},S=(e,o)=>{(o.tag===3||!g(o))&&e(o,"unmount");},y=(e,o)=>{let n=o.tag===13&&o.memoizedState!==null,t=o.child;for(n&&(t=(o.child?.sibling??null)?.child??null);t!==null;)t.return!==null&&(S(e,t),y(e,t)),t=t.sibling;},w=0,h=new WeakMap,be=({onRender:e,onError:o})=>(n,t,r)=>{let l=t.current,s=(u,m)=>e(u,m,r),a=h.get(t);a||(a={prevFiber:null,id:w++},h.set(t,a));let{prevFiber:i}=a;try{if(i!==null){let u=i&&i.memoizedState!=null&&i.memoizedState.element!=null&&i.memoizedState.isDehydrated!==!0,m=l.memoizedState!=null&&l.memoizedState.element!=null&&l.memoizedState.isDehydrated!==!0;!u&&m?c(s,l,!1):u&&m?C(s,l,l.alternate,null):u&&!m&&S(s,l);}else c(s,l,!1);}catch(u){if(o)o(u);else throw u}a.prevFiber=l;},Ce=({onCommitFiberRoot:e,onCommitFiberUnmount:o,onPostCommitFiberRoot:n})=>{let t=x(),r=t.onCommitFiberRoot;e&&(t.onCommitFiberRoot=(a,i)=>{r&&r(a,i),e(a,i);});let l=t.onCommitFiberUnmount;o&&(t.onCommitFiberUnmount=(a,i)=>{l&&l(a,i),o(a,i);});let s=t.onPostCommitFiberRoot;return n&&(t.onPostCommitFiberRoot=(a,i)=>{s&&s(a,i);}),t};exports.CONCURRENT_MODE_NUMBER=W;exports.CONCURRENT_MODE_SYMBOL_STRING=T;exports.ChildDeletion=J;exports.ClassComponentTag=k;exports.Cloned=q;exports.ContentReset=X;exports.ContextConsumerTag=O;exports.DEPRECATED_ASYNC_MODE_SYMBOL_STRING=R;exports.DehydratedSuspenseComponent=I;exports.DidCapture=Y;exports.ForwardRefTag=P;exports.Fragment=j;exports.FunctionComponentTag=D;exports.HostComponentTag=E;exports.HostHoistableTag=N;exports.HostRoot=B;exports.HostSingletonTag=V;exports.HostText=U;exports.Hydrating=K;exports.LegacyHiddenComponent=A;exports.MemoComponentTag=z;exports.MutationMask=oe;exports.OffscreenComponent=L;exports.OffscreenComponentTag=_;exports.PerformedWork=$;exports.Placement=G;exports.Ref=Z;exports.SimpleMemoComponentTag=M;exports.Snapshot=ee;exports.SuspenseComponentTag=H;exports.Update=Q;exports.Visibility=te;exports.createFiberVisitor=be;exports.didFiberCommit=v;exports.didFiberRender=f;exports.getDisplayName=de;exports.getFiberStack=ue;exports.getMutatedHostFibers=ae;exports.getNearestHostFiber=ce;exports.getRDTHook=x;exports.getTimings=me;exports.getType=F;exports.hasMemoCache=pe;exports.instrument=Ce;exports.isCompositeFiber=re;exports.isHostFiber=d;exports.isValidElement=ne;exports.mountFiberRecursively=c;exports.shouldFilterFiber=g;exports.traverseContexts=ie;exports.traverseFiber=b;exports.traverseProps=se;exports.traverseState=le;exports.unmountFiber=S;exports.unmountFiberChildrenRecursively=y;exports.updateFiberRecursively=C;return exports;})({});
package/dist/index.js CHANGED
@@ -1,4 +1,11 @@
1
- 'use strict';
1
+ /**
2
+ * @license bippy
3
+ *
4
+ * Copyright (c) Aiden Bai.
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
+ */
2
9
 
3
10
  // src/index.ts
4
11
  var ClassComponentTag = 1;
@@ -104,7 +111,7 @@ var didFiberRender = (fiber) => {
104
111
  };
105
112
  var didFiberCommit = (fiber) => {
106
113
  return Boolean(
107
- fiber.subtreeFlags & (MutationMask | Cloned) || fiber.deletions != null || fiber.alternate == null
114
+ (fiber.flags & (Update | Placement | ChildDeletion)) !== 0 || (fiber.subtreeFlags & (Update | Placement | ChildDeletion)) !== 0
108
115
  );
109
116
  };
110
117
  var getMutatedHostFibers = (fiber) => {
@@ -113,7 +120,7 @@ var getMutatedHostFibers = (fiber) => {
113
120
  const traverse = (node) => {
114
121
  if (!node || visited.has(node)) return;
115
122
  visited.add(node);
116
- if (isHostFiber(node) && didFiberCommit(node.return ?? node) && didFiberRender(node)) {
123
+ if (isHostFiber(node) && didFiberCommit(node) && didFiberRender(node)) {
117
124
  mutations.push(node);
118
125
  }
119
126
  if (node.child) {
@@ -129,10 +136,14 @@ var getMutatedHostFibers = (fiber) => {
129
136
  var getFiberStack = (fiber) => {
130
137
  const stack = [];
131
138
  while (fiber.return) {
132
- stack.unshift(fiber);
139
+ stack.push(fiber);
133
140
  fiber = fiber.return;
134
141
  }
135
- return stack;
142
+ const newStack = new Array(stack.length);
143
+ for (let i = 0; i < stack.length; i++) {
144
+ newStack[i] = stack[stack.length - i - 1];
145
+ }
146
+ return newStack;
136
147
  };
137
148
  var shouldFilterFiber = (fiber) => {
138
149
  switch (fiber.tag) {
@@ -415,59 +426,4 @@ var instrument = ({
415
426
  return devtoolsHook;
416
427
  };
417
428
 
418
- exports.CONCURRENT_MODE_NUMBER = CONCURRENT_MODE_NUMBER;
419
- exports.CONCURRENT_MODE_SYMBOL_STRING = CONCURRENT_MODE_SYMBOL_STRING;
420
- exports.ChildDeletion = ChildDeletion;
421
- exports.ClassComponentTag = ClassComponentTag;
422
- exports.Cloned = Cloned;
423
- exports.ContentReset = ContentReset;
424
- exports.ContextConsumerTag = ContextConsumerTag;
425
- exports.DEPRECATED_ASYNC_MODE_SYMBOL_STRING = DEPRECATED_ASYNC_MODE_SYMBOL_STRING;
426
- exports.DehydratedSuspenseComponent = DehydratedSuspenseComponent;
427
- exports.DidCapture = DidCapture;
428
- exports.ForwardRefTag = ForwardRefTag;
429
- exports.Fragment = Fragment;
430
- exports.FunctionComponentTag = FunctionComponentTag;
431
- exports.HostComponentTag = HostComponentTag;
432
- exports.HostHoistableTag = HostHoistableTag;
433
- exports.HostRoot = HostRoot;
434
- exports.HostSingletonTag = HostSingletonTag;
435
- exports.HostText = HostText;
436
- exports.Hydrating = Hydrating;
437
- exports.LegacyHiddenComponent = LegacyHiddenComponent;
438
- exports.MemoComponentTag = MemoComponentTag;
439
- exports.MutationMask = MutationMask;
440
- exports.OffscreenComponent = OffscreenComponent;
441
- exports.OffscreenComponentTag = OffscreenComponentTag;
442
- exports.PerformedWork = PerformedWork;
443
- exports.Placement = Placement;
444
- exports.Ref = Ref;
445
- exports.SimpleMemoComponentTag = SimpleMemoComponentTag;
446
- exports.Snapshot = Snapshot;
447
- exports.SuspenseComponentTag = SuspenseComponentTag;
448
- exports.Update = Update;
449
- exports.Visibility = Visibility;
450
- exports.createFiberVisitor = createFiberVisitor;
451
- exports.didFiberCommit = didFiberCommit;
452
- exports.didFiberRender = didFiberRender;
453
- exports.getDisplayName = getDisplayName;
454
- exports.getFiberStack = getFiberStack;
455
- exports.getMutatedHostFibers = getMutatedHostFibers;
456
- exports.getNearestHostFiber = getNearestHostFiber;
457
- exports.getRDTHook = getRDTHook;
458
- exports.getTimings = getTimings;
459
- exports.getType = getType;
460
- exports.hasMemoCache = hasMemoCache;
461
- exports.instrument = instrument;
462
- exports.isCompositeFiber = isCompositeFiber;
463
- exports.isHostFiber = isHostFiber;
464
- exports.isValidElement = isValidElement;
465
- exports.mountFiberRecursively = mountFiberRecursively;
466
- exports.shouldFilterFiber = shouldFilterFiber;
467
- exports.traverseContexts = traverseContexts;
468
- exports.traverseFiber = traverseFiber;
469
- exports.traverseProps = traverseProps;
470
- exports.traverseState = traverseState;
471
- exports.unmountFiber = unmountFiber;
472
- exports.unmountFiberChildrenRecursively = unmountFiberChildrenRecursively;
473
- exports.updateFiberRecursively = updateFiberRecursively;
429
+ 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,3 +1,14 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * @license bippy
5
+ *
6
+ * Copyright (c) Aiden Bai.
7
+ *
8
+ * This source code is licensed under the MIT license found in the
9
+ * LICENSE file in the root directory of this source tree.
10
+ */
11
+
1
12
  // src/index.ts
2
13
  var ClassComponentTag = 1;
3
14
  var FunctionComponentTag = 0;
@@ -202,4 +213,8 @@ var isElementInViewport = (el) => {
202
213
  return elTop + elHeight > top && elLeft + elWidth > left && elTop < bottom && elLeft < right;
203
214
  };
204
215
 
205
- export { getFPS, getFiberRenderScore, getWindowDimensions, isElementInViewport, isElementVisible };
216
+ exports.getFPS = getFPS;
217
+ exports.getFiberRenderScore = getFiberRenderScore;
218
+ exports.getWindowDimensions = getWindowDimensions;
219
+ exports.isElementInViewport = isElementInViewport;
220
+ exports.isElementVisible = isElementVisible;
package/dist/score.js CHANGED
@@ -1,4 +1,11 @@
1
- 'use strict';
1
+ /**
2
+ * @license bippy
3
+ *
4
+ * Copyright (c) Aiden Bai.
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
+ */
2
9
 
3
10
  // src/index.ts
4
11
  var ClassComponentTag = 1;
@@ -204,8 +211,4 @@ var isElementInViewport = (el) => {
204
211
  return elTop + elHeight > top && elLeft + elWidth > left && elTop < bottom && elLeft < right;
205
212
  };
206
213
 
207
- exports.getFPS = getFPS;
208
- exports.getFiberRenderScore = getFiberRenderScore;
209
- exports.getWindowDimensions = getWindowDimensions;
210
- exports.isElementInViewport = isElementInViewport;
211
- exports.isElementVisible = isElementVisible;
214
+ export { getFPS, getFiberRenderScore, getWindowDimensions, isElementInViewport, isElementVisible };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bippy",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "a hacky way to get fibers from react",
5
5
  "keywords": [
6
6
  "react",
@@ -22,35 +22,26 @@
22
22
  "name": "Aiden Bai",
23
23
  "email": "aiden@million.dev"
24
24
  },
25
- "type": "commonjs",
25
+ "type": "module",
26
26
  "exports": {
27
27
  "./package.json": "./package.json",
28
28
  ".": {
29
29
  "import": {
30
- "types": "./dist/index.d.mts",
31
- "default": "./dist/index.mjs"
32
- },
33
- "require": {
34
30
  "types": "./dist/index.d.ts",
35
31
  "default": "./dist/index.js"
36
- }
37
- },
38
- "./score": {
39
- "import": {
40
- "types": "./dist/score.d.mts",
41
- "default": "./dist/score.mjs"
42
32
  },
43
33
  "require": {
44
- "types": "./dist/score.d.ts",
45
- "default": "./dist/score.js"
34
+ "types": "./dist/index.d.cts",
35
+ "default": "./dist/index.cjs"
46
36
  }
47
37
  },
48
38
  "./dist/*": "./dist/*.js",
49
39
  "./dist/*.js": "./dist/*.js",
40
+ "./dist/*.cjs": "./dist/*.cjs",
50
41
  "./dist/*.mjs": "./dist/*.mjs"
51
42
  },
52
43
  "main": "dist/index.js",
53
- "module": "dist/index.mjs",
44
+ "module": "dist/index.js",
54
45
  "types": "dist/index.d.ts",
55
46
  "files": [
56
47
  "dist",
@@ -64,20 +55,26 @@
64
55
  "dev": "NODE_ENV=development tsup --watch",
65
56
  "lint": "eslint 'src/**/*.{ts,tsx}' --fix",
66
57
  "prettier": "prettier --config .prettierrc.mjs -w src",
67
- "publint": "publint"
58
+ "publint": "publint",
59
+ "test": "vitest --dom",
60
+ "test:watch": "vitest --dom --watch"
68
61
  },
69
62
  "devDependencies": {
63
+ "@testing-library/react": "^16.1.0",
70
64
  "@types/react": "^18.3.12",
65
+ "@types/react-dom": "^19.0.2",
71
66
  "@types/react-reconciler": "^0.28.8",
72
67
  "@vercel/style-guide": "^6.0.0",
73
68
  "eslint": "^8.57.1",
69
+ "happy-dom": "^15.11.7",
74
70
  "prettier": "^3.3.3",
75
71
  "publint": "^0.2.12",
76
72
  "react": "*",
77
73
  "react-dom": "*",
78
74
  "react-reconciler": "^0.29.2",
79
75
  "terser": "^5.36.0",
80
- "tsup": "^8.2.4"
76
+ "tsup": "^8.2.4",
77
+ "vitest": "^2.1.8"
81
78
  },
82
79
  "publishConfig": {
83
80
  "access": "public"
File without changes