bippy 0.6.1-dev.61475ed → 0.6.1-dev.d7876ea

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.
Files changed (62) hide show
  1. package/README.md +32 -48
  2. package/dist/core.cjs +1 -1
  3. package/dist/core.d.cts +42 -56
  4. package/dist/core.d.ts +42 -56
  5. package/dist/core.js +1 -1
  6. package/dist/core2.cjs +9 -0
  7. package/dist/core2.d.cts +3 -3
  8. package/dist/core2.d.ts +3 -3
  9. package/dist/core2.js +9 -0
  10. package/dist/errors.d.cts +436 -0
  11. package/dist/errors.d.ts +436 -0
  12. package/dist/index.cjs +1 -1
  13. package/dist/index.d.cts +3 -3
  14. package/dist/index.d.ts +3 -3
  15. package/dist/index.iife.js +1 -1
  16. package/dist/index.js +1 -1
  17. package/dist/install-hook-only.cjs +1 -1
  18. package/dist/install-hook-only.d.cts +1 -1
  19. package/dist/install-hook-only.d.ts +1 -1
  20. package/dist/install-hook-only.iife.js +1 -1
  21. package/dist/install-hook-only.js +1 -1
  22. package/dist/rdt-hook.cjs +1 -1
  23. package/dist/rdt-hook.js +1 -1
  24. package/dist/source.cjs +14 -4
  25. package/dist/source.d.cts +18 -9
  26. package/dist/source.d.ts +18 -9
  27. package/dist/source.js +14 -4
  28. package/package.json +21 -15
  29. package/src/core.ts +343 -253
  30. package/src/errors.ts +99 -0
  31. package/src/generated/react-work-tags.d.ts +261 -0
  32. package/src/generated/react-work-tags.js +240 -0
  33. package/src/rdt-hook.ts +154 -149
  34. package/src/react-internals.ts +65 -0
  35. package/src/semver.ts +78 -0
  36. package/src/source/constants.ts +1 -1
  37. package/src/source/error-stack.ts +11 -0
  38. package/src/source/get-source.ts +2 -1
  39. package/src/source/index.ts +9 -1
  40. package/src/source/inspect-hooks.ts +199 -164
  41. package/src/source/owner-stack.ts +84 -114
  42. package/src/source/parse-debug-stack.ts +4 -4
  43. package/src/source/parse-stack.ts +1 -1
  44. package/src/source/symbolication.ts +365 -89
  45. package/src/types.ts +165 -334
  46. package/src/unsubscribe.ts +2 -2
  47. package/dist/get-source.cjs +0 -19
  48. package/dist/get-source.js +0 -19
  49. package/dist/react-refresh.cjs +0 -9
  50. package/dist/react-refresh.d.cts +0 -66
  51. package/dist/react-refresh.d.ts +0 -66
  52. package/dist/react-refresh.js +0 -9
  53. package/dist/unsubscribe.d.cts +0 -298
  54. package/dist/unsubscribe.d.ts +0 -298
  55. package/src/react-refresh/constants.ts +0 -9
  56. package/src/react-refresh/detect-hmr-transport.ts +0 -33
  57. package/src/react-refresh/index.ts +0 -173
  58. package/src/react-refresh/metro-hmr-transport.ts +0 -188
  59. package/src/react-refresh/next-webpack-hmr-transport.ts +0 -72
  60. package/src/react-refresh/normalize-hmr-file-path.ts +0 -24
  61. package/src/react-refresh/types.ts +0 -7
  62. package/src/react-refresh/vite-hmr-transport.ts +0 -116
package/src/types.ts CHANGED
@@ -1,288 +1,101 @@
1
1
  import type { ReactNode } from "react";
2
+ import type ReactReconciler from "react-reconciler";
3
+ import type { HostWorkTag, ReactWorkTag } from "./react-internals.js";
2
4
 
