bippy 0.6.1-dev.8585943 → 0.6.1-dev.8880a6d
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/README.md +168 -88
- package/dist/core.cjs +1 -1
- package/dist/core.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +141 -2
- package/dist/index.d.ts +141 -2
- package/dist/index.js +1 -1
- package/dist/rdt-hook.cjs +1 -1
- package/dist/rdt-hook.js +1 -1
- package/dist/source.cjs +6 -6
- package/dist/source.js +6 -6
- package/package.json +1 -11
- package/src/core.ts +18 -17
- package/src/react.ts +2 -2
- package/dist/core.d.cts +0 -154
- package/dist/core.d.ts +0 -154
- package/dist/core2.cjs +0 -9
- package/dist/core2.d.cts +0 -11
- package/dist/core2.d.ts +0 -11
- package/dist/core2.js +0 -9
package/dist/source.js
CHANGED
|
@@ -6,18 +6,18 @@
|
|
|
6
6
|
* This source code is licensed under the MIT license found in the
|
|
7
7
|
* LICENSE file in the root directory of this source tree.
|
|
8
8
|
*/
|
|
9
|
-
import{a as e,r as t}from"./rdt-hook.js";import{C as n,
|
|
9
|
+
import{a as e,r as t}from"./rdt-hook.js";import{C as n,E as r,O as i,S as a,T as o,a as s,b as c,d as l,w as u}from"./core.js";const d=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,ee=[`rsc://`,`file:///`,`webpack-internal://`,`webpack://`,`node:`,`turbopack://`,`metro://`,`/app-pages-browser/`,`/(app-pages-browser)/`],te=[`rsc://`,`about://React/`],f=[`<anonymous>`,`eval`,``],p=/\.(cjs|cts|js|jsx|mdx|mjs|mts|ts|tsx)$/,ne=/(\.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,re=/^\?[\w~.-]+(?:=[^&#]*)?(?:&[\w~.-]+(?:=[^&#]*)?)*$/,ie=/\(at [^)]+\)$/,m=[`react_stack_bottom_frame`,`react-stack-bottom-frame`],ae=Error,oe=()=>ae.prepareStackTrace,h=e=>{ae.prepareStackTrace=e},se=/(^|@)\S+:\d+/,ce=/^\s*at .*(\S+:\d+|\(native\))/m,le=/^(eval@)?(\[native code\])?$/,g=(e,t)=>{if(t?.includeInElement!==!1){let t=e.split(`
|
|
10
10
|
`),n=[];for(let e of t)if(/^\s*at\s+/.test(e)){let t=de(e)[0];t&&n.push(t)}else if(/^\s*in\s+/.test(e)){let t=e.replace(/^\s*in\s+/,``).replace(/\s*\(at .*\)$/,``);n.push({functionName:t,source:e})}else if(e.match(se)){let t=fe(e)[0];t&&n.push(t)}return n}return e.match(ce)?de(e):fe(e)},ue=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]},de=e=>e.split(`
|
|
11
11
|
`).filter(e=>!!e.match(ce)).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=ue(r?r[1]:n);return{functionName:r&&n||void 0,fileName:[`eval`,`<anonymous>`,`(native)`].includes(i[0])?void 0:i[0],lineNumber:i[1]?+i[1]:void 0,columnNumber:i[2]?+i[2]:void 0,source:t}}),fe=e=>e.split(`
|
|
12
12
|
`).filter(e=>!e.match(le)).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=ue(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}}}),pe=new WeakMap,me=e=>m.some(t=>e.includes(t)),he=e=>{let t=e.getFunctionName?.()??``;if(t)return t;let n=e.getTypeName?.()??``,r=e.getMethodName?.()??``;return n&&r?`${n}.${r}`:r},ge=e=>{let t=[];for(let n=1;n<e.length;n++){let r=e[n],i=he(r);if(me(i))return{frames:t,isTrusted:!0};if(r.isNative?.()){t.push({functionName:i||void 0});continue}let a=r.getScriptNameOrSourceURL?.()??``;!a&&r.isEval?.()&&(a=r.getEvalOrigin?.()??``),t.push({functionName:i&&i!==`<anonymous>`?i:void 0,fileName:a&&a!==`<anonymous>`?a:void 0,lineNumber:r.getLineNumber?.()??void 0,columnNumber:r.getColumnNumber?.()??void 0,enclosingLineNumber:r.getEnclosingLineNumber?.()??void 0,enclosingColumnNumber:r.getEnclosingColumnNumber?.()??void 0,source:` at ${r.toString()}`})}return{frames:t,isTrusted:!1}},_e=e=>{let t=-1;for(let n of m)if(t=e.indexOf(n),t!==-1)break;let n=t===-1?e:e.slice(0,e.lastIndexOf(`
|
|
13
13
|
`,t));return{frames:g(n).slice(1),isTrusted:t!==-1}},_=e=>{let t=pe.get(e);if(t)return t;let n=null,r=(e,t)=>{n=ge(t);let r=`${e.name||`Error`}: ${e.message||``}`;for(let e of t)r+=`\n at ${e.toString()}`;return r},i=oe();h(r);let a;try{a=String(e.stack)}finally{h(i)}let o=n??_e(a);return pe.set(e,o),o},ve=()=>{let n=e(),r=new Set([...t,...n.renderers.values()]),i=[],a=new Set;for(let e of r){let t=e.currentDispatcherRef;!t||a.has(t)||(a.add(t),i.push(t))}return i},ye=e=>`H`in e?e.H:e.current,v=(e,t)=>{`H`in e?e.H=t:e.current=t};var be=44,xe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Se=new Uint8Array(64),Ce=new Uint8Array(128);for(let e=0;e<xe.length;e++){let t=xe.charCodeAt(e);Se[e]=t,Ce[t]=e}function y(e,t){let n=0,r=0,i=0;do i=Ce[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 we(e,t){return e.pos>=t?!1:e.peek()!==be}var Te=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 Ee(e){let{length:t}=e,n=new Te(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=y(n,i),i<u&&(l=!1),u=i,we(n,e)?(a=y(n,a),o=y(n,o),s=y(n,s),we(n,e)?(c=y(n,c),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||De(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function De(e){e.sort(Oe)}function Oe(e,t){return e[0]-t[0]}const b=/^data:application\/json(?:;[^,]*)?,/i,ke=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/,Ae=new Map,je=new WeakMap;var Me=class extends Error{};const Ne=new Map,Pe=new WeakMap,Fe=new Set([`chrome-extension:`,`moz-extension:`,`safari-web-extension:`]),x=new Set([`http:`,`https:`,...Fe]),Ie=(e,t,n,r)=>{let[,i,a,o,s]=e;if(i===void 0||a===void 0||o===void 0)return null;let c=t[i];return c?{columnNumber:o,fileName:c,functionName:s===void 0?void 0:r?.[s]||void 0,isIgnoreListed:n?.has(i)??!1,lineNumber:a+1}:null},Le=(e,t,n,r,i,a)=>{if(n<0||n>=e.length)return null;let o=e[n];if(!o||o.length===0)return null;let s=null,c=0,l=o.length-1;for(;c<=l;){let e=c+l>>1;o[e][0]<=r?(s=o[e],c=e+1):l=e-1}return!s||s.length<4?null:Ie(s,t,i,a)},S=(e,t,n)=>{if(e.sections){let r=t-1,i=null;for(let t of e.sections)if(r>t.offset.line||r===t.offset.line&&n>=t.offset.column)i=t;else break;if(!i)return null;let a=r-i.offset.line,o=r===i.offset.line?n-i.offset.column:n;return Le(i.map.mappings,i.map.sources,a,o,i.map.ignoredSourceIndices,i.map.names)}return Le(e.mappings,e.sources,t-1,n,e.ignoredSourceIndices,e.names)},Re=(e,t,n,r,i)=>{if(!n)return null;let a=n.indexOf(r);if(a===-1)return null;let o=null;for(let r of e)for(let e of r){if(e[4]!==a)continue;let r=Ie(e,t,i,n);if(r){if(!r.isIgnoreListed)return r;o??=r}}return o},ze=(e,t)=>{if(e.sections){let n=null;for(let r of e.sections){let e=Re(r.map.mappings,r.map.sources,r.map.names,t,r.map.ignoredSourceIndices);if(e){if(!e.isIgnoreListed)return e;n??=e}}return n}return Re(e.mappings,e.sources,e.names,t,e.ignoredSourceIndices)},Be=(e,t,n)=>{if(!t)return null;let r=e.indexOf(n);return r===-1?null:t[r]??null},C=(e,t)=>{let n=Be(e.sources,e.sourcesContent,t);if(n!==null)return n;if(!e.sections)return null;for(let n of e.sections){let e=Be(n.map.sources,n.map.sourcesContent,t);if(e!==null)return e}return null},w=(e,t)=>{if(b.test(e))return e;try{return new URL(e,t).toString()}catch{try{let n=new URL(e,new URL(t,`https://bippy.invalid/`));return`${n.pathname}${n.search}${n.hash}`}catch{return null}}},Ve=e=>{try{let t=new URL(e),n=t.pathname.lastIndexOf(`.bundle`);if(n===-1)return null;let r=t.pathname.slice(n+7);if(r&&!r.startsWith(`//&`))return null;if(t.pathname=`${t.pathname.slice(0,n)}.map`,r){let e=new URLSearchParams(r.slice(3));for(let[n,r]of e)t.searchParams.set(n,r)}return t.hash=``,t.toString()}catch{return null}},He=(e,t,n)=>{let r=n.headers.get(`sourcemap`)??n.headers.get(`x-sourcemap`);if(r)return w(r.trim(),e);let i,a=t.length;for(;a>0&&!i;){let e=t.lastIndexOf(`
|
|
14
|
-
`,a-1)+1,n=t.slice(e,a).match(ke);n&&(i=n[1]||n[2]),a=e-1}return i?w(i,e):Ve(e)},T=e=>{if(typeof e!=`object`||!e)return!1;let t=Reflect.get(e,`version`),n=Reflect.get(e,`mappings`),r=Reflect.get(e,`file`),i=Reflect.get(e,`names`),a=Reflect.get(e,`sourceRoot`),o=Reflect.get(e,`sources`),s=Reflect.get(e,`sourcesContent`),c=Reflect.get(e,`ignoreList`),l=Reflect.get(e,`x_google_ignoreList`);if(t!==3||typeof n!=`string`||r!==void 0&&typeof r!=`string`||i!==void 0&&(!Array.isArray(i)||i.some(e=>typeof e!=`string`))||a!==void 0&&typeof a!=`string`||s!==void 0&&(!Array.isArray(s)||s.some(e=>typeof e!=`string`&&e!==null))||c!==void 0&&(!Array.isArray(c)||c.some(e=>!Number.isInteger(e)||e<0))||l!==void 0&&(!Array.isArray(l)||l.some(e=>!Number.isInteger(e)||e<0))||!Array.isArray(o)||o.some(e=>typeof e!=`string`)||s&&s.length!==o.length)return!1;let u=o.length;return[...c??[],...l??[]].every(e=>e<u)},Ue=e=>{if(typeof e!=`object`||!e)return!1;let t=Reflect.get(e,`version`),n=Reflect.get(e,`sections`);return t!==3||!Array.isArray(n)?!1:n.every(e=>{if(typeof e!=`object`||!e)return!1;let t=Reflect.get(e,`map`),n=Reflect.get(e,`url`),r=Reflect.get(e,`offset`);if(typeof r!=`object`||!r)return!1;let i=Reflect.get(r,`column`),a=Reflect.get(r,`line`);return T(t)!==(typeof n==`string`&&n.length>0)&&typeof i==`number`&&Number.isInteger(i)&&i>=0&&typeof a==`number`&&Number.isInteger(a)&&a>=0})},We=e=>{let t=e.ignoreList??e.x_google_ignoreList;return t?.length?new Set(t):void 0},Ge=(e,t,n)=>{if(!e||d.test(t)||t.startsWith(`/`))return t;let r=e.endsWith(`/`)?e:`${e}/`,i=t.replace(/^\.\//,``);try{let e=d.test(r)?r:new URL(r,n).toString();return new URL(i,e).toString()}catch{let e=`${r}${i}`.split(`/`),t=[];for(let n of e)n===`..`?t.pop():n!==`.`&&t.push(n);return t.join(`/`)}},Ke=(e,t)=>e.sources.map(n=>Ge(e.sourceRoot,n,t)),qe=(e,t)=>{try{return{file:e.file,ignoredSourceIndices:We(e),mappings:Ee(e.mappings),names:e.names,sourceRoot:e.sourceRoot,sources:Ke(e,t),sourcesContent:e.sourcesContent,version:3}}catch{return null}},Je=async(e,t,n)=>{let r=[],i=-1,a=-1;for(let o of e.sections){if(o.offset.line<i||o.offset.line===i&&o.offset.column<=a)return null;i=o.offset.line,a=o.offset.column;let e=o.url?w(o.url,t):null,s=o.map??(e?await n(e):null);if(!s)return null;let c=e??t;try{r.push({map:{...s,ignoredSourceIndices:We(s),mappings:Ee(s.mappings),sources:Ke(s,c)},offset:o.offset})}catch{return null}}let o=new Set;for(let e of r)for(let t of e.map.sources)o.add(t);return{file:e.file,mappings:[],names:[],sections:r,sourceRoot:void 0,sources:Array.from(o),sourcesContent:void 0,version:3}},Ye=(e,t=!1)=>{if(!e)return!1;let n=e.trim();if(!n)return!1;let r=n.match(d);if(!r)return!0;let i=r[0].toLowerCase();return t||x.has(i)},Xe=()=>typeof window>`u`&&typeof process<`u`&&typeof process.versions?.node==`string`,Ze=e=>{try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&!t.username&&!t.password}catch{return!1}},E=e=>{try{return new URL(e).protocol}catch{return null}},D=e=>{let t=E(e);return t!==null&&Fe.has(t)},Qe=(e,t)=>{try{let n=new URL(e),r=new URL(t);return n.protocol===r.protocol&&n.host===r.host}catch{return!1}},$e=(e,t,n,r)=>{if(b.test(t))return!0;if(!Ye(t,r))return!1;let i=E(e),a=E(t),o=i!==null&&!x.has(i)||a!==null&&!x.has(a);return!(n||o||D(e)||D(t))||Qe(e,t)},et=e=>e===408||e===425||e===429||e>=500,tt=e=>{if(e.ok)return!0;if(et(e.status))throw new Me;return!1},nt=(e,t,n)=>!n||t.url.length===0||Qe(e,t.url),rt=e=>{if(e.timeoutMs===void 0||e.timeoutMs<0)return{cleanup:()=>{},signal:e.signal};let t=new AbortController,n=()=>t.abort(e.signal?.reason);e.signal?.aborted?n():e.signal?.addEventListener(`abort`,n,{once:!0});let r=setTimeout(()=>t.abort(new
|
|
14
|
+
`,a-1)+1,n=t.slice(e,a).match(ke);n&&(i=n[1]||n[2]),a=e-1}return i?w(i,e):Ve(e)},T=e=>{if(typeof e!=`object`||!e)return!1;let t=Reflect.get(e,`version`),n=Reflect.get(e,`mappings`),r=Reflect.get(e,`file`),i=Reflect.get(e,`names`),a=Reflect.get(e,`sourceRoot`),o=Reflect.get(e,`sources`),s=Reflect.get(e,`sourcesContent`),c=Reflect.get(e,`ignoreList`),l=Reflect.get(e,`x_google_ignoreList`);if(t!==3||typeof n!=`string`||r!==void 0&&typeof r!=`string`||i!==void 0&&(!Array.isArray(i)||i.some(e=>typeof e!=`string`))||a!==void 0&&typeof a!=`string`||s!==void 0&&(!Array.isArray(s)||s.some(e=>typeof e!=`string`&&e!==null))||c!==void 0&&(!Array.isArray(c)||c.some(e=>!Number.isInteger(e)||e<0))||l!==void 0&&(!Array.isArray(l)||l.some(e=>!Number.isInteger(e)||e<0))||!Array.isArray(o)||o.some(e=>typeof e!=`string`)||s&&s.length!==o.length)return!1;let u=o.length;return[...c??[],...l??[]].every(e=>e<u)},Ue=e=>{if(typeof e!=`object`||!e)return!1;let t=Reflect.get(e,`version`),n=Reflect.get(e,`sections`);return t!==3||!Array.isArray(n)?!1:n.every(e=>{if(typeof e!=`object`||!e)return!1;let t=Reflect.get(e,`map`),n=Reflect.get(e,`url`),r=Reflect.get(e,`offset`);if(typeof r!=`object`||!r)return!1;let i=Reflect.get(r,`column`),a=Reflect.get(r,`line`);return T(t)!==(typeof n==`string`&&n.length>0)&&typeof i==`number`&&Number.isInteger(i)&&i>=0&&typeof a==`number`&&Number.isInteger(a)&&a>=0})},We=e=>{let t=e.ignoreList??e.x_google_ignoreList;return t?.length?new Set(t):void 0},Ge=(e,t,n)=>{if(!e||d.test(t)||t.startsWith(`/`))return t;let r=e.endsWith(`/`)?e:`${e}/`,i=t.replace(/^\.\//,``);try{let e=d.test(r)?r:new URL(r,n).toString();return new URL(i,e).toString()}catch{let e=`${r}${i}`.split(`/`),t=[];for(let n of e)n===`..`?t.pop():n!==`.`&&t.push(n);return t.join(`/`)}},Ke=(e,t)=>e.sources.map(n=>Ge(e.sourceRoot,n,t)),qe=(e,t)=>{try{return{file:e.file,ignoredSourceIndices:We(e),mappings:Ee(e.mappings),names:e.names,sourceRoot:e.sourceRoot,sources:Ke(e,t),sourcesContent:e.sourcesContent,version:3}}catch{return null}},Je=async(e,t,n)=>{let r=[],i=-1,a=-1;for(let o of e.sections){if(o.offset.line<i||o.offset.line===i&&o.offset.column<=a)return null;i=o.offset.line,a=o.offset.column;let e=o.url?w(o.url,t):null,s=o.map??(e?await n(e):null);if(!s)return null;let c=e??t;try{r.push({map:{...s,ignoredSourceIndices:We(s),mappings:Ee(s.mappings),sources:Ke(s,c)},offset:o.offset})}catch{return null}}let o=new Set;for(let e of r)for(let t of e.map.sources)o.add(t);return{file:e.file,mappings:[],names:[],sections:r,sourceRoot:void 0,sources:Array.from(o),sourcesContent:void 0,version:3}},Ye=(e,t=!1)=>{if(!e)return!1;let n=e.trim();if(!n)return!1;let r=n.match(d);if(!r)return!0;let i=r[0].toLowerCase();return t||x.has(i)},Xe=()=>typeof window>`u`&&typeof process<`u`&&typeof process.versions?.node==`string`,Ze=e=>{try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&!t.username&&!t.password}catch{return!1}},E=e=>{try{return new URL(e).protocol}catch{return null}},D=e=>{let t=E(e);return t!==null&&Fe.has(t)},Qe=(e,t)=>{try{let n=new URL(e),r=new URL(t);return n.protocol===r.protocol&&n.host===r.host}catch{return!1}},$e=(e,t,n,r)=>{if(b.test(t))return!0;if(!Ye(t,r))return!1;let i=E(e),a=E(t),o=i!==null&&!x.has(i)||a!==null&&!x.has(a);return!(n||o||D(e)||D(t))||Qe(e,t)},et=e=>e===408||e===425||e===429||e>=500,tt=e=>{if(e.ok)return!0;if(et(e.status))throw new Me;return!1},nt=(e,t,n)=>!n||t.url.length===0||Qe(e,t.url),rt=e=>{if(e.timeoutMs===void 0||e.timeoutMs<0)return{cleanup:()=>{},signal:e.signal};let t=new AbortController,n=()=>t.abort(e.signal?.reason);e.signal?.aborted?n():e.signal?.addEventListener(`abort`,n,{once:!0});let r=setTimeout(()=>t.abort(new o(`Source map request timed out`)),e.timeoutMs);return{cleanup:()=>{clearTimeout(r),e.signal?.removeEventListener(`abort`,n)},signal:t.signal}},it=async(e,t)=>{let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t)return null;if(!e.body){let n=await e.text();return new TextEncoder().encode(n).byteLength>t?null:n}let r=e.body.getReader(),i=new TextDecoder,a=[],o=0;try{for(;;){let{done:e,value:n}=await r.read();if(e)break;if(o+=n.byteLength,o>t)return await r.cancel(),null;a.push(i.decode(n,{stream:!0}))}return a.push(i.decode()),a.join(``)}finally{r.releaseLock()}},at=e=>{try{if(typeof globalThis.atob==`function`)return new TextDecoder().decode(Uint8Array.from(globalThis.atob(e),e=>e.charCodeAt(0)))}catch{return null}let t=e.replace(/\s/g,``).replace(/=+$/,``),n=[],r=0,i=0;for(let e of t){let t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`.indexOf(e);if(t===-1)return null;r=r*64+t,i+=6,i>=8&&(i-=8,n.push(Math.floor(r/2**i)&255),r%=2**i)}return new TextDecoder().decode(Uint8Array.from(n))},ot=(e,t)=>{let n=e.indexOf(`,`);if(n===-1)return null;let r=e.slice(0,n),i=e.slice(n+1);if(i.length>t*2)return null;try{let e=r.toLowerCase().includes(`;base64`)?at(i):decodeURIComponent(i);return e===null||new TextEncoder().encode(e).byteLength>t?null:JSON.parse(e)}catch{return null}},st=async(e,t,n,r,i)=>{if(b.test(e))return ot(e,r);let a=await t(e,{redirect:i?`error`:`follow`,signal:n});if(!tt(a)||!nt(e,a,i))return null;let o=await it(a,r);if(o===null)return null;try{return JSON.parse(o)}catch{return null}},ct=async(e,t,n={})=>{let r=t!==void 0;if(!Ye(e,r))return null;let i=Xe(),a=i||D(e);if(i&&!t&&(!n.allowUnsafeServerFetch||!Ze(e)))return null;let o=t??(typeof globalThis.fetch==`function`?globalThis.fetch.bind(globalThis):void 0);if(!o)return null;let s=n.maxBundleSizeBytes??26214400,c=n.maxSourceMapSizeBytes??104857600;if(s<0||c<0)return null;let l=rt(n);try{let t=await o(e,{redirect:a?`error`:`follow`,signal:l.signal});if(!tt(t)||!nt(e,t,a))return null;let n=await it(t,s);if(n===null)return null;let i=He(e,n,t);if(!i||!$e(e,i,a,r))return null;let u=await st(i,o,l.signal,c,a);return T(u)?qe(u,i):Ue(u)?Je(u,i,async t=>{if(!$e(e,t,a,r))return null;let n=await st(t,o,l.signal,c,a);return T(n)?n:null}):null}finally{l.cleanup()}},lt=(e,t,n)=>{if(!n)return t;let r=e.get(n);return r||(r=new Map,e.set(n,r)),r},ut=e=>lt(je,Ae,e),dt=e=>lt(Pe,Ne,e),ft=(e,t)=>t.allowUnsafeServerFetch===void 0&&t.maxBundleSizeBytes===void 0&&t.maxSourceMapSizeBytes===void 0&&t.timeoutMs===void 0?e:`${e}\0${t.allowUnsafeServerFetch??``}\0${t.maxBundleSizeBytes??``}\0${t.maxSourceMapSizeBytes??``}\0${t.timeoutMs??``}`,O=async(e,t=!0,n,r={})=>{let i=t&&r.signal===void 0,a=ut(n),o=dt(n),s=ft(e,r);if(i&&a.has(s))return a.get(s)??null;let c=i?o.get(s):void 0;if(c)return(await c).sourceMap;let l=ct(e,n,r).then(e=>({sourceMap:e,isTransientFailure:!1}),()=>({sourceMap:null,isTransientFailure:!0}));i&&o.set(s,l);let{sourceMap:u,isTransientFailure:d}=await l;return i&&(o.delete(s),d||a.set(s,u)),u},k=async(e,t=!0,n)=>Promise.all(e.map(async e=>{if(!e.fileName)return e;let r=await O(e.fileName,t,n);if(!r||typeof e.lineNumber!=`number`||typeof e.columnNumber!=`number`)return e;let i=S(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,functionName:i.functionName??e.functionName,lineNumber:i.lineNumber,columnNumber:i.columnNumber,isIgnoreListed:i.isIgnoreListed,isSymbolicated:!0}:e})),A=e=>e._debugStack instanceof Error&&typeof e._debugStack?.stack==`string`,pt=e=>`tag`in e&&typeof e.tag==`number`,j=e=>{let t=null;if(c(e,n=>{if(n===e)return!1;let r=n._debugOwner;return(r===e||e.alternate!==null&&r===e.alternate)&&n._debugStack instanceof Error&&(t=n._debugStack,!0)}),!t)return null;let{frames:n,isTrusted:r}=_(t);if(!r)return null;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t.fileName)return{...t,lineNumber:t.enclosingLineNumber||t.lineNumber,columnNumber:t.enclosingColumnNumber||t.columnNumber}}return null},mt=()=>{let e=[];for(let t of ve())e.push({currentDispatcherRef:t,value:ye(t)}),v(t,null);return e},ht=e=>{for(let{currentDispatcherRef:t,value:n}of e)v(t,n)},M=e=>`\n in ${e}`,gt=(e,t)=>{let n=M(e);return t&&(n+=` (at ${t})`),n};let N=!1;const P=new WeakMap,F=(e,t)=>{if(!e||N)return``;let n=P.get(e);if(n!==void 0)return n;let r=oe();h(void 0),N=!0;let i=mt(),a=console.error,o=console.warn;console.error=()=>{},console.warn=()=>{};try{let n={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{Function.prototype.apply.call(t,void 0,[])}catch(e){n=e}Function.prototype.apply.call(e,t.prototype,[])}}else{try{throw Error()}catch(e){n=e}let t=Function.prototype.apply.call(e,void 0,[]);typeof t==`object`&&t&&`catch`in t&&typeof t.catch==`function`&&t.catch(()=>void 0)}}catch(e){if(e instanceof Error&&n instanceof Error&&typeof e.stack==`string`)return[e.stack,n.stack]}return[null,null]}};Object.defineProperty(n.DetermineComponentFrameRoot,"displayName",{value:`DetermineComponentFrameRoot`}),Object.getOwnPropertyDescriptor(n.DetermineComponentFrameRoot,`name`)?.configurable&&Object.defineProperty(n.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});let[r,i]=n.DetermineComponentFrameRoot();if(r&&i){let t=r.split(`
|
|
15
15
|
`),n=i.split(`
|
|
16
|
-
`),a=0,
|
|
16
|
+
`),a=0,o=0;for(;a<t.length&&!t[a].includes(`DetermineComponentFrameRoot`);)a++;for(;o<n.length&&!n[o].includes(`DetermineComponentFrameRoot`);)o++;if(a===t.length||o===n.length)for(a=t.length-1,o=n.length-1;a>=1&&o>=0&&t[a]!==n[o];)o--;for(;a>=1&&o>=0;a--,o--)if(t[a]!==n[o]){if(a!==1||o!==1)do if(a--,o--,o<0||t[a]!==n[o]){let n=`\n${t[a].replace(` at new `,` at `)}`,[r]=g(n);if(!r?.fileName)continue;let i=s(e);return i&&n.includes(`<anonymous>`)&&(n=n.replace(`<anonymous>`,i)),P.set(e,n),n}while(a>=1&&o>=0);break}}}finally{N=!1,h(r),ht(i),console.error=a,console.warn=o}let c=s(e),l=c?M(c):``;return P.set(e,l),l},_t=(e,t)=>{let n=``,r=i(e);switch(e.tag){case r.ActivityComponent:n=M(`Activity`);break;case r.ClassComponent:n=F(e.type,!0);break;case r.ForwardRef:n=F(l(e.type)??e.type,!1);break;case r.FunctionComponent:case r.SimpleMemoComponent:n=F(l(e.type)??e.type,!1);break;case r.HostComponent:case r.HostHoistable:case r.HostSingleton:typeof e.type==`string`&&(n=M(e.type));break;case r.LazyComponent:n=M(`Lazy`);break;case r.SuspenseComponent:n=e.child!==t&&t!==null?M(`Suspense Fallback`):M(`Suspense`);break;case r.SuspenseListComponent:n=M(`SuspenseList`);break;case r.ViewTransitionComponent:n=M(`ViewTransition`);break;default:return``}return n},vt=e=>{try{let t=``,n=e,r=null;do{t+=_t(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+=gt(r.name,r.env))}r=n,n=n.return}while(n);return t}catch(e){return e instanceof Error?`\nBippy couldn’t generate the stack: ${e.message}\n${e.stack}`:``}},yt=e=>{let t=e;if(!t)return``;t.startsWith(`Error: react-stack-top-frame
|
|
17
17
|
`)&&(t=t.slice(29));let n=t.indexOf(`
|
|
18
18
|
`);n!==-1&&(t=t.slice(n+1));let r=Math.max(...m.map(e=>t.indexOf(e)));if(r!==-1&&(r=t.lastIndexOf(`
|
|
19
|
-
`,r)),r!==-1)t=t.slice(0,r);else return``;return t},bt=e=>!!(e.functionName&&e.fileName&&wt(e.fileName)),xt=(e,t)=>e.fileName===t.fileName&&e.lineNumber===t.lineNumber&&e.columnNumber===t.columnNumber,St=e=>{let t=new Map;for(let n of e){if(!bt(n))continue;let e=n.functionName,r=t.get(e)??[];r.some(e=>xt(e,n))||(r.push(n),t.set(e,r))}return t},Ct=(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})`)}},wt=e=>te.some(t=>e.startsWith(t)),Tt=e=>!e.isServer&&e.fileName&&wt(e.fileName)?{...e,isServer:!0}:e,Et=e=>{let t=[],n=e;for(;n;)if(pt(n)){let e=n;if(n=e._debugOwner,n&&A(e)){let{frames:n,isTrusted:r}=_(e._debugStack);if(r)for(let e of n)t.push(Tt(e))}}else{let e=n;if(n=e.owner,n&&e.debugStack instanceof Error)for(let n of _(e.debugStack).frames)t.push({...n,isServer:!0})}return t},Dt=e=>{let t=[];return
|
|
20
|
-
`),r=t-1;if(r<0||r>=n.length)return null;for(let e=0;e<=5;e++){let t=e===0?[r]:[r-e,r+e];for(let e of t){if(e<0||e>=n.length)continue;let t=Bt(n[e]);if(t)return t}}return null},Ht=async(e,t=!0,n)=>{let r=j(e)??Ot(e).find(e=>e.fileName);if(!r?.fileName)return o(e.type);let i=await O(r.fileName,t,n);if(!i)return o(e.type);let a=null;if(typeof r.lineNumber==`number`&&typeof r.columnNumber==`number`&&(a=S(i,r.lineNumber,r.columnNumber)),!a?.fileName||!a.lineNumber)return o(e.type);let s=C(i,a.fileName);return(s?Vt(s,a.lineNumber):null)||(a.functionName??o(e.type))},Ut=Symbol.for(`react.context`),Wt=Symbol.for(`react.memo_cache_sentinel`);let R=[],z=null,B=null,V=null,H=null,U=0,W=null;const G=Error("Suspense interrupted this render. This error is an internal implementation detail of `use`."),K=e=>g(e.stack||``,{includeInElement:!1}),q=()=>{let e=V;return e!==null&&(V=e.next),e},J=e=>typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`,Gt=e=>typeof e==`object`&&!!e&&`current`in e,Y=e=>typeof e==`object`&&!!e&&`_currentValue`in e,Kt=e=>typeof e==`object`&&!!e&&`context`in e&&`next`in e,qt=e=>typeof e==`object`&&!!e&&`render`in e&&typeof e.render==`function`,X=e=>{if(B===null)return e._currentValue;if(H===null)throw new l(`Context reads don’t match context dependencies.`);if(Object.hasOwn(H,`memoizedValue`)){let e=H.memoizedValue;return H=H.next,e}return e._currentValue},Z=(e,t,n,r=null)=>{R.push({displayName:r,primitive:e,stackError:Error(),value:t,dispatcherHookName:n})},Jt=e=>{if(typeof e==`object`&&e){if(J(e)){let t=W!==null&&U<W.length?W[U++]:e,n=J(t)?t:e;switch(n.status){case`fulfilled`:return Z(`Promise`,n.value,`Use`),n.value;case`rejected`:throw n.reason}throw Z(`Unresolved`,n,`Use`),G}if(`$$typeof`in e&&e.$$typeof===Ut&&Y(e)){let t={_currentValue:e._currentValue,displayName:typeof e.displayName==`string`?e.displayName:void 0},n=X(t);return Z(`Context (use)`,n,`Use`,t.displayName??`Context`),n}}throw new l(`use() received an unsupported value: `+String(e))},Yt=e=>{let t=X(e);return Z(`Context`,t,`Context`,e.displayName??null),t},Xt=e=>{let t=q(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return Z(`State`,n,`State`),[n,()=>{}]},Zt=(e,t,n)=>{let r=q(),i=r===null?n===void 0?t:n(t):r.memoizedState;return Z(`Reducer`,i,`Reducer`),[i,()=>{}]},Qt=e=>{let t=q(),n=Gt(t?.memoizedState)?t.memoizedState:{current:e};return Z(`Ref`,n.current,`Ref`),n},$t=()=>{let e=q();return Z(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},en=e=>{q(),Z(`LayoutEffect`,e,`LayoutEffect`)},tn=e=>{q(),Z(`InsertionEffect`,e,`InsertionEffect`)},nn=e=>{q(),Z(`Effect`,e,`Effect`)},rn=e=>{q();let t=Gt(e)?e.current:void 0;Z(`ImperativeHandle`,t,`ImperativeHandle`)},an=(e,t)=>{Z(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},on=e=>{let t=q();return Z(`Callback`,Array.isArray(t?.memoizedState)?t.memoizedState[0]:e,`Callback`),e},sn=e=>{let t=q(),n=Array.isArray(t?.memoizedState)?t.memoizedState[0]:e();return Z(`Memo`,n,`Memo`),n},cn=(e,t)=>{let n=q();q();let r=n===null?t():n.memoizedState;return Z(`SyncExternalStore`,r,`SyncExternalStore`),r},ln=()=>{let e=q();q();let t=e?.memoizedState===!0;return Z(`Transition`,t,`Transition`),[t,()=>{}]},un=e=>{let t=q(),n=t===null?e:t.memoizedState;return Z(`DeferredValue`,n,`DeferredValue`),n},dn=()=>{let e=q(),t=typeof e?.memoizedState==`string`?e.memoizedState:``;return Z(`Id`,t,`Id`),t},fn=e=>{let t=B;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},()=>Wt)),n.index++,r},pn=e=>{let t=q(),n=t===null?e:t.memoizedState;return Z(`Optimistic`,n,`Optimistic`),[n,()=>{}]},mn=(e,t)=>{let n,r=null;if(e!==null){let t=e.memoizedState;if(J(t))switch(t.status){case`fulfilled`:n=t.value;break;case`rejected`:r=t.reason;break;default:r=G,n=t}else n=t}else n=t;return{value:n,error:r}},hn=e=>(t,n)=>{let r=q();q(),q();let{value:i,error:a}=mn(r,n);if(Z(e,i,e),a!==null)throw a;return[i,()=>{},!1]},gn=hn(`ActionState`),Q={readContext:X,use:Jt,useCallback:on,useContext:Yt,useEffect:nn,useImperativeHandle:rn,useLayoutEffect:en,useInsertionEffect:tn,useMemo:sn,useReducer:Zt,useRef:Qt,useState:Xt,useDebugValue:an,useDeferredValue:un,useTransition:ln,useSyncExternalStore:cn,useId:dn,useHostTransitionStatus:()=>{let e=X({_currentValue:null});return Z(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:hn(`FormState`),useActionState:gn,useOptimistic:pn,useMemoCache:fn,useCacheRefresh:$t,useEffectEvent:e=>(q(),Z(`EffectEvent`,e,`EffectEvent`),e)},_n=new Proxy(Q,{get(e,t){if(Object.hasOwn(e,t))return Reflect.get(e,t);throw new r(`The React dispatcher is missing method `+t)}}),vn=()=>{if(z!==null)return z;let e=new Map,t;try{Q.useContext({_currentValue:null}),Q.useState(null),Q.useReducer(e=>e,null),Q.useRef(null),Q.useCacheRefresh(),Q.useLayoutEffect(()=>{}),Q.useInsertionEffect(()=>{}),Q.useEffect(()=>{}),Q.useImperativeHandle(void 0),Q.useDebugValue(null),Q.useCallback(()=>{}),Q.useTransition(),Q.useSyncExternalStore(()=>()=>{},()=>null),Q.useDeferredValue(null),Q.useMemo(()=>null),Q.useOptimistic(null),Q.useFormState(e=>e,null),Q.useActionState(e=>e,null),Q.useHostTransitionStatus(),Q.use({$$typeof:Ut,_currentValue:null});let e=Promise.resolve(null);Reflect.set(e,`status`,`fulfilled`),Reflect.set(e,`value`,null),Q.use(e);try{Q.use(new Promise(()=>{}))}catch{}Q.useId(),Q.useEffectEvent(()=>{})}finally{t=R,R=[]}for(let n of t)e.set(n.primitive,K(n.stackError));return z=e,z};let yn=0;const bn=(e,t,n)=>{if(n>=t.length)return-1;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},xn=(e,t)=>{let n=bn(t,e,yn);if(n!==-1)return n;for(let r=0;r<e.length&&r<5;r++)if(n=bn(t,e,r),n!==-1)return yn=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)},Sn=(e,t)=>{let n=$(e);return t===`HostTransitionStatus`?n===t||n===`FormStatus`:n===t},Cn=(e,t)=>{let n=vn().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&&Sn(e[r].functionName,t.dispatcherHookName)&&r++,r<e.length-1&&Sn(e[r].functionName,t.dispatcherHookName)&&r++,r;return-1},wn=(e,t)=>{let n=K(t.stackError),r=xn(e,n),i=Cn(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)]},Tn=new Set([`Context`,`Context (use)`,`DebugValue`,`Promise`,`Unresolved`,`HostTransitionStatus`]),En=(e,t)=>{let n=[],r=null,i=n,a=0,o=[];for(let s of t){let[t,c]=wn(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=Tn.has(u)?null:a++,ee=u===`Reducer`||u===`State`,te=l||u,f=c?.[0],p={lineNumber:f?.lineNumber??null,columnNumber:f?.columnNumber??null,functionName:f?.functionName??null,fileName:f?.fileName??null};i.push({id:d,isStateEditable:ee,name:te,value:s.value,subHooks:[],hookSource:p})}return Dn(n,null),n},Dn=(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)):Dn(r.subHooks,r)}t!==null&&(n.length===1?t.value=n[0].value:n.length>1&&(t.value=n.map(({value:e})=>e)))},On=(e,t)=>{let n=t;for(;n;){if(n.tag===c(n).ContextProvider){let t=n.type,r=typeof t==`object`&&t&&`_context`in t?t._context:void 0,i=Y(r)?r:Y(t)?t:null;i&&!e.has(i)&&(e.set(i,i._currentValue),i._currentValue=n.memoizedProps.value)}n=n.return}},kn=e=>{e.forEach((e,t)=>{t._currentValue=e})},An=e=>{if(e!==G)throw e instanceof r?e:new a(`Bippy couldn’t render the inspected component`,e)},jn=(e,t)=>{if(e&&typeof e==`object`&&`defaultProps`in e&&typeof e.defaultProps==`object`&&e.defaultProps!==null){let n={...t},r=e.defaultProps;for(let[e,t]of Object.entries(r))n[e]===void 0&&(n[e]=t);return n}return t},Mn=()=>{let e={};for(let t in console)try{e[t]=Reflect.get(console,t),Reflect.set(console,t,()=>{})}catch{}return e},Nn=e=>{for(let t in e)try{Reflect.set(console,t,e[t])}catch{}},Pn=(e,t)=>{let n=ye(e);v(e,_n);let r=[],i;try{i=Error(),t()}catch(e){An(e)}finally{r=R,R=[],v(e,n)}let a=i===void 0?[]:K(i);return En(a,r)},Fn=()=>{let e=ve()[0];if(!e)throw new l(`Bippy couldn’t find a React renderer. Load React and install Bippy’s hook.`);return e},In=e=>{let t=[`dependencies_old`,`dependencies_new`].find(t=>Object.hasOwn(e,t));if(Object.hasOwn(e,`dependencies`)){let t=e.dependencies;H=t===null?null:t.firstContext}else if(t){let n=Reflect.get(e,t),r=typeof n==`object`&&n&&`firstContext`in n?n.firstContext:null;H=Kt(r)?r:null}else if(Object.hasOwn(e,`contextDependencies`)){let t=Reflect.get(e,`contextDependencies`),n=typeof t==`object`&&t&&`first`in t?t.first:null;H=Kt(n)?n:null}else throw new l(`Bippy doesn’t support this React version.`)},Ln=e=>{let t=Fn(),n=c(e);if(e.tag!==n.FunctionComponent&&e.tag!==n.SimpleMemoComponent&&e.tag!==n.ForwardRef)throw new l(`Hook inspection requires a function component Fiber.`);vn(),V=e.memoizedState,B=e;let r=e.dependencies?._debugThenableState,i=Array.isArray(r)?r:r?.thenables;W=Array.isArray(i)?i:null,U=0,In(e);let a=e.type,o=e.memoizedProps;a!==e.elementType&&(o=jn(a,o));let s=Mn(),u=new Map;try{if(H!==null&&!Object.hasOwn(H,`memoizedValue`)&&On(u,e),e.tag===n.ForwardRef){if(!qt(a))throw new l(`ForwardRef fiber is missing its render function.`);return Pn(t,()=>{a.render(o,e.ref)})}if(typeof a!=`function`)throw new l(`Function component fiber is missing its component function.`);return Pn(t,()=>{a(o)})}finally{B=null,V=null,H=null,W=null,U=0,kn(u),Nn(s)}},Rn=new Set([`Effect`,`LayoutEffect`,`InsertionEffect`,`ImperativeHandle`,`DebugValue`]),zn=/(?:const|let|var)\s+((?:\[[\s\S]*?\]|\w+))\s*=\s*(?:[\w$.]+\.)*use[A-Z]\w*\s*(?:<[\s\S]*?>)?\s*\(/g,Bn=e=>`${e.fileName??``}:${e.lineNumber??0}:${e.columnNumber??0}`,Vn=e=>{let t=[],n=e=>{for(let r of e)Rn.has(r.name)||(t.push(r),r.subHooks.length>0&&n(r.subHooks))};return n(e),t},Hn=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},Un=(e,t,n)=>{let r=e.split(`
|
|
19
|
+
`,r)),r!==-1)t=t.slice(0,r);else return``;return t},bt=e=>!!(e.functionName&&e.fileName&&wt(e.fileName)),xt=(e,t)=>e.fileName===t.fileName&&e.lineNumber===t.lineNumber&&e.columnNumber===t.columnNumber,St=e=>{let t=new Map;for(let n of e){if(!bt(n))continue;let e=n.functionName,r=t.get(e)??[];r.some(e=>xt(e,n))||(r.push(n),t.set(e,r))}return t},Ct=(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})`)}},wt=e=>te.some(t=>e.startsWith(t)),Tt=e=>!e.isServer&&e.fileName&&wt(e.fileName)?{...e,isServer:!0}:e,Et=e=>{let t=[],n=e;for(;n;)if(pt(n)){let e=n;if(n=e._debugOwner,n&&A(e)){let{frames:n,isTrusted:r}=_(e._debugStack);if(r)for(let e of n)t.push(Tt(e))}}else{let e=n;if(n=e.owner,n&&e.debugStack instanceof Error)for(let n of _(e.debugStack).frames)t.push({...n,isServer:!0})}return t},Dt=e=>{let t=[];return c(e,e=>{if(!A(e))return;let{frames:n,isTrusted:r}=_(e._debugStack);r&&t.push(...n)},!0),t},Ot=e=>{let t=Dt(e),n=g(vt(e)),r=St(t),i=new Map;return n.map(e=>e.source!==void 0&&ie.test(e.source)?Ct(e,r,i):e).filter((e,t,n)=>{if(t===0)return!0;let r=n[t-1];return e.functionName!==r.functionName})},I=async(e,t=!0,n)=>k(Ot(e),t,n),kt=e=>!!e.fileName&&!e.isIgnoreListed,At=async(e,t=!0,n)=>{let r=Et(e);if(r.length>0){let i=j(e)??{};i.functionName=s(e.type)??i.functionName;let a=await k([i,...r],t,n);if(a.some((e,t)=>t>0&&kt(e)))return a}return I(e,t,n)},jt=e=>{let t=e._debugSource;return t?typeof t==`object`&&typeof t.fileName==`string`&&t.fileName!==`(native)`&&typeof t.lineNumber==`number`:!1},L=e=>e.fileName?{fileName:e.fileName,lineNumber:e.lineNumber,columnNumber:e.columnNumber,functionName:e.functionName}:null,Mt=e=>{if(!A(e))return null;let{frames:t,isTrusted:n}=_(e._debugStack);if(!n)return null;for(let e of t)if(e.fileName)return e;return null},Nt=async(e,t,n)=>{let r=s(e.type);if(!r)return null;let i=g(Error().stack??``),a=new Set;for(let e of i){let i=e.fileName;if(!i||a.has(i))continue;a.add(i);let o=await O(i,t,n);if(!o)continue;let s=ze(o,r);if(s&&!s.isIgnoreListed)return L(s)}return null},Pt=async(e,t=!0,n)=>{if(jt(e))return e._debugSource;let r=Mt(e)??j(e);if(r){let[e]=await k([r],t,n),i=L(e);if(i)return i}let i=await I(e,t,n);for(let e of i)if(e.fileName)return L(e);return Nt(e,t,n)},Ft=e=>e.split(`/`).filter(Boolean).length,It=e=>{let t=e.indexOf(`/`,1);if(t===-1)return e;let n=e.slice(0,t);if(Ft(n)!==1)return e;let r=e.slice(t);if(!p.test(r))return e;let i=r.split(`/`).filter(Boolean);if(i.length<2)return e;let a=i[0];return a.startsWith(`@`)||a.length>4?e:r},Lt=e=>{if(!e||f.some(t=>t===e))return``;let t=e,n=/^[a-zA-Z]:[\\/]/.test(t);if(t.startsWith(`http://`)||t.startsWith(`https://`)){try{t=new URL(t).pathname}catch{}t=It(t)}if(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 ee)if(t.startsWith(e)){t=t.slice(e.length),e===`file:///`&&(t=`/${t.replace(/^\/+/,``)}`),r=!0;break}}if(!n){let e=t.match(d);e&&(t=t.slice(e[0].length))}if(t.startsWith(`//`)){let e=t.indexOf(`/`,2);t=e===-1?``:t.slice(e)}let i=t.indexOf(`?`);if(i!==-1){let e=t.slice(i);re.test(e)&&(t=t.slice(0,i))}return t},Rt=e=>{let t=Lt(e);return!(!t||!p.test(t)||ne.test(t))},zt=[/(?:^|export\s+)(?:const|let|var)\s+(\w+)\s*=/,/(?:^|export\s+)function\s+(\w+)/,/(?:^|export\s+)class\s+(\w+)/],Bt=e=>{for(let t of zt){let n=e.match(t);if(n?.[1])return n[1]}return null},Vt=(e,t)=>{let n=e.split(`
|
|
20
|
+
`),r=t-1;if(r<0||r>=n.length)return null;for(let e=0;e<=5;e++){let t=e===0?[r]:[r-e,r+e];for(let e of t){if(e<0||e>=n.length)continue;let t=Bt(n[e]);if(t)return t}}return null},Ht=async(e,t=!0,n)=>{let r=j(e)??Ot(e).find(e=>e.fileName);if(!r?.fileName)return s(e.type);let i=await O(r.fileName,t,n);if(!i)return s(e.type);let a=null;if(typeof r.lineNumber==`number`&&typeof r.columnNumber==`number`&&(a=S(i,r.lineNumber,r.columnNumber)),!a?.fileName||!a.lineNumber)return s(e.type);let o=C(i,a.fileName);return(o?Vt(o,a.lineNumber):null)||(a.functionName??s(e.type))},Ut=Symbol.for(`react.context`),Wt=Symbol.for(`react.memo_cache_sentinel`);let R=[],z=null,B=null,V=null,H=null,U=0,W=null;const G=Error("Suspense interrupted this render. This error is an internal implementation detail of `use`."),K=e=>g(e.stack||``,{includeInElement:!1}),q=()=>{let e=V;return e!==null&&(V=e.next),e},J=e=>typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`,Gt=e=>typeof e==`object`&&!!e&&`current`in e,Y=e=>typeof e==`object`&&!!e&&`_currentValue`in e,Kt=e=>typeof e==`object`&&!!e&&`context`in e&&`next`in e,qt=e=>typeof e==`object`&&!!e&&`render`in e&&typeof e.render==`function`,X=e=>{if(B===null)return e._currentValue;if(H===null)throw new n(`Context reads don’t match context dependencies.`);if(Object.hasOwn(H,`memoizedValue`)){let e=H.memoizedValue;return H=H.next,e}return e._currentValue},Z=(e,t,n,r=null)=>{R.push({displayName:r,primitive:e,stackError:Error(),value:t,dispatcherHookName:n})},Jt=e=>{if(typeof e==`object`&&e){if(J(e)){let t=W!==null&&U<W.length?W[U++]:e,n=J(t)?t:e;switch(n.status){case`fulfilled`:return Z(`Promise`,n.value,`Use`),n.value;case`rejected`:throw n.reason}throw Z(`Unresolved`,n,`Use`),G}if(`$$typeof`in e&&e.$$typeof===Ut&&Y(e)){let t={_currentValue:e._currentValue,displayName:typeof e.displayName==`string`?e.displayName:void 0},n=X(t);return Z(`Context (use)`,n,`Use`,t.displayName??`Context`),n}}throw new n(`use() received an unsupported value: `+String(e))},Yt=e=>{let t=X(e);return Z(`Context`,t,`Context`,e.displayName??null),t},Xt=e=>{let t=q(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return Z(`State`,n,`State`),[n,()=>{}]},Zt=(e,t,n)=>{let r=q(),i=r===null?n===void 0?t:n(t):r.memoizedState;return Z(`Reducer`,i,`Reducer`),[i,()=>{}]},Qt=e=>{let t=q(),n=Gt(t?.memoizedState)?t.memoizedState:{current:e};return Z(`Ref`,n.current,`Ref`),n},$t=()=>{let e=q();return Z(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},en=e=>{q(),Z(`LayoutEffect`,e,`LayoutEffect`)},tn=e=>{q(),Z(`InsertionEffect`,e,`InsertionEffect`)},nn=e=>{q(),Z(`Effect`,e,`Effect`)},rn=e=>{q();let t=Gt(e)?e.current:void 0;Z(`ImperativeHandle`,t,`ImperativeHandle`)},an=(e,t)=>{Z(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},on=e=>{let t=q();return Z(`Callback`,Array.isArray(t?.memoizedState)?t.memoizedState[0]:e,`Callback`),e},sn=e=>{let t=q(),n=Array.isArray(t?.memoizedState)?t.memoizedState[0]:e();return Z(`Memo`,n,`Memo`),n},cn=(e,t)=>{let n=q();q();let r=n===null?t():n.memoizedState;return Z(`SyncExternalStore`,r,`SyncExternalStore`),r},ln=()=>{let e=q();q();let t=e?.memoizedState===!0;return Z(`Transition`,t,`Transition`),[t,()=>{}]},un=e=>{let t=q(),n=t===null?e:t.memoizedState;return Z(`DeferredValue`,n,`DeferredValue`),n},dn=()=>{let e=q(),t=typeof e?.memoizedState==`string`?e.memoizedState:``;return Z(`Id`,t,`Id`),t},fn=e=>{let t=B;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},()=>Wt)),n.index++,r},pn=e=>{let t=q(),n=t===null?e:t.memoizedState;return Z(`Optimistic`,n,`Optimistic`),[n,()=>{}]},mn=(e,t)=>{let n,r=null;if(e!==null){let t=e.memoizedState;if(J(t))switch(t.status){case`fulfilled`:n=t.value;break;case`rejected`:r=t.reason;break;default:r=G,n=t}else n=t}else n=t;return{value:n,error:r}},hn=e=>(t,n)=>{let r=q();q(),q();let{value:i,error:a}=mn(r,n);if(Z(e,i,e),a!==null)throw a;return[i,()=>{},!1]},gn=hn(`ActionState`),Q={readContext:X,use:Jt,useCallback:on,useContext:Yt,useEffect:nn,useImperativeHandle:rn,useLayoutEffect:en,useInsertionEffect:tn,useMemo:sn,useReducer:Zt,useRef:Qt,useState:Xt,useDebugValue:an,useDeferredValue:un,useTransition:ln,useSyncExternalStore:cn,useId:dn,useHostTransitionStatus:()=>{let e=X({_currentValue:null});return Z(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:hn(`FormState`),useActionState:gn,useOptimistic:pn,useMemoCache:fn,useCacheRefresh:$t,useEffectEvent:e=>(q(),Z(`EffectEvent`,e,`EffectEvent`),e)},_n=new Proxy(Q,{get(e,t){if(Object.hasOwn(e,t))return Reflect.get(e,t);throw new r(`The React dispatcher is missing method `+t)}}),vn=()=>{if(z!==null)return z;let e=new Map,t;try{Q.useContext({_currentValue:null}),Q.useState(null),Q.useReducer(e=>e,null),Q.useRef(null),Q.useCacheRefresh(),Q.useLayoutEffect(()=>{}),Q.useInsertionEffect(()=>{}),Q.useEffect(()=>{}),Q.useImperativeHandle(void 0),Q.useDebugValue(null),Q.useCallback(()=>{}),Q.useTransition(),Q.useSyncExternalStore(()=>()=>{},()=>null),Q.useDeferredValue(null),Q.useMemo(()=>null),Q.useOptimistic(null),Q.useFormState(e=>e,null),Q.useActionState(e=>e,null),Q.useHostTransitionStatus(),Q.use({$$typeof:Ut,_currentValue:null});let e=Promise.resolve(null);Reflect.set(e,`status`,`fulfilled`),Reflect.set(e,`value`,null),Q.use(e);try{Q.use(new Promise(()=>{}))}catch{}Q.useId(),Q.useEffectEvent(()=>{})}finally{t=R,R=[]}for(let n of t)e.set(n.primitive,K(n.stackError));return z=e,z};let yn=0;const bn=(e,t,n)=>{if(n>=t.length)return-1;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},xn=(e,t)=>{let n=bn(t,e,yn);if(n!==-1)return n;for(let r=0;r<e.length&&r<5;r++)if(n=bn(t,e,r),n!==-1)return yn=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)},Sn=(e,t)=>{let n=$(e);return t===`HostTransitionStatus`?n===t||n===`FormStatus`:n===t},Cn=(e,t)=>{let n=vn().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&&Sn(e[r].functionName,t.dispatcherHookName)&&r++,r<e.length-1&&Sn(e[r].functionName,t.dispatcherHookName)&&r++,r;return-1},wn=(e,t)=>{let n=K(t.stackError),r=xn(e,n),i=Cn(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)]},Tn=new Set([`Context`,`Context (use)`,`DebugValue`,`Promise`,`Unresolved`,`HostTransitionStatus`]),En=(e,t)=>{let n=[],r=null,i=n,a=0,o=[];for(let s of t){let[t,c]=wn(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=Tn.has(u)?null:a++,ee=u===`Reducer`||u===`State`,te=l||u,f=c?.[0],p={lineNumber:f?.lineNumber??null,columnNumber:f?.columnNumber??null,functionName:f?.functionName??null,fileName:f?.fileName??null};i.push({id:d,isStateEditable:ee,name:te,value:s.value,subHooks:[],hookSource:p})}return Dn(n,null),n},Dn=(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)):Dn(r.subHooks,r)}t!==null&&(n.length===1?t.value=n[0].value:n.length>1&&(t.value=n.map(({value:e})=>e)))},On=(e,t)=>{let n=t;for(;n;){if(n.tag===i(n).ContextProvider){let t=n.type,r=typeof t==`object`&&t&&`_context`in t?t._context:void 0,i=Y(r)?r:Y(t)?t:null;i&&!e.has(i)&&(e.set(i,i._currentValue),i._currentValue=n.memoizedProps.value)}n=n.return}},kn=e=>{e.forEach((e,t)=>{t._currentValue=e})},An=e=>{if(e!==G)throw e instanceof r?e:new u(`Bippy couldn’t render the inspected component`,e)},jn=(e,t)=>{if(e&&typeof e==`object`&&`defaultProps`in e&&typeof e.defaultProps==`object`&&e.defaultProps!==null){let n={...t},r=e.defaultProps;for(let[e,t]of Object.entries(r))n[e]===void 0&&(n[e]=t);return n}return t},Mn=()=>{let e={};for(let t in console)try{e[t]=Reflect.get(console,t),Reflect.set(console,t,()=>{})}catch{}return e},Nn=e=>{for(let t in e)try{Reflect.set(console,t,e[t])}catch{}},Pn=(e,t)=>{let n=ye(e);v(e,_n);let r=[],i;try{i=Error(),t()}catch(e){An(e)}finally{r=R,R=[],v(e,n)}let a=i===void 0?[]:K(i);return En(a,r)},Fn=()=>{let e=ve()[0];if(!e)throw new n(`Bippy couldn’t find a React renderer. Load React and install Bippy’s hook.`);return e},In=e=>{let t=[`dependencies_old`,`dependencies_new`].find(t=>Object.hasOwn(e,t));if(Object.hasOwn(e,`dependencies`)){let t=e.dependencies;H=t===null?null:t.firstContext}else if(t){let n=Reflect.get(e,t),r=typeof n==`object`&&n&&`firstContext`in n?n.firstContext:null;H=Kt(r)?r:null}else if(Object.hasOwn(e,`contextDependencies`)){let t=Reflect.get(e,`contextDependencies`),n=typeof t==`object`&&t&&`first`in t?t.first:null;H=Kt(n)?n:null}else throw new n(`Bippy doesn’t support this React version.`)},Ln=e=>{let t=Fn(),r=i(e);if(e.tag!==r.FunctionComponent&&e.tag!==r.SimpleMemoComponent&&e.tag!==r.ForwardRef)throw new n(`Hook inspection requires a function component Fiber.`);vn(),V=e.memoizedState,B=e;let a=e.dependencies?._debugThenableState,o=Array.isArray(a)?a:a?.thenables;W=Array.isArray(o)?o:null,U=0,In(e);let s=e.type,c=e.memoizedProps;s!==e.elementType&&(c=jn(s,c));let l=Mn(),u=new Map;try{if(H!==null&&!Object.hasOwn(H,`memoizedValue`)&&On(u,e),e.tag===r.ForwardRef){if(!qt(s))throw new n(`ForwardRef fiber is missing its render function.`);return Pn(t,()=>{s.render(c,e.ref)})}if(typeof s!=`function`)throw new n(`Function component fiber is missing its component function.`);return Pn(t,()=>{s(c)})}finally{B=null,V=null,H=null,W=null,U=0,kn(u),Nn(l)}},Rn=new Set([`Effect`,`LayoutEffect`,`InsertionEffect`,`ImperativeHandle`,`DebugValue`]),zn=/(?:const|let|var)\s+((?:\[[\s\S]*?\]|\w+))\s*=\s*(?:[\w$.]+\.)*use[A-Z]\w*\s*(?:<[\s\S]*?>)?\s*\(/g,Bn=e=>`${e.fileName??``}:${e.lineNumber??0}:${e.columnNumber??0}`,Vn=e=>{let t=[],n=e=>{for(let r of e)Rn.has(r.name)||(t.push(r),r.subHooks.length>0&&n(r.subHooks))};return n(e),t},Hn=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},Un=(e,t,n)=>{let r=e.split(`
|
|
21
21
|
`),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(`
|
|
22
22
|
`),s=[...o.matchAll(zn)],c=o.lastIndexOf(`
|
|
23
|
-
`)+1+n,l=s.filter(e=>e.index<=c).at(-1);return l?Hn(l[1]):null},Wn=async(e,t,n,r)=>{let{sourceContentCache:i,fetchFn:a}=r,o=await O(e,!0,a);if(o){let e=S(o,t,n);if(e?.fileName&&e.lineNumber!==void 0){let t=C(o,e.fileName);if(t)return{sourceCode:t,lineNumber:e.lineNumber,columnNumber:e.columnNumber??0}}}if(!i.has(e))try{let t=await(a??fetch)(e);i.set(e,t.ok?await t.text():null)}catch{i.set(e,null)}let s=i.get(e)??null;return s?{sourceCode:s,lineNumber:t,columnNumber:n}:null},Gn=async(e,t)=>{let n=new Map,r=Vn(e);if(r.length===0)return n;let i={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 Wn(t.fileName,t.lineNumber,t.columnNumber,i);if(!r)return;let a=Un(r.sourceCode,r.lineNumber,r.columnNumber);if(a){let e=Bn(t);n.set(e,a)}})),n};export{
|
|
23
|
+
`)+1+n,l=s.filter(e=>e.index<=c).at(-1);return l?Hn(l[1]):null},Wn=async(e,t,n,r)=>{let{sourceContentCache:i,fetchFn:a}=r,o=await O(e,!0,a);if(o){let e=S(o,t,n);if(e?.fileName&&e.lineNumber!==void 0){let t=C(o,e.fileName);if(t)return{sourceCode:t,lineNumber:e.lineNumber,columnNumber:e.columnNumber??0}}}if(!i.has(e))try{let t=await(a??fetch)(e);i.set(e,t.ok?await t.text():null)}catch{i.set(e,null)}let s=i.get(e)??null;return s?{sourceCode:s,lineNumber:t,columnNumber:n}:null},Gn=async(e,t)=>{let n=new Map,r=Vn(e);if(r.length===0)return n;let i={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 Wn(t.fileName,t.lineNumber,t.columnNumber,i);if(!r)return;let a=Un(r.sourceCode,r.lineNumber,r.columnNumber);if(a){let e=Bn(t);n.set(e,a)}})),n};export{a as BippyError,n as BippyHookInspectionError,u as BippyHookRenderError,o as BippySourceMapError,r as BippyUnsupportedHookError,yt as formatOwnerStack,Ht as getDisplayNameFromSource,Ln as getFiberHooks,At as getOwnerStack,I as getParentStack,Pt as getSource,C as getSourceContentFromSourceMap,S as getSourceFromSourceMap,ze as getSourceFromSourceMapByFunctionName,O as getSourceMap,A as hasDebugStack,Rt as isSourceFile,Lt as normalizeFileName,Gn as parseHookNames,g as parseStack,k as symbolicateStack};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bippy",
|
|
3
|
-
"version": "0.6.1-dev.
|
|
3
|
+
"version": "0.6.1-dev.8880a6d",
|
|
4
4
|
"description": "hack into react internals",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bippy",
|
|
@@ -47,16 +47,6 @@
|
|
|
47
47
|
"default": "./dist/index.cjs"
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
|
-
"./core": {
|
|
51
|
-
"import": {
|
|
52
|
-
"types": "./dist/core.d.ts",
|
|
53
|
-
"default": "./dist/core.js"
|
|
54
|
-
},
|
|
55
|
-
"require": {
|
|
56
|
-
"types": "./dist/core.d.cts",
|
|
57
|
-
"default": "./dist/core.cjs"
|
|
58
|
-
}
|
|
59
|
-
},
|
|
60
50
|
"./install-hook-only": {
|
|
61
51
|
"import": {
|
|
62
52
|
"types": "./dist/install-hook-only.d.ts",
|
package/src/core.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// React must remain a type-only import because this module loads immediately after the DevTools hook.
|
|
2
|
-
|
|
3
2
|
import type * as React from "react";
|
|
4
3
|
|
|
5
4
|
import type {
|
|
@@ -70,7 +69,7 @@ export const isValidElement = (element: unknown): element is React.ReactElement
|
|
|
70
69
|
/**
|
|
71
70
|
* Returns `true` if object is a React Fiber.
|
|
72
71
|
*/
|
|
73
|
-
export const
|
|
72
|
+
export const isFiber = (fiber: unknown): fiber is Fiber =>
|
|
74
73
|
typeof fiber === "object" &&
|
|
75
74
|
fiber !== null &&
|
|
76
75
|
"tag" in fiber &&
|
|
@@ -84,7 +83,7 @@ const isFiberRoot = (fiberRoot: unknown): fiberRoot is FiberRoot =>
|
|
|
84
83
|
typeof fiberRoot === "object" &&
|
|
85
84
|
fiberRoot !== null &&
|
|
86
85
|
"current" in fiberRoot &&
|
|
87
|
-
|
|
86
|
+
isFiber(fiberRoot.current);
|
|
88
87
|
|
|
89
88
|
/**
|
|
90
89
|
* Returns `true` if fiber is a host fiber. Host fibers are DOM nodes in react-dom, `View` in react-native, etc.
|
|
@@ -123,16 +122,6 @@ export const isCompositeFiber = (fiber: Fiber): boolean => {
|
|
|
123
122
|
}
|
|
124
123
|
};
|
|
125
124
|
|
|
126
|
-
/**
|
|
127
|
-
* Returns `true` if the object is a {@link Fiber}
|
|
128
|
-
*/
|
|
129
|
-
export const isFiber = (maybeFiber: unknown): maybeFiber is Fiber => {
|
|
130
|
-
if (!maybeFiber || typeof maybeFiber !== "object") return false;
|
|
131
|
-
// this is a fast check. pendingProps will ALWAYS exist in fiber
|
|
132
|
-
// `containerInfo` is in FiberRootNode, not FiberNode
|
|
133
|
-
return "pendingProps" in maybeFiber && !("containerInfo" in maybeFiber);
|
|
134
|
-
};
|
|
135
|
-
|
|
136
125
|
/**
|
|
137
126
|
* Returns `true` if the {@link Fiber} has rendered. Note that this does not mean the fiber has rendered in the current commit, just that it has rendered in the past.
|
|
138
127
|
*/
|
|
@@ -349,6 +338,18 @@ const rootRendererIds = new WeakMap<FiberRoot, number>();
|
|
|
349
338
|
export const getLatestFiber = (fiber: Fiber): Fiber => {
|
|
350
339
|
const alternate = fiber.alternate;
|
|
351
340
|
if (!alternate) return fiber;
|
|
341
|
+
|
|
342
|
+
let rootFiber = fiber;
|
|
343
|
+
while (rootFiber.return) {
|
|
344
|
+
rootFiber = rootFiber.return;
|
|
345
|
+
}
|
|
346
|
+
if (isFiberRoot(rootFiber.stateNode)) {
|
|
347
|
+
const latestFiber = traverseFiber(rootFiber.stateNode.current, (innerFiber) => {
|
|
348
|
+
if (innerFiber === fiber || innerFiber === alternate) return true;
|
|
349
|
+
});
|
|
350
|
+
if (latestFiber) return latestFiber;
|
|
351
|
+
}
|
|
352
|
+
|
|
352
353
|
if (alternate.actualStartTime && fiber.actualStartTime) {
|
|
353
354
|
return alternate.actualStartTime > fiber.actualStartTime ? alternate : fiber;
|
|
354
355
|
}
|
|
@@ -837,14 +838,14 @@ const getLegacyRootFiber = (hostInstance: object): Fiber | null => {
|
|
|
837
838
|
const current = Reflect.get(internalRoot, "current");
|
|
838
839
|
if (typeof current !== "object" || current === null) return null;
|
|
839
840
|
const child = Reflect.get(current, "child");
|
|
840
|
-
return
|
|
841
|
+
return isFiber(child) ? child : null;
|
|
841
842
|
};
|
|
842
843
|
|
|
843
844
|
const getInternalInstanceHandle = (hostInstance: object): Fiber | null => {
|
|
844
845
|
const internalInstanceHandle =
|
|
845
846
|
Reflect.get(hostInstance, "__internalInstanceHandle") ??
|
|
846
847
|
Reflect.get(hostInstance, "_internalInstanceHandle");
|
|
847
|
-
return
|
|
848
|
+
return isFiber(internalInstanceHandle) ? internalInstanceHandle : null;
|
|
848
849
|
};
|
|
849
850
|
|
|
850
851
|
const getPublicHostInstance = (stateNode: unknown): unknown => {
|
|
@@ -880,14 +881,14 @@ export const getFiber = <T>(hostInstance: T): Fiber | null => {
|
|
|
880
881
|
|
|
881
882
|
for (const knownKey of knownFiberPropertyKeys) {
|
|
882
883
|
const fiber = Reflect.get(hostInstance, knownKey);
|
|
883
|
-
if (
|
|
884
|
+
if (isFiber(fiber)) return fiber;
|
|
884
885
|
}
|
|
885
886
|
|
|
886
887
|
for (const key of Object.keys(hostInstance)) {
|
|
887
888
|
if (isFiberPropertyKey(key)) {
|
|
888
889
|
knownFiberPropertyKeys.add(key);
|
|
889
890
|
const fiber = Reflect.get(hostInstance, key);
|
|
890
|
-
if (
|
|
891
|
+
if (isFiber(fiber)) return fiber;
|
|
891
892
|
}
|
|
892
893
|
}
|
|
893
894
|
}
|
package/src/react.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import "./install-hook-only.js";
|
|
2
2
|
import * as React from "react";
|
|
3
|
-
import {
|
|
3
|
+
import { isFiber } from "./core.js";
|
|
4
4
|
import type { Fiber } from "./react-internals/index.js";
|
|
5
5
|
|
|
6
6
|
export type { Fiber } from "./react-internals/index.js";
|
|
@@ -18,7 +18,7 @@ const captureFiberFromHook = (useCaptureHook: () => void): Fiber | null => {
|
|
|
18
18
|
const bindProxy = new Proxy(originalBind, {
|
|
19
19
|
apply: (bind, functionToBind, boundArguments) => {
|
|
20
20
|
const fiber = boundArguments[1];
|
|
21
|
-
if (!capturedFiber &&
|
|
21
|
+
if (!capturedFiber && isFiber(fiber)) {
|
|
22
22
|
capturedFiber = fiber;
|
|
23
23
|
}
|
|
24
24
|
return Reflect.apply(bind, functionToBind, boundArguments);
|
package/dist/core.d.cts
DELETED
|
@@ -1,154 +0,0 @@
|
|
|
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
|
-
*/
|
|
9
|
-
import { D as ReactRenderer, T as ReactDevToolsGlobalHook, g as FiberRoot, m as Fiber, v as HostFiber } from "./errors.cjs";
|
|
10
|
-
import * as React from "react";
|
|
11
|
-
//#region src/react-internals/semver.d.ts
|
|
12
|
-
declare const compareSemver: (leftVersion: string, rightVersion: string) => -1 | 0 | 1 | null;
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region src/rdt-hook.d.ts
|
|
15
|
-
interface Unsubscribe extends Disposable {
|
|
16
|
-
(): void;
|
|
17
|
-
}
|
|
18
|
-
interface ActiveListener {
|
|
19
|
-
(): unknown;
|
|
20
|
-
}
|
|
21
|
-
interface RendererInjectListener {
|
|
22
|
-
(renderer: ReactRenderer): void;
|
|
23
|
-
}
|
|
24
|
-
declare const version: string | undefined;
|
|
25
|
-
declare const BIPPY_INSTRUMENTATION_STRING: string;
|
|
26
|
-
declare const isRealReactDevtools: (rdtHook?: ReactDevToolsGlobalHook | undefined | null) => boolean;
|
|
27
|
-
declare const _onActiveListeners: Set<ActiveListener>;
|
|
28
|
-
declare const _renderers: Set<ReactRenderer>;
|
|
29
|
-
declare const onRendererInject: (listener: RendererInjectListener) => Unsubscribe;
|
|
30
|
-
declare const installRDTHook: (onActive?: ActiveListener) => ReactDevToolsGlobalHook;
|
|
31
|
-
declare const patchRDTHook: (onActive?: ActiveListener) => void;
|
|
32
|
-
declare const hasRDTHook: () => boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Returns the current React DevTools global hook.
|
|
35
|
-
*/
|
|
36
|
-
declare const getRDTHook: (onActive?: ActiveListener) => ReactDevToolsGlobalHook;
|
|
37
|
-
//#endregion
|
|
38
|
-
//#region src/core.d.ts
|
|
39
|
-
interface FiberSelector {
|
|
40
|
-
(node: Fiber): boolean | Promise<boolean | void> | void;
|
|
41
|
-
}
|
|
42
|
-
interface RenderHandler {
|
|
43
|
-
(fiber: Fiber, phase: RenderPhase): unknown;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Returns `true` if object is a React Element.
|
|
47
|
-
*
|
|
48
|
-
* @see https://react.dev/reference/react/isValidElement
|
|
49
|
-
*/
|
|
50
|
-
declare const isValidElement: (element: unknown) => element is React.ReactElement;
|
|
51
|
-
/**
|
|
52
|
-
* Returns `true` if object is a React Fiber.
|
|
53
|
-
*/
|
|
54
|
-
declare const isValidFiber: (fiber: unknown) => fiber is Fiber;
|
|
55
|
-
/**
|
|
56
|
-
* Returns `true` if fiber is a host fiber. Host fibers are DOM nodes in react-dom, `View` in react-native, etc.
|
|
57
|
-
*
|
|
58
|
-
* @see https://reactnative.dev/architecture/glossary#host-view-tree-and-host-view
|
|
59
|
-
*/
|
|
60
|
-
declare const isHostFiber: (fiber: Fiber) => fiber is HostFiber;
|
|
61
|
-
/**
|
|
62
|
-
* Returns `true` if fiber is a composite fiber. Composite fibers are fibers that can render (like functional components, class components, etc.)
|
|
63
|
-
*
|
|
64
|
-
* @see https://reactnative.dev/architecture/glossary#react-composite-components
|
|
65
|
-
*/
|
|
66
|
-
declare const isCompositeFiber: (fiber: Fiber) => boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Returns `true` if the object is a {@link Fiber}
|
|
69
|
-
*/
|
|
70
|
-
declare const isFiber: (maybeFiber: unknown) => maybeFiber is Fiber;
|
|
71
|
-
/**
|
|
72
|
-
* Returns `true` if the {@link Fiber} has rendered. Note that this does not mean the fiber has rendered in the current commit, just that it has rendered in the past.
|
|
73
|
-
*/
|
|
74
|
-
declare const didFiberRender: (fiber: Fiber) => boolean;
|
|
75
|
-
/**
|
|
76
|
-
* Returns `true` if the {@link Fiber} has committed. Note that this does not mean the fiber has committed in the current commit, just that it has committed in the past.
|
|
77
|
-
*/
|
|
78
|
-
declare const didFiberCommit: (fiber: Fiber) => boolean;
|
|
79
|
-
/**
|
|
80
|
-
* Traverses up or down a {@link Fiber}, return `true` to stop and select a node.
|
|
81
|
-
*/
|
|
82
|
-
declare function traverseFiber(fiber: Fiber | null, selector: (node: Fiber) => boolean | void, ascending?: boolean): Fiber | null;
|
|
83
|
-
declare function traverseFiber(fiber: Fiber | null, selector: (node: Fiber) => Promise<boolean | void>, ascending?: boolean): Promise<Fiber | null>;
|
|
84
|
-
declare function traverseFiber(fiber: Fiber | null, selector: FiberSelector, ascending?: boolean): Fiber | null | Promise<Fiber | null>;
|
|
85
|
-
/**
|
|
86
|
-
* Returns `true` if the {@link Fiber} uses React Compiler's memo cache.
|
|
87
|
-
*/
|
|
88
|
-
declare const hasMemoCache: (fiber: Fiber) => boolean;
|
|
89
|
-
/**
|
|
90
|
-
* Returns the type (e.g. component definition) of the {@link Fiber}
|
|
91
|
-
*/
|
|
92
|
-
declare const getType: (type: unknown) => null | React.ComponentType<unknown>;
|
|
93
|
-
/**
|
|
94
|
-
* Returns the display name of the {@link Fiber} type.
|
|
95
|
-
*/
|
|
96
|
-
declare const getDisplayName: (type: unknown) => null | string;
|
|
97
|
-
/**
|
|
98
|
-
* Returns the build type of the React renderer.
|
|
99
|
-
*/
|
|
100
|
-
declare const detectReactBuildType: (renderer: ReactRenderer) => "development" | "production";
|
|
101
|
-
/**
|
|
102
|
-
* Returns `true` if bippy's instrumentation is active.
|
|
103
|
-
*/
|
|
104
|
-
declare const isInstrumentationActive: () => boolean;
|
|
105
|
-
declare const _fiberRoots: Set<FiberRoot>;
|
|
106
|
-
/**
|
|
107
|
-
* Returns the latest fiber (since it may be double-buffered).
|
|
108
|
-
*/
|
|
109
|
-
declare const getLatestFiber: (fiber: Fiber) => Fiber;
|
|
110
|
-
/**
|
|
111
|
-
* Returns the renderer that owns the {@link Fiber}.
|
|
112
|
-
*/
|
|
113
|
-
declare const getRenderer: (fiber: Fiber) => ReactRenderer | null;
|
|
114
|
-
type RenderPhase = "mount" | "unmount" | "update";
|
|
115
|
-
declare const setFiberId: (fiber: Fiber, fiberId?: number) => void;
|
|
116
|
-
declare const getFiberId: (fiber: Fiber) => number;
|
|
117
|
-
/**
|
|
118
|
-
* Creates a fiber visitor function. Must pass a fiber root and a render handler.
|
|
119
|
-
* @example
|
|
120
|
-
* traverseRenderedFibers(root, (fiber, phase) => {
|
|
121
|
-
* console.log(phase)
|
|
122
|
-
* })
|
|
123
|
-
*/
|
|
124
|
-
declare const traverseRenderedFibers: (root: Fiber | FiberRoot, onRender: RenderHandler) => void;
|
|
125
|
-
interface InstrumentationOptions {
|
|
126
|
-
name?: string;
|
|
127
|
-
onActive?: () => unknown;
|
|
128
|
-
onCommitFiberRoot?: (rendererID: number, root: FiberRoot, priority: number | void, didError?: boolean) => unknown;
|
|
129
|
-
onCommitFiberUnmount?: (rendererID: number, fiber: Fiber) => unknown;
|
|
130
|
-
onPostCommitFiberRoot?: (rendererID: number, root: FiberRoot) => unknown;
|
|
131
|
-
onScheduleFiberRoot?: (rendererID: number, root: FiberRoot, children: React.ReactNode) => unknown;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Instruments the DevTools hook. Each hook event is patched once and
|
|
135
|
-
* dispatches to a set of listeners, so multiple `instrument` calls compose
|
|
136
|
-
* without stacking patches. Returns an unsubscribe function that removes
|
|
137
|
-
* exactly the handlers this call registered.
|
|
138
|
-
* The unsubscribe function can also be disposed through `using`.
|
|
139
|
-
* @example
|
|
140
|
-
* const unsubscribe = instrument({
|
|
141
|
-
* onActive() {
|
|
142
|
-
* console.log('initialized');
|
|
143
|
-
* },
|
|
144
|
-
* onCommitFiberRoot(rendererID, root) {
|
|
145
|
-
* console.log('fiberRoot', root.current)
|
|
146
|
-
* },
|
|
147
|
-
* });
|
|
148
|
-
* unsubscribe();
|
|
149
|
-
*/
|
|
150
|
-
declare const instrument: (options: InstrumentationOptions) => Unsubscribe;
|
|
151
|
-
declare const getFiber: <T>(hostInstance: T) => Fiber | null;
|
|
152
|
-
declare const getFiberFromHostInstance: <T>(hostInstance: T) => Fiber | null;
|
|
153
|
-
//#endregion
|
|
154
|
-
export { getRDTHook as A, setFiberId as C, Unsubscribe as D, BIPPY_INSTRUMENTATION_STRING as E, patchRDTHook as F, version as I, compareSemver as L, installRDTHook as M, isRealReactDevtools as N, _onActiveListeners as O, onRendererInject as P, isValidFiber as S, traverseRenderedFibers as T, isCompositeFiber as _, detectReactBuildType as a, isInstrumentationActive as b, getDisplayName as c, getFiberId as d, getLatestFiber as f, instrument as g, hasMemoCache as h, _fiberRoots as i, hasRDTHook as j, _renderers as k, getFiber as l, getType as m, RenderHandler as n, didFiberCommit as o, getRenderer as p, RenderPhase as r, didFiberRender as s, InstrumentationOptions as t, getFiberFromHostInstance as u, isFiber as v, traverseFiber as w, isValidElement as x, isHostFiber as y };
|
package/dist/core.d.ts
DELETED
|
@@ -1,154 +0,0 @@
|
|
|
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
|
-
*/
|
|
9
|
-
import { D as ReactRenderer, T as ReactDevToolsGlobalHook, g as FiberRoot, m as Fiber, v as HostFiber } from "./errors.js";
|
|
10
|
-
import * as React from "react";
|
|
11
|
-
//#region src/react-internals/semver.d.ts
|
|
12
|
-
declare const compareSemver: (leftVersion: string, rightVersion: string) => -1 | 0 | 1 | null;
|
|
13
|
-
//#endregion
|
|
14
|
-
//#region src/rdt-hook.d.ts
|
|
15
|
-
interface Unsubscribe extends Disposable {
|
|
16
|
-
(): void;
|
|
17
|
-
}
|
|
18
|
-
interface ActiveListener {
|
|
19
|
-
(): unknown;
|
|
20
|
-
}
|
|
21
|
-
interface RendererInjectListener {
|
|
22
|
-
(renderer: ReactRenderer): void;
|
|
23
|
-
}
|
|
24
|
-
declare const version: string | undefined;
|
|
25
|
-
declare const BIPPY_INSTRUMENTATION_STRING: string;
|
|
26
|
-
declare const isRealReactDevtools: (rdtHook?: ReactDevToolsGlobalHook | undefined | null) => boolean;
|
|
27
|
-
declare const _onActiveListeners: Set<ActiveListener>;
|
|
28
|
-
declare const _renderers: Set<ReactRenderer>;
|
|
29
|
-
declare const onRendererInject: (listener: RendererInjectListener) => Unsubscribe;
|
|
30
|
-
declare const installRDTHook: (onActive?: ActiveListener) => ReactDevToolsGlobalHook;
|
|
31
|
-
declare const patchRDTHook: (onActive?: ActiveListener) => void;
|
|
32
|
-
declare const hasRDTHook: () => boolean;
|
|
33
|
-
/**
|
|
34
|
-
* Returns the current React DevTools global hook.
|
|
35
|
-
*/
|
|
36
|
-
declare const getRDTHook: (onActive?: ActiveListener) => ReactDevToolsGlobalHook;
|
|
37
|
-
//#endregion
|
|
38
|
-
//#region src/core.d.ts
|
|
39
|
-
interface FiberSelector {
|
|
40
|
-
(node: Fiber): boolean | Promise<boolean | void> | void;
|
|
41
|
-
}
|
|
42
|
-
interface RenderHandler {
|
|
43
|
-
(fiber: Fiber, phase: RenderPhase): unknown;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* Returns `true` if object is a React Element.
|
|
47
|
-
*
|
|
48
|
-
* @see https://react.dev/reference/react/isValidElement
|
|
49
|
-
*/
|
|
50
|
-
declare const isValidElement: (element: unknown) => element is React.ReactElement;
|
|
51
|
-
/**
|
|
52
|
-
* Returns `true` if object is a React Fiber.
|
|
53
|
-
*/
|
|
54
|
-
declare const isValidFiber: (fiber: unknown) => fiber is Fiber;
|
|
55
|
-
/**
|
|
56
|
-
* Returns `true` if fiber is a host fiber. Host fibers are DOM nodes in react-dom, `View` in react-native, etc.
|
|
57
|
-
*
|
|
58
|
-
* @see https://reactnative.dev/architecture/glossary#host-view-tree-and-host-view
|
|
59
|
-
*/
|
|
60
|
-
declare const isHostFiber: (fiber: Fiber) => fiber is HostFiber;
|
|
61
|
-
/**
|
|
62
|
-
* Returns `true` if fiber is a composite fiber. Composite fibers are fibers that can render (like functional components, class components, etc.)
|
|
63
|
-
*
|
|
64
|
-
* @see https://reactnative.dev/architecture/glossary#react-composite-components
|
|
65
|
-
*/
|
|
66
|
-
declare const isCompositeFiber: (fiber: Fiber) => boolean;
|
|
67
|
-
/**
|
|
68
|
-
* Returns `true` if the object is a {@link Fiber}
|
|
69
|
-
*/
|
|
70
|
-
declare const isFiber: (maybeFiber: unknown) => maybeFiber is Fiber;
|
|
71
|
-
/**
|
|
72
|
-
* Returns `true` if the {@link Fiber} has rendered. Note that this does not mean the fiber has rendered in the current commit, just that it has rendered in the past.
|
|
73
|
-
*/
|
|
74
|
-
declare const didFiberRender: (fiber: Fiber) => boolean;
|
|
75
|
-
/**
|
|
76
|
-
* Returns `true` if the {@link Fiber} has committed. Note that this does not mean the fiber has committed in the current commit, just that it has committed in the past.
|
|
77
|
-
*/
|
|
78
|
-
declare const didFiberCommit: (fiber: Fiber) => boolean;
|
|
79
|
-
/**
|
|
80
|
-
* Traverses up or down a {@link Fiber}, return `true` to stop and select a node.
|
|
81
|
-
*/
|
|
82
|
-
declare function traverseFiber(fiber: Fiber | null, selector: (node: Fiber) => boolean | void, ascending?: boolean): Fiber | null;
|
|
83
|
-
declare function traverseFiber(fiber: Fiber | null, selector: (node: Fiber) => Promise<boolean | void>, ascending?: boolean): Promise<Fiber | null>;
|
|
84
|
-
declare function traverseFiber(fiber: Fiber | null, selector: FiberSelector, ascending?: boolean): Fiber | null | Promise<Fiber | null>;
|
|
85
|
-
/**
|
|
86
|
-
* Returns `true` if the {@link Fiber} uses React Compiler's memo cache.
|
|
87
|
-
*/
|
|
88
|
-
declare const hasMemoCache: (fiber: Fiber) => boolean;
|
|
89
|
-
/**
|
|
90
|
-
* Returns the type (e.g. component definition) of the {@link Fiber}
|
|
91
|
-
*/
|
|
92
|
-
declare const getType: (type: unknown) => null | React.ComponentType<unknown>;
|
|
93
|
-
/**
|
|
94
|
-
* Returns the display name of the {@link Fiber} type.
|
|
95
|
-
*/
|
|
96
|
-
declare const getDisplayName: (type: unknown) => null | string;
|
|
97
|
-
/**
|
|
98
|
-
* Returns the build type of the React renderer.
|
|
99
|
-
*/
|
|
100
|
-
declare const detectReactBuildType: (renderer: ReactRenderer) => "development" | "production";
|
|
101
|
-
/**
|
|
102
|
-
* Returns `true` if bippy's instrumentation is active.
|
|
103
|
-
*/
|
|
104
|
-
declare const isInstrumentationActive: () => boolean;
|
|
105
|
-
declare const _fiberRoots: Set<FiberRoot>;
|
|
106
|
-
/**
|
|
107
|
-
* Returns the latest fiber (since it may be double-buffered).
|
|
108
|
-
*/
|
|
109
|
-
declare const getLatestFiber: (fiber: Fiber) => Fiber;
|
|
110
|
-
/**
|
|
111
|
-
* Returns the renderer that owns the {@link Fiber}.
|
|
112
|
-
*/
|
|
113
|
-
declare const getRenderer: (fiber: Fiber) => ReactRenderer | null;
|
|
114
|
-
type RenderPhase = "mount" | "unmount" | "update";
|
|
115
|
-
declare const setFiberId: (fiber: Fiber, fiberId?: number) => void;
|
|
116
|
-
declare const getFiberId: (fiber: Fiber) => number;
|
|
117
|
-
/**
|
|
118
|
-
* Creates a fiber visitor function. Must pass a fiber root and a render handler.
|
|
119
|
-
* @example
|
|
120
|
-
* traverseRenderedFibers(root, (fiber, phase) => {
|
|
121
|
-
* console.log(phase)
|
|
122
|
-
* })
|
|
123
|
-
*/
|
|
124
|
-
declare const traverseRenderedFibers: (root: Fiber | FiberRoot, onRender: RenderHandler) => void;
|
|
125
|
-
interface InstrumentationOptions {
|
|
126
|
-
name?: string;
|
|
127
|
-
onActive?: () => unknown;
|
|
128
|
-
onCommitFiberRoot?: (rendererID: number, root: FiberRoot, priority: number | void, didError?: boolean) => unknown;
|
|
129
|
-
onCommitFiberUnmount?: (rendererID: number, fiber: Fiber) => unknown;
|
|
130
|
-
onPostCommitFiberRoot?: (rendererID: number, root: FiberRoot) => unknown;
|
|
131
|
-
onScheduleFiberRoot?: (rendererID: number, root: FiberRoot, children: React.ReactNode) => unknown;
|
|
132
|
-
}
|
|
133
|
-
/**
|
|
134
|
-
* Instruments the DevTools hook. Each hook event is patched once and
|
|
135
|
-
* dispatches to a set of listeners, so multiple `instrument` calls compose
|
|
136
|
-
* without stacking patches. Returns an unsubscribe function that removes
|
|
137
|
-
* exactly the handlers this call registered.
|
|
138
|
-
* The unsubscribe function can also be disposed through `using`.
|
|
139
|
-
* @example
|
|
140
|
-
* const unsubscribe = instrument({
|
|
141
|
-
* onActive() {
|
|
142
|
-
* console.log('initialized');
|
|
143
|
-
* },
|
|
144
|
-
* onCommitFiberRoot(rendererID, root) {
|
|
145
|
-
* console.log('fiberRoot', root.current)
|
|
146
|
-
* },
|
|
147
|
-
* });
|
|
148
|
-
* unsubscribe();
|
|
149
|
-
*/
|
|
150
|
-
declare const instrument: (options: InstrumentationOptions) => Unsubscribe;
|
|
151
|
-
declare const getFiber: <T>(hostInstance: T) => Fiber | null;
|
|
152
|
-
declare const getFiberFromHostInstance: <T>(hostInstance: T) => Fiber | null;
|
|
153
|
-
//#endregion
|
|
154
|
-
export { getRDTHook as A, setFiberId as C, Unsubscribe as D, BIPPY_INSTRUMENTATION_STRING as E, patchRDTHook as F, version as I, compareSemver as L, installRDTHook as M, isRealReactDevtools as N, _onActiveListeners as O, onRendererInject as P, isValidFiber as S, traverseRenderedFibers as T, isCompositeFiber as _, detectReactBuildType as a, isInstrumentationActive as b, getDisplayName as c, getFiberId as d, getLatestFiber as f, instrument as g, hasMemoCache as h, _fiberRoots as i, hasRDTHook as j, _renderers as k, getFiber as l, getType as m, RenderHandler as n, didFiberCommit as o, getRenderer as p, RenderPhase as r, didFiberRender as s, InstrumentationOptions as t, getFiberFromHostInstance as u, isFiber as v, traverseFiber as w, isValidElement as x, isHostFiber as y };
|