UNPKG

bippy

Version:

hack into react internals

9 lines 13.7 kB
/** * @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(e){Object.defineProperty(e,Symbol.toStringTag,{value:`Module`});let t=`0.5.41`,n=`bippy-${t}`,r=Object.defineProperty,i=Object.prototype.hasOwnProperty,a=()=>{},o=e=>{try{Function.prototype.toString.call(e).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=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__)=>!!(e&&`getFiberRoots`in e),c=!1,l,u=(e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__)=>c?!0:(e&&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={_instrumentationIsActive:!1,_instrumentationSource:n,checkDCE:o,hasUnsupportedRendererAttached:!1,inject(e){let n=++i;return t.set(n,e),f.add(e),s._instrumentationIsActive||(s._instrumentationIsActive=!0,d.forEach(e=>e())),n},on:a,onCommitFiberRoot:a,onCommitFiberUnmount:a,onPostCommitFiberRoot:a,renderers:t,supportsFiber:!0,supportsFlight:!0};try{r(globalThis,`__REACT_DEVTOOLS_GLOBAL_HOOK__`,{configurable:!0,enumerable:!0,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))}}});let t=window.hasOwnProperty,n=!1;r(window,`hasOwnProperty`,{configurable:!0,value:function(...e){try{if(!n&&e[0]===`__REACT_DEVTOOLS_GLOBAL_HOOK__`)return globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__=void 0,n=!0,-0}catch{}return t.apply(this,e)},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){t.checkDCE=o,t.supportsFiber=!0,t.supportsFlight=!0,t.hasUnsupportedRendererAttached=!1,t._instrumentationSource=n,t._instrumentationIsActive=!1;let e=s(t);if(e||(t.on=a),t.renderers.size){t._instrumentationIsActive=!0,d.forEach(e=>e());return}let r=t.inject,i=u(t);i&&!e&&(c=!0,t.inject({scheduleRefresh(){}})&&(t._instrumentationIsActive=!0)),t.inject=e=>{let n=r(e);return f.add(e),i&&t.renderers.set(n,e),t._instrumentationIsActive=!0,d.forEach(e=>e()),n}}(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{}};v();let y=60111,b=`Symbol(react.concurrent_mode)`,x=`Symbol(react.async_mode)`,S=13366,ee=e=>typeof e==`object`&&!!e&&`$$typeof`in e&&[`Symbol(react.element)`,`Symbol(react.transitional.element)`].includes(String(e.$$typeof)),te=e=>typeof e==`object`&&!!e&&`tag`in e&&`stateNode`in e&&`return`in e&&`child`in e&&`sibling`in e&&`flags`in e,C=e=>{switch(e.tag){case 5:case 26:case 27:return!0;default:return typeof e.type==`string`}},w=e=>{switch(e.tag){case 1:case 11:case 0:case 14:case 15:return!0;default:return!1}},ne=e=>!e||typeof e!=`object`?!1:`pendingProps`in e&&!(`containerInfo`in e),re=(e,t)=>e===t||e.alternate===t||t.alternate===e,ie=(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},ae=(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},oe=(e,t)=>{try{let n=e.memoizedProps,r=e.alternate?.memoizedProps||{},i=new Set([...Object.keys(n),...Object.keys(r)]);for(let e of i){let i=r?.[e],a=n?.[e];if(t(e,a,i)===!0)return!0}}catch{}return!1},T=e=>{let t=e.memoizedProps,n=e.alternate?.memoizedProps||{},r=e.flags??e.effectTag??0;switch(e.tag){case 1:case 9:case 11:case 0:case 14:case 15:return(r&1)==1;default:return e.alternate?n!==t||e.alternate.memoizedState!==e.memoizedState||e.alternate.ref!==e.ref:!0}},E=e=>!!(e.flags&(S|8)||e.subtreeFlags&(S|8)),D=e=>{let t=[],n=[e];for(;n.length;){let e=n.pop();e&&(C(e)&&E(e)&&T(e)&&t.push(e),e.child&&n.push(e.child),e.sibling&&n.push(e.sibling))}return t},O=e=>{let t=[],n=e;for(;n.return;)t.push(n),n=n.return;return t},k=e=>{switch(e.tag){case 18:return!0;case 7:case 6: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 y:case b:case x:return!0;default:return!1}}}},se=(e,t=!1)=>{let n=A(e,C,t);return n||=A(e,C,!t),n},ce=e=>{let t=[],n=[];for(C(e)?t.push(e):e.child&&n.push(e.child);n.length;){let e=n.pop();if(!e)break;C(e)?t.push(e):e.child&&n.push(e.child),e.sibling&&n.push(e.sibling)}return t};function A(e,t,n=!1){if(!e)return null;let r=t(e);if(r instanceof Promise)return(async()=>{if(await r===!0)return e;let i=n?e.return:e.child;for(;i;){let e=await M(i,t,n);if(e)return e;i=n?null:i.sibling}return null})();if(r===!0)return e;let i=n?e.return:e.child;for(;i;){let e=j(i,t,n);if(e)return e;i=n?null:i.sibling}return null}let j=(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=j(r,t,n);if(e)return e;r=n?null:r.sibling}return null},M=async(e,t,n=!1)=>{if(!e)return null;if(await t(e)===!0)return e;let r=n?e.return:e.child;for(;r;){let e=await M(r,t,n);if(e)return e;r=n?null:r.sibling}return null},le=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}},ue=e=>!!e.updateQueue?.memoCache,N=e=>{let t=e;return typeof t==`function`?t:typeof t==`object`&&t?N(t.type||t.render):null},de=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=N(t);return r&&(r.displayName||r.name)||null},P=e=>{try{if(typeof e.version==`string`&&e.bundleType>0)return`development`}catch{}return`production`},fe=()=>{let e=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;return!!e?._instrumentationIsActive||s(e)||u(e)},pe=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=A(t.current,t=>{if(t===e)return!0});if(n)return n}return e},F=0,I=new WeakMap,L=(e,t=F++)=>{I.set(e,t)},R=e=>{let t=I.get(e);return!t&&e.alternate&&(t=I.get(e.alternate)),t||(t=F++,L(e,t)),t},z=(e,t,n)=>{let r=t;for(;r!=null;){if(I.has(r)||R(r),!k(r)&&T(r)&&e(r,`mount`),r.tag===13)if(r.memoizedState!==null){let t=r.child,n=t?t.sibling:null;if(n){let t=n.child;t!==null&&z(e,t,!1)}}else{let t=null;r.child!==null&&(t=r.child.child),t!==null&&z(e,t,!1)}else r.child!=null&&z(e,r.child,!0);r=n?r.sibling:null}},B=(e,t,n,r)=>{if(I.has(t)||R(t),!n)return;I.has(n)||R(n);let i=t.tag===13,a=!k(t);a&&T(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&&B(e,r,i,t)}else if(o&&!s){let n=t.child;n!==null&&z(e,n,!0)}else if(!o&&s){H(e,n);let r=t.child?.sibling??null;r!==null&&z(e,r,!0)}else if(t.child!==n.child){let n=t.child;for(;n;){if(n.alternate){let i=n.alternate;B(e,n,i,a?t:r)}else z(e,n,!1);n=n.sibling}}},V=(e,t)=>{(t.tag===3||!k(t))&&e(t,`unmount`)},H=(e,t)=>{let n=t.tag===13&&t.memoizedState!==null,r=t.child;for(n&&(r=(t.child?.sibling??null)?.child??null);r!==null;)r.return!==null&&(V(e,r),H(e,r)),r=r.sibling},me=0,U=new WeakMap,he=(e,t)=>{let n=`current`in e?e.current:e,r=U.get(e);r||(r={id:me++,prevFiber:null},U.set(e,r));let{prevFiber:i}=r;if(!n)V(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?z(t,n,!1):e&&r?B(t,n,n.alternate,null):e&&!r&&V(t,n)}else z(t,n,!0);r.prevFiber=n},W=null,G=null,K=null,q=()=>{if(!h())return null;let e=g();if(!e?.renderers)return null;if(W||G||K)return{overrideContext:K,overrideHookState:G,overrideProps:W};for(let[,t]of Array.from(e.renderers))try{if(G){let e=G;G=(n,r,i,a)=>{let o=n.memoizedState;for(let e=0;e<Number(r)&&o?.next;e++)o=o.next;if(o?.queue){let e=o.queue;if(J(e)&&`dispatch`in e){let t=e.dispatch;t(a);return}}e(n,r,i,a),t.overrideHookState?.(n,r,i,a)}}else t.overrideHookState&&(G=t.overrideHookState);if(W){let e=W;W=(n,r,i)=>{e(n,r,i),t.overrideProps?.(n,r,i)}}else t.overrideProps&&(W=t.overrideProps);K=(e,t,n,r)=>{let i=e;for(;i;){let e=i.type;if(e===t||e?.Provider===t){W&&(W(i,[`value`,...n],r),i.alternate&&W(i.alternate,[`value`,...n],r));break}i=i.return}}}catch{}},J=e=>Object.prototype.toString.call(e)===`[object Object]`&&(Object.getPrototypeOf(e)===Object.prototype||Object.getPrototypeOf(e)===null),Y=(e,t=[])=>{if(!J(e))return[{path:t,value:e}];let n=[];for(let r in e){let i=e[r],a=t.concat(r);J(i)?n.push(...Y(i,a)):n.push({path:a,value:i})}return n},ge=(e,t)=>{q();let n=Y(t);for(let{path:t,value:r}of n)try{W?.(e,t,r)}catch{}},_e=(e,t,n)=>{q();let r=String(t);if(J(n)){let t=Y(n);for(let{path:n,value:i}of t)try{G?.(e,r,n,i)}catch{}}else try{G?.(e,r,[],n)}catch{}},X=(e,t,n)=>{if(q(),J(n)){let r=Y(n);for(let{path:n,value:i}of r)try{K?.(e,t,n,i)}catch{}}else try{K?.(e,t,[],n)}catch{}},ve=e=>{let t=g(e.onActive);t._instrumentationSource=e.name??n;let r=t.onCommitFiberRoot;if(e.onCommitFiberRoot){let n=(t,i,a)=>{r!==n&&(r?.(t,i,a),e.onCommitFiberRoot?.(t,i,a))};t.onCommitFiberRoot=n}let i=t.onCommitFiberUnmount;if(e.onCommitFiberUnmount){let n=(r,a)=>{t.onCommitFiberUnmount===n&&(i?.(r,a),e.onCommitFiberUnmount?.(r,a))};t.onCommitFiberUnmount=n}let a=t.onPostCommitFiberRoot;if(e.onPostCommitFiberRoot){let n=(r,i)=>{t.onPostCommitFiberRoot===n&&(a?.(r,i),e.onPostCommitFiberRoot?.(r,i))};t.onPostCommitFiberRoot=n}return t},ye=e=>{let t=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(t?.renderers)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(`__reactContainer$`)||t.startsWith(`__reactInternalInstance$`)||t.startsWith(`__reactFiber`))return e[t]||null}return null},Z=Error(),Q=new Set,be=(e,t={})=>{let n=e.onActive,r=h(),i=s(),a=u(),o,c=!t.isProduction;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),P(n)===`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?.(Z),stop()},t.installCheckTimeout??100)),e},$=(e,t,n)=>{e.type=t,e.alternate&&(e.alternate.type=t),e.memoizedProps={...e.memoizedProps},n.scheduleUpdate&&n.scheduleUpdate(e)};return e.ActivityComponentTag=28,e.BIPPY_INSTRUMENTATION_STRING=n,e.CONCURRENT_MODE_NUMBER=y,e.CONCURRENT_MODE_SYMBOL_STRING=b,e.ClassComponentTag=1,e.ContextConsumerTag=9,e.DEPRECATED_ASYNC_MODE_SYMBOL_STRING=x,e.DehydratedSuspenseComponentTag=18,e.ELEMENT_TYPE_SYMBOL_STRING=`Symbol(react.element)`,e.ForwardRefTag=11,e.FragmentTag=7,e.FunctionComponentTag=0,e.HostComponentTag=5,e.HostHoistableTag=26,e.HostPortalTag=4,e.HostRootTag=3,e.HostSingletonTag=27,e.HostTextTag=6,e.INSTALL_ERROR=Z,e.LazyComponentTag=16,e.LegacyHiddenComponentTag=23,e.MemoComponentTag=14,e.OffscreenComponentTag=22,e.SimpleMemoComponentTag=15,e.SuspenseComponentTag=13,e.SuspenseListComponentTag=19,e.TRANSITIONAL_ELEMENT_TYPE_SYMBOL_STRING=`Symbol(react.transitional.element)`,e.ViewTransitionComponentTag=30,e._fiberRoots=Q,e._renderers=f,e.areFiberEqual=re,e.detectReactBuildType=P,e.didFiberCommit=E,e.didFiberRender=T,e.fiberIdMap=I,e.getDisplayName=de,e.getFiberFromHostInstance=ye,e.getFiberId=R,e.getFiberStack=O,e.getLatestFiber=pe,e.getMutatedHostFibers=D,e.getNearestHostFiber=se,e.getNearestHostFibers=ce,e.getRDTHook=g,e.getTimings=le,e.getType=N,e.hasMemoCache=ue,e.hasRDTHook=h,e.hotSwapFiberType=(e,t)=>{let n=globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!n?.renderers)return;let r=Array.from(n.renderers.values()).find(e=>!!e.scheduleUpdate);if(!r)return;let i=N(e.type);if(!i){$(e,t,r);return}let a=e;for(;a.return;)a=a.return;j(a,e=>{N(e.type)===i&&$(e,t,r)})},e.injectOverrideMethods=q,e.installRDTHook=p,e.instrument=ve,e.isClientEnvironment=_,e.isCompositeFiber=w,e.isFiber=ne,e.isHostFiber=C,e.isInstrumentationActive=fe,e.isReactRefresh=u,e.isRealReactDevtools=s,e.isValidElement=ee,e.isValidFiber=te,e.mountFiberRecursively=z,e.overrideContext=X,e.overrideHookState=_e,e.overrideProps=ge,e.patchRDTHook=m,e.safelyInstallRDTHook=v,e.secure=be,e.setFiberId=L,e.shouldFilterFiber=k,e.traverseContexts=ie,e.traverseFiber=A,e.traverseFiberAsync=M,e.traverseFiberSync=j,e.traverseProps=oe,e.traverseRenderedFibers=he,e.traverseState=ae,e.unmountFiber=V,e.unmountFiberChildrenRecursively=H,e.updateFiberRecursively=B,e.version=t,e})({});