3
- // @types/react-reconciler uses `export = ReactReconciler` (CJS namespace),
4
- // which downstream bundlers can't resolve as ESM exports. These types are
5
- // inlined from @types/react-reconciler@0.28 to avoid the dependency.
6
-
7
- // Simple type aliases most are opaque in the original
8
- export type BundleType = 0 | 1;
9
- export type Flags = number;
10
- export type Lanes = number;
11
- export type TypeOfMode = number;
12
- export type RootTag = 0 | 1 | 2;
13
- export type LanePriority =
14
- | 0
15
- | 1
16
- | 2
17
- | 3
18
- | 4
19
- | 5
20
- | 6
21
- | 7
22
- | 8
23
- | 9
24
- | 10
25
- | 11
26
- | 12
27
- | 13
28
- | 14
29
- | 15
30
- | 16
31
- | 17;
32
- export type WorkTag =
33
- | 0
34
- | 1
35
- | 2
36
- | 3
37
- | 4
38
- | 5
39
- | 6
40
- | 7
41
- | 8
42
- | 9
43
- | 10
44
- | 11
45
- | 12
46
- | 13
47
- | 14
48
- | 15
49
- | 16
50
- | 17
51
- | 18
52
- | 19
53
- | 20
54
- | 21
55
- | 22
56
- | 23
57
- | 24
58
- | 25
59
- | 26
60
- | 27
61
- | 28
62
- | 29
63
- | 30
64
- | 31;
65
- export type HookType =
66
- | "useState"
67
- | "useReducer"
68
- | "useContext"
69
- | "useRef"
70
- | "useEffect"
71
- | "useLayoutEffect"
72
- | "useCallback"
73
- | "useMemo"
74
- | "useImperativeHandle"
75
- | "useDebugValue"
76
- | "useDeferredValue"
77
- | "useTransition"
78
- | "useMutableSource"
79
- | "useOpaqueIdentifier"
80
- | "useCacheRefresh";
81
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
82
- export type FiberRoot = any;
83
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
- export type MutableSource = any;
85
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
- export type OpaqueHandle = any;
87
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
88
- export type OpaqueRoot = any;
89
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
90
- export type React$AbstractComponent<_Config, _Instance = unknown> = any;
91
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
- export type HostConfig = Record<string, any>;
93
-
94
- // Structural interfaces
95
- export interface Source {
96
- fileName: string;
97
- lineNumber: number;
98
- }
99
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
100
- export interface RefObject {
101
- current: any;
102
- }
103
- export interface Thenable<T> {
104
- then(resolve: () => T, reject?: () => T): T;
105
- }
5
+ export type BundleType = ReactReconciler.BundleType;
6
+ export type Flags = ReactReconciler.Flags;
7
+ export type HookType = ReactReconciler.HookType;
8
+ export type LanePriority = ReactReconciler.LanePriority;
9
+ export type Lanes = ReactReconciler.Lanes;
10
+ export type MutableSource = ReactReconciler.MutableSource;
11
+ export type OpaqueHandle = ReactReconciler.OpaqueHandle;
12
+ export type OpaqueRoot = ReactReconciler.OpaqueRoot;
13
+ export type React$AbstractComponent<
14
+ Config,
15
+ Instance = unknown,
16
+ > = ReactReconciler.React$AbstractComponent<Config, Instance>;
17
+ export type RootTag = ReactReconciler.RootTag;
18
+ export type TypeOfMode = ReactReconciler.TypeOfMode;
19
+ export type WorkTag = ReactReconciler.WorkTag | ReactWorkTag;
106
20
 
107
- export interface ReactContext<T> {
108
- $$typeof: symbol | number;
109
- Consumer: ReactContext<T>;
110
- Provider: ReactProviderType<T>;
111
- _calculateChangedBits: ((a: T, b: T) => number) | null;
112
- _currentValue: T;
113
- _currentValue2: T;
114
- _threadCount: number;
115
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
116
- _currentRenderer?: Record<string, any> | null;
117
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
118
- _currentRenderer2?: Record<string, any> | null;
119
- displayName?: string;
120
- }
21
+ export interface HostConfig<
22
+ Type = unknown,
23
+ HostProps = unknown,
24
+ Container = unknown,
25
+ Instance = unknown,
26
+ TextInstance = unknown,
27
+ SuspenseInstance = unknown,
28
+ HydratableInstance = unknown,
29
+ FormInstance = unknown,
30
+ PublicInstance = unknown,
31
+ HostContext = unknown,
32
+ ChildSet = unknown,
33
+ TimeoutHandle = unknown,
34
+ NoTimeout = unknown,
35
+ TransitionStatus = unknown,
36
+ > extends ReactReconciler.HostConfig<
37
+ Type,
38
+ HostProps,
39
+ Container,
40
+ Instance,
41
+ TextInstance,
42
+ SuspenseInstance,
43
+ HydratableInstance,
44
+ FormInstance,
45
+ PublicInstance,
46
+ HostContext,
47
+ ChildSet,
48
+ TimeoutHandle,
49
+ NoTimeout,
50
+ TransitionStatus
51
+ > {}
121
52
 
122
- export interface ReactProviderType<T> {
123
- $$typeof: symbol | number;
124
- _context: ReactContext<T>;
125
- }
126
- export interface ReactProvider<T> {
127
- $$typeof: symbol | number;
128
- type: ReactProviderType<T>;
129
- key: null | string;
130
- ref: null;
131
- props: { value: T; children?: ReactNode };
132
- }
133
- export interface ReactConsumer<T> {
134
- $$typeof: symbol | number;
135
- type: ReactContext<T>;
136
- key: null | string;
137
- ref: null;
138
- props: { children: (value: T) => ReactNode; unstable_observedBits?: number };
139
- }
140
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
141
- export interface ReactPortal {
142
- $$typeof: symbol | number;
143
- key: null | string;
144
- containerInfo: any;
145
- children: ReactNode;
146
- implementation: any;
147
- }
53
+ export interface Source extends ReactReconciler.Source {}
54
+ export interface RefObject extends ReactReconciler.RefObject {}
55
+ export interface Thenable<T> extends ReactReconciler.Thenable<T> {}
56
+
57
+ export interface ReactContext<T> extends ReactReconciler.ReactContext<T> {}
58
+
59
+ export interface ReactProviderType<T> extends ReactReconciler.ReactProviderType<T> {}
60
+ export interface ReactProvider<T> extends ReactReconciler.ReactProvider<T> {}
61
+ export interface ReactConsumer<T> extends ReactReconciler.ReactConsumer<T> {}
62
+ export interface ReactPortal extends ReactReconciler.ReactPortal {}
63
+
64
+ export interface ComponentSelector extends ReactReconciler.ComponentSelector {}
65
+ export interface HasPseudoClassSelector extends ReactReconciler.HasPseudoClassSelector {}
66
+ export interface RoleSelector extends ReactReconciler.RoleSelector {}
67
+ export interface TextSelector extends ReactReconciler.TextSelector {}
68
+ export interface TestNameSelector extends ReactReconciler.TestNameSelector {}
69
+ export type Selector = ReactReconciler.Selector;
148
70
 
