bippy 0.6.1-dev.3a24abf → 0.6.1-dev.b88fcb4
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 +7 -1
- package/dist/core.cjs +1 -1
- package/dist/core.d.cts +39 -41
- package/dist/core.d.ts +39 -41
- 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} +205 -31
- package/dist/{types.d.ts → errors.d.ts} +205 -31
- 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 -13
- package/dist/source.d.cts +27 -9
- package/dist/source.d.ts +27 -9
- package/dist/source.js +13 -13
- package/package.json +10 -6
- package/src/core.ts +269 -224
- package/src/errors.ts +99 -0
- package/src/rdt-hook.ts +154 -99
- package/src/react-internals/generated/react-work-tags.ts +314 -0
- package/src/react-internals/index.ts +67 -0
- package/src/react-internals/semver.ts +78 -0
- package/src/{types.ts → react-internals/types.ts} +13 -3
- package/src/source/error-stack.ts +11 -0
- package/src/source/get-display-name-from-source.ts +1 -1
- package/src/source/get-source.ts +2 -2
- package/src/source/index.ts +9 -1
- package/src/source/inspect-hooks.ts +199 -165
- package/src/source/owner-stack.ts +26 -39
- package/src/source/parse-debug-stack.ts +4 -4
- package/src/source/parse-hook-names.ts +1 -1
- package/src/source/symbolication.ts +468 -101
- 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.d.ts
CHANGED
|
@@ -1,4 +1,12 @@
|
|
|
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 { C as Fiber, a as BippyHookRenderError, l as BippySourceMapError, n as BippyHookInspectionError, t as BippyError, u as BippyUnsupportedHookError } from "./errors.js";
|
|
2
10
|
//#region src/source/parse-stack.d.ts
|
|
3
11
|
interface StackFrame {
|
|
4
12
|
args?: unknown[];
|
|
@@ -114,7 +122,7 @@ interface DecodedSourceMapSection {
|
|
|
114
122
|
names?: string[];
|
|
115
123
|
sourceRoot?: string;
|
|
116
124
|
sources: string[];
|
|
117
|
-
sourcesContent?: string
|
|
125
|
+
sourcesContent?: Array<string | null>;
|
|
118
126
|
version: 3;
|
|
119
127
|
};
|
|
120
128
|
offset: {
|
|
@@ -125,15 +133,25 @@ interface DecodedSourceMapSection {
|
|
|
125
133
|
interface IndexSourceMap {
|
|
126
134
|
file?: string;
|
|
127
135
|
sections: Array<{
|
|
128
|
-
map
|
|
136
|
+
map?: StandardSourceMap;
|
|
129
137
|
offset: {
|
|
130
138
|
column: number;
|
|
131
139
|
line: number;
|
|
132
140
|
};
|
|
141
|
+
url?: string;
|
|
133
142
|
}>;
|
|
134
143
|
version: 3;
|
|
135
144
|
}
|
|
136
|
-
|
|
145
|
+
interface SourceFetch {
|
|
146
|
+
(url: string, init?: RequestInit): Promise<Response>;
|
|
147
|
+
}
|
|
148
|
+
interface SourceMapRequestOptions {
|
|
149
|
+
allowUnsafeServerFetch?: boolean;
|
|
150
|
+
maxBundleSizeBytes?: number;
|
|
151
|
+
maxSourceMapSizeBytes?: number;
|
|
152
|
+
signal?: AbortSignal;
|
|
153
|
+
timeoutMs?: number;
|
|
154
|
+
}
|
|
137
155
|
interface SourceMap {
|
|
138
156
|
file?: string;
|
|
139
157
|
ignoredSourceIndices?: Set<number>;
|
|
@@ -142,7 +160,7 @@ interface SourceMap {
|
|
|
142
160
|
sections?: DecodedSourceMapSection[];
|
|
143
161
|
sourceRoot?: string;
|
|
144
162
|
sources: string[];
|
|
145
|
-
sourcesContent?: string
|
|
163
|
+
sourcesContent?: Array<string | null>;
|
|
146
164
|
version: 3;
|
|
147
165
|
}
|
|
148
166
|
interface StandardSourceMap {
|
|
@@ -152,12 +170,12 @@ interface StandardSourceMap {
|
|
|
152
170
|
names?: string[];
|
|
153
171
|
sourceRoot?: string;
|
|
154
172
|
sources: string[];
|
|
155
|
-
sourcesContent?: string
|
|
173
|
+
sourcesContent?: Array<string | null>;
|
|
156
174
|
version: 3;
|
|
157
175
|
x_google_ignoreList?: number[];
|
|
158
176
|
}
|
|
159
177
|
declare const getSourceFromSourceMap: (sourceMap: SourceMap, line: number, column: number) => StackFrame | null;
|
|
160
|
-
declare const getSourceMap: (file: string, useCache?: boolean, fetchFn?:
|
|
178
|
+
declare const getSourceMap: (file: string, useCache?: boolean, fetchFn?: SourceFetch, options?: SourceMapRequestOptions) => Promise<null | SourceMap>;
|
|
161
179
|
declare const symbolicateStack: (stack: StackFrame[], cache?: boolean, fetchFn?: (url: string) => Promise<Response>) => Promise<StackFrame[]>;
|
|
162
180
|
//#endregion
|
|
163
181
|
//#region src/source/get-display-name-from-source.d.ts
|
|
@@ -178,11 +196,11 @@ interface HooksNode {
|
|
|
178
196
|
subHooks: HooksNode[];
|
|
179
197
|
hookSource: HookSource | null;
|
|
180
198
|
}
|
|
181
|
-
|
|
199
|
+
type HooksTree = HooksNode[];
|
|
182
200
|
declare const getFiberHooks: (fiber: Fiber) => HooksTree;
|
|
183
201
|
//#endregion
|
|
184
202
|
//#region src/source/parse-hook-names.d.ts
|
|
185
203
|
interface HookNames extends Map<string, string> {}
|
|
186
204
|
declare const parseHookNames: (hooksTree: HooksTree, fetchFn?: (url: string) => Promise<Response>) => Promise<HookNames>;
|
|
187
205
|
//#endregion
|
|
188
|
-
export { type DecodedSourceMapSection, type FiberSource, type HookNames, type HookSource, type HooksNode, type HooksTree, type IndexSourceMap, type ParseOptions, type
|
|
206
|
+
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, getSourceFromSourceMap, getSourceMap, hasDebugStack, isSourceFile, normalizeFileName, parseHookNames, parseStack, symbolicateStack };
|
package/dist/source.js
CHANGED
|
@@ -6,19 +6,19 @@
|
|
|
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{
|
|
10
|
-
`),r=[];for(let e of n)if(/^\s*at\s+/.test(e)){let t=
|
|
11
|
-
`).filter(e=>!!e.match(
|
|
12
|
-
`).filter(e=>!e.match(
|
|
13
|
-
`,t));return{frames:
|
|
14
|
-
`,r-1)+1,i=t.slice(e,r).match(
|
|
9
|
+
import{C as e,S as t,a as n,h as r,m as i,r as a,v as o}from"./rdt-hook.js";import{M as s,O as c,a as l,m as u}from"./core2.js";const d=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,f=[`rsc://`,`file:///`,`webpack-internal://`,`webpack://`,`node:`,`turbopack://`,`metro://`,`/app-pages-browser/`,`/(app-pages-browser)/`],ee=[`rsc://`,`about://React/`],p=[`<anonymous>`,`eval`,``],m=/\.(cjs|cts|js|jsx|mdx|mjs|mts|ts|tsx)$/,te=/(\.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,ne=/^\?[\w~.-]+(?:=[^&#]*)?(?:&[\w~.-]+(?:=[^&#]*)?)*$/,re=/\(at [^)]+\)$/,ie=[`react_stack_bottom_frame`,`react-stack-bottom-frame`],ae=Error,oe=()=>ae.prepareStackTrace,h=e=>{ae.prepareStackTrace=e},se=/(^|@)\S+:\d+/,ce=/^\s*at .*(\S+:\d+|\(native\))/m,le=/^(eval@)?(\[native code\])?$/,g=(e,t)=>{if(t?.includeInElement!==!1){let n=e.split(`
|
|
10
|
+
`),r=[];for(let e of n)if(/^\s*at\s+/.test(e)){let t=de(e,void 0)[0];t&&r.push(t)}else if(/^\s*in\s+/.test(e)){let t=e.replace(/^\s*in\s+/,``).replace(/\s*\(at .*\)$/,``);r.push({functionName:t,source:e})}else if(e.match(se)){let t=fe(e,void 0)[0];t&&r.push(t)}return _(r,t)}return e.match(ce)?de(e,t):fe(e,t)},ue=e=>{if(!e.includes(`:`))return[e,void 0,void 0];let t=e.startsWith(`(`)&&/:\d+\)$/.test(e)?e.slice(1,-1):e,n=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(t);return n?[n[1],n[2]||void 0,n[3]||void 0]:[t,void 0,void 0]},_=(e,t)=>t&&t.slice!==null&&t.slice!==void 0?Array.isArray(t.slice)?e.slice(t.slice[0],t.slice[1]):e.slice(0,t.slice):e,de=(e,t)=>_(e.split(`
|
|
11
|
+
`).filter(e=>!!e.match(ce)),t).map(e=>{let t=e;t.includes(`(eval `)&&(t=t.replace(/eval code/g,`eval`).replace(/(\(eval at [^()]*)|(,.*$)/g,``));let n=t.replace(/^\s+/,``).replace(/\(eval code/g,`(`).replace(/^.*?\s+/,``),r=n.match(/ (\(.+\)$)/);n=r?n.replace(r[0],``):n;let i=ue(r?r[1]:n);return{functionName:r&&n||void 0,fileName:[`eval`,`<anonymous>`].includes(i[0])?void 0:i[0],lineNumber:i[1]?+i[1]:void 0,columnNumber:i[2]?+i[2]:void 0,source:t}}),fe=(e,t)=>_(e.split(`
|
|
12
|
+
`).filter(e=>!e.match(le)),t).map(e=>{let t=e;if(t.includes(` > eval`)&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,`:$1`)),!t.includes(`@`)&&!t.includes(`:`))return{functionName:t};{let e=/(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/,n=t.match(e),r=n&&n[1]?n[1]:void 0,i=ue(t.replace(e,``));return{functionName:r,fileName:i[0],lineNumber:i[1]?+i[1]:void 0,columnNumber:i[2]?+i[2]:void 0,source:t}}}),pe=new WeakMap,me=e=>ie.some(t=>e.includes(t)),he=e=>{let t=e.getFunctionName?.()??``;if(t)return t;let n=e.getTypeName?.()??``,r=e.getMethodName?.()??``;return n&&r?`${n}.${r}`:r},ge=e=>{let t=[];for(let n=1;n<e.length;n++){let r=e[n],i=he(r);if(me(i))return{frames:t,isTrusted:!0};if(r.isNative?.()){t.push({functionName:i||void 0});continue}let a=r.getScriptNameOrSourceURL?.()??``;!a&&r.isEval?.()&&(a=r.getEvalOrigin?.()??``),t.push({functionName:i&&i!==`<anonymous>`?i:void 0,fileName:a&&a!==`<anonymous>`?a:void 0,lineNumber:r.getLineNumber?.()??void 0,columnNumber:r.getColumnNumber?.()??void 0,enclosingLineNumber:r.getEnclosingLineNumber?.()??void 0,enclosingColumnNumber:r.getEnclosingColumnNumber?.()??void 0,source:` at ${r.toString()}`})}return{frames:t,isTrusted:!1}},_e=e=>{let t=-1;for(let n of ie)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}},v=e=>{let t=pe.get(e);if(t)return t;let n=null,r=(e,t)=>{n=ge(t);let r=`${e.name||`Error`}: ${e.message||``}`;for(let e of t)r+=`\n at ${e.toString()}`;return r},i=oe();h(r);let a;try{a=String(e.stack)}finally{h(i)}let o=n??_e(a);return pe.set(e,o),o};var ve=44,ye=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,be=new Uint8Array(64),xe=new Uint8Array(128);for(let e=0;e<ye.length;e++){let t=ye.charCodeAt(e);be[e]=t,xe[t]=e}function y(e,t){let n=0,r=0,i=0;do i=xe[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 Se(e,t){return e.pos>=t?!1:e.peek()!==ve}var Ce=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 we(e){let{length:t}=e,n=new Ce(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,Se(n,e)?(a=y(n,a),o=y(n,o),s=y(n,s),Se(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||Te(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function Te(e){e.sort(Ee)}function Ee(e,t){return e[0]-t[0]}const b=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,x=/^data:application\/json(?:;[^,]*)?,/i,De=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/,Oe=new Map,ke=new WeakMap;var Ae=class extends Error{};const je=new Map,S=new WeakMap,C=(e,t,n,r,i)=>{if(n<0||n>=e.length)return null;let a=e[n];if(!a||a.length===0)return null;let o=null,s=0,c=a.length-1;for(;s<=c;){let e=s+c>>1;a[e][0]<=r?(o=a[e],s=e+1):c=e-1}if(!o||o.length<4)return null;let[,l,u,d]=o;if(l===void 0||u===void 0||d===void 0)return null;let f=t[l];return f?{columnNumber:d,fileName:f,lineNumber:u+1,isIgnoreListed:i?.has(l)??!1}:null},w=(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 C(i.map.mappings,i.map.sources,a,o,i.map.ignoredSourceIndices)}return C(e.mappings,e.sources,t-1,n,e.ignoredSourceIndices)},Me=(e,t)=>{if(x.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}}},Ne=(e,t)=>{let n,r=t.length;for(;r>0&&!n;){let e=t.lastIndexOf(`
|
|
14
|
+
`,r-1)+1,i=t.slice(e,r).match(De);i&&(n=i[1]||i[2]),r=e-1}return n?Me(n,e):null},T=e=>typeof e==`object`&&!!e,Pe=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`),Fe=e=>Array.isArray(e)&&e.every(e=>typeof e==`string`||e===null),Ie=e=>e===void 0||Array.isArray(e)&&e.every(e=>Number.isInteger(e)&&e>=0),E=e=>{if(!T(e)||e.version!==3||typeof e.mappings!=`string`||e.file!==void 0&&typeof e.file!=`string`||e.names!==void 0&&!Pe(e.names)||e.sourceRoot!==void 0&&typeof e.sourceRoot!=`string`||e.sourcesContent!==void 0&&!Fe(e.sourcesContent)||!Ie(e.ignoreList)||!Ie(e.x_google_ignoreList)||!Pe(e.sources)||e.sourcesContent&&e.sourcesContent.length!==e.sources.length)return!1;let t=e.sources.length;return[...e.ignoreList??[],...e.x_google_ignoreList??[]].every(e=>e<t)},Le=e=>!T(e)||e.version!==3||!Array.isArray(e.sections)?!1:e.sections.every(e=>!T(e)||!T(e.offset)?!1:E(e.map)!==(typeof e.url==`string`&&e.url.length>0)&&typeof e.offset.column==`number`&&Number.isInteger(e.offset.column)&&e.offset.column>=0&&typeof e.offset.line==`number`&&Number.isInteger(e.offset.line)&&e.offset.line>=0),Re=e=>{let t=e.ignoreList??e.x_google_ignoreList;return Array.isArray(t)&&t.length>0?new Set(t):void 0},ze=(e,t,n)=>{if(!e||b.test(t)||t.startsWith(`/`))return t;let r=e.endsWith(`/`)?e:`${e}/`,i=t.replace(/^\.\//,``);try{let e=b.test(r)?r:new URL(r,n).toString();return new URL(i,e).toString()}catch{let e=`${r}${i}`.split(`/`),t=[];for(let n of e)n===`..`?t.pop():n!==`.`&&t.push(n);return t.join(`/`)}},Be=(e,t)=>e.sources.map(n=>ze(e.sourceRoot,n,t)),Ve=(e,t)=>{try{return{file:e.file,ignoredSourceIndices:Re(e),mappings:we(e.mappings),names:e.names,sourceRoot:e.sourceRoot,sources:Be(e,t),sourcesContent:e.sourcesContent,version:3}}catch{return null}},He=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?Me(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:Re(s),mappings:we(s.mappings),sources:Be(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}},Ue=e=>{if(!e)return!1;let t=e.trim();if(!t)return!1;let n=t.match(b);if(!n)return!0;let r=n[0].toLowerCase();return r===`http:`||r===`https:`},We=()=>typeof window>`u`&&typeof process<`u`&&typeof process.versions?.node==`string`,Ge=e=>{try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&!t.username&&!t.password}catch{return!1}},Ke=(e,t)=>{try{return new URL(e).origin===new URL(t).origin}catch{return!1}},qe=e=>e===408||e===425||e===429||e>=500,Je=e=>{if(e.ok)return!0;if(qe(e.status))throw new Ae;return!1},Ye=e=>{if(!e.signal&&e.timeoutMs===void 0)return{cleanup:()=>{}};let n=new AbortController,r=()=>n.abort(e.signal?.reason);e.signal?.aborted?r():e.signal?.addEventListener(`abort`,r,{once:!0});let i=e.timeoutMs!==void 0&&e.timeoutMs>=0?setTimeout(()=>n.abort(new t(`Source map request timed out`)),e.timeoutMs):void 0;return{cleanup:()=>{i!==void 0&&clearTimeout(i),e.signal?.removeEventListener(`abort`,r)},signal:n.signal}},Xe=async(e,t)=>{let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t)return null;if(!e.body)return``;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()}},Ze=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))},Qe=(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`)?Ze(i):decodeURIComponent(i);return e===null||new TextEncoder().encode(e).byteLength>t?null:JSON.parse(e)}catch{return null}},$e=async(e,t,n,r,i)=>{if(x.test(e))return Qe(e,r);let a=await t(e,{redirect:i?`error`:`follow`,signal:n});if(!Je(a))return null;let o=await Xe(a,r);if(o===null)return null;try{return JSON.parse(o)}catch{return null}},et=async(e,t,n={})=>{if(!Ue(e))return null;let r=We();if(r&&(!t&&!n.allowUnsafeServerFetch||!Ge(e)))return null;let i=t??(typeof globalThis.fetch==`function`?globalThis.fetch.bind(globalThis):void 0);if(!i)return null;let a=n.maxBundleSizeBytes??26214400,o=n.maxSourceMapSizeBytes??104857600;if(a<0||o<0)return null;let s=Ye(n);try{let t=await i(e,{redirect:r?`error`:`follow`,signal:s.signal});if(!Je(t))return null;let n=await Xe(t,a);if(!n)return null;let c=Ne(e,n);if(!c||!Ue(c)&&!x.test(c)||r&&!x.test(c)&&!Ke(e,c))return null;let l=await $e(c,i,s.signal,o,r);return E(l)?Ve(l,c):Le(l)?He(l,c,async t=>{if(r&&!x.test(t)&&!Ke(e,t))return null;let n=await $e(t,i,s.signal,o,r);return E(n)?n:null}):null}finally{s.cleanup()}},tt=e=>{if(!e)return Oe;let t=ke.get(e);return t||(t=new Map,ke.set(e,t)),t},nt=e=>{if(!e)return je;let t=S.get(e);return t||(t=new Map,S.set(e,t)),t},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??``}`,D=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=et(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},O=async(e,t=!0,n)=>Promise.all(e.map(async e=>{if(!e.fileName)return e;let r=await D(e.fileName,t,n);if(!r||typeof e.lineNumber!=`number`||typeof e.columnNumber!=`number`)return e;let i=w(r,e.lineNumber,e.columnNumber);return i?{...e,source:i.fileName&&e.source?e.source.replace(e.fileName,i.fileName):e.source,fileName:i.fileName,lineNumber:i.lineNumber,columnNumber:i.columnNumber,isIgnoreListed:i.isIgnoreListed,isSymbolicated:!0}:e})),k=e=>e._debugStack instanceof Error&&typeof e._debugStack?.stack==`string`,it=e=>`tag`in e&&typeof e.tag==`number`,at=e=>e._debugOwner??void 0,ot=e=>{let t=null;if(c(e,n=>{if(n===e)return!1;let r=n._debugOwner;return(r===e||e.alternate!==null&&r===e.alternate)&&n._debugStack instanceof Error&&(t=n._debugStack,!0)}),!t)return null;let{frames:n,isTrusted:r}=v(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},st=()=>{let e=n(),t=new Set([...a,...e.renderers.values()]),r=[],i=new Set;for(let e of t){let t=e.currentDispatcherRef;!t||i.has(t)||(i.add(t),r.push(t))}return r},ct=()=>{let e=[];for(let t of st()){let n=`H`in t?t.H:t.current;e.push({currentDispatcherRef:t,value:n}),`H`in t?t.H=null:t.current=null}return e},lt=e=>{for(let{currentDispatcherRef:t,value:n}of e)`H`in t?t.H=n:t.current=n},A=e=>`\n in ${e}`,ut=(e,t)=>{let n=A(e);return t&&(n+=` (at ${t})`),n};let j=!1;const M=new WeakMap,N=(e,t)=>{if(!e||j)return``;let n=M.get(e);if(n!==void 0)return n;let r=oe();h(void 0),j=!0;let i=ct(),a=console.error,o=console.warn;console.error=()=>{},console.warn=()=>{};try{let n={DetermineComponentFrameRoot(){let n;try{if(t){let t=function(){throw Error()};if(Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){n=e}Reflect.construct(e,[],t)}else{try{Function.prototype.apply.call(t,void 0,[])}catch(e){n=e}Function.prototype.apply.call(e,t.prototype,[])}}else{try{throw Error()}catch(e){n=e}let t=Function.prototype.apply.call(e,void 0,[]);typeof t==`object`&&t&&`catch`in t&&typeof t.catch==`function`&&t.catch(()=>void 0)}}catch(e){if(e instanceof Error&&n instanceof Error&&typeof e.stack==`string`)return[e.stack,n.stack]}return[null,null]}};Object.defineProperty(n.DetermineComponentFrameRoot,"displayName",{value:`DetermineComponentFrameRoot`}),Object.getOwnPropertyDescriptor(n.DetermineComponentFrameRoot,`name`)?.configurable&&Object.defineProperty(n.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});let[r,i]=n.DetermineComponentFrameRoot();if(r&&i){let t=r.split(`
|
|
15
15
|
`),n=i.split(`
|
|
16
|
-
`),a=0,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=l(e);return r&&n.includes(`<anonymous>`)&&(n=n.replace(`<anonymous>`,r)),
|
|
17
|
-
`)&&(
|
|
18
|
-
`);
|
|
19
|
-
`,
|
|
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=l(e);return r&&n.includes(`<anonymous>`)&&(n=n.replace(`<anonymous>`,r)),M.set(e,n),n}while(a>=1&&o>=0);break}}}finally{j=!1,h(r),lt(i),console.error=a,console.warn=o}let s=e?l(e):``,c=s?A(s):``;return M.set(e,c),c},dt=(e,t)=>{let n=``,r=s(e);switch(e.tag){case r.ActivityComponent:n=A(`Activity`);break;case r.ClassComponent:n=N(e.type,!0);break;case r.ForwardRef:n=N(u(e.type)??e.type,!1);break;case r.FunctionComponent:case r.SimpleMemoComponent:n=N(e.type,!1);break;case r.HostComponent:case r.HostHoistable:case r.HostSingleton:typeof e.type==`string`&&(n=A(e.type));break;case r.LazyComponent:n=A(`Lazy`);break;case r.SuspenseComponent:n=e.child!==t&&t!==null?A(`Suspense Fallback`):A(`Suspense`);break;case r.SuspenseListComponent:n=A(`SuspenseList`);break;case r.ViewTransitionComponent:n=A(`ViewTransition`);break;default:return``}return n},ft=e=>{try{let t=``,n=e,r=null;do{t+=dt(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+=ut(r.name,r.env))}r=n,n=n.return}while(n);return t}catch(e){return e instanceof Error?`\nError generating stack: ${e.message}\n${e.stack}`:``}},pt=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(t.indexOf(`react_stack_bottom_frame`),t.indexOf(`react-stack-bottom-frame`));if(r!==-1&&(r=t.lastIndexOf(`
|
|
19
|
+
`,r)),r!==-1)t=t.slice(0,r);else return``;return t},mt=e=>!!(e.functionName&&e.fileName&&vt(e.fileName)),ht=(e,t)=>e.fileName===t.fileName&&e.lineNumber===t.lineNumber&&e.columnNumber===t.columnNumber,gt=e=>{let t=new Map;for(let n of e)for(let e of n.stackFrames){if(!mt(e))continue;let n=e.functionName,r=t.get(n)??[];r.some(t=>ht(t,e))||(r.push(e),t.set(n,r))}return t},_t=(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})`)}},vt=e=>ee.some(t=>e.startsWith(t)),yt=e=>!e.isServer&&e.fileName&&vt(e.fileName)?{...e,isServer:!0}:e,bt=e=>{let t=[],n=e;for(;n;)if(it(n)){let e=n;if(n=at(e),n&&k(e)){let{frames:n,isTrusted:r}=v(e._debugStack);if(r)for(let e of n)t.push(yt(e))}}else{let e=n;if(n=e.owner,n&&e.debugStack instanceof Error)for(let n of v(e.debugStack).frames)t.push({...n,isServer:!0})}return t},xt=e=>{let t=[];return c(e,e=>{if(!k(e))return;let n=typeof e.type==`string`?e.type:l(e.type)||`<anonymous>`;t.push({componentName:n,stackFrames:g(pt(e._debugStack?.stack))})},!0),t},P=async(e,t=!0,n)=>{let r=xt(e),i=g(ft(e)),a=gt(r),o=new Map,s=i.map(e=>(e.source?.includes(`(at Server)`)??!1)||e.source!==null&&e.source!==void 0&&re.test(e.source)?_t(e,a,o):e).filter((e,t,n)=>{if(t===0)return!0;let r=n[t-1];return e.functionName!==r.functionName});return O(s,t,n)},St=e=>!!e.fileName&&!e.isIgnoreListed,Ct=async(e,t=!0,n)=>{let r=bt(e);if(r.length>0){let i=ot(e)??{};i.functionName=l(e.type)??i.functionName;let a=await O([i,...r],t,n);if(a.some((e,t)=>t>0&&St(e)))return a}return P(e,t,n)},wt=e=>{let t=e._debugSource;return t?typeof t==`object`&&!!t&&`fileName`in t&&typeof t.fileName==`string`&&`lineNumber`in t&&typeof t.lineNumber==`number`:!1},Tt=e=>e.fileName?{fileName:e.fileName,lineNumber:e.lineNumber,columnNumber:e.columnNumber,functionName:e.functionName}:null,Et=e=>{if(!k(e))return null;let{frames:t,isTrusted:n}=v(e._debugStack);if(!n)return null;for(let e of t)if(e.fileName)return e;return null},Dt=async(e,t=!0,n)=>{if(wt(e))return e._debugSource||null;let r=Et(e)??ot(e);if(r){let[e]=await O([r],t,n),i=Tt(e);if(i)return i}let i=await P(e,t,n);for(let e of i)if(e.fileName)return Tt(e);return null},Ot=e=>e.split(`/`).filter(Boolean).length,kt=e=>e.split(`/`).filter(Boolean)[0]??null,At=e=>{let t=e.indexOf(`/`,1);if(t===-1)return e;let n=e.slice(0,t);if(Ot(n)!==1)return e;let r=e.slice(t);if(!m.test(r)||Ot(r)<2)return e;let i=kt(r);return!i||i.startsWith(`@`)||i.length>4?e:r},jt=e=>{if(!e||p.some(t=>t===e))return``;let t=e,n=/^[a-zA-Z]:[\\/]/.test(t),r=t.startsWith(`http://`)||t.startsWith(`https://`);if(r)try{t=new URL(t).pathname}catch{}if(r&&(t=At(t)),t.startsWith(`about://React/`)){let e=t.slice(14),n=e.indexOf(`/`),r=e.indexOf(`:`);t=n!==-1&&(r===-1||n<r)?e.slice(n+1):e}let i=!0;for(;i;){i=!1;for(let e of f)if(t.startsWith(e)){t=t.slice(e.length),e===`file:///`&&(t=`/${t.replace(/^\/+/,``)}`),i=!0;break}}if(!n&&d.test(t)){let e=t.match(d);e&&(t=t.slice(e[0].length))}if(t.startsWith(`//`)){let e=t.indexOf(`/`,2);t=e===-1?``:t.slice(e)}let a=t.indexOf(`?`);if(a!==-1){let e=t.slice(a);ne.test(e)&&(t=t.slice(0,a))}return t},Mt=e=>{let t=jt(e);return!(!t||!m.test(t)||te.test(t))},Nt=(e,t)=>{let n=e.split(`
|
|
20
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},dt=async(e,t=!0,n)=>{let r=(await P(e,t,n)).filter(e=>e.fileName)[0];if(!r?.fileName)return l(e.type);let i=await T(r.fileName,t,n);if(!i)return l(e.type);let a=null;if(typeof r.lineNumber==`number`&&typeof r.columnNumber==`number`&&(a=w(i,r.lineNumber,r.columnNumber)),!a?.fileName||!a.lineNumber||!i.sourcesContent)return l(e.type);let o=i.sources.indexOf(a.fileName);if(o===-1||!i.sourcesContent[o])return l(e.type);let s=i.sourcesContent[o];return ut(s,a.lineNumber)||l(e.type)},R=Symbol.for(`react.context`),ft=Symbol.for(`react.memo_cache_sentinel`);let z=[],B=null,V=null,H=null,U=null,W=0,G=null;const K=Error("Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render."),q=e=>h(e.stack||``,{includeInElement:!1}),J=()=>{let e=H;return e!==null&&(H=e.next),e},Y=e=>{if(V===null)return e._currentValue;if(U===null)throw Error(`Context reads do not line up with context dependencies.`);if(Object.prototype.hasOwnProperty.call(U,`memoizedValue`)){let e=U.memoizedValue;return U=U.next,e}return e._currentValue},pt=()=>{let n=e(),r=[...t,...n.renderers.values()];for(let e of r){let t=e.currentDispatcherRef;if(t&&typeof t==`object`)return t}return null},mt=e=>`H`in e?e.H:e.current,ht=(e,t)=>{`H`in e?e.H=t:e.current=t},X=(e,t,n,r=null)=>{z.push({displayName:r,primitive:e,stackError:Error(),value:t,dispatcherHookName:n})},gt=e=>{if(typeof e==`object`&&e){let t=e;if(typeof t.then==`function`){let e=G!==null&&W<G.length?G[W++]:t;switch(e.status){case`fulfilled`:return X(`Promise`,e.value,`Use`),e.value;case`rejected`:throw e.reason}throw X(`Unresolved`,e,`Use`),K}if(t.$$typeof===R&&`_currentValue`in t){let e=t,n=Y(e);return X(`Context (use)`,n,`Use`,e.displayName||`Context`),n}}throw Error(`An unsupported type was passed to use(): `+String(e))},_t=e=>{let t=Y(e);return X(`Context`,t,`Context`,e.displayName||null),t},vt=e=>{let t=J(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return X(`State`,n,`State`),[n,()=>{}]},yt=(e,t,n)=>{let r=J(),i=r===null?n===void 0?t:n(t):r.memoizedState;return X(`Reducer`,i,`Reducer`),[i,()=>{}]},bt=e=>{let t=J(),n=t===null?{current:e}:t.memoizedState;return X(`Ref`,n.current,`Ref`),n},xt=()=>{let e=J();return X(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},St=e=>{J(),X(`LayoutEffect`,e,`LayoutEffect`)},Ct=e=>{J(),X(`InsertionEffect`,e,`InsertionEffect`)},wt=e=>{J(),X(`Effect`,e,`Effect`)},Tt=e=>{J();let t;typeof e==`object`&&e&&`current`in e&&(t=e.current),X(`ImperativeHandle`,t,`ImperativeHandle`)},Et=(e,t)=>{X(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},Dt=e=>{let t=J();return X(`Callback`,t===null?e:t.memoizedState[0],`Callback`),e},Ot=e=>{let t=J(),n=t===null?e():t.memoizedState[0];return X(`Memo`,n,`Memo`),n},kt=(e,t)=>{let n=J();J();let r=n===null?t():n.memoizedState;return X(`SyncExternalStore`,r,`SyncExternalStore`),r},At=()=>{let e=J();J();let t=e!==null&&e.memoizedState;return X(`Transition`,t,`Transition`),[t,()=>{}]},jt=e=>{let t=J(),n=t===null?e:t.memoizedState;return X(`DeferredValue`,n,`DeferredValue`),n},Mt=()=>{let e=J(),t=e===null?``:e.memoizedState;return X(`Id`,t,`Id`),t},Nt=e=>{let t=V;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},Pt=e=>{let t=J(),n=t===null?e:t.memoizedState;return X(`Optimistic`,n,`Optimistic`),[n,()=>{}]},Ft=(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=K,n=e}}else n=t}else n=t;return{value:n,error:r}},It=e=>(t,n)=>{let r=J();J(),J();let i=Error(),{value:a,error:o}=Ft(r,n);if(z.push({displayName:null,primitive:e,stackError:i,value:a,dispatcherHookName:e}),o!==null)throw o;return[a,()=>{},!1]},Lt=It(`ActionState`),Z={readContext:Y,use:gt,useCallback:Dt,useContext:_t,useEffect:wt,useImperativeHandle:Tt,useLayoutEffect:St,useInsertionEffect:Ct,useMemo:Ot,useReducer:yt,useRef:bt,useState:vt,useDebugValue:Et,useDeferredValue:jt,useTransition:At,useSyncExternalStore:kt,useId:Mt,useHostTransitionStatus:()=>{let e=Y({_currentValue:null});return X(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:It(`FormState`),useActionState:Lt,useOptimistic:Pt,useMemoCache:Nt,useCacheRefresh:xt,useEffectEvent:e=>(J(),X(`EffectEvent`,e,`EffectEvent`),e)},Rt=typeof Proxy>`u`?Z:new Proxy(Z,{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}}),zt=()=>{if(B!==null)return B;let e=new Map,t;try{if(Z.useContext({_currentValue:null}),Z.useState(null),Z.useReducer(e=>e,null),Z.useRef(null),typeof Z.useCacheRefresh==`function`&&Z.useCacheRefresh(),Z.useLayoutEffect(()=>{}),Z.useInsertionEffect(()=>{}),Z.useEffect(()=>{}),Z.useImperativeHandle(void 0,()=>null),Z.useDebugValue(null),Z.useCallback(()=>{}),Z.useTransition(),Z.useSyncExternalStore(()=>()=>{},()=>null,()=>null),Z.useDeferredValue(null),Z.useMemo(()=>null),Z.useOptimistic(null,e=>e),Z.useFormState(e=>e,null),Z.useActionState(e=>e,null),Z.useHostTransitionStatus(),typeof Z.useMemoCache==`function`&&Z.useMemoCache(0),typeof Z.use==`function`){Z.use({$$typeof:R,_currentValue:null}),Z.use({then(){},status:`fulfilled`,value:null});try{Z.use({then(){}})}catch{}}Z.useId(),typeof Z.useEffectEvent==`function`&&Z.useEffectEvent(()=>{})}finally{t=z,z=[]}for(let n of t)e.set(n.primitive,q(n.stackError));return B=e,B};let Bt=0;const Q=(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},Vt=(e,t)=>{let n=Q(t,e,Bt);if(n!==-1)return n;for(let r=0;r<e.length&&r<5;r++)if(n=Q(t,e,r),n!==-1)return Bt=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)},Ht=(e,t)=>{let n=$(e);return t===`HostTransitionStatus`?n===t||n===`FormStatus`:n===t},Ut=(e,t)=>{let n=zt().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&&Ht(e[r].functionName,t.dispatcherHookName)&&r++,r<e.length-1&&Ht(e[r].functionName,t.dispatcherHookName)&&r++,r;return-1},Wt=(e,t)=>{let n=q(t.stackError),r=Vt(e,n),i=Ut(n,t);return r===-1||i===-1||r-i<2?i===-1?[null,null]:[n[i-1]??null,null]:[n[i-1]??null,n.slice(i,r-1)]},Gt=new Set([`Context`,`Context (use)`,`DebugValue`,`Promise`,`Unresolved`,`HostTransitionStatus`]),Kt=(e,t)=>{let n=[],r=null,i=n,a=0,o=[];for(let s of t){let[t,c]=Wt(e,s),l=s.displayName;if(l===null&&t!==null&&(l=$(t.functionName)||$(s.dispatcherHookName)),c!==null){let e=0;if(r!==null){for(;e<c.length&&e<r.length&&c[c.length-e-1].source===r[r.length-e-1].source;)e++;for(let t=r.length-1;t>e;t--)i=o.pop()??n}for(let t=c.length-e-1;t>=1;t--){let e=[],n=c[t],r={id:null,isStateEditable:!1,name:$(c[t-1].functionName),value:void 0,subHooks:e,hookSource:{lineNumber:n.lineNumber??null,columnNumber:n.columnNumber??null,functionName:n.functionName??null,fileName:n.fileName??null}};i.push(r),o.push(i),i=e}r=c}let{primitive:u}=s,d=Gt.has(u)?null:a++,f=u===`Reducer`||u===`State`,ee=l||u,p=c?.[0],m={lineNumber:p?.lineNumber??null,columnNumber:p?.columnNumber??null,functionName:p?.functionName??null,fileName:p?.fileName??null};i.push({id:d,isStateEditable:f,name:ee,value:s.value,subHooks:[],hookSource:m})}return qt(n,null),n},qt=(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)):qt(r.subHooks,r)}t!==null&&(n.length===1?t.value=n[0].value:n.length>1&&(t.value=n.map(({value:e})=>e)))},Jt=(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}},Yt=e=>{e.forEach((e,t)=>{t._currentValue=e})},Xt=e=>{if(e===K)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},Zt=(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},Qt=()=>{let e={};for(let t in console)try{e[t]=console[t],console[t]=()=>{}}catch{}return e},$t=e=>{for(let t in e)try{console[t]=e[t]}catch{}},en=(e,t)=>{let n=mt(e);ht(e,Rt);let r=[],i;try{i=Error(),t()}catch(e){Xt(e)}finally{r=z,z=[],ht(e,n)}let a=i===void 0?[]:q(i);return Kt(a,r)},tn=()=>{let e=pt();if(!e)throw Error(`No React renderer found. Make sure React is loaded and bippy's hook is installed.`);return e},nn=e=>{if(Object.prototype.hasOwnProperty.call(e,`dependencies`)){let t=e.dependencies;U=t===null?null:t.firstContext}else if(Object.prototype.hasOwnProperty.call(e,`dependencies_old`)){let t=e.dependencies_old;U=t===null?null:t.firstContext}else if(Object.prototype.hasOwnProperty.call(e,`dependencies_new`)){let t=e.dependencies_new;U=t===null?null:t.firstContext}else if(Object.prototype.hasOwnProperty.call(e,`contextDependencies`)){let t=e.contextDependencies;U=t===null?null:t.first}else throw Error(`Unsupported React version.`)},rn=e=>{let t=tn();if(e.tag!==0&&e.tag!==15&&e.tag!==11)throw Error(`Unknown Fiber. Needs to be a function component to inspect hooks.`);zt(),H=e.memoizedState,V=e;let n=e.dependencies&&e.dependencies._debugThenableState,r=n?n.thenables||n:null;G=Array.isArray(r)?r:null,W=0,nn(e);let i=e.type,a=e.memoizedProps;i!==e.elementType&&(a=Zt(i,a));let o=Qt(),s=new Map;try{return U!==null&&!Object.prototype.hasOwnProperty.call(U,`memoizedValue`)&&Jt(s,e),e.tag===11?en(t,()=>{i.render(a,e.ref)}):en(t,()=>{i(a)})}finally{V=null,H=null,U=null,G=null,W=0,Yt(s),$t(o)}},an=new Set([`Effect`,`LayoutEffect`,`InsertionEffect`,`ImperativeHandle`,`DebugValue`]),on=/(?:const|let|var)\s+((?:\[[\s\S]*?\]|\w+))\s*=\s*(?:[\w$.]+\.)*use[A-Z]\w*\s*(?:<[\s\S]*?>)?\s*\(/g,sn=e=>`${e.fileName??``}:${e.lineNumber??0}:${e.columnNumber??0}`,cn=e=>{let t=[],n=e=>{for(let r of e)an.has(r.name)||(t.push(r),r.subHooks.length>0&&n(r.subHooks))};return n(e),t},ln=(e,t,n)=>{if(!t)return null;let r=e.indexOf(n);return r===-1?null:t[r]??null},un=(e,t)=>{let n=ln(e.sources,e.sourcesContent,t);if(n)return n;if(e.sections)for(let n of e.sections){let e=ln(n.map.sources,n.map.sourcesContent,t);if(e)return e}return null},dn=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},fn=(e,t,n)=>{let r=e.split(`
|
|
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},Pt=async(e,t=!0,n)=>{let r=(await P(e,t,n)).filter(e=>e.fileName)[0];if(!r?.fileName)return l(e.type);let i=await D(r.fileName,t,n);if(!i)return l(e.type);let a=null;if(typeof r.lineNumber==`number`&&typeof r.columnNumber==`number`&&(a=w(i,r.lineNumber,r.columnNumber)),!a?.fileName||!a.lineNumber||!i.sourcesContent)return l(e.type);let o=i.sources.indexOf(a.fileName);if(o===-1||!i.sourcesContent[o])return l(e.type);let s=i.sourcesContent[o];return Nt(s,a.lineNumber)||l(e.type)},Ft=Symbol.for(`react.context`),It=Symbol.for(`react.memo_cache_sentinel`);let F=[],I=null,L=null,R=null,z=null,B=0,V=null;const H=Error("Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render."),U=e=>g(e.stack||``,{includeInElement:!1}),W=()=>{let e=R;return e!==null&&(R=e.next),e},G=e=>typeof e==`object`&&!!e,K=e=>G(e)&&typeof e.then==`function`,Lt=e=>G(e)&&`current`in e,Rt=e=>G(e)&&`_currentValue`in e,q=e=>G(e)&&`context`in e&&`next`in e,zt=e=>G(e)&&typeof e.render==`function`,J=e=>{if(L===null)return e._currentValue;if(z===null)throw new r(`Context reads do not line up with context dependencies.`);if(Object.hasOwn(z,`memoizedValue`)){let e=z.memoizedValue;return z=z.next,e}return e._currentValue},Bt=()=>{let e=n(),t=[...a,...e.renderers.values()];for(let e of t){let t=e.currentDispatcherRef;if(t)return t}return null},Vt=e=>`H`in e?e.H:e.current,Ht=(e,t)=>{`H`in e?e.H=t:e.current=t},Y=(e,t,n,r=null)=>{F.push({displayName:r,primitive:e,stackError:Error(),value:t,dispatcherHookName:n})},Ut=e=>{if(G(e)){if(K(e)){let t=V!==null&&B<V.length?V[B++]:e,n=K(t)?t:e;switch(n.status){case`fulfilled`:return Y(`Promise`,n.value,`Use`),n.value;case`rejected`:throw n.reason}throw Y(`Unresolved`,n,`Use`),H}if(e.$$typeof===Ft&&`_currentValue`in e){let t={_currentValue:e._currentValue,displayName:typeof e.displayName==`string`?e.displayName:void 0},n=J(t);return Y(`Context (use)`,n,`Use`,t.displayName??`Context`),n}}throw new r(`An unsupported type was passed to use(): `+String(e))},Wt=e=>{let t=J(e);return Y(`Context`,t,`Context`,e.displayName??null),t},Gt=e=>{let t=W(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return Y(`State`,n,`State`),[n,()=>{}]},Kt=(e,t,n)=>{let r=W(),i=r===null?n===void 0?t:n(t):r.memoizedState;return Y(`Reducer`,i,`Reducer`),[i,()=>{}]},qt=e=>{let t=W(),n=Lt(t?.memoizedState)?t.memoizedState:{current:e};return Y(`Ref`,n.current,`Ref`),n},Jt=()=>{let e=W();return Y(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},Yt=e=>{W(),Y(`LayoutEffect`,e,`LayoutEffect`)},Xt=e=>{W(),Y(`InsertionEffect`,e,`InsertionEffect`)},Zt=e=>{W(),Y(`Effect`,e,`Effect`)},Qt=e=>{W();let t;typeof e==`object`&&e&&`current`in e&&(t=e.current),Y(`ImperativeHandle`,t,`ImperativeHandle`)},$t=(e,t)=>{Y(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},en=e=>{let t=W();return Y(`Callback`,Array.isArray(t?.memoizedState)?t.memoizedState[0]:e,`Callback`),e},tn=e=>{let t=W(),n=Array.isArray(t?.memoizedState)?t.memoizedState[0]:e();return Y(`Memo`,n,`Memo`),n},nn=(e,t)=>{let n=W();W();let r=n===null?t():n.memoizedState;return Y(`SyncExternalStore`,r,`SyncExternalStore`),r},rn=()=>{let e=W();W();let t=e?.memoizedState===!0;return Y(`Transition`,t,`Transition`),[t,()=>{}]},an=e=>{let t=W(),n=t===null?e:t.memoizedState;return Y(`DeferredValue`,n,`DeferredValue`),n},on=()=>{let e=W(),t=typeof e?.memoizedState==`string`?e.memoizedState:``;return Y(`Id`,t,`Id`),t},sn=e=>{let t=L;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},()=>It)),n.index++,r},cn=e=>{let t=W(),n=t===null?e:t.memoizedState;return Y(`Optimistic`,n,`Optimistic`),[n,()=>{}]},ln=(e,t)=>{let n,r=null;if(e!==null){let t=e.memoizedState;if(K(t))switch(t.status){case`fulfilled`:n=t.value;break;case`rejected`:r=t.reason;break;default:r=H,n=t}else n=t}else n=t;return{value:n,error:r}},un=e=>(t,n)=>{let r=W();W(),W();let i=Error(),{value:a,error:o}=ln(r,n);if(F.push({displayName:null,primitive:e,stackError:i,value:a,dispatcherHookName:e}),o!==null)throw o;return[a,()=>{},!1]},dn=un(`ActionState`),X={readContext:J,use:Ut,useCallback:en,useContext:Wt,useEffect:Zt,useImperativeHandle:Qt,useLayoutEffect:Yt,useInsertionEffect:Xt,useMemo:tn,useReducer:Kt,useRef:qt,useState:Gt,useDebugValue:$t,useDeferredValue:an,useTransition:rn,useSyncExternalStore:nn,useId:on,useHostTransitionStatus:()=>{let e=J({_currentValue:null});return Y(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:un(`FormState`),useActionState:dn,useOptimistic:cn,useMemoCache:sn,useCacheRefresh:Jt,useEffectEvent:e=>(W(),Y(`EffectEvent`,e,`EffectEvent`),e)},fn=typeof Proxy>`u`?X:new Proxy(X,{get(t,n){if(Object.hasOwn(t,n))return Reflect.get(t,n);throw new e(`Missing method in Dispatcher: `+n)}}),pn=()=>{if(I!==null)return I;let e=new Map,t;try{if(X.useContext({_currentValue:null}),X.useState(null),X.useReducer(e=>e,null),X.useRef(null),typeof X.useCacheRefresh==`function`&&X.useCacheRefresh(),X.useLayoutEffect(()=>{}),X.useInsertionEffect(()=>{}),X.useEffect(()=>{}),X.useImperativeHandle(void 0),X.useDebugValue(null),X.useCallback(()=>{}),X.useTransition(),X.useSyncExternalStore(()=>()=>{},()=>null),X.useDeferredValue(null),X.useMemo(()=>null),X.useOptimistic(null),X.useFormState(e=>e,null),X.useActionState(e=>e,null),X.useHostTransitionStatus(),typeof X.useMemoCache==`function`&&X.useMemoCache(0),typeof X.use==`function`){X.use({$$typeof:Ft,_currentValue:null});let e=Promise.resolve(null);Reflect.set(e,`status`,`fulfilled`),Reflect.set(e,`value`,null),X.use(e);try{X.use(new Promise(()=>{}))}catch{}}X.useId(),typeof X.useEffectEvent==`function`&&X.useEffectEvent(()=>{})}finally{t=F,F=[]}for(let n of t)e.set(n.primitive,U(n.stackError));return I=e,I};let mn=0;const hn=(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},gn=(e,t)=>{let n=hn(t,e,mn);if(n!==-1)return n;for(let r=0;r<e.length&&r<5;r++)if(n=hn(t,e,r),n!==-1)return mn=r,n;return-1},Z=e=>{if(!e)return``;let t=e.lastIndexOf(`[as `);if(t!==-1)return Z(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)},_n=(e,t)=>{let n=Z(e);return t===`HostTransitionStatus`?n===t||n===`FormStatus`:n===t},vn=(e,t)=>{let n=pn().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&&_n(e[r].functionName,t.dispatcherHookName)&&r++,r<e.length-1&&_n(e[r].functionName,t.dispatcherHookName)&&r++,r;return-1},yn=(e,t)=>{let n=U(t.stackError),r=gn(e,n),i=vn(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)]},bn=new Set([`Context`,`Context (use)`,`DebugValue`,`Promise`,`Unresolved`,`HostTransitionStatus`]),xn=(e,t)=>{let n=[],r=null,i=n,a=0,o=[];for(let s of t){let[t,c]=yn(e,s),l=s.displayName;if(l===null&&t!==null&&(l=Z(t.functionName)||Z(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:Z(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=bn.has(u)?null:a++,f=u===`Reducer`||u===`State`,ee=l||u,p=c?.[0],m={lineNumber:p?.lineNumber??null,columnNumber:p?.columnNumber??null,functionName:p?.functionName??null,fileName:p?.fileName??null};i.push({id:d,isStateEditable:f,name:ee,value:s.value,subHooks:[],hookSource:m})}return Sn(n,null),n},Sn=(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)):Sn(r.subHooks,r)}t!==null&&(n.length===1?t.value=n[0].value:n.length>1&&(t.value=n.map(({value:e})=>e)))},Cn=(e,t)=>{let n=t;for(;n;){if(n.tag===s(n).ContextProvider){let t=n.type,r=G(t)?t._context:void 0,i=Rt(r)?r:Rt(t)?t:null;i&&!e.has(i)&&(e.set(i,i._currentValue),i._currentValue=n.memoizedProps.value)}n=n.return}},wn=e=>{e.forEach((e,t)=>{t._currentValue=e})},Tn=t=>{if(t!==H)throw t instanceof e?t:new o(`Error rendering inspected component`,t)},En=(e,t)=>{if(e&&typeof e==`object`&&`defaultProps`in e&&G(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},Dn=()=>{let e={};for(let t in console)try{e[t]=Reflect.get(console,t),Reflect.set(console,t,()=>{})}catch{}return e},On=e=>{for(let t in e)try{Reflect.set(console,t,e[t])}catch{}},Q=(e,t)=>{let n=Vt(e);Ht(e,fn);let r=[],i;try{i=Error(),t()}catch(e){Tn(e)}finally{r=F,F=[],Ht(e,n)}let a=i===void 0?[]:U(i);return xn(a,r)},kn=()=>{let e=Bt();if(!e)throw new r(`No React renderer found. Make sure React is loaded and bippy's hook is installed.`);return e},An=e=>{if(Object.hasOwn(e,`dependencies`)){let t=e.dependencies;z=t===null?null:t.firstContext}else if(Object.hasOwn(e,`dependencies_old`)){let t=Reflect.get(e,`dependencies_old`),n=G(t)?t.firstContext:null;z=q(n)?n:null}else if(Object.hasOwn(e,`dependencies_new`)){let t=Reflect.get(e,`dependencies_new`),n=G(t)?t.firstContext:null;z=q(n)?n:null}else if(Object.hasOwn(e,`contextDependencies`)){let t=Reflect.get(e,`contextDependencies`),n=G(t)?t.first:null;z=q(n)?n:null}else throw new r(`Unsupported React version.`)},jn=e=>{let t=kn(),n=s(e);if(e.tag!==n.FunctionComponent&&e.tag!==n.SimpleMemoComponent&&e.tag!==n.ForwardRef)throw new r(`Unknown Fiber. Needs to be a function component to inspect hooks.`);pn(),R=e.memoizedState,L=e;let i=e.dependencies?._debugThenableState,a=Array.isArray(i)?i:i?.thenables;V=Array.isArray(a)?a:null,B=0,An(e);let o=e.type,c=e.memoizedProps;o!==e.elementType&&(c=En(o,c));let l=Dn(),u=new Map;try{if(z!==null&&!Object.hasOwn(z,`memoizedValue`)&&Cn(u,e),e.tag===n.ForwardRef){if(!zt(o))throw new r(`ForwardRef fiber is missing its render function.`);return Q(t,()=>{o.render(c,e.ref)})}if(typeof o!=`function`)throw new r(`Function component fiber is missing its component function.`);return Q(t,()=>{o(c)})}finally{L=null,R=null,z=null,V=null,B=0,wn(u),On(l)}},Mn=new Set([`Effect`,`LayoutEffect`,`InsertionEffect`,`ImperativeHandle`,`DebugValue`]),Nn=/(?:const|let|var)\s+((?:\[[\s\S]*?\]|\w+))\s*=\s*(?:[\w$.]+\.)*use[A-Z]\w*\s*(?:<[\s\S]*?>)?\s*\(/g,Pn=e=>`${e.fileName??``}:${e.lineNumber??0}:${e.columnNumber??0}`,Fn=e=>{let t=[],n=e=>{for(let r of e)Mn.has(r.name)||(t.push(r),r.subHooks.length>0&&n(r.subHooks))};return n(e),t},$=(e,t,n)=>{if(!t)return null;let r=e.indexOf(n);return r===-1?null:t[r]??null},In=(e,t)=>{let n=$(e.sources,e.sourcesContent,t);if(n)return n;if(e.sections)for(let n of e.sections){let e=$(n.map.sources,n.map.sourcesContent,t);if(e)return e}return null},Ln=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},Rn=(e,t,n)=>{let r=e.split(`
|
|
22
22
|
`),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?
|
|
23
|
+
`),s=[...o.matchAll(Nn)],c=o.lastIndexOf(`
|
|
24
|
+
`)+1+n,l=s.filter(e=>e.index<=c).at(-1);return l?Ln(l[1]):null},zn=async(e,t,n,r)=>{let{sourceMapsByFile:i,sourceContentCache:a,fetchFn:o}=r;i.has(e)||i.set(e,await D(e,!0,o));let s=i.get(e)??null;if(s){let r=w(s,t,n);if(r?.fileName&&r.lineNumber!==void 0){let t=`sourcemap:${e}:${r.fileName}`;a.has(t)||a.set(t,In(s,r.fileName));let n=a.get(t)??null;if(n)return{sourceCode:n,lineNumber:r.lineNumber,columnNumber:r.columnNumber??0}}}if(!a.has(e))try{let t=await(o??fetch)(e);a.set(e,t.ok?await t.text():null)}catch{a.set(e,null)}let c=a.get(e)??null;return c?{sourceCode:c,lineNumber:t,columnNumber:n}:null},Bn=async(e,t)=>{let n=new Map,r=Fn(e);if(r.length===0)return n;let i={sourceMapsByFile:new Map,sourceContentCache:new Map,fetchFn:t};return await Promise.all(r.map(async e=>{let t=e.hookSource;if(!t||!t.fileName||t.lineNumber===null||t.columnNumber===null)return;let r=await zn(t.fileName,t.lineNumber,t.columnNumber,i);if(!r)return;let a=Rn(r.sourceCode,r.lineNumber,r.columnNumber);if(a){let e=Pn(t);n.set(e,a)}})),n};export{i as BippyError,r as BippyHookInspectionError,o as BippyHookRenderError,t as BippySourceMapError,e as BippyUnsupportedHookError,pt as formatOwnerStack,Pt as getDisplayNameFromSource,jn as getFiberHooks,Ct as getOwnerStack,P as getParentStack,Dt as getSource,w as getSourceFromSourceMap,D as getSourceMap,k as hasDebugStack,Mt as isSourceFile,jt as normalizeFileName,Bn as parseHookNames,g as parseStack,O as symbolicateStack};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bippy",
|
|
3
|
-
"version": "0.6.1-dev.
|
|
3
|
+
"version": "0.6.1-dev.b88fcb4",
|
|
4
4
|
"description": "hack into react internals",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bippy",
|
|
@@ -112,7 +112,7 @@
|
|
|
112
112
|
"publint": "^0.3.0",
|
|
113
113
|
"react": "19.0.0",
|
|
114
114
|
"react-babylonjs": "^4.0.2",
|
|
115
|
-
"react-devtools-core": "
|
|
115
|
+
"react-devtools-core": "7.0.1",
|
|
116
116
|
"react-devtools-inline": "^6.0.1",
|
|
117
117
|
"react-dom": "19.0.0",
|
|
118
118
|
"react-konva": "^19.2.5",
|
|
@@ -120,16 +120,20 @@
|
|
|
120
120
|
"remotion": "^4.0.496",
|
|
121
121
|
"three": "^0.185.1",
|
|
122
122
|
"tsx": "^4.21.0",
|
|
123
|
-
"
|
|
123
|
+
"typescript": "^5.9.3",
|
|
124
|
+
"vite-plus": "latest",
|
|
125
|
+
"zod": "^4.4.3"
|
|
124
126
|
},
|
|
125
127
|
"peerDependencies": {
|
|
126
128
|
"react": ">=17.0.1"
|
|
127
129
|
},
|
|
128
130
|
"scripts": {
|
|
129
|
-
"build": "NODE_ENV=production vp pack
|
|
131
|
+
"build": "NODE_ENV=production vp pack",
|
|
132
|
+
"check:react-internals": "tsx scripts/generate-react-internals.ts --check",
|
|
133
|
+
"coverage": "vp test --coverage",
|
|
130
134
|
"dev": "NODE_ENV=development vp pack --watch",
|
|
135
|
+
"generate:react-internals": "tsx scripts/generate-react-internals.ts",
|
|
131
136
|
"publint": "publint",
|
|
132
|
-
"test": "vp test"
|
|
133
|
-
"coverage": "vp test --coverage"
|
|
137
|
+
"test": "vp test"
|
|
134
138
|
}
|
|
135
139
|
}
|