bippy
Version:
hack into react internals
9 lines • 11.8 kB
JavaScript
/**
* @license bippy
*
* Copyright (c) Aiden Bai
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var Bippy=function(exports){let t=`0.3.17`,n=`bippy-${t}`,r=Object.defineProperty,i=Object.prototype.hasOwnProperty,a=()=>{},o=e=>{try{let t=Function.prototype.toString.call(e);t.indexOf(`^_^`)>-1&&setTimeout(()=>{throw Error(`React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build`)})}catch{}},s=(e=g())=>`getFiberRoots`in e,c=!1,l,u=(e=g())=>c?!0:(typeof e.inject==`function`&&(l=e.inject.toString()),!!l?.includes(`(injected)`)),d=new Set,f=new Set,p=e=>{let t=new Map,i=0,s={checkDCE:o,supportsFiber:!0,supportsFlight:!0,hasUnsupportedRendererAttached:!1,renderers:t,onCommitFiberRoot:a,onCommitFiberUnmount:a,onPostCommitFiberRoot:a,inject(e){let n=++i;return t.set(n,e),f.add(e),s._instrumentationIsActive||(s._instrumentationIsActive=!0,d.forEach(e=>e())),n},_instrumentationSource:n,_instrumentationIsActive:!1};try{r(globalThis,`__REACT_DEVTOOLS_GLOBAL_HOOK__`,{get(){return s},set(t){if(t&&typeof t==`object`){let n=s.renderers;s=t,n.size>0&&(n.forEach((e,n)=>{f.add(e),t.renderers.set(n,e)}),m(e))}},configurable:!0,enumerable:!0});let t=window.hasOwnProperty,n=!1;r(window,`hasOwnProperty`,{value:function(){try{if(!n&&arguments[0]===`__REACT_DEVTOOLS_GLOBAL_HOOK__`)return globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=void 0,n=!0,-0}catch{}return t.apply(this,arguments)},configurable:!0,writable:!0})}catch{m(e)}return s},m=e=>{e&&d.add(e);try{let t=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!t)return;if(!t._instrumentationSource){if(t.checkDCE=o,t.supportsFiber=!0,t.supportsFlight=!0,t.hasUnsupportedRendererAttached=!1,t._instrumentationSource=n,t._instrumentationIsActive=!1,t.renderers.size){t._instrumentationIsActive=!0,d.forEach(e=>e());return}let e=t.inject;if(u(t)&&!s()){c=!0;let e=t.inject({scheduleRefresh(){}});e&&(t._instrumentationIsActive=!0)}t.inject=n=>{let r=e(n);return f.add(n),t._instrumentationIsActive=!0,d.forEach(e=>e()),r}}(t.renderers.size||t._instrumentationIsActive||u())&&e?.()}catch{}},h=()=>i.call(globalThis,`__REACT_DEVTOOLS_GLOBAL_HOOK__`),g=e=>h()?(m(e),globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__):p(e),_=()=>!!(typeof window<`u`&&(window.document?.createElement||window.navigator?.product===`ReactNative`)),v=()=>{try{_()&&g()}catch{}},ee=`(()=>{try{var t=()=>{};const n=new Map;let o=0;globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__={checkDCE:t,supportsFiber:!0,supportsFlight:!0,hasUnsupportedRendererAttached:!1,renderers:n,onCommitFiberRoot:t,onCommitFiberUnmount:t,onPostCommitFiberRoot:t,inject(t){var e=++o;return n.set(e,t),globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__._instrumentationIsActive=!0,e},_instrumentationIsActive:!1,_script:!0}}catch{}})()`,y=0,b=1,x=3,te=5,S=6,C=7,w=9,T=11,E=13,D=14,O=15,k=18,A=22,ne=23,re=26,ie=27,ae=60111,oe=`Symbol(react.element)`,j=`Symbol(react.transitional.element)`,M=`Symbol(react.concurrent_mode)`,N=`Symbol(react.async_mode)`,P=1,se=2,ce=4096,le=4,F=8,ue=16,de=32,fe=1024,pe=8192,I=se|le|ue|de|ce|pe|fe,me=e=>typeof e==`object`&&!!e&&`$$typeof`in e&&[oe,j].includes(String(e.$$typeof)),he=e=>typeof e==`object`&&!!e&&`tag`in e&&`stateNode`in e&&`return`in e&&`child`in e&&`sibling`in e&&`flags`in e,L=e=>{switch(e.tag){case te:case re:case ie:return!0;default:return typeof e.type==`string`}},ge=e=>{switch(e.tag){case y:case b:case O:case D:case T:return!0;default:return!1}},_e=(e,t)=>{try{let n=e.dependencies,r=e.alternate?.dependencies;if(!n||!r||typeof n!=`object`||!(`firstContext`in n)||typeof r!=`object`||!(`firstContext`in r))return!1;let i=n.firstContext,a=r.firstContext;for(;i&&typeof i==`object`&&`memoizedValue`in i||a&&typeof a==`object`&&`memoizedValue`in a;){if(t(i,a)===!0)return!0;i=i?.next,a=a?.next}}catch{}return!1},ve=(e,t)=>{try{let n=e.memoizedState,r=e.alternate?.memoizedState;for(;n||r;){if(t(n,r)===!0)return!0;n=n?.next,r=r?.next}}catch{}return!1},ye=(e,t)=>{try{let n=e.memoizedProps,r=e.alternate?.memoizedProps||{},i=new Set([...Object.keys(r),...Object.keys(n)]);for(let e of i){let i=r?.[e],a=n?.[e];if(t(e,a,i)===!0)return!0}}catch{}return!1},R=e=>{let t=e.memoizedProps,n=e.alternate?.memoizedProps||{},r=e.flags??e.effectTag??0;switch(e.tag){case b:case y:case w:case T:case D:case O:return(r&P)===P;default:return e.alternate?n!==t||e.alternate.memoizedState!==e.memoizedState||e.alternate.ref!==e.ref:!0}},z=e=>(e.flags&(I|F))!==0||(e.subtreeFlags&(I|F))!==0,be=e=>{let t=[],n=[e];for(;n.length;){let e=n.pop();e&&(L(e)&&z(e)&&R(e)&&t.push(e),e.child&&n.push(e.child),e.sibling&&n.push(e.sibling))}return t},xe=e=>{let t=[],n=e;for(;n.return;)t.push(n),n=n.return;return t},B=e=>{switch(e.tag){case k:return!0;case S:case C:case ne:case A:return!0;case x:return!1;default:{let t=typeof e.type==`object`&&e.type!==null?e.type.$$typeof:e.type,n=typeof t==`symbol`?t.toString():t;switch(n){case ae:case M:case N:return!0;default:return!1}}}},Se=(e,t=!1)=>{let n=V(e,L,t);return n||=V(e,L,!t),n},Ce=e=>{let t=[],n=[];for(L(e)?t.push(e):e.child&&n.push(e.child);n.length;){let e=n.pop();if(!e)break;L(e)?t.push(e):e.child&&n.push(e.child),e.sibling&&n.push(e.sibling)}return t},V=(e,t,n=!1)=>{if(!e)return null;if(t(e)===!0)return e;let r=n?e.return:e.child;for(;r;){let e=V(r,t,n);if(e)return e;r=n?null:r.sibling}return null},we=e=>{let t=e?.actualDuration??0,n=t,r=e?.child??null;for(;t>0&&r!=null;)n-=r.actualDuration??0,r=r.sibling;return{selfTime:n,totalTime:t}},Te=e=>!!e.updateQueue?.memoCache,H=e=>{let t=e;return typeof t==`function`?t:typeof t==`object`&&t?H(t.type||t.render):null},Ee=e=>{let t=e;if(typeof t==`string`)return t;if(typeof t!=`function`&&!(typeof t==`object`&&t))return null;let n=t.displayName||t.name||null;if(n)return n;let r=H(t);return r&&(r.displayName||r.name)||null},U=e=>{try{if(typeof e.version==`string`&&e.bundleType>0)return`development`}catch{}return`production`},De=()=>{let e=g();return!!e._instrumentationIsActive||s()||u()},Oe=e=>{let t=e.alternate;if(!t)return e;if(t.actualStartTime&&e.actualStartTime)return t.actualStartTime>e.actualStartTime?t:e;for(let t of Q){let n=V(t.current,t=>{if(t===e)return!0});if(n)return n}return e},W=0,G=new WeakMap,K=(e,t=W++)=>{G.set(e,t)},q=e=>{let t=G.get(e);return!t&&e.alternate&&(t=G.get(e.alternate)),t||(t=W++,K(e,t)),t},J=(e,t,n)=>{let r=t;for(;r!=null;){G.has(r)||q(r);let t=!B(r);if(t&&R(r)&&e(r,`mount`),r.tag===E){let t=r.memoizedState!==null;if(t){let t=r.child,n=t?t.sibling:null;if(n){let t=n.child;t!==null&&J(e,t,!1)}}else{let t=null,n=A===-1;n?t=r.child:r.child!==null&&(t=r.child.child),t!==null&&J(e,t,!1)}}else r.child!=null&&J(e,r.child,!0);r=n?r.sibling:null}},Y=(e,t,n,r)=>{if(G.has(t)||q(t),!n)return;G.has(n)||q(n);let i=t.tag===E,a=!B(t);a&&R(t)&&e(t,`update`);let o=i&&n.memoizedState!==null,s=i&&t.memoizedState!==null;if(o&&s){let r=t.child?.sibling??null,i=n.child?.sibling??null;r!==null&&i!==null&&Y(e,r,i,t)}else if(o&&!s){let n=t.child;n!==null&&J(e,n,!0)}else if(!o&&s){Z(e,n);let r=t.child?.sibling??null;r!==null&&J(e,r,!0)}else if(t.child!==n.child){let n=t.child;for(;n;){if(n.alternate){let i=n.alternate;Y(e,n,i,a?t:r)}else J(e,n,!1);n=n.sibling}}},X=(e,t)=>{let n=t.tag===x;(n||!B(t))&&e(t,`unmount`)},Z=(e,t)=>{let n=t.tag===E&&t.memoizedState!==null,r=t.child;if(n){let e=t.child,n=e?.sibling??null;r=n?.child??null}for(;r!==null;)r.return!==null&&(X(e,r),Z(e,r)),r=r.sibling},ke=0,Ae=new WeakMap,je=(e,t)=>{let n=`current`in e?e.current:e,r=Ae.get(e);r||(r={prevFiber:null,id:ke++},Ae.set(e,r));let{prevFiber:i}=r;if(!n)X(t,n);else if(i!==null){let e=i&&i.memoizedState!=null&&i.memoizedState.element!=null&&i.memoizedState.isDehydrated!==!0,r=n.memoizedState!=null&&n.memoizedState.element!=null&&n.memoizedState.isDehydrated!==!0;!e&&r?J(t,n,!1):e&&r?Y(t,n,n.alternate,null):e&&!r&&X(t,n)}else J(t,n,!0);r.prevFiber=n},Me=({onRender:e})=>(t,n,r)=>{je(n,e)},Ne=e=>g(()=>{let t=g();e.onActive?.(),t._instrumentationSource=e.name??n;let r=t.onCommitFiberRoot;e.onCommitFiberRoot&&(t.onCommitFiberRoot=(t,n,i)=>{r&&r(t,n,i),e.onCommitFiberRoot?.(t,n,i)});let i=t.onCommitFiberUnmount;e.onCommitFiberUnmount&&(t.onCommitFiberUnmount=(t,n)=>{i&&i(t,n),e.onCommitFiberUnmount?.(t,n)});let a=t.onPostCommitFiberRoot;e.onPostCommitFiberRoot&&(t.onPostCommitFiberRoot=(t,n)=>{a&&a(t,n),e.onPostCommitFiberRoot?.(t,n)})}),Pe=e=>{let t=g();for(let n of t.renderers.values())try{let t=n.findFiberByHostInstance?.(e);if(t)return t}catch{}if(typeof e==`object`&&e){if(`_reactRootContainer`in e)return e._reactRootContainer?._internalRoot?.current?.child;for(let t in e)if(t.startsWith(`__reactInternalInstance$`)||t.startsWith(`__reactFiber`))return e[t]||null}return null},Fe=Error(),Q=new Set,$=(e,t={})=>{let n=e.onActive,r=h(),i=s(),a=u(),o,c=t.isProduction??!1;return e.onActive=()=>{clearTimeout(o);let r=!0;try{let e=g();for(let n of e.renderers.values()){let[e]=n.version.split(`.`);Number(e)<(t.minReactMajorVersion??17)&&(r=!1);let i=U(n);i!==`development`&&(c=!0,t.dangerouslyRunInProduction||(r=!1))}}catch(e){t.onError?.(e)}if(!r){e.onCommitFiberRoot=void 0,e.onCommitFiberUnmount=void 0,e.onPostCommitFiberRoot=void 0,e.onActive=void 0;return}n?.();try{let n=e.onCommitFiberRoot;n&&(e.onCommitFiberRoot=(e,r,i)=>{Q.has(r)||Q.add(r);try{n(e,r,i)}catch(e){t.onError?.(e)}});let r=e.onCommitFiberUnmount;r&&(e.onCommitFiberUnmount=(e,n)=>{try{r(e,n)}catch(e){t.onError?.(e)}});let i=e.onPostCommitFiberRoot;i&&(e.onPostCommitFiberRoot=(e,n)=>{try{i(e,n)}catch(e){t.onError?.(e)}})}catch(e){t.onError?.(e)}},!r&&!i&&!a&&(o=setTimeout(()=>{c||t.onError?.(Fe),stop()},t.installCheckTimeout??100)),e},Ie=e=>Ne($({onCommitFiberRoot:(t,n)=>{e(n)}}));return v(),exports.BIPPY_INSTRUMENTATION_STRING=n,exports.CONCURRENT_MODE_NUMBER=ae,exports.CONCURRENT_MODE_SYMBOL_STRING=M,exports.ClassComponentTag=b,exports.ContextConsumerTag=w,exports.DEPRECATED_ASYNC_MODE_SYMBOL_STRING=N,exports.DehydratedSuspenseComponentTag=k,exports.ELEMENT_TYPE_SYMBOL_STRING=oe,exports.ForwardRefTag=T,exports.FragmentTag=C,exports.FunctionComponentTag=y,exports.HostComponentTag=te,exports.HostHoistableTag=re,exports.HostRootTag=x,exports.HostSingletonTag=ie,exports.HostTextTag=S,exports.INSTALL_ERROR=Fe,exports.INSTALL_HOOK_SCRIPT_STRING=ee,exports.LegacyHiddenComponentTag=ne,exports.MemoComponentTag=D,exports.OffscreenComponentTag=A,exports.SimpleMemoComponentTag=O,exports.SuspenseComponentTag=E,exports.TRANSITIONAL_ELEMENT_TYPE_SYMBOL_STRING=j,exports._fiberRoots=Q,exports._renderers=f,exports.createFiberVisitor=Me,exports.detectReactBuildType=U,exports.didFiberCommit=z,exports.didFiberRender=R,exports.fiberIdMap=G,exports.getDisplayName=Ee,exports.getFiberFromHostInstance=Pe,exports.getFiberId=q,exports.getFiberStack=xe,exports.getLatestFiber=Oe,exports.getMutatedHostFibers=be,exports.getNearestHostFiber=Se,exports.getNearestHostFibers=Ce,exports.getRDTHook=g,exports.getTimings=we,exports.getType=H,exports.hasMemoCache=Te,exports.hasRDTHook=h,exports.installRDTHook=p,exports.instrument=Ne,exports.isClientEnvironment=_,exports.isCompositeFiber=ge,exports.isHostFiber=L,exports.isInstrumentationActive=De,exports.isReactRefresh=u,exports.isRealReactDevtools=s,exports.isValidElement=me,exports.isValidFiber=he,exports.mountFiberRecursively=J,exports.onCommitFiberRoot=Ie,exports.patchRDTHook=m,exports.safelyInstallRDTHook=v,exports.secure=$,exports.setFiberId=K,exports.shouldFilterFiber=B,exports.traverseContexts=_e,exports.traverseFiber=V,exports.traverseProps=ye,exports.traverseRenderedFibers=je,exports.traverseState=ve,exports.unmountFiber=X,exports.unmountFiberChildrenRecursively=Z,exports.updateFiberRecursively=Y,exports.version=t,exports}({});