bippy 0.7.3-dev.8ba0705 → 0.7.3-dev.9f2850b
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 +12 -11
- package/dist/core.cjs +1 -1
- package/dist/core.js +1 -1
- package/dist/errors.d.cts +5 -2
- package/dist/errors.d.ts +5 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +32 -29
- package/dist/index.d.ts +34 -31
- package/dist/index.js +1 -1
- package/dist/rdt-hook.cjs +1 -1
- package/dist/rdt-hook.js +1 -1
- package/dist/source.cjs +11 -12
- package/dist/source.d.cts +24 -22
- package/dist/source.d.ts +24 -22
- package/dist/source.js +11 -12
- package/package.json +47 -11
- package/src/call-listener.ts +13 -0
- package/src/core.ts +256 -250
- package/src/index.ts +3 -3
- package/src/install-hook-only.ts +1 -1
- package/src/rdt-hook.ts +46 -30
- package/src/react-internals/current-fiber.ts +84 -0
- package/src/react-internals/generated/react-work-tags.ts +4 -1
- package/src/react-internals/index.ts +46 -19
- package/src/react-internals/types.ts +1 -1
- package/src/react.ts +144 -59
- package/src/source/constants.ts +10 -6
- package/src/source/get-display-name-from-source.ts +5 -5
- package/src/source/get-source.ts +8 -143
- package/src/source/index.ts +9 -9
- package/src/source/inspect-hooks.ts +35 -31
- package/src/source/normalize-file-name.ts +416 -0
- package/src/source/owner-stack.ts +9 -21
- package/src/source/parse-debug-stack.ts +3 -3
- package/src/source/parse-hook-names.ts +2 -2
- package/src/source/parse-stack.ts +111 -63
- package/src/source/renderer-dispatchers.ts +3 -3
- package/src/source/symbolication.ts +81 -41
package/dist/source.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ interface StackFrame {
|
|
|
23
23
|
interface ParseOptions {
|
|
24
24
|
includeInElement?: boolean;
|
|
25
25
|
}
|
|
26
|
-
declare const parseStack: (stackString: string, options?: ParseOptions) => StackFrame[];
|
|
26
|
+
export declare const parseStack: (stackString: string, options?: ParseOptions) => StackFrame[];
|
|
27
27
|
//#endregion
|
|
28
28
|
//#region ../../node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts
|
|
29
29
|
type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
|
|
@@ -91,14 +91,14 @@ interface StandardSourceMap {
|
|
|
91
91
|
version: 3;
|
|
92
92
|
x_google_ignoreList?: number[];
|
|
93
93
|
}
|
|
94
|
-
declare const getSourceFromSourceMap: (sourceMap: SourceMap, line: number, column: number) => StackFrame | null;
|
|
95
|
-
declare const getSourceFromSourceMapByFunctionName: (sourceMap: SourceMap, functionName: string) => StackFrame | null;
|
|
96
|
-
declare const getSourceContentFromSourceMap: (sourceMap: SourceMap, originalFileName: string) => string | null;
|
|
97
|
-
declare const getSourceMap: (file: string, shouldUseCache?: boolean, sourceFetch?: SourceFetch, options?: SourceMapRequestOptions) => Promise<null | SourceMap>;
|
|
98
|
-
declare const symbolicateStack: (stack: StackFrame[], shouldUseCache?: boolean, sourceFetch?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<StackFrame[]>;
|
|
94
|
+
export declare const getSourceFromSourceMap: (sourceMap: SourceMap, line: number, column: number) => StackFrame | null;
|
|
95
|
+
export declare const getSourceFromSourceMapByFunctionName: (sourceMap: SourceMap, functionName: string) => StackFrame | null;
|
|
96
|
+
export declare const getSourceContentFromSourceMap: (sourceMap: SourceMap, originalFileName: string) => string | null;
|
|
97
|
+
export declare const getSourceMap: (file: string, shouldUseCache?: boolean, sourceFetch?: SourceFetch, options?: SourceMapRequestOptions) => Promise<null | SourceMap>;
|
|
98
|
+
export declare const symbolicateStack: (stack: StackFrame[], shouldUseCache?: boolean, sourceFetch?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<StackFrame[]>;
|
|
99
99
|
//#endregion
|
|
100
100
|
//#region src/source/owner-stack.d.ts
|
|
101
|
-
declare const hasDebugStack: (fiber: Fiber) => fiber is Fiber & {
|
|
101
|
+
export declare const hasDebugStack: (fiber: Fiber) => fiber is Fiber & {
|
|
102
102
|
_debugStack: NonNullable<Fiber["_debugStack"]>;
|
|
103
103
|
};
|
|
104
104
|
/**
|
|
@@ -108,13 +108,13 @@ declare const hasDebugStack: (fiber: Fiber) => fiber is Fiber & {
|
|
|
108
108
|
* component. The enclosing line/column (V8 CallSite API) points at the
|
|
109
109
|
* function definition start. Requires React 19 (_debugStack).
|
|
110
110
|
*/
|
|
111
|
-
declare const getDefinitionFrameFromOwnedChild: (fiber: Fiber) => StackFrame | null;
|
|
111
|
+
export declare const getDefinitionFrameFromOwnedChild: (fiber: Fiber) => StackFrame | null;
|
|
112
112
|
/**
|
|
113
113
|
* Builds a component-stack string by walking the fiber `return` chain, the
|
|
114
114
|
* pre-react-19 substitute for `_debugStack` (which is why the frame locations
|
|
115
115
|
* come from re-invocation in {@link describeFiber} rather than a real stack).
|
|
116
116
|
*/
|
|
117
|
-
declare const getFallbackParentStack: (thisFiber: Fiber) => string;
|
|
117
|
+
export declare const getFallbackParentStack: (thisFiber: Fiber) => string;
|
|
118
118
|
/**
|
|
119
119
|
* takes Error.stack and formats it to only the React owner stack
|
|
120
120
|
*
|
|
@@ -133,7 +133,7 @@ declare const getFallbackParentStack: (thisFiber: Fiber) => string;
|
|
|
133
133
|
*
|
|
134
134
|
* @see https://github.com/facebook/react/blob/main/packages/react-devtools-shared/src/backend/shared/DevToolsOwnerStack.js#L12
|
|
135
135
|
*/
|
|
136
|
-
declare const formatOwnerStack: (stack: string) => string;
|
|
136
|
+
export declare const formatOwnerStack: (stack: string) => string;
|
|
137
137
|
/**
|
|
138
138
|
* Builds owner-chain stack frames from the _debugStack errors React 19
|
|
139
139
|
* attaches at JSX creation, walking `_debugOwner` across both client fibers
|
|
@@ -141,7 +141,7 @@ declare const formatOwnerStack: (stack: string) => string;
|
|
|
141
141
|
* carries `.debugStack`). This is exact - no re-invoking components, no
|
|
142
142
|
* name-matching heuristics - but requires React 19.
|
|
143
143
|
*/
|
|
144
|
-
declare const getRawOwnerStack: (fiber: Fiber) => StackFrame[];
|
|
144
|
+
export declare const getRawOwnerStack: (fiber: Fiber) => StackFrame[];
|
|
145
145
|
/**
|
|
146
146
|
* Returns a stack of ALL ancestor components in the render tree (the fiber's
|
|
147
147
|
* `return` chain), including wrappers that render `{children}` without having
|
|
@@ -149,7 +149,7 @@ declare const getRawOwnerStack: (fiber: Fiber) => StackFrame[];
|
|
|
149
149
|
* with a throwing dispatcher; server frames are enriched from debug stacks by
|
|
150
150
|
* name matching. Works on every React version.
|
|
151
151
|
*/
|
|
152
|
-
declare const getParentStack: (fiber: Fiber, shouldUseCache?: boolean, sourceFetch?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<StackFrame[]>;
|
|
152
|
+
export declare const getParentStack: (fiber: Fiber, shouldUseCache?: boolean, sourceFetch?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<StackFrame[]>;
|
|
153
153
|
/**
|
|
154
154
|
* Returns the stack of components that CREATED this fiber's JSX (the
|
|
155
155
|
* `_debugOwner` chain), with exact creation-site locations from React 19's
|
|
@@ -160,7 +160,7 @@ declare const getParentStack: (fiber: Fiber, shouldUseCache?: boolean, sourceFet
|
|
|
160
160
|
* yields no locatable frames (so callers always get the most useful stack
|
|
161
161
|
* available).
|
|
162
162
|
*/
|
|
163
|
-
declare const getOwnerStack: (fiber: Fiber, shouldUseCache?: boolean, sourceFetch?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<StackFrame[]>;
|
|
163
|
+
export declare const getOwnerStack: (fiber: Fiber, shouldUseCache?: boolean, sourceFetch?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<StackFrame[]>;
|
|
164
164
|
//#endregion
|
|
165
165
|
//#region src/source/types.d.ts
|
|
166
166
|
interface FiberSource {
|
|
@@ -170,8 +170,12 @@ interface FiberSource {
|
|
|
170
170
|
functionName?: string;
|
|
171
171
|
}
|
|
172
172
|
//#endregion
|
|
173
|
+
//#region src/source/normalize-file-name.d.ts
|
|
174
|
+
export declare const normalizeFileName: (fileName: string) => string;
|
|
175
|
+
export declare const isSourceFile: (fileName: string) => boolean;
|
|
176
|
+
//#endregion
|
|
173
177
|
//#region src/source/get-source.d.ts
|
|
174
|
-
declare const getRawSource: (fiber: Fiber) => FiberSource | null;
|
|
178
|
+
export declare const getRawSource: (fiber: Fiber) => FiberSource | null;
|
|
175
179
|
/**
|
|
176
180
|
* Returns the source of where the component is used. Available only in dev, for composite {@link Fiber}s.
|
|
177
181
|
*
|
|
@@ -198,12 +202,10 @@ declare const getRawSource: (fiber: Fiber) => FiberSource | null;
|
|
|
198
202
|
* console.log(source.fileName, source.lineNumber);
|
|
199
203
|
* ```
|
|
200
204
|
*/
|
|
201
|
-
declare const getSource: (fiber: Fiber, shouldUseCache?: boolean, sourceFetch?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<FiberSource | null>;
|
|
202
|
-
declare const normalizeFileName: (fileName: string) => string;
|
|
203
|
-
declare const isSourceFile: (fileName: string) => boolean;
|
|
205
|
+
export declare const getSource: (fiber: Fiber, shouldUseCache?: boolean, sourceFetch?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<FiberSource | null>;
|
|
204
206
|
//#endregion
|
|
205
207
|
//#region src/source/get-display-name-from-source.d.ts
|
|
206
|
-
declare const getDisplayNameFromSource: (fiber: Fiber, shouldUseCache?: boolean, sourceFetch?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<string | null>;
|
|
208
|
+
export declare const getDisplayNameFromSource: (fiber: Fiber, shouldUseCache?: boolean, sourceFetch?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<string | null>;
|
|
207
209
|
//#endregion
|
|
208
210
|
//#region src/source/inspect-hooks.d.ts
|
|
209
211
|
interface HookSource {
|
|
@@ -222,11 +224,11 @@ interface HooksNode {
|
|
|
222
224
|
hookSource: HookSource | null;
|
|
223
225
|
}
|
|
224
226
|
type HooksTree = HooksNode[];
|
|
225
|
-
declare const inspectHooks: (renderFunction: (props: Record<string, unknown>) => unknown, props: Record<string, unknown>, target?: ReactDevToolsTarget) => HooksTree;
|
|
226
|
-
declare const getFiberHooks: (fiber: Fiber) => HooksTree;
|
|
227
|
+
export declare const inspectHooks: (renderFunction: (props: Record<string, unknown>) => unknown, props: Record<string, unknown>, target?: ReactDevToolsTarget) => HooksTree;
|
|
228
|
+
export declare const getFiberHooks: (fiber: Fiber) => HooksTree;
|
|
227
229
|
//#endregion
|
|
228
230
|
//#region src/source/parse-hook-names.d.ts
|
|
229
231
|
interface HookNames extends Map<string, string> {}
|
|
230
|
-
declare const parseHookNames: (hooksTree: HooksTree, fetchFn?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<HookNames>;
|
|
232
|
+
export declare const parseHookNames: (hooksTree: HooksTree, fetchFn?: SourceFetch, requestOptions?: SourceMapRequestOptions) => Promise<HookNames>;
|
|
231
233
|
//#endregion
|
|
232
|
-
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
|
|
234
|
+
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 };
|
package/dist/source.js
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
|
-
import{i as e,n as t,u as n}from"./rdt-hook.js";import{C as r,E as i,
|
|
10
|
-
`),n=[];for(let e of t)if(/^\s*at\s+/.test(e))
|
|
11
|
-
`)
|
|
12
|
-
|
|
13
|
-
`,t));
|
|
14
|
-
|
|
15
|
-
`),i=r===-1?t:t.slice(r+1);if(i.includes(e))return`\n${i}`}return M(`${e}${t?` [${t}]`:``}`)};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=se();g(void 0),N=!0;let i=_t(),a=console.error,o=console.warn;console.error=()=>{},console.warn=()=>{};try{let n={DetermineComponentFrameRoot(){let n;try{if(t){let t=function(){throw Error()};Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}});try{Reflect.construct(t,[])}catch(e){n=e}Reflect.construct(e,[],t)}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(`
|
|
9
|
+
import{i as e,n as t,u as n}from"./rdt-hook.js";import{C as r,E as i,S as a,T as o,b as s,d as c,i as l,k as u,u as d,w as f}from"./core.js";const p=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,ee=[`rspack-internal://`,`webpack-internal://`,`turbopack://`,`webpack://`,`rspack://`,`parcel://`,`metro://`,`file:///`,`rsc://`,`node:`,`bun:`,`/(app-pages-browser)/`,`/app-pages-browser/`],m=[`rsc://`,`about://React/`],te=[`<anonymous>`,`eval`,``],ne=/\.(cjs|cts|js|jsx|mdx|mjs|mts|ts|tsx)$/,re=/(\.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\/|\/_next\/|\/_expo\/|\/_nuxt\/|\/@vite\/|\/@react-refresh|\/\.parcel-cache\/|\/\.expo\/|\/\.rsbuild\/|\/\.vite\/|\/\.svelte-kit\/|\/\.astro\/|\/\.nuxt\/|\/\.angular\/|\.webpack\.|\.vite\.|\.turbopack\.|\[root-of-the-server\]/i,ie=/^\?[\w~.-]+(?:=[^&#]*)?(?:&[\w~.-]+(?:=[^&#]*)?)*$/,ae=/\[[^\]]+\]$/,h=[`react_stack_bottom_frame`,`react-stack-bottom-frame`],oe=Error,se=()=>oe.prepareStackTrace,g=e=>{oe.prepareStackTrace=e},ce=/(^|@)\S+:\d+/,_=/^\s*at .*(\S+:\d+|\(native\))/m,le=/^(eval@)?(\[native code\])?$/,v=(e,t)=>{if(t?.includeInElement!==!1){let t=e.split(`
|
|
10
|
+
`),n=[];for(let e of t)if(/^\s*at\s+/.test(e))_.test(e)&&n.push(fe(e));else if(/^\s*in\s+/.test(e)){let t=e.replace(/^\s*in\s+/,``).replace(/\s*(?:\(at .*\)|\[[^\]]+\])$/,``);n.push({functionName:t,source:e})}else e.match(ce)&&(le.test(e)||n.push(pe(e)));return n}return e.match(_)?he(e):ge(e)},ue=(e,t)=>{let n=t-1;for(;n>=0;){let t=e.charCodeAt(n);if(t<48||t>57)break;n--}return n<t-1&&e.charCodeAt(n)===58?n:-1},de=e=>{if(!e.includes(`:`))return[e,void 0,void 0];let t=e.startsWith(`(`)&&/:\d+\)$/.test(e)?e.slice(1,-1):e;if(/[\n\r\u2028\u2029]/.test(t)){let e=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(t);return e?[e[1],e[2]||void 0,e[3]||void 0]:[t,void 0,void 0]}let n=ue(t,t.length);if(n<=0)return[t,void 0,void 0];let r=ue(t,n);return r<=0?[t.slice(0,n),t.slice(n+1),void 0]:[t.slice(0,r),t.slice(r+1,n),t.slice(n+1)]},fe=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=de(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}},pe=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=de(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}}},me=(e,t,n)=>{let r=[];for(let i of e.split(`
|
|
11
|
+
`)){let e=n?.get(i);if(!e){if(t?!_.test(i):le.test(i))continue;e=t?fe(i):pe(i),n?.set(i,e)}r.push(e)}return r},he=e=>me(e,!0),ge=e=>me(e,!1),_e=()=>{let e=new Map,t=new Map;return n=>{let r=_.test(n);return me(n,r,r?e:t)}},ve=new WeakMap,ye=e=>h.some(t=>e.includes(t)),be=e=>{let t=e.getFunctionName?.()??``;if(t)return t;let n=e.getTypeName?.()??``,r=e.getMethodName?.()??``;return n&&r?`${n}.${r}`:r},xe=e=>{let t=[];for(let n=1;n<e.length;n++){let r=e[n],i=be(r);if(ye(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}},Se=e=>{let t=-1;for(let n of h)if(t=e.indexOf(n),t!==-1)break;let n=t===-1?e:e.slice(0,e.lastIndexOf(`
|
|
12
|
+
`,t));return{frames:v(n).slice(1),isTrusted:t!==-1}},y=e=>{let t=ve.get(e);if(t)return t;let n=null,r=(e,t)=>{n=xe(t);let r=`${e.name||`Error`}: ${e.message||``}`;for(let e of t)r+=`\n at ${e.toString()}`;return r},i=se();g(r);let a;try{a=String(e.stack)}finally{g(i)}let o=n??Se(a);return ve.set(e,o),o},Ce=(r=globalThis)=>{let i=e(void 0,r),a=n(i.renderers)?i.renderers.values():[],o=r===globalThis?new Set([...t,...a]):new Set(a),s=[],c=new Set;for(let e of o){let t=e.currentDispatcherRef;t&&!c.has(t)&&(c.add(t),s.push(t))}return s},we=e=>`H`in e?e.H:e.current,b=(e,t)=>{`H`in e?e.H=t:e.current=t};var Te=44,Ee=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,De=new Uint8Array(64),Oe=new Uint8Array(128);for(let e=0;e<Ee.length;e++){let t=Ee.charCodeAt(e);De[e]=t,Oe[t]=e}function x(e,t){let n=0,r=0,i=0;do i=Oe[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 ke(e,t){return e.pos>=t?!1:e.peek()!==Te}var Ae=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 je(e){let{length:t}=e,n=new Ae(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=x(n,i),i<u&&(l=!1),u=i,ke(n,e)?(a=x(n,a),o=x(n,o),s=x(n,s),ke(n,e)?(c=x(n,c),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||Me(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function Me(e){e.sort(Ne)}function Ne(e,t){return e[0]-t[0]}const Pe=`[project]/`,Fe=/^[a-zA-Z]:[\\/]/,Ie=/^[a-zA-Z]:$/,Le=/^\/?(?:app-pages-browser|\(app-pages-browser\))\//,Re=/^\/?\((?:action-browser|api-edge|api-node|edge-asset|instrument|middleware|pages-dir-browser|pages-dir-edge|pages-dir-node|rsc|shared|ssr)\)\//,ze=/%(?:2f|5c)/i,Be=/^React\/[^/]+\//,Ve=/__TURBOPACK__[a-zA-Z0-9_$]+__/g,He=/^__TURBOPACK__([a-zA-Z0-9_$]+)__$/,Ue=[/\s\((?:asset|client reference proxy|css(?: client reference| module)?|ecmascript(?: client reference to (?:client|ssr))?|javascript|json|less|mdx|raw|sass|scss|static|typescript|unknown|wasm)\b[^)]*\)$/,/\s\[(?:app-[a-z0-9-]+|action-browser|api-edge|api-node|edge-asset|instrument|middleware|pages-dir-browser|pages-dir-edge|pages-dir-node|rsc|shared|ssr)\]$/,/\s<(?:exports?|locals|namespace)\b[^>]*>$/],S=e=>Fe.test(e),We=[`astro:`,`cloudflare:`,`nitro:`],C=e=>e.startsWith(`\0`)||e.startsWith(`virtual:`)||We.some(t=>e.startsWith(t)),Ge=e=>{if(e.trim()===``)throw Error(`empty hex`);let t=Number.parseInt(e,16);if(Number.isNaN(t))throw Error(`invalid hex`);return String.fromCodePoint(t)},Ke=e=>{let t=e.match(He)?.[1];if(!t)return e;let n=``,r=`text`,i=``;for(let e of t){if(r===`text`){e===`_`?r=`underscore`:e===`$`?r=`hex`:n+=e;continue}if(r===`underscore`){if(e===`_`)n+=` `;else if(e===`$`){n+=`_`,r=`hex`;continue}else n+=e;r=`text`;continue}if(r===`hex`){if(i.length===2&&(n+=Ge(i),i=``),e===`_`){if(i!==``)throw Error(`invalid hex`);r=`long-hex`}else if(e===`$`){if(i!==``)throw Error(`invalid hex`);r=`text`}else i+=e;continue}if(e===`_`)throw Error(`invalid hex`);if(e===`$`){n+=Ge(i),i=``,r=`text`;continue}i+=e}return n},qe=e=>{if(!e.includes(`__TURBOPACK__`))return e;let t=e.replace(Ve,e=>{try{return Ke(e)}catch{return e}});return t.startsWith(`imported module `)?t.slice(16):t},Je=e=>{let t=e,n=!0;for(;n;){n=!1;for(let e of Ue){let r=t.match(e);if(r?.[0]){t=t.slice(0,-r[0].length).trimEnd(),n=!0;break}}}return t},Ye=e=>{let t=e.lastIndexOf(`!`);if(t<=0)return e;let n=e.slice(0,t),r=e.slice(t+1);return!n.includes(`/`)&&!n.includes(`\\`)||!(r.startsWith(`./`)||r.startsWith(`../`)||r.startsWith(`/`)||r.startsWith(`\\`)||r.includes(`/`)||r.includes(`\\`)||S(r))?e:r},Xe=e=>e.includes(`%`)?e.split(`/`).map(e=>{if(!e.includes(`%`)||ze.test(e))return e;try{return decodeURIComponent(e)}catch{return e}}).join(`/`):e,Ze=e=>{let t=e.slice(7),n=t.search(/[?#]/),r=n===-1?t:t.slice(0,n),i=``,a=r;if(r.startsWith(`/`))a=r.replace(/^\/+/,`/`);else if(S(r))a=r;else{let e=r.indexOf(`/`);i=e===-1?r:r.slice(0,e),a=e===-1?`/`:r.slice(e)}return i.toLowerCase()===`localhost`&&(i=``),i?`//${i}${a.startsWith(`/`)?a:`/${a}`}`:a.startsWith(`/`)&&S(a.slice(1))?a.slice(1):S(a)||a.startsWith(`/`)?a:`/${a}`},Qe=e=>{if(e.startsWith(`/@fs/`)){let t=e.slice(5);return S(t)||t.startsWith(`/`)?t:`/${t}`}if(!e.startsWith(`/@id/`))return e;let t=e.slice(5).replaceAll(`__x00__`,`\0`);return t.startsWith(`\0`)||t.startsWith(`virtual:`)?``:t},$e=e=>{if(e.startsWith(`_N_E/`))return e.slice(5);let t=e.indexOf(`/`);if(t<=0)return e;let n=e.slice(t+1);return n.startsWith(`./`)||n.startsWith(`../`)?n:e},et=(e,t)=>{let n=e.match(Le);if(n?.[0])return e.slice(n[0].length);if(!t)return e;let r=e.match(Re);return r?.[0]?e.slice(r[0].length):e},tt=e=>{let t=e.indexOf(`#`),n=t===-1?e:e.slice(0,t),r=n.indexOf(`?`);if(r===-1)return n;let i=n.slice(r);return ie.test(i)?n.slice(0,r):n},nt=e=>{if(!e||e.includes(`\\`))return e;let t=e.startsWith(`/`),n=e.startsWith(`//`),r=e.startsWith(`./`),i=[];for(let r of e.split(`/`))if(r!==``&&r!==`.`){if(r===`..`){let e=i[i.length-1];e&&e!==`..`&&(!n||i.length>2)&&!Ie.test(e)?i.pop():!t&&!Ie.test(e??``)&&i.push(`..`);continue}i.push(r)}if(t)return`${n?`//`:`/`}${i.join(`/`)}`;let a=i.join(`/`);return a?r&&!a.startsWith(`../`)?`./${a}`:a:r?`./`:``},w=e=>{if(!e||te.some(t=>t===e)||C(e))return``;let t=e;if(t.startsWith(`\\\\?\\`)){let e=t.slice(4);S(e)&&(t=e)}if(t=qe(t),C(t))return``;let n=!1,r=!1,i=!1,a=!1;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 o=!0;for(;o;){if(o=!1,t.startsWith(`file://`)){let e=Ze(t);if(e===t)break;t=e,a=!0,o=!0;continue}if(i){let e=t.match(Be);if(e?.[0]){t=t.slice(e[0].length),i=!1,o=!0;continue}}for(let e of ee)if(t.startsWith(e)){e===`rsc://`&&(i=!0),(e===`webpack://`||e===`rspack://`)&&(n=!0),(e===`webpack://`||e===`webpack-internal://`||e===`rspack://`||e===`rspack-internal://`||e===`turbopack://`)&&(r=!0),t=t.slice(e.length),o=!0;break}}if(C(t))return``;if(!S(t)){let e=t.match(p);e&&(t=t.slice(e[0].length))}if(!a&&t.startsWith(`//`)){let e=t.indexOf(`/`,2);t=e===-1?``:t.slice(e)}t=Qe(t),n&&(t=$e(t)),t=et(t,r),t.startsWith(Pe)?t=`./${t.slice(10)}`:t.startsWith(`/${Pe}`)&&(t=t.slice(10)),t=Je(t);let s=Ye(t);return s===t?(t=tt(t),t=Xe(t),t=nt(t),C(t)?``:t):w(s)},rt=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(rt(n)!==1||n===`/@fs`||n===`/@id`)return e;let r=e.slice(t);if(!ne.test(r))return e;let i=r.split(`/`).filter(Boolean);if(i.length<2)return e;let a=i[0];return!a||a.startsWith(`@`)||a.length>4?e:r},at=e=>{let t=w(e);return!(!t||t.includes(`\0`)||t.startsWith(`virtual:`)||!ne.test(t)||re.test(t))},T=/^data:application\/json(?:;[^,]*)?,/i,ot=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/,st=new Map,ct=new WeakMap;var lt=class extends Error{};const ut=new Map,dt=new WeakMap,ft=new Set([`chrome-extension:`,`moz-extension:`,`safari-web-extension:`]),E=new Set([`http:`,`https:`,...ft]),pt=(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},mt=(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:pt(s,t,i,a)},D=(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 mt(i.map.mappings,i.map.sources,a,o,i.map.ignoredSourceIndices,i.map.names)}return mt(e.mappings,e.sources,t-1,n,e.ignoredSourceIndices,e.names)},ht=(e,t)=>{for(let n=0;n<e.length;n++)if(e[n]===t)return n;return-1},gt=(e,t,n,r,i)=>{if(!n)return null;let a=ht(n,r);if(a===-1)return null;let o=null;for(let r=0;r<e.length;r++){let s=e[r];for(let e=0;e<s.length;e++){let r=s[e];if(r[4]!==a||o&&r[1]!==void 0&&i?.has(r[1]))continue;let c=pt(r,t,i,n);if(c){if(!c.isIgnoreListed)return c;o??=c}}}return o},_t=(e,t)=>{if(e.sections){let n=null;for(let r of e.sections){let e=gt(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 gt(e.mappings,e.sources,e.names,t,e.ignoredSourceIndices)},vt=e=>{let t=w(e);return t.startsWith(`./`)?t.slice(2):t},O=(e,t)=>{let n=[e,...e.sections?.map(e=>e.map)??[]],r=!1;for(let e of n){let n=ht(e.sources,t);if(n===-1)continue;r=!0;let i=e.sourcesContent?.[n];if(typeof i==`string`)return i}if(r)return null;let i=vt(t);if(!i)return null;let a,o=null;for(let e of n)for(let t=0;t<e.sources.length;t++){let n=e.sources[t];if(n&&vt(n)===i){if(a!==void 0&&a!==n)return null;a=n,o??=e.sourcesContent?.[t]??null}}return o},k=(e,t)=>{if(T.test(e))return e;try{return new URL(e,t).toString()}catch{try{return new URL(e).toString()}catch{try{let n=new URL(e,new URL(t,`https://bippy.invalid/`));return`${n.pathname}${n.search}${n.hash}`}catch{return null}}}},yt=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}},bt=(e,t,n)=>{let r=n.headers.get(`sourcemap`)??n.headers.get(`x-sourcemap`);if(r)return k(r.trim(),e);let i,a=t.length;for(;a>0&&!i;){let e=t.lastIndexOf(`
|
|
13
|
+
`,a-1)+1,n=t.slice(e,a).match(ot);n&&(i=n[1]||n[2]),a=e-1}return i?k(i,e):yt(e)},A=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)},xt=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 A(t)!==(typeof n==`string`&&n.length>0)&&typeof i==`number`&&Number.isInteger(i)&&i>=0&&typeof a==`number`&&Number.isInteger(a)&&a>=0})},St=e=>{let t=e.ignoreList??e.x_google_ignoreList;return t?.length?new Set(t):void 0},Ct=e=>e.startsWith(`/`)||/^[a-zA-Z]:[\\/]/.test(e)||p.test(e),wt=(e,t)=>!e.startsWith(`./`)&&!e.startsWith(`../`)||T.test(t)?e:k(e,t)??e,Tt=e=>{let t=e.split(`/`),n=[];for(let e of t){if(e===``||e===`.`){e===``&&n.length===0&&n.push(``);continue}if(e===`..`){let e=n[n.length-1];e&&e!==`..`&&e!==``?n.pop():n.push(`..`);continue}n.push(e)}return n.join(`/`)},Et=(e,t,n)=>{if(Ct(t))return t;if(!e)return wt(t,n);let r=e.endsWith(`/`)?e:`${e}/`,i=t.replace(/^\.\//,``);try{let e=p.test(r)?r:new URL(r,n).toString();return new URL(i,e).toString()}catch{return Tt(`${r}${i}`)}},Dt=(e,t)=>e.sources.map(n=>Et(e.sourceRoot,n,t)),Ot=e=>T.test(e)?void 0:e,kt=(e,t)=>{try{return{file:e.file,ignoredSourceIndices:St(e),mappings:je(e.mappings),names:e.names,sourceMapUrl:Ot(t),sourceRoot:e.sourceRoot,sources:Dt(e,t),sourcesContent:e.sourcesContent,version:3}}catch{return null}},At=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?k(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:St(s),mappings:je(s.mappings),sources:Dt(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,sourceMapUrl:Ot(t),sourceRoot:void 0,sources:Array.from(o),sourcesContent:void 0,version:3}},jt=(e,t=!1)=>{if(!e)return!1;let n=e.trim();if(!n)return!1;let r=n.match(p);if(!r)return!0;let i=r[0].toLowerCase();return t||E.has(i)},Mt=()=>typeof window>`u`&&typeof process<`u`&&typeof process.versions?.node==`string`,Nt=e=>{try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&!t.username&&!t.password}catch{return!1}},j=e=>{try{return new URL(e).protocol}catch{return null}},M=e=>{let t=j(e);return t!==null&&ft.has(t)},Pt=(e,t)=>{try{let n=new URL(e),r=new URL(t);return n.protocol===r.protocol&&n.host===r.host}catch{return!1}},Ft=(e,t,n,r)=>{if(T.test(t))return!0;if(!jt(t,r))return!1;let i=j(e),a=j(t),o=i!==null&&!E.has(i)||a!==null&&!E.has(a);return!(n||o||M(e)||M(t))||Pt(e,t)},It=e=>e===408||e===425||e===429||e>=500,Lt=e=>{if(e.ok)return!0;if(It(e.status))throw new lt;return!1},Rt=(e,t,n)=>!n||t.url.length===0||Pt(e,t.url),zt=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}},Bt=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()}},Vt=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))},Ht=(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`)?Vt(i):decodeURIComponent(i);return e===null||new TextEncoder().encode(e).byteLength>t?null:JSON.parse(e)}catch{return null}},Ut=async(e,t,n,r,i)=>{if(T.test(e))return Ht(e,r);let a=await t(e,{redirect:i?`error`:`follow`,signal:n});if(!Lt(a)||!Rt(e,a,i))return null;let o=await Bt(a,r);if(o===null)return null;try{return JSON.parse(o)}catch{return null}},Wt=async(e,t,n={})=>{let r=t!==void 0;if(!jt(e,r))return null;let i=Mt(),a=(i||M(e))&&!n.allowCrossOriginSourceMap;if(i&&!t&&(!n.allowUnsafeServerFetch||!Nt(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=zt(n);try{let t=await o(e,{redirect:a?`error`:`follow`,signal:l.signal});if(!Lt(t)||!Rt(e,t,a))return null;let n=await Bt(t,s);if(n===null)return null;let i=bt(e,n,t);if(!i||!Ft(e,i,a,r))return null;let u=await Ut(i,o,l.signal,c,a);return A(u)?kt(u,i):xt(u)?At(u,i,async t=>{if(!Ft(e,t,a,r))return null;let n=await Ut(t,o,l.signal,c,a);return A(n)?n:null}):null}finally{l.cleanup()}},Gt=(e,t,n)=>{if(!n)return t;let r=e.get(n);return r||(r=new Map,e.set(n,r)),r},Kt=e=>Gt(ct,st,e),qt=e=>Gt(dt,ut,e),Jt=(e,t)=>t.allowCrossOriginSourceMap===void 0&&t.allowUnsafeServerFetch===void 0&&t.maxBundleSizeBytes===void 0&&t.maxSourceMapSizeBytes===void 0&&t.timeoutMs===void 0?e:`${e}\0${t.allowCrossOriginSourceMap??``}\0${t.allowUnsafeServerFetch??``}\0${t.maxBundleSizeBytes??``}\0${t.maxSourceMapSizeBytes??``}\0${t.timeoutMs??``}`,N=async(e,t=!0,n,r={})=>{let i=t&&r.signal===void 0,a=Kt(n),o=qt(n),s=Jt(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=Wt(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},P=async(e,t=!0,n,r={})=>Promise.all(e.map(async e=>{if(!e.fileName)return e;let i=await N(e.fileName,t,n,r);if(!i||typeof e.lineNumber!=`number`||typeof e.columnNumber!=`number`)return e;let a=D(i,e.lineNumber,e.columnNumber);return a?{...e,source:a.fileName&&e.source?e.source.replace(e.fileName,a.fileName):e.source,fileName:a.fileName,functionName:a.functionName??e.functionName,lineNumber:a.lineNumber,columnNumber:a.columnNumber,isIgnoreListed:a.isIgnoreListed,isSymbolicated:!0}:e})),F=e=>e._debugStack instanceof Error&&typeof e._debugStack?.stack==`string`,Yt=e=>`tag`in e&&typeof e.tag==`number`,I=e=>{let t=null;if(s(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}=y(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},Xt=()=>{let e=[];for(let t of Ce())e.push({currentDispatcherRef:t,value:we(t)}),b(t,null);return e},Zt=e=>{for(let{currentDispatcherRef:t,value:n}of e)b(t,n)},L=e=>`\n in ${e}`,Qt=(e,t,n)=>{if(n){let t=nn(n.stack??``),r=t.lastIndexOf(`
|
|
14
|
+
`),i=r===-1?t:t.slice(r+1);if(i.includes(e))return`\n${i}`}return L(`${e}${t?` [${t}]`:``}`)};let R=!1;const z=new WeakMap,$t=(e,t)=>{if(!e||R)return``;let n=z.get(e);if(n!==void 0)return n;let r=se();g(void 0),R=!0;let i=Xt(),a=console.error,o=console.warn;console.error=()=>{},console.warn=()=>{};try{let n={DetermineComponentFrameRoot(){let n;try{if(t){let t=function(){throw Error()};Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}});try{Reflect.construct(t,[])}catch(e){n=e}Reflect.construct(e,[],t)}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(`
|
|
16
15
|
`),n=i.split(`
|
|
17
|
-
`),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]=
|
|
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]=v(n);if(!r?.fileName)break;let i=l(e);return i&&n.includes(`<anonymous>`)&&(n=n.replace(`<anonymous>`,i)),z.set(e,n),n}while(a>=1&&o>=0);break}}}finally{R=!1,g(r),Zt(i),console.error=a,console.warn=o}let s=l(e),c=s?L(s):``;return z.set(e,c),c},en=(e,t)=>{let n=``,r=u(e);switch(e.tag){case r.ActivityComponent:n=L(`Activity`);break;case r.ClassComponent:n=$t(e.type,!0);break;case r.ForwardRef:n=$t(c(e.type)??e.type,!1);break;case r.FunctionComponent:case r.SimpleMemoComponent:n=$t(c(e.type)??e.type,!1);break;case r.HostComponent:case r.HostHoistable:case r.HostSingleton:typeof e.type==`string`&&(n=L(e.type));break;case r.LazyComponent:n=L(`Lazy`);break;case r.SuspenseComponent:n=e.child!==t&&t!==null?L(`Suspense Fallback`):L(`Suspense`);break;case r.SuspenseListComponent:n=L(`SuspenseList`);break;case r.ViewTransitionComponent:n=L(`ViewTransition`);break;default:return``}return n},tn=e=>{try{let t=``,n=e,r=null;do{t+=en(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+=Qt(r.name,r.env,r.debugLocation))}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}`:``}},nn=e=>{let t=e;if(!t)return``;t.startsWith(`Error: react-stack-top-frame
|
|
18
17
|
`)&&(t=t.slice(29));let n=t.indexOf(`
|
|
19
18
|
`);n!==-1&&(t=t.slice(n+1));let r=Math.max(...h.map(e=>t.indexOf(e)));if(r!==-1&&(r=t.lastIndexOf(`
|
|
20
|
-
`,r)),r!==-1)t=t.slice(0,r);else return``;return t},
|
|
21
|
-
`),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=Wt(n[e]);if(t)return t}}return null},Kt=async(e,t=!0,n,r={})=>{let i=j(e)??jt(e).find(e=>e.fileName);if(!i?.fileName)return u(e.type);let a=await O(i.fileName,t,n,r);if(!a)return u(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 u(e.type);let s=C(a,o.fileName);return(s?Gt(s,o.lineNumber):null)||(o.functionName??u(e.type))},qt=Symbol.for(`react.context`),Jt=Symbol.for(`react.memo_cache_sentinel`),Yt=Symbol.for(`react.recoverable`);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=>_(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`,Xt=e=>typeof e==`object`&&!!e&&`current`in e,Y=e=>typeof e==`object`&&!!e&&`_currentValue`in e,Zt=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 r(`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,i=null)=>{R.push({displayName:r,primitive:e,stackError:Error(),value:t,debugInfo:i,dispatcherHookName:n})},$t=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`,null,n._debugInfo??null),n.value;case`rejected`:throw n.reason}throw Z(`Unresolved`,n,`Use`,null,n._debugInfo??null),G}if(`$$typeof`in e&&e.$$typeof===Yt){Z(`Recoverable`,void 0,`Use`);return}if(`$$typeof`in e&&e.$$typeof===qt&&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 r(`use() received an unsupported value: `+String(e))},en=e=>{let t=X(e);return Z(`Context`,t,`Context`,e.displayName||null),t},tn=e=>{let t=q(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return Z(`State`,n,`State`),[n,()=>{}]},nn=(e,t,n)=>{let r=q(),i=r===null?n===void 0?t:n(t):r.memoizedState;return Z(`Reducer`,i,`Reducer`),[i,()=>{}]},rn=e=>{let t=q(),n=Xt(t?.memoizedState)?t.memoizedState:{current:e};return Z(`Ref`,n.current,`Ref`),n},an=()=>{let e=q();return Z(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},on=e=>{q(),Z(`LayoutEffect`,e,`LayoutEffect`)},sn=e=>{q(),Z(`InsertionEffect`,e,`InsertionEffect`)},cn=e=>{q(),Z(`Effect`,e,`Effect`)},ln=e=>{q();let t=Xt(e)?e.current:void 0;Z(`ImperativeHandle`,t,`ImperativeHandle`)},un=(e,t)=>{Z(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},dn=e=>{let t=q();return Z(`Callback`,Array.isArray(t?.memoizedState)?t.memoizedState[0]:e,`Callback`),e},fn=e=>{let t=q(),n=Array.isArray(t?.memoizedState)?t.memoizedState[0]:e();return Z(`Memo`,n,`Memo`),n},pn=(e,t)=>{let n=q();q();let r=n===null?t():n.memoizedState;return Z(`SyncExternalStore`,r,`SyncExternalStore`),r},mn=()=>{let e=q();q();let t=e?.memoizedState===!0;return Z(`Transition`,t,`Transition`),[t,()=>{}]},hn=e=>{let t=q(),n=t===null?e:t.memoizedState;return Z(`DeferredValue`,n,`DeferredValue`),n},gn=()=>{let e=q(),t=typeof e?.memoizedState==`string`?e.memoizedState:``;return Z(`Id`,t,`Id`),t},_n=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},()=>Jt)),n.index++,r},vn=e=>{let t=q(),n=t===null?e:t.memoizedState;return Z(`Optimistic`,n,`Optimistic`),[n,()=>{}]},yn=(e,t)=>{let n,r=null,i=null;if(e!==null){let t=e.memoizedState;if(J(t))switch(t.status){case`fulfilled`:n=t.value,r=t._debugInfo??null;break;case`rejected`:i=t.reason;break;default:i=G,n=t,r=t._debugInfo??null}else n=t}else n=t;return{value:n,debugInfo:r,error:i}},bn=e=>(t,n)=>{let r=q();q(),q();let{value:i,debugInfo:a,error:o}=yn(r,n);if(Z(e,i,e,null,a),o!==null)throw o;return[i,()=>{},!1]},xn=bn(`ActionState`),Q={readContext:X,use:$t,useCallback:dn,useContext:en,useEffect:cn,useImperativeHandle:ln,useLayoutEffect:on,useInsertionEffect:sn,useMemo:fn,useReducer:nn,useRef:rn,useState:tn,useDebugValue:un,useDeferredValue:hn,useTransition:mn,useSyncExternalStore:pn,useId:gn,useHostTransitionStatus:()=>{let e=X({_currentValue:null});return Z(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:bn(`FormState`),useActionState:xn,useOptimistic:vn,useMemoCache:_n,useCacheRefresh:an,useEffectEvent:e=>(q(),Z(`EffectEvent`,e,`EffectEvent`),e)},Sn=new Proxy(Q,{get(e,t){if(Object.hasOwn(e,t))return Reflect.get(e,t);throw new i(`The React dispatcher is missing method `+t)}}),Cn=()=>{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:qt,_currentValue:null}),Q.use({$$typeof:Yt});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 wn=0;const Tn=(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},En=(e,t)=>{let n=Tn(t,e,wn);if(n!==-1)return n;for(let r=0;r<e.length&&r<5;r++)if(n=Tn(t,e,r),n!==-1)return wn=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)},Dn=new Set([Z,...Object.values(Q)].map(e=>$(e.name))),On=e=>e!==``&&Dn.has(e),kn=(e,t)=>{let n=$(e);return t===`HostTransitionStatus`?n===t||n===`FormStatus`:n===t},An=(e,t)=>{let n=Cn().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&&kn(e[r].functionName,t.dispatcherHookName)&&r++,r<e.length-1&&kn(e[r].functionName,t.dispatcherHookName)&&r++,r;return-1},jn=(e,t)=>{let n=K(t.stackError),r=En(e,n),i=An(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)]},Mn=new Set([`Context`,`Context (use)`,`DebugValue`,`Promise`,`Unresolved`,`HostTransitionStatus`]),Nn=(e,t)=>{let n=[],r=null,i=n,a=0,o=[];for(let s of t){let[t,c]=jn(e,s),l=s.displayName;if(l===null&&t!==null){let e=$(t.functionName);l=On(e)?null:e||$(s.dispatcherHookName)}if(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,debugInfo:null,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=Mn.has(u)?null:a++,f=u===`Reducer`||u===`State`,p=l||u,m=c?.[0],ee={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:[],debugInfo:s.debugInfo,hookSource:ee})}return Fn(n,null),Pn(n,null),n},Pn=(e,t)=>{for(let n=0;n<e.length;n++){let r=e[n];On(r.name)?(t!==null&&r.value!==void 0&&(t.value=t.value===void 0?r.value:Array.isArray(t.value)?[...t.value,r.value]:[t.value,r.value]),e.splice(n,1,...r.subHooks),n--):Pn(r.subHooks,r)}},Fn=(e,t)=>{let n=[];for(let t=0;t<e.length;t++){let r=e[t];r.name===`DebugValue`?(e.splice(t,1,...r.subHooks),t--,r.value!==void 0&&n.push(r)):Fn(r.subHooks,r)}t!==null&&(n.length===1?t.value=n[0].value:n.length>1&&(t.value=n.map(({value:e})=>e)))},In=(e,t)=>{let n=t;for(;n;){if(n.tag===a(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}},Ln=e=>{e.forEach((e,t)=>{t._currentValue=e})},Rn=e=>{if(e!==G)throw e instanceof i?e:new f(`Bippy couldn’t render the inspected component`,e)},zn=(e,t)=>{if(e!==null&&(typeof e==`object`||typeof e==`function`)&&`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},Bn=()=>{let e={};for(let t in console)try{e[t]=Reflect.get(console,t),Reflect.set(console,t,()=>{})}catch{}return e},Vn=e=>{for(let t in e)try{Reflect.set(console,t,e[t])}catch{}},Hn=(e,t,...n)=>{let r=be(e);y(e,Sn);let i=[],a;try{a=Error(),t(...n)}catch(e){Rn(e)}finally{i=R,R=[],y(e,r)}let o=a===void 0?[]:K(a);return Nn(o,i)},Un=(e,t=globalThis)=>{let n=(e?d(e,t)?.currentDispatcherRef:null)??ye(t)[0];if(!n)throw new r(`Bippy couldn’t find a React renderer. Load React and install Bippy’s hook.`);return n},Wn=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=Zt(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=Zt(n)?n:null}else throw new r(`Bippy doesn’t support this React version.`)},Gn=e=>{let t=e=>{let n=e.subHooks.map(t);if(n.length===1){let t=n[0];if(e.name===`Context`&&t.id===null)return{...t,hookSource:e.hookSource};if(e.name===`FormStatus`&&t.name===`HostTransitionStatus`)return{...e,subHooks:[],value:t.value};if(e.name===`Use`){if(t.name===`Context`)return{...t,hookSource:e.hookSource};if(t.name===`Promise`||t.name===`Unresolved`)return{...e,debugInfo:t.debugInfo,subHooks:[],value:t.value}}if(e.id===null&&e.value===void 0&&(e.name===t.name||e.name===`<anonymous>`))return{...t,hookSource:e.hookSource}}return{...e,subHooks:n}};return e.map(t)},Kn=(e,t,n=globalThis)=>{let r=Un(void 0,n);Cn(),V=null,B=null,H=null,W=null,U=0;let i=Bn();try{return Gn(Hn(r,e,t))}finally{V=null,B=null,H=null,W=null,U=0,Vn(i)}},qn=e=>{let t=Un(e),n=a(e);if(e.tag!==n.FunctionComponent&&e.tag!==n.SimpleMemoComponent&&e.tag!==n.ForwardRef)throw new r(`Hook inspection requires a function component Fiber.`);Cn(),V=e.memoizedState,B=e;let i=e.dependencies?._debugThenableState,o=Array.isArray(i)?i:i?.thenables;W=Array.isArray(o)?o:null,U=0,Wn(e);let s=e.type,c=e.memoizedProps;s!==e.elementType&&(c=zn(s,c));let l=Bn(),u=new Map;try{if(H!==null&&!Object.hasOwn(H,`memoizedValue`)&&In(u,e),e.tag===n.ForwardRef){if(!Qt(s))throw new r(`ForwardRef fiber is missing its render function.`);let n=Gn(Hn(t,s.render,c,e.ref));for(let e of n)e.hookSource?.functionName===`Object.render`&&(e.hookSource.functionName=null);return n}if(typeof s!=`function`)throw new r(`Function component fiber is missing its component function.`);return Gn(Hn(t,s,c))}finally{B=null,V=null,H=null,W=null,U=0,Ln(u),Vn(l)}},Jn=new Set([`Effect`,`LayoutEffect`,`InsertionEffect`,`ImperativeHandle`,`DebugValue`]),Yn=/(?:const|let|var)\s+((?:\[[\s\S]*?\]|\w+))\s*=\s*(?:(?:[\w$]+|require\s*\([^)]*\))\.)*use[A-Z]\w*\s*(?:<[\s\S]*?>)?\s*\(/g,Xn=e=>`${e.fileName??``}:${e.lineNumber??0}:${e.columnNumber??0}`,Zn=e=>{let t=[],n=e=>{for(let r of e)Jn.has(r.name)||(t.push(r),r.subHooks.length>0&&n(r.subHooks))};return n(e),t},Qn=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},$n=(e,t,n)=>{let r=e.split(`
|
|
19
|
+
`,r)),r!==-1)t=t.slice(0,r);else return``;return t},rn=e=>!!(e.functionName&&e.fileName&&cn(e.fileName)),an=(e,t)=>e.fileName===t.fileName&&e.lineNumber===t.lineNumber&&e.columnNumber===t.columnNumber,on=e=>{let t=new Map;for(let n of e){if(!rn(n))continue;let e=n.functionName,r=t.get(e)??[];r.some(e=>an(e,n))||(r.push(n),t.set(e,r))}return t},sn=(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(ae,`(${a.fileName}:${a.lineNumber}:${a.columnNumber})`)}},cn=e=>m.some(t=>e.startsWith(t)),ln=e=>!e.isServer&&e.fileName&&cn(e.fileName)?{...e,isServer:!0}:e,un=e=>{let t=[],n=e;for(;n;)if(Yt(n)){let e=n;if(n=e._debugOwner,n&&F(e)){let{frames:n,isTrusted:r}=y(e._debugStack);if(r)for(let e of n)t.push(ln(e))}}else{let e=n;if(n=e.owner,n&&e.debugStack instanceof Error)for(let n of y(e.debugStack).frames)t.push({...n,isServer:!0})}return t},dn=e=>{let t=[];return s(e,e=>{if(!F(e))return;let{frames:n,isTrusted:r}=y(e._debugStack);r&&t.push(...n)},!0),t},fn=e=>{let t=dn(e),n=v(tn(e)),r=on(t),i=new Map;return n.map(e=>e.source!==void 0&&ae.test(e.source)?sn(e,r,i):e).filter((e,t,n)=>{if(t===0)return!0;let r=n[t-1];return e.functionName!==r.functionName})},pn=async(e,t=!0,n,r={})=>P(fn(e),t,n,r),mn=e=>!!e.fileName&&!e.isIgnoreListed,hn=async(e,t=!0,n,r={})=>{let i=un(e);if(i.length>0){let a=I(e)??{};a.functionName=l(e.type)??a.functionName;let o=await P([a,...i],t,n,r);if(o.some((e,t)=>t>0&&mn(e)))return o}return pn(e,t,n,r)},gn=e=>{let t=e._debugSource;return t?typeof t==`object`&&typeof t.fileName==`string`&&t.fileName!==`(native)`&&typeof t.lineNumber==`number`:!1},B=e=>e.fileName?{fileName:e.fileName,lineNumber:e.lineNumber,columnNumber:e.columnNumber,functionName:e.functionName}:null,_n=e=>{if(!F(e))return null;let{frames:t,isTrusted:n}=y(e._debugStack);if(!n)return null;for(let e of t)if(e.fileName)return e;return null},vn=e=>{if(gn(e))return e._debugSource;let t=_n(e)??I(e);return t?B(t):null},yn=async(e,t,n,r)=>{let i=l(e.type);if(!i)return null;let a=v(Error().stack??``),o=new Set;for(let e of a){let a=e.fileName;if(!a||o.has(a))continue;o.add(a);let s=await N(a,t,n,r);if(!s)continue;let c=_t(s,i);if(c&&!c.isIgnoreListed)return B(c)}return null},bn=async(e,t=!0,n,r={})=>{if(gn(e))return e._debugSource;let i=vn(e);if(i){let[e]=await P([{columnNumber:i.columnNumber,fileName:i.fileName,functionName:i.functionName,lineNumber:i.lineNumber}],t,n,r),a=B(e);if(a)return a}let a=await pn(e,t,n,r);for(let e of a)if(e.fileName)return B(e);return yn(e,t,n,r)},xn=[/(?:^|export\s+)(?:const|let|var)\s+(\w+)\s*=/,/(?:^|export\s+)function\s+(\w+)/,/(?:^|export\s+)class\s+(\w+)/],Sn=e=>{for(let t of xn){let n=e.match(t);if(n?.[1])return n[1]}return null},Cn=(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=Sn(n[e]);if(t)return t}}return null},wn=async(e,t=!0,n,r={})=>{let i=I(e)??fn(e).find(e=>e.fileName);if(!i?.fileName)return l(e.type);let a=await N(i.fileName,t,n,r);if(!a)return l(e.type);let o=null;if(typeof i.lineNumber==`number`&&typeof i.columnNumber==`number`&&(o=D(a,i.lineNumber,i.columnNumber)),!o?.fileName||!o.lineNumber)return l(e.type);let s=O(a,o.fileName);return(s?Cn(s,o.lineNumber):null)||(o.functionName??l(e.type))},Tn=Symbol.for(`react.context`),En=Symbol.for(`react.memo_cache_sentinel`),Dn=Symbol.for(`react.recoverable`);let V=[],H=null,U=null,W=null,G=null,K=0,q=null,On=0,kn=!1;const An=()=>{if(kn)throw new r(`Hook inspection cannot be called during another inspection.`)},jn=Error("Suspense interrupted this render. This error is an internal implementation detail of `use`."),Mn=e=>v(e.stack||``,{includeInElement:!1}),J=()=>{let e=W;return e!==null&&(W=e.next),e},Nn=e=>typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`,Pn=e=>typeof e==`object`&&!!e&&`current`in e,Fn=e=>typeof e==`object`&&!!e&&`_currentValue`in e,In=e=>typeof e==`object`&&!!e&&`context`in e&&`next`in e,Ln=e=>typeof e==`object`&&!!e&&`render`in e&&typeof e.render==`function`,Y=e=>{if(U===null)return e._currentValue;if(G===null)throw new r(`Context reads don’t match context dependencies.`);if(Object.hasOwn(G,`memoizedValue`)){let e=G.memoizedValue;return G=G.next,e}return e._currentValue},X=(e,t,n,r=null,i=null)=>{V.push({displayName:r,primitive:e,stackError:Error(),value:t,debugInfo:i,dispatcherHookName:n})},Rn=e=>{if(typeof e==`object`&&e){if(Nn(e)){let t=q!==null&&K<q.length?q[K++]:e,n=Nn(t)?t:e;switch(n.status){case`fulfilled`:return X(`Promise`,n.value,`Use`,null,n._debugInfo??null),n.value;case`rejected`:throw n.reason}throw X(`Unresolved`,n,`Use`,null,n._debugInfo??null),jn}if(`$$typeof`in e&&e.$$typeof===Dn){X(`Recoverable`,void 0,`Use`);return}if(`$$typeof`in e&&e.$$typeof===Tn&&Fn(e)){let t={_currentValue:e._currentValue,displayName:typeof e.displayName==`string`?e.displayName:void 0},n=Y(t);return X(`Context (use)`,n,`Use`,t.displayName||`Context`),n}}throw new r(`use() received an unsupported value: `+String(e))},zn=e=>{let t=Y(e);return X(`Context`,t,`Context`,e.displayName||null),t},Bn=e=>{let t=J(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return X(`State`,n,`State`),[n,()=>{}]},Vn=(e,t,n)=>{let r=J(),i=r===null?n===void 0?t:n(t):r.memoizedState;return X(`Reducer`,i,`Reducer`),[i,()=>{}]},Hn=e=>{let t=J(),n=Pn(t?.memoizedState)?t.memoizedState:{current:e};return X(`Ref`,n.current,`Ref`),n},Un=()=>{let e=J();return X(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},Wn=e=>{J(),X(`LayoutEffect`,e,`LayoutEffect`)},Gn=e=>{J(),X(`InsertionEffect`,e,`InsertionEffect`)},Kn=e=>{J(),X(`Effect`,e,`Effect`)},qn=e=>{J();let t=Pn(e)?e.current:void 0;X(`ImperativeHandle`,t,`ImperativeHandle`)},Jn=(e,t)=>{X(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},Yn=e=>{let t=J();return X(`Callback`,Array.isArray(t?.memoizedState)?t.memoizedState[0]:e,`Callback`),e},Xn=e=>{let t=J(),n=Array.isArray(t?.memoizedState)?t.memoizedState[0]:e();return X(`Memo`,n,`Memo`),n},Zn=(e,t)=>{let n=J();J();let r=n===null?t():n.memoizedState;return X(`SyncExternalStore`,r,`SyncExternalStore`),r},Qn=()=>{let e=J();J();let t=e?.memoizedState===!0;return X(`Transition`,t,`Transition`),[t,()=>{}]},$n=e=>{let t=J(),n=t===null?e:t.memoizedState;return X(`DeferredValue`,n,`DeferredValue`),n},er=()=>{let e=J(),t=typeof e?.memoizedState==`string`?e.memoizedState:``;return X(`Id`,t,`Id`),t},tr=e=>{let t=U;if(t===null)return[];let n=t.updateQueue?.memoCache;return n==null?[]:n.data[On++]?.slice()??Array.from({length:e},()=>En)},nr=e=>{let t=J(),n=t===null?e:t.memoizedState;return X(`Optimistic`,n,`Optimistic`),[n,()=>{}]},rr=(e,t)=>{let n,r=null,i=null;if(e!==null){let t=e.memoizedState;if(Nn(t))switch(t.status){case`fulfilled`:n=t.value,r=t._debugInfo??null;break;case`rejected`:i=t.reason;break;default:i=jn,n=t,r=t._debugInfo??null}else n=t}else n=t;return{value:n,debugInfo:r,error:i}},ir=e=>(t,n)=>{let r=J();J(),J();let{value:i,debugInfo:a,error:o}=rr(r,n);if(X(e,i,e,null,a),o!==null)throw o;return[i,()=>{},!1]},ar=ir(`ActionState`),Z={readContext:Y,use:Rn,useCallback:Yn,useContext:zn,useEffect:Kn,useImperativeHandle:qn,useLayoutEffect:Wn,useInsertionEffect:Gn,useMemo:Xn,useReducer:Vn,useRef:Hn,useState:Bn,useDebugValue:Jn,useDeferredValue:$n,useTransition:Qn,useSyncExternalStore:Zn,useId:er,useHostTransitionStatus:()=>{let e=Y({_currentValue:null});return X(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:ir(`FormState`),useActionState:ar,useOptimistic:nr,useMemoCache:tr,useCacheRefresh:Un,useEffectEvent:e=>(J(),X(`EffectEvent`,e,`EffectEvent`),e)},or=new Proxy(Z,{get(e,t){if(Object.hasOwn(e,t))return Reflect.get(e,t);throw new i(`The React dispatcher is missing method `+t)}}),sr=()=>{if(H!==null)return H;let e=new Map,t;try{Z.useContext({_currentValue:null}),Z.useState(null),Z.useReducer(e=>e,null),Z.useRef(null),Z.useCacheRefresh(),Z.useLayoutEffect(()=>{}),Z.useInsertionEffect(()=>{}),Z.useEffect(()=>{}),Z.useImperativeHandle(void 0),Z.useDebugValue(null),Z.useCallback(()=>{}),Z.useTransition(),Z.useSyncExternalStore(()=>()=>{},()=>null),Z.useDeferredValue(null),Z.useMemo(()=>null),Z.useOptimistic(null),Z.useFormState(e=>e,null),Z.useActionState(e=>e,null),Z.useHostTransitionStatus(),Z.use({$$typeof:Tn,_currentValue:null}),Z.use({$$typeof:Dn});let e=Promise.resolve(null);Reflect.set(e,`status`,`fulfilled`),Reflect.set(e,`value`,null),Z.use(e);try{Z.use(new Promise(()=>{}))}catch{}Z.useId(),Z.useEffectEvent(()=>{})}finally{t=V,V=[]}for(let n of t)e.set(n.primitive,Mn(n.stackError));return H=e,H};let cr=0;const lr=(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},ur=(e,t)=>{let n=lr(t,e,cr);if(n!==-1)return n;for(let r=0;r<e.length&&r<5;r++)if(n=lr(t,e,r),n!==-1)return cr=r,n;return-1},Q=e=>{if(!e)return``;let t=e.lastIndexOf(`[as `);if(t!==-1)return Q(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)},dr=new Set([X,...Object.values(Z)].map(e=>Q(e.name))),fr=e=>e!==``&&dr.has(e),pr=(e,t)=>{let n=Q(e);return t===`HostTransitionStatus`?n===t||n===`FormStatus`:n===t},mr=(e,t)=>{let n=sr().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&&pr(e[r].functionName,t.dispatcherHookName)&&r++,r<e.length-1&&pr(e[r].functionName,t.dispatcherHookName)&&r++,r;return-1},hr=(e,t,n)=>{let r=n(t.stackError.stack||``),i=ur(e,r),a=mr(r,t);return i===-1||a===-1||i-a<2?a===-1?[null,null]:[r[a-1]??null,null]:[r[a-1]??null,r.slice(a,i-1)]},gr=new Set([`Context`,`Context (use)`,`DebugValue`,`Promise`,`Unresolved`,`HostTransitionStatus`]),_r=(e,t)=>{let n=[],r=_e(),i=null,a=n,o=0,s=[];for(let c of t){let[t,l]=hr(e,c,r),u=c.displayName;if(u===null&&t!==null){let e=Q(t.functionName);u=fr(e)?null:e||Q(c.dispatcherHookName)}if(l!==null){let e=0;if(i!==null){for(;e<l.length&&e<i.length&&l[l.length-e-1].source===i[i.length-e-1].source;)e++;for(let t=i.length-1;t>e;t--)a=s.pop()??n}for(let t=l.length-e-1;t>=1;t--){let e=[],n=l[t],r={id:null,isStateEditable:!1,name:Q(l[t-1].functionName),value:void 0,subHooks:e,debugInfo:null,hookSource:{lineNumber:n.lineNumber??null,columnNumber:n.columnNumber??null,functionName:n.functionName??null,fileName:n.fileName??null}};a.push(r),s.push(a),a=e}i=l}let{primitive:d}=c,f=gr.has(d)?null:o++,p=d===`Reducer`||d===`State`,ee=u||d,m=l?.[0],te={lineNumber:m?.lineNumber??null,columnNumber:m?.columnNumber??null,functionName:m?.functionName??null,fileName:m?.fileName??null};a.push({id:f,isStateEditable:p,name:ee,value:c.value,subHooks:[],debugInfo:c.debugInfo,hookSource:te})}return yr(n,null),vr(n,null),n},vr=(e,t)=>{for(let n=0;n<e.length;n++){let r=e[n];fr(r.name)?(t!==null&&r.value!==void 0&&(t.value=t.value===void 0?r.value:Array.isArray(t.value)?[...t.value,r.value]:[t.value,r.value]),e.splice(n,1,...r.subHooks),n--):vr(r.subHooks,r)}},yr=(e,t)=>{let n=[];for(let t=0;t<e.length;t++){let r=e[t];r.name===`DebugValue`?(e.splice(t,1,...r.subHooks),t--,r.value!==void 0&&n.push(r)):yr(r.subHooks,r)}t!==null&&(n.length===1?t.value=n[0].value:n.length>1&&(t.value=n.map(({value:e})=>e)))},br=(e,t)=>{let n=t;for(;n;){if(n.tag===u(n).ContextProvider){let t=n.type,r=typeof t==`object`&&t&&`_context`in t?t._context:void 0,i=Fn(r)?r:Fn(t)?t:null;i&&!e.has(i)&&(e.set(i,i._currentValue),i._currentValue=n.memoizedProps.value)}n=n.return}},xr=e=>{e.forEach((e,t)=>{t._currentValue=e})},Sr=e=>{if(e!==jn)throw e instanceof i?e:new f(`Bippy couldn’t render the inspected component`,e)},Cr=(e,t)=>{if(e!==null&&(typeof e==`object`||typeof e==`function`)&&`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},wr=()=>{let e={};for(let t in console)try{e[t]=Reflect.get(console,t),Reflect.set(console,t,()=>{})}catch{}return e},Tr=e=>{for(let t in e)try{Reflect.set(console,t,e[t])}catch{}},$=(e,t,...n)=>{let r=we(e);b(e,or),kn=!0;let i=[],a;try{a=Error(),t(...n)}catch(e){Sr(e)}finally{i=V,V=[],kn=!1,b(e,r)}let o=a===void 0?[]:Mn(a);return _r(o,i)},Er=(e,t=globalThis)=>{let n=(e?d(e,t)?.currentDispatcherRef:null)??Ce(t)[0];if(!n)throw new r(`Bippy couldn’t find a React renderer. Load React and install Bippy’s hook.`);return n},Dr=e=>{let t=[`dependencies_old`,`dependencies_new`].find(t=>Object.hasOwn(e,t));if(Object.hasOwn(e,`dependencies`)){let t=e.dependencies;G=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;G=In(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;G=In(n)?n:null}else throw new r(`Bippy doesn’t support this React version.`)},Or=e=>{let t=e=>{let n=e.subHooks.map(t);if(n.length===1){let t=n[0];if(e.name===`Context`&&t.id===null)return{...t,hookSource:e.hookSource};if(e.name===`FormStatus`&&t.name===`HostTransitionStatus`)return{...e,subHooks:[],value:t.value};if(e.name===`Use`){if(t.name===`Context`)return{...t,hookSource:e.hookSource};if(t.name===`Promise`||t.name===`Unresolved`)return{...e,debugInfo:t.debugInfo,subHooks:[],value:t.value}}if(e.id===null&&e.value===void 0&&(e.name===t.name||e.name===`<anonymous>`))return{...t,hookSource:e.hookSource}}return{...e,subHooks:n}};return e.map(t)},kr=(e,t,n=globalThis)=>{An();let r=Er(void 0,n);sr(),W=null,U=null,G=null,q=null,K=0;let i=wr();try{return Or($(r,e,t))}finally{W=null,U=null,G=null,q=null,K=0,Tr(i)}},Ar=e=>{An();let t=Er(e),n=u(e);if(e.tag!==n.FunctionComponent&&e.tag!==n.SimpleMemoComponent&&e.tag!==n.ForwardRef)throw new r(`Hook inspection requires a function component Fiber.`);sr(),W=e.memoizedState,U=e,On=0;let i=e.dependencies?._debugThenableState,a=Array.isArray(i)?i:i?.thenables;q=Array.isArray(a)?a:null,K=0;let o=wr(),s=new Map;try{Dr(e);let i=e.type,a=i===e.elementType?e.memoizedProps:Cr(i,e.memoizedProps);if(G!==null&&!Object.hasOwn(G,`memoizedValue`)&&br(s,e),e.tag===n.ForwardRef){if(!Ln(i))throw new r(`ForwardRef fiber is missing its render function.`);let n=Or($(t,i.render,a,e.ref));for(let e of n)e.hookSource?.functionName===`Object.render`&&(e.hookSource.functionName=null);return n}if(typeof i!=`function`)throw new r(`Function component fiber is missing its component function.`);return Or($(t,i,a))}finally{U=null,W=null,G=null,q=null,K=0,On=0,xr(s),Tr(o)}},jr=new Set([`Effect`,`LayoutEffect`,`InsertionEffect`,`ImperativeHandle`,`DebugValue`]),Mr=/(?:const|let|var)\s+((?:\[[\s\S]*?\]|\w+))\s*=\s*(?:(?:[\w$]+|require\s*\([^)]*\))\.)*use[A-Z]\w*\s*(?:<[\s\S]*?>)?\s*\(/g,Nr=e=>`${e.fileName??``}:${e.lineNumber??0}:${e.columnNumber??0}`,Pr=e=>{let t=[],n=e=>{for(let r of e)jr.has(r.name)||(t.push(r),r.subHooks.length>0&&n(r.subHooks))};return n(e),t},Fr=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},Ir=(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,l=c+n,u=s.filter(e=>e.index<=l).at(-1)??(n===0?s.find(e=>e.index>=c):void 0);return u?
|
|
22
|
+
`),s=[...o.matchAll(Mr)],c=o.lastIndexOf(`
|
|
23
|
+
`)+1,l=c+n,u=s.filter(e=>e.index<=l).at(-1)??(n===0?s.find(e=>e.index>=c):void 0);return u?Fr(u[1]):null},Lr=async(e,t,n,r)=>{let{sourceContentCache:i,fetchFn:a,requestOptions:o}=r,s=await N(e,!0,a,o);if(s){let e=D(s,t,n);if(e?.fileName&&e.lineNumber!==void 0){let t=O(s,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 c=i.get(e)??null;return c?{sourceCode:c,lineNumber:t,columnNumber:n}:null},Rr=async(e,t,n)=>{let r=new Map,i=Pr(e);if(i.length===0)return r;let a={sourceContentCache:new Map,fetchFn:t,requestOptions:n};return await Promise.all(i.map(async e=>{let t=e.hookSource;if(!t||!t.fileName||t.lineNumber===null||t.columnNumber===null)return;let n=await Lr(t.fileName,t.lineNumber,t.columnNumber,a);if(!n)return;let i=Ir(n.sourceCode,n.lineNumber,n.columnNumber);if(i){let e=Nr(t);r.set(e,i)}})),r};export{a as BippyError,r as BippyHookInspectionError,f as BippyHookRenderError,o as BippySourceMapError,i as BippyUnsupportedHookError,nn as formatOwnerStack,I as getDefinitionFrameFromOwnedChild,wn as getDisplayNameFromSource,tn as getFallbackParentStack,Ar as getFiberHooks,hn as getOwnerStack,pn as getParentStack,un as getRawOwnerStack,vn as getRawSource,bn as getSource,O as getSourceContentFromSourceMap,D as getSourceFromSourceMap,_t as getSourceFromSourceMapByFunctionName,N as getSourceMap,F as hasDebugStack,kr as inspectHooks,at as isSourceFile,w as normalizeFileName,Rr as parseHookNames,v as parseStack,P as symbolicateStack};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bippy",
|
|
3
|
-
"version": "0.7.3-dev.
|
|
3
|
+
"version": "0.7.3-dev.9f2850b",
|
|
4
4
|
"description": "hack into react internals",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bippy",
|
|
@@ -78,6 +78,7 @@
|
|
|
78
78
|
"@types/react-reconciler": "^0.33.0"
|
|
79
79
|
},
|
|
80
80
|
"devDependencies": {
|
|
81
|
+
"@babel/core": "^7.29.7",
|
|
81
82
|
"@babylonjs/core": "^9.20.0",
|
|
82
83
|
"@babylonjs/gui": "^9.20.0",
|
|
83
84
|
"@jridgewell/sourcemap-codec": "^1.5.0",
|
|
@@ -89,31 +90,58 @@
|
|
|
89
90
|
"@react-three/test-renderer": "^9.1.0",
|
|
90
91
|
"@testing-library/dom": "^10.4.0",
|
|
91
92
|
"@testing-library/react": "^16.1.0",
|
|
93
|
+
"@types/babel__core": "^7.20.5",
|
|
92
94
|
"@types/node": "^20",
|
|
93
|
-
"@types/react": "^19.
|
|
94
|
-
"@types/react-dom": "^19.
|
|
95
|
-
"@
|
|
95
|
+
"@types/react": "^19.3.0",
|
|
96
|
+
"@types/react-dom": "^19.3.0",
|
|
97
|
+
"@types/react-test-renderer": "^19.3.0",
|
|
98
|
+
"@typescript/typescript6": "^6.0.2",
|
|
99
|
+
"@vitest/coverage-istanbul": "4.1.11",
|
|
100
|
+
"babel-plugin-react-compiler": "^1.0.0",
|
|
96
101
|
"happy-dom": "^20.11.6",
|
|
97
102
|
"ink": "^7.1.1",
|
|
98
103
|
"ink-testing-library": "^4.0.0",
|
|
99
104
|
"konva": "^10.3.0",
|
|
100
105
|
"pixi.js": "^8.19.0",
|
|
101
106
|
"publint": "^0.3.0",
|
|
102
|
-
"react": "^19.
|
|
107
|
+
"react": "^19.3.0",
|
|
108
|
+
"react-16-12": "npm:react@16.12.0",
|
|
109
|
+
"react-16-13": "npm:react@16.13.0",
|
|
110
|
+
"react-16-14": "npm:react@16.14.0",
|
|
111
|
+
"react-16-8": "npm:react@16.8.6",
|
|
103
112
|
"react-17": "npm:react@17.0.2",
|
|
104
113
|
"react-18": "npm:react@18.3.1",
|
|
114
|
+
"react-18-0": "npm:react@18.0.0",
|
|
115
|
+
"react-18-2": "npm:react@18.2.0",
|
|
116
|
+
"react-19-0": "npm:react@19.0.0",
|
|
117
|
+
"react-19-1": "npm:react@19.1.0",
|
|
118
|
+
"react-19-2": "npm:react@19.2.8",
|
|
105
119
|
"react-babylonjs": "^4.0.2",
|
|
106
|
-
"react-
|
|
107
|
-
"react-devtools-
|
|
108
|
-
"react-
|
|
120
|
+
"react-canary": "npm:react@19.3.0-canary-1d34f91d-20260909",
|
|
121
|
+
"react-devtools-core": "8.0.0",
|
|
122
|
+
"react-devtools-inline": "^8.0.0",
|
|
123
|
+
"react-dom": "^19.3.0",
|
|
124
|
+
"react-dom-16-12": "npm:react-dom@16.12.0",
|
|
125
|
+
"react-dom-16-13": "npm:react-dom@16.13.0",
|
|
126
|
+
"react-dom-16-14": "npm:react-dom@16.14.0",
|
|
127
|
+
"react-dom-16-8": "npm:react-dom@16.8.6",
|
|
109
128
|
"react-dom-17": "npm:react-dom@17.0.2",
|
|
110
129
|
"react-dom-18": "npm:react-dom@18.3.1",
|
|
130
|
+
"react-dom-18-0": "npm:react-dom@18.0.0",
|
|
131
|
+
"react-dom-18-2": "npm:react-dom@18.2.0",
|
|
132
|
+
"react-dom-19-0": "npm:react-dom@19.0.0",
|
|
133
|
+
"react-dom-19-1": "npm:react-dom@19.1.0",
|
|
134
|
+
"react-dom-19-2": "npm:react-dom@19.2.8",
|
|
135
|
+
"react-dom-canary": "npm:react-dom@19.3.0-canary-1d34f91d-20260909",
|
|
136
|
+
"react-dom-experimental": "npm:react-dom@0.0.0-experimental-1d34f91d-20260909",
|
|
137
|
+
"react-experimental": "npm:react@0.0.0-experimental-1d34f91d-20260909",
|
|
111
138
|
"react-konva": "^19.2.5",
|
|
112
139
|
"react-nil": "^2.0.0",
|
|
140
|
+
"react-test-renderer": "^19.3.0",
|
|
113
141
|
"remotion": "^4.0.496",
|
|
114
142
|
"three": "^0.185.1",
|
|
115
143
|
"tsx": "^4.21.0",
|
|
116
|
-
"typescript": "^
|
|
144
|
+
"typescript": "^7.0.2",
|
|
117
145
|
"vite-plus": "latest",
|
|
118
146
|
"zod": "^4.4.3"
|
|
119
147
|
},
|
|
@@ -121,12 +149,20 @@
|
|
|
121
149
|
"react": ">=16.0.0"
|
|
122
150
|
},
|
|
123
151
|
"scripts": {
|
|
152
|
+
"bench": "pnpm build && tsx scripts/benchmark-all.ts",
|
|
153
|
+
"bench:smoke": "tsx scripts/benchmark-all.ts --quick",
|
|
154
|
+
"bench:use-fiber": "pnpm build && tsx scripts/benchmark-use-fiber.ts",
|
|
124
155
|
"build": "NODE_ENV=production vp pack && tsx scripts/check-react-entry.ts",
|
|
125
156
|
"check:react-internals": "tsx scripts/generate-react-internals.ts --check",
|
|
126
|
-
"
|
|
157
|
+
"check:upstream": "tsx scripts/check-upstream.ts",
|
|
158
|
+
"coverage": "vp test --coverage --project unit",
|
|
127
159
|
"dev": "NODE_ENV=development vp pack --watch",
|
|
128
160
|
"generate:react-internals": "tsx scripts/generate-react-internals.ts",
|
|
129
161
|
"publint": "publint",
|
|
130
|
-
"
|
|
162
|
+
"sync:devtools": "tsx scripts/sync-devtools.ts",
|
|
163
|
+
"test": "vp test",
|
|
164
|
+
"test:all": "pnpm test && pnpm typecheck && pnpm test:built",
|
|
165
|
+
"test:built": "pnpm build && tsx scripts/check-built.ts",
|
|
166
|
+
"typecheck": "tsc --noEmit"
|
|
131
167
|
}
|
|
132
168
|
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export const callListener = <Arguments extends unknown[]>(
|
|
2
|
+
listener: (...listenerArguments: Arguments) => unknown,
|
|
3
|
+
receiver: unknown,
|
|
4
|
+
...listenerArguments: Arguments
|
|
5
|
+
): void => {
|
|
6
|
+
try {
|
|
7
|
+
listener.apply(receiver, listenerArguments);
|
|
8
|
+
} catch (error) {
|
|
9
|
+
try {
|
|
10
|
+
console.error("Bippy instrumentation encountered an error:", error);
|
|
11
|
+
} catch {}
|
|
12
|
+
}
|
|
13
|
+
};
|