bippy 0.6.1 → 0.7.0-dev.07e6032
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 +223 -463
- package/dist/core.cjs +1 -1
- package/dist/core.js +1 -1
- package/dist/errors.d.cts +410 -0
- package/dist/errors.d.ts +410 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +154 -3
- package/dist/index.d.ts +154 -3
- package/dist/index.js +1 -1
- package/dist/install-hook-only.cjs +1 -1
- package/dist/install-hook-only.d.cts +9 -1
- package/dist/install-hook-only.d.ts +9 -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 +14 -5
- package/dist/source.d.cts +86 -69
- package/dist/source.d.ts +86 -69
- package/dist/source.js +14 -5
- package/package.json +26 -27
- package/src/core.ts +367 -685
- package/src/errors.ts +34 -0
- package/src/index.ts +1 -0
- package/src/install-hook-only.ts +6 -2
- package/src/rdt-hook.ts +177 -156
- package/src/react-internals/generated/react-work-tags.ts +318 -0
- package/src/react-internals/index.ts +73 -0
- package/src/react-internals/semver.ts +80 -0
- package/src/react-internals/types.ts +186 -0
- package/src/react.ts +76 -0
- package/src/source/constants.ts +1 -1
- package/src/source/error-stack.ts +11 -0
- package/src/source/get-display-name-from-source.ts +44 -40
- package/src/source/get-source.ts +43 -26
- package/src/source/index.ts +11 -1
- package/src/source/inspect-hooks.ts +220 -207
- package/src/source/owner-stack.ts +121 -174
- package/src/source/parse-debug-stack.ts +4 -4
- package/src/source/parse-hook-names.ts +14 -53
- package/src/source/parse-stack.ts +14 -31
- package/src/source/renderer-dispatchers.ts +30 -0
- package/src/source/symbolication.ts +709 -120
- package/dist/core.d.cts +0 -214
- package/dist/core.d.ts +0 -214
- package/dist/core2.d.cts +0 -3
- package/dist/core2.d.ts +0 -3
- package/dist/get-source.cjs +0 -19
- package/dist/get-source.js +0 -19
- package/dist/index.iife.js +0 -9
- package/dist/install-hook-only.iife.js +0 -9
- package/dist/react-refresh.cjs +0 -9
- package/dist/react-refresh.d.cts +0 -66
- package/dist/react-refresh.d.ts +0 -66
- package/dist/react-refresh.js +0 -9
- package/dist/unsubscribe.d.cts +0 -298
- package/dist/unsubscribe.d.ts +0 -298
- package/src/react-refresh/constants.ts +0 -9
- package/src/react-refresh/detect-hmr-transport.ts +0 -33
- package/src/react-refresh/index.ts +0 -173
- package/src/react-refresh/metro-hmr-transport.ts +0 -188
- package/src/react-refresh/next-webpack-hmr-transport.ts +0 -72
- package/src/react-refresh/normalize-hmr-file-path.ts +0 -24
- package/src/react-refresh/types.ts +0 -7
- package/src/react-refresh/vite-hmr-transport.ts +0 -116
- package/src/types.ts +0 -438
- package/src/unsubscribe.ts +0 -17
package/dist/source.d.cts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @license bippy
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Aiden Bai
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import { a as BippyUnsupportedHookError, i as BippySourceMapError, m as Fiber, n as BippyHookInspectionError, r as BippyHookRenderError, t as BippyError } from "./errors.cjs";
|
|
2
10
|
//#region src/source/parse-stack.d.ts
|
|
3
11
|
interface StackFrame {
|
|
4
|
-
args?: unknown[];
|
|
5
12
|
columnNumber?: number;
|
|
6
13
|
lineNumber?: number;
|
|
7
14
|
enclosingLineNumber?: number;
|
|
@@ -14,12 +21,80 @@ interface StackFrame {
|
|
|
14
21
|
isIgnoreListed?: boolean;
|
|
15
22
|
}
|
|
16
23
|
interface ParseOptions {
|
|
17
|
-
slice?: number | [number, number];
|
|
18
|
-
allowEmpty?: boolean;
|
|
19
24
|
includeInElement?: boolean;
|
|
20
25
|
}
|
|
21
26
|
declare const parseStack: (stackString: string, options?: ParseOptions) => StackFrame[];
|
|
22
27
|
//#endregion
|
|
28
|
+
//#region ../../node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts
|
|
29
|
+
type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/source/symbolication.d.ts
|
|
32
|
+
interface DecodedSourceMapSection {
|
|
33
|
+
map: {
|
|
34
|
+
file?: string;
|
|
35
|
+
ignoredSourceIndices?: Set<number>;
|
|
36
|
+
mappings: SourceMapSegment[][];
|
|
37
|
+
names?: string[];
|
|
38
|
+
sourceRoot?: string;
|
|
39
|
+
sources: string[];
|
|
40
|
+
sourcesContent?: Array<string | null>;
|
|
41
|
+
version: 3;
|
|
42
|
+
};
|
|
43
|
+
offset: {
|
|
44
|
+
column: number;
|
|
45
|
+
line: number;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
interface IndexSourceMap {
|
|
49
|
+
file?: string;
|
|
50
|
+
sections: Array<{
|
|
51
|
+
map?: StandardSourceMap;
|
|
52
|
+
offset: {
|
|
53
|
+
column: number;
|
|
54
|
+
line: number;
|
|
55
|
+
};
|
|
56
|
+
url?: string;
|
|
57
|
+
}>;
|
|
58
|
+
version: 3;
|
|
59
|
+
}
|
|
60
|
+
interface SourceFetch {
|
|
61
|
+
(url: string, init?: RequestInit): Promise<Response>;
|
|
62
|
+
}
|
|
63
|
+
interface SourceMapRequestOptions {
|
|
64
|
+
allowUnsafeServerFetch?: boolean;
|
|
65
|
+
maxBundleSizeBytes?: number;
|
|
66
|
+
maxSourceMapSizeBytes?: number;
|
|
67
|
+
signal?: AbortSignal;
|
|
68
|
+
timeoutMs?: number;
|
|
69
|
+
}
|
|
70
|
+
interface SourceMap {
|
|
71
|
+
file?: string;
|
|
72
|
+
ignoredSourceIndices?: Set<number>;
|
|
73
|
+
mappings: SourceMapSegment[][];
|
|
74
|
+
names?: string[];
|
|
75
|
+
sections?: DecodedSourceMapSection[];
|
|
76
|
+
sourceRoot?: string;
|
|
77
|
+
sources: string[];
|
|
78
|
+
sourcesContent?: Array<string | null>;
|
|
79
|
+
version: 3;
|
|
80
|
+
}
|
|
81
|
+
interface StandardSourceMap {
|
|
82
|
+
file?: string;
|
|
83
|
+
ignoreList?: number[];
|
|
84
|
+
mappings: string;
|
|
85
|
+
names?: string[];
|
|
86
|
+
sourceRoot?: string;
|
|
87
|
+
sources: string[];
|
|
88
|
+
sourcesContent?: Array<string | null>;
|
|
89
|
+
version: 3;
|
|
90
|
+
x_google_ignoreList?: number[];
|
|
91
|
+
}
|
|
92
|
+
declare const getSourceFromSourceMap: (sourceMap: SourceMap, line: number, column: number) => StackFrame | null;
|
|
93
|
+
declare const getSourceFromSourceMapByFunctionName: (sourceMap: SourceMap, functionName: string) => StackFrame | null;
|
|
94
|
+
declare const getSourceContentFromSourceMap: (sourceMap: SourceMap, originalFileName: string) => string | null;
|
|
95
|
+
declare const getSourceMap: (file: string, useCache?: boolean, fetchFn?: SourceFetch, options?: SourceMapRequestOptions) => Promise<null | SourceMap>;
|
|
96
|
+
declare const symbolicateStack: (stack: StackFrame[], cache?: boolean, fetchFn?: SourceFetch) => Promise<StackFrame[]>;
|
|
97
|
+
//#endregion
|
|
23
98
|
//#region src/source/owner-stack.d.ts
|
|
24
99
|
declare const hasDebugStack: (fiber: Fiber) => fiber is Fiber & {
|
|
25
100
|
_debugStack: NonNullable<Fiber["_debugStack"]>;
|
|
@@ -50,7 +125,7 @@ declare const formatOwnerStack: (stack: string) => string;
|
|
|
50
125
|
* with a throwing dispatcher; server frames are enriched from debug stacks by
|
|
51
126
|
* name matching. Works on every React version.
|
|
52
127
|
*/
|
|
53
|
-
declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?:
|
|
128
|
+
declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?: SourceFetch) => Promise<StackFrame[]>;
|
|
54
129
|
/**
|
|
55
130
|
* Returns the stack of components that CREATED this fiber's JSX (the
|
|
56
131
|
* `_debugOwner` chain), with exact creation-site locations from React 19's
|
|
@@ -61,7 +136,7 @@ declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunctio
|
|
|
61
136
|
* yields no locatable frames (so callers always get the most useful stack
|
|
62
137
|
* available).
|
|
63
138
|
*/
|
|
64
|
-
declare const getOwnerStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?:
|
|
139
|
+
declare const getOwnerStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?: SourceFetch) => Promise<StackFrame[]>;
|
|
65
140
|
//#endregion
|
|
66
141
|
//#region src/source/types.d.ts
|
|
67
142
|
interface FiberSource {
|
|
@@ -98,70 +173,12 @@ interface FiberSource {
|
|
|
98
173
|
* console.log(source.fileName, source.lineNumber);
|
|
99
174
|
* ```
|
|
100
175
|
*/
|
|
101
|
-
declare const getSource: (fiber: Fiber, cache?: boolean, fetchFn?:
|
|
176
|
+
declare const getSource: (fiber: Fiber, cache?: boolean, fetchFn?: SourceFetch) => Promise<FiberSource | null>;
|
|
102
177
|
declare const normalizeFileName: (fileName: string) => string;
|
|
103
178
|
declare const isSourceFile: (fileName: string) => boolean;
|
|
104
179
|
//#endregion
|
|
105
|
-
//#region ../../node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts
|
|
106
|
-
type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
|
|
107
|
-
//#endregion
|
|
108
|
-
//#region src/source/symbolication.d.ts
|
|
109
|
-
interface DecodedSourceMapSection {
|
|
110
|
-
map: {
|
|
111
|
-
file?: string;
|
|
112
|
-
ignoredSourceIndices?: Set<number>;
|
|
113
|
-
mappings: SourceMapSegment[][];
|
|
114
|
-
names?: string[];
|
|
115
|
-
sourceRoot?: string;
|
|
116
|
-
sources: string[];
|
|
117
|
-
sourcesContent?: string[];
|
|
118
|
-
version: 3;
|
|
119
|
-
};
|
|
120
|
-
offset: {
|
|
121
|
-
column: number;
|
|
122
|
-
line: number;
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
interface IndexSourceMap {
|
|
126
|
-
file?: string;
|
|
127
|
-
sections: Array<{
|
|
128
|
-
map: StandardSourceMap;
|
|
129
|
-
offset: {
|
|
130
|
-
column: number;
|
|
131
|
-
line: number;
|
|
132
|
-
};
|
|
133
|
-
}>;
|
|
134
|
-
version: 3;
|
|
135
|
-
}
|
|
136
|
-
type RawSourceMap = IndexSourceMap | StandardSourceMap;
|
|
137
|
-
interface SourceMap {
|
|
138
|
-
file?: string;
|
|
139
|
-
ignoredSourceIndices?: Set<number>;
|
|
140
|
-
mappings: SourceMapSegment[][];
|
|
141
|
-
names?: string[];
|
|
142
|
-
sections?: DecodedSourceMapSection[];
|
|
143
|
-
sourceRoot?: string;
|
|
144
|
-
sources: string[];
|
|
145
|
-
sourcesContent?: string[];
|
|
146
|
-
version: 3;
|
|
147
|
-
}
|
|
148
|
-
interface StandardSourceMap {
|
|
149
|
-
file?: string;
|
|
150
|
-
ignoreList?: number[];
|
|
151
|
-
mappings: string;
|
|
152
|
-
names?: string[];
|
|
153
|
-
sourceRoot?: string;
|
|
154
|
-
sources: string[];
|
|
155
|
-
sourcesContent?: string[];
|
|
156
|
-
version: 3;
|
|
157
|
-
x_google_ignoreList?: number[];
|
|
158
|
-
}
|
|
159
|
-
declare const getSourceFromSourceMap: (sourceMap: SourceMap, line: number, column: number) => StackFrame | null;
|
|
160
|
-
declare const getSourceMap: (file: string, useCache?: boolean, fetchFn?: (url: string) => Promise<Response>) => Promise<null | SourceMap>;
|
|
161
|
-
declare const symbolicateStack: (stack: StackFrame[], cache?: boolean, fetchFn?: (url: string) => Promise<Response>) => Promise<StackFrame[]>;
|
|
162
|
-
//#endregion
|
|
163
180
|
//#region src/source/get-display-name-from-source.d.ts
|
|
164
|
-
declare const getDisplayNameFromSource: (fiber: Fiber, cache?: boolean, fetchFn?:
|
|
181
|
+
declare const getDisplayNameFromSource: (fiber: Fiber, cache?: boolean, fetchFn?: SourceFetch) => Promise<string | null>;
|
|
165
182
|
//#endregion
|
|
166
183
|
//#region src/source/inspect-hooks.d.ts
|
|
167
184
|
interface HookSource {
|
|
@@ -178,11 +195,11 @@ interface HooksNode {
|
|
|
178
195
|
subHooks: HooksNode[];
|
|
179
196
|
hookSource: HookSource | null;
|
|
180
197
|
}
|
|
181
|
-
|
|
198
|
+
type HooksTree = HooksNode[];
|
|
182
199
|
declare const getFiberHooks: (fiber: Fiber) => HooksTree;
|
|
183
200
|
//#endregion
|
|
184
201
|
//#region src/source/parse-hook-names.d.ts
|
|
185
202
|
interface HookNames extends Map<string, string> {}
|
|
186
|
-
declare const parseHookNames: (hooksTree: HooksTree, fetchFn?:
|
|
203
|
+
declare const parseHookNames: (hooksTree: HooksTree, fetchFn?: SourceFetch) => Promise<HookNames>;
|
|
187
204
|
//#endregion
|
|
188
|
-
export { type DecodedSourceMapSection, type FiberSource, type HookNames, type HookSource, type HooksNode, type HooksTree, type IndexSourceMap, type ParseOptions, type
|
|
205
|
+
export { BippyError, BippyHookInspectionError, BippyHookRenderError, BippySourceMapError, BippyUnsupportedHookError, type DecodedSourceMapSection, type FiberSource, type HookNames, type HookSource, type HooksNode, type HooksTree, type IndexSourceMap, type ParseOptions, type SourceFetch, type SourceMap, type SourceMapRequestOptions, type StackFrame, type StandardSourceMap, formatOwnerStack, getDisplayNameFromSource, getFiberHooks, getOwnerStack, getParentStack, getSource, getSourceContentFromSourceMap, getSourceFromSourceMap, getSourceFromSourceMapByFunctionName, getSourceMap, hasDebugStack, isSourceFile, normalizeFileName, parseHookNames, parseStack, symbolicateStack };
|
package/dist/source.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @license bippy
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) Aiden Bai
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE file in the root directory of this source tree.
|
|
8
|
+
*/
|
|
9
|
+
import { a as BippyUnsupportedHookError, i as BippySourceMapError, m as Fiber, n as BippyHookInspectionError, r as BippyHookRenderError, t as BippyError } from "./errors.js";
|
|
2
10
|
//#region src/source/parse-stack.d.ts
|
|
3
11
|
interface StackFrame {
|
|
4
|
-
args?: unknown[];
|
|
5
12
|
columnNumber?: number;
|
|
6
13
|
lineNumber?: number;
|
|
7
14
|
enclosingLineNumber?: number;
|
|
@@ -14,12 +21,80 @@ interface StackFrame {
|
|
|
14
21
|
isIgnoreListed?: boolean;
|
|
15
22
|
}
|
|
16
23
|
interface ParseOptions {
|
|
17
|
-
slice?: number | [number, number];
|
|
18
|
-
allowEmpty?: boolean;
|
|
19
24
|
includeInElement?: boolean;
|
|
20
25
|
}
|
|
21
26
|
declare const parseStack: (stackString: string, options?: ParseOptions) => StackFrame[];
|
|
22
27
|
//#endregion
|
|
28
|
+
//#region ../../node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts
|
|
29
|
+
type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
|
|
30
|
+
//#endregion
|
|
31
|
+
//#region src/source/symbolication.d.ts
|
|
32
|
+
interface DecodedSourceMapSection {
|
|
33
|
+
map: {
|
|
34
|
+
file?: string;
|
|
35
|
+
ignoredSourceIndices?: Set<number>;
|
|
36
|
+
mappings: SourceMapSegment[][];
|
|
37
|
+
names?: string[];
|
|
38
|
+
sourceRoot?: string;
|
|
39
|
+
sources: string[];
|
|
40
|
+
sourcesContent?: Array<string | null>;
|
|
41
|
+
version: 3;
|
|
42
|
+
};
|
|
43
|
+
offset: {
|
|
44
|
+
column: number;
|
|
45
|
+
line: number;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
interface IndexSourceMap {
|
|
49
|
+
file?: string;
|
|
50
|
+
sections: Array<{
|
|
51
|
+
map?: StandardSourceMap;
|
|
52
|
+
offset: {
|
|
53
|
+
column: number;
|
|
54
|
+
line: number;
|
|
55
|
+
};
|
|
56
|
+
url?: string;
|
|
57
|
+
}>;
|
|
58
|
+
version: 3;
|
|
59
|
+
}
|
|
60
|
+
interface SourceFetch {
|
|
61
|
+
(url: string, init?: RequestInit): Promise<Response>;
|
|
62
|
+
}
|
|
63
|
+
interface SourceMapRequestOptions {
|
|
64
|
+
allowUnsafeServerFetch?: boolean;
|
|
65
|
+
maxBundleSizeBytes?: number;
|
|
66
|
+
maxSourceMapSizeBytes?: number;
|
|
67
|
+
signal?: AbortSignal;
|
|
68
|
+
timeoutMs?: number;
|
|
69
|
+
}
|
|
70
|
+
interface SourceMap {
|
|
71
|
+
file?: string;
|
|
72
|
+
ignoredSourceIndices?: Set<number>;
|
|
73
|
+
mappings: SourceMapSegment[][];
|
|
74
|
+
names?: string[];
|
|
75
|
+
sections?: DecodedSourceMapSection[];
|
|
76
|
+
sourceRoot?: string;
|
|
77
|
+
sources: string[];
|
|
78
|
+
sourcesContent?: Array<string | null>;
|
|
79
|
+
version: 3;
|
|
80
|
+
}
|
|
81
|
+
interface StandardSourceMap {
|
|
82
|
+
file?: string;
|
|
83
|
+
ignoreList?: number[];
|
|
84
|
+
mappings: string;
|
|
85
|
+
names?: string[];
|
|
86
|
+
sourceRoot?: string;
|
|
87
|
+
sources: string[];
|
|
88
|
+
sourcesContent?: Array<string | null>;
|
|
89
|
+
version: 3;
|
|
90
|
+
x_google_ignoreList?: number[];
|
|
91
|
+
}
|
|
92
|
+
declare const getSourceFromSourceMap: (sourceMap: SourceMap, line: number, column: number) => StackFrame | null;
|
|
93
|
+
declare const getSourceFromSourceMapByFunctionName: (sourceMap: SourceMap, functionName: string) => StackFrame | null;
|
|
94
|
+
declare const getSourceContentFromSourceMap: (sourceMap: SourceMap, originalFileName: string) => string | null;
|
|
95
|
+
declare const getSourceMap: (file: string, useCache?: boolean, fetchFn?: SourceFetch, options?: SourceMapRequestOptions) => Promise<null | SourceMap>;
|
|
96
|
+
declare const symbolicateStack: (stack: StackFrame[], cache?: boolean, fetchFn?: SourceFetch) => Promise<StackFrame[]>;
|
|
97
|
+
//#endregion
|
|
23
98
|
//#region src/source/owner-stack.d.ts
|
|
24
99
|
declare const hasDebugStack: (fiber: Fiber) => fiber is Fiber & {
|
|
25
100
|
_debugStack: NonNullable<Fiber["_debugStack"]>;
|
|
@@ -50,7 +125,7 @@ declare const formatOwnerStack: (stack: string) => string;
|
|
|
50
125
|
* with a throwing dispatcher; server frames are enriched from debug stacks by
|
|
51
126
|
* name matching. Works on every React version.
|
|
52
127
|
*/
|
|
53
|
-
declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?:
|
|
128
|
+
declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?: SourceFetch) => Promise<StackFrame[]>;
|
|
54
129
|
/**
|
|
55
130
|
* Returns the stack of components that CREATED this fiber's JSX (the
|
|
56
131
|
* `_debugOwner` chain), with exact creation-site locations from React 19's
|
|
@@ -61,7 +136,7 @@ declare const getParentStack: (fiber: Fiber, shouldCache?: boolean, fetchFunctio
|
|
|
61
136
|
* yields no locatable frames (so callers always get the most useful stack
|
|
62
137
|
* available).
|
|
63
138
|
*/
|
|
64
|
-
declare const getOwnerStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?:
|
|
139
|
+
declare const getOwnerStack: (fiber: Fiber, shouldCache?: boolean, fetchFunction?: SourceFetch) => Promise<StackFrame[]>;
|
|
65
140
|
//#endregion
|
|
66
141
|
//#region src/source/types.d.ts
|
|
67
142
|
interface FiberSource {
|
|
@@ -98,70 +173,12 @@ interface FiberSource {
|
|
|
98
173
|
* console.log(source.fileName, source.lineNumber);
|
|
99
174
|
* ```
|
|
100
175
|
*/
|
|
101
|
-
declare const getSource: (fiber: Fiber, cache?: boolean, fetchFn?:
|
|
176
|
+
declare const getSource: (fiber: Fiber, cache?: boolean, fetchFn?: SourceFetch) => Promise<FiberSource | null>;
|
|
102
177
|
declare const normalizeFileName: (fileName: string) => string;
|
|
103
178
|
declare const isSourceFile: (fileName: string) => boolean;
|
|
104
179
|
//#endregion
|
|
105
|
-
//#region ../../node_modules/@jridgewell/sourcemap-codec/types/sourcemap-codec.d.mts
|
|
106
|
-
type SourceMapSegment = [number] | [number, number, number, number] | [number, number, number, number, number];
|
|
107
|
-
//#endregion
|
|
108
|
-
//#region src/source/symbolication.d.ts
|
|
109
|
-
interface DecodedSourceMapSection {
|
|
110
|
-
map: {
|
|
111
|
-
file?: string;
|
|
112
|
-
ignoredSourceIndices?: Set<number>;
|
|
113
|
-
mappings: SourceMapSegment[][];
|
|
114
|
-
names?: string[];
|
|
115
|
-
sourceRoot?: string;
|
|
116
|
-
sources: string[];
|
|
117
|
-
sourcesContent?: string[];
|
|
118
|
-
version: 3;
|
|
119
|
-
};
|
|
120
|
-
offset: {
|
|
121
|
-
column: number;
|
|
122
|
-
line: number;
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
interface IndexSourceMap {
|
|
126
|
-
file?: string;
|
|
127
|
-
sections: Array<{
|
|
128
|
-
map: StandardSourceMap;
|
|
129
|
-
offset: {
|
|
130
|
-
column: number;
|
|
131
|
-
line: number;
|
|
132
|
-
};
|
|
133
|
-
}>;
|
|
134
|
-
version: 3;
|
|
135
|
-
}
|
|
136
|
-
type RawSourceMap = IndexSourceMap | StandardSourceMap;
|
|
137
|
-
interface SourceMap {
|
|
138
|
-
file?: string;
|
|
139
|
-
ignoredSourceIndices?: Set<number>;
|
|
140
|
-
mappings: SourceMapSegment[][];
|
|
141
|
-
names?: string[];
|
|
142
|
-
sections?: DecodedSourceMapSection[];
|
|
143
|
-
sourceRoot?: string;
|
|
144
|
-
sources: string[];
|
|
145
|
-
sourcesContent?: string[];
|
|
146
|
-
version: 3;
|
|
147
|
-
}
|
|
148
|
-
interface StandardSourceMap {
|
|
149
|
-
file?: string;
|
|
150
|
-
ignoreList?: number[];
|
|
151
|
-
mappings: string;
|
|
152
|
-
names?: string[];
|
|
153
|
-
sourceRoot?: string;
|
|
154
|
-
sources: string[];
|
|
155
|
-
sourcesContent?: string[];
|
|
156
|
-
version: 3;
|
|
157
|
-
x_google_ignoreList?: number[];
|
|
158
|
-
}
|
|
159
|
-
declare const getSourceFromSourceMap: (sourceMap: SourceMap, line: number, column: number) => StackFrame | null;
|
|
160
|
-
declare const getSourceMap: (file: string, useCache?: boolean, fetchFn?: (url: string) => Promise<Response>) => Promise<null | SourceMap>;
|
|
161
|
-
declare const symbolicateStack: (stack: StackFrame[], cache?: boolean, fetchFn?: (url: string) => Promise<Response>) => Promise<StackFrame[]>;
|
|
162
|
-
//#endregion
|
|
163
180
|
//#region src/source/get-display-name-from-source.d.ts
|
|
164
|
-
declare const getDisplayNameFromSource: (fiber: Fiber, cache?: boolean, fetchFn?:
|
|
181
|
+
declare const getDisplayNameFromSource: (fiber: Fiber, cache?: boolean, fetchFn?: SourceFetch) => Promise<string | null>;
|
|
165
182
|
//#endregion
|
|
166
183
|
//#region src/source/inspect-hooks.d.ts
|
|
167
184
|
interface HookSource {
|
|
@@ -178,11 +195,11 @@ interface HooksNode {
|
|
|
178
195
|
subHooks: HooksNode[];
|
|
179
196
|
hookSource: HookSource | null;
|
|
180
197
|
}
|
|
181
|
-
|
|
198
|
+
type HooksTree = HooksNode[];
|
|
182
199
|
declare const getFiberHooks: (fiber: Fiber) => HooksTree;
|
|
183
200
|
//#endregion
|
|
184
201
|
//#region src/source/parse-hook-names.d.ts
|
|
185
202
|
interface HookNames extends Map<string, string> {}
|
|
186
|
-
declare const parseHookNames: (hooksTree: HooksTree, fetchFn?:
|
|
203
|
+
declare const parseHookNames: (hooksTree: HooksTree, fetchFn?: SourceFetch) => Promise<HookNames>;
|
|
187
204
|
//#endregion
|
|
188
|
-
export { type DecodedSourceMapSection, type FiberSource, type HookNames, type HookSource, type HooksNode, type HooksTree, type IndexSourceMap, type ParseOptions, type
|
|
205
|
+
export { BippyError, BippyHookInspectionError, BippyHookRenderError, BippySourceMapError, BippyUnsupportedHookError, type DecodedSourceMapSection, type FiberSource, type HookNames, type HookSource, type HooksNode, type HooksTree, type IndexSourceMap, type ParseOptions, type SourceFetch, type SourceMap, type SourceMapRequestOptions, type StackFrame, type StandardSourceMap, formatOwnerStack, getDisplayNameFromSource, getFiberHooks, getOwnerStack, getParentStack, getSource, getSourceContentFromSourceMap, getSourceFromSourceMap, getSourceFromSourceMapByFunctionName, getSourceMap, hasDebugStack, isSourceFile, normalizeFileName, parseHookNames, parseStack, symbolicateStack };
|
package/dist/source.js
CHANGED
|
@@ -6,9 +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{
|
|
10
|
-
`),
|
|
11
|
-
`),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},h=async(e,t=!0,r)=>{let a=(await l(e,t,r)).filter(e=>e.fileName)[0];if(!a?.fileName)return n(e.type);let o=await s(a.fileName,t,r);if(!o)return n(e.type);let c=null;if(typeof a.lineNumber==`number`&&typeof a.columnNumber==`number`&&(c=i(o,a.lineNumber,a.columnNumber)),!c?.fileName||!c.lineNumber||!o.sourcesContent)return n(e.type);let u=o.sources.indexOf(c.fileName);if(u===-1||!o.sourcesContent[u])return n(e.type);let d=o.sourcesContent[u];return m(d,c.lineNumber)||n(e.type)},g=Symbol.for(`react.context`),ee=Symbol.for(`react.memo_cache_sentinel`);let _=[],v=null,y=null,b=null,x=null,S=0,C=null;const w=Error("Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render."),T=e=>a(e.stack||``,{includeInElement:!1}),E=()=>{let e=b;return e!==null&&(b=e.next),e},D=e=>{if(y===null)return e._currentValue;if(x===null)throw Error(`Context reads do not line up with context dependencies.`);if(Object.prototype.hasOwnProperty.call(x,`memoizedValue`)){let e=x.memoizedValue;return x=x.next,e}return e._currentValue},te=()=>{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},O=e=>`H`in e?e.H:e.current,k=(e,t)=>{`H`in e?e.H=t:e.current=t},A=(e,t,n,r=null)=>{_.push({displayName:r,primitive:e,stackError:Error(),value:t,dispatcherHookName:n})},ne=e=>{if(typeof e==`object`&&e){let t=e;if(typeof t.then==`function`){let e=C!==null&&S<C.length?C[S++]:t;switch(e.status){case`fulfilled`:return A(`Promise`,e.value,`Use`),e.value;case`rejected`:throw e.reason}throw A(`Unresolved`,e,`Use`),w}if(t.$$typeof===g&&`_currentValue`in t){let e=t,n=D(e);return A(`Context (use)`,n,`Use`,e.displayName||`Context`),n}}throw Error(`An unsupported type was passed to use(): `+String(e))},re=e=>{let t=D(e);return A(`Context`,t,`Context`,e.displayName||null),t},ie=e=>{let t=E(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return A(`State`,n,`State`),[n,()=>{}]},ae=(e,t,n)=>{let r=E(),i=r===null?n===void 0?t:n(t):r.memoizedState;return A(`Reducer`,i,`Reducer`),[i,()=>{}]},oe=e=>{let t=E(),n=t===null?{current:e}:t.memoizedState;return A(`Ref`,n.current,`Ref`),n},se=()=>{let e=E();return A(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},ce=e=>{E(),A(`LayoutEffect`,e,`LayoutEffect`)},le=e=>{E(),A(`InsertionEffect`,e,`InsertionEffect`)},ue=e=>{E(),A(`Effect`,e,`Effect`)},j=e=>{E();let t;typeof e==`object`&&e&&`current`in e&&(t=e.current),A(`ImperativeHandle`,t,`ImperativeHandle`)},M=(e,t)=>{A(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},N=e=>{let t=E();return A(`Callback`,t===null?e:t.memoizedState[0],`Callback`),e},P=e=>{let t=E(),n=t===null?e():t.memoizedState[0];return A(`Memo`,n,`Memo`),n},F=(e,t)=>{let n=E();E();let r=n===null?t():n.memoizedState;return A(`SyncExternalStore`,r,`SyncExternalStore`),r},I=()=>{let e=E();E();let t=e===null?!1:e.memoizedState;return A(`Transition`,t,`Transition`),[t,()=>{}]},L=e=>{let t=E(),n=t===null?e:t.memoizedState;return A(`DeferredValue`,n,`DeferredValue`),n},R=()=>{let e=E(),t=e===null?``:e.memoizedState;return A(`Id`,t,`Id`),t},z=e=>{let t=y;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},()=>ee)),n.index++,r},B=e=>{let t=E(),n=t===null?e:t.memoizedState;return A(`Optimistic`,n,`Optimistic`),[n,()=>{}]},V=(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=w,n=e}}else n=t}else n=t;return{value:n,error:r}},H=e=>(t,n)=>{let r=E();E(),E();let i=Error(),{value:a,error:o}=V(r,n);if(_.push({displayName:null,primitive:e,stackError:i,value:a,dispatcherHookName:e}),o!==null)throw o;return[a,()=>{},!1]},U=H(`ActionState`),W={readContext:D,use:ne,useCallback:N,useContext:re,useEffect:ue,useImperativeHandle:j,useLayoutEffect:ce,useInsertionEffect:le,useMemo:P,useReducer:ae,useRef:oe,useState:ie,useDebugValue:M,useDeferredValue:L,useTransition:I,useSyncExternalStore:F,useId:R,useHostTransitionStatus:()=>{let e=D({_currentValue:null});return A(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:H(`FormState`),useActionState:U,useOptimistic:B,useMemoCache:z,useCacheRefresh:se,useEffectEvent:e=>(E(),A(`EffectEvent`,e,`EffectEvent`),e)},de=typeof Proxy>`u`?W:new Proxy(W,{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}}),G=()=>{if(v!==null)return v;let e=new Map,t;try{if(W.useContext({_currentValue:null}),W.useState(null),W.useReducer(e=>e,null),W.useRef(null),typeof W.useCacheRefresh==`function`&&W.useCacheRefresh(),W.useLayoutEffect(()=>{}),W.useInsertionEffect(()=>{}),W.useEffect(()=>{}),W.useImperativeHandle(void 0,()=>null),W.useDebugValue(null),W.useCallback(()=>{}),W.useTransition(),W.useSyncExternalStore(()=>()=>{},()=>null,()=>null),W.useDeferredValue(null),W.useMemo(()=>null),W.useOptimistic(null,e=>e),W.useFormState(e=>e,null),W.useActionState(e=>e,null),W.useHostTransitionStatus(),typeof W.useMemoCache==`function`&&W.useMemoCache(0),typeof W.use==`function`){W.use({$$typeof:g,_currentValue:null}),W.use({then(){},status:`fulfilled`,value:null});try{W.use({then(){}})}catch{}}W.useId(),typeof W.useEffectEvent==`function`&&W.useEffectEvent(()=>{})}finally{t=_,_=[]}for(let n of t)e.set(n.primitive,T(n.stackError));return v=e,v};let K=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},fe=(e,t)=>{let n=q(t,e,K);if(n!==-1)return n;for(let r=0;r<e.length&&r<5;r++)if(n=q(t,e,r),n!==-1)return K=r,n;return-1},J=e=>{if(!e)return``;let t=e.lastIndexOf(`[as `);if(t!==-1)return J(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)},Y=(e,t)=>{let n=J(e);return t===`HostTransitionStatus`?n===t||n===`FormStatus`:n===t},pe=(e,t)=>{let n=G().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&&Y(e[r].functionName,t.dispatcherHookName)&&r++,r<e.length-1&&Y(e[r].functionName,t.dispatcherHookName)&&r++,r;return-1},me=(e,t)=>{let n=T(t.stackError),r=fe(e,n),i=pe(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)]},he=new Set([`Context`,`Context (use)`,`DebugValue`,`Promise`,`Unresolved`,`HostTransitionStatus`]),ge=(e,t)=>{let n=[],r=null,i=n,a=0,o=[];for(let s of t){let[t,c]=me(e,s),l=s.displayName;if(l===null&&t!==null&&(l=J(t.functionName)||J(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:J(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=he.has(u)?null:a++,f=u===`Reducer`||u===`State`,p=l||u,m=c?.[0],h={lineNumber:m?.lineNumber??null,columnNumber:m?.columnNumber??null,functionName:m?.functionName??null,fileName:m?.fileName??null};i.push({id:d,isStateEditable:f,name:p,value:s.value,subHooks:[],hookSource:h})}return X(n,null),n},X=(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)):X(r.subHooks,r)}t!==null&&(n.length===1?t.value=n[0].value:n.length>1&&(t.value=n.map(({value:e})=>e)))},_e=(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}},ve=e=>{e.forEach((e,t)=>{t._currentValue=e})},ye=e=>{if(e===w)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},be=(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},xe=()=>{let e={};for(let t in console)try{e[t]=console[t],console[t]=()=>{}}catch{}return e},Se=e=>{for(let t in e)try{console[t]=e[t]}catch{}},Z=(e,t)=>{let n=O(e);k(e,de);let r=[],i;try{i=Error(),t()}catch(e){ye(e)}finally{r=_,_=[],k(e,n)}return ge(i===void 0?[]:T(i),r)},Ce=()=>{let e=te();if(!e)throw Error(`No React renderer found. Make sure React is loaded and bippy's hook is installed.`);return e},we=e=>{if(Object.prototype.hasOwnProperty.call(e,`dependencies`)){let t=e.dependencies;x=t===null?null:t.firstContext}else if(Object.prototype.hasOwnProperty.call(e,`dependencies_old`)){let t=e.dependencies_old;x=t===null?null:t.firstContext}else if(Object.prototype.hasOwnProperty.call(e,`dependencies_new`)){let t=e.dependencies_new;x=t===null?null:t.firstContext}else if(Object.prototype.hasOwnProperty.call(e,`contextDependencies`)){let t=e.contextDependencies;x=t===null?null:t.first}else throw Error(`Unsupported React version.`)},Te=e=>{let t=Ce();if(e.tag!==0&&e.tag!==15&&e.tag!==11)throw Error(`Unknown Fiber. Needs to be a function component to inspect hooks.`);G(),b=e.memoizedState,y=e;let n=e.dependencies&&e.dependencies._debugThenableState,r=n?n.thenables||n:null;C=Array.isArray(r)?r:null,S=0,we(e);let i=e.type,a=e.memoizedProps;i!==e.elementType&&(a=be(i,a));let o=xe(),s=new Map;try{return x!==null&&!Object.prototype.hasOwnProperty.call(x,`memoizedValue`)&&_e(s,e),e.tag===11?Z(t,()=>{i.render(a,e.ref)}):Z(t,()=>{i(a)})}finally{y=null,b=null,x=null,C=null,S=0,ve(s),Se(o)}},Ee=new Set([`Effect`,`LayoutEffect`,`InsertionEffect`,`ImperativeHandle`,`DebugValue`]),De=/(?:const|let|var)\s+((?:\[[\s\S]*?\]|\w+))\s*=\s*(?:[\w$.]+\.)*use[A-Z]\w*\s*(?:<[\s\S]*?>)?\s*\(/g,Oe=e=>`${e.fileName??``}:${e.lineNumber??0}:${e.columnNumber??0}`,Q=e=>{let t=[],n=e=>{for(let r of e)Ee.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},ke=(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},Ae=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},je=(e,t,n)=>{let r=e.split(`
|
|
9
|
+
import{a as e,r as t}from"./rdt-hook.js";import{C as n,E as r,O as i,S as a,T as o,a as s,b as c,d as l,w as u}from"./core.js";const d=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,ee=[`rsc://`,`file:///`,`webpack-internal://`,`webpack://`,`node:`,`turbopack://`,`metro://`,`/app-pages-browser/`,`/(app-pages-browser)/`],te=[`rsc://`,`about://React/`],f=[`<anonymous>`,`eval`,``],p=/\.(cjs|cts|js|jsx|mdx|mjs|mts|ts|tsx)$/,ne=/(\.min|bundle|chunk|vendor|vendors|runtime|polyfill|polyfills)\.(js|mjs|cjs)$|(chunk|bundle|vendor|vendors|runtime|polyfill|polyfills|framework|app|main|index)[-_.][A-Za-z0-9_-]{4,}\.(js|mjs|cjs)$|[\da-f]{8,}\.(js|mjs|cjs)$|[-_.][\da-f]{20,}\.(js|mjs|cjs)$|\/dist\/|\/build\/|\/.next\/|\/out\/|\/node_modules\/|\.webpack\.|\.vite\.|\.turbopack\./i,re=/^\?[\w~.-]+(?:=[^&#]*)?(?:&[\w~.-]+(?:=[^&#]*)?)*$/,ie=/\(at [^)]+\)$/,m=[`react_stack_bottom_frame`,`react-stack-bottom-frame`],ae=Error,oe=()=>ae.prepareStackTrace,h=e=>{ae.prepareStackTrace=e},se=/(^|@)\S+:\d+/,ce=/^\s*at .*(\S+:\d+|\(native\))/m,le=/^(eval@)?(\[native code\])?$/,g=(e,t)=>{if(t?.includeInElement!==!1){let t=e.split(`
|
|
10
|
+
`),n=[];for(let e of t)if(/^\s*at\s+/.test(e)){let t=de(e)[0];t&&n.push(t)}else if(/^\s*in\s+/.test(e)){let t=e.replace(/^\s*in\s+/,``).replace(/\s*\(at .*\)$/,``);n.push({functionName:t,source:e})}else if(e.match(se)){let t=fe(e)[0];t&&n.push(t)}return n}return e.match(ce)?de(e):fe(e)},ue=e=>{if(!e.includes(`:`))return[e,void 0,void 0];let t=e.startsWith(`(`)&&/:\d+\)$/.test(e)?e.slice(1,-1):e,n=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(t);return n?[n[1],n[2]||void 0,n[3]||void 0]:[t,void 0,void 0]},de=e=>e.split(`
|
|
11
|
+
`).filter(e=>!!e.match(ce)).map(e=>{let t=e;t.includes(`(eval `)&&(t=t.replace(/eval code/g,`eval`).replace(/(\(eval at [^()]*)|(,.*$)/g,``));let n=t.replace(/^\s+/,``).replace(/\(eval code/g,`(`).replace(/^.*?\s+/,``),r=n.match(/ (\(.+\)$)/);n=r?n.replace(r[0],``):n;let i=ue(r?r[1]:n);return{functionName:r&&n||void 0,fileName:[`eval`,`<anonymous>`,`(native)`].includes(i[0])?void 0:i[0],lineNumber:i[1]?+i[1]:void 0,columnNumber:i[2]?+i[2]:void 0,source:t}}),fe=e=>e.split(`
|
|
12
|
+
`).filter(e=>!e.match(le)).map(e=>{let t=e;if(t.includes(` > eval`)&&(t=t.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,`:$1`)),!t.includes(`@`)&&!t.includes(`:`))return{functionName:t};{let e=/(([^\n\r"\u2028\u2029]*".[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*(?:@[^\n\r"\u2028\u2029]*"[^\n\r@\u2028\u2029]*)*(?:[\n\r\u2028\u2029][^@]*)?)?[^@]*)@/,n=t.match(e),r=n&&n[1]?n[1]:void 0,i=ue(t.replace(e,``));return{functionName:r,fileName:i[0],lineNumber:i[1]?+i[1]:void 0,columnNumber:i[2]?+i[2]:void 0,source:t}}}),pe=new WeakMap,me=e=>m.some(t=>e.includes(t)),he=e=>{let t=e.getFunctionName?.()??``;if(t)return t;let n=e.getTypeName?.()??``,r=e.getMethodName?.()??``;return n&&r?`${n}.${r}`:r},ge=e=>{let t=[];for(let n=1;n<e.length;n++){let r=e[n],i=he(r);if(me(i))return{frames:t,isTrusted:!0};if(r.isNative?.()){t.push({functionName:i||void 0});continue}let a=r.getScriptNameOrSourceURL?.()??``;!a&&r.isEval?.()&&(a=r.getEvalOrigin?.()??``),t.push({functionName:i&&i!==`<anonymous>`?i:void 0,fileName:a&&a!==`<anonymous>`?a:void 0,lineNumber:r.getLineNumber?.()??void 0,columnNumber:r.getColumnNumber?.()??void 0,enclosingLineNumber:r.getEnclosingLineNumber?.()??void 0,enclosingColumnNumber:r.getEnclosingColumnNumber?.()??void 0,source:` at ${r.toString()}`})}return{frames:t,isTrusted:!1}},_e=e=>{let t=-1;for(let n of m)if(t=e.indexOf(n),t!==-1)break;let n=t===-1?e:e.slice(0,e.lastIndexOf(`
|
|
13
|
+
`,t));return{frames:g(n).slice(1),isTrusted:t!==-1}},_=e=>{let t=pe.get(e);if(t)return t;let n=null,r=(e,t)=>{n=ge(t);let r=`${e.name||`Error`}: ${e.message||``}`;for(let e of t)r+=`\n at ${e.toString()}`;return r},i=oe();h(r);let a;try{a=String(e.stack)}finally{h(i)}let o=n??_e(a);return pe.set(e,o),o},ve=()=>{let n=e(),r=new Set([...t,...n.renderers.values()]),i=[],a=new Set;for(let e of r){let t=e.currentDispatcherRef;!t||a.has(t)||(a.add(t),i.push(t))}return i},ye=e=>`H`in e?e.H:e.current,v=(e,t)=>{`H`in e?e.H=t:e.current=t};var be=44,xe=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,Se=new Uint8Array(64),Ce=new Uint8Array(128);for(let e=0;e<xe.length;e++){let t=xe.charCodeAt(e);Se[e]=t,Ce[t]=e}function y(e,t){let n=0,r=0,i=0;do i=Ce[e.next()],n|=(i&31)<<r,r+=5;while(i&32);let a=n&1;return n>>>=1,a&&(n=-2147483648|-n),t+n}function we(e,t){return e.pos>=t?!1:e.peek()!==be}var Te=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:n}=this,r=t.indexOf(e,n);return r===-1?t.length:r}};function Ee(e){let{length:t}=e,n=new Te(e),r=[],i=0,a=0,o=0,s=0,c=0;do{let e=n.indexOf(`;`),t=[],l=!0,u=0;for(i=0;n.pos<e;){let r;i=y(n,i),i<u&&(l=!1),u=i,we(n,e)?(a=y(n,a),o=y(n,o),s=y(n,s),we(n,e)?(c=y(n,c),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||De(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function De(e){e.sort(Oe)}function Oe(e,t){return e[0]-t[0]}const b=/^data:application\/json(?:;[^,]*)?,/i,ke=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/,Ae=new Map,je=new WeakMap;var Me=class extends Error{};const Ne=new Map,Pe=new WeakMap,Fe=new Set([`chrome-extension:`,`moz-extension:`,`safari-web-extension:`]),x=new Set([`http:`,`https:`,...Fe]),Ie=(e,t,n,r)=>{let[,i,a,o,s]=e;if(i===void 0||a===void 0||o===void 0)return null;let c=t[i];return c?{columnNumber:o,fileName:c,functionName:s===void 0?void 0:r?.[s]||void 0,isIgnoreListed:n?.has(i)??!1,lineNumber:a+1}:null},Le=(e,t,n,r,i,a)=>{if(n<0||n>=e.length)return null;let o=e[n];if(!o||o.length===0)return null;let s=null,c=0,l=o.length-1;for(;c<=l;){let e=c+l>>1;o[e][0]<=r?(s=o[e],c=e+1):l=e-1}return!s||s.length<4?null:Ie(s,t,i,a)},S=(e,t,n)=>{if(e.sections){let r=t-1,i=null;for(let t of e.sections)if(r>t.offset.line||r===t.offset.line&&n>=t.offset.column)i=t;else break;if(!i)return null;let a=r-i.offset.line,o=r===i.offset.line?n-i.offset.column:n;return Le(i.map.mappings,i.map.sources,a,o,i.map.ignoredSourceIndices,i.map.names)}return Le(e.mappings,e.sources,t-1,n,e.ignoredSourceIndices,e.names)},Re=(e,t,n,r,i)=>{if(!n)return null;let a=n.indexOf(r);if(a===-1)return null;let o=null;for(let r of e)for(let e of r){if(e[4]!==a)continue;let r=Ie(e,t,i,n);if(r){if(!r.isIgnoreListed)return r;o??=r}}return o},ze=(e,t)=>{if(e.sections){let n=null;for(let r of e.sections){let e=Re(r.map.mappings,r.map.sources,r.map.names,t,r.map.ignoredSourceIndices);if(e){if(!e.isIgnoreListed)return e;n??=e}}return n}return Re(e.mappings,e.sources,e.names,t,e.ignoredSourceIndices)},Be=(e,t,n)=>{if(!t)return null;let r=e.indexOf(n);return r===-1?null:t[r]??null},C=(e,t)=>{let n=Be(e.sources,e.sourcesContent,t);if(n!==null)return n;if(!e.sections)return null;for(let n of e.sections){let e=Be(n.map.sources,n.map.sourcesContent,t);if(e!==null)return e}return null},w=(e,t)=>{if(b.test(e))return e;try{return new URL(e,t).toString()}catch{try{let n=new URL(e,new URL(t,`https://bippy.invalid/`));return`${n.pathname}${n.search}${n.hash}`}catch{return null}}},Ve=e=>{try{let t=new URL(e),n=t.pathname.lastIndexOf(`.bundle`);if(n===-1)return null;let r=t.pathname.slice(n+7);if(r&&!r.startsWith(`//&`))return null;if(t.pathname=`${t.pathname.slice(0,n)}.map`,r){let e=new URLSearchParams(r.slice(3));for(let[n,r]of e)t.searchParams.set(n,r)}return t.hash=``,t.toString()}catch{return null}},He=(e,t,n)=>{let r=n.headers.get(`sourcemap`)??n.headers.get(`x-sourcemap`);if(r)return w(r.trim(),e);let i,a=t.length;for(;a>0&&!i;){let e=t.lastIndexOf(`
|
|
14
|
+
`,a-1)+1,n=t.slice(e,a).match(ke);n&&(i=n[1]||n[2]),a=e-1}return i?w(i,e):Ve(e)},T=e=>{if(typeof e!=`object`||!e)return!1;let t=Reflect.get(e,`version`),n=Reflect.get(e,`mappings`),r=Reflect.get(e,`file`),i=Reflect.get(e,`names`),a=Reflect.get(e,`sourceRoot`),o=Reflect.get(e,`sources`),s=Reflect.get(e,`sourcesContent`),c=Reflect.get(e,`ignoreList`),l=Reflect.get(e,`x_google_ignoreList`);if(t!==3||typeof n!=`string`||r!==void 0&&typeof r!=`string`||i!==void 0&&(!Array.isArray(i)||i.some(e=>typeof e!=`string`))||a!==void 0&&typeof a!=`string`||s!==void 0&&(!Array.isArray(s)||s.some(e=>typeof e!=`string`&&e!==null))||c!==void 0&&(!Array.isArray(c)||c.some(e=>!Number.isInteger(e)||e<0))||l!==void 0&&(!Array.isArray(l)||l.some(e=>!Number.isInteger(e)||e<0))||!Array.isArray(o)||o.some(e=>typeof e!=`string`)||s&&s.length!==o.length)return!1;let u=o.length;return[...c??[],...l??[]].every(e=>e<u)},Ue=e=>{if(typeof e!=`object`||!e)return!1;let t=Reflect.get(e,`version`),n=Reflect.get(e,`sections`);return t!==3||!Array.isArray(n)?!1:n.every(e=>{if(typeof e!=`object`||!e)return!1;let t=Reflect.get(e,`map`),n=Reflect.get(e,`url`),r=Reflect.get(e,`offset`);if(typeof r!=`object`||!r)return!1;let i=Reflect.get(r,`column`),a=Reflect.get(r,`line`);return T(t)!==(typeof n==`string`&&n.length>0)&&typeof i==`number`&&Number.isInteger(i)&&i>=0&&typeof a==`number`&&Number.isInteger(a)&&a>=0})},We=e=>{let t=e.ignoreList??e.x_google_ignoreList;return t?.length?new Set(t):void 0},Ge=(e,t,n)=>{if(!e||d.test(t)||t.startsWith(`/`))return t;let r=e.endsWith(`/`)?e:`${e}/`,i=t.replace(/^\.\//,``);try{let e=d.test(r)?r:new URL(r,n).toString();return new URL(i,e).toString()}catch{let e=`${r}${i}`.split(`/`),t=[];for(let n of e)n===`..`?t.pop():n!==`.`&&t.push(n);return t.join(`/`)}},Ke=(e,t)=>e.sources.map(n=>Ge(e.sourceRoot,n,t)),qe=(e,t)=>{try{return{file:e.file,ignoredSourceIndices:We(e),mappings:Ee(e.mappings),names:e.names,sourceRoot:e.sourceRoot,sources:Ke(e,t),sourcesContent:e.sourcesContent,version:3}}catch{return null}},Je=async(e,t,n)=>{let r=[],i=-1,a=-1;for(let o of e.sections){if(o.offset.line<i||o.offset.line===i&&o.offset.column<=a)return null;i=o.offset.line,a=o.offset.column;let e=o.url?w(o.url,t):null,s=o.map??(e?await n(e):null);if(!s)return null;let c=e??t;try{r.push({map:{...s,ignoredSourceIndices:We(s),mappings:Ee(s.mappings),sources:Ke(s,c)},offset:o.offset})}catch{return null}}let o=new Set;for(let e of r)for(let t of e.map.sources)o.add(t);return{file:e.file,mappings:[],names:[],sections:r,sourceRoot:void 0,sources:Array.from(o),sourcesContent:void 0,version:3}},Ye=(e,t=!1)=>{if(!e)return!1;let n=e.trim();if(!n)return!1;let r=n.match(d);if(!r)return!0;let i=r[0].toLowerCase();return t||x.has(i)},Xe=()=>typeof window>`u`&&typeof process<`u`&&typeof process.versions?.node==`string`,Ze=e=>{try{let t=new URL(e);return(t.protocol===`http:`||t.protocol===`https:`)&&!t.username&&!t.password}catch{return!1}},E=e=>{try{return new URL(e).protocol}catch{return null}},D=e=>{let t=E(e);return t!==null&&Fe.has(t)},Qe=(e,t)=>{try{let n=new URL(e),r=new URL(t);return n.protocol===r.protocol&&n.host===r.host}catch{return!1}},$e=(e,t,n,r)=>{if(b.test(t))return!0;if(!Ye(t,r))return!1;let i=E(e),a=E(t),o=i!==null&&!x.has(i)||a!==null&&!x.has(a);return!(n||o||D(e)||D(t))||Qe(e,t)},et=e=>e===408||e===425||e===429||e>=500,tt=e=>{if(e.ok)return!0;if(et(e.status))throw new Me;return!1},nt=(e,t,n)=>!n||t.url.length===0||Qe(e,t.url),rt=e=>{if(e.timeoutMs===void 0||e.timeoutMs<0)return{cleanup:()=>{},signal:e.signal};let t=new AbortController,n=()=>t.abort(e.signal?.reason);e.signal?.aborted?n():e.signal?.addEventListener(`abort`,n,{once:!0});let r=setTimeout(()=>t.abort(new o(`Source map request timed out`)),e.timeoutMs);return{cleanup:()=>{clearTimeout(r),e.signal?.removeEventListener(`abort`,n)},signal:t.signal}},it=async(e,t)=>{let n=Number(e.headers.get(`content-length`));if(Number.isFinite(n)&&n>t)return null;if(!e.body){let n=await e.text();return new TextEncoder().encode(n).byteLength>t?null:n}let r=e.body.getReader(),i=new TextDecoder,a=[],o=0;try{for(;;){let{done:e,value:n}=await r.read();if(e)break;if(o+=n.byteLength,o>t)return await r.cancel(),null;a.push(i.decode(n,{stream:!0}))}return a.push(i.decode()),a.join(``)}finally{r.releaseLock()}},at=e=>{try{if(typeof globalThis.atob==`function`)return new TextDecoder().decode(Uint8Array.from(globalThis.atob(e),e=>e.charCodeAt(0)))}catch{return null}let t=e.replace(/\s/g,``).replace(/=+$/,``),n=[],r=0,i=0;for(let e of t){let t=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`.indexOf(e);if(t===-1)return null;r=r*64+t,i+=6,i>=8&&(i-=8,n.push(Math.floor(r/2**i)&255),r%=2**i)}return new TextDecoder().decode(Uint8Array.from(n))},ot=(e,t)=>{let n=e.indexOf(`,`);if(n===-1)return null;let r=e.slice(0,n),i=e.slice(n+1);if(i.length>t*2)return null;try{let e=r.toLowerCase().includes(`;base64`)?at(i):decodeURIComponent(i);return e===null||new TextEncoder().encode(e).byteLength>t?null:JSON.parse(e)}catch{return null}},st=async(e,t,n,r,i)=>{if(b.test(e))return ot(e,r);let a=await t(e,{redirect:i?`error`:`follow`,signal:n});if(!tt(a)||!nt(e,a,i))return null;let o=await it(a,r);if(o===null)return null;try{return JSON.parse(o)}catch{return null}},ct=async(e,t,n={})=>{let r=t!==void 0;if(!Ye(e,r))return null;let i=Xe(),a=i||D(e);if(i&&!t&&(!n.allowUnsafeServerFetch||!Ze(e)))return null;let o=t??(typeof globalThis.fetch==`function`?globalThis.fetch.bind(globalThis):void 0);if(!o)return null;let s=n.maxBundleSizeBytes??26214400,c=n.maxSourceMapSizeBytes??104857600;if(s<0||c<0)return null;let l=rt(n);try{let t=await o(e,{redirect:a?`error`:`follow`,signal:l.signal});if(!tt(t)||!nt(e,t,a))return null;let n=await it(t,s);if(n===null)return null;let i=He(e,n,t);if(!i||!$e(e,i,a,r))return null;let u=await st(i,o,l.signal,c,a);return T(u)?qe(u,i):Ue(u)?Je(u,i,async t=>{if(!$e(e,t,a,r))return null;let n=await st(t,o,l.signal,c,a);return T(n)?n:null}):null}finally{l.cleanup()}},lt=(e,t,n)=>{if(!n)return t;let r=e.get(n);return r||(r=new Map,e.set(n,r)),r},ut=e=>lt(je,Ae,e),dt=e=>lt(Pe,Ne,e),ft=(e,t)=>t.allowUnsafeServerFetch===void 0&&t.maxBundleSizeBytes===void 0&&t.maxSourceMapSizeBytes===void 0&&t.timeoutMs===void 0?e:`${e}\0${t.allowUnsafeServerFetch??``}\0${t.maxBundleSizeBytes??``}\0${t.maxSourceMapSizeBytes??``}\0${t.timeoutMs??``}`,O=async(e,t=!0,n,r={})=>{let i=t&&r.signal===void 0,a=ut(n),o=dt(n),s=ft(e,r);if(i&&a.has(s))return a.get(s)??null;let c=i?o.get(s):void 0;if(c)return(await c).sourceMap;let l=ct(e,n,r).then(e=>({sourceMap:e,isTransientFailure:!1}),()=>({sourceMap:null,isTransientFailure:!0}));i&&o.set(s,l);let{sourceMap:u,isTransientFailure:d}=await l;return i&&(o.delete(s),d||a.set(s,u)),u},k=async(e,t=!0,n)=>Promise.all(e.map(async e=>{if(!e.fileName)return e;let r=await O(e.fileName,t,n);if(!r||typeof e.lineNumber!=`number`||typeof e.columnNumber!=`number`)return e;let i=S(r,e.lineNumber,e.columnNumber);return i?{...e,source:i.fileName&&e.source?e.source.replace(e.fileName,i.fileName):e.source,fileName:i.fileName,functionName:i.functionName??e.functionName,lineNumber:i.lineNumber,columnNumber:i.columnNumber,isIgnoreListed:i.isIgnoreListed,isSymbolicated:!0}:e})),A=e=>e._debugStack instanceof Error&&typeof e._debugStack?.stack==`string`,pt=e=>`tag`in e&&typeof e.tag==`number`,j=e=>{let t=null;if(c(e,n=>{if(n===e)return!1;let r=n._debugOwner;return(r===e||e.alternate!==null&&r===e.alternate)&&n._debugStack instanceof Error&&(t=n._debugStack,!0)}),!t)return null;let{frames:n,isTrusted:r}=_(t);if(!r)return null;for(let e=n.length-1;e>=0;e--){let t=n[e];if(t.fileName)return{...t,lineNumber:t.enclosingLineNumber||t.lineNumber,columnNumber:t.enclosingColumnNumber||t.columnNumber}}return null},mt=()=>{let e=[];for(let t of ve())e.push({currentDispatcherRef:t,value:ye(t)}),v(t,null);return e},ht=e=>{for(let{currentDispatcherRef:t,value:n}of e)v(t,n)},M=e=>`\n in ${e}`,gt=(e,t)=>{let n=M(e);return t&&(n+=` (at ${t})`),n};let N=!1;const P=new WeakMap,F=(e,t)=>{if(!e||N)return``;let n=P.get(e);if(n!==void 0)return n;let r=oe();h(void 0),N=!0;let i=mt(),a=console.error,o=console.warn;console.error=()=>{},console.warn=()=>{};try{let n={DetermineComponentFrameRoot(){let n;try{if(t){let t=function(){throw Error()};if(Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){n=e}Reflect.construct(e,[],t)}else{try{Function.prototype.apply.call(t,void 0,[])}catch(e){n=e}Function.prototype.apply.call(e,t.prototype,[])}}else{try{throw Error()}catch(e){n=e}let t=Function.prototype.apply.call(e,void 0,[]);typeof t==`object`&&t&&`catch`in t&&typeof t.catch==`function`&&t.catch(()=>void 0)}}catch(e){if(e instanceof Error&&n instanceof Error&&typeof e.stack==`string`)return[e.stack,n.stack]}return[null,null]}};Object.defineProperty(n.DetermineComponentFrameRoot,"displayName",{value:`DetermineComponentFrameRoot`}),Object.getOwnPropertyDescriptor(n.DetermineComponentFrameRoot,`name`)?.configurable&&Object.defineProperty(n.DetermineComponentFrameRoot,"name",{value:`DetermineComponentFrameRoot`});let[r,i]=n.DetermineComponentFrameRoot();if(r&&i){let t=r.split(`
|
|
15
|
+
`),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]=g(n);if(!r?.fileName)break;let i=s(e);return i&&n.includes(`<anonymous>`)&&(n=n.replace(`<anonymous>`,i)),P.set(e,n),n}while(a>=1&&o>=0);break}}}finally{N=!1,h(r),ht(i),console.error=a,console.warn=o}let c=s(e),l=c?M(c):``;return P.set(e,l),l},_t=(e,t)=>{let n=``,r=i(e);switch(e.tag){case r.ActivityComponent:n=M(`Activity`);break;case r.ClassComponent:n=F(e.type,!0);break;case r.ForwardRef:n=F(l(e.type)??e.type,!1);break;case r.FunctionComponent:case r.SimpleMemoComponent:n=F(l(e.type)??e.type,!1);break;case r.HostComponent:case r.HostHoistable:case r.HostSingleton:typeof e.type==`string`&&(n=M(e.type));break;case r.LazyComponent:n=M(`Lazy`);break;case r.SuspenseComponent:n=e.child!==t&&t!==null?M(`Suspense Fallback`):M(`Suspense`);break;case r.SuspenseListComponent:n=M(`SuspenseList`);break;case r.ViewTransitionComponent:n=M(`ViewTransition`);break;default:return``}return n},vt=e=>{try{let t=``,n=e,r=null;do{t+=_t(n,r);let e=n._debugInfo;if(e&&Array.isArray(e))for(let n=e.length-1;n>=0;n--){let r=e[n];typeof r.name==`string`&&(t+=gt(r.name,r.env))}r=n,n=n.return}while(n);return t}catch(e){return e instanceof Error?`\nBippy couldn’t generate the stack: ${e.message}\n${e.stack}`:``}},yt=e=>{let t=e;if(!t)return``;t.startsWith(`Error: react-stack-top-frame
|
|
17
|
+
`)&&(t=t.slice(29));let n=t.indexOf(`
|
|
18
|
+
`);n!==-1&&(t=t.slice(n+1));let r=Math.max(...m.map(e=>t.indexOf(e)));if(r!==-1&&(r=t.lastIndexOf(`
|
|
19
|
+
`,r)),r!==-1)t=t.slice(0,r);else return``;return t},bt=e=>!!(e.functionName&&e.fileName&&wt(e.fileName)),xt=(e,t)=>e.fileName===t.fileName&&e.lineNumber===t.lineNumber&&e.columnNumber===t.columnNumber,St=e=>{let t=new Map;for(let n of e){if(!bt(n))continue;let e=n.functionName,r=t.get(e)??[];r.some(e=>xt(e,n))||(r.push(n),t.set(e,r))}return t},Ct=(e,t,n)=>{if(!e.functionName)return{...e,isServer:!0};let r=t.get(e.functionName);if(!r||r.length===0)return{...e,isServer:!0};let i=n.get(e.functionName)??0,a=r[i%r.length];return n.set(e.functionName,i+1),{...e,isServer:!0,fileName:a.fileName,lineNumber:a.lineNumber,columnNumber:a.columnNumber,source:e.source?.replace(`(at Server)`,`(${a.fileName}:${a.lineNumber}:${a.columnNumber})`)}},wt=e=>te.some(t=>e.startsWith(t)),Tt=e=>!e.isServer&&e.fileName&&wt(e.fileName)?{...e,isServer:!0}:e,Et=e=>{let t=[],n=e;for(;n;)if(pt(n)){let e=n;if(n=e._debugOwner,n&&A(e)){let{frames:n,isTrusted:r}=_(e._debugStack);if(r)for(let e of n)t.push(Tt(e))}}else{let e=n;if(n=e.owner,n&&e.debugStack instanceof Error)for(let n of _(e.debugStack).frames)t.push({...n,isServer:!0})}return t},Dt=e=>{let t=[];return c(e,e=>{if(!A(e))return;let{frames:n,isTrusted:r}=_(e._debugStack);r&&t.push(...n)},!0),t},Ot=e=>{let t=Dt(e),n=g(vt(e)),r=St(t),i=new Map;return n.map(e=>e.source!==void 0&&ie.test(e.source)?Ct(e,r,i):e).filter((e,t,n)=>{if(t===0)return!0;let r=n[t-1];return e.functionName!==r.functionName})},I=async(e,t=!0,n)=>k(Ot(e),t,n),kt=e=>!!e.fileName&&!e.isIgnoreListed,At=async(e,t=!0,n)=>{let r=Et(e);if(r.length>0){let i=j(e)??{};i.functionName=s(e.type)??i.functionName;let a=await k([i,...r],t,n);if(a.some((e,t)=>t>0&&kt(e)))return a}return I(e,t,n)},jt=e=>{let t=e._debugSource;return t?typeof t==`object`&&typeof t.fileName==`string`&&t.fileName!==`(native)`&&typeof t.lineNumber==`number`:!1},L=e=>e.fileName?{fileName:e.fileName,lineNumber:e.lineNumber,columnNumber:e.columnNumber,functionName:e.functionName}:null,Mt=e=>{if(!A(e))return null;let{frames:t,isTrusted:n}=_(e._debugStack);if(!n)return null;for(let e of t)if(e.fileName)return e;return null},Nt=async(e,t,n)=>{let r=s(e.type);if(!r)return null;let i=g(Error().stack??``),a=new Set;for(let e of i){let i=e.fileName;if(!i||a.has(i))continue;a.add(i);let o=await O(i,t,n);if(!o)continue;let s=ze(o,r);if(s&&!s.isIgnoreListed)return L(s)}return null},Pt=async(e,t=!0,n)=>{if(jt(e))return e._debugSource;let r=Mt(e)??j(e);if(r){let[e]=await k([r],t,n),i=L(e);if(i)return i}let i=await I(e,t,n);for(let e of i)if(e.fileName)return L(e);return Nt(e,t,n)},Ft=e=>e.split(`/`).filter(Boolean).length,It=e=>{let t=e.indexOf(`/`,1);if(t===-1)return e;let n=e.slice(0,t);if(Ft(n)!==1)return e;let r=e.slice(t);if(!p.test(r))return e;let i=r.split(`/`).filter(Boolean);if(i.length<2)return e;let a=i[0];return a.startsWith(`@`)||a.length>4?e:r},Lt=e=>{if(!e||f.some(t=>t===e))return``;let t=e,n=/^[a-zA-Z]:[\\/]/.test(t);if(t.startsWith(`http://`)||t.startsWith(`https://`)){try{t=new URL(t).pathname}catch{}t=It(t)}if(t.startsWith(`about://React/`)){let e=t.slice(14),n=e.indexOf(`/`),r=e.indexOf(`:`);t=n!==-1&&(r===-1||n<r)?e.slice(n+1):e}let r=!0;for(;r;){r=!1;for(let e of ee)if(t.startsWith(e)){t=t.slice(e.length),e===`file:///`&&(t=`/${t.replace(/^\/+/,``)}`),r=!0;break}}if(!n){let e=t.match(d);e&&(t=t.slice(e[0].length))}if(t.startsWith(`//`)){let e=t.indexOf(`/`,2);t=e===-1?``:t.slice(e)}let i=t.indexOf(`?`);if(i!==-1){let e=t.slice(i);re.test(e)&&(t=t.slice(0,i))}return t},Rt=e=>{let t=Lt(e);return!(!t||!p.test(t)||ne.test(t))},zt=[/(?:^|export\s+)(?:const|let|var)\s+(\w+)\s*=/,/(?:^|export\s+)function\s+(\w+)/,/(?:^|export\s+)class\s+(\w+)/],Bt=e=>{for(let t of zt){let n=e.match(t);if(n?.[1])return n[1]}return null},Vt=(e,t)=>{let n=e.split(`
|
|
20
|
+
`),r=t-1;if(r<0||r>=n.length)return null;for(let e=0;e<=5;e++){let t=e===0?[r]:[r-e,r+e];for(let e of t){if(e<0||e>=n.length)continue;let t=Bt(n[e]);if(t)return t}}return null},Ht=async(e,t=!0,n)=>{let r=j(e)??Ot(e).find(e=>e.fileName);if(!r?.fileName)return s(e.type);let i=await O(r.fileName,t,n);if(!i)return s(e.type);let a=null;if(typeof r.lineNumber==`number`&&typeof r.columnNumber==`number`&&(a=S(i,r.lineNumber,r.columnNumber)),!a?.fileName||!a.lineNumber)return s(e.type);let o=C(i,a.fileName);return(o?Vt(o,a.lineNumber):null)||(a.functionName??s(e.type))},Ut=Symbol.for(`react.context`),Wt=Symbol.for(`react.memo_cache_sentinel`);let R=[],z=null,B=null,V=null,H=null,U=0,W=null;const G=Error("Suspense interrupted this render. This error is an internal implementation detail of `use`."),K=e=>g(e.stack||``,{includeInElement:!1}),q=()=>{let e=V;return e!==null&&(V=e.next),e},J=e=>typeof e==`object`&&!!e&&`then`in e&&typeof e.then==`function`,Gt=e=>typeof e==`object`&&!!e&&`current`in e,Y=e=>typeof e==`object`&&!!e&&`_currentValue`in e,Kt=e=>typeof e==`object`&&!!e&&`context`in e&&`next`in e,qt=e=>typeof e==`object`&&!!e&&`render`in e&&typeof e.render==`function`,X=e=>{if(B===null)return e._currentValue;if(H===null)throw new n(`Context reads don’t match context dependencies.`);if(Object.hasOwn(H,`memoizedValue`)){let e=H.memoizedValue;return H=H.next,e}return e._currentValue},Z=(e,t,n,r=null)=>{R.push({displayName:r,primitive:e,stackError:Error(),value:t,dispatcherHookName:n})},Jt=e=>{if(typeof e==`object`&&e){if(J(e)){let t=W!==null&&U<W.length?W[U++]:e,n=J(t)?t:e;switch(n.status){case`fulfilled`:return Z(`Promise`,n.value,`Use`),n.value;case`rejected`:throw n.reason}throw Z(`Unresolved`,n,`Use`),G}if(`$$typeof`in e&&e.$$typeof===Ut&&Y(e)){let t={_currentValue:e._currentValue,displayName:typeof e.displayName==`string`?e.displayName:void 0},n=X(t);return Z(`Context (use)`,n,`Use`,t.displayName??`Context`),n}}throw new n(`use() received an unsupported value: `+String(e))},Yt=e=>{let t=X(e);return Z(`Context`,t,`Context`,e.displayName??null),t},Xt=e=>{let t=q(),n=t===null?typeof e==`function`?e():e:t.memoizedState;return Z(`State`,n,`State`),[n,()=>{}]},Zt=(e,t,n)=>{let r=q(),i=r===null?n===void 0?t:n(t):r.memoizedState;return Z(`Reducer`,i,`Reducer`),[i,()=>{}]},Qt=e=>{let t=q(),n=Gt(t?.memoizedState)?t.memoizedState:{current:e};return Z(`Ref`,n.current,`Ref`),n},$t=()=>{let e=q();return Z(`CacheRefresh`,e===null?()=>{}:e.memoizedState,`CacheRefresh`),()=>{}},en=e=>{q(),Z(`LayoutEffect`,e,`LayoutEffect`)},tn=e=>{q(),Z(`InsertionEffect`,e,`InsertionEffect`)},nn=e=>{q(),Z(`Effect`,e,`Effect`)},rn=e=>{q();let t=Gt(e)?e.current:void 0;Z(`ImperativeHandle`,t,`ImperativeHandle`)},an=(e,t)=>{Z(`DebugValue`,typeof t==`function`?t(e):e,`DebugValue`)},on=e=>{let t=q();return Z(`Callback`,Array.isArray(t?.memoizedState)?t.memoizedState[0]:e,`Callback`),e},sn=e=>{let t=q(),n=Array.isArray(t?.memoizedState)?t.memoizedState[0]:e();return Z(`Memo`,n,`Memo`),n},cn=(e,t)=>{let n=q();q();let r=n===null?t():n.memoizedState;return Z(`SyncExternalStore`,r,`SyncExternalStore`),r},ln=()=>{let e=q();q();let t=e?.memoizedState===!0;return Z(`Transition`,t,`Transition`),[t,()=>{}]},un=e=>{let t=q(),n=t===null?e:t.memoizedState;return Z(`DeferredValue`,n,`DeferredValue`),n},dn=()=>{let e=q(),t=typeof e?.memoizedState==`string`?e.memoizedState:``;return Z(`Id`,t,`Id`),t},fn=e=>{let t=B;if(t==null)return[];let n=t.updateQueue?.memoCache;if(n==null)return[];let r=n.data[n.index];return r===void 0&&(r=n.data[n.index]=Array.from({length:e},()=>Wt)),n.index++,r},pn=e=>{let t=q(),n=t===null?e:t.memoizedState;return Z(`Optimistic`,n,`Optimistic`),[n,()=>{}]},mn=(e,t)=>{let n,r=null;if(e!==null){let t=e.memoizedState;if(J(t))switch(t.status){case`fulfilled`:n=t.value;break;case`rejected`:r=t.reason;break;default:r=G,n=t}else n=t}else n=t;return{value:n,error:r}},hn=e=>(t,n)=>{let r=q();q(),q();let{value:i,error:a}=mn(r,n);if(Z(e,i,e),a!==null)throw a;return[i,()=>{},!1]},gn=hn(`ActionState`),Q={readContext:X,use:Jt,useCallback:on,useContext:Yt,useEffect:nn,useImperativeHandle:rn,useLayoutEffect:en,useInsertionEffect:tn,useMemo:sn,useReducer:Zt,useRef:Qt,useState:Xt,useDebugValue:an,useDeferredValue:un,useTransition:ln,useSyncExternalStore:cn,useId:dn,useHostTransitionStatus:()=>{let e=X({_currentValue:null});return Z(`HostTransitionStatus`,e,`HostTransitionStatus`),e},useFormState:hn(`FormState`),useActionState:gn,useOptimistic:pn,useMemoCache:fn,useCacheRefresh:$t,useEffectEvent:e=>(q(),Z(`EffectEvent`,e,`EffectEvent`),e)},_n=new Proxy(Q,{get(e,t){if(Object.hasOwn(e,t))return Reflect.get(e,t);throw new r(`The React dispatcher is missing method `+t)}}),vn=()=>{if(z!==null)return z;let e=new Map,t;try{Q.useContext({_currentValue:null}),Q.useState(null),Q.useReducer(e=>e,null),Q.useRef(null),Q.useCacheRefresh(),Q.useLayoutEffect(()=>{}),Q.useInsertionEffect(()=>{}),Q.useEffect(()=>{}),Q.useImperativeHandle(void 0),Q.useDebugValue(null),Q.useCallback(()=>{}),Q.useTransition(),Q.useSyncExternalStore(()=>()=>{},()=>null),Q.useDeferredValue(null),Q.useMemo(()=>null),Q.useOptimistic(null),Q.useFormState(e=>e,null),Q.useActionState(e=>e,null),Q.useHostTransitionStatus(),Q.use({$$typeof:Ut,_currentValue:null});let e=Promise.resolve(null);Reflect.set(e,`status`,`fulfilled`),Reflect.set(e,`value`,null),Q.use(e);try{Q.use(new Promise(()=>{}))}catch{}Q.useId(),Q.useEffectEvent(()=>{})}finally{t=R,R=[]}for(let n of t)e.set(n.primitive,K(n.stackError));return z=e,z};let yn=0;const bn=(e,t,n)=>{if(n>=t.length)return-1;let r=t[n].source;hookSearch:for(let i=0;i<e.length;i++)if(e[i].source===r){for(let r=n+1,a=i+1;r<t.length&&a<e.length;r++,a++)if(e[a].source!==t[r].source)continue hookSearch;return i}return-1},xn=(e,t)=>{let n=bn(t,e,yn);if(n!==-1)return n;for(let r=0;r<e.length&&r<5;r++)if(n=bn(t,e,r),n!==-1)return yn=r,n;return-1},$=e=>{if(!e)return``;let t=e.lastIndexOf(`[as `);if(t!==-1)return $(e.slice(t+4,-1));if(t=e.lastIndexOf(`.`),t=t===-1?0:t+1,e.slice(t).startsWith(`unstable_`)&&(t+=9),e.slice(t).startsWith(`experimental_`)&&(t+=13),e.slice(t,t+3)===`use`){if(e.length-t===3)return`Use`;t+=3}return e.slice(t)},Sn=(e,t)=>{let n=$(e);return t===`HostTransitionStatus`?n===t||n===`FormStatus`:n===t},Cn=(e,t)=>{let n=vn().get(t.primitive);if(n===void 0)return-1;for(let r=0;r<n.length&&r<e.length;r++)if(n[r].source!==e[r].source)return r<e.length-1&&Sn(e[r].functionName,t.dispatcherHookName)&&r++,r<e.length-1&&Sn(e[r].functionName,t.dispatcherHookName)&&r++,r;return-1},wn=(e,t)=>{let n=K(t.stackError),r=xn(e,n),i=Cn(n,t);return r===-1||i===-1||r-i<2?i===-1?[null,null]:[n[i-1]??null,null]:[n[i-1]??null,n.slice(i,r-1)]},Tn=new Set([`Context`,`Context (use)`,`DebugValue`,`Promise`,`Unresolved`,`HostTransitionStatus`]),En=(e,t)=>{let n=[],r=null,i=n,a=0,o=[];for(let s of t){let[t,c]=wn(e,s),l=s.displayName;if(l===null&&t!==null&&(l=$(t.functionName)||$(s.dispatcherHookName)),c!==null){let e=0;if(r!==null){for(;e<c.length&&e<r.length&&c[c.length-e-1].source===r[r.length-e-1].source;)e++;for(let t=r.length-1;t>e;t--)i=o.pop()??n}for(let t=c.length-e-1;t>=1;t--){let e=[],n=c[t],r={id:null,isStateEditable:!1,name:$(c[t-1].functionName),value:void 0,subHooks:e,hookSource:{lineNumber:n.lineNumber??null,columnNumber:n.columnNumber??null,functionName:n.functionName??null,fileName:n.fileName??null}};i.push(r),o.push(i),i=e}r=c}let{primitive:u}=s,d=Tn.has(u)?null:a++,ee=u===`Reducer`||u===`State`,te=l||u,f=c?.[0],p={lineNumber:f?.lineNumber??null,columnNumber:f?.columnNumber??null,functionName:f?.functionName??null,fileName:f?.fileName??null};i.push({id:d,isStateEditable:ee,name:te,value:s.value,subHooks:[],hookSource:p})}return Dn(n,null),n},Dn=(e,t)=>{let n=[];for(let t=0;t<e.length;t++){let r=e[t];r.name===`DebugValue`&&r.subHooks.length===0?(e.splice(t,1),t--,n.push(r)):Dn(r.subHooks,r)}t!==null&&(n.length===1?t.value=n[0].value:n.length>1&&(t.value=n.map(({value:e})=>e)))},On=(e,t)=>{let n=t;for(;n;){if(n.tag===i(n).ContextProvider){let t=n.type,r=typeof t==`object`&&t&&`_context`in t?t._context:void 0,i=Y(r)?r:Y(t)?t:null;i&&!e.has(i)&&(e.set(i,i._currentValue),i._currentValue=n.memoizedProps.value)}n=n.return}},kn=e=>{e.forEach((e,t)=>{t._currentValue=e})},An=e=>{if(e!==G)throw e instanceof r?e:new u(`Bippy couldn’t render the inspected component`,e)},jn=(e,t)=>{if(e&&typeof e==`object`&&`defaultProps`in e&&typeof e.defaultProps==`object`&&e.defaultProps!==null){let n={...t},r=e.defaultProps;for(let[e,t]of Object.entries(r))n[e]===void 0&&(n[e]=t);return n}return t},Mn=()=>{let e={};for(let t in console)try{e[t]=Reflect.get(console,t),Reflect.set(console,t,()=>{})}catch{}return e},Nn=e=>{for(let t in e)try{Reflect.set(console,t,e[t])}catch{}},Pn=(e,t)=>{let n=ye(e);v(e,_n);let r=[],i;try{i=Error(),t()}catch(e){An(e)}finally{r=R,R=[],v(e,n)}let a=i===void 0?[]:K(i);return En(a,r)},Fn=()=>{let e=ve()[0];if(!e)throw new n(`Bippy couldn’t find a React renderer. Load React and install Bippy’s hook.`);return e},In=e=>{let t=[`dependencies_old`,`dependencies_new`].find(t=>Object.hasOwn(e,t));if(Object.hasOwn(e,`dependencies`)){let t=e.dependencies;H=t===null?null:t.firstContext}else if(t){let n=Reflect.get(e,t),r=typeof n==`object`&&n&&`firstContext`in n?n.firstContext:null;H=Kt(r)?r:null}else if(Object.hasOwn(e,`contextDependencies`)){let t=Reflect.get(e,`contextDependencies`),n=typeof t==`object`&&t&&`first`in t?t.first:null;H=Kt(n)?n:null}else throw new n(`Bippy doesn’t support this React version.`)},Ln=e=>{let t=Fn(),r=i(e);if(e.tag!==r.FunctionComponent&&e.tag!==r.SimpleMemoComponent&&e.tag!==r.ForwardRef)throw new n(`Hook inspection requires a function component Fiber.`);vn(),V=e.memoizedState,B=e;let a=e.dependencies?._debugThenableState,o=Array.isArray(a)?a:a?.thenables;W=Array.isArray(o)?o:null,U=0,In(e);let s=e.type,c=e.memoizedProps;s!==e.elementType&&(c=jn(s,c));let l=Mn(),u=new Map;try{if(H!==null&&!Object.hasOwn(H,`memoizedValue`)&&On(u,e),e.tag===r.ForwardRef){if(!qt(s))throw new n(`ForwardRef fiber is missing its render function.`);return Pn(t,()=>{s.render(c,e.ref)})}if(typeof s!=`function`)throw new n(`Function component fiber is missing its component function.`);return Pn(t,()=>{s(c)})}finally{B=null,V=null,H=null,W=null,U=0,kn(u),Nn(l)}},Rn=new Set([`Effect`,`LayoutEffect`,`InsertionEffect`,`ImperativeHandle`,`DebugValue`]),zn=/(?:const|let|var)\s+((?:\[[\s\S]*?\]|\w+))\s*=\s*(?:[\w$.]+\.)*use[A-Z]\w*\s*(?:<[\s\S]*?>)?\s*\(/g,Bn=e=>`${e.fileName??``}:${e.lineNumber??0}:${e.columnNumber??0}`,Vn=e=>{let t=[],n=e=>{for(let r of e)Rn.has(r.name)||(t.push(r),r.subHooks.length>0&&n(r.subHooks))};return n(e),t},Hn=e=>{let t=e.trim();if(t.startsWith(`[`)){let e=t.match(/\[\s*(\w+)/);return e?e[1]:null}return/^\w+$/.test(t)?t:null},Un=(e,t,n)=>{let r=e.split(`
|
|
12
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(`
|
|
13
|
-
`),s=[...o.matchAll(
|
|
14
|
-
`)+1+n,l=s.filter(e=>e.index<=c).at(-1);return l?
|
|
22
|
+
`),s=[...o.matchAll(zn)],c=o.lastIndexOf(`
|
|
23
|
+
`)+1+n,l=s.filter(e=>e.index<=c).at(-1);return l?Hn(l[1]):null},Wn=async(e,t,n,r)=>{let{sourceContentCache:i,fetchFn:a}=r,o=await O(e,!0,a);if(o){let e=S(o,t,n);if(e?.fileName&&e.lineNumber!==void 0){let t=C(o,e.fileName);if(t)return{sourceCode:t,lineNumber:e.lineNumber,columnNumber:e.columnNumber??0}}}if(!i.has(e))try{let t=await(a??fetch)(e);i.set(e,t.ok?await t.text():null)}catch{i.set(e,null)}let s=i.get(e)??null;return s?{sourceCode:s,lineNumber:t,columnNumber:n}:null},Gn=async(e,t)=>{let n=new Map,r=Vn(e);if(r.length===0)return n;let i={sourceContentCache:new Map,fetchFn:t};return await Promise.all(r.map(async e=>{let t=e.hookSource;if(!t||!t.fileName||t.lineNumber===null||t.columnNumber===null)return;let r=await Wn(t.fileName,t.lineNumber,t.columnNumber,i);if(!r)return;let a=Un(r.sourceCode,r.lineNumber,r.columnNumber);if(a){let e=Bn(t);n.set(e,a)}})),n};export{a as BippyError,n as BippyHookInspectionError,u as BippyHookRenderError,o as BippySourceMapError,r as BippyUnsupportedHookError,yt as formatOwnerStack,Ht as getDisplayNameFromSource,Ln as getFiberHooks,At as getOwnerStack,I as getParentStack,Pt as getSource,C as getSourceContentFromSourceMap,S as getSourceFromSourceMap,ze as getSourceFromSourceMapByFunctionName,O as getSourceMap,A as hasDebugStack,Rt as isSourceFile,Lt as normalizeFileName,Gn as parseHookNames,g as parseStack,k as symbolicateStack};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bippy",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.0-dev.07e6032",
|
|
4
4
|
"description": "hack into react internals",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"bippy",
|
|
@@ -34,7 +34,6 @@
|
|
|
34
34
|
"type": "module",
|
|
35
35
|
"main": "dist/index.js",
|
|
36
36
|
"module": "dist/index.js",
|
|
37
|
-
"browser": "dist/index.iife.js",
|
|
38
37
|
"types": "dist/index.d.ts",
|
|
39
38
|
"exports": {
|
|
40
39
|
"./package.json": "./package.json",
|
|
@@ -48,16 +47,6 @@
|
|
|
48
47
|
"default": "./dist/index.cjs"
|
|
49
48
|
}
|
|
50
49
|
},
|
|
51
|
-
"./core": {
|
|
52
|
-
"import": {
|
|
53
|
-
"types": "./dist/core.d.ts",
|
|
54
|
-
"default": "./dist/core.js"
|
|
55
|
-
},
|
|
56
|
-
"require": {
|
|
57
|
-
"types": "./dist/core.d.cts",
|
|
58
|
-
"default": "./dist/core.cjs"
|
|
59
|
-
}
|
|
60
|
-
},
|
|
61
50
|
"./install-hook-only": {
|
|
62
51
|
"import": {
|
|
63
52
|
"types": "./dist/install-hook-only.d.ts",
|
|
@@ -78,16 +67,6 @@
|
|
|
78
67
|
"default": "./dist/source.cjs"
|
|
79
68
|
}
|
|
80
69
|
},
|
|
81
|
-
"./react-refresh": {
|
|
82
|
-
"import": {
|
|
83
|
-
"types": "./dist/react-refresh.d.ts",
|
|
84
|
-
"default": "./dist/react-refresh.js"
|
|
85
|
-
},
|
|
86
|
-
"require": {
|
|
87
|
-
"types": "./dist/react-refresh.d.cts",
|
|
88
|
-
"default": "./dist/react-refresh.cjs"
|
|
89
|
-
}
|
|
90
|
-
},
|
|
91
70
|
"./dist/*": "./dist/*.js",
|
|
92
71
|
"./dist/*.js": "./dist/*.js",
|
|
93
72
|
"./dist/*.cjs": "./dist/*.cjs"
|
|
@@ -95,8 +74,16 @@
|
|
|
95
74
|
"publishConfig": {
|
|
96
75
|
"access": "public"
|
|
97
76
|
},
|
|
77
|
+
"dependencies": {
|
|
78
|
+
"@types/react-reconciler": "^0.33.0"
|
|
79
|
+
},
|
|
98
80
|
"devDependencies": {
|
|
81
|
+
"@babylonjs/core": "^9.20.0",
|
|
82
|
+
"@babylonjs/gui": "^9.20.0",
|
|
99
83
|
"@jridgewell/sourcemap-codec": "^1.5.0",
|
|
84
|
+
"@opentui/core": "^0.5.1",
|
|
85
|
+
"@opentui/react": "^0.5.1",
|
|
86
|
+
"@pixi/react": "^8.0.5",
|
|
100
87
|
"@react-pdf/renderer": "^4.5.1",
|
|
101
88
|
"@react-three/fiber": "^9.6.1",
|
|
102
89
|
"@react-three/test-renderer": "^9.1.0",
|
|
@@ -109,25 +96,37 @@
|
|
|
109
96
|
"happy-dom": "^15.11.7",
|
|
110
97
|
"ink": "^7.1.1",
|
|
111
98
|
"ink-testing-library": "^4.0.0",
|
|
99
|
+
"konva": "^10.3.0",
|
|
100
|
+
"pixi.js": "^8.19.0",
|
|
112
101
|
"publint": "^0.3.0",
|
|
113
102
|
"react": "19.0.0",
|
|
103
|
+
"react-17": "npm:react@17.0.2",
|
|
104
|
+
"react-18": "npm:react@18.3.1",
|
|
105
|
+
"react-babylonjs": "^4.0.2",
|
|
106
|
+
"react-devtools-core": "7.0.1",
|
|
114
107
|
"react-devtools-inline": "^6.0.1",
|
|
115
108
|
"react-dom": "19.0.0",
|
|
109
|
+
"react-dom-17": "npm:react-dom@17.0.2",
|
|
110
|
+
"react-dom-18": "npm:react-dom@18.3.1",
|
|
111
|
+
"react-konva": "^19.2.5",
|
|
116
112
|
"react-nil": "^2.0.0",
|
|
117
|
-
"react-refresh": "^0.16.0",
|
|
118
113
|
"remotion": "^4.0.496",
|
|
119
114
|
"three": "^0.185.1",
|
|
120
115
|
"tsx": "^4.21.0",
|
|
121
|
-
"
|
|
116
|
+
"typescript": "^5.9.3",
|
|
117
|
+
"vite-plus": "latest",
|
|
118
|
+
"zod": "^4.4.3"
|
|
122
119
|
},
|
|
123
120
|
"peerDependencies": {
|
|
124
121
|
"react": ">=17.0.1"
|
|
125
122
|
},
|
|
126
123
|
"scripts": {
|
|
127
|
-
"build": "NODE_ENV=production vp pack && tsx scripts/
|
|
124
|
+
"build": "NODE_ENV=production vp pack && tsx scripts/check-react-entry.ts",
|
|
125
|
+
"check:react-internals": "tsx scripts/generate-react-internals.ts --check",
|
|
126
|
+
"coverage": "vp test --coverage",
|
|
128
127
|
"dev": "NODE_ENV=development vp pack --watch",
|
|
128
|
+
"generate:react-internals": "tsx scripts/generate-react-internals.ts",
|
|
129
129
|
"publint": "publint",
|
|
130
|
-
"test": "vp test"
|
|
131
|
-
"coverage": "vp test --coverage"
|
|
130
|
+
"test": "vp test"
|
|
132
131
|
}
|
|
133
132
|
}
|