@memlab/lens 2.0.1 → 2.0.3
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/dist/memlens.lib.bundle.js +878 -871
- package/dist/memlens.lib.bundle.min.js +3 -1
- package/dist/memlens.run.bundle.js +1891 -1876
- package/dist/memlens.run.bundle.min.js +3 -1
- package/package.json +1 -1
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/* @generated */
|
|
2
|
+
/* @nolint */
|
|
1
3
|
/**
|
|
2
4
|
* @license MemLab
|
|
3
5
|
* MIT License
|
|
@@ -37,6 +39,44 @@ return /******/ (() => { // webpackBootstrap
|
|
|
37
39
|
/******/ "use strict";
|
|
38
40
|
/******/ var __webpack_modules__ = ({
|
|
39
41
|
|
|
42
|
+
/***/ 346
|
|
43
|
+
(__unused_webpack_module, exports) {
|
|
44
|
+
|
|
45
|
+
var __webpack_unused_export__;
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
49
|
+
*
|
|
50
|
+
* This source code is licensed under the MIT license found in the
|
|
51
|
+
* LICENSE file in the root directory of this source tree.
|
|
52
|
+
*
|
|
53
|
+
* @format
|
|
54
|
+
* @oncall memory_lab
|
|
55
|
+
*/
|
|
56
|
+
__webpack_unused_export__ = ({ value: true });
|
|
57
|
+
exports.config = exports.of = exports.lF = void 0;
|
|
58
|
+
// Performance Configuration
|
|
59
|
+
exports.lF = {
|
|
60
|
+
scanIntervalMs: 1000,
|
|
61
|
+
maxComponentStackDepth: 100,
|
|
62
|
+
memoryMeasurementIntervalMs: 5000,
|
|
63
|
+
};
|
|
64
|
+
// Feature Flags
|
|
65
|
+
exports.of = {
|
|
66
|
+
enableMutationObserver: true,
|
|
67
|
+
enableMemoryTracking: true,
|
|
68
|
+
enableComponentStack: true,
|
|
69
|
+
enableConsoleLogs: window === null || window === void 0 ? void 0 : window.TEST_MEMORY_SCAN,
|
|
70
|
+
};
|
|
71
|
+
// overall Config
|
|
72
|
+
exports.config = {
|
|
73
|
+
performance: exports.lF,
|
|
74
|
+
features: exports.of,
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
/***/ },
|
|
79
|
+
|
|
40
80
|
/***/ 54
|
|
41
81
|
(__unused_webpack_module, exports, __webpack_require__) {
|
|
42
82
|
|
|
@@ -232,38 +272,142 @@ _DOMObserver_elementCount = new WeakMap(), _DOMObserver_detachedElementCount = n
|
|
|
232
272
|
|
|
233
273
|
/***/ },
|
|
234
274
|
|
|
235
|
-
/***/
|
|
275
|
+
/***/ 953
|
|
236
276
|
(__unused_webpack_module, exports, __webpack_require__) {
|
|
237
277
|
|
|
238
278
|
|
|
239
|
-
var
|
|
240
|
-
|
|
279
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
280
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
281
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
282
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
283
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
241
284
|
};
|
|
285
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
286
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
287
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
288
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
289
|
+
};
|
|
290
|
+
var _EventListenerTracker_instances, _EventListenerTracker_listenerMap, _EventListenerTracker_detachedListeners, _EventListenerTracker_originalAddEventListener, _EventListenerTracker_originalRemoveEventListener, _EventListenerTracker_patchEventListeners, _EventListenerTracker_unpatchEventListeners;
|
|
242
291
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
243
|
-
exports.
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
292
|
+
exports.EventListenerTracker = void 0;
|
|
293
|
+
const react_fiber_utils_1 = __webpack_require__(737);
|
|
294
|
+
const weak_ref_utils_1 = __webpack_require__(313);
|
|
295
|
+
class EventListenerTracker {
|
|
296
|
+
constructor() {
|
|
297
|
+
_EventListenerTracker_instances.add(this);
|
|
298
|
+
_EventListenerTracker_listenerMap.set(this, void 0);
|
|
299
|
+
_EventListenerTracker_detachedListeners.set(this, void 0);
|
|
300
|
+
_EventListenerTracker_originalAddEventListener.set(this, void 0);
|
|
301
|
+
_EventListenerTracker_originalRemoveEventListener.set(this, void 0);
|
|
302
|
+
__classPrivateFieldSet(this, _EventListenerTracker_listenerMap, new weak_ref_utils_1.WeakMapPlus({ fallback: 'noop', cleanupMs: 100 }), "f");
|
|
303
|
+
__classPrivateFieldSet(this, _EventListenerTracker_detachedListeners, new Map(), "f");
|
|
304
|
+
__classPrivateFieldSet(this, _EventListenerTracker_originalAddEventListener, EventTarget.prototype.addEventListener, "f");
|
|
305
|
+
__classPrivateFieldSet(this, _EventListenerTracker_originalRemoveEventListener, EventTarget.prototype.removeEventListener, "f");
|
|
306
|
+
__classPrivateFieldGet(this, _EventListenerTracker_instances, "m", _EventListenerTracker_patchEventListeners).call(this);
|
|
307
|
+
}
|
|
308
|
+
static getInstance() {
|
|
309
|
+
if (!EventListenerTracker.instance) {
|
|
310
|
+
EventListenerTracker.instance = new EventListenerTracker();
|
|
311
|
+
}
|
|
312
|
+
return EventListenerTracker.instance;
|
|
313
|
+
}
|
|
314
|
+
addListener(el, type, cb, options) {
|
|
315
|
+
el.addEventListener(type, cb, options);
|
|
316
|
+
}
|
|
317
|
+
removeListener(el, type, cb, options) {
|
|
318
|
+
el.removeEventListener(type, cb, options);
|
|
319
|
+
}
|
|
320
|
+
scan(getComponentName) {
|
|
321
|
+
const detachedListeners = new Map();
|
|
322
|
+
for (const [el, listeners] of __classPrivateFieldGet(this, _EventListenerTracker_listenerMap, "f").entries()) {
|
|
323
|
+
if (el instanceof Element && !el.isConnected) {
|
|
324
|
+
for (const listener of listeners) {
|
|
325
|
+
// Skip if the callback has been garbage collected
|
|
326
|
+
if (!listener.cb.deref())
|
|
327
|
+
continue;
|
|
328
|
+
const componentName = getComponentName(new WeakRef(el));
|
|
329
|
+
if (!detachedListeners.has(componentName)) {
|
|
330
|
+
detachedListeners.set(componentName, []);
|
|
331
|
+
}
|
|
332
|
+
const groups = detachedListeners.get(componentName);
|
|
333
|
+
let group = groups === null || groups === void 0 ? void 0 : groups.find(g => g.type === listener.type);
|
|
334
|
+
if (!group) {
|
|
335
|
+
group = {
|
|
336
|
+
type: listener.type,
|
|
337
|
+
count: 0,
|
|
338
|
+
entries: [],
|
|
339
|
+
};
|
|
340
|
+
groups === null || groups === void 0 ? void 0 : groups.push(group);
|
|
341
|
+
}
|
|
342
|
+
group.count++;
|
|
343
|
+
group.entries.push(new WeakRef(listener));
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
}
|
|
347
|
+
__classPrivateFieldSet(this, _EventListenerTracker_detachedListeners, detachedListeners, "f");
|
|
348
|
+
return detachedListeners;
|
|
349
|
+
}
|
|
350
|
+
getDetachedListeners() {
|
|
351
|
+
return __classPrivateFieldGet(this, _EventListenerTracker_detachedListeners, "f");
|
|
352
|
+
}
|
|
353
|
+
destroy() {
|
|
354
|
+
__classPrivateFieldGet(this, _EventListenerTracker_instances, "m", _EventListenerTracker_unpatchEventListeners).call(this);
|
|
355
|
+
__classPrivateFieldGet(this, _EventListenerTracker_listenerMap, "f").destroy();
|
|
356
|
+
__classPrivateFieldGet(this, _EventListenerTracker_detachedListeners, "f").clear();
|
|
357
|
+
EventListenerTracker.instance = null;
|
|
358
|
+
}
|
|
261
359
|
}
|
|
360
|
+
exports.EventListenerTracker = EventListenerTracker;
|
|
361
|
+
_EventListenerTracker_listenerMap = new WeakMap(), _EventListenerTracker_detachedListeners = new WeakMap(), _EventListenerTracker_originalAddEventListener = new WeakMap(), _EventListenerTracker_originalRemoveEventListener = new WeakMap(), _EventListenerTracker_instances = new WeakSet(), _EventListenerTracker_patchEventListeners = function _EventListenerTracker_patchEventListeners() {
|
|
362
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
363
|
+
const self = this;
|
|
364
|
+
EventTarget.prototype.addEventListener = function (type, listener, options) {
|
|
365
|
+
var _a;
|
|
366
|
+
__classPrivateFieldGet(self, _EventListenerTracker_originalAddEventListener, "f").call(this, type, listener, options);
|
|
367
|
+
if (this instanceof Element) {
|
|
368
|
+
const fiber = (0, react_fiber_utils_1.getFiberNodeFromElement)(this);
|
|
369
|
+
const entry = {
|
|
370
|
+
type,
|
|
371
|
+
cb: new WeakRef(listener),
|
|
372
|
+
options,
|
|
373
|
+
fiber: fiber ? new WeakRef(fiber) : undefined,
|
|
374
|
+
};
|
|
375
|
+
const listeners = (_a = __classPrivateFieldGet(self, _EventListenerTracker_listenerMap, "f").get(this)) !== null && _a !== void 0 ? _a : [];
|
|
376
|
+
listeners.push(entry);
|
|
377
|
+
__classPrivateFieldGet(self, _EventListenerTracker_listenerMap, "f").set(this, listeners);
|
|
378
|
+
}
|
|
379
|
+
};
|
|
380
|
+
EventTarget.prototype.removeEventListener = function (type, listener, options) {
|
|
381
|
+
__classPrivateFieldGet(self, _EventListenerTracker_originalRemoveEventListener, "f").call(this, type, listener, options);
|
|
382
|
+
if (this instanceof Element) {
|
|
383
|
+
const listeners = __classPrivateFieldGet(self, _EventListenerTracker_listenerMap, "f").get(this);
|
|
384
|
+
if (listeners) {
|
|
385
|
+
const index = listeners.findIndex(entry => entry.type === type &&
|
|
386
|
+
entry.cb.deref() === listener &&
|
|
387
|
+
entry.options === options);
|
|
388
|
+
if (index !== -1) {
|
|
389
|
+
listeners.splice(index, 1);
|
|
390
|
+
}
|
|
391
|
+
if (listeners.length === 0) {
|
|
392
|
+
__classPrivateFieldGet(self, _EventListenerTracker_listenerMap, "f").delete(this);
|
|
393
|
+
}
|
|
394
|
+
else {
|
|
395
|
+
__classPrivateFieldGet(self, _EventListenerTracker_listenerMap, "f").set(this, listeners);
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
}
|
|
399
|
+
};
|
|
400
|
+
}, _EventListenerTracker_unpatchEventListeners = function _EventListenerTracker_unpatchEventListeners() {
|
|
401
|
+
EventTarget.prototype.addEventListener = __classPrivateFieldGet(this, _EventListenerTracker_originalAddEventListener, "f");
|
|
402
|
+
EventTarget.prototype.removeEventListener =
|
|
403
|
+
__classPrivateFieldGet(this, _EventListenerTracker_originalRemoveEventListener, "f");
|
|
404
|
+
};
|
|
405
|
+
EventListenerTracker.instance = null;
|
|
262
406
|
|
|
263
407
|
|
|
264
408
|
/***/ },
|
|
265
409
|
|
|
266
|
-
/***/
|
|
410
|
+
/***/ 302
|
|
267
411
|
(__unused_webpack_module, exports, __webpack_require__) {
|
|
268
412
|
|
|
269
413
|
|
|
@@ -300,77 +444,217 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
300
444
|
return result;
|
|
301
445
|
};
|
|
302
446
|
})();
|
|
303
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
304
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
305
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
306
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
307
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
308
|
-
};
|
|
309
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
310
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
311
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
312
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
313
|
-
};
|
|
314
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
315
|
-
var t = {};
|
|
316
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
317
|
-
t[p] = s[p];
|
|
318
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
319
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
320
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
321
|
-
t[p[i]] = s[p[i]];
|
|
322
|
-
}
|
|
323
|
-
return t;
|
|
324
|
-
};
|
|
325
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
326
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
327
|
-
};
|
|
328
|
-
var _ReactMemoryScan_instances, _ReactMemoryScan_elementWeakRefs, _ReactMemoryScan_isActivated, _ReactMemoryScan_intervalId, _ReactMemoryScan_elementToBoundingRects, _ReactMemoryScan_elementToComponentStack, _ReactMemoryScan_knownFiberNodes, _ReactMemoryScan_fiberAnalyzer, _ReactMemoryScan_isDevMode, _ReactMemoryScan_subscribers, _ReactMemoryScan_extensions, _ReactMemoryScan_scanIntervalMs, _ReactMemoryScan_domObserver, _ReactMemoryScan_eventListenerTracker, _ReactMemoryScan_isDisposed, _ReactMemoryScan_log, _ReactMemoryScan_notifySubscribers, _ReactMemoryScan_notifyExtensionsBeforeScan, _ReactMemoryScan_notifyExtensionsAfterScan, _ReactMemoryScan_scanCycle, _ReactMemoryScan_updateElementToComponentInfo, _ReactMemoryScan_getTrackedDOMRefs, _ReactMemoryScan_runGC, _ReactMemoryScan_scanEventListenerLeaks;
|
|
329
447
|
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
448
|
+
/**
|
|
449
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
450
|
+
*
|
|
451
|
+
* This source code is licensed under the MIT license found in the
|
|
452
|
+
* LICENSE file in the root directory of this source tree.
|
|
453
|
+
*
|
|
454
|
+
* @format
|
|
455
|
+
* @oncall memory_lab
|
|
456
|
+
*/
|
|
330
457
|
const utils = __importStar(__webpack_require__(476));
|
|
331
|
-
const react_fiber_analysis_1 = __importDefault(__webpack_require__(302));
|
|
332
458
|
const react_fiber_utils_1 = __webpack_require__(737);
|
|
333
|
-
const
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
459
|
+
const valid_component_name_1 = __webpack_require__(847);
|
|
460
|
+
class ReactFiberAnalyzer {
|
|
461
|
+
scan(elementWeakRefList, elementToComponentStack) {
|
|
462
|
+
var _a;
|
|
463
|
+
const visitedRootFibers = new Set();
|
|
464
|
+
const components = new Set();
|
|
465
|
+
const componentToFiberNodeCount = new Map();
|
|
466
|
+
const detachedComponentToFiberNodeCount = new Map();
|
|
467
|
+
const topDownVisited = new Set();
|
|
468
|
+
const analyzedFibers = new Set();
|
|
469
|
+
const fiberNodes = [];
|
|
470
|
+
let totalElements = 0;
|
|
471
|
+
let totalDetachedElements = 0;
|
|
472
|
+
function analyzeFiber(fiberNode) {
|
|
473
|
+
(0, react_fiber_utils_1.traverseFiber)(fiberNode, (fiberNode) => {
|
|
474
|
+
// skip if the fiber node has already been analyzed
|
|
475
|
+
if (analyzedFibers.has(fiberNode)) {
|
|
476
|
+
return true;
|
|
477
|
+
}
|
|
478
|
+
analyzedFibers.add(fiberNode);
|
|
479
|
+
// traverse the fiber tree up to find the component name
|
|
480
|
+
const displayName = (0, react_fiber_utils_1.getDisplayNameOfFiberNode)(fiberNode);
|
|
481
|
+
if (displayName != null && (0, valid_component_name_1.isValidComponentName)(displayName)) {
|
|
482
|
+
components.add(displayName);
|
|
483
|
+
utils.addCountbyKey(componentToFiberNodeCount, displayName, 1);
|
|
484
|
+
return true;
|
|
485
|
+
}
|
|
486
|
+
}, true);
|
|
487
|
+
}
|
|
488
|
+
for (const weakRef of elementWeakRefList) {
|
|
489
|
+
const elem = weakRef.deref();
|
|
490
|
+
if (elem == null) {
|
|
491
|
+
continue;
|
|
492
|
+
}
|
|
493
|
+
// elements stats
|
|
494
|
+
++totalElements;
|
|
495
|
+
// TODO: simplify this logic
|
|
496
|
+
if (!elem.isConnected) {
|
|
497
|
+
if (elementToComponentStack.has(elem)) {
|
|
498
|
+
const componentStack = (_a = elementToComponentStack.get(elem)) !== null && _a !== void 0 ? _a : [];
|
|
499
|
+
// set component name
|
|
500
|
+
const component = componentStack[0];
|
|
501
|
+
elem.__component_name = component;
|
|
502
|
+
utils.addCountbyKey(detachedComponentToFiberNodeCount, component, 1);
|
|
503
|
+
}
|
|
504
|
+
++totalDetachedElements;
|
|
505
|
+
}
|
|
506
|
+
// analyze fiber nodes
|
|
507
|
+
const fiberNode = (0, react_fiber_utils_1.getFiberNodeFromElement)(elem);
|
|
508
|
+
if (fiberNode == null) {
|
|
509
|
+
continue;
|
|
510
|
+
}
|
|
511
|
+
analyzeFiber(fiberNode);
|
|
512
|
+
// try to traverse each fiber node in the entire fiber tree
|
|
513
|
+
const rootFiber = (0, react_fiber_utils_1.getTopMostFiberWithChild)(fiberNode);
|
|
514
|
+
if (rootFiber == null) {
|
|
515
|
+
continue;
|
|
516
|
+
}
|
|
517
|
+
if (visitedRootFibers.has(rootFiber)) {
|
|
518
|
+
continue;
|
|
519
|
+
}
|
|
520
|
+
visitedRootFibers.add(rootFiber);
|
|
521
|
+
// start traversing fiber tree from the know root host
|
|
522
|
+
(0, react_fiber_utils_1.traverseFiber)(rootFiber, (node) => {
|
|
523
|
+
if (topDownVisited.has(node)) {
|
|
524
|
+
return true;
|
|
525
|
+
}
|
|
526
|
+
topDownVisited.add(node);
|
|
527
|
+
fiberNodes.push(new WeakRef(node));
|
|
528
|
+
analyzeFiber(node);
|
|
529
|
+
}, false);
|
|
530
|
+
}
|
|
531
|
+
topDownVisited.clear();
|
|
532
|
+
analyzedFibers.clear();
|
|
533
|
+
visitedRootFibers.clear();
|
|
534
|
+
return {
|
|
535
|
+
components,
|
|
536
|
+
componentToFiberNodeCount,
|
|
537
|
+
totalElements,
|
|
538
|
+
totalDetachedElements,
|
|
539
|
+
detachedComponentToFiberNodeCount,
|
|
540
|
+
fiberNodes,
|
|
541
|
+
leakedFibers: [],
|
|
542
|
+
};
|
|
543
|
+
}
|
|
544
|
+
}
|
|
545
|
+
exports["default"] = ReactFiberAnalyzer;
|
|
546
|
+
|
|
547
|
+
|
|
548
|
+
/***/ },
|
|
549
|
+
|
|
550
|
+
/***/ 282
|
|
551
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
552
|
+
|
|
553
|
+
|
|
554
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
555
|
+
if (k2 === undefined) k2 = k;
|
|
556
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
557
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
558
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
559
|
+
}
|
|
560
|
+
Object.defineProperty(o, k2, desc);
|
|
561
|
+
}) : (function(o, m, k, k2) {
|
|
562
|
+
if (k2 === undefined) k2 = k;
|
|
563
|
+
o[k2] = m[k];
|
|
564
|
+
}));
|
|
565
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
566
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
567
|
+
}) : function(o, v) {
|
|
568
|
+
o["default"] = v;
|
|
569
|
+
});
|
|
570
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
571
|
+
var ownKeys = function(o) {
|
|
572
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
573
|
+
var ar = [];
|
|
574
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
575
|
+
return ar;
|
|
576
|
+
};
|
|
577
|
+
return ownKeys(o);
|
|
578
|
+
};
|
|
579
|
+
return function (mod) {
|
|
580
|
+
if (mod && mod.__esModule) return mod;
|
|
581
|
+
var result = {};
|
|
582
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
583
|
+
__setModuleDefault(result, mod);
|
|
584
|
+
return result;
|
|
585
|
+
};
|
|
586
|
+
})();
|
|
587
|
+
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
588
|
+
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
589
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
590
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
591
|
+
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
592
|
+
};
|
|
593
|
+
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
594
|
+
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
595
|
+
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
596
|
+
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
597
|
+
};
|
|
598
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
599
|
+
var t = {};
|
|
600
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
601
|
+
t[p] = s[p];
|
|
602
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
603
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
604
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
605
|
+
t[p[i]] = s[p[i]];
|
|
606
|
+
}
|
|
607
|
+
return t;
|
|
608
|
+
};
|
|
609
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
610
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
611
|
+
};
|
|
612
|
+
var _ReactMemoryScan_instances, _ReactMemoryScan_elementWeakRefs, _ReactMemoryScan_isActivated, _ReactMemoryScan_intervalId, _ReactMemoryScan_elementToBoundingRects, _ReactMemoryScan_elementToComponentStack, _ReactMemoryScan_knownFiberNodes, _ReactMemoryScan_fiberAnalyzer, _ReactMemoryScan_isDevMode, _ReactMemoryScan_subscribers, _ReactMemoryScan_extensions, _ReactMemoryScan_scanIntervalMs, _ReactMemoryScan_domObserver, _ReactMemoryScan_eventListenerTracker, _ReactMemoryScan_isDisposed, _ReactMemoryScan_log, _ReactMemoryScan_notifySubscribers, _ReactMemoryScan_notifyExtensionsBeforeScan, _ReactMemoryScan_notifyExtensionsAfterScan, _ReactMemoryScan_scanCycle, _ReactMemoryScan_updateElementToComponentInfo, _ReactMemoryScan_getTrackedDOMRefs, _ReactMemoryScan_runGC, _ReactMemoryScan_scanEventListenerLeaks;
|
|
613
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
614
|
+
const utils = __importStar(__webpack_require__(476));
|
|
615
|
+
const react_fiber_analysis_1 = __importDefault(__webpack_require__(302));
|
|
616
|
+
const react_fiber_utils_1 = __webpack_require__(737);
|
|
617
|
+
const dom_observer_1 = __webpack_require__(54);
|
|
618
|
+
const config_1 = __webpack_require__(346);
|
|
619
|
+
const event_listener_tracker_1 = __webpack_require__(953);
|
|
620
|
+
class ReactMemoryScan {
|
|
621
|
+
constructor(options = {}) {
|
|
622
|
+
var _a, _b, _c, _d;
|
|
623
|
+
_ReactMemoryScan_instances.add(this);
|
|
624
|
+
_ReactMemoryScan_elementWeakRefs.set(this, void 0);
|
|
625
|
+
_ReactMemoryScan_isActivated.set(this, void 0);
|
|
626
|
+
_ReactMemoryScan_intervalId.set(this, void 0);
|
|
627
|
+
_ReactMemoryScan_elementToBoundingRects.set(this, void 0);
|
|
628
|
+
_ReactMemoryScan_elementToComponentStack.set(this, void 0);
|
|
629
|
+
_ReactMemoryScan_knownFiberNodes.set(this, void 0);
|
|
630
|
+
_ReactMemoryScan_fiberAnalyzer.set(this, void 0);
|
|
631
|
+
_ReactMemoryScan_isDevMode.set(this, void 0);
|
|
632
|
+
_ReactMemoryScan_subscribers.set(this, void 0);
|
|
633
|
+
_ReactMemoryScan_extensions.set(this, void 0);
|
|
634
|
+
_ReactMemoryScan_scanIntervalMs.set(this, void 0);
|
|
635
|
+
_ReactMemoryScan_domObserver.set(this, void 0);
|
|
636
|
+
_ReactMemoryScan_eventListenerTracker.set(this, void 0);
|
|
637
|
+
_ReactMemoryScan_isDisposed.set(this, void 0);
|
|
638
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_elementWeakRefs, [], "f");
|
|
639
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_isActivated, false, "f");
|
|
640
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_elementToBoundingRects, new WeakMap(), "f");
|
|
641
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_elementToComponentStack, new WeakMap(), "f");
|
|
642
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_knownFiberNodes, [], "f");
|
|
643
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_eventListenerTracker, options.trackEventListenerLeaks
|
|
644
|
+
? event_listener_tracker_1.EventListenerTracker.getInstance()
|
|
645
|
+
: null, "f");
|
|
646
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_intervalId, null, "f");
|
|
647
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_isDisposed, false, "f");
|
|
648
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_fiberAnalyzer, new react_fiber_analysis_1.default(), "f");
|
|
649
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_isDevMode, (_a = options.isDevMode) !== null && _a !== void 0 ? _a : false, "f");
|
|
650
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_subscribers, (_b = options.subscribers) !== null && _b !== void 0 ? _b : [], "f");
|
|
651
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_extensions, (_c = options.extensions) !== null && _c !== void 0 ? _c : [], "f");
|
|
652
|
+
__classPrivateFieldSet(this, _ReactMemoryScan_scanIntervalMs, (_d = options.scanIntervalMs) !== null && _d !== void 0 ? _d : config_1.config.performance.scanIntervalMs, "f");
|
|
653
|
+
}
|
|
654
|
+
subscribe(callback) {
|
|
655
|
+
__classPrivateFieldGet(this, _ReactMemoryScan_subscribers, "f").push(callback);
|
|
656
|
+
return () => this.unsubscribe(callback);
|
|
657
|
+
}
|
|
374
658
|
unsubscribe(callback) {
|
|
375
659
|
__classPrivateFieldSet(this, _ReactMemoryScan_subscribers, __classPrivateFieldGet(this, _ReactMemoryScan_subscribers, "f").filter(cb => cb !== callback), "f");
|
|
376
660
|
}
|
|
@@ -662,44 +946,11 @@ class LeakedFiber {
|
|
|
662
946
|
|
|
663
947
|
/***/ },
|
|
664
948
|
|
|
665
|
-
/***/
|
|
666
|
-
(__unused_webpack_module, exports
|
|
949
|
+
/***/ 847
|
|
950
|
+
(__unused_webpack_module, exports) {
|
|
667
951
|
|
|
952
|
+
var __webpack_unused_export__;
|
|
668
953
|
|
|
669
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
670
|
-
if (k2 === undefined) k2 = k;
|
|
671
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
672
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
673
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
674
|
-
}
|
|
675
|
-
Object.defineProperty(o, k2, desc);
|
|
676
|
-
}) : (function(o, m, k, k2) {
|
|
677
|
-
if (k2 === undefined) k2 = k;
|
|
678
|
-
o[k2] = m[k];
|
|
679
|
-
}));
|
|
680
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
681
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
682
|
-
}) : function(o, v) {
|
|
683
|
-
o["default"] = v;
|
|
684
|
-
});
|
|
685
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
686
|
-
var ownKeys = function(o) {
|
|
687
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
688
|
-
var ar = [];
|
|
689
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
690
|
-
return ar;
|
|
691
|
-
};
|
|
692
|
-
return ownKeys(o);
|
|
693
|
-
};
|
|
694
|
-
return function (mod) {
|
|
695
|
-
if (mod && mod.__esModule) return mod;
|
|
696
|
-
var result = {};
|
|
697
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
698
|
-
__setModuleDefault(result, mod);
|
|
699
|
-
return result;
|
|
700
|
-
};
|
|
701
|
-
})();
|
|
702
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
703
954
|
/**
|
|
704
955
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
705
956
|
*
|
|
@@ -709,103 +960,25 @@ Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
|
709
960
|
* @format
|
|
710
961
|
* @oncall memory_lab
|
|
711
962
|
*/
|
|
712
|
-
|
|
713
|
-
|
|
714
|
-
const
|
|
715
|
-
|
|
716
|
-
|
|
717
|
-
var _a;
|
|
718
|
-
const visitedRootFibers = new Set();
|
|
719
|
-
const components = new Set();
|
|
720
|
-
const componentToFiberNodeCount = new Map();
|
|
721
|
-
const detachedComponentToFiberNodeCount = new Map();
|
|
722
|
-
const topDownVisited = new Set();
|
|
723
|
-
const analyzedFibers = new Set();
|
|
724
|
-
const fiberNodes = [];
|
|
725
|
-
let totalElements = 0;
|
|
726
|
-
let totalDetachedElements = 0;
|
|
727
|
-
function analyzeFiber(fiberNode) {
|
|
728
|
-
(0, react_fiber_utils_1.traverseFiber)(fiberNode, (fiberNode) => {
|
|
729
|
-
// skip if the fiber node has already been analyzed
|
|
730
|
-
if (analyzedFibers.has(fiberNode)) {
|
|
731
|
-
return true;
|
|
732
|
-
}
|
|
733
|
-
analyzedFibers.add(fiberNode);
|
|
734
|
-
// traverse the fiber tree up to find the component name
|
|
735
|
-
const displayName = (0, react_fiber_utils_1.getDisplayNameOfFiberNode)(fiberNode);
|
|
736
|
-
if (displayName != null && (0, valid_component_name_1.isValidComponentName)(displayName)) {
|
|
737
|
-
components.add(displayName);
|
|
738
|
-
utils.addCountbyKey(componentToFiberNodeCount, displayName, 1);
|
|
739
|
-
return true;
|
|
740
|
-
}
|
|
741
|
-
}, true);
|
|
742
|
-
}
|
|
743
|
-
for (const weakRef of elementWeakRefList) {
|
|
744
|
-
const elem = weakRef.deref();
|
|
745
|
-
if (elem == null) {
|
|
746
|
-
continue;
|
|
747
|
-
}
|
|
748
|
-
// elements stats
|
|
749
|
-
++totalElements;
|
|
750
|
-
// TODO: simplify this logic
|
|
751
|
-
if (!elem.isConnected) {
|
|
752
|
-
if (elementToComponentStack.has(elem)) {
|
|
753
|
-
const componentStack = (_a = elementToComponentStack.get(elem)) !== null && _a !== void 0 ? _a : [];
|
|
754
|
-
// set component name
|
|
755
|
-
const component = componentStack[0];
|
|
756
|
-
elem.__component_name = component;
|
|
757
|
-
utils.addCountbyKey(detachedComponentToFiberNodeCount, component, 1);
|
|
758
|
-
}
|
|
759
|
-
++totalDetachedElements;
|
|
760
|
-
}
|
|
761
|
-
// analyze fiber nodes
|
|
762
|
-
const fiberNode = (0, react_fiber_utils_1.getFiberNodeFromElement)(elem);
|
|
763
|
-
if (fiberNode == null) {
|
|
764
|
-
continue;
|
|
765
|
-
}
|
|
766
|
-
analyzeFiber(fiberNode);
|
|
767
|
-
// try to traverse each fiber node in the entire fiber tree
|
|
768
|
-
const rootFiber = (0, react_fiber_utils_1.getTopMostFiberWithChild)(fiberNode);
|
|
769
|
-
if (rootFiber == null) {
|
|
770
|
-
continue;
|
|
771
|
-
}
|
|
772
|
-
if (visitedRootFibers.has(rootFiber)) {
|
|
773
|
-
continue;
|
|
774
|
-
}
|
|
775
|
-
visitedRootFibers.add(rootFiber);
|
|
776
|
-
// start traversing fiber tree from the know root host
|
|
777
|
-
(0, react_fiber_utils_1.traverseFiber)(rootFiber, (node) => {
|
|
778
|
-
if (topDownVisited.has(node)) {
|
|
779
|
-
return true;
|
|
780
|
-
}
|
|
781
|
-
topDownVisited.add(node);
|
|
782
|
-
fiberNodes.push(new WeakRef(node));
|
|
783
|
-
analyzeFiber(node);
|
|
784
|
-
}, false);
|
|
785
|
-
}
|
|
786
|
-
topDownVisited.clear();
|
|
787
|
-
analyzedFibers.clear();
|
|
788
|
-
visitedRootFibers.clear();
|
|
789
|
-
return {
|
|
790
|
-
components,
|
|
791
|
-
componentToFiberNodeCount,
|
|
792
|
-
totalElements,
|
|
793
|
-
totalDetachedElements,
|
|
794
|
-
detachedComponentToFiberNodeCount,
|
|
795
|
-
fiberNodes,
|
|
796
|
-
leakedFibers: [],
|
|
797
|
-
};
|
|
798
|
-
}
|
|
963
|
+
__webpack_unused_export__ = ({ value: true });
|
|
964
|
+
exports.isValidComponentName = isValidComponentName;
|
|
965
|
+
const displayNameBlockList = new Set();
|
|
966
|
+
function isValidComponentName(name) {
|
|
967
|
+
return name != null && !displayNameBlockList.has(name);
|
|
799
968
|
}
|
|
800
|
-
exports["default"] = ReactFiberAnalyzer;
|
|
801
969
|
|
|
802
970
|
|
|
803
971
|
/***/ },
|
|
804
972
|
|
|
805
|
-
/***/
|
|
806
|
-
(__unused_webpack_module, exports) {
|
|
973
|
+
/***/ 235
|
|
974
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
807
975
|
|
|
808
976
|
|
|
977
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
978
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
979
|
+
};
|
|
980
|
+
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
981
|
+
exports.createReactMemoryScan = createReactMemoryScan;
|
|
809
982
|
/**
|
|
810
983
|
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
811
984
|
*
|
|
@@ -815,304 +988,211 @@ exports["default"] = ReactFiberAnalyzer;
|
|
|
815
988
|
* @format
|
|
816
989
|
* @oncall memory_lab
|
|
817
990
|
*/
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
|
|
825
|
-
|
|
826
|
-
exports.getNativeWeakRefOrFallback = getNativeWeakRefOrFallback;
|
|
827
|
-
exports.isWeakMapNative = isWeakMapNative;
|
|
828
|
-
exports.isWeakSetNative = isWeakSetNative;
|
|
829
|
-
exports.isWeakRefNative = isWeakRefNative;
|
|
830
|
-
exports.isWeakAPINative = isWeakAPINative;
|
|
831
|
-
const globalScope = typeof window !== 'undefined' ? window : self;
|
|
832
|
-
const _weakMap = (_a = globalScope.WeakMap) !== null && _a !== void 0 ? _a : null;
|
|
833
|
-
const _weakMapIsNative = isWeakMapNative();
|
|
834
|
-
const _weakSet = (_b = globalScope.WeakSet) !== null && _b !== void 0 ? _b : null;
|
|
835
|
-
const _weakSetIsNative = isWeakSetNative();
|
|
836
|
-
const _weakRef = (_c = globalScope.WeakRef) !== null && _c !== void 0 ? _c : null;
|
|
837
|
-
const _weakRefIsNative = isWeakRefNative();
|
|
838
|
-
const _weakAPIsAreNative = _weakMapIsNative && _weakSetIsNative && _weakRefIsNative;
|
|
839
|
-
class WeakRefNoOp {
|
|
840
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
841
|
-
constructor(_targetObject) {
|
|
842
|
-
// to be overridden
|
|
843
|
-
}
|
|
844
|
-
deref() {
|
|
845
|
-
return undefined;
|
|
846
|
-
}
|
|
991
|
+
const react_memory_scan_1 = __importDefault(__webpack_require__(282));
|
|
992
|
+
// import { DOMVisualizationExtension } from './extensions/dom-visualization-extension';
|
|
993
|
+
function createReactMemoryScan(options = {}) {
|
|
994
|
+
return new react_memory_scan_1.default(options);
|
|
995
|
+
// const memoryScan = new ReactMemoryScan(options);
|
|
996
|
+
// const domVisualizer = new DOMVisualizationExtension(memoryScan);
|
|
997
|
+
// memoryScan.registerExtension(domVisualizer);
|
|
998
|
+
// return memoryScan;
|
|
847
999
|
}
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
1000
|
+
|
|
1001
|
+
|
|
1002
|
+
/***/ },
|
|
1003
|
+
|
|
1004
|
+
/***/ 737
|
|
1005
|
+
(__unused_webpack_module, exports, __webpack_require__) {
|
|
1006
|
+
|
|
1007
|
+
var __webpack_unused_export__;
|
|
1008
|
+
|
|
1009
|
+
__webpack_unused_export__ = ({ value: true });
|
|
1010
|
+
exports.traverseFiber = exports.getTopMostFiberWithChild = __webpack_unused_export__ = __webpack_unused_export__ = exports.dD = __webpack_unused_export__ = exports.bv = exports.Fm = __webpack_unused_export__ = exports.JA = exports.NT = __webpack_unused_export__ = exports.UT = exports.DQ = __webpack_unused_export__ = exports.W = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = exports.IZ = exports.i$ = exports.Wb = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = void 0;
|
|
1011
|
+
exports.getFiberNodeFromElement = getFiberNodeFromElement;
|
|
1012
|
+
exports.getReactComponentStack = getReactComponentStack;
|
|
1013
|
+
exports.getDisplayNameOfFiberNode = getDisplayNameOfFiberNode;
|
|
1014
|
+
__webpack_unused_export__ = isFunctionalComponent;
|
|
1015
|
+
__webpack_unused_export__ = extractReactComponentName;
|
|
1016
|
+
const utils_1 = __webpack_require__(476);
|
|
1017
|
+
const valid_component_name_1 = __webpack_require__(847);
|
|
1018
|
+
__webpack_unused_export__ = 1;
|
|
1019
|
+
__webpack_unused_export__ = 0;
|
|
1020
|
+
__webpack_unused_export__ = 9;
|
|
1021
|
+
__webpack_unused_export__ = 13;
|
|
1022
|
+
__webpack_unused_export__ = 22;
|
|
1023
|
+
__webpack_unused_export__ = 11;
|
|
1024
|
+
__webpack_unused_export__ = 14;
|
|
1025
|
+
__webpack_unused_export__ = 15;
|
|
1026
|
+
exports.Wb = 5;
|
|
1027
|
+
exports.i$ = 26;
|
|
1028
|
+
exports.IZ = 27;
|
|
1029
|
+
__webpack_unused_export__ = 18;
|
|
1030
|
+
__webpack_unused_export__ = 6;
|
|
1031
|
+
__webpack_unused_export__ = 7;
|
|
1032
|
+
__webpack_unused_export__ = 23;
|
|
1033
|
+
__webpack_unused_export__ = 22;
|
|
1034
|
+
__webpack_unused_export__ = 3;
|
|
1035
|
+
__webpack_unused_export__ = 0xeacf;
|
|
1036
|
+
__webpack_unused_export__ = 'Symbol(react.concurrent_mode)';
|
|
1037
|
+
__webpack_unused_export__ = 'Symbol(react.async_mode)';
|
|
1038
|
+
// https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberFlags.js
|
|
1039
|
+
__webpack_unused_export__ = 0b1;
|
|
1040
|
+
exports.W = 0b10;
|
|
1041
|
+
__webpack_unused_export__ = 0b10000000;
|
|
1042
|
+
exports.DQ = 0b1000000000000;
|
|
1043
|
+
exports.UT = 0b100;
|
|
1044
|
+
__webpack_unused_export__ = 0b1000;
|
|
1045
|
+
exports.NT = 0b10000;
|
|
1046
|
+
exports.JA = 0b100000;
|
|
1047
|
+
__webpack_unused_export__ = 0b1000000000;
|
|
1048
|
+
exports.Fm = 0b10000000000;
|
|
1049
|
+
exports.bv = 0b10000000000000;
|
|
1050
|
+
__webpack_unused_export__ = exports.W |
|
|
1051
|
+
exports.UT |
|
|
1052
|
+
exports.NT |
|
|
1053
|
+
exports.JA |
|
|
1054
|
+
exports.DQ |
|
|
1055
|
+
exports.bv |
|
|
1056
|
+
exports.Fm;
|
|
1057
|
+
/**
|
|
1058
|
+
* @see https://reactnative.dev/architecture/glossary#host-view-tree-and-host-view
|
|
1059
|
+
*/
|
|
1060
|
+
const isHostFiber = (fiber) => fiber.tag === exports.Wb ||
|
|
1061
|
+
// @ts-expect-error: it exists
|
|
1062
|
+
fiber.tag === exports.i$ ||
|
|
1063
|
+
// @ts-expect-error: it exists
|
|
1064
|
+
fiber.tag === exports.IZ ||
|
|
1065
|
+
typeof fiber.type === 'string';
|
|
1066
|
+
exports.dD = isHostFiber;
|
|
1067
|
+
const getNearestHostFiber = (fiber) => {
|
|
1068
|
+
let hostFiber = (0, exports.traverseFiber)(fiber, exports.dD);
|
|
1069
|
+
if (!hostFiber) {
|
|
1070
|
+
hostFiber = (0, exports.traverseFiber)(fiber, exports.dD, true);
|
|
853
1071
|
}
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
1072
|
+
return hostFiber;
|
|
1073
|
+
};
|
|
1074
|
+
__webpack_unused_export__ = getNearestHostFiber;
|
|
1075
|
+
const getTopMostHostFiber = (fiber) => {
|
|
1076
|
+
let topMostHostFiber = null;
|
|
1077
|
+
function checkFiber(fiber) {
|
|
1078
|
+
if ((0, exports.dD)(fiber)) {
|
|
1079
|
+
topMostHostFiber = fiber;
|
|
1080
|
+
}
|
|
857
1081
|
}
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
|
|
1082
|
+
(0, exports.traverseFiber)(fiber, checkFiber, true);
|
|
1083
|
+
return topMostHostFiber;
|
|
1084
|
+
};
|
|
1085
|
+
__webpack_unused_export__ = getTopMostHostFiber;
|
|
1086
|
+
const getTopMostFiberWithChild = (fiber) => {
|
|
1087
|
+
let topMostFiber = null;
|
|
1088
|
+
function checkFiber(fiber) {
|
|
1089
|
+
if (fiber.child != null) {
|
|
1090
|
+
topMostFiber = fiber;
|
|
1091
|
+
}
|
|
861
1092
|
}
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
1093
|
+
(0, exports.traverseFiber)(fiber, checkFiber, true);
|
|
1094
|
+
return topMostFiber;
|
|
1095
|
+
};
|
|
1096
|
+
exports.getTopMostFiberWithChild = getTopMostFiberWithChild;
|
|
1097
|
+
const traverseFiber = (fiber, selector, ascending = false) => {
|
|
1098
|
+
if (!fiber) {
|
|
1099
|
+
return null;
|
|
865
1100
|
}
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
class WeakMapNoOp {
|
|
869
|
-
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
870
|
-
constructor(_iterable) {
|
|
871
|
-
// to be overridden
|
|
1101
|
+
if (selector(fiber) === true) {
|
|
1102
|
+
return fiber;
|
|
872
1103
|
}
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
1104
|
+
let next = ascending ? fiber.return : fiber.child;
|
|
1105
|
+
while (next) {
|
|
1106
|
+
const match = (0, exports.traverseFiber)(next, selector, ascending);
|
|
1107
|
+
if (match) {
|
|
1108
|
+
return match;
|
|
1109
|
+
}
|
|
1110
|
+
next = ascending ? null : next.sibling;
|
|
876
1111
|
}
|
|
877
|
-
|
|
878
|
-
|
|
879
|
-
|
|
1112
|
+
return null;
|
|
1113
|
+
};
|
|
1114
|
+
exports.traverseFiber = traverseFiber;
|
|
1115
|
+
// React internal property keys
|
|
1116
|
+
const internalKeys = [
|
|
1117
|
+
'__reactFiber$', // React 17+
|
|
1118
|
+
'__reactInternalInstance$', // React 16
|
|
1119
|
+
'_reactRootContainer', // React Root
|
|
1120
|
+
];
|
|
1121
|
+
const getOwnPropertyNames = Object.getOwnPropertyNames.bind(Object);
|
|
1122
|
+
function getFiberNodeFromElement(element) {
|
|
1123
|
+
for (const prefix of internalKeys) {
|
|
1124
|
+
// Use Object.keys only as fallback since it's slower
|
|
1125
|
+
const key = getOwnPropertyNames(element).find(k => k.startsWith(prefix));
|
|
1126
|
+
if (key) {
|
|
1127
|
+
return element[key];
|
|
1128
|
+
}
|
|
880
1129
|
}
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
1130
|
+
return null;
|
|
1131
|
+
}
|
|
1132
|
+
function getReactComponentStack(node) {
|
|
1133
|
+
const stack = [];
|
|
1134
|
+
const visited = new Set();
|
|
1135
|
+
let fiber = node;
|
|
1136
|
+
while (fiber) {
|
|
1137
|
+
if (visited.has(fiber)) {
|
|
1138
|
+
break;
|
|
1139
|
+
}
|
|
1140
|
+
visited.add(fiber);
|
|
1141
|
+
const name = getDisplayNameOfFiberNode(fiber);
|
|
1142
|
+
if (name) {
|
|
1143
|
+
stack.push(name);
|
|
1144
|
+
}
|
|
1145
|
+
fiber = fiber.return;
|
|
884
1146
|
}
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
1147
|
+
return stack;
|
|
1148
|
+
}
|
|
1149
|
+
function getDisplayNameOfFiberNode(node) {
|
|
1150
|
+
var _a, _b, _c, _d;
|
|
1151
|
+
const elementType = (_a = node.type) !== null && _a !== void 0 ? _a : node.elementType;
|
|
1152
|
+
// Try to get name from displayName or name properties
|
|
1153
|
+
let displayName = (_b = elementType === null || elementType === void 0 ? void 0 : elementType.displayName) !== null && _b !== void 0 ? _b : elementType === null || elementType === void 0 ? void 0 : elementType.name;
|
|
1154
|
+
// Handle class components and forwardRef
|
|
1155
|
+
if (displayName == null) {
|
|
1156
|
+
if (elementType === null || elementType === void 0 ? void 0 : elementType.render) {
|
|
1157
|
+
// Class components
|
|
1158
|
+
const render = elementType === null || elementType === void 0 ? void 0 : elementType.render;
|
|
1159
|
+
displayName = (_c = render === null || render === void 0 ? void 0 : render.displayName) !== null && _c !== void 0 ? _c : render === null || render === void 0 ? void 0 : render.name;
|
|
1160
|
+
}
|
|
1161
|
+
else if (elementType === null || elementType === void 0 ? void 0 : elementType.type) {
|
|
1162
|
+
// ForwardRef components
|
|
1163
|
+
displayName = (_d = elementType.type.displayName) !== null && _d !== void 0 ? _d : elementType.type.name;
|
|
1164
|
+
}
|
|
1165
|
+
}
|
|
1166
|
+
// Handle anonymous functions
|
|
1167
|
+
if (!displayName && typeof elementType === 'function') {
|
|
1168
|
+
displayName = elementType.name;
|
|
888
1169
|
}
|
|
1170
|
+
const ret = (0, utils_1.getMeaningfulName)(extractReactComponentName(displayName));
|
|
1171
|
+
return (0, valid_component_name_1.isValidComponentName)(ret) ? ret : null;
|
|
889
1172
|
}
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
return
|
|
1173
|
+
function isFunctionalComponent(node) {
|
|
1174
|
+
const elementType = node === null || node === void 0 ? void 0 : node.elementType;
|
|
1175
|
+
return typeof elementType === 'function';
|
|
893
1176
|
}
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
return _weakSetIsNative ? _weakSet : null;
|
|
899
|
-
}
|
|
900
|
-
function getNativeWeakSetOrFallback() {
|
|
901
|
-
return _weakSetIsNative && _weakSet ? _weakSet : WeakSetNoOp;
|
|
902
|
-
}
|
|
903
|
-
function getNativeWeakRef() {
|
|
904
|
-
return _weakRefIsNative ? _weakRef : null;
|
|
905
|
-
}
|
|
906
|
-
function getNativeWeakRefOrFallback() {
|
|
907
|
-
return _weakRefIsNative && _weakRef ? _weakRef : WeakRefNoOp;
|
|
908
|
-
}
|
|
909
|
-
function normalize(input) {
|
|
910
|
-
return typeof input.replace === 'function'
|
|
911
|
-
? input.replace(/\n/g, ' ').replace(/\s+/g, ' ')
|
|
912
|
-
: null;
|
|
913
|
-
}
|
|
914
|
-
function isWeakMapNative() {
|
|
915
|
-
return (_weakMap !== null &&
|
|
916
|
-
typeof _weakMap.toString === 'function' &&
|
|
917
|
-
normalize(_weakMap.toString()) === 'function WeakMap() { [native code] }');
|
|
918
|
-
}
|
|
919
|
-
function isWeakSetNative() {
|
|
920
|
-
return (_weakSet !== null &&
|
|
921
|
-
typeof _weakSet.toString === 'function' &&
|
|
922
|
-
normalize(_weakSet.toString()) === 'function WeakSet() { [native code] }');
|
|
923
|
-
}
|
|
924
|
-
function isWeakRefNative() {
|
|
925
|
-
return (_weakRef !== null &&
|
|
926
|
-
typeof _weakRef.toString === 'function' &&
|
|
927
|
-
normalize(_weakRef.toString()) === 'function WeakRef() { [native code] }');
|
|
928
|
-
}
|
|
929
|
-
function isWeakAPINative() {
|
|
930
|
-
return _weakAPIsAreNative;
|
|
931
|
-
}
|
|
932
|
-
class WeakMapPlus {
|
|
933
|
-
constructor(options = {}) {
|
|
934
|
-
this.strongMap = null;
|
|
935
|
-
this.noopMap = false;
|
|
936
|
-
this.entriesMap = new Map();
|
|
937
|
-
this.keyToId = new WeakMap();
|
|
938
|
-
const { fallback = 'strong', cleanupMs = 1000 } = options;
|
|
939
|
-
this.isWeak = _weakAPIsAreNative;
|
|
940
|
-
this.fallbackMode = fallback;
|
|
941
|
-
if (!this.isWeak) {
|
|
942
|
-
if (fallback === 'strong') {
|
|
943
|
-
this.strongMap = new Map();
|
|
944
|
-
}
|
|
945
|
-
else if (fallback === 'noop') {
|
|
946
|
-
this.noopMap = true;
|
|
947
|
-
}
|
|
948
|
-
this.cleanupInterval = -1;
|
|
949
|
-
}
|
|
950
|
-
else {
|
|
951
|
-
this.cleanupInterval = setInterval(() => this.cleanup(), cleanupMs);
|
|
952
|
-
}
|
|
953
|
-
}
|
|
954
|
-
getOrCreateId(key) {
|
|
955
|
-
let id = this.keyToId.get(key);
|
|
956
|
-
if (!id) {
|
|
957
|
-
id = Symbol();
|
|
958
|
-
this.keyToId.set(key, id);
|
|
959
|
-
}
|
|
960
|
-
return id;
|
|
961
|
-
}
|
|
962
|
-
set(key, value) {
|
|
963
|
-
var _a;
|
|
964
|
-
if (!this.isWeak) {
|
|
965
|
-
if (this.noopMap)
|
|
966
|
-
return this;
|
|
967
|
-
(_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.set(key, value);
|
|
968
|
-
return this;
|
|
969
|
-
}
|
|
970
|
-
const id = this.getOrCreateId(key);
|
|
971
|
-
this.entriesMap.set(id, { ref: new WeakRef(key), value });
|
|
972
|
-
return this;
|
|
973
|
-
}
|
|
974
|
-
get(key) {
|
|
975
|
-
var _a, _b;
|
|
976
|
-
if (!this.isWeak) {
|
|
977
|
-
if (this.noopMap)
|
|
978
|
-
return undefined;
|
|
979
|
-
return (_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.get(key);
|
|
980
|
-
}
|
|
981
|
-
const id = this.keyToId.get(key);
|
|
982
|
-
if (!id)
|
|
983
|
-
return undefined;
|
|
984
|
-
const entry = this.entriesMap.get(id);
|
|
985
|
-
const derefKey = (_b = entry === null || entry === void 0 ? void 0 : entry.ref) === null || _b === void 0 ? void 0 : _b.deref();
|
|
986
|
-
return derefKey ? entry === null || entry === void 0 ? void 0 : entry.value : undefined;
|
|
987
|
-
}
|
|
988
|
-
has(key) {
|
|
989
|
-
var _a, _b;
|
|
990
|
-
if (!this.isWeak) {
|
|
991
|
-
if (this.noopMap)
|
|
992
|
-
return false;
|
|
993
|
-
return (_b = (_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.has(key)) !== null && _b !== void 0 ? _b : false;
|
|
994
|
-
}
|
|
995
|
-
const id = this.keyToId.get(key);
|
|
996
|
-
if (!id)
|
|
997
|
-
return false;
|
|
998
|
-
const entry = this.entriesMap.get(id);
|
|
999
|
-
return !!(entry && entry.ref.deref());
|
|
1000
|
-
}
|
|
1001
|
-
delete(key) {
|
|
1002
|
-
var _a, _b;
|
|
1003
|
-
if (!this.isWeak) {
|
|
1004
|
-
if (this.noopMap)
|
|
1005
|
-
return false;
|
|
1006
|
-
return (_b = (_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.delete(key)) !== null && _b !== void 0 ? _b : false;
|
|
1007
|
-
}
|
|
1008
|
-
const id = this.keyToId.get(key);
|
|
1009
|
-
if (!id)
|
|
1010
|
-
return false;
|
|
1011
|
-
this.keyToId.delete(key);
|
|
1012
|
-
return this.entriesMap.delete(id);
|
|
1013
|
-
}
|
|
1014
|
-
*liveEntries() {
|
|
1015
|
-
for (const [, entry] of this.entriesMap) {
|
|
1016
|
-
const key = entry.ref.deref();
|
|
1017
|
-
if (key) {
|
|
1018
|
-
yield [key, entry.value];
|
|
1019
|
-
}
|
|
1020
|
-
}
|
|
1021
|
-
}
|
|
1022
|
-
entries() {
|
|
1023
|
-
var _a, _b;
|
|
1024
|
-
if (!this.isWeak) {
|
|
1025
|
-
if (this.noopMap)
|
|
1026
|
-
return [][Symbol.iterator]();
|
|
1027
|
-
return (_b = (_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.entries()) !== null && _b !== void 0 ? _b : [][Symbol.iterator]();
|
|
1028
|
-
}
|
|
1029
|
-
return this.liveEntries();
|
|
1030
|
-
}
|
|
1031
|
-
keys() {
|
|
1032
|
-
return (function* (self) {
|
|
1033
|
-
for (const [key] of self.entries())
|
|
1034
|
-
yield key;
|
|
1035
|
-
})(this);
|
|
1036
|
-
}
|
|
1037
|
-
values() {
|
|
1038
|
-
return (function* (self) {
|
|
1039
|
-
for (const [, value] of self.entries())
|
|
1040
|
-
yield value;
|
|
1041
|
-
})(this);
|
|
1042
|
-
}
|
|
1043
|
-
[Symbol.iterator]() {
|
|
1044
|
-
return this.entries();
|
|
1045
|
-
}
|
|
1046
|
-
get size() {
|
|
1047
|
-
var _a, _b;
|
|
1048
|
-
if (!this.isWeak) {
|
|
1049
|
-
if (this.noopMap)
|
|
1050
|
-
return 0;
|
|
1051
|
-
return (_b = (_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : 0;
|
|
1052
|
-
}
|
|
1053
|
-
let count = 0;
|
|
1054
|
-
// eslint-disable-next-line
|
|
1055
|
-
for (const _ of this.liveEntries()) {
|
|
1056
|
-
count++;
|
|
1057
|
-
}
|
|
1058
|
-
return count;
|
|
1177
|
+
// dom-element [from component.react] --> component.react
|
|
1178
|
+
function extractReactComponentName(displayName) {
|
|
1179
|
+
if (typeof displayName !== 'string') {
|
|
1180
|
+
return null;
|
|
1059
1181
|
}
|
|
1060
|
-
|
|
1061
|
-
return
|
|
1182
|
+
if (!displayName.includes('[') || !displayName.includes(']')) {
|
|
1183
|
+
return displayName;
|
|
1062
1184
|
}
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
if (!entry.ref.deref()) {
|
|
1068
|
-
this.entriesMap.delete(id);
|
|
1069
|
-
}
|
|
1070
|
-
}
|
|
1185
|
+
const startIndex = displayName.indexOf('[');
|
|
1186
|
+
const endIndex = displayName.indexOf(']');
|
|
1187
|
+
if (startIndex > endIndex) {
|
|
1188
|
+
return displayName;
|
|
1071
1189
|
}
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
}
|
|
1190
|
+
const name = displayName.substring(startIndex + 1, endIndex);
|
|
1191
|
+
if (name.startsWith('from ')) {
|
|
1192
|
+
return name.substring('from '.length);
|
|
1076
1193
|
}
|
|
1194
|
+
return name;
|
|
1077
1195
|
}
|
|
1078
|
-
exports.WeakMapPlus = WeakMapPlus;
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
/***/ },
|
|
1082
|
-
|
|
1083
|
-
/***/ 346
|
|
1084
|
-
(__unused_webpack_module, exports) {
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
/**
|
|
1088
|
-
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
1089
|
-
*
|
|
1090
|
-
* This source code is licensed under the MIT license found in the
|
|
1091
|
-
* LICENSE file in the root directory of this source tree.
|
|
1092
|
-
*
|
|
1093
|
-
* @format
|
|
1094
|
-
* @oncall memory_lab
|
|
1095
|
-
*/
|
|
1096
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1097
|
-
exports.config = exports.featureFlags = exports.performanceConfig = void 0;
|
|
1098
|
-
// Performance Configuration
|
|
1099
|
-
exports.performanceConfig = {
|
|
1100
|
-
scanIntervalMs: 1000,
|
|
1101
|
-
maxComponentStackDepth: 100,
|
|
1102
|
-
memoryMeasurementIntervalMs: 5000,
|
|
1103
|
-
};
|
|
1104
|
-
// Feature Flags
|
|
1105
|
-
exports.featureFlags = {
|
|
1106
|
-
enableMutationObserver: true,
|
|
1107
|
-
enableMemoryTracking: true,
|
|
1108
|
-
enableComponentStack: true,
|
|
1109
|
-
enableConsoleLogs: window === null || window === void 0 ? void 0 : window.TEST_MEMORY_SCAN,
|
|
1110
|
-
};
|
|
1111
|
-
// overall Config
|
|
1112
|
-
exports.config = {
|
|
1113
|
-
performance: exports.performanceConfig,
|
|
1114
|
-
features: exports.featureFlags,
|
|
1115
|
-
};
|
|
1116
1196
|
|
|
1117
1197
|
|
|
1118
1198
|
/***/ },
|
|
@@ -1300,423 +1380,350 @@ function setRunInSession() {
|
|
|
1300
1380
|
|
|
1301
1381
|
/***/ },
|
|
1302
1382
|
|
|
1303
|
-
/***/
|
|
1383
|
+
/***/ 313
|
|
1304
1384
|
(__unused_webpack_module, exports) {
|
|
1305
1385
|
|
|
1386
|
+
var __webpack_unused_export__;
|
|
1306
1387
|
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
|
|
1328
|
-
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1332
|
-
const
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1388
|
+
/**
|
|
1389
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
1390
|
+
*
|
|
1391
|
+
* This source code is licensed under the MIT license found in the
|
|
1392
|
+
* LICENSE file in the root directory of this source tree.
|
|
1393
|
+
*
|
|
1394
|
+
* @format
|
|
1395
|
+
* @oncall memory_lab
|
|
1396
|
+
*/
|
|
1397
|
+
var _a, _b, _c;
|
|
1398
|
+
__webpack_unused_export__ = ({ value: true });
|
|
1399
|
+
exports.WeakMapPlus = __webpack_unused_export__ = __webpack_unused_export__ = __webpack_unused_export__ = void 0;
|
|
1400
|
+
__webpack_unused_export__ = getNativeWeakMap;
|
|
1401
|
+
__webpack_unused_export__ = getNativeWeakMapOrFallback;
|
|
1402
|
+
__webpack_unused_export__ = getNativeWeakSet;
|
|
1403
|
+
__webpack_unused_export__ = getNativeWeakSetOrFallback;
|
|
1404
|
+
__webpack_unused_export__ = getNativeWeakRef;
|
|
1405
|
+
__webpack_unused_export__ = getNativeWeakRefOrFallback;
|
|
1406
|
+
__webpack_unused_export__ = isWeakMapNative;
|
|
1407
|
+
__webpack_unused_export__ = isWeakSetNative;
|
|
1408
|
+
__webpack_unused_export__ = isWeakRefNative;
|
|
1409
|
+
exports.isWeakAPINative = isWeakAPINative;
|
|
1410
|
+
const globalScope = typeof window !== 'undefined' ? window : self;
|
|
1411
|
+
const _weakMap = (_a = globalScope.WeakMap) !== null && _a !== void 0 ? _a : null;
|
|
1412
|
+
const _weakMapIsNative = isWeakMapNative();
|
|
1413
|
+
const _weakSet = (_b = globalScope.WeakSet) !== null && _b !== void 0 ? _b : null;
|
|
1414
|
+
const _weakSetIsNative = isWeakSetNative();
|
|
1415
|
+
const _weakRef = (_c = globalScope.WeakRef) !== null && _c !== void 0 ? _c : null;
|
|
1416
|
+
const _weakRefIsNative = isWeakRefNative();
|
|
1417
|
+
const _weakAPIsAreNative = _weakMapIsNative && _weakSetIsNative && _weakRefIsNative;
|
|
1418
|
+
class WeakRefNoOp {
|
|
1419
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1420
|
+
constructor(_targetObject) {
|
|
1421
|
+
// to be overridden
|
|
1341
1422
|
}
|
|
1342
|
-
(
|
|
1343
|
-
|
|
1344
|
-
function removeAllListeners(elRef) {
|
|
1345
|
-
const el = elRef.deref();
|
|
1346
|
-
if (!el)
|
|
1347
|
-
return;
|
|
1348
|
-
const listeners = listenerMap.get(el);
|
|
1349
|
-
if (!listeners)
|
|
1350
|
-
return;
|
|
1351
|
-
for (const { type, cb, options } of listeners) {
|
|
1352
|
-
el.removeEventListener(type, cb, options);
|
|
1423
|
+
deref() {
|
|
1424
|
+
return undefined;
|
|
1353
1425
|
}
|
|
1354
|
-
listenerMap.delete(el);
|
|
1355
1426
|
}
|
|
1356
|
-
|
|
1357
|
-
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
}
|
|
1427
|
+
__webpack_unused_export__ = WeakRefNoOp;
|
|
1428
|
+
class WeakSetNoOp {
|
|
1429
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1430
|
+
constructor(_iterable) {
|
|
1431
|
+
// to be overridden
|
|
1432
|
+
}
|
|
1433
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1434
|
+
add(_value) {
|
|
1435
|
+
return this;
|
|
1436
|
+
}
|
|
1437
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1438
|
+
delete(_value) {
|
|
1439
|
+
return false;
|
|
1440
|
+
}
|
|
1441
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1442
|
+
has(_value) {
|
|
1443
|
+
return false;
|
|
1444
|
+
}
|
|
1366
1445
|
}
|
|
1367
|
-
|
|
1368
|
-
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
(__unused_webpack_module, exports, __webpack_require__) {
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1376
|
-
exports.traverseFiber = exports.getTopMostFiberWithChild = exports.getTopMostHostFiber = exports.getNearestHostFiber = exports.isHostFiber = exports.MutationMask = exports.Visibility = exports.Snapshot = exports.Ref = exports.ContentReset = exports.ChildDeletion = exports.Cloned = exports.Update = exports.Hydrating = exports.DidCapture = exports.Placement = exports.PerformedWork = exports.DEPRECATED_ASYNC_MODE_SYMBOL_STRING = exports.CONCURRENT_MODE_SYMBOL_STRING = exports.CONCURRENT_MODE_NUMBER = exports.HostRoot = exports.OffscreenComponent = exports.LegacyHiddenComponent = exports.Fragment = exports.HostText = exports.DehydratedSuspenseComponent = exports.HostSingletonTag = exports.HostHoistableTag = exports.HostComponentTag = exports.SimpleMemoComponentTag = exports.MemoComponentTag = exports.ForwardRefTag = exports.OffscreenComponentTag = exports.SuspenseComponentTag = exports.ContextConsumerTag = exports.FunctionComponentTag = exports.ClassComponentTag = void 0;
|
|
1377
|
-
exports.getFiberNodeFromElement = getFiberNodeFromElement;
|
|
1378
|
-
exports.getReactComponentStack = getReactComponentStack;
|
|
1379
|
-
exports.getDisplayNameOfFiberNode = getDisplayNameOfFiberNode;
|
|
1380
|
-
exports.isFunctionalComponent = isFunctionalComponent;
|
|
1381
|
-
exports.extractReactComponentName = extractReactComponentName;
|
|
1382
|
-
const utils_1 = __webpack_require__(476);
|
|
1383
|
-
const valid_component_name_1 = __webpack_require__(847);
|
|
1384
|
-
exports.ClassComponentTag = 1;
|
|
1385
|
-
exports.FunctionComponentTag = 0;
|
|
1386
|
-
exports.ContextConsumerTag = 9;
|
|
1387
|
-
exports.SuspenseComponentTag = 13;
|
|
1388
|
-
exports.OffscreenComponentTag = 22;
|
|
1389
|
-
exports.ForwardRefTag = 11;
|
|
1390
|
-
exports.MemoComponentTag = 14;
|
|
1391
|
-
exports.SimpleMemoComponentTag = 15;
|
|
1392
|
-
exports.HostComponentTag = 5;
|
|
1393
|
-
exports.HostHoistableTag = 26;
|
|
1394
|
-
exports.HostSingletonTag = 27;
|
|
1395
|
-
exports.DehydratedSuspenseComponent = 18;
|
|
1396
|
-
exports.HostText = 6;
|
|
1397
|
-
exports.Fragment = 7;
|
|
1398
|
-
exports.LegacyHiddenComponent = 23;
|
|
1399
|
-
exports.OffscreenComponent = 22;
|
|
1400
|
-
exports.HostRoot = 3;
|
|
1401
|
-
exports.CONCURRENT_MODE_NUMBER = 0xeacf;
|
|
1402
|
-
exports.CONCURRENT_MODE_SYMBOL_STRING = 'Symbol(react.concurrent_mode)';
|
|
1403
|
-
exports.DEPRECATED_ASYNC_MODE_SYMBOL_STRING = 'Symbol(react.async_mode)';
|
|
1404
|
-
// https://github.com/facebook/react/blob/main/packages/react-reconciler/src/ReactFiberFlags.js
|
|
1405
|
-
exports.PerformedWork = 0b1;
|
|
1406
|
-
exports.Placement = 0b10;
|
|
1407
|
-
exports.DidCapture = 0b10000000;
|
|
1408
|
-
exports.Hydrating = 0b1000000000000;
|
|
1409
|
-
exports.Update = 0b100;
|
|
1410
|
-
exports.Cloned = 0b1000;
|
|
1411
|
-
exports.ChildDeletion = 0b10000;
|
|
1412
|
-
exports.ContentReset = 0b100000;
|
|
1413
|
-
exports.Ref = 0b1000000000;
|
|
1414
|
-
exports.Snapshot = 0b10000000000;
|
|
1415
|
-
exports.Visibility = 0b10000000000000;
|
|
1416
|
-
exports.MutationMask = exports.Placement |
|
|
1417
|
-
exports.Update |
|
|
1418
|
-
exports.ChildDeletion |
|
|
1419
|
-
exports.ContentReset |
|
|
1420
|
-
exports.Hydrating |
|
|
1421
|
-
exports.Visibility |
|
|
1422
|
-
exports.Snapshot;
|
|
1423
|
-
/**
|
|
1424
|
-
* @see https://reactnative.dev/architecture/glossary#host-view-tree-and-host-view
|
|
1425
|
-
*/
|
|
1426
|
-
const isHostFiber = (fiber) => fiber.tag === exports.HostComponentTag ||
|
|
1427
|
-
// @ts-expect-error: it exists
|
|
1428
|
-
fiber.tag === exports.HostHoistableTag ||
|
|
1429
|
-
// @ts-expect-error: it exists
|
|
1430
|
-
fiber.tag === exports.HostSingletonTag ||
|
|
1431
|
-
typeof fiber.type === 'string';
|
|
1432
|
-
exports.isHostFiber = isHostFiber;
|
|
1433
|
-
const getNearestHostFiber = (fiber) => {
|
|
1434
|
-
let hostFiber = (0, exports.traverseFiber)(fiber, exports.isHostFiber);
|
|
1435
|
-
if (!hostFiber) {
|
|
1436
|
-
hostFiber = (0, exports.traverseFiber)(fiber, exports.isHostFiber, true);
|
|
1446
|
+
__webpack_unused_export__ = WeakSetNoOp;
|
|
1447
|
+
class WeakMapNoOp {
|
|
1448
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1449
|
+
constructor(_iterable) {
|
|
1450
|
+
// to be overridden
|
|
1437
1451
|
}
|
|
1438
|
-
|
|
1439
|
-
|
|
1440
|
-
|
|
1441
|
-
const getTopMostHostFiber = (fiber) => {
|
|
1442
|
-
let topMostHostFiber = null;
|
|
1443
|
-
function checkFiber(fiber) {
|
|
1444
|
-
if ((0, exports.isHostFiber)(fiber)) {
|
|
1445
|
-
topMostHostFiber = fiber;
|
|
1446
|
-
}
|
|
1452
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1453
|
+
delete(_key) {
|
|
1454
|
+
return false;
|
|
1447
1455
|
}
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
exports.getTopMostHostFiber = getTopMostHostFiber;
|
|
1452
|
-
const getTopMostFiberWithChild = (fiber) => {
|
|
1453
|
-
let topMostFiber = null;
|
|
1454
|
-
function checkFiber(fiber) {
|
|
1455
|
-
if (fiber.child != null) {
|
|
1456
|
-
topMostFiber = fiber;
|
|
1457
|
-
}
|
|
1456
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1457
|
+
get(_key) {
|
|
1458
|
+
return undefined;
|
|
1458
1459
|
}
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
exports.getTopMostFiberWithChild = getTopMostFiberWithChild;
|
|
1463
|
-
const traverseFiber = (fiber, selector, ascending = false) => {
|
|
1464
|
-
if (!fiber) {
|
|
1465
|
-
return null;
|
|
1460
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1461
|
+
has(_key) {
|
|
1462
|
+
return false;
|
|
1466
1463
|
}
|
|
1467
|
-
|
|
1468
|
-
|
|
1464
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1465
|
+
set(_key, _value) {
|
|
1466
|
+
return this;
|
|
1469
1467
|
}
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1468
|
+
}
|
|
1469
|
+
__webpack_unused_export__ = WeakMapNoOp;
|
|
1470
|
+
function getNativeWeakMap() {
|
|
1471
|
+
return _weakMapIsNative ? _weakMap : null;
|
|
1472
|
+
}
|
|
1473
|
+
function getNativeWeakMapOrFallback() {
|
|
1474
|
+
return _weakMapIsNative && _weakMap ? _weakMap : WeakMapNoOp;
|
|
1475
|
+
}
|
|
1476
|
+
function getNativeWeakSet() {
|
|
1477
|
+
return _weakSetIsNative ? _weakSet : null;
|
|
1478
|
+
}
|
|
1479
|
+
function getNativeWeakSetOrFallback() {
|
|
1480
|
+
return _weakSetIsNative && _weakSet ? _weakSet : WeakSetNoOp;
|
|
1481
|
+
}
|
|
1482
|
+
function getNativeWeakRef() {
|
|
1483
|
+
return _weakRefIsNative ? _weakRef : null;
|
|
1484
|
+
}
|
|
1485
|
+
function getNativeWeakRefOrFallback() {
|
|
1486
|
+
return _weakRefIsNative && _weakRef ? _weakRef : WeakRefNoOp;
|
|
1487
|
+
}
|
|
1488
|
+
function normalize(input) {
|
|
1489
|
+
return typeof input.replace === 'function'
|
|
1490
|
+
? input.replace(/\n/g, ' ').replace(/\s+/g, ' ')
|
|
1491
|
+
: null;
|
|
1492
|
+
}
|
|
1493
|
+
function isWeakMapNative() {
|
|
1494
|
+
return (_weakMap !== null &&
|
|
1495
|
+
typeof _weakMap.toString === 'function' &&
|
|
1496
|
+
normalize(_weakMap.toString()) === 'function WeakMap() { [native code] }');
|
|
1497
|
+
}
|
|
1498
|
+
function isWeakSetNative() {
|
|
1499
|
+
return (_weakSet !== null &&
|
|
1500
|
+
typeof _weakSet.toString === 'function' &&
|
|
1501
|
+
normalize(_weakSet.toString()) === 'function WeakSet() { [native code] }');
|
|
1502
|
+
}
|
|
1503
|
+
function isWeakRefNative() {
|
|
1504
|
+
return (_weakRef !== null &&
|
|
1505
|
+
typeof _weakRef.toString === 'function' &&
|
|
1506
|
+
normalize(_weakRef.toString()) === 'function WeakRef() { [native code] }');
|
|
1507
|
+
}
|
|
1508
|
+
function isWeakAPINative() {
|
|
1509
|
+
return _weakAPIsAreNative;
|
|
1510
|
+
}
|
|
1511
|
+
class WeakMapPlus {
|
|
1512
|
+
constructor(options = {}) {
|
|
1513
|
+
this.strongMap = null;
|
|
1514
|
+
this.noopMap = false;
|
|
1515
|
+
this.entriesMap = new Map();
|
|
1516
|
+
this.keyToId = new WeakMap();
|
|
1517
|
+
const { fallback = 'strong', cleanupMs = 1000 } = options;
|
|
1518
|
+
this.isWeak = _weakAPIsAreNative;
|
|
1519
|
+
this.fallbackMode = fallback;
|
|
1520
|
+
if (!this.isWeak) {
|
|
1521
|
+
if (fallback === 'strong') {
|
|
1522
|
+
this.strongMap = new Map();
|
|
1523
|
+
}
|
|
1524
|
+
else if (fallback === 'noop') {
|
|
1525
|
+
this.noopMap = true;
|
|
1526
|
+
}
|
|
1527
|
+
this.cleanupInterval = -1;
|
|
1528
|
+
}
|
|
1529
|
+
else {
|
|
1530
|
+
this.cleanupInterval = setInterval(() => this.cleanup(), cleanupMs);
|
|
1475
1531
|
}
|
|
1476
|
-
next = ascending ? null : next.sibling;
|
|
1477
1532
|
}
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
'__reactFiber$', // React 17+
|
|
1484
|
-
'__reactInternalInstance$', // React 16
|
|
1485
|
-
'_reactRootContainer', // React Root
|
|
1486
|
-
];
|
|
1487
|
-
const getOwnPropertyNames = Object.getOwnPropertyNames.bind(Object);
|
|
1488
|
-
function getFiberNodeFromElement(element) {
|
|
1489
|
-
for (const prefix of internalKeys) {
|
|
1490
|
-
// Use Object.keys only as fallback since it's slower
|
|
1491
|
-
const key = getOwnPropertyNames(element).find(k => k.startsWith(prefix));
|
|
1492
|
-
if (key) {
|
|
1493
|
-
return element[key];
|
|
1533
|
+
getOrCreateId(key) {
|
|
1534
|
+
let id = this.keyToId.get(key);
|
|
1535
|
+
if (!id) {
|
|
1536
|
+
id = Symbol();
|
|
1537
|
+
this.keyToId.set(key, id);
|
|
1494
1538
|
}
|
|
1539
|
+
return id;
|
|
1495
1540
|
}
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
if (visited.has(fiber)) {
|
|
1504
|
-
break;
|
|
1541
|
+
set(key, value) {
|
|
1542
|
+
var _a;
|
|
1543
|
+
if (!this.isWeak) {
|
|
1544
|
+
if (this.noopMap)
|
|
1545
|
+
return this;
|
|
1546
|
+
(_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.set(key, value);
|
|
1547
|
+
return this;
|
|
1505
1548
|
}
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1549
|
+
const id = this.getOrCreateId(key);
|
|
1550
|
+
this.entriesMap.set(id, { ref: new WeakRef(key), value });
|
|
1551
|
+
return this;
|
|
1552
|
+
}
|
|
1553
|
+
get(key) {
|
|
1554
|
+
var _a, _b;
|
|
1555
|
+
if (!this.isWeak) {
|
|
1556
|
+
if (this.noopMap)
|
|
1557
|
+
return undefined;
|
|
1558
|
+
return (_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.get(key);
|
|
1510
1559
|
}
|
|
1511
|
-
|
|
1560
|
+
const id = this.keyToId.get(key);
|
|
1561
|
+
if (!id)
|
|
1562
|
+
return undefined;
|
|
1563
|
+
const entry = this.entriesMap.get(id);
|
|
1564
|
+
const derefKey = (_b = entry === null || entry === void 0 ? void 0 : entry.ref) === null || _b === void 0 ? void 0 : _b.deref();
|
|
1565
|
+
return derefKey ? entry === null || entry === void 0 ? void 0 : entry.value : undefined;
|
|
1512
1566
|
}
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
let displayName = (_b = elementType === null || elementType === void 0 ? void 0 : elementType.displayName) !== null && _b !== void 0 ? _b : elementType === null || elementType === void 0 ? void 0 : elementType.name;
|
|
1520
|
-
// Handle class components and forwardRef
|
|
1521
|
-
if (displayName == null) {
|
|
1522
|
-
if (elementType === null || elementType === void 0 ? void 0 : elementType.render) {
|
|
1523
|
-
// Class components
|
|
1524
|
-
const render = elementType === null || elementType === void 0 ? void 0 : elementType.render;
|
|
1525
|
-
displayName = (_c = render === null || render === void 0 ? void 0 : render.displayName) !== null && _c !== void 0 ? _c : render === null || render === void 0 ? void 0 : render.name;
|
|
1567
|
+
has(key) {
|
|
1568
|
+
var _a, _b;
|
|
1569
|
+
if (!this.isWeak) {
|
|
1570
|
+
if (this.noopMap)
|
|
1571
|
+
return false;
|
|
1572
|
+
return (_b = (_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.has(key)) !== null && _b !== void 0 ? _b : false;
|
|
1526
1573
|
}
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1574
|
+
const id = this.keyToId.get(key);
|
|
1575
|
+
if (!id)
|
|
1576
|
+
return false;
|
|
1577
|
+
const entry = this.entriesMap.get(id);
|
|
1578
|
+
return !!(entry && entry.ref.deref());
|
|
1579
|
+
}
|
|
1580
|
+
delete(key) {
|
|
1581
|
+
var _a, _b;
|
|
1582
|
+
if (!this.isWeak) {
|
|
1583
|
+
if (this.noopMap)
|
|
1584
|
+
return false;
|
|
1585
|
+
return (_b = (_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.delete(key)) !== null && _b !== void 0 ? _b : false;
|
|
1586
|
+
}
|
|
1587
|
+
const id = this.keyToId.get(key);
|
|
1588
|
+
if (!id)
|
|
1589
|
+
return false;
|
|
1590
|
+
this.keyToId.delete(key);
|
|
1591
|
+
return this.entriesMap.delete(id);
|
|
1592
|
+
}
|
|
1593
|
+
*liveEntries() {
|
|
1594
|
+
for (const [, entry] of this.entriesMap) {
|
|
1595
|
+
const key = entry.ref.deref();
|
|
1596
|
+
if (key) {
|
|
1597
|
+
yield [key, entry.value];
|
|
1598
|
+
}
|
|
1530
1599
|
}
|
|
1531
1600
|
}
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1601
|
+
entries() {
|
|
1602
|
+
var _a, _b;
|
|
1603
|
+
if (!this.isWeak) {
|
|
1604
|
+
if (this.noopMap)
|
|
1605
|
+
return [][Symbol.iterator]();
|
|
1606
|
+
return (_b = (_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.entries()) !== null && _b !== void 0 ? _b : [][Symbol.iterator]();
|
|
1607
|
+
}
|
|
1608
|
+
return this.liveEntries();
|
|
1609
|
+
}
|
|
1610
|
+
keys() {
|
|
1611
|
+
return (function* (self) {
|
|
1612
|
+
for (const [key] of self.entries())
|
|
1613
|
+
yield key;
|
|
1614
|
+
})(this);
|
|
1535
1615
|
}
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
return typeof elementType === 'function';
|
|
1542
|
-
}
|
|
1543
|
-
// dom-element [from component.react] --> component.react
|
|
1544
|
-
function extractReactComponentName(displayName) {
|
|
1545
|
-
if (typeof displayName !== 'string') {
|
|
1546
|
-
return null;
|
|
1616
|
+
values() {
|
|
1617
|
+
return (function* (self) {
|
|
1618
|
+
for (const [, value] of self.entries())
|
|
1619
|
+
yield value;
|
|
1620
|
+
})(this);
|
|
1547
1621
|
}
|
|
1548
|
-
|
|
1549
|
-
return
|
|
1622
|
+
[Symbol.iterator]() {
|
|
1623
|
+
return this.entries();
|
|
1550
1624
|
}
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1625
|
+
get size() {
|
|
1626
|
+
var _a, _b;
|
|
1627
|
+
if (!this.isWeak) {
|
|
1628
|
+
if (this.noopMap)
|
|
1629
|
+
return 0;
|
|
1630
|
+
return (_b = (_a = this.strongMap) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : 0;
|
|
1631
|
+
}
|
|
1632
|
+
let count = 0;
|
|
1633
|
+
// eslint-disable-next-line
|
|
1634
|
+
for (const _ of this.liveEntries()) {
|
|
1635
|
+
count++;
|
|
1636
|
+
}
|
|
1637
|
+
return count;
|
|
1555
1638
|
}
|
|
1556
|
-
|
|
1557
|
-
|
|
1558
|
-
|
|
1639
|
+
getFallbackMode() {
|
|
1640
|
+
return this.fallbackMode;
|
|
1641
|
+
}
|
|
1642
|
+
cleanup() {
|
|
1643
|
+
if (!this.isWeak)
|
|
1644
|
+
return;
|
|
1645
|
+
for (const [id, entry] of this.entriesMap) {
|
|
1646
|
+
if (!entry.ref.deref()) {
|
|
1647
|
+
this.entriesMap.delete(id);
|
|
1648
|
+
}
|
|
1649
|
+
}
|
|
1650
|
+
}
|
|
1651
|
+
destroy() {
|
|
1652
|
+
if (this.isWeak) {
|
|
1653
|
+
clearInterval(this.cleanupInterval);
|
|
1654
|
+
}
|
|
1559
1655
|
}
|
|
1560
|
-
return name;
|
|
1561
1656
|
}
|
|
1657
|
+
exports.WeakMapPlus = WeakMapPlus;
|
|
1562
1658
|
|
|
1563
1659
|
|
|
1564
1660
|
/***/ },
|
|
1565
1661
|
|
|
1566
|
-
/***/
|
|
1662
|
+
/***/ 498
|
|
1567
1663
|
(__unused_webpack_module, exports) {
|
|
1568
1664
|
|
|
1665
|
+
var __webpack_unused_export__;
|
|
1569
1666
|
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
const displayNameBlockList = new Set();
|
|
1582
|
-
function isValidComponentName(name) {
|
|
1583
|
-
return name != null && !displayNameBlockList.has(name);
|
|
1667
|
+
__webpack_unused_export__ = ({ value: true });
|
|
1668
|
+
exports.isVisualizerElement = isVisualizerElement;
|
|
1669
|
+
__webpack_unused_export__ = createVisualizerElement;
|
|
1670
|
+
__webpack_unused_export__ = tryToAttachOverlay;
|
|
1671
|
+
__webpack_unused_export__ = addTrackedListener;
|
|
1672
|
+
__webpack_unused_export__ = removeAllListeners;
|
|
1673
|
+
__webpack_unused_export__ = debounce;
|
|
1674
|
+
const VISUALIZER_DATA_ATTR = 'data-visualizer';
|
|
1675
|
+
function setVisualizerElement(element) {
|
|
1676
|
+
element.setAttribute(VISUALIZER_DATA_ATTR, 'true');
|
|
1677
|
+
element.setAttribute('data-visualcompletion', 'ignore');
|
|
1584
1678
|
}
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
(
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
if (
|
|
1595
|
-
|
|
1596
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
1597
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
1598
|
-
};
|
|
1599
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
1600
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
1601
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
1602
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
1603
|
-
};
|
|
1604
|
-
var _EventListenerTracker_instances, _EventListenerTracker_listenerMap, _EventListenerTracker_detachedListeners, _EventListenerTracker_originalAddEventListener, _EventListenerTracker_originalRemoveEventListener, _EventListenerTracker_patchEventListeners, _EventListenerTracker_unpatchEventListeners;
|
|
1605
|
-
Object.defineProperty(exports, "__esModule", ({ value: true }));
|
|
1606
|
-
exports.EventListenerTracker = void 0;
|
|
1607
|
-
const react_fiber_utils_1 = __webpack_require__(737);
|
|
1608
|
-
const weak_ref_utils_1 = __webpack_require__(313);
|
|
1609
|
-
class EventListenerTracker {
|
|
1610
|
-
constructor() {
|
|
1611
|
-
_EventListenerTracker_instances.add(this);
|
|
1612
|
-
_EventListenerTracker_listenerMap.set(this, void 0);
|
|
1613
|
-
_EventListenerTracker_detachedListeners.set(this, void 0);
|
|
1614
|
-
_EventListenerTracker_originalAddEventListener.set(this, void 0);
|
|
1615
|
-
_EventListenerTracker_originalRemoveEventListener.set(this, void 0);
|
|
1616
|
-
__classPrivateFieldSet(this, _EventListenerTracker_listenerMap, new weak_ref_utils_1.WeakMapPlus({ fallback: 'noop', cleanupMs: 100 }), "f");
|
|
1617
|
-
__classPrivateFieldSet(this, _EventListenerTracker_detachedListeners, new Map(), "f");
|
|
1618
|
-
__classPrivateFieldSet(this, _EventListenerTracker_originalAddEventListener, EventTarget.prototype.addEventListener, "f");
|
|
1619
|
-
__classPrivateFieldSet(this, _EventListenerTracker_originalRemoveEventListener, EventTarget.prototype.removeEventListener, "f");
|
|
1620
|
-
__classPrivateFieldGet(this, _EventListenerTracker_instances, "m", _EventListenerTracker_patchEventListeners).call(this);
|
|
1621
|
-
}
|
|
1622
|
-
static getInstance() {
|
|
1623
|
-
if (!EventListenerTracker.instance) {
|
|
1624
|
-
EventListenerTracker.instance = new EventListenerTracker();
|
|
1625
|
-
}
|
|
1626
|
-
return EventListenerTracker.instance;
|
|
1679
|
+
function isVisualizerElement(element) {
|
|
1680
|
+
return element.getAttribute(VISUALIZER_DATA_ATTR) === 'true';
|
|
1681
|
+
}
|
|
1682
|
+
function createVisualizerElement(tag) {
|
|
1683
|
+
const element = document.createElement(tag);
|
|
1684
|
+
setVisualizerElement(element);
|
|
1685
|
+
return element;
|
|
1686
|
+
}
|
|
1687
|
+
function tryToAttachOverlay(overlayDiv) {
|
|
1688
|
+
if (document.body) {
|
|
1689
|
+
document.body.appendChild(overlayDiv);
|
|
1627
1690
|
}
|
|
1628
|
-
|
|
1629
|
-
|
|
1691
|
+
}
|
|
1692
|
+
const listenerMap = new WeakMap();
|
|
1693
|
+
function addTrackedListener(elRef, type, cb, options) {
|
|
1694
|
+
var _a;
|
|
1695
|
+
const el = elRef.deref();
|
|
1696
|
+
if (!el)
|
|
1697
|
+
return;
|
|
1698
|
+
el.addEventListener(type, cb, options);
|
|
1699
|
+
if (!listenerMap.has(el)) {
|
|
1700
|
+
listenerMap.set(el, []);
|
|
1630
1701
|
}
|
|
1631
|
-
|
|
1702
|
+
(_a = listenerMap.get(el)) === null || _a === void 0 ? void 0 : _a.push({ type, cb, options });
|
|
1703
|
+
}
|
|
1704
|
+
function removeAllListeners(elRef) {
|
|
1705
|
+
const el = elRef.deref();
|
|
1706
|
+
if (!el)
|
|
1707
|
+
return;
|
|
1708
|
+
const listeners = listenerMap.get(el);
|
|
1709
|
+
if (!listeners)
|
|
1710
|
+
return;
|
|
1711
|
+
for (const { type, cb, options } of listeners) {
|
|
1632
1712
|
el.removeEventListener(type, cb, options);
|
|
1633
1713
|
}
|
|
1634
|
-
|
|
1635
|
-
const detachedListeners = new Map();
|
|
1636
|
-
for (const [el, listeners] of __classPrivateFieldGet(this, _EventListenerTracker_listenerMap, "f").entries()) {
|
|
1637
|
-
if (el instanceof Element && !el.isConnected) {
|
|
1638
|
-
for (const listener of listeners) {
|
|
1639
|
-
// Skip if the callback has been garbage collected
|
|
1640
|
-
if (!listener.cb.deref())
|
|
1641
|
-
continue;
|
|
1642
|
-
const componentName = getComponentName(new WeakRef(el));
|
|
1643
|
-
if (!detachedListeners.has(componentName)) {
|
|
1644
|
-
detachedListeners.set(componentName, []);
|
|
1645
|
-
}
|
|
1646
|
-
const groups = detachedListeners.get(componentName);
|
|
1647
|
-
let group = groups === null || groups === void 0 ? void 0 : groups.find(g => g.type === listener.type);
|
|
1648
|
-
if (!group) {
|
|
1649
|
-
group = {
|
|
1650
|
-
type: listener.type,
|
|
1651
|
-
count: 0,
|
|
1652
|
-
entries: [],
|
|
1653
|
-
};
|
|
1654
|
-
groups === null || groups === void 0 ? void 0 : groups.push(group);
|
|
1655
|
-
}
|
|
1656
|
-
group.count++;
|
|
1657
|
-
group.entries.push(new WeakRef(listener));
|
|
1658
|
-
}
|
|
1659
|
-
}
|
|
1660
|
-
}
|
|
1661
|
-
__classPrivateFieldSet(this, _EventListenerTracker_detachedListeners, detachedListeners, "f");
|
|
1662
|
-
return detachedListeners;
|
|
1663
|
-
}
|
|
1664
|
-
getDetachedListeners() {
|
|
1665
|
-
return __classPrivateFieldGet(this, _EventListenerTracker_detachedListeners, "f");
|
|
1666
|
-
}
|
|
1667
|
-
destroy() {
|
|
1668
|
-
__classPrivateFieldGet(this, _EventListenerTracker_instances, "m", _EventListenerTracker_unpatchEventListeners).call(this);
|
|
1669
|
-
__classPrivateFieldGet(this, _EventListenerTracker_listenerMap, "f").destroy();
|
|
1670
|
-
__classPrivateFieldGet(this, _EventListenerTracker_detachedListeners, "f").clear();
|
|
1671
|
-
EventListenerTracker.instance = null;
|
|
1672
|
-
}
|
|
1714
|
+
listenerMap.delete(el);
|
|
1673
1715
|
}
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
1679
|
-
var _a;
|
|
1680
|
-
__classPrivateFieldGet(self, _EventListenerTracker_originalAddEventListener, "f").call(this, type, listener, options);
|
|
1681
|
-
if (this instanceof Element) {
|
|
1682
|
-
const fiber = (0, react_fiber_utils_1.getFiberNodeFromElement)(this);
|
|
1683
|
-
const entry = {
|
|
1684
|
-
type,
|
|
1685
|
-
cb: new WeakRef(listener),
|
|
1686
|
-
options,
|
|
1687
|
-
fiber: fiber ? new WeakRef(fiber) : undefined,
|
|
1688
|
-
};
|
|
1689
|
-
const listeners = (_a = __classPrivateFieldGet(self, _EventListenerTracker_listenerMap, "f").get(this)) !== null && _a !== void 0 ? _a : [];
|
|
1690
|
-
listeners.push(entry);
|
|
1691
|
-
__classPrivateFieldGet(self, _EventListenerTracker_listenerMap, "f").set(this, listeners);
|
|
1692
|
-
}
|
|
1693
|
-
};
|
|
1694
|
-
EventTarget.prototype.removeEventListener = function (type, listener, options) {
|
|
1695
|
-
__classPrivateFieldGet(self, _EventListenerTracker_originalRemoveEventListener, "f").call(this, type, listener, options);
|
|
1696
|
-
if (this instanceof Element) {
|
|
1697
|
-
const listeners = __classPrivateFieldGet(self, _EventListenerTracker_listenerMap, "f").get(this);
|
|
1698
|
-
if (listeners) {
|
|
1699
|
-
const index = listeners.findIndex(entry => entry.type === type &&
|
|
1700
|
-
entry.cb.deref() === listener &&
|
|
1701
|
-
entry.options === options);
|
|
1702
|
-
if (index !== -1) {
|
|
1703
|
-
listeners.splice(index, 1);
|
|
1704
|
-
}
|
|
1705
|
-
if (listeners.length === 0) {
|
|
1706
|
-
__classPrivateFieldGet(self, _EventListenerTracker_listenerMap, "f").delete(this);
|
|
1707
|
-
}
|
|
1708
|
-
else {
|
|
1709
|
-
__classPrivateFieldGet(self, _EventListenerTracker_listenerMap, "f").set(this, listeners);
|
|
1710
|
-
}
|
|
1711
|
-
}
|
|
1716
|
+
function debounce(callback, delay) {
|
|
1717
|
+
let timer = null;
|
|
1718
|
+
return (...args) => {
|
|
1719
|
+
if (timer) {
|
|
1720
|
+
clearTimeout(timer);
|
|
1712
1721
|
}
|
|
1722
|
+
timer = setTimeout(() => {
|
|
1723
|
+
callback(...args);
|
|
1724
|
+
}, delay);
|
|
1713
1725
|
};
|
|
1714
|
-
}
|
|
1715
|
-
EventTarget.prototype.addEventListener = __classPrivateFieldGet(this, _EventListenerTracker_originalAddEventListener, "f");
|
|
1716
|
-
EventTarget.prototype.removeEventListener =
|
|
1717
|
-
__classPrivateFieldGet(this, _EventListenerTracker_originalRemoveEventListener, "f");
|
|
1718
|
-
};
|
|
1719
|
-
EventListenerTracker.instance = null;
|
|
1726
|
+
}
|
|
1720
1727
|
|
|
1721
1728
|
|
|
1722
1729
|
/***/ }
|