149
- export interface ComponentSelector {
150
- $$typeof: symbol | number;
151
- value: React$AbstractComponent<never, unknown>;
152
- }
153
- export interface HasPseudoClassSelector {
154
- $$typeof: symbol | number;
155
- value: Selector[];
156
- }
157
- export interface RoleSelector {
158
- $$typeof: symbol | number;
159
- value: string;
160
- }
161
- export interface TextSelector {
162
- $$typeof: symbol | number;
163
- value: string;
164
- }
165
- export interface TestNameSelector {
166
- $$typeof: symbol | number;
167
- value: string;
168
- }
169
- export type Selector =
170
- | ComponentSelector
171
- | HasPseudoClassSelector
172
- | RoleSelector
173
- | TextSelector
174
- | TestNameSelector;
175
-
176
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
177
71
  export interface DevToolsConfig<
178
- Instance = any,
179
- TextInstance = any,
180
- RendererInspectionConfig = any,
181
- > {
182
- bundleType: BundleType;
183
- version: string;
184
- rendererPackageName: string;
185
- findFiberByHostInstance?: (instance: Instance | TextInstance) => ReactFiber | null;
186
- rendererConfig?: RendererInspectionConfig;
187
- }
72
+ Instance = unknown,
73
+ TextInstance = unknown,
74
+ RendererInspectionConfig = unknown,
75
+ > extends ReactReconciler.DevToolsConfig<Instance, TextInstance, RendererInspectionConfig> {}
188
76
 
189
- export interface SuspenseHydrationCallbacks<SuspenseInstance = unknown> {
190
- onHydrated?: (suspenseInstance: SuspenseInstance) => void;
191
- onDeleted?: (suspenseInstance: SuspenseInstance) => void;
192
- }
77
+ export interface SuspenseHydrationCallbacks<
78
+ SuspenseInstance = unknown,
79
+ > extends ReactReconciler.SuspenseHydrationCallbacks<SuspenseInstance> {}
193
80
 
194
- export interface TransitionTracingCallbacks {
195
- onTransitionStart?: (transitionName: string, startTime: number) => void;
196
- onTransitionProgress?: (
197
- transitionName: string,
198
- startTime: number,
199
- currentTime: number,
200
- pending: Array<{ name: null | string }>,
201
- ) => void;
202
- onTransitionIncomplete?: (
203
- transitionName: string,
204
- startTime: number,
205
- deletions: Array<{ type: string; name?: string; newName?: string; endTime: number }>,
206
- ) => void;
207
- onTransitionComplete?: (transitionName: string, startTime: number, endTime: number) => void;
208
- onMarkerProgress?: (
209
- transitionName: string,
210
- marker: string,
211
- startTime: number,
212
- currentTime: number,
213
- pending: Array<{ name: null | string }>,
214
- ) => void;
215
- onMarkerIncomplete?: (
216
- transitionName: string,
217
- marker: string,
218
- startTime: number,
219
- deletions: Array<{ type: string; name?: string; newName?: string; endTime: number }>,
220
- ) => void;
221
- onMarkerComplete?: (
222
- transitionName: string,
223
- marker: string,
224
- startTime: number,
225
- endTime: number,
226
- ) => void;
227
- }
81
+ export interface TransitionTracingCallbacks extends ReactReconciler.TransitionTracingCallbacks {}
228
82
 
