bippy 0.1.0 → 0.1.1
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 +355 -18
- package/dist/core.cjs +742 -0
- package/dist/core.d.cts +185 -0
- package/dist/core.d.ts +185 -0
- package/dist/core.js +686 -0
- package/dist/index.cjs +285 -145
- package/dist/index.d.cts +6 -210
- package/dist/index.d.ts +6 -210
- package/dist/index.global.js +4 -5
- package/dist/index.js +260 -145
- package/dist/scan/index.cjs +1087 -0
- package/dist/scan/index.d.cts +24 -0
- package/dist/scan/index.d.ts +24 -0
- package/dist/scan/index.global.js +9 -0
- package/dist/scan/index.js +1079 -0
- package/dist/types-CxxtX49h.d.cts +69 -0
- package/dist/types-CxxtX49h.d.ts +69 -0
- package/package.json +19 -11
package/dist/index.js
CHANGED
|
@@ -1,31 +1,101 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license bippy
|
|
3
3
|
*
|
|
4
|
-
* Copyright (c) Aiden Bai.
|
|
4
|
+
* Copyright (c) Aiden Bai, Million Software, Inc.
|
|
5
5
|
*
|
|
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
9
|
|
|
10
|
-
// src/
|
|
10
|
+
// src/rdt-hook.ts
|
|
11
11
|
var version = "0.1.0";
|
|
12
12
|
var BIPPY_INSTRUMENTATION_STRING = `bippy-${version}`;
|
|
13
|
-
var
|
|
13
|
+
var NO_OP = () => {
|
|
14
|
+
};
|
|
15
|
+
var checkDCE = (fn) => {
|
|
16
|
+
try {
|
|
17
|
+
const code = Function.prototype.toString.call(fn);
|
|
18
|
+
if (code.indexOf("^_^") > -1) {
|
|
19
|
+
setTimeout(() => {
|
|
20
|
+
throw new Error(
|
|
21
|
+
"React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build"
|
|
22
|
+
);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
} catch {
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
var installRDTHook = (onActive) => {
|
|
29
|
+
const renderers = /* @__PURE__ */ new Map();
|
|
30
|
+
let i = 0;
|
|
31
|
+
const rdtHook = {
|
|
32
|
+
checkDCE,
|
|
33
|
+
supportsFiber: true,
|
|
34
|
+
supportsFlight: true,
|
|
35
|
+
hasUnsupportedRendererAttached: false,
|
|
36
|
+
renderers,
|
|
37
|
+
onCommitFiberRoot: NO_OP,
|
|
38
|
+
onCommitFiberUnmount: NO_OP,
|
|
39
|
+
onPostCommitFiberRoot: NO_OP,
|
|
40
|
+
inject(renderer) {
|
|
41
|
+
const nextID = ++i;
|
|
42
|
+
renderers.set(nextID, renderer);
|
|
43
|
+
if (!rdtHook._instrumentationIsActive) {
|
|
44
|
+
rdtHook._instrumentationIsActive = true;
|
|
45
|
+
onActive?.();
|
|
46
|
+
}
|
|
47
|
+
return nextID;
|
|
48
|
+
},
|
|
49
|
+
_instrumentationSource: BIPPY_INSTRUMENTATION_STRING,
|
|
50
|
+
_instrumentationIsActive: false
|
|
51
|
+
};
|
|
52
|
+
try {
|
|
53
|
+
Object.defineProperty(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
|
|
54
|
+
value: rdtHook
|
|
55
|
+
});
|
|
56
|
+
} catch {
|
|
57
|
+
}
|
|
58
|
+
return rdtHook;
|
|
59
|
+
};
|
|
60
|
+
var hasRDTHook = () => {
|
|
61
|
+
return Object.prototype.hasOwnProperty.call(
|
|
62
|
+
globalThis,
|
|
63
|
+
"__REACT_DEVTOOLS_GLOBAL_HOOK__"
|
|
64
|
+
);
|
|
65
|
+
};
|
|
66
|
+
var getRDTHook = (onActive) => {
|
|
67
|
+
let rdtHook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
68
|
+
if (rdtHook) onActive?.();
|
|
69
|
+
if (!hasRDTHook()) {
|
|
70
|
+
rdtHook = installRDTHook(onActive);
|
|
71
|
+
}
|
|
72
|
+
return rdtHook;
|
|
73
|
+
};
|
|
74
|
+
try {
|
|
75
|
+
if (typeof window !== "undefined" && // @ts-expect-error `document` may not be defined in some enviroments
|
|
76
|
+
(window.document?.createElement || window.navigator?.product === "ReactNative") && typeof process !== "undefined" && process.versions != null && process.versions.node != null) {
|
|
77
|
+
installRDTHook();
|
|
78
|
+
}
|
|
79
|
+
} catch {
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// src/core.ts
|
|
14
83
|
var FunctionComponentTag = 0;
|
|
84
|
+
var ClassComponentTag = 1;
|
|
85
|
+
var HostRootTag = 3;
|
|
86
|
+
var HostComponentTag = 5;
|
|
87
|
+
var HostTextTag = 6;
|
|
88
|
+
var FragmentTag = 7;
|
|
15
89
|
var ContextConsumerTag = 9;
|
|
16
|
-
var SuspenseComponentTag = 13;
|
|
17
90
|
var ForwardRefTag = 11;
|
|
91
|
+
var SuspenseComponentTag = 13;
|
|
18
92
|
var MemoComponentTag = 14;
|
|
19
93
|
var SimpleMemoComponentTag = 15;
|
|
20
|
-
var
|
|
94
|
+
var DehydratedSuspenseComponentTag = 18;
|
|
95
|
+
var OffscreenComponentTag = 22;
|
|
96
|
+
var LegacyHiddenComponentTag = 23;
|
|
21
97
|
var HostHoistableTag = 26;
|
|
22
98
|
var HostSingletonTag = 27;
|
|
23
|
-
var DehydratedSuspenseComponent = 18;
|
|
24
|
-
var HostText = 6;
|
|
25
|
-
var Fragment = 7;
|
|
26
|
-
var LegacyHiddenComponent = 23;
|
|
27
|
-
var OffscreenComponent = 22;
|
|
28
|
-
var HostRoot = 3;
|
|
29
99
|
var CONCURRENT_MODE_NUMBER = 60111;
|
|
30
100
|
var ELEMENT_TYPE_SYMBOL_STRING = "Symbol(react.element)";
|
|
31
101
|
var TRANSITIONAL_ELEMENT_TYPE_SYMBOL_STRING = "Symbol(react.transitional.element)";
|
|
@@ -47,12 +117,32 @@ var isValidElement = (element) => typeof element === "object" && element != null
|
|
|
47
117
|
TRANSITIONAL_ELEMENT_TYPE_SYMBOL_STRING
|
|
48
118
|
].includes(String(element.$$typeof));
|
|
49
119
|
var isValidFiber = (fiber) => typeof fiber === "object" && fiber != null && "tag" in fiber && "stateNode" in fiber && "return" in fiber && "child" in fiber && "sibling" in fiber && "flags" in fiber;
|
|
50
|
-
var isHostFiber = (fiber) =>
|
|
51
|
-
fiber.tag
|
|
52
|
-
|
|
53
|
-
|
|
120
|
+
var isHostFiber = (fiber) => {
|
|
121
|
+
switch (fiber.tag) {
|
|
122
|
+
case HostComponentTag:
|
|
123
|
+
// @ts-expect-error: it exists
|
|
124
|
+
case HostHoistableTag:
|
|
125
|
+
// @ts-expect-error: it exists
|
|
126
|
+
case HostSingletonTag:
|
|
127
|
+
return true;
|
|
128
|
+
default:
|
|
129
|
+
return typeof fiber.type === "string";
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
var isCompositeFiber = (fiber) => {
|
|
133
|
+
switch (fiber.tag) {
|
|
134
|
+
case FunctionComponentTag:
|
|
135
|
+
case ClassComponentTag:
|
|
136
|
+
case SimpleMemoComponentTag:
|
|
137
|
+
case MemoComponentTag:
|
|
138
|
+
case ForwardRefTag:
|
|
139
|
+
return true;
|
|
140
|
+
default:
|
|
141
|
+
return false;
|
|
142
|
+
}
|
|
143
|
+
};
|
|
54
144
|
var traverseContexts = (fiber, selector) => {
|
|
55
|
-
|
|
145
|
+
try {
|
|
56
146
|
const nextDependencies = fiber.dependencies;
|
|
57
147
|
const prevDependencies = fiber.alternate?.dependencies;
|
|
58
148
|
if (!nextDependencies || !prevDependencies) return false;
|
|
@@ -66,23 +156,25 @@ var traverseContexts = (fiber, selector) => {
|
|
|
66
156
|
nextContext = nextContext?.next;
|
|
67
157
|
prevContext = prevContext?.next;
|
|
68
158
|
}
|
|
69
|
-
|
|
70
|
-
}
|
|
159
|
+
} catch {
|
|
160
|
+
}
|
|
161
|
+
return false;
|
|
71
162
|
};
|
|
72
163
|
var traverseState = (fiber, selector) => {
|
|
73
|
-
|
|
164
|
+
try {
|
|
74
165
|
let nextState = fiber.memoizedState;
|
|
75
166
|
let prevState = fiber.alternate?.memoizedState;
|
|
76
167
|
while (nextState || prevState) {
|
|
77
168
|
if (selector(nextState, prevState) === true) return true;
|
|
78
|
-
nextState = nextState
|
|
79
|
-
prevState = prevState
|
|
169
|
+
nextState = nextState?.next;
|
|
170
|
+
prevState = prevState?.next;
|
|
80
171
|
}
|
|
81
|
-
|
|
82
|
-
}
|
|
172
|
+
} catch {
|
|
173
|
+
}
|
|
174
|
+
return false;
|
|
83
175
|
};
|
|
84
176
|
var traverseEffects = (fiber, selector) => {
|
|
85
|
-
|
|
177
|
+
try {
|
|
86
178
|
let nextState = (
|
|
87
179
|
// biome-ignore lint/suspicious/noExplicitAny: underlying type is unknown
|
|
88
180
|
fiber.updateQueue?.lastEffect
|
|
@@ -99,11 +191,12 @@ var traverseEffects = (fiber, selector) => {
|
|
|
99
191
|
nextState = nextState?.next;
|
|
100
192
|
prevState = prevState?.next;
|
|
101
193
|
}
|
|
102
|
-
|
|
103
|
-
}
|
|
194
|
+
} catch {
|
|
195
|
+
}
|
|
196
|
+
return false;
|
|
104
197
|
};
|
|
105
198
|
var traverseProps = (fiber, selector) => {
|
|
106
|
-
|
|
199
|
+
try {
|
|
107
200
|
const nextProps = fiber.memoizedProps;
|
|
108
201
|
const prevProps = fiber.alternate?.memoizedProps || {};
|
|
109
202
|
const allKeys = /* @__PURE__ */ new Set([
|
|
@@ -115,8 +208,9 @@ var traverseProps = (fiber, selector) => {
|
|
|
115
208
|
const nextValue = nextProps?.[propName];
|
|
116
209
|
if (selector(propName, nextValue, prevValue) === true) return true;
|
|
117
210
|
}
|
|
118
|
-
|
|
119
|
-
}
|
|
211
|
+
} catch {
|
|
212
|
+
}
|
|
213
|
+
return false;
|
|
120
214
|
};
|
|
121
215
|
var didFiberRender = (fiber) => {
|
|
122
216
|
const nextProps = fiber.memoizedProps;
|
|
@@ -170,14 +264,14 @@ var getFiberStack = (fiber) => {
|
|
|
170
264
|
};
|
|
171
265
|
var shouldFilterFiber = (fiber) => {
|
|
172
266
|
switch (fiber.tag) {
|
|
173
|
-
case
|
|
267
|
+
case DehydratedSuspenseComponentTag:
|
|
174
268
|
return true;
|
|
175
|
-
case
|
|
176
|
-
case
|
|
177
|
-
case
|
|
178
|
-
case
|
|
269
|
+
case HostTextTag:
|
|
270
|
+
case FragmentTag:
|
|
271
|
+
case LegacyHiddenComponentTag:
|
|
272
|
+
case OffscreenComponentTag:
|
|
179
273
|
return true;
|
|
180
|
-
case
|
|
274
|
+
case HostRootTag:
|
|
181
275
|
return false;
|
|
182
276
|
default: {
|
|
183
277
|
const symbolOrNumber = typeof fiber.type === "object" && fiber.type !== null ? fiber.type.$$typeof : fiber.type;
|
|
@@ -202,18 +296,24 @@ var getNearestHostFiber = (fiber, ascending = false) => {
|
|
|
202
296
|
};
|
|
203
297
|
var getNearestHostFibers = (fiber) => {
|
|
204
298
|
const hostFibers = [];
|
|
205
|
-
const
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
299
|
+
const stack = [];
|
|
300
|
+
if (isHostFiber(fiber)) {
|
|
301
|
+
hostFibers.push(fiber);
|
|
302
|
+
} else if (fiber.child) {
|
|
303
|
+
stack.push(fiber.child);
|
|
304
|
+
}
|
|
305
|
+
while (stack.length) {
|
|
306
|
+
const currentNode = stack.pop();
|
|
307
|
+
if (!currentNode) break;
|
|
308
|
+
if (isHostFiber(currentNode)) {
|
|
309
|
+
hostFibers.push(currentNode);
|
|
310
|
+
} else if (currentNode.child) {
|
|
311
|
+
stack.push(currentNode.child);
|
|
214
312
|
}
|
|
215
|
-
|
|
216
|
-
|
|
313
|
+
if (currentNode.sibling) {
|
|
314
|
+
stack.push(currentNode.sibling);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
217
317
|
return hostFibers;
|
|
218
318
|
};
|
|
219
319
|
var traverseFiber = (fiber, selector, ascending = false) => {
|
|
@@ -265,78 +365,44 @@ var getDisplayName = (type) => {
|
|
|
265
365
|
if (!unwrappedType) return null;
|
|
266
366
|
return unwrappedType.displayName || unwrappedType.name || null;
|
|
267
367
|
};
|
|
268
|
-
var isUsingRDT = () =>
|
|
368
|
+
var isUsingRDT = () => {
|
|
369
|
+
return "reactDevtoolsAgent" in getRDTHook();
|
|
370
|
+
};
|
|
269
371
|
var detectReactBuildType = (renderer) => {
|
|
270
|
-
|
|
372
|
+
try {
|
|
271
373
|
if (typeof renderer.version === "string" && renderer.bundleType > 0) {
|
|
272
374
|
return "development";
|
|
273
375
|
}
|
|
274
|
-
|
|
275
|
-
});
|
|
276
|
-
};
|
|
277
|
-
var checkDCE = (fn) => {
|
|
278
|
-
safeTry(() => {
|
|
279
|
-
const code = Function.prototype.toString.call(fn);
|
|
280
|
-
if (code.indexOf("^_^") > -1) {
|
|
281
|
-
setTimeout(() => {
|
|
282
|
-
throw new Error(
|
|
283
|
-
"React is running in production mode, but dead code elimination has not been applied. Read how to correctly configure React for production: https://reactjs.org/link/perf-use-production-build"
|
|
284
|
-
);
|
|
285
|
-
});
|
|
286
|
-
}
|
|
287
|
-
});
|
|
288
|
-
};
|
|
289
|
-
var NO_OP = () => {
|
|
290
|
-
};
|
|
291
|
-
var installRDTHook = (onActive) => {
|
|
292
|
-
const renderers = /* @__PURE__ */ new Map();
|
|
293
|
-
let i = 0;
|
|
294
|
-
const rdtHook = {
|
|
295
|
-
checkDCE,
|
|
296
|
-
supportsFiber: true,
|
|
297
|
-
supportsFlight: true,
|
|
298
|
-
hasUnsupportedRendererAttached: false,
|
|
299
|
-
renderers,
|
|
300
|
-
onCommitFiberRoot: NO_OP,
|
|
301
|
-
onCommitFiberUnmount: NO_OP,
|
|
302
|
-
onPostCommitFiberRoot: NO_OP,
|
|
303
|
-
inject(renderer) {
|
|
304
|
-
const nextID = ++i;
|
|
305
|
-
renderers.set(nextID, renderer);
|
|
306
|
-
if (!rdtHook._instrumentationIsActive) {
|
|
307
|
-
rdtHook._instrumentationIsActive = true;
|
|
308
|
-
onActive?.();
|
|
309
|
-
}
|
|
310
|
-
return nextID;
|
|
311
|
-
},
|
|
312
|
-
_instrumentationSource: BIPPY_INSTRUMENTATION_STRING,
|
|
313
|
-
_instrumentationIsActive: false
|
|
314
|
-
};
|
|
315
|
-
safeTry(() => {
|
|
316
|
-
Object.defineProperty(globalThis, "__REACT_DEVTOOLS_GLOBAL_HOOK__", {
|
|
317
|
-
value: rdtHook
|
|
318
|
-
});
|
|
319
|
-
});
|
|
320
|
-
return rdtHook;
|
|
321
|
-
};
|
|
322
|
-
var getRDTHook = (onActive) => {
|
|
323
|
-
let rdtHook = globalThis.__REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
324
|
-
if (rdtHook) onActive?.();
|
|
325
|
-
if (!Object.prototype.hasOwnProperty.call(
|
|
326
|
-
globalThis,
|
|
327
|
-
"__REACT_DEVTOOLS_GLOBAL_HOOK__"
|
|
328
|
-
)) {
|
|
329
|
-
rdtHook = installRDTHook(onActive);
|
|
376
|
+
} catch {
|
|
330
377
|
}
|
|
331
|
-
return
|
|
378
|
+
return "production";
|
|
332
379
|
};
|
|
333
380
|
var isInstrumentationActive = () => {
|
|
334
381
|
const rdtHook = getRDTHook();
|
|
335
382
|
return Boolean(rdtHook._instrumentationIsActive) || isUsingRDT();
|
|
336
383
|
};
|
|
384
|
+
var fiberId = 0;
|
|
385
|
+
var fiberIdMap = /* @__PURE__ */ new WeakMap();
|
|
386
|
+
var setFiberId = (fiber, id = fiberId++) => {
|
|
387
|
+
fiberIdMap.set(fiber, id);
|
|
388
|
+
};
|
|
389
|
+
var getFiberId = (fiber) => {
|
|
390
|
+
let id = fiberIdMap.get(fiber);
|
|
391
|
+
if (!id && fiber.alternate) {
|
|
392
|
+
id = fiberIdMap.get(fiber.alternate);
|
|
393
|
+
}
|
|
394
|
+
if (!id) {
|
|
395
|
+
id = fiberId++;
|
|
396
|
+
setFiberId(fiber, id);
|
|
397
|
+
}
|
|
398
|
+
return id;
|
|
399
|
+
};
|
|
337
400
|
var mountFiberRecursively = (onRender, firstChild, traverseSiblings) => {
|
|
338
401
|
let fiber = firstChild;
|
|
339
402
|
while (fiber != null) {
|
|
403
|
+
if (!fiberIdMap.has(fiber)) {
|
|
404
|
+
getFiberId(fiber);
|
|
405
|
+
}
|
|
340
406
|
const shouldIncludeInTree = !shouldFilterFiber(fiber);
|
|
341
407
|
if (shouldIncludeInTree && didFiberRender(fiber)) {
|
|
342
408
|
onRender(fiber, "mount");
|
|
@@ -368,7 +434,13 @@ var mountFiberRecursively = (onRender, firstChild, traverseSiblings) => {
|
|
|
368
434
|
}
|
|
369
435
|
};
|
|
370
436
|
var updateFiberRecursively = (onRender, nextFiber, prevFiber, parentFiber) => {
|
|
437
|
+
if (!fiberIdMap.has(nextFiber)) {
|
|
438
|
+
getFiberId(nextFiber);
|
|
439
|
+
}
|
|
371
440
|
if (!prevFiber) return;
|
|
441
|
+
if (!fiberIdMap.has(prevFiber)) {
|
|
442
|
+
getFiberId(prevFiber);
|
|
443
|
+
}
|
|
372
444
|
const isSuspense = nextFiber.tag === SuspenseComponentTag;
|
|
373
445
|
const shouldIncludeInTree = !shouldFilterFiber(nextFiber);
|
|
374
446
|
if (shouldIncludeInTree && didFiberRender(nextFiber)) {
|
|
@@ -413,7 +485,7 @@ var updateFiberRecursively = (onRender, nextFiber, prevFiber, parentFiber) => {
|
|
|
413
485
|
}
|
|
414
486
|
};
|
|
415
487
|
var unmountFiber = (onRender, fiber) => {
|
|
416
|
-
const isRoot = fiber.tag ===
|
|
488
|
+
const isRoot = fiber.tag === HostRootTag;
|
|
417
489
|
if (isRoot || !shouldFilterFiber(fiber)) {
|
|
418
490
|
onRender(fiber, "unmount");
|
|
419
491
|
}
|
|
@@ -449,7 +521,7 @@ var createFiberVisitor = ({
|
|
|
449
521
|
rootInstanceMap.set(root, rootInstance);
|
|
450
522
|
}
|
|
451
523
|
const { prevFiber } = rootInstance;
|
|
452
|
-
|
|
524
|
+
try {
|
|
453
525
|
if (!rootFiber) {
|
|
454
526
|
unmountFiber(onRender, root);
|
|
455
527
|
} else if (prevFiber !== null) {
|
|
@@ -472,7 +544,9 @@ var createFiberVisitor = ({
|
|
|
472
544
|
} else {
|
|
473
545
|
mountFiberRecursively(onRender, rootFiber, true);
|
|
474
546
|
}
|
|
475
|
-
}
|
|
547
|
+
} catch (error) {
|
|
548
|
+
onError(error);
|
|
549
|
+
}
|
|
476
550
|
rootInstance.prevFiber = rootFiber;
|
|
477
551
|
};
|
|
478
552
|
};
|
|
@@ -507,24 +581,55 @@ var instrument = (options) => {
|
|
|
507
581
|
}
|
|
508
582
|
});
|
|
509
583
|
};
|
|
510
|
-
var
|
|
584
|
+
var getFiberFromHostInstance = (hostInstance) => {
|
|
585
|
+
const rdtHook = getRDTHook();
|
|
586
|
+
for (const renderer of rdtHook.renderers.values()) {
|
|
587
|
+
try {
|
|
588
|
+
const fiber = renderer.findFiberByHostInstance?.(hostInstance);
|
|
589
|
+
if (fiber) return fiber;
|
|
590
|
+
} catch {
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
if (typeof hostInstance === "object" && hostInstance != null) {
|
|
594
|
+
if ("_reactRootContainer" in hostInstance) {
|
|
595
|
+
return hostInstance._reactRootContainer?._internalRoot?.current?.child;
|
|
596
|
+
}
|
|
597
|
+
for (const key in hostInstance) {
|
|
598
|
+
if (key.startsWith("__reactInternalInstance$") || key.startsWith("__reactFiber")) {
|
|
599
|
+
return hostInstance[key];
|
|
600
|
+
}
|
|
601
|
+
}
|
|
602
|
+
}
|
|
603
|
+
return null;
|
|
604
|
+
};
|
|
605
|
+
var secure = (options, secureOptions = {}) => {
|
|
511
606
|
const onActive = options.onActive;
|
|
607
|
+
const isRDTHookInstalled = hasRDTHook();
|
|
608
|
+
const isRDT = isUsingRDT();
|
|
609
|
+
let timeout;
|
|
610
|
+
let isProduction = false;
|
|
512
611
|
options.onActive = () => {
|
|
612
|
+
clearTimeout(timeout);
|
|
513
613
|
let isSecure = true;
|
|
514
|
-
|
|
614
|
+
try {
|
|
515
615
|
onActive?.();
|
|
516
616
|
const rdtHook = getRDTHook();
|
|
517
617
|
for (const renderer of rdtHook.renderers.values()) {
|
|
518
618
|
const [majorVersion] = renderer.version.split(".");
|
|
519
|
-
if (Number(majorVersion) < 17) {
|
|
619
|
+
if (Number(majorVersion) < (secureOptions.minReactMajorVersion ?? 17)) {
|
|
520
620
|
isSecure = false;
|
|
521
621
|
}
|
|
522
622
|
const buildType = detectReactBuildType(renderer);
|
|
523
623
|
if (buildType !== "development") {
|
|
524
|
-
|
|
624
|
+
isProduction = true;
|
|
625
|
+
if (!secureOptions.dangerouslyRunInProduction) {
|
|
626
|
+
isSecure = false;
|
|
627
|
+
}
|
|
525
628
|
}
|
|
526
629
|
}
|
|
527
|
-
})
|
|
630
|
+
} catch (err) {
|
|
631
|
+
secureOptions.onError?.(err);
|
|
632
|
+
}
|
|
528
633
|
if (!isSecure) {
|
|
529
634
|
options.onCommitFiberRoot = void 0;
|
|
530
635
|
options.onCommitFiberUnmount = void 0;
|
|
@@ -532,40 +637,50 @@ var secure = (options) => {
|
|
|
532
637
|
options.onActive = void 0;
|
|
533
638
|
return;
|
|
534
639
|
}
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
640
|
+
try {
|
|
641
|
+
const onCommitFiberRoot = options.onCommitFiberRoot;
|
|
642
|
+
if (onCommitFiberRoot) {
|
|
643
|
+
options.onCommitFiberRoot = (rendererID, root, priority) => {
|
|
644
|
+
try {
|
|
645
|
+
onCommitFiberRoot(rendererID, root, priority);
|
|
646
|
+
} catch (err) {
|
|
647
|
+
secureOptions.onError?.(err);
|
|
648
|
+
}
|
|
649
|
+
};
|
|
650
|
+
}
|
|
651
|
+
const onCommitFiberUnmount = options.onCommitFiberUnmount;
|
|
652
|
+
if (onCommitFiberUnmount) {
|
|
653
|
+
options.onCommitFiberUnmount = (rendererID, root) => {
|
|
654
|
+
try {
|
|
655
|
+
onCommitFiberUnmount(rendererID, root);
|
|
656
|
+
} catch (err) {
|
|
657
|
+
secureOptions.onError?.(err);
|
|
658
|
+
}
|
|
659
|
+
};
|
|
660
|
+
}
|
|
661
|
+
const onPostCommitFiberRoot = options.onPostCommitFiberRoot;
|
|
662
|
+
if (onPostCommitFiberRoot) {
|
|
663
|
+
options.onPostCommitFiberRoot = (rendererID, root) => {
|
|
664
|
+
try {
|
|
665
|
+
onPostCommitFiberRoot(rendererID, root);
|
|
666
|
+
} catch (err) {
|
|
667
|
+
secureOptions.onError?.(err);
|
|
668
|
+
}
|
|
669
|
+
};
|
|
670
|
+
}
|
|
671
|
+
} catch (err) {
|
|
672
|
+
secureOptions.onError?.(err);
|
|
552
673
|
}
|
|
553
674
|
};
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
675
|
+
if (!isRDTHookInstalled && !isRDT) {
|
|
676
|
+
timeout = setTimeout(() => {
|
|
677
|
+
if (!isProduction) {
|
|
678
|
+
secureOptions.onError?.();
|
|
679
|
+
}
|
|
680
|
+
stop();
|
|
681
|
+
}, secureOptions.installCheckTimeout ?? 100);
|
|
561
682
|
}
|
|
562
|
-
return
|
|
683
|
+
return options;
|
|
563
684
|
};
|
|
564
685
|
|
|
565
|
-
|
|
566
|
-
if (typeof window !== "undefined" && // @ts-expect-error `document` may not be defined in some enviroments
|
|
567
|
-
(window.document?.createElement || window.navigator?.product === "ReactNative") && typeof process !== "undefined" && process.versions != null && process.versions.node != null) {
|
|
568
|
-
installRDTHook();
|
|
569
|
-
}
|
|
570
|
-
|
|
571
|
-
export { BIPPY_INSTRUMENTATION_STRING, createFiberVisitor, detectReactBuildType, didFiberCommit, didFiberRender, getDisplayName, getFiberStack, getMutatedHostFibers, getNearestHostFiber, getNearestHostFibers, getRDTHook, getTimings, getType, hasMemoCache, installRDTHook, instrument, isCompositeFiber, isHostFiber, isInstrumentationActive, isUsingRDT, isValidElement, isValidFiber, mountFiberRecursively, safeTry, secure, shouldFilterFiber, traverseContexts, traverseEffects, traverseFiber, traverseProps, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively, version };
|
|
686
|
+
export { BIPPY_INSTRUMENTATION_STRING, CONCURRENT_MODE_NUMBER, CONCURRENT_MODE_SYMBOL_STRING, ClassComponentTag, ContextConsumerTag, DEPRECATED_ASYNC_MODE_SYMBOL_STRING, DehydratedSuspenseComponentTag, ELEMENT_TYPE_SYMBOL_STRING, ForwardRefTag, FragmentTag, FunctionComponentTag, HostComponentTag, HostHoistableTag, HostRootTag, HostSingletonTag, HostTextTag, LegacyHiddenComponentTag, MemoComponentTag, OffscreenComponentTag, SimpleMemoComponentTag, SuspenseComponentTag, TRANSITIONAL_ELEMENT_TYPE_SYMBOL_STRING, createFiberVisitor, detectReactBuildType, didFiberCommit, didFiberRender, fiberIdMap, getDisplayName, getFiberFromHostInstance, getFiberId, getFiberStack, getMutatedHostFibers, getNearestHostFiber, getNearestHostFibers, getRDTHook, getTimings, getType, hasMemoCache, hasRDTHook, installRDTHook, instrument, isCompositeFiber, isHostFiber, isInstrumentationActive, isUsingRDT, isValidElement, isValidFiber, mountFiberRecursively, secure, setFiberId, shouldFilterFiber, traverseContexts, traverseEffects, traverseFiber, traverseProps, traverseState, unmountFiber, unmountFiberChildrenRecursively, updateFiberRecursively, version };
|