bippy 0.6.1-dev.3a24abf → 0.6.1-dev.93556ef
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +26 -1
- package/dist/core.cjs +1 -1
- package/dist/core.d.cts +39 -42
- package/dist/core.d.ts +39 -42
- package/dist/core.js +1 -1
- package/dist/core2.cjs +1 -1
- package/dist/core2.d.cts +11 -3
- package/dist/core2.d.ts +11 -3
- package/dist/core2.js +1 -1
- package/dist/{types.d.cts → errors.d.cts} +187 -68
- package/dist/{types.d.ts → errors.d.ts} +187 -68
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +11 -3
- package/dist/index.d.ts +11 -3
- package/dist/index.iife.js +1 -1
- package/dist/index.js +1 -1
- package/dist/install-hook-only.cjs +1 -1
- package/dist/install-hook-only.d.cts +8 -0
- package/dist/install-hook-only.d.ts +8 -0
- package/dist/install-hook-only.iife.js +1 -1
- package/dist/install-hook-only.js +1 -1
- package/dist/rdt-hook.cjs +1 -1
- package/dist/rdt-hook.js +1 -1
- package/dist/source.cjs +13 -14
- package/dist/source.d.cts +86 -69
- package/dist/source.d.ts +86 -69
- package/dist/source.js +13 -14
- package/package.json +10 -6
- package/src/core.ts +246 -293
- package/src/errors.ts +34 -0
- package/src/install-hook-only.ts +2 -2
- package/src/rdt-hook.ts +152 -110
- package/src/react-internals/generated/react-work-tags.ts +318 -0
- package/src/react-internals/index.ts +67 -0
- package/src/react-internals/semver.ts +80 -0
- package/src/{types.ts → react-internals/types.ts} +13 -86
- package/src/source/error-stack.ts +11 -0
- package/src/source/get-display-name-from-source.ts +44 -40
- package/src/source/get-source.ts +42 -26
- package/src/source/index.ts +11 -1
- package/src/source/inspect-hooks.ts +220 -207
- package/src/source/owner-stack.ts +86 -128
- package/src/source/parse-debug-stack.ts +4 -4
- package/src/source/parse-hook-names.ts +14 -53
- package/src/source/parse-stack.ts +14 -31
- package/src/source/renderer-dispatchers.ts +30 -0
- package/src/source/symbolication.ts +703 -135
- package/src/generated/react-work-tags.ts +0 -169
- package/src/react-internals.ts +0 -67
- package/src/unsubscribe.ts +0 -17
package/dist/source.cjs
CHANGED
|
@@ -6,19 +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
|
-
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rdt-hook.cjs"),t=require("./core2.cjs"),n=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,r=[`rsc://`,`file:///`,`webpack-internal://`,`webpack://`,`node:`,`turbopack://`,`metro://`,`/app-pages-browser/`,`/(app-pages-browser)/`],i=[`rsc://`,`about://React/`],a=[`<anonymous>`,`eval`,``],o=/\.(cjs|cts|js|jsx|mdx|mjs|mts|ts|tsx)$/,s=/(\.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,c=/^\?[\w~.-]+(?:=[^&#]*)?(?:&[\w~.-]+(?:=[^&#]*)?)*$/,l=/\(at [^)]+\)$/,u=[`react_stack_bottom_frame`,`react-stack-bottom-frame`],d=/(^|@)\S+:\d+/,
|
|
10
|
-
`),
|
|
11
|
-
`).filter(e=>!!e.match(
|
|
12
|
-
`).filter(e=>!e.match(
|
|
13
|
-
`,t));return{frames:
|
|
14
|
-
`,
|
|
9
|
+
Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require("./rdt-hook.cjs"),t=require("./core2.cjs"),n=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,r=[`rsc://`,`file:///`,`webpack-internal://`,`webpack://`,`node:`,`turbopack://`,`metro://`,`/app-pages-browser/`,`/(app-pages-browser)/`],i=[`rsc://`,`about://React/`],a=[`<anonymous>`,`eval`,``],o=/\.(cjs|cts|js|jsx|mdx|mjs|mts|ts|tsx)$/,s=/(\.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,c=/^\?[\w~.-]+(?:=[^&#]*)?(?:&[\w~.-]+(?:=[^&#]*)?)*$/,l=/\(at [^)]+\)$/,u=[`react_stack_bottom_frame`,`react-stack-bottom-frame`],d=Error,f=()=>d.prepareStackTrace,p=e=>{d.prepareStackTrace=e},m=/(^|@)\S+:\d+/,h=/^\s*at .*(\S+:\d+|\(native\))/m,ee=/^(eval@)?(\[native code\])?$/,g=(e,t)=>{if(t?.includeInElement!==!1){let t=e.split(`
|
|
10
|
+
`),n=[];for(let e of t)if(/^\s*at\s+/.test(e)){let t=ne(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(m)){let t=re(e)[0];t&&n.push(t)}return n}return e.match(h)?ne(e):re(e)},te=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]},ne=e=>e.split(`
|
|
11
|
+
`).filter(e=>!!e.match(h)).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=te(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}}),re=e=>e.split(`
|
|
12
|
+
`).filter(e=>!e.match(ee)).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=te(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}}}),ie=new WeakMap,ae=e=>u.some(t=>e.includes(t)),oe=e=>{let t=e.getFunctionName?.()??``;if(t)return t;let n=e.getTypeName?.()??``,r=e.getMethodName?.()??``;return n&&r?`${n}.${r}`:r},se=e=>{let t=[];for(let n=1;n<e.length;n++){let r=e[n],i=oe(r);if(ae(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}},ce=e=>{let t=-1;for(let n of u)if(t=e.indexOf(n),t!==-1)break;let n=t===-1?e:e.slice(0,e.lastIndexOf(`
|
|
13
|
+
`,t));return{frames:g(n).slice(1),isTrusted:t!==-1}},_=e=>{let t=ie.get(e);if(t)return t;let n=null,r=(e,t)=>{n=se(t);let r=`${e.name||`Error`}: ${e.message||``}`;for(let e of t)r+=`\n at ${e.toString()}`;return r},i=f();p(r);let a;try{a=String(e.stack)}finally{p(i)}let o=n??ce(a);return ie.set(e,o),o},le=()=>{let t=e.a(),n=new Set([...e.r,...t.renderers.values()]),r=[],i=new Set;for(let e of n){let t=e.currentDispatcherRef;!t||i.has(t)||(i.add(t),r.push(t))}return r},ue=e=>`H`in e?e.H:e.current,v=(e,t)=>{`H`in e?e.H=t:e.current=t};var de=44,fe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,pe=new Uint8Array(64),me=new Uint8Array(128);for(let e=0;e<fe.length;e++){let t=fe.charCodeAt(e);pe[e]=t,me[t]=e}function y(e,t){let n=0,r=0,i=0;do i=me[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 he(e,t){return e.pos>=t?!1:e.peek()!==de}var ge=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 _e(e){let{length:t}=e,n=new ge(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,he(n,e)?(a=y(n,a),o=y(n,o),s=y(n,s),he(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||ve(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function ve(e){e.sort(ye)}function ye(e,t){return e[0]-t[0]}const b=/^data:application\/json(?:;[^,]*)?,/i,be=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/,xe=new Map,Se=new WeakMap;var Ce=class extends Error{};const we=new Map,Te=new WeakMap,Ee=new Set([`chrome-extension:`,`moz-extension:`,`safari-web-extension:`]),x=new Set([`http:`,`https:`,...Ee]),De=(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},Oe=(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:De(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 Oe(i.map.mappings,i.map.sources,a,o,i.map.ignoredSourceIndices,i.map.names)}return Oe(e.mappings,e.sources,t-1,n,e.ignoredSourceIndices,e.names)},ke=(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=De(e,t,i,n);if(r){if(!r.isIgnoreListed)return r;o??=r}}return o},Ae=(e,t)=>{if(e.sections){let n=null;for(let r of e.sections){let e=ke(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 ke(e.mappings,e.sources,e.names,t,e.ignoredSourceIndices)},je=(e,t,n)=>{if(!t)return null;let r=e.indexOf(n);return r===-1?null:t[r]??null},C=(e,t)=>{let n=je(e.sources,e.sourcesContent,t);if(n!==null)return n;if(!e.sections)return null;for(let n of e.sections){let e=je(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}}},Me=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}},Ne=(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(be);n&&(i=n[1]||n[2]),a=e-1}return i?w(i,e):Me(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)},Pe=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})},Fe=e=>{let t=e.ignoreList??e.x_google_ignoreList;return t?.length?new Set(t):void 0},Ie=(e,t,r)=>{if(!e||n.test(t)||t.startsWith(`/`))return t;let i=e.endsWith(`/`)?e:`${e}/`,a=t.replace(/^\.\//,``);try{let e=n.test(i)?i:new URL(i,r).toString();return new URL(a,e).toString()}catch{let e=`${i}${a}`.split(`/`),t=[];for(let n of e)n===`..`?t.pop():n!==`.`&&t.push(n);return t.join(`/`)}},Le=(e,t)=>e.sources.map(n=>Ie(e.sourceRoot,n,t)),Re=(e,t)=>{try{return{file:e.file,ignoredSourceIndices:Fe(e),mappings:_e(e.mappings),names:e.names,sourceRoot:e.sourceRoot,sources:Le(e,t),sourcesContent:e.sourcesContent,version:3}}catch{return null}},ze=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:Fe(s),mappings:_e(s.mappings),sources:Le(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}},Be=(e,t=!1)=>{if(!e)return!1;let r=e.trim();if(!r)return!1;let i=r.match(n);if(!i)return!0;let a=i[0].toLowerCase();return t||x.has(a)},Ve=()=>typeof window>`u`&&typeof process<`u`&&typeof process.versions?.node==`string`,He=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&&Ee.has(t)},Ue=(e,t)=>{try{let n=new URL(e),r=new URL(t);return n.protocol===r.protocol&&n.host===r.host}catch{return!1}},We=(e,t,n,r)=>{if(b.test(t))return!0;if(!Be(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))||Ue(e,t)},Ge=e=>e===408||e===425||e===429||e>=500,Ke=e=>{if(e.ok)return!0;if(Ge(e.status))throw new Ce;return!1},qe=(e,t,n)=>!n||t.url.length===0||Ue(e,t.url),Je=e=>{if(e.timeoutMs===void 0||e.timeoutMs<0)return{cleanup:()=>{},signal:e.signal};let n=new AbortController,r=()=>n.abort(e.signal?.reason);e.signal?.aborted?r():e.signal?.addEventListener(`abort`,r,{once:!0});let i=setTimeout(()=>n.abort(new t.F(`Source map request timed out`)),e.timeoutMs);return{cleanup:()=>{clearTimeout(i),e.signal?.removeEventListener(`abort`,r)},signal:n.signal}},Ye=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()}},Xe=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))},Ze=(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`)?Xe(i):decodeURIComponent(i);return e===null||new TextEncoder().encode(e).byteLength>t?null:JSON.parse(e)}catch{return null}},Qe=async(e,t,n,r,i)=>{if(b.test(e))return Ze(e,r);let a=await t(e,{redirect:i?`error`:`follow`,signal:n});if(!Ke(a)||!qe(e,a,i))return null;let o=await Ye(a,r);if(o===null)return null;try{return JSON.parse(o)}catch{return null}},$e=async(e,t,n={})=>{let r=t!==void 0;if(!Be(e,r))return null;let i=Ve(),a=i||D(e);if(i&&!t&&(!n.allowUnsafeServerFetch||!He(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=Je(n);try{let t=await o(e,{redirect:a?`error`:`follow`,signal:l.signal});if(!Ke(t)||!qe(e,t,a))return null;let n=await Ye(t,s);if(n===null)return null;let i=Ne(e,n,t);if(!i||!We(e,i,a,r))return null;let u=await Qe(i,o,l.signal,c,a);return T(u)?Re(u,i):Pe(u)?ze(u,i,async t=>{if(!We(e,t,a,r))return null;let n=await Qe(t,o,l.signal,c,a);return T(n)?n:null}):null}finally{l.cleanup()}},et=(e,t,n)=>{if(!n)return t;let r=e.get(n);return r||(r=new Map,e.set(n,r)),r},tt=e=>et(Se,xe,e),nt=e=>et(Te,we,e),rt=(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=tt(n),o=nt(n),s=rt(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=$e(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`,it=e=>`tag`in e&&typeof e.tag==`number`,j=e=>{let n=null;if(t.O(e,t=>{if(t===e)return!1;let r=t._debugOwner;return(r===e||e.alternate!==null&&r===e.alternate)&&t._debugStack instanceof Error&&(n=t._debugStack,!0)}),!n)return null;let{frames:r,isTrusted:i}=_(n);if(!i)return null;for(let e=r.length-1;e>=0;e--){let t=r[e];if(t.fileName)return{...t,lineNumber:t.enclosingLineNumber||t.lineNumber,columnNumber:t.enclosingColumnNumber||t.columnNumber}}return null},at=()=>{let e=[];for(let t of le())e.push({currentDispatcherRef:t,value:ue(t)}),v(t,null);return e},ot=e=>{for(let{currentDispatcherRef:t,value:n}of e)v(t,n)},M=e=>`\n in ${e}`,st=(e,t)=>{let n=M(e);return t&&(n+=` (at ${t})`),n};let N=!1;const P=new WeakMap,F=(e,n)=>{if(!e||N)return``;let r=P.get(e);if(r!==void 0)return r;let i=f();p(void 0),N=!0;let a=at(),o=console.error,s=console.warn;console.error=()=>{},console.warn=()=>{};try{let r={DetermineComponentFrameRoot(){let t;try{if(n){let n=function(){throw Error()};if(Object.defineProperty(n.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){t=e}Reflect.construct(e,[],n)}else{try{Function.prototype.apply.call(n,void 0,[])}catch(e){t=e}Function.prototype.apply.call(e,n.prototype,[])}}else{try{throw Error()}catch(e){t=e}let n=Function.prototype.apply.call(e,void 0,[]);typeof n==`object`&&n&&`catch`in n&&typeof n.catch==`function`&&n.catch(()=>void 0)}}catch(e){if(e instanceof Error&&t instanceof Error&&typeof e.stack==`string`)return[e.stack,t.stack]}return[null,null]}};Object.defineProperty(r.DetermineComponentFrameRoot,"displayName",{value:`DetermineComponentFrameRoot`}),Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`)?.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});let[i,a]=r.DetermineComponentFrameRoot();if(i&&a){let n=i.split(`
|
|
15
15
|
`),r=a.split(`
|
|
16
|
-
`),o=0,s=0;for(;o<n.length&&!n[o].includes(`DetermineComponentFrameRoot`);)o++;for(;s<r.length&&!r[s].includes(`DetermineComponentFrameRoot`);)s++;if(o===n.length||s===r.length)for(o=n.length-1,s=r.length-1;o>=1&&s>=0&&n[o]!==r[s];)s--;for(;o>=1&&s>=0;o--,s--)if(n[o]!==r[s]){if(o!==1||s!==1)do if(o--,s--,s<0||n[o]!==r[s]){let r=`\n${n[o].replace(` at new `,` at `)}`,i=t.a(e);return
|
|
17
|
-
`)&&(
|
|
18
|
-
`);
|
|
19
|
-
`,
|
|
20
|
-
`),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(`
|
|
21
|
-
`),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},Ye=async(e,n=!0,r)=>{let i=(await F(e,n,r)).filter(e=>e.fileName)[0];if(!i?.fileName)return t.a(e.type);let a=await D(i.fileName,n,r);if(!a)return t.a(e.type);let o=null;if(typeof i.lineNumber==`number`&&typeof i.columnNumber==`number`&&(o=E(a,i.lineNumber,i.columnNumber)),!o?.fileName||!o.lineNumber||!a.sourcesContent)return t.a(e.type);let s=a.sources.indexOf(o.fileName);if(s===-1||!a.sourcesContent[s])return t.a(e.type);let c=a.sourcesContent[s];return Je(c,o.lineNumber)||t.a(e.type)},z=Symbol.for(`react.context`),Xe=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},Ze=()=>{let t=e.i(),n=[...e.r,...t.renderers.values()];for(let e of n){let t=e.currentDispatcherRef;if(t&&typeof t==`object`)return t}return null},Qe=e=>`H`in e?e.H:e.current,$e=(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})},et=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===z&&`_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))},tt=e=>{let t=X(e);return Z(`Context`,t,`Context`,e.displayName||null),t},nt=e=>{let t=Y(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return Z(`State`,n,`State`),[n,()=>{}]},rt=(e,t,n)=>{let r=Y(),i=r===null?n===void 0?t:n(t):r.memoizedState;return Z(`Reducer`,i,`Reducer`),[i,()=>{}]},it=e=>{let t=Y(),n=t===null?{current:e}:t.memoizedState;return Z(`Ref`,n.current,`Ref`),n},at=()=>{let e=Y();return Z(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},ot=e=>{Y(),Z(`LayoutEffect`,e,`LayoutEffect`)},st=e=>{Y(),Z(`InsertionEffect`,e,`InsertionEffect`)},ct=e=>{Y(),Z(`Effect`,e,`Effect`)},lt=e=>{Y();let t;typeof e==`object`&&e&&`current`in e&&(t=e.current),Z(`ImperativeHandle`,t,`ImperativeHandle`)},ut=(e,t)=>{Z(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},dt=e=>{let t=Y();return Z(`Callback`,t===null?e:t.memoizedState[0],`Callback`),e},ft=e=>{let t=Y(),n=t===null?e():t.memoizedState[0];return Z(`Memo`,n,`Memo`),n},pt=(e,t)=>{let n=Y();Y();let r=n===null?t():n.memoizedState;return Z(`SyncExternalStore`,r,`SyncExternalStore`),r},mt=()=>{let e=Y();Y();let t=e!==null&&e.memoizedState;return Z(`Transition`,t,`Transition`),[t,()=>{}]},ht=e=>{let t=Y(),n=t===null?e:t.memoizedState;return Z(`DeferredValue`,n,`DeferredValue`),n},gt=()=>{let e=Y(),t=e===null?``:e.memoizedState;return Z(`Id`,t,`Id`),t},_t=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},()=>Xe)),n.index++,r},vt=e=>{let t=Y(),n=t===null?e:t.memoizedState;return Z(`Optimistic`,n,`Optimistic`),[n,()=>{}]},yt=(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}},bt=e=>(t,n)=>{let r=Y();Y(),Y();let i=Error(),{value:a,error:o}=yt(r,n);if(B.push({displayName:null,primitive:e,stackError:i,value:a,dispatcherHookName:e}),o!==null)throw o;return[a,()=>{},!1]},xt=bt(`ActionState`),Q={readContext:X,use:et,useCallback:dt,useContext:tt,useEffect:ct,useImperativeHandle:lt,useLayoutEffect:ot,useInsertionEffect:st,useMemo:ft,useReducer:rt,useRef:it,useState:nt,useDebugValue:ut,useDeferredValue:ht,useTransition:mt,useSyncExternalStore:pt,useId:gt,useHostTransitionStatus:()=>{let e=X({_currentValue:null});return Z(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:bt(`FormState`),useActionState:xt,useOptimistic:vt,useMemoCache:_t,useCacheRefresh:at,useEffectEvent:e=>(Y(),Z(`EffectEvent`,e,`EffectEvent`),e)},St=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}}),Ct=()=>{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:z,_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 wt=0;const Tt=(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},Et=(e,t)=>{let n=Tt(t,e,wt);if(n!==-1)return n;for(let r=0;r<e.length&&r<5;r++)if(n=Tt(t,e,r),n!==-1)return wt=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)},Dt=(e,t)=>{let n=$(e);return t===`HostTransitionStatus`?n===t||n===`FormStatus`:n===t},Ot=(e,t)=>{let n=Ct().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&&Dt(e[r].functionName,t.dispatcherHookName)&&r++,r<e.length-1&&Dt(e[r].functionName,t.dispatcherHookName)&&r++,r;return-1},kt=(e,t)=>{let n=J(t.stackError),r=Et(e,n),i=Ot(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)]},At=new Set([`Context`,`Context (use)`,`DebugValue`,`Promise`,`Unresolved`,`HostTransitionStatus`]),jt=(e,t)=>{let n=[],r=null,i=n,a=0,o=[];for(let s of t){let[t,c]=kt(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=At.has(u)?null:a++,f=u===`Reducer`||u===`State`,p=l||u,m=c?.[0],h={lineNumber:m?.lineNumber??null,columnNumber:m?.columnNumber??null,functionName:m?.functionName??null,fileName:m?.fileName??null};i.push({id:d,isStateEditable:f,name:p,value:s.value,subHooks:[],hookSource:h})}return Mt(n,null),n},Mt=(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)):Mt(r.subHooks,r)}t!==null&&(n.length===1?t.value=n[0].value:n.length>1&&(t.value=n.map(({value:e})=>e)))},Nt=(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}},Pt=e=>{e.forEach((e,t)=>{t._currentValue=e})},Ft=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},It=(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},Lt=()=>{let e={};for(let t in console)try{e[t]=console[t],console[t]=()=>{}}catch{}return e},Rt=e=>{for(let t in e)try{console[t]=e[t]}catch{}},zt=(e,t)=>{let n=Qe(e);$e(e,St);let r=[],i;try{i=Error(),t()}catch(e){Ft(e)}finally{r=B,B=[],$e(e,n)}let a=i===void 0?[]:J(i);return jt(a,r)},Bt=()=>{let e=Ze();if(!e)throw Error(`No React renderer found. Make sure React is loaded and bippy's hook is installed.`);return e},Vt=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.`)},Ht=e=>{let t=Bt();if(e.tag!==0&&e.tag!==15&&e.tag!==11)throw Error(`Unknown Fiber. Needs to be a function component to inspect hooks.`);Ct(),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,Vt(e);let i=e.type,a=e.memoizedProps;i!==e.elementType&&(a=It(i,a));let o=Lt(),s=new Map;try{return W!==null&&!Object.prototype.hasOwnProperty.call(W,`memoizedValue`)&&Nt(s,e),e.tag===11?zt(t,()=>{i.render(a,e.ref)}):zt(t,()=>{i(a)})}finally{H=null,U=null,W=null,K=null,G=0,Pt(s),Rt(o)}},Ut=new Set([`Effect`,`LayoutEffect`,`InsertionEffect`,`ImperativeHandle`,`DebugValue`]),Wt=/(?:const|let|var)\s+((?:\[[\s\S]*?\]|\w+))\s*=\s*(?:[\w$.]+\.)*use[A-Z]\w*\s*(?:<[\s\S]*?>)?\s*\(/g,Gt=e=>`${e.fileName??``}:${e.lineNumber??0}:${e.columnNumber??0}`,Kt=e=>{let t=[],n=e=>{for(let r of e)Ut.has(r.name)||(t.push(r),r.subHooks.length>0&&n(r.subHooks))};return n(e),t},qt=(e,t,n)=>{if(!t)return null;let r=e.indexOf(n);return r===-1?null:t[r]??null},Jt=(e,t)=>{let n=qt(e.sources,e.sourcesContent,t);if(n)return n;if(e.sections)for(let n of e.sections){let e=qt(n.map.sources,n.map.sourcesContent,t);if(e)return e}return null},Yt=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},Xt=(e,t,n)=>{let r=e.split(`
|
|
16
|
+
`),o=0,s=0;for(;o<n.length&&!n[o].includes(`DetermineComponentFrameRoot`);)o++;for(;s<r.length&&!r[s].includes(`DetermineComponentFrameRoot`);)s++;if(o===n.length||s===r.length)for(o=n.length-1,s=r.length-1;o>=1&&s>=0&&n[o]!==r[s];)s--;for(;o>=1&&s>=0;o--,s--)if(n[o]!==r[s]){if(o!==1||s!==1)do if(o--,s--,s<0||n[o]!==r[s]){let r=`\n${n[o].replace(` at new `,` at `)}`,[i]=g(r);if(!i?.fileName)continue;let a=t.a(e);return a&&r.includes(`<anonymous>`)&&(r=r.replace(`<anonymous>`,a)),P.set(e,r),r}while(o>=1&&s>=0);break}}}finally{N=!1,p(i),ot(a),console.error=o,console.warn=s}let c=t.a(e),l=c?M(c):``;return P.set(e,l),l},ct=(e,n)=>{let r=``,i=t.L(e);switch(e.tag){case i.ActivityComponent:r=M(`Activity`);break;case i.ClassComponent:r=F(e.type,!0);break;case i.ForwardRef:r=F(t.m(e.type)??e.type,!1);break;case i.FunctionComponent:case i.SimpleMemoComponent:r=F(t.m(e.type)??e.type,!1);break;case i.HostComponent:case i.HostHoistable:case i.HostSingleton:typeof e.type==`string`&&(r=M(e.type));break;case i.LazyComponent:r=M(`Lazy`);break;case i.SuspenseComponent:r=e.child!==n&&n!==null?M(`Suspense Fallback`):M(`Suspense`);break;case i.SuspenseListComponent:r=M(`SuspenseList`);break;case i.ViewTransitionComponent:r=M(`ViewTransition`);break;default:return``}return r},lt=e=>{try{let t=``,n=e,r=null;do{t+=ct(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+=st(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}`:``}},ut=e=>{let t=e;if(!t)return``;t.startsWith(`Error: react-stack-top-frame
|
|
17
|
+
`)&&(t=t.slice(29));let n=t.indexOf(`
|
|
18
|
+
`);n!==-1&&(t=t.slice(n+1));let r=Math.max(...u.map(e=>t.indexOf(e)));if(r!==-1&&(r=t.lastIndexOf(`
|
|
19
|
+
`,r)),r!==-1)t=t.slice(0,r);else return``;return t},dt=e=>!!(e.functionName&&e.fileName&&ht(e.fileName)),ft=(e,t)=>e.fileName===t.fileName&&e.lineNumber===t.lineNumber&&e.columnNumber===t.columnNumber,pt=e=>{let t=new Map;for(let n of e){if(!dt(n))continue;let e=n.functionName,r=t.get(e)??[];r.some(e=>ft(e,n))||(r.push(n),t.set(e,r))}return t},mt=(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})`)}},ht=e=>i.some(t=>e.startsWith(t)),gt=e=>!e.isServer&&e.fileName&&ht(e.fileName)?{...e,isServer:!0}:e,_t=e=>{let t=[],n=e;for(;n;)if(it(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(gt(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},vt=e=>{let n=[];return t.O(e,e=>{if(!A(e))return;let{frames:t,isTrusted:r}=_(e._debugStack);r&&n.push(...t)},!0),n},yt=e=>{let t=vt(e),n=g(lt(e)),r=pt(t),i=new Map;return n.map(e=>e.source!==void 0&&l.test(e.source)?mt(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(yt(e),t,n),bt=e=>!!e.fileName&&!e.isIgnoreListed,xt=async(e,n=!0,r)=>{let i=_t(e);if(i.length>0){let a=j(e)??{};a.functionName=t.a(e.type)??a.functionName;let o=await k([a,...i],n,r);if(o.some((e,t)=>t>0&&bt(e)))return o}return I(e,n,r)},St=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,Ct=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},wt=async(e,n,r)=>{let i=t.a(e.type);if(!i)return null;let a=g(Error().stack??``),o=new Set;for(let e of a){let t=e.fileName;if(!t||o.has(t))continue;o.add(t);let a=await O(t,n,r);if(!a)continue;let s=Ae(a,i);if(s&&!s.isIgnoreListed)return L(s)}return null},Tt=async(e,t=!0,n)=>{if(St(e))return e._debugSource;let r=Ct(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 wt(e,t,n)},Et=e=>e.split(`/`).filter(Boolean).length,Dt=e=>{let t=e.indexOf(`/`,1);if(t===-1)return e;let n=e.slice(0,t);if(Et(n)!==1)return e;let r=e.slice(t);if(!o.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},Ot=e=>{if(!e||a.some(t=>t===e))return``;let t=e,i=/^[a-zA-Z]:[\\/]/.test(t);if(t.startsWith(`http://`)||t.startsWith(`https://`)){try{t=new URL(t).pathname}catch{}t=Dt(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 o=!0;for(;o;){o=!1;for(let e of r)if(t.startsWith(e)){t=t.slice(e.length),e===`file:///`&&(t=`/${t.replace(/^\/+/,``)}`),o=!0;break}}if(!i){let e=t.match(n);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);c.test(e)&&(t=t.slice(0,s))}return t},kt=e=>{let t=Ot(e);return!(!t||!o.test(t)||s.test(t))},At=[/(?:^|export\s+)(?:const|let|var)\s+(\w+)\s*=/,/(?:^|export\s+)function\s+(\w+)/,/(?:^|export\s+)class\s+(\w+)/],jt=e=>{for(let t of At){let n=e.match(t);if(n?.[1])return n[1]}return null},Mt=(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=jt(n[e]);if(t)return t}}return null},Nt=async(e,n=!0,r)=>{let i=j(e)??yt(e).find(e=>e.fileName);if(!i?.fileName)return t.a(e.type);let a=await O(i.fileName,n,r);if(!a)return t.a(e.type);let o=null;if(typeof i.lineNumber==`number`&&typeof i.columnNumber==`number`&&(o=S(a,i.lineNumber,i.columnNumber)),!o?.fileName||!o.lineNumber)return t.a(e.type);let s=C(a,o.fileName);return(s?Mt(s,o.lineNumber):null)||(o.functionName??t.a(e.type))},Pt=Symbol.for(`react.context`),Ft=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`,It=e=>typeof e==`object`&&!!e&&`current`in e,Y=e=>typeof e==`object`&&!!e&&`_currentValue`in e,Lt=e=>typeof e==`object`&&!!e&&`context`in e&&`next`in e,Rt=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 t.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})},zt=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===Pt&&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 t.N(`use() received an unsupported value: `+String(e))},Bt=e=>{let t=X(e);return Z(`Context`,t,`Context`,e.displayName??null),t},Vt=e=>{let t=q(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return Z(`State`,n,`State`),[n,()=>{}]},Ht=(e,t,n)=>{let r=q(),i=r===null?n===void 0?t:n(t):r.memoizedState;return Z(`Reducer`,i,`Reducer`),[i,()=>{}]},Ut=e=>{let t=q(),n=It(t?.memoizedState)?t.memoizedState:{current:e};return Z(`Ref`,n.current,`Ref`),n},Wt=()=>{let e=q();return Z(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},Gt=e=>{q(),Z(`LayoutEffect`,e,`LayoutEffect`)},Kt=e=>{q(),Z(`InsertionEffect`,e,`InsertionEffect`)},qt=e=>{q(),Z(`Effect`,e,`Effect`)},Jt=e=>{q();let t=It(e)?e.current:void 0;Z(`ImperativeHandle`,t,`ImperativeHandle`)},Yt=(e,t)=>{Z(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},Xt=e=>{let t=q();return Z(`Callback`,Array.isArray(t?.memoizedState)?t.memoizedState[0]:e,`Callback`),e},Zt=e=>{let t=q(),n=Array.isArray(t?.memoizedState)?t.memoizedState[0]:e();return Z(`Memo`,n,`Memo`),n},Qt=(e,t)=>{let n=q();q();let r=n===null?t():n.memoizedState;return Z(`SyncExternalStore`,r,`SyncExternalStore`),r},$t=()=>{let e=q();q();let t=e?.memoizedState===!0;return Z(`Transition`,t,`Transition`),[t,()=>{}]},en=e=>{let t=q(),n=t===null?e:t.memoizedState;return Z(`DeferredValue`,n,`DeferredValue`),n},tn=()=>{let e=q(),t=typeof e?.memoizedState==`string`?e.memoizedState:``;return Z(`Id`,t,`Id`),t},nn=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},()=>Ft)),n.index++,r},rn=e=>{let t=q(),n=t===null?e:t.memoizedState;return Z(`Optimistic`,n,`Optimistic`),[n,()=>{}]},an=(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}},on=e=>(t,n)=>{let r=q();q(),q();let{value:i,error:a}=an(r,n);if(Z(e,i,e),a!==null)throw a;return[i,()=>{},!1]},sn=on(`ActionState`),Q={readContext:X,use:zt,useCallback:Xt,useContext:Bt,useEffect:qt,useImperativeHandle:Jt,useLayoutEffect:Gt,useInsertionEffect:Kt,useMemo:Zt,useReducer:Ht,useRef:Ut,useState:Vt,useDebugValue:Yt,useDeferredValue:en,useTransition:$t,useSyncExternalStore:Qt,useId:tn,useHostTransitionStatus:()=>{let e=X({_currentValue:null});return Z(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:on(`FormState`),useActionState:sn,useOptimistic:rn,useMemoCache:nn,useCacheRefresh:Wt,useEffectEvent:e=>(q(),Z(`EffectEvent`,e,`EffectEvent`),e)},cn=new Proxy(Q,{get(e,n){if(Object.hasOwn(e,n))return Reflect.get(e,n);throw new t.I(`The React dispatcher is missing method `+n)}}),ln=()=>{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:Pt,_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 un=0;const dn=(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},fn=(e,t)=>{let n=dn(t,e,un);if(n!==-1)return n;for(let r=0;r<e.length&&r<5;r++)if(n=dn(t,e,r),n!==-1)return un=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)},pn=(e,t)=>{let n=$(e);return t===`HostTransitionStatus`?n===t||n===`FormStatus`:n===t},mn=(e,t)=>{let n=ln().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&&pn(e[r].functionName,t.dispatcherHookName)&&r++,r<e.length-1&&pn(e[r].functionName,t.dispatcherHookName)&&r++,r;return-1},hn=(e,t)=>{let n=K(t.stackError),r=fn(e,n),i=mn(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)]},gn=new Set([`Context`,`Context (use)`,`DebugValue`,`Promise`,`Unresolved`,`HostTransitionStatus`]),_n=(e,t)=>{let n=[],r=null,i=n,a=0,o=[];for(let s of t){let[t,c]=hn(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=gn.has(u)?null:a++,f=u===`Reducer`||u===`State`,p=l||u,m=c?.[0],h={lineNumber:m?.lineNumber??null,columnNumber:m?.columnNumber??null,functionName:m?.functionName??null,fileName:m?.fileName??null};i.push({id:d,isStateEditable:f,name:p,value:s.value,subHooks:[],hookSource:h})}return vn(n,null),n},vn=(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)):vn(r.subHooks,r)}t!==null&&(n.length===1?t.value=n[0].value:n.length>1&&(t.value=n.map(({value:e})=>e)))},yn=(e,n)=>{let r=n;for(;r;){if(r.tag===t.L(r).ContextProvider){let t=r.type,n=typeof t==`object`&&t&&`_context`in t?t._context:void 0,i=Y(n)?n:Y(t)?t:null;i&&!e.has(i)&&(e.set(i,i._currentValue),i._currentValue=r.memoizedProps.value)}r=r.return}},bn=e=>{e.forEach((e,t)=>{t._currentValue=e})},xn=e=>{if(e!==G)throw e instanceof t.I?e:new t.P(`Bippy couldn’t render the inspected component`,e)},Sn=(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},Cn=()=>{let e={};for(let t in console)try{e[t]=Reflect.get(console,t),Reflect.set(console,t,()=>{})}catch{}return e},wn=e=>{for(let t in e)try{Reflect.set(console,t,e[t])}catch{}},Tn=(e,t)=>{let n=ue(e);v(e,cn);let r=[],i;try{i=Error(),t()}catch(e){xn(e)}finally{r=R,R=[],v(e,n)}let a=i===void 0?[]:K(i);return _n(a,r)},En=()=>{let e=le()[0];if(!e)throw new t.N(`Bippy couldn’t find a React renderer. Load React and install Bippy’s hook.`);return e},Dn=e=>{let n=[`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(n){let t=Reflect.get(e,n),r=typeof t==`object`&&t&&`firstContext`in t?t.firstContext:null;H=Lt(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=Lt(n)?n:null}else throw new t.N(`Bippy doesn’t support this React version.`)},On=e=>{let n=En(),r=t.L(e);if(e.tag!==r.FunctionComponent&&e.tag!==r.SimpleMemoComponent&&e.tag!==r.ForwardRef)throw new t.N(`Hook inspection requires a function component Fiber.`);ln(),V=e.memoizedState,B=e;let i=e.dependencies?._debugThenableState,a=Array.isArray(i)?i:i?.thenables;W=Array.isArray(a)?a:null,U=0,Dn(e);let o=e.type,s=e.memoizedProps;o!==e.elementType&&(s=Sn(o,s));let c=Cn(),l=new Map;try{if(H!==null&&!Object.hasOwn(H,`memoizedValue`)&&yn(l,e),e.tag===r.ForwardRef){if(!Rt(o))throw new t.N(`ForwardRef fiber is missing its render function.`);return Tn(n,()=>{o.render(s,e.ref)})}if(typeof o!=`function`)throw new t.N(`Function component fiber is missing its component function.`);return Tn(n,()=>{o(s)})}finally{B=null,V=null,H=null,W=null,U=0,bn(l),wn(c)}},kn=new Set([`Effect`,`LayoutEffect`,`InsertionEffect`,`ImperativeHandle`,`DebugValue`]),An=/(?:const|let|var)\s+((?:\[[\s\S]*?\]|\w+))\s*=\s*(?:[\w$.]+\.)*use[A-Z]\w*\s*(?:<[\s\S]*?>)?\s*\(/g,jn=e=>`${e.fileName??``}:${e.lineNumber??0}:${e.columnNumber??0}`,Mn=e=>{let t=[],n=e=>{for(let r of e)kn.has(r.name)||(t.push(r),r.subHooks.length>0&&n(r.subHooks))};return n(e),t},Nn=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},Pn=(e,t,n)=>{let r=e.split(`
|
|
22
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(`
|
|
23
|
-
`),s=[...o.matchAll(
|
|
24
|
-
`)+1+n,l=s.filter(e=>e.index<=c).at(-1);return l?
|
|
22
|
+
`),s=[...o.matchAll(An)],c=o.lastIndexOf(`
|
|
23
|
+
`)+1+n,l=s.filter(e=>e.index<=c).at(-1);return l?Nn(l[1]):null},Fn=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},In=async(e,t)=>{let n=new Map,r=Mn(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 Fn(t.fileName,t.lineNumber,t.columnNumber,i);if(!r)return;let a=Pn(r.sourceCode,r.lineNumber,r.columnNumber);if(a){let e=jn(t);n.set(e,a)}})),n};exports.BippyError=t.M,exports.BippyHookInspectionError=t.N,exports.BippyHookRenderError=t.P,exports.BippySourceMapError=t.F,exports.BippyUnsupportedHookError=t.I,exports.formatOwnerStack=ut,exports.getDisplayNameFromSource=Nt,exports.getFiberHooks=On,exports.getOwnerStack=xt,exports.getParentStack=I,exports.getSource=Tt,exports.getSourceContentFromSourceMap=C,exports.getSourceFromSourceMap=S,exports.getSourceFromSourceMapByFunctionName=Ae,exports.getSourceMap=O,exports.hasDebugStack=A,exports.isSourceFile=kt,exports.normalizeFileName=Ot,exports.parseHookNames=In,exports.parseStack=g,exports.symbolicateStack=k;
|
package/dist/source.d.cts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
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 { a as BippyUnsupportedHookError, i as BippySourceMapError, m as Fiber, n as BippyHookInspectionError, r as BippyHookRenderError, t as BippyError } from "./errors.cjs";
|
|
2
10
|
//#region src/source/parse-stack.d.ts
|
|
3
11
|
interface StackFrame {
|
|
4
|
-
args?: unknown[];
|
|
5
12
|
columnNumber?: number;
|
|
6
13
|
lineNumber?: number;
|
|
7
14
|
enclosingLineNumber?: number;
|
|
@@ -14,12 +21,80 @@ interface StackFrame {
|
|
|
14
21
|
isIgnoreListed?: boolean;
|
|
15
22
|
}
|
|
16
23
|
interface ParseOptions {
|
|
17
|
-
slice?: number | [number, number];
|
|
18
|
-
allowEmpty?: boolean;
|
|
19
24
|
includeInElement?: boolean;
|
|
20
25
|
}
|
|
21
26
|
declare const parseStack: (stackString: string, options?: ParseOptions) => StackFrame[];
|
|
22
27
|
//#endregion
|
|
28
|
+
//#region ../../node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts
|
|
29
|
+
type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/source/symbolication.d.ts
|
|
32
|
+
interface DecodedSourceMapSection {
|
|
33
|
+
map: {
|
|
34
|
+
file?: string;
|
|
35
|
+
ignoredSourceIndices?: Set<number>;
|
|
36
|
+
mappings: SourceMapSegment[][];
|
|
37
|
+
names?: string[];
|
|
38
|
+
sourceRoot?: string;
|
|
39
|
+
sources: string[];
|
|
40
|
+
sourcesContent?: Array<string | null>;
|
|
41
|
+
version: 3;
|
|
42
|
+
};
|
|
43
|
+
offset: {
|
|
44
|
+
column: number;
|
|
45
|
+
line: number;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
interface IndexSourceMap {
|
|
49
|
+
file?: string;
|
|
50
|
+
sections: Array<{
|
|
51
|
+
map?: StandardSourceMap;
|
|
52
|
+
offset: {
|
|
53
|
+
column: number;
|
|
54
|
+
line: number;
|
|
55
|
+
};
|
|
56
|
+
url?: string;
|
|
57
|
+
}>;
|
|
58
|
+
version: 3;
|
|
59
|
+
}
|
|
60
|
+
interface SourceFetch {
|
|
61
|
+
(url: string, init?: RequestInit): Promise<Response>;
|
|
62
|
+
}
|
|
63
|
+
interface SourceMapRequestOptions {
|
|
64
|
+
allowUnsafeServerFetch?: boolean;
|
|
65
|
+
maxBundleSizeBytes?: number;
|
|
66
|
+
maxSourceMapSizeBytes?: number;
|
|
67
|
+
signal?: AbortSignal;
|
|
68
|
+
timeoutMs?: number;
|
|
69
|
+
}
|
|
70
|
+
interface SourceMap {
|
|
71
|
+
file?: string;
|
|
72
|
+
ignoredSourceIndices?: Set<number>;
|
|
73
|
+
mappings: SourceMapSegment[][];
|
|
74
|
+
names?: string[];
|
|
75
|
+
sections?: DecodedSourceMapSection[];
|
|
76
|
+
sourceRoot?: string;
|
|
77
|
+
sources: string[];
|
|
78
|
+
sourcesContent?: Array<string | null>;
|
|
79
|
+
version: 3;
|
|
80
|
+
}
|
|
81
|
+
interface StandardSourceMap {
|
|
82
|
+
file?: string;
|
|
83
|
+
ignoreList?: number[];
|
|
84
|
+
mappings: string;
|
|
85
|
+
names?: string[];
|
|
86
|
+
sourceRoot?: string;
|
|
87
|
+
sources: string[];
|
|
88
|
+
sourcesContent?: Array<string | null>;
|
|
89
|
+
version: 3;
|
|
90
|
+
x_google_ignoreList?: number[];
|
|
91
|
+
}
|
|
92
|
+
declare const getSourceFromSourceMap: (sourceMap: SourceMap, line: number, column: number) => StackFrame | null;
|
|
93
|
+
declare const getSourceFromSourceMapByFunctionName: (sourceMap: SourceMap, functionName: string) => StackFrame | null;
|
|
94
|
+
declare const getSourceContentFromSourceMap: (sourceMap: SourceMap, originalFileName: string) => string | null;
|
|
95
|
+
declare const getSourceMap: (file: string, useCache?: boolean, fetchFn?: SourceFetch, options?: SourceMapRequestOptions) => Promise<null | SourceMap>;
|
|
96
|
+
declare const symbolicateStack: (stack: StackFrame[], cache?: boolean, fetchFn?: SourceFetch) => Promise<StackFrame[]>;
|
|
97
|
+
//#endregion
|
|
23
98
|
//#region src/source/owner-stack.d.ts
|
|
24
99
|
declare const hasDebugStack: (fiber: Fiber) => fiber is Fiber & {
|
|
25
100
|
_debugStack: NonNullable<Fiber["_debugStack"]>;
|
|
@@ -50,7 +125,7 @@ declare const formatOwnerStack: (stack: string) => string;
|
|
|
50
125
|
* with a throwing dispatcher; server frames are enriched from debug stacks by
|
|
51
126
|
* name matching. Works on every React version.
|
|
52
127
|
*/
|
|
53
|
-
declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?:
|
|
128
|
+
declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?: SourceFetch) => Promise<StackFrame[]>;
|
|
54
129
|
/**
|
|
55
130
|
* Returns the stack of components that CREATED this fiber's JSX (the
|
|
56
131
|
* `_debugOwner` chain), with exact creation-site locations from React 19's
|
|
@@ -61,7 +136,7 @@ declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunctio
|
|
|
61
136
|
* yields no locatable frames (so callers always get the most useful stack
|
|
62
137
|
* available).
|
|
63
138
|
*/
|
|
64
|
-
declare const getOwnerStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?:
|
|
139
|
+
declare const getOwnerStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?: SourceFetch) => Promise<StackFrame[]>;
|
|
65
140
|
//#endregion
|
|
66
141
|
//#region src/source/types.d.ts
|
|
67
142
|
interface FiberSource {
|
|
@@ -98,70 +173,12 @@ interface FiberSource {
|
|
|
98
173
|
* console.log(source.fileName, source.lineNumber);
|
|
99
174
|
* ```
|
|
100
175
|
*/
|
|
101
|
-
declare const getSource: (fiber: Fiber, cache?: boolean, fetchFn?:
|
|
176
|
+
declare const getSource: (fiber: Fiber, cache?: boolean, fetchFn?: SourceFetch) => Promise<FiberSource | null>;
|
|
102
177
|
declare const normalizeFileName: (fileName: string) => string;
|
|
103
178
|
declare const isSourceFile: (fileName: string) => boolean;
|
|
104
179
|
//#endregion
|
|
105
|
-
//#region ../../node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts
|
|
106
|
-
type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
|
|
107
|
-
//#endregion
|
|
108
|
-
//#region src/source/symbolication.d.ts
|
|
109
|
-
interface DecodedSourceMapSection {
|
|
110
|
-
map: {
|
|
111
|
-
file?: string;
|
|
112
|
-
ignoredSourceIndices?: Set<number>;
|
|
113
|
-
mappings: SourceMapSegment[][];
|
|
114
|
-
names?: string[];
|
|
115
|
-
sourceRoot?: string;
|
|
116
|
-
sources: string[];
|
|
117
|
-
sourcesContent?: string[];
|
|
118
|
-
version: 3;
|
|
119
|
-
};
|
|
120
|
-
offset: {
|
|
121
|
-
column: number;
|
|
122
|
-
line: number;
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
interface IndexSourceMap {
|
|
126
|
-
file?: string;
|
|
127
|
-
sections: Array<{
|
|
128
|
-
map: StandardSourceMap;
|
|
129
|
-
offset: {
|
|
130
|
-
column: number;
|
|
131
|
-
line: number;
|
|
132
|
-
};
|
|
133
|
-
}>;
|
|
134
|
-
version: 3;
|
|
135
|
-
}
|
|
136
|
-
type RawSourceMap = IndexSourceMap | StandardSourceMap;
|
|
137
|
-
interface SourceMap {
|
|
138
|
-
file?: string;
|
|
139
|
-
ignoredSourceIndices?: Set<number>;
|
|
140
|
-
mappings: SourceMapSegment[][];
|
|
141
|
-
names?: string[];
|
|
142
|
-
sections?: DecodedSourceMapSection[];
|
|
143
|
-
sourceRoot?: string;
|
|
144
|
-
sources: string[];
|
|
145
|
-
sourcesContent?: string[];
|
|
146
|
-
version: 3;
|
|
147
|
-
}
|
|
148
|
-
interface StandardSourceMap {
|
|
149
|
-
file?: string;
|
|
150
|
-
ignoreList?: number[];
|
|
151
|
-
mappings: string;
|
|
152
|
-
names?: string[];
|
|
153
|
-
sourceRoot?: string;
|
|
154
|
-
sources: string[];
|
|
155
|
-
sourcesContent?: string[];
|
|
156
|
-
version: 3;
|
|
157
|
-
x_google_ignoreList?: number[];
|
|
158
|
-
}
|
|
159
|
-
declare const getSourceFromSourceMap: (sourceMap: SourceMap, line: number, column: number) => StackFrame | null;
|
|
160
|
-
declare const getSourceMap: (file: string, useCache?: boolean, fetchFn?: (url: string) => Promise<Response>) => Promise<null | SourceMap>;
|
|
161
|
-
declare const symbolicateStack: (stack: StackFrame[], cache?: boolean, fetchFn?: (url: string) => Promise<Response>) => Promise<StackFrame[]>;
|
|
162
|
-
//#endregion
|
|
163
180
|
//#region src/source/get-display-name-from-source.d.ts
|
|
164
|
-
declare const getDisplayNameFromSource: (fiber: Fiber, cache?: boolean, fetchFn?:
|
|
181
|
+
declare const getDisplayNameFromSource: (fiber: Fiber, cache?: boolean, fetchFn?: SourceFetch) => Promise<string | null>;
|
|
165
182
|
//#endregion
|
|
166
183
|
//#region src/source/inspect-hooks.d.ts
|
|
167
184
|
interface HookSource {
|
|
@@ -178,11 +195,11 @@ interface HooksNode {
|
|
|
178
195
|
subHooks: HooksNode[];
|
|
179
196
|
hookSource: HookSource | null;
|
|
180
197
|
}
|
|
181
|
-
|
|
198
|
+
type HooksTree = HooksNode[];
|
|
182
199
|
declare const getFiberHooks: (fiber: Fiber) => HooksTree;
|
|
183
200
|
//#endregion
|
|
184
201
|
//#region src/source/parse-hook-names.d.ts
|
|
185
202
|
interface HookNames extends Map<string, string> {}
|
|
186
|
-
declare const parseHookNames: (hooksTree: HooksTree, fetchFn?:
|
|
203
|
+
declare const parseHookNames: (hooksTree: HooksTree, fetchFn?: SourceFetch) => Promise<HookNames>;
|
|
187
204
|
//#endregion
|
|
188
|
-
export { type DecodedSourceMapSection, type FiberSource, type HookNames, type HookSource, type HooksNode, type HooksTree, type IndexSourceMap, type ParseOptions, type
|
|
205
|
+
export { BippyError, BippyHookInspectionError, BippyHookRenderError, BippySourceMapError, BippyUnsupportedHookError, type DecodedSourceMapSection, type FiberSource, type HookNames, type HookSource, type HooksNode, type HooksTree, type IndexSourceMap, type ParseOptions, type SourceFetch, type SourceMap, type SourceMapRequestOptions, type StackFrame, type StandardSourceMap, formatOwnerStack, getDisplayNameFromSource, getFiberHooks, getOwnerStack, getParentStack, getSource, getSourceContentFromSourceMap, getSourceFromSourceMap, getSourceFromSourceMapByFunctionName, getSourceMap, hasDebugStack, isSourceFile, normalizeFileName, parseHookNames, parseStack, symbolicateStack };
|
package/dist/source.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
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 { a as BippyUnsupportedHookError, i as BippySourceMapError, m as Fiber, n as BippyHookInspectionError, r as BippyHookRenderError, t as BippyError } from "./errors.js";
|
|
2
10
|
//#region src/source/parse-stack.d.ts
|
|
3
11
|
interface StackFrame {
|
|
4
|
-
args?: unknown[];
|
|
5
12
|
columnNumber?: number;
|
|
6
13
|
lineNumber?: number;
|
|
7
14
|
enclosingLineNumber?: number;
|
|
@@ -14,12 +21,80 @@ interface StackFrame {
|
|
|
14
21
|
isIgnoreListed?: boolean;
|
|
15
22
|
}
|
|
16
23
|
interface ParseOptions {
|
|
17
|
-
slice?: number | [number, number];
|
|
18
|
-
allowEmpty?: boolean;
|
|
19
24
|
includeInElement?: boolean;
|
|
20
25
|
}
|
|
21
26
|
declare const parseStack: (stackString: string, options?: ParseOptions) => StackFrame[];
|
|
22
27
|
//#endregion
|
|
28
|
+
//#region ../../node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts
|
|
29
|
+
type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/source/symbolication.d.ts
|
|
32
|
+
interface DecodedSourceMapSection {
|
|
33
|
+
map: {
|
|
34
|
+
file?: string;
|
|
35
|
+
ignoredSourceIndices?: Set<number>;
|
|
36
|
+
mappings: SourceMapSegment[][];
|
|
37
|
+
names?: string[];
|
|
38
|
+
sourceRoot?: string;
|
|
39
|
+
sources: string[];
|
|
40
|
+
sourcesContent?: Array<string | null>;
|
|
41
|
+
version: 3;
|
|
42
|
+
};
|
|
43
|
+
offset: {
|
|
44
|
+
column: number;
|
|
45
|
+
line: number;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
interface IndexSourceMap {
|
|
49
|
+
file?: string;
|
|
50
|
+
sections: Array<{
|
|
51
|
+
map?: StandardSourceMap;
|
|
52
|
+
offset: {
|
|
53
|
+
column: number;
|
|
54
|
+
line: number;
|
|
55
|
+
};
|
|
56
|
+
url?: string;
|
|
57
|
+
}>;
|
|
58
|
+
version: 3;
|
|
59
|
+
}
|
|
60
|
+
interface SourceFetch {
|
|
61
|
+
(url: string, init?: RequestInit): Promise<Response>;
|
|
62
|
+
}
|
|
63
|
+
interface SourceMapRequestOptions {
|
|
64
|
+
allowUnsafeServerFetch?: boolean;
|
|
65
|
+
maxBundleSizeBytes?: number;
|
|
66
|
+
maxSourceMapSizeBytes?: number;
|
|
67
|
+
signal?: AbortSignal;
|
|
68
|
+
timeoutMs?: number;
|
|
69
|
+
}
|
|
70
|
+
interface SourceMap {
|
|
71
|
+
file?: string;
|
|
72
|
+
ignoredSourceIndices?: Set<number>;
|
|
73
|
+
mappings: SourceMapSegment[][];
|
|
74
|
+
names?: string[];
|
|
75
|
+
sections?: DecodedSourceMapSection[];
|
|
76
|
+
sourceRoot?: string;
|
|
77
|
+
sources: string[];
|
|
78
|
+
sourcesContent?: Array<string | null>;
|
|
79
|
+
version: 3;
|
|
80
|
+
}
|
|
81
|
+
interface StandardSourceMap {
|
|
82
|
+
file?: string;
|
|
83
|
+
ignoreList?: number[];
|
|
84
|
+
mappings: string;
|
|
85
|
+
names?: string[];
|
|
86
|
+
sourceRoot?: string;
|
|
87
|
+
sources: string[];
|
|
88
|
+
sourcesContent?: Array<string | null>;
|
|
89
|
+
version: 3;
|
|
90
|
+
x_google_ignoreList?: number[];
|
|
91
|
+
}
|
|
92
|
+
declare const getSourceFromSourceMap: (sourceMap: SourceMap, line: number, column: number) => StackFrame | null;
|
|
93
|
+
declare const getSourceFromSourceMapByFunctionName: (sourceMap: SourceMap, functionName: string) => StackFrame | null;
|
|
94
|
+
declare const getSourceContentFromSourceMap: (sourceMap: SourceMap, originalFileName: string) => string | null;
|
|
95
|
+
declare const getSourceMap: (file: string, useCache?: boolean, fetchFn?: SourceFetch, options?: SourceMapRequestOptions) => Promise<null | SourceMap>;
|
|
96
|
+
declare const symbolicateStack: (stack: StackFrame[], cache?: boolean, fetchFn?: SourceFetch) => Promise<StackFrame[]>;
|
|
97
|
+
//#endregion
|
|
23
98
|
//#region src/source/owner-stack.d.ts
|
|
24
99
|
declare const hasDebugStack: (fiber: Fiber) => fiber is Fiber & {
|
|
25
100
|
_debugStack: NonNullable<Fiber["_debugStack"]>;
|
|
@@ -50,7 +125,7 @@ declare const formatOwnerStack: (stack: string) => string;
|
|
|
50
125
|
* with a throwing dispatcher; server frames are enriched from debug stacks by
|
|
51
126
|
* name matching. Works on every React version.
|
|
52
127
|
*/
|
|
53
|
-
declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?:
|
|
128
|
+
declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?: SourceFetch) => Promise<StackFrame[]>;
|
|
54
129
|
/**
|
|
55
130
|
* Returns the stack of components that CREATED this fiber's JSX (the
|
|
56
131
|
* `_debugOwner` chain), with exact creation-site locations from React 19's
|
|
@@ -61,7 +136,7 @@ declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunctio
|
|
|
61
136
|
* yields no locatable frames (so callers always get the most useful stack
|
|
62
137
|
* available).
|
|
63
138
|
*/
|
|
64
|
-
declare const getOwnerStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?:
|
|
139
|
+
declare const getOwnerStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?: SourceFetch) => Promise<StackFrame[]>;
|
|
65
140
|
//#endregion
|
|
66
141
|
//#region src/source/types.d.ts
|
|
67
142
|
interface FiberSource {
|
|
@@ -98,70 +173,12 @@ interface FiberSource {
|
|
|
98
173
|
* console.log(source.fileName, source.lineNumber);
|
|
99
174
|
* ```
|
|
100
175
|
*/
|
|
101
|
-
declare const getSource: (fiber: Fiber, cache?: boolean, fetchFn?:
|
|
176
|
+
declare const getSource: (fiber: Fiber, cache?: boolean, fetchFn?: SourceFetch) => Promise<FiberSource | null>;
|
|
102
177
|
declare const normalizeFileName: (fileName: string) => string;
|
|
103
178
|
declare const isSourceFile: (fileName: string) => boolean;
|
|
104
179
|
//#endregion
|
|
105
|
-
//#region ../../node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts
|
|
106
|
-
type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
|
|
107
|
-
//#endregion
|
|
108
|
-
//#region src/source/symbolication.d.ts
|
|
109
|
-
interface DecodedSourceMapSection {
|
|
110
|
-
map: {
|
|
111
|
-
file?: string;
|
|
112
|
-
ignoredSourceIndices?: Set<number>;
|
|
113
|
-
mappings: SourceMapSegment[][];
|
|
114
|
-
names?: string[];
|
|
115
|
-
sourceRoot?: string;
|
|
116
|
-
sources: string[];
|
|
117
|
-
sourcesContent?: string[];
|
|
118
|
-
version: 3;
|
|
119
|
-
};
|
|
120
|
-
offset: {
|
|
121
|
-
column: number;
|
|
122
|
-
line: number;
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
interface IndexSourceMap {
|
|
126
|
-
file?: string;
|
|
127
|
-
sections: Array<{
|
|
128
|
-
map: StandardSourceMap;
|
|
129
|
-
offset: {
|
|
130
|
-
column: number;
|
|
131
|
-
line: number;
|
|
132
|
-
};
|
|
133
|
-
}>;
|
|
134
|
-
version: 3;
|
|
135
|
-
}
|
|
136
|
-
type RawSourceMap = IndexSourceMap | StandardSourceMap;
|
|
137
|
-
interface SourceMap {
|
|
138
|
-
file?: string;
|
|
139
|
-
ignoredSourceIndices?: Set<number>;
|
|
140
|
-
mappings: SourceMapSegment[][];
|
|
141
|
-
names?: string[];
|
|
142
|
-
sections?: DecodedSourceMapSection[];
|
|
143
|
-
sourceRoot?: string;
|
|
144
|
-
sources: string[];
|
|
145
|
-
sourcesContent?: string[];
|
|
146
|
-
version: 3;
|
|
147
|
-
}
|
|
148
|
-
interface StandardSourceMap {
|
|
149
|
-
file?: string;
|
|
150
|
-
ignoreList?: number[];
|
|
151
|
-
mappings: string;
|
|
152
|
-
names?: string[];
|
|
153
|
-
sourceRoot?: string;
|
|
154
|
-
sources: string[];
|
|
155
|
-
sourcesContent?: string[];
|
|
156
|
-
version: 3;
|
|
157
|
-
x_google_ignoreList?: number[];
|
|
158
|
-
}
|
|
159
|
-
declare const getSourceFromSourceMap: (sourceMap: SourceMap, line: number, column: number) => StackFrame | null;
|
|
160
|
-
declare const getSourceMap: (file: string, useCache?: boolean, fetchFn?: (url: string) => Promise<Response>) => Promise<null | SourceMap>;
|
|
161
|
-
declare const symbolicateStack: (stack: StackFrame[], cache?: boolean, fetchFn?: (url: string) => Promise<Response>) => Promise<StackFrame[]>;
|
|
162
|
-
//#endregion
|
|
163
180
|
//#region src/source/get-display-name-from-source.d.ts
|
|
164
|
-
declare const getDisplayNameFromSource: (fiber: Fiber, cache?: boolean, fetchFn?:
|
|
181
|
+
declare const getDisplayNameFromSource: (fiber: Fiber, cache?: boolean, fetchFn?: SourceFetch) => Promise<string | null>;
|
|
165
182
|
//#endregion
|
|
166
183
|
//#region src/source/inspect-hooks.d.ts
|
|
167
184
|
interface HookSource {
|
|
@@ -178,11 +195,11 @@ interface HooksNode {
|
|
|
178
195
|
subHooks: HooksNode[];
|
|
179
196
|
hookSource: HookSource | null;
|
|
180
197
|
}
|
|
181
|
-
|
|
198
|
+
type HooksTree = HooksNode[];
|
|
182
199
|
declare const getFiberHooks: (fiber: Fiber) => HooksTree;
|
|
183
200
|
//#endregion
|
|
184
201
|
//#region src/source/parse-hook-names.d.ts
|
|
185
202
|
interface HookNames extends Map<string, string> {}
|
|
186
|
-
declare const parseHookNames: (hooksTree: HooksTree, fetchFn?:
|
|
203
|
+
declare const parseHookNames: (hooksTree: HooksTree, fetchFn?: SourceFetch) => Promise<HookNames>;
|
|
187
204
|
//#endregion
|
|
188
|
-
export { type DecodedSourceMapSection, type FiberSource, type HookNames, type HookSource, type HooksNode, type HooksTree, type IndexSourceMap, type ParseOptions, type
|
|
205
|
+
export { BippyError, BippyHookInspectionError, BippyHookRenderError, BippySourceMapError, BippyUnsupportedHookError, type DecodedSourceMapSection, type FiberSource, type HookNames, type HookSource, type HooksNode, type HooksTree, type IndexSourceMap, type ParseOptions, type SourceFetch, type SourceMap, type SourceMapRequestOptions, type StackFrame, type StandardSourceMap, formatOwnerStack, getDisplayNameFromSource, getFiberHooks, getOwnerStack, getParentStack, getSource, getSourceContentFromSourceMap, getSourceFromSourceMap, getSourceFromSourceMapByFunctionName, getSourceMap, hasDebugStack, isSourceFile, normalizeFileName, parseHookNames, parseStack, symbolicateStack };
|