229
- // The base Fiber interface from react-reconciler, used to derive bippy's Fiber below
230
- interface ReactFiber {
231
- tag: WorkTag;
232
- key: null | string;
233
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
234
- elementType: any;
235
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
236
- type: any;
237
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
238
- stateNode: any;
239
- return: ReactFiber | null;
240
- child: ReactFiber | null;
241
- sibling: ReactFiber | null;
242
- index: number;
243
- ref: null | (((handle: unknown) => void) & { _stringRef?: string | null }) | RefObject;
244
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
245
- pendingProps: any;
246
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
247
- memoizedProps: any;
248
- updateQueue: unknown;
249
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
250
- memoizedState: any;
251
- dependencies: Dependencies | null;
252
- mode: TypeOfMode;
253
- flags: Flags;
254
- subtreeFlags: Flags;
255
- deletions: ReactFiber[] | null;
256
- nextEffect: ReactFiber | null;
257
- firstEffect: ReactFiber | null;
258
- lastEffect: ReactFiber | null;
259
- lanes: Lanes;
260
- childLanes: Lanes;
261
- alternate: ReactFiber | null;
262
- actualDuration?: number;
263
- actualStartTime?: number;
264
- selfBaseDuration?: number;
265
- treeBaseDuration?: number;
266
- _debugID?: number;
267
- _debugSource?: Source | null;
268
- _debugOwner?: ReactFiber | null;
269
- _debugIsCurrentlyTiming?: boolean;
270
- _debugNeedsRemount?: boolean;
271
- _debugHookTypes?: HookType[] | null;
83
+ // HACK: React 17 exposes observedBits while React 18+ exposes memoizedValue on context dependencies.
84
+ export interface ContextDependency<T> extends Omit<
85
+ ReactReconciler.ContextDependency<T>,
86
+ "observedBits"
87
+ > {
88
+ memoizedValue?: T;
89
+ observedBits?: number;
272
90
  }
273
91
 
274
- // ── bippy types (not from react-reconciler) ──
275
-
276
- export interface ContextDependency<T> {
277
- context: ReactContext<T>;
278
- memoizedValue: T;
279
- next: ContextDependency<unknown> | null;
280
- observedBits: number;
92
+ export interface DebugThenableState {
93
+ thenables?: unknown[];
281
94
  }
282
95
 
283
- export interface Dependencies {
96
+ export interface Dependencies extends Omit<ReactReconciler.Dependencies, "firstContext"> {
97
+ _debugThenableState?: DebugThenableState | unknown[];
284
98
  firstContext: ContextDependency<unknown> | null;
285
- lanes: Lanes;
286
99
  }
287
100
 
288
101
  export interface Effect {
@@ -294,14 +107,6 @@ export interface Effect {
294
107
  tag: number;
295
108
  }
296
109
 
297
- export interface Family {
298
- current: unknown;
299
- }
300
-
301
- /**
302
- * React 19 flight metadata for a server component owner (ReactComponentInfo).
303
- * Unlike client owners it has no `tag`; the owner chain continues via `owner`.
304
- */
305
110
  export interface ServerComponentInfo {
306
111
  name?: string;
307
112
  env?: string;
@@ -309,19 +114,36 @@ export interface ServerComponentInfo {
309
114
  debugStack?: Error | null;
310
115
  }
311
116
 
312
- export interface RendererRefreshUpdate {
313
- staleFamilies: Set<Family>;
314
- updatedFamilies: Set<Family>;
117
+ export interface ReactDebugInfo {
118
+ debugLocation?: unknown;
119
+ env?: string;
120
+ name?: string;
121
+ }
122
+
123
+ export interface ReactMemoCache {
124
+ data: unknown[][];
125
+ index: number;
126
+ }
127
+
128
+ export interface FiberDebugSource extends Source {
129
+ columnNumber?: number;
315
130
  }
316
131
 
317
- /**
318
- * Represents a react-internal Fiber node.
319
- */
320
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
321
- export type Fiber<T = any> = Omit<
322
- ReactFiber,
132
+ export interface FiberUpdateQueue {
133
+ [key: string]: unknown;
134
+ dispatch?: unknown;
135
+ lastEffect: Effect | null;
136
+ memoCache?: ReactMemoCache;
137
+ }
138
+
139
+ // HACK: @types/react-reconciler does not yet include React 19 debug fields or recursive server owners.
140
+ export interface Fiber<T = unknown> extends Omit<
141
+ ReactReconciler.Fiber,
323
142
  | "alternate"
143
+ | "_debugOwner"
144
+ | "_debugSource"
324
145
  | "child"
146
+ | "deletions"
325
147
  | "dependencies"
326
148
  | "memoizedProps"
327
149
  | "memoizedState"
@@ -329,38 +151,35 @@ export type Fiber<T = any> = Omit<
329
151
  | "return"
330
152
  | "sibling"
331
153
  | "stateNode"
154
+ | "tag"
332
155
  | "updateQueue"
333
- > & {
334
- _debugInfo?: Array<{
335
- debugLocation?: unknown;
336
- env?: string;
337
- name?: string;
338
- }>;
339
- _debugOwner?: Fiber;
340
- // react <19
341
- _debugSource?: {
342
- columnNumber?: number;
343
- fileName: string;
344
- lineNumber: number;
345
- };
346
- // react 19+
347
- // https://github.com/facebook/react/issues/29092?utm_source=chatgpt.com
156
+ > {
157
+ _debugInfo?: ReactDebugInfo[];
158
+ _debugOwner?: Fiber | ServerComponentInfo | null;
159
+ _debugSource?: FiberDebugSource | null;
348
160
  _debugStack?: Error & { stack: string };
349
161
  alternate: Fiber | null;
350
162
  child: Fiber | null;
163
+ deletions: Fiber[] | null;
351
164
  dependencies: Dependencies | null;
165
+ effectTag?: number;
352
166
  memoizedProps: Props;
353
- memoizedState: MemoizedState;
167
+ memoizedState: MemoizedState | null;
354
168
  pendingProps: Props;
355
-
356
169
  return: Fiber | null;
357
170
  sibling: Fiber | null;
358
171
  stateNode: T;
359
- updateQueue: {
360
- [key: string]: unknown;
361
- lastEffect: Effect | null;
362
- };
363
- };
172
+ tag: WorkTag;
173
+ updateQueue: FiberUpdateQueue | null;
174
+ }
175
+
176
+ export interface HostFiber<T = unknown> extends Fiber<T> {
177
+ tag: HostWorkTag;
178
+ }
179
+
180
+ export interface FiberRoot {
181
+ current: Fiber;
182
+ }
364
183
 
365
184
  export interface MemoizedState {
366
185
  [key: string]: unknown;
@@ -372,38 +191,55 @@ export interface Props {
372
191
  [key: string]: unknown;
373
192
  }
374
193
 
194
+ export interface ReactDevToolsEventHandler {
195
+ (data: unknown): void;
196
+ }
197
+
375
198
  export interface ReactDevToolsGlobalHook {
376
199
  _instrumentationIsActive?: boolean;
377
200
  _instrumentationSource?: string;
378
201
  checkDCE: (fn: unknown) => void;
202
+ emit?: (event: string, data?: unknown) => void;
203
+ getFiberRoots?: (rendererID: number) => Set<FiberRoot>;
379
204
  hasUnsupportedRendererAttached: boolean;
380
205
  inject: (renderer: ReactRenderer) => number;
381
- // https://github.com/aidenybai/bippy/issues/43
382
- on: () => void;
383
- onCommitFiberRoot: (rendererID: number, root: FiberRoot, priority: number | void) => void;
206
+ off?: (event: string, handler: ReactDevToolsEventHandler) => void;
207
+ on: (event: string, handler: ReactDevToolsEventHandler) => void;
208
+ onCommitFiberRoot: (
209
+ rendererID: number,
210
+ root: FiberRoot,
211
+ priority: number | void,
212
+ didError?: boolean,
213
+ ) => void;
384
214
  onCommitFiberUnmount: (rendererID: number, fiber: Fiber) => void;
385
215
  onPostCommitFiberRoot: (rendererID: number, root: FiberRoot) => void;
386
- // called by dev builds of react-reconciler on root schedule; absent from
387
- // the hook react-refresh installs, so it stays optional
388
216
  onScheduleFiberRoot?: (rendererID: number, root: FiberRoot, children: ReactNode) => void;
389
217
  renderers: Map<number, ReactRenderer>;
218
+ sub?: (event: string, handler: ReactDevToolsEventHandler) => () => void;
390
219
  supportsFiber: boolean;
391
-
392
220
  supportsFlight: boolean;
393
221
  }
394
222
 
395
- // https://github.com/facebook/react/blob/6a4b46cd70d2672bc4be59dcb5b8dede22ed0cef/packages/react-devtools-shared/src/backend/types.js
396
- export interface ReactRenderer {
397
- bundleType: 0 /* PROD */ | 1 /* DEV */;
398
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
399
- currentDispatcherRef: any;
400
- // dev only: https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberReconciler.js#L842
223
+ export interface LegacyDispatcherRef {
224
+ current: unknown;
225
+ }
226
+
227
+ export interface CurrentDispatcherRef {
228
+ H: unknown;
229
+ }
230
+
231
+ export type RendererDispatcherRef = CurrentDispatcherRef | LegacyDispatcherRef;
232
+
233
+ export interface ReactRenderer extends Omit<
234
+ ReactReconciler.DevToolsConfig<unknown, unknown, unknown>,
235
+ "findFiberByHostInstance"
236
+ > {
237
+ currentDispatcherRef?: RendererDispatcherRef | null;
401
238
  findFiberByHostInstance?: (hostInstance: unknown) => Fiber | null;
402
- // react devtools
403
- getCurrentFiber?: (fiber: Fiber) => Fiber | null;
239
+ getCurrentFiber?: () => Fiber | null;
404
240
  overrideContext?: (fiber: Fiber, contextType: unknown, path: string[], value: unknown) => void;
405
241
 
406
- overrideHookState?: (fiber: Fiber, id: string, path: string[], value: unknown) => void;
242
+ overrideHookState?: (fiber: Fiber, id: number, path: string[], value: unknown) => void;
407
243
  overrideHookStateDeletePath?: (fiber: Fiber, id: number, path: Array<number | string>) => void;
408
244
  overrideHookStateRenamePath?: (
409
245
  fiber: Fiber,
@@ -418,18 +254,13 @@ export interface ReactRenderer {
418
254
  oldPath: Array<number | string>,
419
255
  newPath: Array<number | string>,
420
256
  ) => void;
421
- reconcilerVersion: string;
422
- rendererPackageName: string;
423
- // react refresh
424
- scheduleRefresh?: (root: FiberRoot, update: RendererRefreshUpdate) => void;
257
+ reconcilerVersion?: string;
258
+ scheduleRetry?: (fiber: Fiber) => void;
425
259
  scheduleRoot?: (root: FiberRoot, element: React.ReactNode) => void;
426
260
  scheduleUpdate?: (fiber: Fiber) => void;
427
261
 
428
- setErrorHandler?: (newShouldErrorImpl: (fiber: Fiber) => boolean) => void;
429
- setRefreshHandler?: (handler: ((fiber: Fiber) => Family | null) | null) => void;
430
- setSuspenseHandler?: (newShouldSuspendImpl: (suspenseInstance: unknown) => void) => void;
431
-
432
- version: string;
262
+ setErrorHandler?: (newShouldErrorImpl: (fiber: Fiber) => boolean | null) => void;
263
+ setSuspenseHandler?: (newShouldSuspendImpl: (fiber: Fiber) => boolean) => void;
433
264
  }
434
265
 
435
266
  declare global {
@@ -9,8 +9,8 @@ export interface Unsubscribe extends Disposable {
9
9
  * @example
10
10
  * ```ts
11
11
  * using instrumentation = instrument({ onCommitFiberRoot });
12
- * using refresh = instrumentReactRefresh({ onRefresh: handleRefresh });
13
- * // both torn down automatically at scope exit
12
+ * using rendererSubscription = onRendererInject(handleRenderer);
13
+ * // both are torn down automatically at scope exit
14
14
  * ```
15
15
  */
16
16
  export const toUnsubscribe = (dispose: () => void): Unsubscribe =>
@@ -1,19 +0,0 @@
1
- /**
2
- * @license bippy
3
- *
4
- * Copyright (c) Aiden Bai
5
- *
6
- * This source code is licensed under the MIT license found in the
7
- * LICENSE file in the root directory of this source tree.
8
- */
9
- const e=require(`./rdt-hook.cjs`),t=require(`./core.cjs`),n=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,r=[`rsc://`,`file:///`,`webpack-internal://`,`webpack://`,`node:`,`turbopack://`,`metro://`,`/app-pages-browser/`,`/(app-pages-browser)/`],i=[`rsc://`,`about://React/`],a=[`<anonymous>`,`eval`,``],o=/\.(jsx|tsx|ts|js)$/,s=/(\.min|bundle|chunk|vendor|vendors|runtime|polyfill|polyfills)\.(js|mjs|cjs)$|(chunk|bundle|vendor|vendors|runtime|polyfill|polyfills|framework|app|main|index)[-_.][A-Za-z0-9_-]{4,}\.(js|mjs|cjs)$|[\da-f]{8,}\.(js|mjs|cjs)$|[-_.][\da-f]{20,}\.(js|mjs|cjs)$|\/dist\/|\/build\/|\/.next\/|\/out\/|\/node_modules\/|\.webpack\.|\.vite\.|\.turbopack\./i,c=/^\?[\w~.-]+(?:=[^&#]*)?(?:&[\w~.-]+(?:=[^&#]*)?)*$/,l=/\(at [^)]+\)$/,u=[`react_stack_bottom_frame`,`react-stack-bottom-frame`],d=/(^|@)\S+:\d+/,f=/^\s*at .*(\S+:\d+|\(native\))/m,ee=/^(eval@)?(\[native code\])?$/,p=(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=g(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(d)){let t=_(e,void 0)[0];t&&r.push(t)}return h(r,t)}return e.match(f)?g(e,t):_(e,t)},m=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]},h=(e,t)=>t&&t.slice!=null?Array.isArray(t.slice)?e.slice(t.slice[0],t.slice[1]):e.slice(0,t.slice):e,g=(e,t)=>h(e.split(`
11
- `).filter(e=>!!e.match(f)),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=m(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}}),_=(e,t)=>h(e.split(`
12
- `).filter(e=>!e.match(ee)),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=m(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}}}),v=new WeakMap,y=e=>u.some(t=>e.includes(t)),te=e=>{let t=e.getFunctionName?.()??``;if(t)return t;let n=e.getTypeName?.()??``,r=e.getMethodName?.()??``;return n&&r?`${n}.${r}`:r},ne=e=>{let t=[];for(let n=1;n<e.length;n++){let r=e[n],i=te(r);if(y(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}},re=e=>{let t=-1;for(let n of u)if(t=e.indexOf(n),t!==-1)break;return{frames:p(t===-1?e:e.slice(0,e.lastIndexOf(`
13
- `,t))).slice(1),isTrusted:t!==-1}},b=e=>{let t=v.get(e);if(t)return t;let n=null,r=(e,t)=>{n=ne(t);let r=`${e.name||`Error`}: ${e.message||``}`;for(let e of t)r+=`\n at ${e.toString()}`;return r},i=Error.prepareStackTrace;Error.prepareStackTrace=r;let a;try{a=String(e.stack)}finally{Error.prepareStackTrace=i}let o=n??re(a);return v.set(e,o),o};var x=44,S=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/`,ie=new Uint8Array(64),C=new Uint8Array(128);for(let e=0;e<S.length;e++){let t=S.charCodeAt(e);ie[e]=t,C[t]=e}function w(e,t){let n=0,r=0,i=0;do i=C[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 T(e,t){return e.pos>=t?!1:e.peek()!==x}var ae=class{constructor(e){this.pos=0,this.buffer=e}next(){return this.buffer.charCodeAt(this.pos++)}peek(){return this.buffer.charCodeAt(this.pos)}indexOf(e){let{buffer:t,pos:n}=this,r=t.indexOf(e,n);return r===-1?t.length:r}};function E(e){let{length:t}=e,n=new ae(e),r=[],i=0,a=0,o=0,s=0,c=0;do{let e=n.indexOf(`;`),t=[],l=!0,u=0;for(i=0;n.pos<e;){let r;i=w(n,i),i<u&&(l=!1),u=i,T(n,e)?(a=w(n,a),o=w(n,o),s=w(n,s),T(n,e)?(c=w(n,c),r=[i,a,o,s,c]):r=[i,a,o,s]):r=[i],t.push(r),n.pos++}l||oe(t),r.push(t),n.pos=e+1}while(n.pos<=t);return r}function oe(e){e.sort(se)}function se(e,t){return e[0]-t[0]}const D=/^[a-zA-Z][a-zA-Z\d+\-.]*:/,O=/^data:application\/json[^,]+base64,/,ce=/(?:\/\/[@#][ \t]+sourceMappingURL=([^\s'"]+?)[ \t]*$)|(?:\/\*[@#][ \t]+sourceMappingURL=([^*]+?)[ \t]*(?:\*\/)[ \t]*$)/,k=new Map,A=new Map,j=(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},M=(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 j(i.map.mappings,i.map.sources,a,o,i.map.ignoredSourceIndices)}return j(e.mappings,e.sources,t-1,n,e.ignoredSourceIndices)},le=(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(ce);i&&(n=i[1]||i[2]),r=e-1}if(!n)return null;let i=D.test(n);if(!(O.test(n)||i||n.startsWith(`/`))){let t=e.split(`/`);t[t.length-1]=n,n=t.join(`/`)}return n},N=e=>{let t=e.ignoreList??e.x_google_ignoreList;return Array.isArray(t)&&t.length>0?new Set(t):void 0},ue=e=>({file:e.file,ignoredSourceIndices:N(e),mappings:E(e.mappings),names:e.names,sourceRoot:e.sourceRoot,sources:e.sources,sourcesContent:e.sourcesContent,version:3}),de=e=>{let t=e.sections.map(({map:e,offset:t})=>({map:{...e,ignoredSourceIndices:N(e),mappings:E(e.mappings)},offset:t})),n=new Set;for(let e of t)for(let t of e.map.sources)n.add(t);return{file:e.file,mappings:[],names:[],sections:t,sourceRoot:void 0,sources:Array.from(n),sourcesContent:void 0,version:3}},P=e=>{if(!e)return!1;let t=e.trim();if(!t)return!1;let n=t.match(D);if(!n)return!0;let r=n[0].toLowerCase();return r===`http:`||r===`https:`},fe=async(e,t=fetch)=>{if(!P(e))return null;let n=await t(e);if(!n.ok)return null;let r=await n.text();if(!r)return null;let i=le(e,r);if(!i||!P(i)&&!O.test(i))return null;let a=await t(i);if(!a.ok)return null;try{let e=await a.json();return`sections`in e?de(e):ue(e)}catch{return null}},F=async(e,t=!0,n)=>{if(t&&k.has(e))return k.get(e)??null;let r=t?A.get(e):void 0;if(r)return(await r).sourceMap;let i=fe(e,n).then(e=>({sourceMap:e,isTransientFailure:!1}),()=>({sourceMap:null,isTransientFailure:!0}));t&&A.set(e,i);let{sourceMap:a,isTransientFailure:o}=await i;return t&&(A.delete(e),o||k.set(e,a)),a},I=async(e,t=!0,n)=>await Promise.all(e.map(async e=>{if(!e.fileName)return e;let r=await F(e.fileName,t,n);if(!r||typeof e.lineNumber!=`number`||typeof e.columnNumber!=`number`)return e;let i=M(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})),L=e=>e._debugStack instanceof Error&&typeof e._debugStack?.stack==`string`,R=e=>typeof e.tag==`number`,z=e=>e._debugOwner,B=e=>{let n=null;if(t.traverseFiber(e,t=>{if(t===e)return!1;let r=t._debugOwner;return(r===e||e.alternate!==null&&r===e.alternate)&&t._debugStack instanceof Error?(n=t._debugStack,!0):!1}),!n)return null;let{frames:r,isTrusted:i}=b(n);if(!i)return null;for(let e=r.length-1;e>=0;e--){let t=r[e];if(t.fileName)return{...t,lineNumber:t.enclosingLineNumber||t.lineNumber,columnNumber:t.enclosingColumnNumber||t.columnNumber}}return null},V=()=>{let t=e.i();for(let n of[...Array.from(e.r),...Array.from(t.renderers.values())]){let e=n.currentDispatcherRef;if(e&&typeof e==`object`)return`H`in e?e.H:e.current}return null},H=t=>{for(let n of e.r){let e=n.currentDispatcherRef;e&&typeof e==`object`&&(`H`in e?e.H=t:e.current=t)}},U=e=>`\n in ${e}`,pe=(e,t)=>{let n=U(e);return t&&(n+=` (at ${t})`),n};let W=!1;const G=new WeakMap,K=(e,n)=>{if(!e||W)return``;let r=G.get(e);if(r!==void 0)return r;let i=Error.prepareStackTrace;Error.prepareStackTrace=void 0,W=!0;let a=V();H(null);let o=console.error,s=console.warn;console.error=()=>{},console.warn=()=>{};try{let r={DetermineComponentFrameRoot(){let t;try{if(n){let n=function(){throw Error()};if(Object.defineProperty(n.prototype,`props`,{set:function(){throw Error()}}),typeof Reflect==`object`&&Reflect.construct){try{Reflect.construct(n,[])}catch(e){t=e}Reflect.construct(e,[],n)}else{try{n.call()}catch(e){t=e}e.call(n.prototype)}}else{try{throw Error()}catch(e){t=e}let n=e();n&&typeof n.catch==`function`&&n.catch(()=>{})}}catch(e){if(e instanceof Error&&t instanceof Error&&typeof e.stack==`string`)return[e.stack,t.stack]}return[null,null]}};r.DetermineComponentFrameRoot.displayName=`DetermineComponentFrameRoot`,Object.getOwnPropertyDescriptor(r.DetermineComponentFrameRoot,`name`)?.configurable&&Object.defineProperty(r.DetermineComponentFrameRoot,`name`,{value:`DetermineComponentFrameRoot`});let[i,a]=r.DetermineComponentFrameRoot();if(i&&a){let n=i.split(`
15
- `),r=a.split(`
16
- `),o=0,s=0;for(;o<n.length&&!n[o].includes(`DetermineComponentFrameRoot`);)o++;for(;s<r.length&&!r[s].includes(`DetermineComponentFrameRoot`);)s++;if(o===n.length||s===r.length)for(o=n.length-1,s=r.length-1;o>=1&&s>=0&&n[o]!==r[s];)s--;for(;o>=1&&s>=0;o--,s--)if(n[o]!==r[s]){if(o!==1||s!==1)do if(o--,s--,s<0||n[o]!==r[s]){let r=`\n${n[o].replace(` at new `,` at `)}`,i=t.getDisplayName(e);return i&&r.includes(`<anonymous>`)&&(r=r.replace(`<anonymous>`,i)),G.set(e,r),r}while(o>=1&&s>=0);break}}}finally{W=!1,Error.prepareStackTrace=i,H(a),console.error=o,console.warn=s}let c=e?t.getDisplayName(e):``,l=c?U(c):``;return G.set(e,l),l},me=(e,t)=>{let n=e.tag,r=``;switch(n){case 28:r=U(`Activity`);break;case 1:r=K(e.type,!0);break;case 11:r=K(e.type.render,!1);break;case 0:case 15:r=K(e.type,!1);break;case 5:case 26:case 27:r=U(e.type);break;case 16:r=U(`Lazy`);break;case 13:r=e.child!==t&&t!==null?U(`Suspense Fallback`):U(`Suspense`);break;case 19:r=U(`SuspenseList`);break;case 30:r=U(`ViewTransition`);break;default:return``}return r},he=e=>{try{let t=``,n=e,r=null;do{t+=me(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+=pe(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}`:``}},q=e=>{let t=Error.prepareStackTrace;Error.prepareStackTrace=void 0;let n=e;if(!n)return``;Error.prepareStackTrace=t,n.startsWith(`Error: react-stack-top-frame
17
- `)&&(n=n.slice(29));let r=n.indexOf(`
18
- `);r!==-1&&(n=n.slice(r+1));let i=Math.max(n.indexOf(`react_stack_bottom_frame`),n.indexOf(`react-stack-bottom-frame`));if(i!==-1&&(i=n.lastIndexOf(`
19
- `,i)),i!==-1)n=n.slice(0,i);else return``;return n},ge=e=>!!(e.functionName&&e.fileName&&J(e.fileName)),_e=(e,t)=>e.fileName===t.fileName&&e.lineNumber===t.lineNumber&&e.columnNumber===t.columnNumber,ve=e=>{let t=new Map;for(let n of e)for(let e of n.stackFrames){if(!ge(e))continue;let n=e.functionName,r=t.get(n)??[];r.some(t=>_e(t,e))||(r.push(e),t.set(n,r))}return t},ye=(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})`)}},J=e=>i.some(t=>e.startsWith(t)),be=e=>!e.isServer&&e.fileName&&J(e.fileName)?{...e,isServer:!0}:e,xe=e=>{let t=[],n=e;for(;n;)if(R(n)){let e=n;if(n=z(e),n&&L(e)){let{frames:n,isTrusted:r}=b(e._debugStack);if(r)for(let e of n)t.push(be(e))}}else{let e=n;if(n=e.owner,n&&e.debugStack instanceof Error)for(let n of b(e.debugStack).frames)t.push({...n,isServer:!0})}return t},Se=e=>{let n=[];return t.traverseFiber(e,e=>{if(!L(e))return;let r=typeof e.type==`string`?e.type:t.getDisplayName(e.type)||`<anonymous>`;n.push({componentName:r,stackFrames:p(q(e._debugStack?.stack))})},!0),n},Y=async(e,t=!0,n)=>{let r=Se(e),i=p(he(e)),a=ve(r),o=new Map;return I(i.map(e=>(e.source?.includes(`(at Server)`)??!1)||e.source!=null&&l.test(e.source)?ye(e,a,o):e).filter((e,t,n)=>{if(t===0)return!0;let r=n[t-1];return e.functionName!==r.functionName}),t,n)},Ce=e=>!!e.fileName&&!e.isIgnoreListed,X=async(e,n=!0,r)=>{let i=xe(e);if(i.length>0){let a=B(e)??{};a.functionName=t.getDisplayName(e.type)??a.functionName;let o=await I([a,...i],n,r);if(o.some((e,t)=>t>0&&Ce(e)))return o}return Y(e,n,r)},we=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},Z=e=>e.fileName?{fileName:e.fileName,lineNumber:e.lineNumber,columnNumber:e.columnNumber,functionName:e.functionName}:null,Te=e=>{if(!L(e))return null;let{frames:t,isTrusted:n}=b(e._debugStack);if(!n)return null;for(let e of t)if(e.fileName)return e;return null},Ee=async(e,t=!0,n)=>{if(we(e))return e._debugSource||null;let r=Te(e)??B(e);if(r){let[e]=await I([r],t,n),i=Z(e);if(i)return i}let i=await Y(e,t,n);for(let e of i)if(e.fileName)return Z(e);return null},Q=e=>e.split(`/`).filter(Boolean).length,De=e=>e.split(`/`).filter(Boolean)[0]??null,Oe=e=>{let t=e.indexOf(`/`,1);if(t===-1||Q(e.slice(0,t))!==1)return e;let n=e.slice(t);if(!o.test(n)||Q(n)<2)return e;let r=De(n);return!r||r.startsWith(`@`)||r.length>4?e:n},$=e=>{if(!e||a.some(t=>t===e))return``;let t=e,i=t.startsWith(`http://`)||t.startsWith(`https://`);if(i)try{t=new URL(t).pathname}catch{}if(i&&(t=Oe(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 o=!0;for(;o;){o=!1;for(let e of r)if(t.startsWith(e)){t=t.slice(e.length),e===`file:///`&&(t=`/${t.replace(/^\/+/,``)}`),o=!0;break}}if(n.test(t)){let e=t.match(n);e&&(t=t.slice(e[0].length))}if(t.startsWith(`//`)){let e=t.indexOf(`/`,2);t=e===-1?``:t.slice(e)}let s=t.indexOf(`?`);if(s!==-1){let e=t.slice(s);c.test(e)&&(t=t.slice(0,s))}return t},ke=e=>{let t=$(e);return!(!t||!o.test(t)||s.test(t))};Object.defineProperty(exports,`a`,{enumerable:!0,get:function(){return X}}),Object.defineProperty(exports,`c`,{enumerable:!0,get:function(){return M}}),Object.defineProperty(exports,`d`,{enumerable:!0,get:function(){return p}}),Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return q}}),Object.defineProperty(exports,`l`,{enumerable:!0,get:function(){return F}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return ke}}),Object.defineProperty(exports,`o`,{enumerable:!0,get:function(){return Y}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return $}}),Object.defineProperty(exports,`s`,{enumerable:!0,get:function(){return L}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return Ee}}),Object.defineProperty(exports,`u`,{enumerable:!0,get:function(){return I}});