bippy
Version:
hack into react internals
29 lines • 26.4 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.
*/
import{n as e,r as t}from"./rdt-hook.js";import{getDisplayName as n,traverseFiber as r}from"./core.js";const i=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,a=[`rsc://`,`file:///`,`webpack-internal://`,`webpack://`,`node:`,`turbopack://`,`metro://`,`/app-pages-browser/`,`/(app-pages-browser)/`],o=[`<anonymous>`,`eval`,``],s=/\.(jsx|tsx|ts|js)$/,c=/(\.min|bundle|chunk|vendor|vendors|runtime|polyfill|polyfills)\.(js|mjs|cjs)$|(chunk|bundle|vendor|vendors|runtime|polyfill|polyfills|framework|app|main|index)[-_.][A-Za-z0-9_-]{4,}\.(js|mjs|cjs)$|[\da-f]{8,}\.(js|mjs|cjs)$|[-_.][\da-f]{20,}\.(js|mjs|cjs)$|\/dist\/|\/build\/|\/.next\/|\/out\/|\/node_modules\/|\.webpack\.|\.vite\.|\.turbopack\./i,l=/^\?[\w~.-]+(?:=[^&#]*)?(?:&[\w~.-]+(?:=[^&#]*)?)*$/,u=/\(at [^)]+\)$/,d=/(^|@)\S+:\d+/,f=/^\s*at .*(\S+:\d+|\(native\))/m,ee=/^(eval@)?(\[native code\])?$/,p=e=>{if(e&&typeof e==`object`){let t=e.stacktrace;return typeof t==`string`?t:null}return null},m=(e,t)=>{if(t?.includeInElement!==!1){let n=e.split(`
`),r=[];for(let e of n)if(/^\s*at\s+/.test(e)){let t=_(e,void 0)[0];t&&r.push(t)}else if(/^\s*in\s+/.test(e)){let t=e.replace(/^\s*in\s+/,``).replace(/\s*\(at .*\)$/,``);r.push({functionName:t,source:e})}else if(e.match(d)){let t=v(e,void 0)[0];t&&r.push(t)}return g(r,t)}return e.match(f)?_(e,t):v(e,t)},h=e=>{if(!e.includes(`:`))return[e,void 0,void 0];let t=e.startsWith(`(`)&&/:\d+\)$/.test(e)?e.slice(1,-1):e,n=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(t);return n?[n[1],n[2]||void 0,n[3]||void 0]:[t,void 0,void 0]},g=(e,t)=>t&&t.slice!=null?Array.isArray(t.slice)?e.slice(t.slice[0],t.slice[1]):e.slice(0,t.slice):e,te=(e,t)=>_(e.stack,t),_=(e,t)=>g(e.split(`
`).filter(e=>!!e.match(f)),t).map(e=>{let t=e;t.includes(`(eval `)&&(t=t.replace(/eval code/g,`eval`).replace(/(\(eval at [^()]*)|(,.*$)/g,``));let n=t.replace(/^\s+/,``).replace(/\(eval code/g,`(`).replace(/^.*?\s+/,``),r=n.match(/ (\(.+\)$)/);n=r?n.replace(r[0],``):n;let i=h(r?r[1]:n);return{functionName:r&&n||void 0,fileName:[`eval`,`<anonymous>`].includes(i[0])?void 0:i[0],lineNumber:i[1]?+i[1]:void 0,columnNumber:i[2]?+i[2]:void 0,source:t}}),ne=(e,t)=>v(e.stack,t),v=(e,t)=>g(e.split(`
`).filter(e=>!e.match(ee)),t).map(e=>{let t=e;if(t.includes(` > eval`)&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,`:$1`)),!t.includes(`@`)&&!t.includes(`:`))return{functionName:t};{let e=/(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/,n=t.match(e),r=n&&n[1]?n[1]:void 0,i=h(t.replace(e,``));return{functionName:r,fileName:i[0],lineNumber:i[1]?+i[1]:void 0,columnNumber:i[2]?+i[2]:void 0,source:t}}}),re=(e,t)=>{let n=p(e);return!n||e.message.includes(`
`)&&e.message.split(`
`).length>n.split(`
`).length?ie(e,t):e.stack?oe(e,t):ae(e,t)},ie=(e,t)=>{let n=/Line (\d+).*script (?:in )?(\S+)/i,r=e.message.split(`
`),i=[];for(let e=2,t=r.length;e<t;e+=2){let t=n.exec(r[e]);t&&i.push({fileName:t[2],lineNumber:+t[1],source:r[e]})}return g(i,t)},ae=(e,t)=>{let n=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,r=(p(e)||``).split(`
`),i=[];for(let e=0,t=r.length;e<t;e+=2){let t=n.exec(r[e]);t&&i.push({functionName:t[3]||void 0,fileName:t[2],lineNumber:t[1]?+t[1]:void 0,source:r[e]})}return g(i,t)},oe=(e,t)=>g(e.stack.split(`
`).filter(e=>!!e.match(d)&&!e.match(/^Error created at/)),t).map(e=>{let t=e.split(`@`),n=h(t.pop()),r=t.shift()||``,i=r.replace(/<anonymous function(: (\w+))?>/,`$2`).replace(/\([^)]*\)/g,``)||void 0,a;return r.match(/\(([^)]*)\)/)&&(a=r.replace(/^[^(]+\(([^)]*)\)$/,`$1`)),{functionName:i,args:a===void 0||a===`[arguments not available]`?void 0:a.split(`,`),fileName:n[0],lineNumber:n[1]?+n[1]:void 0,columnNumber:n[2]?+n[2]:void 0,source:e}});var se=44,y=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,ce=new Uint8Array(64),le=new Uint8Array(128);for(let e=0;e<y.length;e++){let t=y.charCodeAt(e);ce[e]=t,le[t]=e}function b(e,t){let n=0,r=0,i=0;do i=le[e.next()],n|=(i&31)<<r,r+=5;while(i&32);let a=n&1;return n>>>=1,a&&(n=-2147483648|-n),t+n}function ue(e,t){return e.pos>=t?!1:e.peek()!==se}var de=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:n}=this,r=t.indexOf(e,n);return r===-1?t.length:r}};function x(e){let{length:t}=e,n=new de(e),r=[],i=0,a=0,o=0,s=0,c=0;do{let e=n.indexOf(`;`),t=[],l=!0,u=0;for(i=0;n.pos<e;){let r;i=b(n,i),i<u&&(l=!1),u=i,ue(n,e)?(a=b(n,a),o=b(n,o),s=b(n,s),ue(n,e)?(c=b(n,c),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||fe(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function fe(e){e.sort(pe)}function pe(e,t){return e[0]-t[0]}const me=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,he=/^data:application\/json[^,]+base64,/,ge=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/,S=new Map,C=new Map,_e=(e,t,n,r)=>{if(n<0||n>=e.length)return null;let i=e[n];if(!i||i.length===0)return null;let a=null;for(let e of i)if(e[0]<=r)a=e;else break;if(!a||a.length<4)return null;let[,o,s,c]=a;if(o===void 0||s===void 0||c===void 0)return null;let l=t[o];return l?{columnNumber:c,fileName:l,lineNumber:s+1}:null},w=(e,t,n)=>{if(e.sections){let r=null;for(let i of e.sections)if(t>i.offset.line||t===i.offset.line&&n>=i.offset.column)r=i;else break;if(!r)return null;let i=t-r.offset.line,a=t===r.offset.line?n-r.offset.column:n;return _e(r.map.mappings,r.map.sources,i,a)}return _e(e.mappings,e.sources,t-1,n)},ve=(e,t)=>{let n=t.split(`
`),r;for(let e=n.length-1;e>=0&&!r;e--){let t=n[e].match(ge);t&&(r=t[1]||t[2])}if(!r)return null;let i=me.test(r);if(!(he.test(r)||i||r.startsWith(`/`))){let t=e.split(`/`);t[t.length-1]=r,r=t.join(`/`)}return r},ye=e=>({file:e.file,mappings:x(e.mappings),names:e.names,sourceRoot:e.sourceRoot,sources:e.sources,sourcesContent:e.sourcesContent,version:3}),be=e=>{let t=e.sections.map(({map:e,offset:t})=>({map:{...e,mappings:x(e.mappings)},offset:t})),n=new Set;for(let e of t)for(let t of e.map.sources)n.add(t);return{file:e.file,mappings:[],names:[],sections:t,sourceRoot:void 0,sources:Array.from(n),sourcesContent:void 0,version:3}},T=e=>{if(!e)return!1;let t=e.trim();if(!t)return!1;let n=t.match(me);if(!n)return!0;let r=n[0].toLowerCase();return r===`http:`||r===`https:`},E=async(e,t=fetch)=>{if(!T(e))return null;let n;try{let r=await t(e);if(!r.ok)return null;n=await r.text()}catch{return null}if(!n)return null;let r=ve(e,n);if(!r||!T(r))return null;try{let e=await t(r);if(!e.ok)return null;let n=await e.json();return`sections`in n?be(n):ye(n)}catch{return null}},D=async(e,t=!0,n)=>{if(t&&S.has(e))return S.get(e)??null;if(t&&C.has(e))return C.get(e);let r=E(e,n);t&&C.set(e,r);let i=await r;return t&&C.delete(e),t&&(i===null?S.set(e,null):S.set(e,i)),i},O=async(e,t=!0,n)=>await Promise.all(e.map(async e=>{if(!e.fileName)return e;let r=await D(e.fileName,t,n);if(!r||typeof e.lineNumber!=`number`||typeof e.columnNumber!=`number`)return e;let i=w(r,e.lineNumber,e.columnNumber);return i?{...e,source:i.fileName&&e.source?e.source.replace(e.fileName,i.fileName):e.source,fileName:i.fileName,lineNumber:i.lineNumber,columnNumber:i.columnNumber,isSymbolicated:!0}:e})),k=e=>e._debugStack instanceof Error&&typeof e._debugStack?.stack==`string`,xe=()=>{let n=t();for(let t of[...Array.from(e),...Array.from(n.renderers.values())]){let e=t.currentDispatcherRef;if(e&&typeof e==`object`)return`H`in e?e.H:e.current}return null},A=t=>{for(let n of e){let e=n.currentDispatcherRef;e&&typeof e==`object`&&(`H`in e?e.H=t:e.current=t)}},j=e=>`\n in ${e}`,M=(e,t)=>{let n=j(e);return t&&(n+=` (at ${t})`),n};let N=!1;const P=(e,t)=>{if(!e||N)return``;let r=Error.prepareStackTrace;Error.prepareStackTrace=void 0,N=!0;let i=xe();A(null);let a=console.error,o=console.warn;console.error=()=>{},console.warn=()=>{};try{let r={DetermineComponentFrameRoot(){let n;try{if(t){let t=function(){throw Error()};if(Object.defineProperty(t.prototype,`props`,{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){n=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){n=e}e.call(t.prototype)}}else{try{throw Error()}catch(e){n=e}let t=e();t&&typeof t.catch==`function`&&t.catch(()=>{})}}catch(e){if(e instanceof Error&&n instanceof Error&&typeof e.stack==`string`)return[e.stack,n.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`,Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`)?.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,`name`,{value:`DetermineComponentFrameRoot`});let[i,a]=r.DetermineComponentFrameRoot();if(i&&a){let t=i.split(`
`),r=a.split(`
`),o=0,s=0;for(;o<t.length&&!t[o].includes(`DetermineComponentFrameRoot`);)o++;for(;s<r.length&&!r[s].includes(`DetermineComponentFrameRoot`);)s++;if(o===t.length||s===r.length)for(o=t.length-1,s=r.length-1;o>=1&&s>=0&&t[o]!==r[s];)s--;for(;o>=1&&s>=0;o--,s--)if(t[o]!==r[s]){if(o!==1||s!==1)do if(o--,s--,s<0||t[o]!==r[s]){let r=`\n${t[o].replace(` at new `,` at `)}`,i=n(e);return i&&r.includes(`<anonymous>`)&&(r=r.replace(`<anonymous>`,i)),r}while(o>=1&&s>=0);break}}}finally{N=!1,Error.prepareStackTrace=r,A(i),console.error=a,console.warn=o}let s=e?n(e):``;return s?j(s):``},F=(e,t)=>{let n=e.tag,r=``;switch(n){case 28:r=j(`Activity`);break;case 1:r=P(e.type,!0);break;case 11:r=P(e.type.render,!1);break;case 0:case 15:r=P(e.type,!1);break;case 5:case 26:case 27:r=j(e.type);break;case 16:r=j(`Lazy`);break;case 13:r=e.child!==t&&t!==null?j(`Suspense Fallback`):j(`Suspense`);break;case 19:r=j(`SuspenseList`);break;case 30:r=j(`ViewTransition`);break;default:return``}return r},I=e=>{try{let t=``,n=e,r=null;do{t+=F(n,r);let e=n._debugInfo;if(e&&Array.isArray(e))for(let n=e.length-1;n>=0;n--){let r=e[n];typeof r.name==`string`&&(t+=M(r.name,r.env))}r=n,n=n.return}while(n);return t}catch(e){return e instanceof Error?`\nError generating stack: ${e.message}\n${e.stack}`:``}},L=e=>{let t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;let n=e;if(!n)return``;Error.prepareStackTrace=t,n.startsWith(`Error: react-stack-top-frame
`)&&(n=n.slice(29));let r=n.indexOf(`
`);if(r!==-1&&(n=n.slice(r+1)),r=Math.max(n.indexOf(`react_stack_bottom_frame`),n.indexOf(`react-stack-bottom-frame`)),r!==-1&&(r=n.lastIndexOf(`
`,r)),r!==-1)n=n.slice(0,r);else return``;return n},Se=e=>!!(e.functionName&&e.fileName&&(e.fileName.startsWith(`rsc://`)||e.fileName.startsWith(`about://React/`))),Ce=(e,t)=>e.fileName===t.fileName&&e.lineNumber===t.lineNumber&&e.columnNumber===t.columnNumber,we=e=>{let t=new Map;for(let n of e)for(let e of n.stackFrames){if(!Se(e))continue;let n=e.functionName,r=t.get(n)??[];r.some(t=>Ce(t,e))||(r.push(e),t.set(n,r))}return t},Te=(e,t,n)=>{if(!e.functionName)return{...e,isServer:!0};let r=t.get(e.functionName);if(!r||r.length===0)return{...e,isServer:!0};let i=n.get(e.functionName)??0,a=r[i%r.length];return n.set(e.functionName,i+1),{...e,isServer:!0,fileName:a.fileName,lineNumber:a.lineNumber,columnNumber:a.columnNumber,source:e.source?.replace(`(at Server)`,`(${a.fileName}:${a.lineNumber}:${a.columnNumber})`)}},Ee=e=>{let t=[];return r(e,e=>{if(!k(e))return;let r=typeof e.type==`string`?e.type:n(e.type)||`<anonymous>`;t.push({componentName:r,stackFrames:m(L(e._debugStack?.stack))})},!0),t},R=async(e,t=!0,n)=>{let r=Ee(e),i=m(I(e)),a=we(r),o=new Map;return O(i.map(e=>(e.source?.includes(`(at Server)`)??!1)||e.source!=null&&u.test(e.source)?Te(e,a,o):e).filter((e,t,n)=>{if(t===0)return!0;let r=n[t-1];return e.functionName!==r.functionName}),t,n)},z=e=>{let t=e._debugSource;return t?typeof t==`object`&&!!t&&`fileName`in t&&typeof t.fileName==`string`&&`lineNumber`in t&&typeof t.lineNumber==`number`:!1},De=async(e,t=!0,n)=>{if(z(e))return e._debugSource||null;let r=await R(e,t,n);for(let e of r)if(e.fileName)return{fileName:e.fileName,lineNumber:e.lineNumber,columnNumber:e.columnNumber,functionName:e.functionName};return null},Oe=e=>e.split(`/`).filter(Boolean).length,ke=e=>e.split(`/`).filter(Boolean)[0]??null,Ae=e=>{let t=e.indexOf(`/`,1);if(t===-1||Oe(e.slice(0,t))!==1)return e;let n=e.slice(t);if(!s.test(n)||Oe(n)<2)return e;let r=ke(n);return!r||r.startsWith(`@`)||r.length>4?e:n},je=e=>{if(!e||o.some(t=>t===e))return``;let t=e,n=t.startsWith(`http://`)||t.startsWith(`https://`);if(n)try{t=new URL(t).pathname}catch{}if(n&&(t=Ae(t)),t.startsWith(`about://React/`)){let e=t.slice(14),n=e.indexOf(`/`),r=e.indexOf(`:`);t=n!==-1&&(r===-1||n<r)?e.slice(n+1):e}let r=!0;for(;r;){r=!1;for(let e of a)if(t.startsWith(e)){t=t.slice(e.length),e===`file:///`&&(t=`/${t.replace(/^\/+/,``)}`),r=!0;break}}if(i.test(t)){let e=t.match(i);e&&(t=t.slice(e[0].length))}if(t.startsWith(`//`)){let e=t.indexOf(`/`,2);t=e===-1?``:t.slice(e)}let s=t.indexOf(`?`);if(s!==-1){let e=t.slice(s);l.test(e)&&(t=t.slice(0,s))}return t},Me=e=>{let t=je(e);return!(!t||!s.test(t)||c.test(t))},Ne=(e,t)=>{let n=e.split(`
`),r=t-1;if(r<0||r>=n.length)return null;let i=Math.max(0,r-5),a=Math.min(n.length,r+5),o=n.slice(i,a).join(`
`),s=/(?:^|export\s+)(?:const|let|var)\s+(\w+)\s*=/m,c=/(?:^|export\s+)function\s+(\w+)/m,l=/(?:^|export\s+)class\s+(\w+)/m,u=o.match(s);if(u?.[1])return u[1];let d=o.match(c);if(d?.[1])return d[1];let f=o.match(l);return f?.[1]?f[1]:null},Pe=async(e,t=!0,r)=>{let i=(await R(e,t,r)).filter(e=>e.fileName)[0];if(!i?.fileName)return n(e.type);let a=await D(i.fileName,t,r);if(!a)return n(e.type);let o=null;if(typeof i.lineNumber==`number`&&typeof i.columnNumber==`number`&&(o=w(a,i.lineNumber,i.columnNumber)),!o?.fileName||!o.lineNumber||!a.sourcesContent)return n(e.type);let s=a.sources.indexOf(o.fileName);if(s===-1||!a.sourcesContent[s])return n(e.type);let c=a.sourcesContent[s];return Ne(c,o.lineNumber)||n(e.type)},Fe=Symbol.for(`react.context`),Ie=Symbol.for(`react.memo_cache_sentinel`);let B=[],V=null,H=null,U=null,W=null,G=0,K=null;const q=Error("Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render."),J=e=>m(e.stack||``,{includeInElement:!1}),Y=()=>{let e=U;return e!==null&&(U=e.next),e},X=e=>{if(H===null)return e._currentValue;if(W===null)throw Error(`Context reads do not line up with context dependencies.`);if(Object.prototype.hasOwnProperty.call(W,`memoizedValue`)){let e=W.memoizedValue;return W=W.next,e}return e._currentValue},Le=()=>{let n=t(),r=[...e,...n.renderers.values()];for(let e of r){let t=e.currentDispatcherRef;if(t&&typeof t==`object`)return t}return null},Re=e=>`H`in e?e.H:e.current,ze=(e,t)=>{`H`in e?e.H=t:e.current=t},Z=(e,t,n,r=null)=>{B.push({displayName:r,primitive:e,stackError:Error(),value:t,dispatcherHookName:n})},Be=e=>{if(typeof e==`object`&&e){let t=e;if(typeof t.then==`function`){let e=K!==null&&G<K.length?K[G++]:t;switch(e.status){case`fulfilled`:return Z(`Promise`,e.value,`Use`),e.value;case`rejected`:throw e.reason}throw Z(`Unresolved`,e,`Use`),q}if(t.$$typeof===Fe&&`_currentValue`in t){let e=t,n=X(e);return Z(`Context (use)`,n,`Use`,e.displayName||`Context`),n}}throw Error(`An unsupported type was passed to use(): `+String(e))},Ve=e=>{let t=X(e);return Z(`Context`,t,`Context`,e.displayName||null),t},He=e=>{let t=Y(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return Z(`State`,n,`State`),[n,()=>{}]},Ue=(e,t,n)=>{let r=Y(),i=r===null?n===void 0?t:n(t):r.memoizedState;return Z(`Reducer`,i,`Reducer`),[i,()=>{}]},We=e=>{let t=Y(),n=t===null?{current:e}:t.memoizedState;return Z(`Ref`,n.current,`Ref`),n},Ge=()=>{let e=Y();return Z(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},Ke=e=>{Y(),Z(`LayoutEffect`,e,`LayoutEffect`)},qe=e=>{Y(),Z(`InsertionEffect`,e,`InsertionEffect`)},Je=e=>{Y(),Z(`Effect`,e,`Effect`)},Ye=e=>{Y();let t;typeof e==`object`&&e&&`current`in e&&(t=e.current),Z(`ImperativeHandle`,t,`ImperativeHandle`)},Xe=(e,t)=>{Z(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},Ze=e=>{let t=Y();return Z(`Callback`,t===null?e:t.memoizedState[0],`Callback`),e},Qe=e=>{let t=Y(),n=t===null?e():t.memoizedState[0];return Z(`Memo`,n,`Memo`),n},$e=(e,t)=>{let n=Y();Y();let r=n===null?t():n.memoizedState;return Z(`SyncExternalStore`,r,`SyncExternalStore`),r},et=()=>{let e=Y();Y();let t=e===null?!1:e.memoizedState;return Z(`Transition`,t,`Transition`),[t,()=>{}]},tt=e=>{let t=Y(),n=t===null?e:t.memoizedState;return Z(`DeferredValue`,n,`DeferredValue`),n},nt=()=>{let e=Y(),t=e===null?``:e.memoizedState;return Z(`Id`,t,`Id`),t},rt=e=>{let t=H;if(t==null)return[];let n=t.updateQueue?.memoCache;if(n==null)return[];let r=n.data[n.index];return r===void 0&&(r=n.data[n.index]=Array.from({length:e},()=>Ie)),n.index++,r},it=e=>{let t=Y(),n=t===null?e:t.memoizedState;return Z(`Optimistic`,n,`Optimistic`),[n,()=>{}]},at=(e,t)=>{let n,r=null;if(e!==null){let t=e.memoizedState;if(typeof t==`object`&&t&&`then`in t&&typeof t.then==`function`){let e=t;switch(e.status){case`fulfilled`:n=e.value;break;case`rejected`:r=e.reason;break;default:r=q,n=e}}else n=t}else n=t;return{value:n,error:r}},ot=e=>(t,n)=>{let r=Y();Y(),Y();let i=Error(),{value:a,error:o}=at(r,n);if(B.push({displayName:null,primitive:e,stackError:i,value:a,dispatcherHookName:e}),o!==null)throw o;return[a,()=>{},!1]},st=ot(`ActionState`),Q={readContext:X,use:Be,useCallback:Ze,useContext:Ve,useEffect:Je,useImperativeHandle:Ye,useLayoutEffect:Ke,useInsertionEffect:qe,useMemo:Qe,useReducer:Ue,useRef:We,useState:He,useDebugValue:Xe,useDeferredValue:tt,useTransition:et,useSyncExternalStore:$e,useId:nt,useHostTransitionStatus:()=>{let e=X({_currentValue:null});return Z(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:ot(`FormState`),useActionState:st,useOptimistic:it,useMemoCache:rt,useCacheRefresh:Ge,useEffectEvent:e=>(Y(),Z(`EffectEvent`,e,`EffectEvent`),e)},ct=typeof Proxy>`u`?Q:new Proxy(Q,{get(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t];let n=Error(`Missing method in Dispatcher: `+t);throw n.name=`ReactDebugToolsUnsupportedHookError`,n}}),lt=()=>{if(V!==null)return V;let e=new Map,t;try{if(Q.useContext({_currentValue:null}),Q.useState(null),Q.useReducer(e=>e,null),Q.useRef(null),typeof Q.useCacheRefresh==`function`&&Q.useCacheRefresh(),Q.useLayoutEffect(()=>{}),Q.useInsertionEffect(()=>{}),Q.useEffect(()=>{}),Q.useImperativeHandle(void 0,()=>null),Q.useDebugValue(null),Q.useCallback(()=>{}),Q.useTransition(),Q.useSyncExternalStore(()=>()=>{},()=>null,()=>null),Q.useDeferredValue(null),Q.useMemo(()=>null),Q.useOptimistic(null,e=>e),Q.useFormState(e=>e,null),Q.useActionState(e=>e,null),Q.useHostTransitionStatus(),typeof Q.useMemoCache==`function`&&Q.useMemoCache(0),typeof Q.use==`function`){Q.use({$$typeof:Fe,_currentValue:null}),Q.use({then(){},status:`fulfilled`,value:null});try{Q.use({then(){}})}catch{}}Q.useId(),typeof Q.useEffectEvent==`function`&&Q.useEffectEvent(()=>{})}finally{t=B,B=[]}for(let n of t)e.set(n.primitive,J(n.stackError));return V=e,V};let ut=0;const dt=(e,t,n)=>{let r=t[n].source;hookSearch:for(let i=0;i<e.length;i++)if(e[i].source===r){for(let r=n+1,a=i+1;r<t.length&&a<e.length;r++,a++)if(e[a].source!==t[r].source)continue hookSearch;return i}return-1},ft=(e,t)=>{let n=dt(t,e,ut);if(n!==-1)return n;for(let r=0;r<e.length&&r<5;r++)if(n=dt(t,e,r),n!==-1)return ut=r,n;return-1},$=e=>{if(!e)return``;let t=e.lastIndexOf(`[as `);if(t!==-1)return $(e.slice(t+4,-1));if(t=e.lastIndexOf(`.`),t=t===-1?0:t+1,e.slice(t).startsWith(`unstable_`)&&(t+=9),e.slice(t).startsWith(`experimental_`)&&(t+=13),e.slice(t,t+3)===`use`){if(e.length-t===3)return`Use`;t+=3}return e.slice(t)},pt=(e,t)=>{let n=$(e);return t===`HostTransitionStatus`?n===t||n===`FormStatus`:n===t},mt=(e,t)=>{let n=lt().get(t.primitive);if(n===void 0)return-1;for(let r=0;r<n.length&&r<e.length;r++)if(n[r].source!==e[r].source)return r<e.length-1&&pt(e[r].functionName,t.dispatcherHookName)&&r++,r<e.length-1&&pt(e[r].functionName,t.dispatcherHookName)&&r++,r;return-1},ht=(e,t)=>{let n=J(t.stackError),r=ft(e,n),i=mt(n,t);return r===-1||i===-1||r-i<2?i===-1?[null,null]:[n[i-1]??null,null]:[n[i-1]??null,n.slice(i,r-1)]},gt=new Set([`Context`,`Context (use)`,`DebugValue`,`Promise`,`Unresolved`,`HostTransitionStatus`]),_t=(e,t)=>{let n=[],r=null,i=n,a=0,o=[];for(let s of t){let[t,c]=ht(e,s),l=s.displayName;if(l===null&&t!==null&&(l=$(t.functionName)||$(s.dispatcherHookName)),c!==null){let e=0;if(r!==null){for(;e<c.length&&e<r.length&&c[c.length-e-1].source===r[r.length-e-1].source;)e++;for(let t=r.length-1;t>e;t--)i=o.pop()??n}for(let t=c.length-e-1;t>=1;t--){let e=[],n=c[t],r={id:null,isStateEditable:!1,name:$(c[t-1].functionName),value:void 0,subHooks:e,hookSource:{lineNumber:n.lineNumber??null,columnNumber:n.columnNumber??null,functionName:n.functionName??null,fileName:n.fileName??null}};i.push(r),o.push(i),i=e}r=c}let{primitive:u}=s,d=gt.has(u)?null:a++,f=u===`Reducer`||u===`State`,ee=l||u,p=c?.[0],m={lineNumber:p?.lineNumber??null,columnNumber:p?.columnNumber??null,functionName:p?.functionName??null,fileName:p?.fileName??null};i.push({id:d,isStateEditable:f,name:ee,value:s.value,subHooks:[],hookSource:m})}return vt(n,null),n},vt=(e,t)=>{let n=[];for(let t=0;t<e.length;t++){let r=e[t];r.name===`DebugValue`&&r.subHooks.length===0?(e.splice(t,1),t--,n.push(r)):vt(r.subHooks,r)}t!==null&&(n.length===1?t.value=n[0].value:n.length>1&&(t.value=n.map(({value:e})=>e)))},yt=(e,t)=>{let n=t;for(;n;){if(n.tag===10){let t=n.type;`_context`in t&&t._context!==void 0&&(t=t._context),e.has(t)||(e.set(t,t._currentValue),t._currentValue=n.memoizedProps.value)}n=n.return}},bt=e=>{e.forEach((e,t)=>{t._currentValue=e})},xt=e=>{if(e===q)return;if(e instanceof Error&&e.name===`ReactDebugToolsUnsupportedHookError`)throw e;let t=Error(`Error rendering inspected component`,{cause:e});throw t.name=`ReactDebugToolsRenderError`,t.cause=e,t},St=(e,t)=>{if(e&&typeof e==`object`&&`defaultProps`in e&&e.defaultProps){let n={...t},r=e.defaultProps;for(let e in r)n[e]===void 0&&(n[e]=r[e]);return n}return t},Ct=()=>{let e={};for(let t in console)try{e[t]=console[t],console[t]=()=>{}}catch{}return e},wt=e=>{for(let t in e)try{console[t]=e[t]}catch{}},Tt=(e,t)=>{let n=Re(e);ze(e,ct);let r=[],i;try{i=Error(),t()}catch(e){xt(e)}finally{r=B,B=[],ze(e,n)}return _t(i===void 0?[]:J(i),r)},Et=()=>{let e=Le();if(!e)throw Error(`No React renderer found. Make sure React is loaded and bippy's hook is installed.`);return e},Dt=e=>{if(Object.prototype.hasOwnProperty.call(e,`dependencies`)){let t=e.dependencies;W=t===null?null:t.firstContext}else if(Object.prototype.hasOwnProperty.call(e,`dependencies_old`)){let t=e.dependencies_old;W=t===null?null:t.firstContext}else if(Object.prototype.hasOwnProperty.call(e,`dependencies_new`)){let t=e.dependencies_new;W=t===null?null:t.firstContext}else if(Object.prototype.hasOwnProperty.call(e,`contextDependencies`)){let t=e.contextDependencies;W=t===null?null:t.first}else throw Error(`Unsupported React version.`)},Ot=e=>{let t=Et();if(e.tag!==0&&e.tag!==15&&e.tag!==11)throw Error(`Unknown Fiber. Needs to be a function component to inspect hooks.`);lt(),U=e.memoizedState,H=e;let n=e.dependencies&&e.dependencies._debugThenableState,r=n?n.thenables||n:null;K=Array.isArray(r)?r:null,G=0,Dt(e);let i=e.type,a=e.memoizedProps;i!==e.elementType&&(a=St(i,a));let o=Ct(),s=new Map;try{return W!==null&&!Object.prototype.hasOwnProperty.call(W,`memoizedValue`)&&yt(s,e),e.tag===11?Tt(t,()=>{i.render(a,e.ref)}):Tt(t,()=>{i(a)})}finally{H=null,U=null,W=null,K=null,G=0,bt(s),wt(o)}},kt=new Set([`Effect`,`LayoutEffect`,`InsertionEffect`,`ImperativeHandle`,`DebugValue`]),At=/(?:const|let|var)\s+((?:\[[\s\S]*?\]|\w+))\s*=\s*(?:[\w$.]+\.)*use[A-Z]\w*\s*(?:<[\s\S]*?>)?\s*\(/g,jt=e=>`${e.fileName??``}:${e.lineNumber??0}:${e.columnNumber??0}`,Mt=e=>{let t=[],n=e=>{for(let r of e)kt.has(r.name)||(t.push(r),r.subHooks.length>0&&n(r.subHooks))};return n(e),t},Nt=(e,t,n)=>{if(!t)return null;let r=e.indexOf(n);return r===-1?null:t[r]??null},Pt=(e,t)=>{let n=Nt(e.sources,e.sourcesContent,t);if(n)return n;if(e.sections)for(let n of e.sections){let e=Nt(n.map.sources,n.map.sourcesContent,t);if(e)return e}return null},Ft=e=>{let t=e.trim();if(t.startsWith(`[`)){let e=t.match(/\[\s*(\w+)/);return e?e[1]:null}return/^\w+$/.test(t)?t:null},It=(e,t,n)=>{let r=e.split(`
`),i=t-1;if(i<0||i>=r.length)return null;let a=Math.max(0,i-10),o=r.slice(a,i+1).join(`
`),s=[...o.matchAll(At)],c=o.lastIndexOf(`
`)+1+n,l=s.filter(e=>e.index<=c).at(-1);return l?Ft(l[1]):null},Lt=async(e,t,n,r)=>{let{sourceMapsByFile:i,sourceContentCache:a,fetchFn:o}=r;i.has(e)||i.set(e,await D(e,!0,o));let s=i.get(e)??null;if(s){let r=w(s,t,n);if(r?.fileName&&r.lineNumber!==void 0){let t=`sourcemap:${e}:${r.fileName}`;a.has(t)||a.set(t,Pt(s,r.fileName));let n=a.get(t)??null;if(n)return{sourceCode:n,lineNumber:r.lineNumber,columnNumber:r.columnNumber??0}}}if(!a.has(e))try{let t=await(o??fetch)(e);a.set(e,t.ok?await t.text():null)}catch{a.set(e,null)}let c=a.get(e)??null;return c?{sourceCode:c,lineNumber:t,columnNumber:n}:null},Rt=async(e,t)=>{let n=new Map,r=Mt(e);if(r.length===0)return n;let i={sourceMapsByFile:new Map,sourceContentCache:new Map,fetchFn:t};return await Promise.all(r.map(async e=>{let t=e.hookSource;if(!t||!t.fileName||t.lineNumber===null||t.columnNumber===null)return;let r=await Lt(t.fileName,t.lineNumber,t.columnNumber,i);if(!r)return;let a=It(r.sourceCode,r.lineNumber,r.columnNumber);if(a){let e=jt(t);n.set(e,a)}})),n};export{M as describeDebugInfoFrame,F as describeFiber,It as extractHookVariableName,h as extractLocation,L as formatOwnerStack,Pe as getDisplayNameFromSource,I as getFallbackOwnerStack,Ot as getFiberHooks,jt as getHookSourceLocationKey,R as getOwnerStack,De as getSource,w as getSourceFromSourceMap,D as getSourceMap,E as getSourceMapImpl,z as hasDebugSource,k as hasDebugStack,Me as isSourceFile,je as normalizeFileName,ne as parseFFOrSafari,v as parseFFOrSafariString,Rt as parseHookNames,re as parseOpera,ae as parseOpera10,oe as parseOpera11,ie as parseOpera9,m as parseStack,te as parseV8OrIE,_ as parseV8OrIeString,S as sourceMapCache,O as symbolicateStack};